Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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 UE
Commits
1c08f190
Commit
1c08f190
authored
Nov 17, 2020
by
masayuki.harada
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix warning and compile error.
parent
311790b9
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 @
1c08f190
...
...
@@ -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 @
1c08f190
...
...
@@ -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 @
1c08f190
...
...
@@ -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 @
1c08f190
...
...
@@ -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