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
Michael Black
OpenXG-RAN
Commits
e5eb58d2
Commit
e5eb58d2
authored
Apr 26, 2019
by
Louis Adrien Dufrene
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix for CU/DU split error. To test.
parent
489726d0
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
42 additions
and
35 deletions
+42
-35
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+42
-35
No files found.
openair2/RRC/LTE/rrc_eNB.c
View file @
e5eb58d2
...
@@ -2983,38 +2983,43 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
...
@@ -2983,38 +2983,43 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
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
.
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
mac_MainConfig
->
phr_Config
->
choice
.
setup
.
dl_PathlossChange
=
LTE_MAC_MainConfig__phr_Config__setup__dl_PathlossChange_dB3
;
// Value dB1 =1 dB, dB3 = 3 dB
/* CDRX Configuration */
if
(
!
NODE_IS_CU
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
// Need to check if UE is a BR UE
/* CDRX Configuration */
rnti_t
rnti
=
ue_context_pP
->
ue_id_rnti
;
// Need to check if UE is a BR UE
module_id_t
module_id
=
ctxt_pP
->
module_id
;
rnti_t
rnti
=
ue_context_pP
->
ue_id_rnti
;
int
UE_id
=
find_UE_id
(
module_id
,
rnti
);
module_id_t
module_id
=
ctxt_pP
->
module_id
;
eNB_MAC_INST
*
mac
=
RC
.
mac
[
module_id
];
int
UE_id
=
find_UE_id
(
module_id
,
rnti
);
UE_list_t
*
UE_list
=
&
(
mac
->
UE_list
);
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
)
&&
if
(
UE_id
!=
-
1
)
{
(
UE_list
->
UE_template
[
ue_context_pP
->
ue_context
.
primaryCC_id
][
UE_id
].
rach_resource_type
==
0
))
{
if
((
rrc_inst
->
carrier
[
cc_id
].
sib1
->
tdd_Config
==
NULL
)
&&
// CDRX can be only configured in case of FDD and non BR UE (09/04/19)
(
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
,
"Processing the DRX configuration in RRC Connection Reconfiguration
\n
"
);
/* Process the IE drx_Config */
/* Process the IE drx_Config */
if
(
cc_id
<
MAX_NUM_CCs
)
{
if
(
cc_id
<
MAX_NUM_CCs
)
{
mac_MainConfig
->
drx_Config
=
do_DrxConfig
(
module_id
,
cc_id
,
&
rrc_inst
->
configuration
,
UEcap
);
// drx_Config IE
mac_MainConfig
->
drx_Config
=
do_DrxConfig
(
module_id
,
cc_id
,
&
rrc_inst
->
configuration
,
UEcap
);
// drx_Config IE
}
else
{
}
else
{
LOG_E
(
RRC
,
"Invalid CC_id for DRX configuration
\n
"
);
LOG_E
(
RRC
,
"Invalid CC_id for DRX configuration
\n
"
);
}
}
/* Set timers and thresholds values in local MAC context of UE */
/* 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
);
eNB_Config_Local_DRX
(
module_id
,
ue_context_pP
->
ue_id_rnti
,
mac_MainConfig
->
drx_Config
);
LOG_D
(
RRC
,
"DRX configured in mac main config for RRC Connection Reconfiguration
\n
"
);
LOG_D
(
RRC
,
"DRX configured in mac main config for RRC Connection Reconfiguration
\n
"
);
}
else
{
// CDRX not implemented for TDD and LTE-M (09/04/19)
}
else
{
// CDRX not implemented for TDD and LTE-M (09/04/19)
mac_MainConfig
->
drx_Config
=
NULL
;
}
}
else
{
// UE_id invalid
LOG_E
(
RRC
,
"Invalid UE_id found!
\n
"
);
mac_MainConfig
->
drx_Config
=
NULL
;
mac_MainConfig
->
drx_Config
=
NULL
;
}
}
}
else
{
//
UE_id invalid
}
else
{
//
No CDRX with the CU/DU split in this version
LOG_E
(
RRC
,
"
Invalid UE_id found!
\n
"
);
LOG_E
(
RRC
,
"
CU/DU split activated
\n
"
);
mac_MainConfig
->
drx_Config
=
NULL
;
mac_MainConfig
->
drx_Config
=
NULL
;
}
}
...
@@ -5464,15 +5469,17 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
...
@@ -5464,15 +5469,17 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
ue_context_pP
->
ue_context
.
ue_reestablishment_timer
=
0
;
ue_context_pP
->
ue_context
.
ue_reestablishment_timer
=
0
;
ue_context_pP
->
ue_context
.
ue_rrc_inactivity_timer
=
1
;
// reset rrc inactivity timer
ue_context_pP
->
ue_context
.
ue_rrc_inactivity_timer
=
1
;
// reset rrc inactivity timer
/* CDRX: activated if ack was expected */
if
(
!
NODE_IS_CU
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
int
UE_id_mac
=
find_UE_id
(
ctxt_pP
->
module_id
,
ue_context_pP
->
ue_context
.
rnti
);
/* CDRX: activated if ack was expected */
UE_sched_ctrl
*
UE_scheduling_control
=
&
(
RC
.
mac
[
ctxt_pP
->
module_id
]
->
UE_list
.
UE_sched_ctrl
[
UE_id_mac
]);
int
UE_id_mac
=
find_UE_id
(
ctxt_pP
->
module_id
,
ue_context_pP
->
ue_context
.
rnti
);
UE_sched_ctrl
*
UE_scheduling_control
=
&
(
RC
.
mac
[
ctxt_pP
->
module_id
]
->
UE_list
.
UE_sched_ctrl
[
UE_id_mac
]);
if
(
UE_scheduling_control
->
cdrx_waiting_ack
==
TRUE
)
{
UE_scheduling_control
->
cdrx_waiting_ack
=
FALSE
;
if
(
UE_scheduling_control
->
cdrx_waiting_ack
==
TRUE
)
{
UE_scheduling_control
->
cdrx_configured
=
TRUE
;
UE_scheduling_control
->
cdrx_waiting_ack
=
FALSE
;
LOG_I
(
RRC
,
"CDRX configuration activated after RRC Connection Reconfiguration Complete reception
\n
"
);
UE_scheduling_control
->
cdrx_configured
=
TRUE
;
}
LOG_I
(
RRC
,
"CDRX configuration activated after RRC Connection Reconfiguration Complete reception
\n
"
);
}
}
// No CDRX with the CU/DU split in this version of the code
T
(
T_ENB_RRC_CONNECTION_RECONFIGURATION_COMPLETE
,
T
(
T_ENB_RRC_CONNECTION_RECONFIGURATION_COMPLETE
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
module_id
),
...
...
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