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
spbro
OpenXG-RAN
Commits
e89dfc02
Commit
e89dfc02
authored
Mar 18, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor RRC: do not duplicate configuration in rrc_gNB_carrier_t
parent
f646b9a5
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
106 additions
and
109 deletions
+106
-109
openair2/RRC/NR/L2_nr_interface.c
openair2/RRC/NR/L2_nr_interface.c
+1
-1
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+22
-18
openair2/RRC/NR/MESSAGES/asn1_msg.h
openair2/RRC/NR/MESSAGES/asn1_msg.h
+10
-8
openair2/RRC/NR/nr_rrc_defs.h
openair2/RRC/NR/nr_rrc_defs.h
+0
-8
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+57
-59
openair2/RRC/NR/rrc_gNB_nsa.c
openair2/RRC/NR/rrc_gNB_nsa.c
+16
-15
No files found.
openair2/RRC/NR/L2_nr_interface.c
View file @
e89dfc02
...
...
@@ -321,7 +321,7 @@ int8_t nr_mac_rrc_data_ind(const module_id_t module_idP,
ue_context_p
->
ue_context
.
Srb0
.
Active
=
1
;
RB_INSERT
(
rrc_nr_ue_tree_s
,
&
RC
.
nrrrc
[
module_idP
]
->
rrc_ue_head
,
ue_context_p
);
fill_initial_cellGroupConfig
(
ue_context_p
->
local_uid
,
&
cellGroupConfig
,
scc
,
&
RC
.
nrrrc
[
module_idP
]
->
carrier
);
fill_initial_cellGroupConfig
(
ue_context_p
->
local_uid
,
&
cellGroupConfig
,
scc
,
&
RC
.
nrrrc
[
module_idP
]
->
configuration
);
MessageDef
*
tmp
=
itti_alloc_new_message_sized
(
TASK_RRC_GNB
,
0
,
F1AP_INITIAL_UL_RRC_MESSAGE
,
sizeof
(
f1ap_initial_ul_rrc_message_t
)
+
sdu_lenP
);
f1ap_initial_ul_rrc_message_t
*
msg
=
&
F1AP_INITIAL_UL_RRC_MESSAGE
(
tmp
);
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
e89dfc02
...
...
@@ -197,6 +197,7 @@ uint8_t do_MIB_NR(gNB_RRC_INST *rrc,uint32_t frame) {
asn_enc_rval_t
enc_rval
;
rrc_gNB_carrier_data_t
*
carrier
=
&
rrc
->
carrier
;
const
gNB_RrcConfigurationReq
*
configuration
=
&
rrc
->
configuration
;
NR_BCCH_BCH_Message_t
*
mib
=
&
carrier
->
mib
;
NR_ServingCellConfigCommon_t
*
scc
=
carrier
->
servingcellconfigcommon
;
...
...
@@ -220,7 +221,7 @@ uint8_t do_MIB_NR(gNB_RRC_INST *rrc,uint32_t frame) {
mib
->
message
.
choice
.
mib
->
spare
.
size
=
1
;
mib
->
message
.
choice
.
mib
->
spare
.
bits_unused
=
7
;
// This makes a spare of 1 bits
mib
->
message
.
choice
.
mib
->
ssb_SubcarrierOffset
=
(
c
arrier
->
ssb_SubcarrierOffset
)
&
15
;
mib
->
message
.
choice
.
mib
->
ssb_SubcarrierOffset
=
(
c
onfiguration
->
ssb_SubcarrierOffset
)
&
15
;
/*
* The SIB1 will be sent in this allocation (Type0-PDCCH) : 38.213, 13-4 Table and 38.213 13-11 to 13-14 tables
...
...
@@ -1007,8 +1008,8 @@ long rrc_get_max_nr_csrs(uint8_t max_rbs, long b_SRS) {
void
fill_initial_SpCellConfig
(
int
uid
,
NR_SpCellConfig_t
*
SpCellConfig
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
)
{
const
gNB_RrcConfigurationReq
*
configuration
)
{
// This assert will never happen in the current implementation because NUMBER_OF_UE_MAX = 4.
// However, if in the future NUMBER_OF_UE_MAX is increased, it will be necessary to improve the allocation of SRS resources,
// where the startPosition = 2 or 3 and sl160 = 17, 17, 27 ... 157 only give us 30 different allocations.
...
...
@@ -1139,7 +1140,7 @@ void fill_initial_SpCellConfig(int uid,
ASN_SEQUENCE_ADD
(
&
srs_resset0
->
srs_ResourceIdList
->
list
,
srs_resset0_id
);
srs_Config
->
srs_ResourceToReleaseList
=
NULL
;
if
(
carrier
->
do_SRS
)
{
if
(
configuration
->
do_SRS
)
{
srs_resset0
->
resourceType
.
present
=
NR_SRS_ResourceSet__resourceType_PR_periodic
;
srs_resset0
->
resourceType
.
choice
.
periodic
=
calloc
(
1
,
sizeof
(
*
srs_resset0
->
resourceType
.
choice
.
periodic
));
srs_resset0
->
resourceType
.
choice
.
periodic
->
associatedCSI_RS
=
NULL
;
...
...
@@ -1183,7 +1184,7 @@ void fill_initial_SpCellConfig(int uid,
srs_res0
->
freqHopping
.
b_SRS
);
srs_res0
->
groupOrSequenceHopping
=
NR_SRS_Resource__groupOrSequenceHopping_neither
;
if
(
carrier
->
do_SRS
)
{
if
(
configuration
->
do_SRS
)
{
srs_res0
->
resourceType
.
present
=
NR_SRS_Resource__resourceType_PR_periodic
;
srs_res0
->
resourceType
.
choice
.
periodic
=
calloc
(
1
,
sizeof
(
*
srs_res0
->
resourceType
.
choice
.
periodic
));
srs_res0
->
resourceType
.
choice
.
periodic
->
periodicityAndOffset_p
.
present
=
NR_SRS_PeriodicityAndOffset_PR_sl160
;
...
...
@@ -1229,9 +1230,9 @@ void fill_initial_SpCellConfig(int uid,
long
*
delay
[
8
];
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
delay
[
i
]
=
calloc
(
1
,
sizeof
(
*
delay
[
i
]));
AssertFatal
(
c
arrier
->
minRXTXTIME
>=
2
&&
carrier
->
minRXTXTIME
<
7
,
"
check minRXTXTIME %d
\n
"
,
carrier
->
minRXTXTIME
);
*
delay
[
i
]
=
(
i
+
carrier
->
minRXTXTIME
)
;
AssertFatal
(
c
onfiguration
->
minRXTXTIME
>=
2
&&
configuration
->
minRXTXTIME
<
7
,
"
minRXTXTIME is %d but should be within [2,7)
\n
"
,
configuration
->
minRXTXTIME
);
*
delay
[
i
]
=
i
+
configuration
->
minRXTXTIME
;
ASN_SEQUENCE_ADD
(
&
pucch_Config
->
dl_DataToUL_ACK
->
list
,
delay
[
i
]);
}
...
...
@@ -1453,8 +1454,9 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
void
update_cellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
rrc_gNB_carrier_data_t
*
carrier
,
NR_UE_NR_Capability_t
*
uecap
)
{
NR_UE_NR_Capability_t
*
uecap
,
const
gNB_RrcConfigurationReq
*
configuration
)
{
NR_SpCellConfig_t
*
SpCellConfig
=
cellGroupConfig
->
spCellConfig
;
if
(
SpCellConfig
==
NULL
)
return
;
...
...
@@ -1462,14 +1464,14 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
NR_BWP_DownlinkDedicated_t
*
bwp_Dedicated
=
SpCellConfig
->
spCellConfigDedicated
->
initialDownlinkBWP
;
set_dl_mcs_table
(
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
subcarrierSpacing
,
c
arrier
->
force_256qam_off
?
NULL
:
uecap
,
bwp_Dedicated
,
scc
);
c
onfiguration
->
force_256qam_off
?
NULL
:
uecap
,
bwp_Dedicated
,
scc
);
struct
NR_ServingCellConfig__downlinkBWP_ToAddModList
*
DL_BWP_list
=
SpCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
;
if
(
DL_BWP_list
)
{
for
(
int
i
=
0
;
i
<
DL_BWP_list
->
list
.
count
;
i
++
){
NR_BWP_Downlink_t
*
bwp
=
DL_BWP_list
->
list
.
array
[
i
];
int
scs
=
bwp
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
;
set_dl_mcs_table
(
scs
,
c
arrier
->
force_256qam_off
?
NULL
:
uecap
,
bwp
->
bwp_Dedicated
,
carrier
->
servingcellconfigcommon
);
set_dl_mcs_table
(
scs
,
c
onfiguration
->
force_256qam_off
?
NULL
:
uecap
,
bwp
->
bwp_Dedicated
,
carrier
->
servingcellconfigcommon
);
}
}
}
...
...
@@ -1478,8 +1480,8 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
void
fill_initial_cellGroupConfig
(
int
uid
,
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
)
{
const
gNB_RrcConfigurationReq
*
configuration
)
{
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
NULL
;
NR_RLC_Config_t
*
rlc_Config
=
NULL
;
NR_LogicalChannelConfig_t
*
logicalChannelConfig
=
NULL
;
...
...
@@ -1569,7 +1571,7 @@ void fill_initial_cellGroupConfig(int uid,
cellGroupConfig
->
spCellConfig
=
calloc
(
1
,
sizeof
(
*
cellGroupConfig
->
spCellConfig
));
fill_initial_SpCellConfig
(
uid
,
cellGroupConfig
->
spCellConfig
,
scc
,
c
arrier
);
fill_initial_SpCellConfig
(
uid
,
cellGroupConfig
->
spCellConfig
,
scc
,
c
onfiguration
);
cellGroupConfig
->
sCellToAddModList
=
NULL
;
cellGroupConfig
->
sCellToReleaseList
=
NULL
;
...
...
@@ -1581,7 +1583,7 @@ uint8_t do_RRCSetup(rrc_gNB_ue_context_t *const ue_context_pP,
const
uint8_t
transaction_id
,
OCTET_STRING_t
*
masterCellGroup_from_DU
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
)
const
gNB_RrcConfigurationReq
*
configuration
)
//------------------------------------------------------------------------------
{
asn_enc_rval_t
enc_rval
;
...
...
@@ -1648,7 +1650,7 @@ uint8_t do_RRCSetup(rrc_gNB_ue_context_t *const ue_context_pP,
}
else
{
cellGroupConfig
=
calloc
(
1
,
sizeof
(
NR_CellGroupConfig_t
));
fill_initial_cellGroupConfig
(
ue_context_pP
->
local_uid
,
cellGroupConfig
,
scc
,
carrier
);
fill_initial_cellGroupConfig
(
ue_context_pP
->
local_uid
,
cellGroupConfig
,
scc
,
configuration
);
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_NR_CellGroupConfig
,
NULL
,
...
...
@@ -1896,6 +1898,7 @@ int16_t do_RRCReconfiguration(
struct
NR_RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList
*
dedicatedNAS_MessageList
,
rrc_gNB_ue_context_t
*
const
ue_context_pP
,
rrc_gNB_carrier_data_t
*
carrier
,
const
gNB_RrcConfigurationReq
*
configuration
,
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
NR_CellGroupConfig_t
*
cellGroupConfig
)
//------------------------------------------------------------------------------
...
...
@@ -1949,7 +1952,8 @@ int16_t do_RRCReconfiguration(
if
(
cellGroupConfig
!=
NULL
){
update_cellGroupConfig
(
cellGroupConfig
,
carrier
,
ue_context_pP
->
ue_context
.
UE_Capability_nr
);
ue_context_pP
->
ue_context
.
UE_Capability_nr
,
configuration
);
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_NR_CellGroupConfig
,
NULL
,
(
void
*
)
cellGroupConfig
,
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.h
View file @
e89dfc02
...
...
@@ -101,18 +101,19 @@ uint8_t do_RRCReject(uint8_t Mod_id,
uint8_t
*
const
buffer
);
void
fill_initial_SpCellConfig
(
int
uid
,
NR_SpCellConfig_t
*
SpCellConfig
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
);
NR_SpCellConfig_t
*
SpCellConfig
,
NR_ServingCellConfigCommon_t
*
scc
,
const
gNB_RrcConfigurationReq
*
configuration
);
void
fill_initial_cellGroupConfig
(
int
uid
,
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
);
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_ServingCellConfigCommon_t
*
scc
,
const
gNB_RrcConfigurationReq
*
configuration
);
void
update_cellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
rrc_gNB_carrier_data_t
*
carrier
,
NR_UE_NR_Capability_t
*
uecap
);
NR_UE_NR_Capability_t
*
uecap
,
const
gNB_RrcConfigurationReq
*
configuration
);
void
fill_mastercellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_CellGroupConfig_t
*
ue_context_mastercellGroup
);
...
...
@@ -121,7 +122,7 @@ uint8_t do_RRCSetup(rrc_gNB_ue_context_t *const ue_context_pP,
const
uint8_t
transaction_id
,
OCTET_STRING_t
*
masterCellGroup_from_DU
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
);
const
gNB_RrcConfigurationReq
*
configuration
);
uint8_t
do_NR_SecurityModeCommand
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
...
...
@@ -151,6 +152,7 @@ int16_t do_RRCReconfiguration(
struct
NR_RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList
*
dedicatedNAS_MessageList
,
rrc_gNB_ue_context_t
*
const
ue_context_pP
,
rrc_gNB_carrier_data_t
*
carrier
,
const
gNB_RrcConfigurationReq
*
configuration
,
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
NR_CellGroupConfig_t
*
cellGroupConfig
);
...
...
openair2/RRC/NR/nr_rrc_defs.h
View file @
e89dfc02
...
...
@@ -449,14 +449,6 @@ typedef struct {
NR_SIB2_t
*
sib2
;
NR_SIB3_t
*
sib3
;
NR_BCCH_DL_SCH_Message_t
systemInformation
;
// SIB23
int
ssb_SubcarrierOffset
;
int
sib1_tda
;
int
pdsch_AntennaPorts
;
int
pusch_AntennaPorts
;
int
minRXTXTIME
;
int
do_CSIRS
;
int
do_SRS
;
bool
force_256qam_off
;
NR_BCCH_DL_SCH_Message_t
*
siblock1
;
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
;
NR_PDCCH_ConfigSIB1_t
*
pdcch_ConfigSIB1
;
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
e89dfc02
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/rrc_gNB_nsa.c
View file @
e89dfc02
...
...
@@ -116,6 +116,7 @@ RB_PROTOTYPE(rrc_nr_ue_tree_s, rrc_gNB_ue_context_s, entries,
void
rrc_add_nsa_user
(
gNB_RRC_INST
*
rrc
,
struct
rrc_gNB_ue_context_s
*
ue_context_p
,
x2ap_ENDC_sgnb_addition_req_t
*
m
)
{
// generate nr-Config-r15 containers for LTE RRC : inside message for X2 EN-DC (CG-Config Message from 38.331)
rrc_gNB_carrier_data_t
*
carrier
=&
rrc
->
carrier
;
const
gNB_RrcConfigurationReq
*
configuration
=
&
rrc
->
configuration
;
MessageDef
*
msg
;
msg
=
itti_alloc_new_message
(
TASK_RRC_ENB
,
0
,
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
);
gtpv1u_enb_create_tunnel_req_t
create_tunnel_req
;
...
...
@@ -248,11 +249,11 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
reconfig_ies
,
ue_context_p
->
ue_context
.
secondaryCellGroup
,
ue_context_p
->
ue_context
.
UE_Capability_nr
,
c
arrier
->
pdsch_AntennaPorts
,
c
arrier
->
minRXTXTIME
,
c
arrier
->
do_CSIRS
,
c
arrier
->
do_SRS
,
c
arrier
->
force_256qam_off
,
c
onfiguration
->
pdsch_AntennaPorts
,
c
onfiguration
->
minRXTXTIME
,
c
onfiguration
->
do_CSIRS
,
c
onfiguration
->
do_SRS
,
c
onfiguration
->
force_256qam_off
,
ue_context_p
->
local_uid
);
ue_context_p
->
ue_id_rnti
=
ue_context_p
->
ue_context
.
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
newUE_Identity
;
NR_CG_Config_t
*
CG_Config
=
calloc
(
1
,
sizeof
(
*
CG_Config
));
...
...
@@ -350,11 +351,11 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
// configure MAC and RLC
if
(
NODE_IS_DU
(
rrc
->
node_type
))
{
rrc_mac_config_req_gNB
(
rrc
->
module_id
,
rrc
->
c
arrier
.
ssb_SubcarrierOffset
,
rrc
->
c
arrier
.
pdsch_AntennaPorts
,
rrc
->
carrier
.
pusch_AntennaPorts
,
rrc
->
c
arrier
.
sib1_tda
,
rrc
->
c
arrier
.
minRXTXTIME
,
rrc
->
c
onfiguration
.
ssb_SubcarrierOffset
,
rrc
->
c
onfiguration
.
pdsch_AntennaPorts
,
rrc
->
configuration
.
pusch_AntennaPorts
,
rrc
->
c
onfiguration
.
sib1_tda
,
rrc
->
c
onfiguration
.
minRXTXTIME
,
rrc
->
carrier
.
servingcellconfigcommon
,
&
rrc
->
carrier
.
mib
,
1
,
// add_ue flag
...
...
@@ -362,11 +363,11 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
ue_context_p
->
ue_context
.
secondaryCellGroup
);
}
else
{
rrc_mac_config_req_gNB
(
rrc
->
module_id
,
rrc
->
c
arrier
.
ssb_SubcarrierOffset
,
rrc
->
c
arrier
.
pdsch_AntennaPorts
,
rrc
->
c
arrier
.
pusch_AntennaPorts
,
rrc
->
c
arrier
.
sib1_tda
,
rrc
->
c
arrier
.
minRXTXTIME
,
rrc
->
c
onfiguration
.
ssb_SubcarrierOffset
,
rrc
->
c
onfiguration
.
pdsch_AntennaPorts
,
rrc
->
c
onfiguration
.
pusch_AntennaPorts
,
rrc
->
c
onfiguration
.
sib1_tda
,
rrc
->
c
onfiguration
.
minRXTXTIME
,
NULL
,
NULL
,
1
,
// add_ue flag
...
...
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