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
ab654ac1
Commit
ab654ac1
authored
Mar 28, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/force-256qam-off' into integration_2022_wk13
parents
404bcf78
70265d9c
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
153 additions
and
154 deletions
+153
-154
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+8
-1
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+8
-1
openair2/COMMON/rrc_messages_types.h
openair2/COMMON/rrc_messages_types.h
+1
-0
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+3
-1
openair2/GNB_APP/gnb_paramdef.h
openair2/GNB_APP/gnb_paramdef.h
+6
-1
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
-7
openair2/RRC/NR/nr_rrc_proto.h
openair2/RRC/NR/nr_rrc_proto.h
+2
-8
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+57
-58
openair2/RRC/NR/rrc_gNB_nsa.c
openair2/RRC/NR/rrc_gNB_nsa.c
+21
-33
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+14
-17
No files found.
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
ab654ac1
...
@@ -789,7 +789,14 @@ int main(int argc, char **argv)
...
@@ -789,7 +789,14 @@ int main(int argc, char **argv)
N_RB_DL
,
g_mcsTableIdx
);
N_RB_DL
,
g_mcsTableIdx
);
// TODO do a UECAP for phy-sim
// TODO do a UECAP for phy-sim
fill_default_secondaryCellGroup
(
scc
,
scd
,
secondaryCellGroup
,
UE_Capability_nr
,
0
,
1
,
n_tx
,
6
,
0
,
0
,
0
);
const
gNB_RrcConfigurationReq
conf
=
{
.
pdsch_AntennaPorts
=
n_tx
,
.
minRXTXTIME
=
6
,
.
do_CSIRS
=
0
,
.
do_SRS
=
0
,
.
force_256qam_off
=
false
};
fill_default_secondaryCellGroup
(
scc
,
scd
,
secondaryCellGroup
,
UE_Capability_nr
,
0
,
1
,
&
conf
,
0
);
/* RRC parameter validation for secondaryCellGroup */
/* RRC parameter validation for secondaryCellGroup */
fix_scd
(
scd
);
fix_scd
(
scd
);
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
ab654ac1
...
@@ -731,7 +731,14 @@ int main(int argc, char **argv)
...
@@ -731,7 +731,14 @@ int main(int argc, char **argv)
prepare_scd
(
scd
);
prepare_scd
(
scd
);
// TODO do a UECAP for phy-sim
// TODO do a UECAP for phy-sim
fill_default_secondaryCellGroup
(
scc
,
scd
,
secondaryCellGroup
,
NULL
,
0
,
1
,
n_tx
,
0
,
0
,
0
,
0
);
const
gNB_RrcConfigurationReq
conf
=
{
.
pdsch_AntennaPorts
=
n_tx
,
.
minRXTXTIME
=
0
,
.
do_CSIRS
=
0
,
.
do_SRS
=
0
,
.
force_256qam_off
=
false
};
fill_default_secondaryCellGroup
(
scc
,
scd
,
secondaryCellGroup
,
NULL
,
0
,
1
,
&
conf
,
0
);
// xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, (const void*)secondaryCellGroup);
// xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, (const void*)secondaryCellGroup);
...
...
openair2/COMMON/rrc_messages_types.h
View file @
ab654ac1
...
@@ -418,6 +418,7 @@ typedef struct NRRrcConfigurationReq_s {
...
@@ -418,6 +418,7 @@ typedef struct NRRrcConfigurationReq_s {
int
minRXTXTIME
;
int
minRXTXTIME
;
int
do_CSIRS
;
int
do_CSIRS
;
int
do_SRS
;
int
do_SRS
;
bool
force_256qam_off
;
int
pusch_TargetSNRx10
;
int
pusch_TargetSNRx10
;
int
pucch_TargetSNRx10
;
int
pucch_TargetSNRx10
;
}
gNB_RrcConfigurationReq
;
}
gNB_RrcConfigurationReq
;
...
...
openair2/GNB_APP/gnb_config.c
View file @
ab654ac1
...
@@ -1176,8 +1176,10 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
...
@@ -1176,8 +1176,10 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
NRRRC_CONFIGURATION_REQ
(
msg_p
).
sib1_tda
=
*
GNBParamList
.
paramarray
[
i
][
GNB_SIB1_TDA_IDX
].
iptr
;
NRRRC_CONFIGURATION_REQ
(
msg_p
).
sib1_tda
=
*
GNBParamList
.
paramarray
[
i
][
GNB_SIB1_TDA_IDX
].
iptr
;
LOG_I
(
RRC
,
"Do CSI-RS %d
\n
"
,
*
GNBParamList
.
paramarray
[
i
][
GNB_DO_CSIRS_IDX
].
iptr
);
LOG_I
(
RRC
,
"Do CSI-RS %d
\n
"
,
*
GNBParamList
.
paramarray
[
i
][
GNB_DO_CSIRS_IDX
].
iptr
);
NRRRC_CONFIGURATION_REQ
(
msg_p
).
do_CSIRS
=
*
GNBParamList
.
paramarray
[
i
][
GNB_DO_CSIRS_IDX
].
iptr
;
NRRRC_CONFIGURATION_REQ
(
msg_p
).
do_CSIRS
=
*
GNBParamList
.
paramarray
[
i
][
GNB_DO_CSIRS_IDX
].
iptr
;
printf
(
"Do SRS %d
\n
"
,
*
GNBParamList
.
paramarray
[
i
][
GNB_DO_SRS_IDX
].
iptr
);
LOG_I
(
RRC
,
"Do SRS %d
\n
"
,
*
GNBParamList
.
paramarray
[
i
][
GNB_DO_SRS_IDX
].
iptr
);
NRRRC_CONFIGURATION_REQ
(
msg_p
).
do_SRS
=
*
GNBParamList
.
paramarray
[
i
][
GNB_DO_SRS_IDX
].
iptr
;
NRRRC_CONFIGURATION_REQ
(
msg_p
).
do_SRS
=
*
GNBParamList
.
paramarray
[
i
][
GNB_DO_SRS_IDX
].
iptr
;
NRRRC_CONFIGURATION_REQ
(
msg_p
).
force_256qam_off
=
*
GNBParamList
.
paramarray
[
i
][
GNB_FORCE256QAMOFF_IDX
].
iptr
;
LOG_I
(
RRC
,
"256 QAM: %s
\n
"
,
NRRRC_CONFIGURATION_REQ
(
msg_p
).
force_256qam_off
?
"force off"
:
"may be on"
);
NRRRC_CONFIGURATION_REQ
(
msg_p
).
scc
=
scc
;
NRRRC_CONFIGURATION_REQ
(
msg_p
).
scc
=
scc
;
NRRRC_CONFIGURATION_REQ
(
msg_p
).
scd
=
scd
;
NRRRC_CONFIGURATION_REQ
(
msg_p
).
scd
=
scd
;
...
...
openair2/GNB_APP/gnb_paramdef.h
View file @
ab654ac1
...
@@ -122,8 +122,11 @@ typedef enum {
...
@@ -122,8 +122,11 @@ typedef enum {
#define GNB_CONFIG_STRING_NRCELLID "nr_cellid"
#define GNB_CONFIG_STRING_NRCELLID "nr_cellid"
#define GNB_CONFIG_STRING_MINRXTXTIME "min_rxtxtime"
#define GNB_CONFIG_STRING_MINRXTXTIME "min_rxtxtime"
#define GNB_CONFIG_STRING_ULPRBBLACKLIST "ul_prbblacklist"
#define GNB_CONFIG_STRING_ULPRBBLACKLIST "ul_prbblacklist"
#define GNB_CONFIG_STRING_FORCE256QAMOFF "force_256qam_off"
#define GNB_CONFIG_HLP_FORCE256QAMOFF "suppress activation of 256 QAM despite UE support"
/*-----------------------------------------------------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------------------------------------------------*/
/* cell configuration parameters */
/* cell configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
...
@@ -151,7 +154,8 @@ typedef enum {
...
@@ -151,7 +154,8 @@ typedef enum {
{GNB_CONFIG_STRING_DOSRS, NULL, 0, iptr:NULL, defintval:0, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_DOSRS, NULL, 0, iptr:NULL, defintval:0, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_NRCELLID, NULL, 0, u64ptr:NULL, defint64val:1, TYPE_UINT64, 0}, \
{GNB_CONFIG_STRING_NRCELLID, NULL, 0, u64ptr:NULL, defint64val:1, TYPE_UINT64, 0}, \
{GNB_CONFIG_STRING_MINRXTXTIME, NULL, 0, iptr:NULL, defintval:2, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_MINRXTXTIME, NULL, 0, iptr:NULL, defintval:2, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_ULPRBBLACKLIST, NULL, 0, strptr:NULL, defstrval:"", TYPE_STRING, 0} \
{GNB_CONFIG_STRING_ULPRBBLACKLIST, NULL, 0, strptr:NULL, defstrval:"", TYPE_STRING, 0}, \
{GNB_CONFIG_STRING_FORCE256QAMOFF, GNB_CONFIG_HLP_FORCE256QAMOFF, PARAMFLAG_BOOL, iptr:NULL, defintval:0, TYPE_INT, 0} \
}
}
#define GNB_GNB_ID_IDX 0
#define GNB_GNB_ID_IDX 0
...
@@ -177,6 +181,7 @@ typedef enum {
...
@@ -177,6 +181,7 @@ typedef enum {
#define GNB_NRCELLID_IDX 20
#define GNB_NRCELLID_IDX 20
#define GNB_MINRXTXTIME_IDX 21
#define GNB_MINRXTXTIME_IDX 21
#define GNB_ULPRBBLACKLIST_IDX 22
#define GNB_ULPRBBLACKLIST_IDX 22
#define GNB_FORCE256QAMOFF_IDX 23
#define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD}
#define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD}
#define GNBPARAMS_CHECK { \
#define GNBPARAMS_CHECK { \
...
...
openair2/RRC/NR/L2_nr_interface.c
View file @
ab654ac1
...
@@ -321,7 +321,7 @@ int8_t nr_mac_rrc_data_ind(const module_id_t module_idP,
...
@@ -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
;
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
);
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
);
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
);
f1ap_initial_ul_rrc_message_t
*
msg
=
&
F1AP_INITIAL_UL_RRC_MESSAGE
(
tmp
);
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
ab654ac1
...
@@ -197,6 +197,7 @@ uint8_t do_MIB_NR(gNB_RRC_INST *rrc,uint32_t frame) {
...
@@ -197,6 +197,7 @@ uint8_t do_MIB_NR(gNB_RRC_INST *rrc,uint32_t frame) {
asn_enc_rval_t
enc_rval
;
asn_enc_rval_t
enc_rval
;
rrc_gNB_carrier_data_t
*
carrier
=
&
rrc
->
carrier
;
rrc_gNB_carrier_data_t
*
carrier
=
&
rrc
->
carrier
;
const
gNB_RrcConfigurationReq
*
configuration
=
&
rrc
->
configuration
;
NR_BCCH_BCH_Message_t
*
mib
=
&
carrier
->
mib
;
NR_BCCH_BCH_Message_t
*
mib
=
&
carrier
->
mib
;
NR_ServingCellConfigCommon_t
*
scc
=
carrier
->
servingcellconfigcommon
;
NR_ServingCellConfigCommon_t
*
scc
=
carrier
->
servingcellconfigcommon
;
...
@@ -220,7 +221,7 @@ uint8_t do_MIB_NR(gNB_RRC_INST *rrc,uint32_t frame) {
...
@@ -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
.
size
=
1
;
mib
->
message
.
choice
.
mib
->
spare
.
bits_unused
=
7
;
// This makes a spare of 1 bits
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
* 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) {
...
@@ -1007,8 +1008,8 @@ long rrc_get_max_nr_csrs(uint8_t max_rbs, long b_SRS) {
void
fill_initial_SpCellConfig
(
int
uid
,
void
fill_initial_SpCellConfig
(
int
uid
,
NR_SpCellConfig_t
*
SpCellConfig
,
NR_SpCellConfig_t
*
SpCellConfig
,
NR_ServingCellConfigCommon_t
*
scc
,
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.
// 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,
// 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.
// 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,
...
@@ -1139,7 +1140,7 @@ void fill_initial_SpCellConfig(int uid,
ASN_SEQUENCE_ADD
(
&
srs_resset0
->
srs_ResourceIdList
->
list
,
srs_resset0_id
);
ASN_SEQUENCE_ADD
(
&
srs_resset0
->
srs_ResourceIdList
->
list
,
srs_resset0_id
);
srs_Config
->
srs_ResourceToReleaseList
=
NULL
;
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
.
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
=
calloc
(
1
,
sizeof
(
*
srs_resset0
->
resourceType
.
choice
.
periodic
));
srs_resset0
->
resourceType
.
choice
.
periodic
->
associatedCSI_RS
=
NULL
;
srs_resset0
->
resourceType
.
choice
.
periodic
->
associatedCSI_RS
=
NULL
;
...
@@ -1183,7 +1184,7 @@ void fill_initial_SpCellConfig(int uid,
...
@@ -1183,7 +1184,7 @@ void fill_initial_SpCellConfig(int uid,
srs_res0
->
freqHopping
.
b_SRS
);
srs_res0
->
freqHopping
.
b_SRS
);
srs_res0
->
groupOrSequenceHopping
=
NR_SRS_Resource__groupOrSequenceHopping_neither
;
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
.
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
=
calloc
(
1
,
sizeof
(
*
srs_res0
->
resourceType
.
choice
.
periodic
));
srs_res0
->
resourceType
.
choice
.
periodic
->
periodicityAndOffset_p
.
present
=
NR_SRS_PeriodicityAndOffset_PR_sl160
;
srs_res0
->
resourceType
.
choice
.
periodic
->
periodicityAndOffset_p
.
present
=
NR_SRS_PeriodicityAndOffset_PR_sl160
;
...
@@ -1229,9 +1230,9 @@ void fill_initial_SpCellConfig(int uid,
...
@@ -1229,9 +1230,9 @@ void fill_initial_SpCellConfig(int uid,
long
*
delay
[
8
];
long
*
delay
[
8
];
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
delay
[
i
]
=
calloc
(
1
,
sizeof
(
*
delay
[
i
]));
delay
[
i
]
=
calloc
(
1
,
sizeof
(
*
delay
[
i
]));
AssertFatal
(
c
arrier
->
minRXTXTIME
>=
2
&&
carrier
->
minRXTXTIME
<
7
,
AssertFatal
(
c
onfiguration
->
minRXTXTIME
>=
2
&&
configuration
->
minRXTXTIME
<
7
,
"
check minRXTXTIME %d
\n
"
,
carrier
->
minRXTXTIME
);
"
minRXTXTIME is %d but should be within [2,7)
\n
"
,
configuration
->
minRXTXTIME
);
*
delay
[
i
]
=
(
i
+
carrier
->
minRXTXTIME
)
;
*
delay
[
i
]
=
i
+
configuration
->
minRXTXTIME
;
ASN_SEQUENCE_ADD
(
&
pucch_Config
->
dl_DataToUL_ACK
->
list
,
delay
[
i
]);
ASN_SEQUENCE_ADD
(
&
pucch_Config
->
dl_DataToUL_ACK
->
list
,
delay
[
i
]);
}
}
...
@@ -1453,8 +1454,9 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
...
@@ -1453,8 +1454,9 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
void
update_cellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
void
update_cellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
rrc_gNB_carrier_data_t
*
carrier
,
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
;
NR_SpCellConfig_t
*
SpCellConfig
=
cellGroupConfig
->
spCellConfig
;
if
(
SpCellConfig
==
NULL
)
return
;
if
(
SpCellConfig
==
NULL
)
return
;
...
@@ -1462,14 +1464,14 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
...
@@ -1462,14 +1464,14 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
NR_BWP_DownlinkDedicated_t
*
bwp_Dedicated
=
SpCellConfig
->
spCellConfigDedicated
->
initialDownlinkBWP
;
NR_BWP_DownlinkDedicated_t
*
bwp_Dedicated
=
SpCellConfig
->
spCellConfigDedicated
->
initialDownlinkBWP
;
set_dl_mcs_table
(
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
subcarrierSpacing
,
set_dl_mcs_table
(
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
subcarrierSpacing
,
uecap
,
bwp_Dedicated
,
scc
);
configuration
->
force_256qam_off
?
NULL
:
uecap
,
bwp_Dedicated
,
scc
);
struct
NR_ServingCellConfig__downlinkBWP_ToAddModList
*
DL_BWP_list
=
SpCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
;
struct
NR_ServingCellConfig__downlinkBWP_ToAddModList
*
DL_BWP_list
=
SpCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
;
if
(
DL_BWP_list
)
{
if
(
DL_BWP_list
)
{
for
(
int
i
=
0
;
i
<
DL_BWP_list
->
list
.
count
;
i
++
){
for
(
int
i
=
0
;
i
<
DL_BWP_list
->
list
.
count
;
i
++
){
NR_BWP_Downlink_t
*
bwp
=
DL_BWP_list
->
list
.
array
[
i
];
NR_BWP_Downlink_t
*
bwp
=
DL_BWP_list
->
list
.
array
[
i
];
int
scs
=
bwp
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
;
int
scs
=
bwp
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
;
set_dl_mcs_table
(
scs
,
uecap
,
bwp
->
bwp_Dedicated
,
carrier
->
servingcellconfigcommon
);
set_dl_mcs_table
(
scs
,
configuration
->
force_256qam_off
?
NULL
:
uecap
,
bwp
->
bwp_Dedicated
,
carrier
->
servingcellconfigcommon
);
}
}
}
}
}
}
...
@@ -1478,8 +1480,8 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
...
@@ -1478,8 +1480,8 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
void
fill_initial_cellGroupConfig
(
int
uid
,
void
fill_initial_cellGroupConfig
(
int
uid
,
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_ServingCellConfigCommon_t
*
scc
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
)
{
const
gNB_RrcConfigurationReq
*
configuration
)
{
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
NULL
;
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
NULL
;
NR_RLC_Config_t
*
rlc_Config
=
NULL
;
NR_RLC_Config_t
*
rlc_Config
=
NULL
;
NR_LogicalChannelConfig_t
*
logicalChannelConfig
=
NULL
;
NR_LogicalChannelConfig_t
*
logicalChannelConfig
=
NULL
;
...
@@ -1569,7 +1571,7 @@ void fill_initial_cellGroupConfig(int uid,
...
@@ -1569,7 +1571,7 @@ void fill_initial_cellGroupConfig(int uid,
cellGroupConfig
->
spCellConfig
=
calloc
(
1
,
sizeof
(
*
cellGroupConfig
->
spCellConfig
));
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
->
sCellToAddModList
=
NULL
;
cellGroupConfig
->
sCellToReleaseList
=
NULL
;
cellGroupConfig
->
sCellToReleaseList
=
NULL
;
...
@@ -1581,7 +1583,7 @@ uint8_t do_RRCSetup(rrc_gNB_ue_context_t *const ue_context_pP,
...
@@ -1581,7 +1583,7 @@ uint8_t do_RRCSetup(rrc_gNB_ue_context_t *const ue_context_pP,
const
uint8_t
transaction_id
,
const
uint8_t
transaction_id
,
OCTET_STRING_t
*
masterCellGroup_from_DU
,
OCTET_STRING_t
*
masterCellGroup_from_DU
,
NR_ServingCellConfigCommon_t
*
scc
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
)
const
gNB_RrcConfigurationReq
*
configuration
)
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
{
{
asn_enc_rval_t
enc_rval
;
asn_enc_rval_t
enc_rval
;
...
@@ -1648,7 +1650,7 @@ uint8_t do_RRCSetup(rrc_gNB_ue_context_t *const ue_context_pP,
...
@@ -1648,7 +1650,7 @@ uint8_t do_RRCSetup(rrc_gNB_ue_context_t *const ue_context_pP,
}
}
else
{
else
{
cellGroupConfig
=
calloc
(
1
,
sizeof
(
NR_CellGroupConfig_t
));
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
,
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_NR_CellGroupConfig
,
NULL
,
NULL
,
...
@@ -1896,6 +1898,7 @@ int16_t do_RRCReconfiguration(
...
@@ -1896,6 +1898,7 @@ int16_t do_RRCReconfiguration(
struct
NR_RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList
*
dedicatedNAS_MessageList
,
struct
NR_RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList
*
dedicatedNAS_MessageList
,
rrc_gNB_ue_context_t
*
const
ue_context_pP
,
rrc_gNB_ue_context_t
*
const
ue_context_pP
,
rrc_gNB_carrier_data_t
*
carrier
,
rrc_gNB_carrier_data_t
*
carrier
,
const
gNB_RrcConfigurationReq
*
configuration
,
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
NR_CellGroupConfig_t
*
cellGroupConfig
)
NR_CellGroupConfig_t
*
cellGroupConfig
)
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
...
@@ -1949,7 +1952,8 @@ int16_t do_RRCReconfiguration(
...
@@ -1949,7 +1952,8 @@ int16_t do_RRCReconfiguration(
if
(
cellGroupConfig
!=
NULL
){
if
(
cellGroupConfig
!=
NULL
){
update_cellGroupConfig
(
cellGroupConfig
,
update_cellGroupConfig
(
cellGroupConfig
,
carrier
,
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
,
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_NR_CellGroupConfig
,
NULL
,
NULL
,
(
void
*
)
cellGroupConfig
,
(
void
*
)
cellGroupConfig
,
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.h
View file @
ab654ac1
...
@@ -101,18 +101,19 @@ uint8_t do_RRCReject(uint8_t Mod_id,
...
@@ -101,18 +101,19 @@ uint8_t do_RRCReject(uint8_t Mod_id,
uint8_t
*
const
buffer
);
uint8_t
*
const
buffer
);
void
fill_initial_SpCellConfig
(
int
uid
,
void
fill_initial_SpCellConfig
(
int
uid
,
NR_SpCellConfig_t
*
SpCellConfig
,
NR_SpCellConfig_t
*
SpCellConfig
,
NR_ServingCellConfigCommon_t
*
scc
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
);
const
gNB_RrcConfigurationReq
*
configuration
);
void
fill_initial_cellGroupConfig
(
int
uid
,
void
fill_initial_cellGroupConfig
(
int
uid
,
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_ServingCellConfigCommon_t
*
scc
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
);
const
gNB_RrcConfigurationReq
*
configuration
);
void
update_cellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
void
update_cellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
rrc_gNB_carrier_data_t
*
carrier
,
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
);
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,
...
@@ -121,7 +122,7 @@ uint8_t do_RRCSetup(rrc_gNB_ue_context_t *const ue_context_pP,
const
uint8_t
transaction_id
,
const
uint8_t
transaction_id
,
OCTET_STRING_t
*
masterCellGroup_from_DU
,
OCTET_STRING_t
*
masterCellGroup_from_DU
,
NR_ServingCellConfigCommon_t
*
scc
,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
);
const
gNB_RrcConfigurationReq
*
configuration
);
uint8_t
do_NR_SecurityModeCommand
(
uint8_t
do_NR_SecurityModeCommand
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
protocol_ctxt_t
*
const
ctxt_pP
,
...
@@ -151,6 +152,7 @@ int16_t do_RRCReconfiguration(
...
@@ -151,6 +152,7 @@ int16_t do_RRCReconfiguration(
struct
NR_RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList
*
dedicatedNAS_MessageList
,
struct
NR_RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList
*
dedicatedNAS_MessageList
,
rrc_gNB_ue_context_t
*
const
ue_context_pP
,
rrc_gNB_ue_context_t
*
const
ue_context_pP
,
rrc_gNB_carrier_data_t
*
carrier
,
rrc_gNB_carrier_data_t
*
carrier
,
const
gNB_RrcConfigurationReq
*
configuration
,
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
NR_CellGroupConfig_t
*
cellGroupConfig
);
NR_CellGroupConfig_t
*
cellGroupConfig
);
...
...
openair2/RRC/NR/nr_rrc_defs.h
View file @
ab654ac1
...
@@ -449,13 +449,6 @@ typedef struct {
...
@@ -449,13 +449,6 @@ typedef struct {
NR_SIB2_t
*
sib2
;
NR_SIB2_t
*
sib2
;
NR_SIB3_t
*
sib3
;
NR_SIB3_t
*
sib3
;
NR_BCCH_DL_SCH_Message_t
systemInformation
;
// SIB23
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
;
NR_BCCH_DL_SCH_Message_t
*
siblock1
;
NR_BCCH_DL_SCH_Message_t
*
siblock1
;
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
;
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
;
NR_PDCCH_ConfigSIB1_t
*
pdcch_ConfigSIB1
;
NR_PDCCH_ConfigSIB1_t
*
pdcch_ConfigSIB1
;
...
...
openair2/RRC/NR/nr_rrc_proto.h
View file @
ab654ac1
...
@@ -79,10 +79,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -79,10 +79,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
NR_UE_NR_Capability_t
*
uecap
,
NR_UE_NR_Capability_t
*
uecap
,
int
scg_id
,
int
scg_id
,
int
servCellIndex
,
int
servCellIndex
,
int
dl_antenna_ports
,
const
gNB_RrcConfigurationReq
*
configuration
,
int
minRXTXTIMEpdsch
,
int
do_csirs
,
int
do_srs
,
int
uid
);
int
uid
);
void
config_csirs
(
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
void
config_csirs
(
NR_ServingCellConfigCommon_t
*
servingcellconfigcommon
,
...
@@ -96,10 +93,7 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
...
@@ -96,10 +93,7 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
NR_RRCReconfiguration_IEs_t
*
reconfig
,
NR_RRCReconfiguration_IEs_t
*
reconfig
,
NR_CellGroupConfig_t
*
secondaryCellGroup
,
NR_CellGroupConfig_t
*
secondaryCellGroup
,
NR_UE_NR_Capability_t
*
uecap
,
NR_UE_NR_Capability_t
*
uecap
,
int
dl_antenna_ports
,
const
gNB_RrcConfigurationReq
*
configuration
,
int
minRXTXTIMEpdsch
,
int
do_csirs
,
int
do_srs
,
int
uid
);
int
uid
);
void
fill_default_rbconfig
(
NR_RadioBearerConfig_t
*
rbconfig
,
void
fill_default_rbconfig
(
NR_RadioBearerConfig_t
*
rbconfig
,
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
ab654ac1
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/rrc_gNB_nsa.c
View file @
ab654ac1
...
@@ -116,6 +116,7 @@ RB_PROTOTYPE(rrc_nr_ue_tree_s, rrc_gNB_ue_context_s, entries,
...
@@ -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
)
{
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)
// 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
;
rrc_gNB_carrier_data_t
*
carrier
=&
rrc
->
carrier
;
const
gNB_RrcConfigurationReq
*
configuration
=
&
rrc
->
configuration
;
MessageDef
*
msg
;
MessageDef
*
msg
;
msg
=
itti_alloc_new_message
(
TASK_RRC_ENB
,
0
,
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
);
msg
=
itti_alloc_new_message
(
TASK_RRC_ENB
,
0
,
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
);
gtpv1u_enb_create_tunnel_req_t
create_tunnel_req
;
gtpv1u_enb_create_tunnel_req_t
create_tunnel_req
;
...
@@ -240,29 +241,16 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
...
@@ -240,29 +241,16 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
cipher_algo
,
cipher_algo
,
NR_SecurityConfig__keyToUse_secondary
);
NR_SecurityConfig__keyToUse_secondary
);
}
}
if
(
ue_context_p
->
ue_context
.
spCellConfig
)
{
NR_ServingCellConfig_t
*
scc
=
ue_context_p
->
ue_context
.
spCellConfig
fill_default_reconfig
(
carrier
->
servingcellconfigcommon
,
?
ue_context_p
->
ue_context
.
spCellConfig
->
spCellConfigDedicated
ue_context_p
->
ue_context
.
spCellConfig
->
spCellConfigDedicated
,
:
NULL
;
reconfig_ies
,
fill_default_reconfig
(
carrier
->
servingcellconfigcommon
,
ue_context_p
->
ue_context
.
secondaryCellGroup
,
scc
,
ue_context_p
->
ue_context
.
UE_Capability_nr
,
reconfig_ies
,
carrier
->
pdsch_AntennaPorts
,
ue_context_p
->
ue_context
.
secondaryCellGroup
,
carrier
->
minRXTXTIME
,
ue_context_p
->
ue_context
.
UE_Capability_nr
,
carrier
->
do_CSIRS
,
configuration
,
carrier
->
do_SRS
,
ue_context_p
->
local_uid
);
ue_context_p
->
local_uid
);
}
else
{
fill_default_reconfig
(
carrier
->
servingcellconfigcommon
,
NULL
,
reconfig_ies
,
ue_context_p
->
ue_context
.
secondaryCellGroup
,
ue_context_p
->
ue_context
.
UE_Capability_nr
,
carrier
->
pdsch_AntennaPorts
,
carrier
->
minRXTXTIME
,
carrier
->
do_CSIRS
,
carrier
->
do_SRS
,
ue_context_p
->
local_uid
);
}
ue_context_p
->
ue_id_rnti
=
ue_context_p
->
ue_context
.
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
newUE_Identity
;
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
));
NR_CG_Config_t
*
CG_Config
=
calloc
(
1
,
sizeof
(
*
CG_Config
));
memset
((
void
*
)
CG_Config
,
0
,
sizeof
(
*
CG_Config
));
memset
((
void
*
)
CG_Config
,
0
,
sizeof
(
*
CG_Config
));
...
@@ -359,11 +347,11 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
...
@@ -359,11 +347,11 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
// configure MAC and RLC
// configure MAC and RLC
if
(
NODE_IS_DU
(
rrc
->
node_type
))
{
if
(
NODE_IS_DU
(
rrc
->
node_type
))
{
rrc_mac_config_req_gNB
(
rrc
->
module_id
,
rrc_mac_config_req_gNB
(
rrc
->
module_id
,
rrc
->
c
arrier
.
ssb_SubcarrierOffset
,
rrc
->
c
onfiguration
.
ssb_SubcarrierOffset
,
rrc
->
c
arrier
.
pdsch_AntennaPorts
,
rrc
->
c
onfiguration
.
pdsch_AntennaPorts
,
rrc
->
carrier
.
pusch_AntennaPorts
,
rrc
->
configuration
.
pusch_AntennaPorts
,
rrc
->
c
arrier
.
sib1_tda
,
rrc
->
c
onfiguration
.
sib1_tda
,
rrc
->
c
arrier
.
minRXTXTIME
,
rrc
->
c
onfiguration
.
minRXTXTIME
,
rrc
->
carrier
.
servingcellconfigcommon
,
rrc
->
carrier
.
servingcellconfigcommon
,
&
rrc
->
carrier
.
mib
,
&
rrc
->
carrier
.
mib
,
1
,
// add_ue flag
1
,
// add_ue flag
...
@@ -371,11 +359,11 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
...
@@ -371,11 +359,11 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
ue_context_p
->
ue_context
.
secondaryCellGroup
);
ue_context_p
->
ue_context
.
secondaryCellGroup
);
}
else
{
}
else
{
rrc_mac_config_req_gNB
(
rrc
->
module_id
,
rrc_mac_config_req_gNB
(
rrc
->
module_id
,
rrc
->
c
arrier
.
ssb_SubcarrierOffset
,
rrc
->
c
onfiguration
.
ssb_SubcarrierOffset
,
rrc
->
c
arrier
.
pdsch_AntennaPorts
,
rrc
->
c
onfiguration
.
pdsch_AntennaPorts
,
rrc
->
c
arrier
.
pusch_AntennaPorts
,
rrc
->
c
onfiguration
.
pusch_AntennaPorts
,
rrc
->
c
arrier
.
sib1_tda
,
rrc
->
c
onfiguration
.
sib1_tda
,
rrc
->
c
arrier
.
minRXTXTIME
,
rrc
->
c
onfiguration
.
minRXTXTIME
,
NULL
,
NULL
,
NULL
,
NULL
,
1
,
// add_ue flag
1
,
// add_ue flag
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
ab654ac1
...
@@ -56,11 +56,11 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -56,11 +56,11 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
NR_UE_NR_Capability_t
*
uecap
,
NR_UE_NR_Capability_t
*
uecap
,
int
scg_id
,
int
scg_id
,
int
servCellIndex
,
int
servCellIndex
,
int
dl_antenna_ports
,
const
gNB_RrcConfigurationReq
*
configuration
,
int
minRXTXTIME
,
int
uid
)
int
do_csirs
,
{
int
do_srs
,
const
int
dl_antenna_ports
=
configuration
->
pdsch_AntennaPorts
;
int
uid
)
{
const
int
do_csirs
=
configuration
->
do_CSIRS
;
AssertFatal
(
servingcellconfigcommon
!=
NULL
,
"servingcellconfigcommon is null
\n
"
);
AssertFatal
(
servingcellconfigcommon
!=
NULL
,
"servingcellconfigcommon is null
\n
"
);
AssertFatal
(
secondaryCellGroup
!=
NULL
,
"secondaryCellGroup is null
\n
"
);
AssertFatal
(
secondaryCellGroup
!=
NULL
,
"secondaryCellGroup is null
\n
"
);
...
@@ -603,7 +603,10 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -603,7 +603,10 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
rateMatchPatternGroup1
=
NULL
;
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
rateMatchPatternGroup1
=
NULL
;
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
rateMatchPatternGroup2
=
NULL
;
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
rateMatchPatternGroup2
=
NULL
;
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
rbg_Size
=
NR_PDSCH_Config__rbg_Size_config1
;
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
rbg_Size
=
NR_PDSCH_Config__rbg_Size_config1
;
set_dl_mcs_table
(
bwp
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
,
uecap
,
bwp
->
bwp_Dedicated
,
servingcellconfigcommon
);
set_dl_mcs_table
(
bwp
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
,
configuration
->
force_256qam_off
?
NULL
:
uecap
,
bwp
->
bwp_Dedicated
,
servingcellconfigcommon
);
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
maxNrofCodeWordsScheduledByDCI
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
maxNrofCodeWordsScheduledByDCI
));
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
maxNrofCodeWordsScheduledByDCI
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
maxNrofCodeWordsScheduledByDCI
));
*
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
maxNrofCodeWordsScheduledByDCI
=
NR_PDSCH_Config__maxNrofCodeWordsScheduledByDCI_n1
;
*
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
maxNrofCodeWordsScheduledByDCI
=
NR_PDSCH_Config__maxNrofCodeWordsScheduledByDCI_n1
;
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
present
=
NR_PDSCH_Config__prb_BundlingType_PR_staticBundling
;
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
prb_BundlingType
.
present
=
NR_PDSCH_Config__prb_BundlingType_PR_staticBundling
;
...
@@ -768,7 +771,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -768,7 +771,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
ASN_SEQUENCE_ADD
(
&
srs_resset0
->
srs_ResourceIdList
->
list
,
srs_resset0_id
);
ASN_SEQUENCE_ADD
(
&
srs_resset0
->
srs_ResourceIdList
->
list
,
srs_resset0_id
);
srs_Config
->
srs_ResourceToReleaseList
=
NULL
;
srs_Config
->
srs_ResourceToReleaseList
=
NULL
;
if
(
do_srs
)
{
if
(
configuration
->
do_SRS
)
{
srs_resset0
->
resourceType
.
present
=
NR_SRS_ResourceSet__resourceType_PR_periodic
;
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
=
calloc
(
1
,
sizeof
(
*
srs_resset0
->
resourceType
.
choice
.
periodic
));
srs_resset0
->
resourceType
.
choice
.
periodic
->
associatedCSI_RS
=
NULL
;
srs_resset0
->
resourceType
.
choice
.
periodic
->
associatedCSI_RS
=
NULL
;
...
@@ -812,7 +815,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -812,7 +815,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
srs_res0
->
freqHopping
.
b_SRS
);
srs_res0
->
freqHopping
.
b_SRS
);
srs_res0
->
groupOrSequenceHopping
=
NR_SRS_Resource__groupOrSequenceHopping_neither
;
srs_res0
->
groupOrSequenceHopping
=
NR_SRS_Resource__groupOrSequenceHopping_neither
;
if
(
do_srs
)
{
if
(
configuration
->
do_SRS
)
{
srs_res0
->
resourceType
.
present
=
NR_SRS_Resource__resourceType_PR_periodic
;
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
=
calloc
(
1
,
sizeof
(
*
srs_res0
->
resourceType
.
choice
.
periodic
));
srs_res0
->
resourceType
.
choice
.
periodic
->
periodicityAndOffset_p
.
present
=
NR_SRS_PeriodicityAndOffset_PR_sl160
;
srs_res0
->
resourceType
.
choice
.
periodic
->
periodicityAndOffset_p
.
present
=
NR_SRS_PeriodicityAndOffset_PR_sl160
;
...
@@ -933,7 +936,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -933,7 +936,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
long
*
delay
[
8
];
long
*
delay
[
8
];
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
delay
[
i
]
=
calloc
(
1
,
sizeof
(
*
delay
[
i
]));
delay
[
i
]
=
calloc
(
1
,
sizeof
(
*
delay
[
i
]));
*
delay
[
i
]
=
i
+
minRXTXTIME
;
*
delay
[
i
]
=
i
+
configuration
->
minRXTXTIME
;
ASN_SEQUENCE_ADD
(
&
pucch_Config
->
dl_DataToUL_ACK
->
list
,
delay
[
i
]);
ASN_SEQUENCE_ADD
(
&
pucch_Config
->
dl_DataToUL_ACK
->
list
,
delay
[
i
]);
}
}
pucch_Config
->
spatialRelationInfoToAddModList
=
calloc
(
1
,
sizeof
(
*
pucch_Config
->
spatialRelationInfoToAddModList
));
pucch_Config
->
spatialRelationInfoToAddModList
=
calloc
(
1
,
sizeof
(
*
pucch_Config
->
spatialRelationInfoToAddModList
));
...
@@ -1341,10 +1344,7 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
...
@@ -1341,10 +1344,7 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
NR_RRCReconfiguration_IEs_t
*
reconfig
,
NR_RRCReconfiguration_IEs_t
*
reconfig
,
NR_CellGroupConfig_t
*
secondaryCellGroup
,
NR_CellGroupConfig_t
*
secondaryCellGroup
,
NR_UE_NR_Capability_t
*
uecap
,
NR_UE_NR_Capability_t
*
uecap
,
int
dl_antenna_ports
,
const
gNB_RrcConfigurationReq
*
configuration
,
int
minRXTXTIME
,
int
do_csirs
,
int
do_srs
,
int
uid
)
{
int
uid
)
{
AssertFatal
(
servingcellconfigcommon
!=
NULL
,
"servingcellconfigcommon is null
\n
"
);
AssertFatal
(
servingcellconfigcommon
!=
NULL
,
"servingcellconfigcommon is null
\n
"
);
AssertFatal
(
reconfig
!=
NULL
,
"reconfig is null
\n
"
);
AssertFatal
(
reconfig
!=
NULL
,
"reconfig is null
\n
"
);
...
@@ -1358,10 +1358,7 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
...
@@ -1358,10 +1358,7 @@ void fill_default_reconfig(NR_ServingCellConfigCommon_t *servingcellconfigcommon
uecap
,
uecap
,
1
,
1
,
1
,
1
,
dl_antenna_ports
,
configuration
,
minRXTXTIME
,
do_csirs
,
do_srs
,
uid
);
uid
);
xer_fprint
(
stdout
,
&
asn_DEF_NR_CellGroupConfig
,
(
const
void
*
)
secondaryCellGroup
);
xer_fprint
(
stdout
,
&
asn_DEF_NR_CellGroupConfig
,
(
const
void
*
)
secondaryCellGroup
);
...
...
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