Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangjie
OpenXG-RAN
Commits
206f17b2
Commit
206f17b2
authored
Oct 10, 2019
by
LouisAdrien
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[under test] Fix CDRX starts at RRCReconfComplete again; new comments
parent
9c811d22
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
35 additions
and
36 deletions
+35
-36
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+0
-1
openair2/F1AP/f1ap_du_rrc_message_transfer.c
openair2/F1AP/f1ap_du_rrc_message_transfer.c
+2
-2
openair2/LAYER2/MAC/config.c
openair2/LAYER2/MAC/config.c
+5
-6
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+28
-27
No files found.
openair2/ENB_APP/enb_config.c
View file @
206f17b2
...
...
@@ -387,7 +387,6 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
for
(
int
I
=
0
;
I
<
sizeof
(
PLMNParams
)
/
sizeof
(
paramdef_t
);
++
I
)
PLMNParams
[
I
].
chkPptr
=
&
(
config_check_PLMNParams
[
I
]);
//RRC_CONFIGURATION_REQ (msg_p).rrc_inactivity_timer_thres = RRC_INACTIVITY_THRESH; // set to 0 to deactivate
// In the configuration file it is in seconds. For RRC it has to be in milliseconds
RRC_CONFIGURATION_REQ
(
msg_p
).
rrc_inactivity_timer_thres
=
(
*
ENBParamList
.
paramarray
[
i
][
ENB_RRC_INACTIVITY_THRES_IDX
].
uptr
)
*
1000
;
RRC_CONFIGURATION_REQ
(
msg_p
).
cell_identity
=
enb_id
;
...
...
openair2/F1AP/f1ap_du_rrc_message_transfer.c
View file @
206f17b2
...
...
@@ -750,7 +750,7 @@ int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
case
LTE_UL_DCCH_MessageType__c1_PR_rrcConnectionReconfigurationComplete
:
LOG_I
(
F1AP
,
"[MSG] RRC UL rrcConnectionReconfigurationComplete
\n
"
);
/* CDRX:
(under test) activated when RRC Connection Reconfiguration was sent
*/
/* CDRX:
activated when RRC Connection Reconfiguration Complete is received
*/
int
UE_id_mac
=
find_UE_id
(
instance
,
rnti
);
if
(
UE_id_mac
==
-
1
)
{
...
...
@@ -762,7 +762,7 @@ int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
if
(
UE_scheduling_control
->
cdrx_waiting_ack
==
TRUE
)
{
UE_scheduling_control
->
cdrx_waiting_ack
=
FALSE
;
// UE_scheduling_control->cdrx_configured = TRUE; // Set to TRUE when RRC Connection Reconfiguration is sent (under test)
UE_scheduling_control
->
cdrx_configured
=
TRUE
;
// Set to TRUE when RRC Connection Reconfiguration Complete is received
LOG_I
(
F1AP
,
"CDRX configuration after first RRC Connection Reconfiguration Complete reception
\n
"
);
}
/* End of CDRX processing */
...
...
openair2/LAYER2/MAC/config.c
View file @
206f17b2
...
...
@@ -990,7 +990,7 @@ int rrc_mac_config_req_eNB(module_id_t Mod_idP,
//-----------------------------------------------------------------------------
/*
* Configure local DRX timers and thresholds following the drx_configuration input
* Configure local
C
DRX timers and thresholds following the drx_configuration input
*/
void
eNB_Config_Local_DRX
(
module_id_t
Mod_id
,
...
...
@@ -1022,20 +1022,19 @@ void eNB_Config_Local_DRX(
/* Check drx_Configuration */
if
(
drx_Configuration
==
NULL
)
{
LOG_
I
(
MAC
,
"drx_Configuration parameter is NULL, cannot configure local UE parameters
\n
"
);
LOG_
W
(
MAC
,
"drx_Configuration parameter is NULL, cannot configure local UE parameters for CDRX
\n
"
);
return
;
}
/* Check if drx config present */
if
(
drx_Configuration
->
present
!=
LTE_DRX_Config_PR_setup
)
{
LOG_I
(
MAC
,
"No drx_Configuration present, don't configure local UE parameters
\n
"
);
LOG_I
(
MAC
,
"No drx_Configuration present, don't configure local UE parameters
for CDRX
\n
"
);
return
;
}
/* Modify scheduling control structure according to DRX configuration: doesn't support every configurations! */
LOG_I
(
MAC
,
"Initial cdrx_waiting_ack state: %s
\n
"
,
UE_scheduling_control
->
cdrx_waiting_ack
?
"TRUE"
:
"FALSE"
);
UE_scheduling_control
->
cdrx_configured
=
TRUE
;
// will be set to true
UE_scheduling_control
->
cdrx_waiting_ack
=
TRUE
;
// For debugging only
UE_scheduling_control
->
cdrx_configured
=
FALSE
;
// will be set to true when receiving RRC Reconfiguration Complete
UE_scheduling_control
->
cdrx_waiting_ack
=
TRUE
;
// waiting for RRC Reconfiguration Complete message
UE_scheduling_control
->
in_active_time
=
FALSE
;
UE_scheduling_control
->
dci0_ongoing_timer
=
0
;
...
...
openair2/RRC/LTE/rrc_eNB.c
View file @
206f17b2
...
...
@@ -3235,13 +3235,13 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
LOG_E
(
RRC
,
"Invalid CC_id for DRX configuration
\n
"
);
}
}
else
{
// CDRX not implemented for TDD and LTE-M (09/04/19)
LOG_
I
(
RRC
,
"CDRX not implemented for TDD and LTE-M
\n
"
);
LOG_
E
(
RRC
,
"CDRX not implemented for TDD and LTE-M
\n
"
);
}
}
else
{
// UE_id invalid
LOG_E
(
RRC
,
"Invalid UE_id found!
\n
"
);
}
/* End of CDRX configuration */
}
/* End of CDRX configuration */
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
sr_ProhibitTimer_r9
=
CALLOC
(
1
,
sizeof
(
long
));
...
...
@@ -3935,44 +3935,44 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
mac_MainConfig
->
phr_Config
->
choice
.
setup
.
prohibitPHR_Timer
=
LTE_MAC_MainConfig__phr_Config__setup__prohibitPHR_Timer_sf200
;
// sf20 = 20 subframes // LTE_MAC_MainConfig__phr_Config__setup__prohibitPHR_Timer_sf1000
mac_MainConfig
->
phr_Config
->
choice
.
setup
.
dl_PathlossChange
=
LTE_MAC_MainConfig__phr_Config__setup__dl_PathlossChange_dB3
;
// Value dB1 =1 dB, dB3 = 3 dB
if
(
!
NODE_IS_CU
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
if
(
NODE_IS_MONOLITHIC
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
/* CDRX Configuration */
// Need to check if UE is a BR UE
rnti_t
rnti
=
ue_context_pP
->
ue_id_rnti
;
module_id_t
module_id
=
ctxt_pP
->
module_id
;
int
UE_id
=
find_UE_id
(
module_id
,
rnti
);
eNB_MAC_INST
*
mac
=
RC
.
mac
[
module_id
];
UE_list_t
*
UE_list
=
&
(
mac
->
UE_list
);
if
(
UE_id
!=
-
1
)
{
if
((
rrc_inst
->
carrier
[
cc_id
].
sib1
->
tdd_Config
==
NULL
)
&&
(
UE_list
->
UE_template
[
ue_context_pP
->
ue_context
.
primaryCC_id
][
UE_id
].
rach_resource_type
==
0
))
{
// CDRX can be only configured in case of FDD and non BR UE (09/04/19)
LOG_D
(
RRC
,
"Processing the DRX configuration in RRC Connection Reconfiguration
\n
"
);
/* Process the IE drx_Config */
if
(
cc_id
<
MAX_NUM_CCs
)
{
mac_MainConfig
->
drx_Config
=
do_DrxConfig
(
cc_id
,
&
rrc_inst
->
configuration
,
UEcap
);
// drx_Config IE
}
else
{
LOG_E
(
RRC
,
"Invalid CC_id for DRX configuration
\n
"
);
}
eNB_MAC_INST
*
mac
=
RC
.
mac
[
module_id
];
UE_list_t
*
UE_list
=
&
(
mac
->
UE_list
);
/* Set timers and thresholds values in local MAC context of UE */
eNB_Config_Local_DRX
(
module_id
,
ue_context_pP
->
ue_id_rnti
,
mac_MainConfig
->
drx_Config
);
if
((
rrc_inst
->
carrier
[
cc_id
].
sib1
->
tdd_Config
==
NULL
)
&&
(
UE_list
->
UE_template
[
ue_context_pP
->
ue_context
.
primaryCC_id
][
UE_id
].
rach_resource_type
==
0
))
{
// CDRX can be only configured in case of FDD and non BR UE (09/04/19)
LOG_D
(
RRC
,
"Processing the DRX configuration in RRC Connection Reconfiguration
\n
"
);
LOG_D
(
RRC
,
"DRX configured in mac main config for RRC Connection Reconfiguration
\n
"
);
/* Process the IE drx_Config */
if
(
cc_id
<
MAX_NUM_CCs
)
{
mac_MainConfig
->
drx_Config
=
do_DrxConfig
(
cc_id
,
&
rrc_inst
->
configuration
,
UEcap
);
// drx_Config IE
if
(
mac_MainConfig
->
drx_Config
==
NULL
)
{
LOG_E
(
RRC
,
"drx_Configuration parameter is NULL, cannot configure local UE parameters
\n
"
);
}
else
{
/* Set timers and thresholds values in local MAC context of UE */
eNB_Config_Local_DRX
(
module_id
,
rnti
,
mac_MainConfig
->
drx_Config
);
LOG_D
(
RRC
,
"DRX configured in mac main config for RRC Connection Reconfiguration
\n
"
);
}
}
else
{
LOG_E
(
RRC
,
"Invalid CC_id for DRX configuration
\n
"
);
}
}
else
{
// CDRX not implemented for TDD and LTE-M (09/04/19)
mac_MainConfig
->
drx_Config
=
NULL
;
LOG_E
(
RRC
,
"CDRX not implemented for TDD and LTE-M
\n
"
)
;
}
}
else
{
// UE_id invalid
LOG_E
(
RRC
,
"Invalid UE_id found!
\n
"
);
mac_MainConfig
->
drx_Config
=
NULL
;
}
}
else
{
// No CDRX with the CU/DU split in this version
LOG_E
(
RRC
,
"CU/DU split activated
\n
"
);
mac_MainConfig
->
drx_Config
=
NULL
;
/* End of CDRX configuration */
}
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
...
...
@@ -6495,8 +6495,9 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
ue_context_pP
->
ue_context
.
ue_rrc_inactivity_timer
=
1
;
// reset rrc inactivity timer
if
(
NODE_IS_MONOLITHIC
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
/* CDRX:
(under test) activated when RRC Connection Reconfiguration was sent
*/
/* CDRX:
activated when RRC Connection Reconfiguration Complete is received
*/
int
UE_id_mac
=
find_UE_id
(
ctxt_pP
->
module_id
,
ue_context_pP
->
ue_context
.
rnti
);
if
(
UE_id_mac
==
-
1
)
{
LOG_E
(
RRC
,
"Can't find UE_id(MAC) of UE rnti %x
\n
"
,
ue_context_pP
->
ue_context
.
rnti
);
return
;
...
...
@@ -6506,7 +6507,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
if
(
UE_scheduling_control
->
cdrx_waiting_ack
==
TRUE
)
{
UE_scheduling_control
->
cdrx_waiting_ack
=
FALSE
;
// UE_scheduling_control->cdrx_configured = TRUE; // Set to TRUE when RRC Connection Reconfiguration is sent (under test)
UE_scheduling_control
->
cdrx_configured
=
TRUE
;
// Set to TRUE when RRC Connection Reconfiguration is received
LOG_I
(
RRC
,
"CDRX configuration activated after RRC Connection Reconfiguration Complete reception
\n
"
);
}
/* End of CDRX processing */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment