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
canghaiwuhen
OpenXG-RAN
Commits
be31d514
Commit
be31d514
authored
Nov 17, 2020
by
masayuki.harada
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix warning and compile error.
parent
5cbffcc3
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
592 additions
and
598 deletions
+592
-598
openair2/RRC/NR/rrc_gNB_NGAP.c
openair2/RRC/NR/rrc_gNB_NGAP.c
+1
-0
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+586
-594
openair2/RRC/NR_UE/rrc_proto.h
openair2/RRC/NR_UE/rrc_proto.h
+3
-3
targets/COMMON/openairinterface5g_limits.h
targets/COMMON/openairinterface5g_limits.h
+2
-1
No files found.
openair2/RRC/NR/rrc_gNB_NGAP.c
View file @
be31d514
...
...
@@ -126,6 +126,7 @@ nr_rrc_pdcp_config_security(
//------------------------------------------------------------------------------
{
NR_SRB_ToAddModList_t
*
SRB_configList
=
ue_context_pP
->
ue_context
.
SRB_configList
;
(
void
)
SRB_configList
;
uint8_t
*
kRRCenc
=
NULL
;
uint8_t
*
kRRCint
=
NULL
;
uint8_t
*
kUPenc
=
NULL
;
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
be31d514
...
...
@@ -192,6 +192,7 @@ extern rlc_op_status_t nr_rrc_rlc_config_asn1_req (const protocol_ctxt_t * con
// from LTE-RRC DL-DCCH RRCConnectionReconfiguration nr-secondary-cell-group-config (encoded)
int8_t
nr_rrc_ue_decode_secondary_cellgroup_config
(
const
module_id_t
module_id
,
const
uint8_t
*
buffer
,
const
uint32_t
size
){
...
...
@@ -215,11 +216,11 @@ int8_t nr_rrc_ue_decode_secondary_cellgroup_config(
return
-
1
;
}
if
(
NR_UE_rrc_inst
->
cell_group_config
==
NULL
){
NR_UE_rrc_inst
->
cell_group_config
=
cell_group_config
;
nr_rrc_ue_process_scg_config
(
cell_group_config
);
if
(
NR_UE_rrc_inst
[
module_id
].
cell_group_config
==
NULL
){
NR_UE_rrc_inst
[
module_id
].
cell_group_config
=
cell_group_config
;
nr_rrc_ue_process_scg_config
(
module_id
,
cell_group_config
);
}
else
{
nr_rrc_ue_process_scg_config
(
cell_group_config
);
nr_rrc_ue_process_scg_config
(
module_id
,
cell_group_config
);
SEQUENCE_free
(
&
asn_DEF_NR_CellGroupConfig
,
(
void
*
)
cell_group_config
,
0
);
}
...
...
@@ -239,18 +240,17 @@ int8_t nr_rrc_ue_process_RadioBearerConfig(NR_RadioBearerConfig_t *RadioBearerCo
// from LTE-RRC DL-DCCH RRCConnectionReconfiguration nr-secondary-cell-group-config (decoded)
// RRCReconfiguration
int8_t
nr_rrc_ue_process_rrcReconfiguration
(
NR_RRCReconfiguration_t
*
rrcReconfiguration
){
int8_t
nr_rrc_ue_process_rrcReconfiguration
(
const
module_id_t
module_id
,
NR_RRCReconfiguration_t
*
rrcReconfiguration
){
switch
(
rrcReconfiguration
->
criticalExtensions
.
present
){
case
NR_RRCReconfiguration__criticalExtensions_PR_rrcReconfiguration
:
if
(
rrcReconfiguration
->
criticalExtensions
.
choice
.
rrcReconfiguration
->
radioBearerConfig
!=
NULL
){
if
(
NR_UE_rrc_inst
->
radio_bearer_config
==
NULL
){
NR_UE_rrc_inst
->
radio_bearer_config
=
rrcReconfiguration
->
criticalExtensions
.
choice
.
rrcReconfiguration
->
radioBearerConfig
;
if
(
NR_UE_rrc_inst
[
module_id
].
radio_bearer_config
==
NULL
){
NR_UE_rrc_inst
[
module_id
].
radio_bearer_config
=
rrcReconfiguration
->
criticalExtensions
.
choice
.
rrcReconfiguration
->
radioBearerConfig
;
}
else
{
nr_rrc_ue_process_RadioBearerConfig
(
rrcReconfiguration
->
criticalExtensions
.
choice
.
rrcReconfiguration
->
radioBearerConfig
);
}
}
if
(
rrcReconfiguration
->
criticalExtensions
.
choice
.
rrcReconfiguration
->
secondaryCellGroup
!=
NULL
){
NR_CellGroupConfig_t
*
cellGroupConfig
=
NULL
;
uper_decode
(
NULL
,
...
...
@@ -261,37 +261,33 @@ int8_t nr_rrc_ue_process_rrcReconfiguration(NR_RRCReconfiguration_t *rrcReconfig
xer_fprint
(
stdout
,
&
asn_DEF_NR_CellGroupConfig
,
(
const
void
*
)
cellGroupConfig
);
if
(
NR_UE_rrc_inst
->
cell_group_config
==
NULL
){
if
(
NR_UE_rrc_inst
[
module_id
].
cell_group_config
==
NULL
){
// first time receive the configuration, just use the memory allocated from uper_decoder. TODO this is not good implementation, need to maintain RRC_INST own structure every time.
NR_UE_rrc_inst
->
cell_group_config
=
cellGroupConfig
;
nr_rrc_ue_process_scg_config
(
cellGroupConfig
);
NR_UE_rrc_inst
[
module_id
].
cell_group_config
=
cellGroupConfig
;
nr_rrc_ue_process_scg_config
(
module_id
,
cellGroupConfig
);
}
else
{
// after first time, update it and free the memory after.
SEQUENCE_free
(
&
asn_DEF_NR_CellGroupConfig
,
(
void
*
)
NR_UE_rrc_inst
->
cell_group_config
,
0
);
NR_UE_rrc_inst
->
cell_group_config
=
cellGroupConfig
;
nr_rrc_ue_process_scg_config
(
cellGroupConfig
);
SEQUENCE_free
(
&
asn_DEF_NR_CellGroupConfig
,
(
void
*
)
NR_UE_rrc_inst
[
module_id
].
cell_group_config
,
0
);
NR_UE_rrc_inst
[
module_id
].
cell_group_config
=
cellGroupConfig
;
nr_rrc_ue_process_scg_config
(
module_id
,
cellGroupConfig
);
}
}
if
(
rrcReconfiguration
->
criticalExtensions
.
choice
.
rrcReconfiguration
->
measConfig
!=
NULL
){
if
(
NR_UE_rrc_inst
->
meas_config
==
NULL
){
NR_UE_rrc_inst
->
meas_config
=
rrcReconfiguration
->
criticalExtensions
.
choice
.
rrcReconfiguration
->
measConfig
;
if
(
NR_UE_rrc_inst
[
module_id
].
meas_config
==
NULL
){
NR_UE_rrc_inst
[
module_id
].
meas_config
=
rrcReconfiguration
->
criticalExtensions
.
choice
.
rrcReconfiguration
->
measConfig
;
}
else
{
// if some element need to be updated
nr_rrc_ue_process_meas_config
(
rrcReconfiguration
->
criticalExtensions
.
choice
.
rrcReconfiguration
->
measConfig
);
}
}
if
(
rrcReconfiguration
->
criticalExtensions
.
choice
.
rrcReconfiguration
->
lateNonCriticalExtension
!=
NULL
){
// unuse now
}
if
(
rrcReconfiguration
->
criticalExtensions
.
choice
.
rrcReconfiguration
->
nonCriticalExtension
!=
NULL
){
// unuse now
}
break
;
case
NR_RRCReconfiguration__criticalExtensions_PR_NOTHING
:
case
NR_RRCReconfiguration__criticalExtensions_PR_criticalExtensionsFuture
:
default:
...
...
@@ -309,15 +305,15 @@ int8_t nr_rrc_ue_process_meas_config(NR_MeasConfig_t *meas_config){
return
0
;
}
int8_t
nr_rrc_ue_process_scg_config
(
NR_CellGroupConfig_t
*
cell_group_config
){
int8_t
nr_rrc_ue_process_scg_config
(
const
module_id_t
module_id
,
NR_CellGroupConfig_t
*
cell_group_config
){
int
i
;
if
(
NR_UE_rrc_inst
->
cell_group_config
==
NULL
){
if
(
NR_UE_rrc_inst
[
module_id
].
cell_group_config
==
NULL
){
// initial list
if
(
cell_group_config
->
spCellConfig
!=
NULL
){
if
(
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
!=
NULL
){
if
(
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
!=
NULL
){
for
(
i
=
0
;
i
<
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
count
;
++
i
){
RRC_LIST_MOD_ADD
(
NR_UE_rrc_inst
->
BWP_Downlink_list
,
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
i
],
bwp_Id
);
RRC_LIST_MOD_ADD
(
NR_UE_rrc_inst
[
module_id
].
BWP_Downlink_list
,
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
i
],
bwp_Id
);
}
}
}
...
...
@@ -329,16 +325,15 @@ int8_t nr_rrc_ue_process_scg_config(NR_CellGroupConfig_t *cell_group_config){
// process element of list to be add by RRC message
if
(
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
!=
NULL
){
for
(
i
=
0
;
i
<
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
count
;
++
i
){
RRC_LIST_MOD_ADD
(
NR_UE_rrc_inst
->
BWP_Downlink_list
,
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
i
],
bwp_Id
);
RRC_LIST_MOD_ADD
(
NR_UE_rrc_inst
[
module_id
].
BWP_Downlink_list
,
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
i
],
bwp_Id
);
}
}
// process element of list to be release by RRC message
if
(
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToReleaseList
!=
NULL
){
for
(
i
=
0
;
i
<
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToReleaseList
->
list
.
count
;
++
i
){
NR_BWP_Downlink_t
*
freeP
=
NULL
;
RRC_LIST_MOD_REL
(
NR_UE_rrc_inst
->
BWP_Downlink_list
,
bwp_Id
,
*
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToReleaseList
->
list
.
array
[
i
],
freeP
);
RRC_LIST_MOD_REL
(
NR_UE_rrc_inst
[
module_id
].
BWP_Downlink_list
,
bwp_Id
,
*
cell_group_config
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToReleaseList
->
list
.
array
[
i
],
freeP
);
if
(
freeP
!=
NULL
){
SEQUENCE_free
(
&
asn_DEF_NR_BWP_Downlink
,
(
void
*
)
freeP
,
0
);
}
...
...
@@ -352,10 +347,8 @@ int8_t nr_rrc_ue_process_scg_config(NR_CellGroupConfig_t *cell_group_config){
}
void
process_nsa_message
(
NR_UE_RRC_INST_t
*
rrc
,
nsa_message_t
nsa_message_type
,
void
*
message
,
int
msg_len
)
{
module_id_t
module_id
=
0
;
// TODO
switch
(
nsa_message_type
)
{
case
nr_SecondaryCellGroupConfig_r15
:
{
...
...
@@ -372,9 +365,10 @@ void process_nsa_message(NR_UE_RRC_INST_t *rrc, nsa_message_t nsa_message_type,
SEQUENCE_free
(
&
asn_DEF_NR_RRCReconfiguration
,
RRCReconfiguration
,
1
);
return
;
}
nr_rrc_ue_process_rrcReconfiguration
(
RRCReconfiguration
);
nr_rrc_ue_process_rrcReconfiguration
(
module_id
,
RRCReconfiguration
);
}
break
;
case
nr_RadioBearerConfigX_r15
:
{
NR_RadioBearerConfig_t
*
RadioBearerConfig
=
NULL
;
...
...
@@ -393,6 +387,7 @@ void process_nsa_message(NR_UE_RRC_INST_t *rrc, nsa_message_t nsa_message_type,
nr_rrc_ue_process_RadioBearerConfig
(
RadioBearerConfig
);
}
break
;
default:
AssertFatal
(
1
==
0
,
"Unknown message %d
\n
"
,
nsa_message_type
);
break
;
...
...
@@ -401,66 +396,67 @@ void process_nsa_message(NR_UE_RRC_INST_t *rrc, nsa_message_t nsa_message_type,
}
NR_UE_RRC_INST_t
*
openair_rrc_top_init_ue_nr
(
char
*
rrc_config_path
){
int
nr_ue
;
if
(
NB_NR_UE_INST
>
0
){
NR_UE_rrc_inst
=
(
NR_UE_RRC_INST_t
*
)
malloc
(
NB_NR_UE_INST
*
sizeof
(
NR_UE_RRC_INST_t
));
memset
(
NR_UE_rrc_inst
,
0
,
NB_NR_UE_INST
*
sizeof
(
NR_UE_RRC_INST_t
));
for
(
nr_ue
=
0
;
nr_ue
<
NB_NR_UE_INST
;
nr_ue
++
){
// fill UE-NR-Capability @ UE-CapabilityRAT-Container here.
NR_UE_rrc_inst
[
0
].
selected_plmn_identity
=
1
;
NR_UE_rrc_inst
[
nr_ue
].
selected_plmn_identity
=
1
;
// init RRC lists
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
RLC_Bearer_Config_list
,
NR_maxLC_ID
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SchedulingRequest_list
,
NR_maxNrofSR_ConfigPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
TAG_list
,
NR_maxNrofTAGs
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
TDD_UL_DL_SlotConfig_list
,
NR_maxNrofSlots
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
BWP_Downlink_list
,
NR_maxNrofBWPs
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
ControlResourceSet_list
[
0
],
3
);
// for init-dl-bwp
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
ControlResourceSet_list
[
1
],
3
);
// for dl-bwp id=0
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
ControlResourceSet_list
[
2
],
3
);
// for dl-bwp id=1
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
ControlResourceSet_list
[
3
],
3
);
// for dl-bwp id=2
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
ControlResourceSet_list
[
4
],
3
);
// for dl-bwp id=3
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SearchSpace_list
[
0
],
10
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SearchSpace_list
[
1
],
10
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SearchSpace_list
[
2
],
10
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SearchSpace_list
[
3
],
10
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SearchSpace_list
[
4
],
10
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SlotFormatCombinationsPerCell_list
[
0
],
NR_maxNrofAggregatedCellsPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SlotFormatCombinationsPerCell_list
[
1
],
NR_maxNrofAggregatedCellsPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SlotFormatCombinationsPerCell_list
[
2
],
NR_maxNrofAggregatedCellsPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SlotFormatCombinationsPerCell_list
[
3
],
NR_maxNrofAggregatedCellsPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SlotFormatCombinationsPerCell_list
[
4
],
NR_maxNrofAggregatedCellsPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
TCI_State_list
[
0
],
NR_maxNrofTCI_States
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
TCI_State_list
[
1
],
NR_maxNrofTCI_States
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
TCI_State_list
[
2
],
NR_maxNrofTCI_States
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
TCI_State_list
[
3
],
NR_maxNrofTCI_States
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
TCI_State_list
[
4
],
NR_maxNrofTCI_States
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
RateMatchPattern_list
[
0
],
NR_maxNrofRateMatchPatterns
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
RateMatchPattern_list
[
1
],
NR_maxNrofRateMatchPatterns
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
RateMatchPattern_list
[
2
],
NR_maxNrofRateMatchPatterns
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
RateMatchPattern_list
[
3
],
NR_maxNrofRateMatchPatterns
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
RateMatchPattern_list
[
4
],
NR_maxNrofRateMatchPatterns
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
ZP_CSI_RS_Resource_list
[
0
],
NR_maxNrofZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
ZP_CSI_RS_Resource_list
[
1
],
NR_maxNrofZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
ZP_CSI_RS_Resource_list
[
2
],
NR_maxNrofZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
ZP_CSI_RS_Resource_list
[
3
],
NR_maxNrofZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
ZP_CSI_RS_Resource_list
[
4
],
NR_maxNrofZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
Aperidic_ZP_CSI_RS_ResourceSet_list
[
0
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
Aperidic_ZP_CSI_RS_ResourceSet_list
[
1
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
Aperidic_ZP_CSI_RS_ResourceSet_list
[
2
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
Aperidic_ZP_CSI_RS_ResourceSet_list
[
3
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
Aperidic_ZP_CSI_RS_ResourceSet_list
[
4
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SP_ZP_CSI_RS_ResourceSet_list
[
0
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SP_ZP_CSI_RS_ResourceSet_list
[
1
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SP_ZP_CSI_RS_ResourceSet_list
[
2
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SP_ZP_CSI_RS_ResourceSet_list
[
3
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
SP_ZP_CSI_RS_ResourceSet_list
[
4
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
NZP_CSI_RS_Resource_list
,
NR_maxNrofNZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
NZP_CSI_RS_ResourceSet_list
,
NR_maxNrofNZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
CSI_IM_Resource_list
,
NR_maxNrofCSI_IM_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
CSI_IM_ResourceSet_list
,
NR_maxNrofCSI_IM_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
CSI_SSB_ResourceSet_list
,
NR_maxNrofCSI_SSB_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
CSI_ResourceConfig_list
,
NR_maxNrofCSI_ResourceConfigurations
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
CSI_ReportConfig_list
,
NR_maxNrofCSI_ReportConfigurations
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
RLC_Bearer_Config_list
,
NR_maxLC_ID
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SchedulingRequest_list
,
NR_maxNrofSR_ConfigPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
TAG_list
,
NR_maxNrofTAGs
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
TDD_UL_DL_SlotConfig_list
,
NR_maxNrofSlots
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
BWP_Downlink_list
,
NR_maxNrofBWPs
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
ControlResourceSet_list
[
0
],
3
);
// for init-dl-bwp
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
ControlResourceSet_list
[
1
],
3
);
// for dl-bwp id=0
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
ControlResourceSet_list
[
2
],
3
);
// for dl-bwp id=1
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
ControlResourceSet_list
[
3
],
3
);
// for dl-bwp id=2
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
ControlResourceSet_list
[
4
],
3
);
// for dl-bwp id=3
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SearchSpace_list
[
0
],
10
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SearchSpace_list
[
1
],
10
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SearchSpace_list
[
2
],
10
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SearchSpace_list
[
3
],
10
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SearchSpace_list
[
4
],
10
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SlotFormatCombinationsPerCell_list
[
0
],
NR_maxNrofAggregatedCellsPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SlotFormatCombinationsPerCell_list
[
1
],
NR_maxNrofAggregatedCellsPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SlotFormatCombinationsPerCell_list
[
2
],
NR_maxNrofAggregatedCellsPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SlotFormatCombinationsPerCell_list
[
3
],
NR_maxNrofAggregatedCellsPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SlotFormatCombinationsPerCell_list
[
4
],
NR_maxNrofAggregatedCellsPerCellGroup
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
TCI_State_list
[
0
],
NR_maxNrofTCI_States
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
TCI_State_list
[
1
],
NR_maxNrofTCI_States
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
TCI_State_list
[
2
],
NR_maxNrofTCI_States
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
TCI_State_list
[
3
],
NR_maxNrofTCI_States
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
TCI_State_list
[
4
],
NR_maxNrofTCI_States
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
RateMatchPattern_list
[
0
],
NR_maxNrofRateMatchPatterns
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
RateMatchPattern_list
[
1
],
NR_maxNrofRateMatchPatterns
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
RateMatchPattern_list
[
2
],
NR_maxNrofRateMatchPatterns
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
RateMatchPattern_list
[
3
],
NR_maxNrofRateMatchPatterns
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
RateMatchPattern_list
[
4
],
NR_maxNrofRateMatchPatterns
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
ZP_CSI_RS_Resource_list
[
0
],
NR_maxNrofZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
ZP_CSI_RS_Resource_list
[
1
],
NR_maxNrofZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
ZP_CSI_RS_Resource_list
[
2
],
NR_maxNrofZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
ZP_CSI_RS_Resource_list
[
3
],
NR_maxNrofZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
ZP_CSI_RS_Resource_list
[
4
],
NR_maxNrofZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
Aperidic_ZP_CSI_RS_ResourceSet_list
[
0
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
Aperidic_ZP_CSI_RS_ResourceSet_list
[
1
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
Aperidic_ZP_CSI_RS_ResourceSet_list
[
2
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
Aperidic_ZP_CSI_RS_ResourceSet_list
[
3
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
Aperidic_ZP_CSI_RS_ResourceSet_list
[
4
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SP_ZP_CSI_RS_ResourceSet_list
[
0
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SP_ZP_CSI_RS_ResourceSet_list
[
1
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SP_ZP_CSI_RS_ResourceSet_list
[
2
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SP_ZP_CSI_RS_ResourceSet_list
[
3
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
SP_ZP_CSI_RS_ResourceSet_list
[
4
],
NR_maxNrofZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
NZP_CSI_RS_Resource_list
,
NR_maxNrofNZP_CSI_RS_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
NZP_CSI_RS_ResourceSet_list
,
NR_maxNrofNZP_CSI_RS_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
CSI_IM_Resource_list
,
NR_maxNrofCSI_IM_Resources
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
CSI_IM_ResourceSet_list
,
NR_maxNrofCSI_IM_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
CSI_SSB_ResourceSet_list
,
NR_maxNrofCSI_SSB_ResourceSets
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
CSI_ResourceConfig_list
,
NR_maxNrofCSI_ResourceConfigurations
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
[
nr_ue
].
CSI_ReportConfig_list
,
NR_maxNrofCSI_ReportConfigurations
);
}
if
(
get_softmodem_params
()
->
phy_test
==
1
||
get_softmodem_params
()
->
do_ra
==
1
)
{
// read in files for RRCReconfiguration and RBconfig
...
...
@@ -535,7 +531,7 @@ int8_t nr_rrc_ue_decode_NR_BCCH_BCH_Message(
const
uint8_t
buffer_len
){
int
i
;
NR_BCCH_BCH_Message_t
*
bcch_message
=
NULL
;
NR_MIB_t
*
mib
=
NR_UE_rrc_inst
->
mib
;
NR_MIB_t
*
mib
=
NR_UE_rrc_inst
[
module_id
].
mib
;
if
(
mib
!=
NULL
){
SEQUENCE_free
(
&
asn_DEF_NR_BCCH_BCH_Message
,
(
void
*
)
mib
,
1
);
...
...
@@ -1197,6 +1193,7 @@ int nr_decode_SIB1( const protocol_ctxt_t *const ctxt_pP, const uint8_t gNB_inde
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SIB1
,
VCD_FUNCTION_OUT
);
return
0
;
}
int
nr_decode_BCCH_DLSCH_Message
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
uint8_t
gNB_index
,
...
...
@@ -1341,7 +1338,6 @@ nr_rrc_ue_process_masterCellGroup(
if
(
cellGroupConfig
->
ext2
->
bh_RLC_ChannelToAddModList_r16
!=
NULL
){
//TODO (perform the BH RLC channel addition/modification as specified in 5.3.5.5.11)
}
}
/*--------------------------------------------------*/
...
...
@@ -1350,6 +1346,7 @@ static void rrc_ue_generate_RRCSetupComplete(
const
uint8_t
gNB_index
,
const
uint8_t
Transaction_id
,
uint8_t
sel_plmn_id
){
uint8_t
buffer
[
100
];
uint8_t
size
;
const
char
*
nas_msg
;
...
...
@@ -1478,7 +1475,6 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_CCCH
,
VCD_FUNCTION_OUT
);
return
rval
;
}
...
...
@@ -1501,10 +1497,8 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
buffer_len
,
0
,
0
);
if
((
dec_rval
.
code
!=
RC_OK
)
||
(
dec_rval
.
consumed
==
0
))
{
for
(
i
=
0
;
i
<
buffer_len
;
i
++
)
printf
(
"%02x "
,
bufferP
[
i
]);
printf
(
"
\n
"
);
// free the memory
SEQUENCE_free
(
&
asn_DEF_NR_DL_DCCH_Message
,
(
void
*
)
nr_dl_dcch_msg
,
1
);
...
...
@@ -1514,17 +1508,15 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
if
(
nr_dl_dcch_msg
!=
NULL
){
switch
(
nr_dl_dcch_msg
->
message
.
present
){
case
NR_DL_DCCH_MessageType_PR_c1
:
switch
(
nr_dl_dcch_msg
->
message
.
choice
.
c1
->
present
){
case
NR_DL_DCCH_MessageType__c1_PR_rrcReconfiguration
:
nr_rrc_ue_process_rrcReconfiguration
(
nr_dl_dcch_msg
->
message
.
choice
.
c1
->
choice
.
rrcReconfiguration
);
nr_rrc_ue_process_rrcReconfiguration
(
module_id
,
nr_dl_dcch_msg
->
message
.
choice
.
c1
->
choice
.
rrcReconfiguration
);
break
;
case
NR_DL_DCCH_MessageType__c1_PR_NOTHING
:
case
NR_DL_DCCH_MessageType__c1_PR_rrcResume
:
case
NR_DL_DCCH_MessageType__c1_PR_rrcRelease
:
msg_p
=
itti_alloc_new_message
(
TASK_RRC_NRUE
,
NAS_CONN_RELEASE_IND
);
if
((
nr_dl_dcch_msg
->
message
.
choice
.
c1
->
choice
.
rrcRelease
->
criticalExtensions
.
present
==
NR_RRCRelease__criticalExtensions_PR_rrcRelease
)
&&
(
nr_dl_dcch_msg
->
message
.
choice
.
c1
->
present
==
NR_DL_DCCH_MessageType__c1_PR_rrcRelease
)){
nr_dl_dcch_msg
->
message
.
choice
.
c1
->
choice
.
rrcRelease
->
criticalExtensions
.
choice
.
rrcRelease
->
deprioritisationReq
->
deprioritisationTimer
=
...
...
@@ -1534,6 +1526,7 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
}
itti_send_msg_to_task
(
TASK_RRC_NRUE
,
module_id
,
msg_p
);
break
;
case
NR_DL_DCCH_MessageType__c1_PR_rrcReestablishment
:
case
NR_DL_DCCH_MessageType__c1_PR_securityModeCommand
:
case
NR_DL_DCCH_MessageType__c1_PR_dlInformationTransfer
:
...
...
@@ -1566,7 +1559,6 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
}
return
0
;
}
...
...
@@ -1628,11 +1620,11 @@ nr_rrc_ue_process_securityModeCommand(
}
LOG_D
(
NR_RRC
,
"[UE %d] security mode is %x
\n
"
,
ctxt_pP
->
module_id
,
securityMode
);
NR_UE_rrc_inst
->
cipheringAlgorithm
=
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
cipheringAlgorithm
=
securityModeCommand
->
criticalExtensions
.
choice
.
securityModeCommand
->
securityConfigSMC
.
securityAlgorithmConfig
.
cipheringAlgorithm
;
NR_UE_rrc_inst
->
integrityProtAlgorithm
=
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
integrityProtAlgorithm
=
*
securityModeCommand
->
criticalExtensions
.
choice
.
securityModeCommand
->
securityConfigSMC
.
securityAlgorithmConfig
.
integrityProtAlgorithm
;
memset
((
void
*
)
&
ul_dcch_msg
,
0
,
sizeof
(
NR_UL_DCCH_Message_t
));
memset
((
void
*
)
&
ul_dcch_msg
,
0
,
sizeof
(
NR_UL_DCCH_Message_t
));
//memset((void *)&SecurityModeCommand,0,sizeof(SecurityModeCommand_t));
ul_dcch_msg
.
message
.
present
=
NR_UL_DCCH_MessageType_PR_c1
;
ul_dcch_msg
.
message
.
choice
.
c1
=
calloc
(
1
,
sizeof
(
*
ul_dcch_msg
.
message
.
choice
.
c1
));
...
...
@@ -1666,22 +1658,22 @@ memset((void *)&ul_dcch_msg,0,sizeof(NR_UL_DCCH_Message_t));
"%02x%02x%02x%02x"
"%02x%02x%02x%02x"
"%02x%02x%02x%02x
\n
"
,
NR_UE_rrc_inst
->
kgnb
[
0
],
NR_UE_rrc_inst
->
kgnb
[
1
],
NR_UE_rrc_inst
->
kgnb
[
2
],
NR_UE_rrc_inst
->
kgnb
[
3
],
NR_UE_rrc_inst
->
kgnb
[
4
],
NR_UE_rrc_inst
->
kgnb
[
5
],
NR_UE_rrc_inst
->
kgnb
[
6
],
NR_UE_rrc_inst
->
kgnb
[
7
],
NR_UE_rrc_inst
->
kgnb
[
8
],
NR_UE_rrc_inst
->
kgnb
[
9
],
NR_UE_rrc_inst
->
kgnb
[
10
],
NR_UE_rrc_inst
->
kgnb
[
11
],
NR_UE_rrc_inst
->
kgnb
[
12
],
NR_UE_rrc_inst
->
kgnb
[
13
],
NR_UE_rrc_inst
->
kgnb
[
14
],
NR_UE_rrc_inst
->
kgnb
[
15
],
NR_UE_rrc_inst
->
kgnb
[
16
],
NR_UE_rrc_inst
->
kgnb
[
17
],
NR_UE_rrc_inst
->
kgnb
[
18
],
NR_UE_rrc_inst
->
kgnb
[
19
],
NR_UE_rrc_inst
->
kgnb
[
20
],
NR_UE_rrc_inst
->
kgnb
[
21
],
NR_UE_rrc_inst
->
kgnb
[
22
],
NR_UE_rrc_inst
->
kgnb
[
23
],
NR_UE_rrc_inst
->
kgnb
[
24
],
NR_UE_rrc_inst
->
kgnb
[
25
],
NR_UE_rrc_inst
->
kgnb
[
26
],
NR_UE_rrc_inst
->
kgnb
[
27
],
NR_UE_rrc_inst
->
kgnb
[
28
],
NR_UE_rrc_inst
->
kgnb
[
29
],
NR_UE_rrc_inst
->
kgnb
[
30
],
NR_UE_rrc_inst
->
kgnb
[
31
]);
derive_key_rrc_enc
(
NR_UE_rrc_inst
->
cipheringAlgorithm
,
NR_UE_rrc_inst
->
kgnb
,
&
kRRCenc
);
derive_key_rrc_int
(
NR_UE_rrc_inst
->
integrityProtAlgorithm
,
NR_UE_rrc_inst
->
kgnb
,
&
kRRCint
);
derive_key_up_enc
(
NR_UE_rrc_inst
->
cipheringAlgorithm
,
NR_UE_rrc_inst
->
kgnb
,
&
kUPenc
);
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
0
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
1
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
2
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
3
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
4
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
5
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
6
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
7
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
8
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
9
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
10
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
11
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
12
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
13
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
14
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
15
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
16
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
17
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
18
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
19
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
20
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
21
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
22
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
23
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
24
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
25
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
26
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
27
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
28
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
29
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
30
],
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
[
31
]);
derive_key_rrc_enc
(
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
cipheringAlgorithm
,
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
,
&
kRRCenc
);
derive_key_rrc_int
(
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
integrityProtAlgorithm
,
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
,
&
kRRCint
);
derive_key_up_enc
(
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
cipheringAlgorithm
,
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
kgnb
,
&
kUPenc
);
if
(
securityMode
!=
0xff
)
{
pdcp_config_set_security
(
ctxt_pP
,
pdcp_p
,
0
,
0
,
NR_UE_rrc_inst
->
cipheringAlgorithm
|
(
NR_UE_rrc_inst
->
integrityProtAlgorithm
<<
4
),
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
cipheringAlgorithm
|
(
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
integrityProtAlgorithm
<<
4
),
kRRCenc
,
kRRCint
,
kUPenc
);
}
else
{
LOG_I
(
NR_RRC
,
"skipped pdcp_config_set_security() as securityMode == 0x%02x"
,
...
...
@@ -1740,7 +1732,8 @@ memset((void *)&ul_dcch_msg,0,sizeof(NR_UL_DCCH_Message_t));
buffer
,
PDCP_TRANSMISSION_MODE_CONTROL
);
#endif
}
else
LOG_W
(
NR_RRC
,
"securityModeCommand->criticalExtensions.present (%d) != NR_SecurityModeCommand__criticalExtensions_PR_securityModeCommand
\n
"
,
}
else
LOG_W
(
NR_RRC
,
"securityModeCommand->criticalExtensions.present (%d) != NR_SecurityModeCommand__criticalExtensions_PR_securityModeCommand
\n
"
,
securityModeCommand
->
criticalExtensions
.
present
);
}
...
...
@@ -2020,7 +2013,6 @@ nr_sa_rrc_ue_process_radioBearerConfig(
}
if
(
radioBearerConfig
->
srb_ToAddModList
!=
NULL
)
{
if
(
radioBearerConfig
->
securityConfig
!=
NULL
)
{
if
(
*
radioBearerConfig
->
securityConfig
->
keyToUse
==
NR_SecurityConfig__keyToUse_master
)
{
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
cipheringAlgorithm
=
...
...
openair2/RRC/NR_UE/rrc_proto.h
View file @
be31d514
...
...
@@ -59,12 +59,12 @@ NR_UE_RRC_INST_t* openair_rrc_top_init_ue_nr(char*);
\param size length of buffer*/
//TODO check to use which one
//int8_t nr_rrc_ue_decode_rrcReconfiguration(const uint8_t *buffer, const uint32_t size);
int8_t
nr_rrc_ue_decode_secondary_cellgroup_config
(
const
uint8_t
*
buffer
,
const
uint32_t
size
);
int8_t
nr_rrc_ue_decode_secondary_cellgroup_config
(
const
module_id_t
module_id
,
const
uint8_t
*
buffer
,
const
uint32_t
size
);
/**\brief Process NR RRC connection reconfiguration via SRB3
\param rrcReconfiguration decoded rrc connection reconfiguration*/
int8_t
nr_rrc_ue_process_rrcReconfiguration
(
NR_RRCReconfiguration_t
*
rrcReconfiguration
);
int8_t
nr_rrc_ue_process_rrcReconfiguration
(
const
module_id_t
module_id
,
NR_RRCReconfiguration_t
*
rrcReconfiguration
);
/**\prief Process measurement config from NR RRC connection reconfiguration message
\param meas_config measurement configuration*/
...
...
@@ -73,7 +73,7 @@ int8_t nr_rrc_ue_process_meas_config(NR_MeasConfig_t *meas_config);
/**\prief Process secondary cell group config from NR RRC connection reconfiguration message or EN-DC primitives
\param cell_group_config secondary cell group configuration*/
//TODO check EN-DC function call flow.
int8_t
nr_rrc_ue_process_scg_config
(
NR_CellGroupConfig_t
*
cell_group_config
);
int8_t
nr_rrc_ue_process_scg_config
(
const
module_id_t
module_id
,
NR_CellGroupConfig_t
*
cell_group_config
);
/**\prief Process radio bearer config from NR RRC connection reconfiguration message
\param radio_bearer_config radio bearer configuration*/
...
...
targets/COMMON/openairinterface5g_limits.h
View file @
be31d514
...
...
@@ -20,7 +20,8 @@
# define NUMBER_OF_CONNECTED_gNB_MAX 1
# endif
# else
# define NUMBER_OF_UE_MAX 1
# define NUMBER_OF_UE_MAX 4
# define NUMBER_OF_NR_UE_MAX 4
# define NUMBER_OF_UCI_VARS_MAX 56
# define NUMBER_OF_CONNECTED_eNB_MAX 1
# define NUMBER_OF_CONNECTED_gNB_MAX 1
...
...
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