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
alex037yang
OpenXG-RAN
Commits
3187127b
Commit
3187127b
authored
Oct 29, 2019
by
LAD
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[to test] Improvements added to F1AP interface (no UE management messaging)
parent
d1f54a98
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
59 deletions
+37
-59
openair2/F1AP/f1ap_du_rrc_message_transfer.c
openair2/F1AP/f1ap_du_rrc_message_transfer.c
+9
-35
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+11
-10
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+17
-14
No files found.
openair2/F1AP/f1ap_du_rrc_message_transfer.c
View file @
3187127b
...
...
@@ -405,45 +405,19 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
}
if
(
rrcConnectionReconfiguration_r8
->
radioResourceConfigDedicated
->
mac_MainConfig
)
{
LOG_I
(
F1AP
,
"MAC Main Configuration is present
\n
"
);
mac_MainConfig
=
&
rrcConnectionReconfiguration_r8
->
radioResourceConfigDedicated
->
mac_MainConfig
->
choice
.
explicitValue
;
/* CDRX Configuration */
// Need to check if UE is a BR UE
int
UE_id
=
find_UE_id
(
ctxt
.
module_id
,
ctxt
.
rnti
);
if
(
UE_id
!=
-
1
)
{
eNB_RRC_INST
*
rrc_inst
=
RC
.
rrc
[
ctxt
.
module_id
];
uint8_t
cc_id
=
ue_context_p
->
ue_context
.
primaryCC_id
;
eNB_MAC_INST
*
mac
=
RC
.
mac
[
ctxt
.
module_id
];
UE_list_t
*
UE_list
=
&
(
mac
->
UE_list
);
if
(
rrc_inst
->
carrier
[
cc_id
].
sib1
->
tdd_Config
==
NULL
&&
UE_list
->
UE_template
[
cc_id
][
UE_id
].
rach_resource_type
==
0
)
{
// CDRX can be only configured in case of FDD and non BR UE (27/09/19)
LOG_D
(
F1AP
,
"Processing the DRX configuration in DU RRC Connection Reconfiguration
\n
"
);
/* Process the IE drx_Config */
if
(
cc_id
<
MAX_NUM_CCs
)
{
LTE_UE_EUTRA_Capability_t
*
UEcap
=
ue_context_p
->
ue_context
.
UE_Capability
;
mac_MainConfig
->
drx_Config
=
do_DrxConfig
(
cc_id
,
&
rrc_inst
->
configuration
,
UEcap
);
// drx_Config IE
if
(
mac_MainConfig
->
drx_Config
==
NULL
)
{
LOG_E
(
F1AP
,
"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
(
ctxt
.
module_id
,
ctxt
.
rnti
,
mac_MainConfig
->
drx_Config
);
LOG_D
(
F1AP
,
"DRX configured in mac main config for RRC Connection Reconfiguration
\n
"
);
}
}
else
{
LOG_E
(
F1AP
,
"Invalid CC_id for DRX configuration
\n
"
);
}
}
else
{
// CDRX not implemented for TDD and LTE-M (09/04/19)
LOG_I
(
F1AP
,
"CDRX not implemented for TDD and LTE-M
\n
"
);
}
}
else
{
// UE_id invalid
LOG_E
(
F1AP
,
"Invalid UE_id found!
\n
"
);
}
if
(
mac_MainConfig
->
drx_Config
==
NULL
)
{
LOG_W
(
F1AP
,
"drx_Configuration parameter is NULL, cannot configure local UE parameters or CDRX is deactivated
\n
"
);
}
else
{
/* Set timers and thresholds values in local MAC context of UE */
eNB_Config_Local_DRX
(
ctxt
.
module_id
,
ctxt
.
rnti
,
mac_MainConfig
->
drx_Config
);
LOG_D
(
F1AP
,
"DRX configured in mac main config for RRC Connection Reconfiguration
\n
"
);
/* End of CDRX configuration */
}
}
LTE_MeasGapConfig_t
*
measGapConfig
=
NULL
;
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
3187127b
...
...
@@ -630,24 +630,29 @@ LTE_DRX_Config_t *do_DrxConfig(int CC_id,
LTE_UE_EUTRA_Capability_t
*
UEcap
)
//-----------------------------------------------------------------------------
{
/* Need UE capabilities */
if
(
!
UEcap
)
{
LOG_E
(
RRC
,
"[do_DrxConfig] No UEcap pointer
\n
"
);
return
NULL
;
}
/* Check CC id */
if
(
CC_id
>=
MAX_NUM_CCs
)
{
LOG_E
(
RRC
,
"[do_DrxConfig] Invalid CC_id for DRX configuration
\n
"
);
return
NULL
;
}
/* No CDRX configuration */
if
(
configuration
->
radioresourceconfig
[
CC_id
].
drx_Config_present
==
LTE_DRX_Config_PR_NOTHING
)
{
return
NULL
;
}
/* CDRX not implemented for TDD */
if
(
configuration
->
frame_type
[
CC_id
]
==
1
)
{
LOG_E
(
RRC
,
"[do_DrxConfig] CDRX not implemented for TDD
\n
"
);
return
NULL
;
}
/* Need UE capabilities */
if
(
!
UEcap
)
{
LOG_E
(
RRC
,
"[do_DrxConfig] No UEcap pointer
\n
"
);
return
NULL
;
}
/* Check the UE capabilities, CDRX not implemented for Coverage Extension */
LTE_UE_EUTRA_Capability_v920_IEs_t
*
cap_920
=
NULL
;
LTE_UE_EUTRA_Capability_v940_IEs_t
*
cap_940
=
NULL
;
...
...
@@ -733,10 +738,6 @@ LTE_DRX_Config_t *do_DrxConfig(int CC_id,
}
else
LOG_W
(
RRC
,
"[do_DrxConfig] Not enough featureGroupIndicators bits
\n
"
);
}
else
LOG_W
(
RRC
,
"[do_DrxConfig] No featureGroupIndicators pointer
\n
"
);
if
(
configuration
->
radioresourceconfig
[
CC_id
].
drx_Config_present
==
LTE_DRX_Config_PR_NOTHING
)
{
return
NULL
;
}
drxConfig
=
(
LTE_DRX_Config_t
*
)
malloc
(
sizeof
(
LTE_DRX_Config_t
));
if
(
drxConfig
==
NULL
)
return
NULL
;
memset
(
drxConfig
,
0
,
sizeof
(
LTE_DRX_Config_t
));
...
...
openair2/RRC/LTE/rrc_eNB.c
View file @
3187127b
...
...
@@ -3202,25 +3202,25 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
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
->
drx_Config
=
NULL
;
/* CDRX Configuration */
rnti_t
rnti
=
ue_context_pP
->
ue_id_rnti
;
module_id_t
module_id
=
ctxt_pP
->
module_id
;
LOG_D
(
RRC
,
"Processing the DRX configuration in RRC Connection Reconfiguration
\n
"
);
/* Process the IE drx_Config */
mac_MainConfig
->
drx_Config
=
do_DrxConfig
(
cc_id
,
&
rrc_inst
->
configuration
,
UEcap
);
// drx_Config IE
if
(
NODE_IS_MONOLITHIC
(
rrc_inst
->
node_type
))
{
/* CDRX Configuration */
LOG_D
(
RRC
,
"Processing the DRX configuration in RRC Connection Reconfiguration
\n
"
);
/* Process the IE drx_Config */
mac_MainConfig
->
drx_Config
=
do_DrxConfig
(
cc_id
,
&
rrc_inst
->
configuration
,
UEcap
);
// drx_Config IE
if
(
mac_MainConfig
->
drx_Config
==
NULL
)
{
LOG_W
(
RRC
,
"drx_Configuration parameter is NULL, cannot configure local UE parameters or CDRX is deactivated
\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
"
);
}
/* End of CDRX configuration */
}
}
/* End of CDRX configuration */
#if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0))
sr_ProhibitTimer_r9
=
CALLOC
(
1
,
sizeof
(
long
));
...
...
@@ -6473,24 +6473,27 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
ue_context_pP
->
ue_context
.
ue_reestablishment_timer
=
0
;
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: 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
);
/* CDRX: activated when RRC Connection Reconfiguration Complete is received */
rnti_t
rnti
=
ue_context_pP
->
ue_id_rnti
;
module_id_t
module_id
=
ctxt_pP
->
module_id
;
if
(
NODE_IS_MONOLITHIC
(
RC
.
rrc
[
module_id
]
->
node_type
))
{
int
UE_id_mac
=
find_UE_id
(
module_id
,
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
);
LOG_E
(
RRC
,
"Can't find UE_id(MAC) of UE rnti %x
\n
"
,
rnti
);
return
;
}
UE_sched_ctrl_t
*
UE_scheduling_control
=
&
(
RC
.
mac
[
ctxt_pP
->
module_id
]
->
UE_list
.
UE_sched_ctrl
[
UE_id_mac
]);
UE_sched_ctrl_t
*
UE_scheduling_control
=
&
(
RC
.
mac
[
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
;
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 */
}
/* End of CDRX processing */
T
(
T_ENB_RRC_CONNECTION_RECONFIGURATION_COMPLETE
,
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