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
5e57fdc6
Commit
5e57fdc6
authored
Apr 09, 2024
by
ndomingues
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add RA 2-Step configuration parameters to SIB1
parent
04bedf0c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
94 additions
and
2 deletions
+94
-2
openair2/GNB_APP/RRC_nr_paramsvalues.h
openair2/GNB_APP/RRC_nr_paramsvalues.h
+35
-2
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+29
-0
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+30
-0
No files found.
openair2/GNB_APP/RRC_nr_paramsvalues.h
View file @
5e57fdc6
...
...
@@ -92,6 +92,23 @@
#define GNB_CONFIG_STRING_PUCCHRES "pucch_ResourceCommon"
#define GNB_CONFIG_STRING_MSGBRESPONSEWINDOW_R16 "msgB_ResponseWindow_r16"
#define GNB_CONFIG_STRING_MSGARSRPTHRESHOLD_R16 "msgA_RSRP_Threshold_r16"
#define GNB_CONFIG_STRING_MSGACBPREAMBLESPERSHAREDRO_R16 "msgA_CB_PreamblesPerSSB_PerSharedRO_r16"
#define GNB_CONFIG_STRING_MSGAMCS_R16 "msgA_MCS_r16"
#define GNB_CONFIG_STRING_NROFSLOTSMSGAPUSCH_R16 "nrofSlotsMsgA_PUSCH_r16"
#define GNB_CONFIG_STRING_NROFMSGAPOPERSLOT_R16 "nrofMsgA_PO_PerSlot_r16"
#define GNB_CONFIG_STRING_MSGAPUSCHTIMEDOMAINOFFSET_R16 "msgA_PUSCH_TimeDomainOffset_r16"
#define GNB_CONFIG_STRING_STARTSYMBOLANDLENGTHMSGA_PO_R16 "startSymbolAndLengthMsgA_PO_r16"
#define GNB_CONFIG_STRING_MAPPINGTYPEMSGAPUSCH_R16 "mappingTypeMsgA_PUSCH_r16"
#define GNB_CONFIG_STRING_GUARDBANDMSGAPUSCH_R16 "guardBandMsgA_PUSCH_r16"
#define GNB_CONFIG_STRING_FREQUENCYSTARTMSGAPUSCH_R16 "frequencyStartMsgA_PUSCH_r16"
#define GNB_CONFIG_STRING_NROFPRBSPERMSGAPO_R16 "nrofPRBs_PerMsgA_PO_r16"
#define GNB_CONFIG_STRING_NROFMSGAPOFDM_R16 "nrofMsgA_PO_FDM_r16"
#define GNB_CONFIG_STRING_MSGAPUSCHNROFPORTS_R16 "msgA_PUSCH_NrofPorts_r16"
#define GNB_CONFIG_STRING_NROFDMRSSEQUENCES_R16 "nrofDMRS_Sequences_r16"
#define GNB_CONFIG_STRING_MSGATRANSFORMPRECODER_R16 "msgA_TransformPrecoder_r16"
#define GNB_CONFIG_STRING_SSBPOSITIONSINBURSTPR "ssb_PositionsInBurst_PR"
#define GNB_CONFIG_STRING_SSBPOSITIONSINBURST "ssb_PositionsInBurst_Bitmap"
#define GNB_CONFIG_STRING_SSBPERIODICITYSERVINGCELL "ssb_periodicityServingCell"
...
...
@@ -231,8 +248,24 @@
{GNB_CONFIG_STRING_NROFDOWNLINKSYMBOLS2,NULL,0,.i64ptr=&scc->tdd_UL_DL_ConfigurationCommon->pattern2->nrofDownlinkSymbols,.defint64val=-1,TYPE_INT64,0},\
{GNB_CONFIG_STRING_NROFUPLINKSLOTS2,NULL,0,.i64ptr=&scc->tdd_UL_DL_ConfigurationCommon->pattern2->nrofUplinkSlots,.defint64val=-1,TYPE_INT64,0},\
{GNB_CONFIG_STRING_NROFUPLINKSYMBOLS2,NULL,0,.i64ptr=&scc->tdd_UL_DL_ConfigurationCommon->pattern2->nrofUplinkSymbols,.defint64val=-1,TYPE_INT64,0},\
{GNB_CONFIG_STRING_SSPBCHBLOCKPOWER,NULL,0,.i64ptr=&scc->ss_PBCH_BlockPower,.defint64val=20,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_MSG1SUBCARRIERSPACING,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg1_SubcarrierSpacing,.defintval=-1,TYPE_INT64,0}}
{GNB_CONFIG_STRING_SSPBCHBLOCKPOWER,NULL,0,.i64ptr=&scc->ss_PBCH_BlockPower,.defint64val=20,TYPE_INT64,0},\
{GNB_CONFIG_STRING_MSG1SUBCARRIERSPACING,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg1_SubcarrierSpacing,.defintval=-1,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_MSGBRESPONSEWINDOW_R16,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->rach_ConfigCommonTwoStepRA_r16.rach_ConfigGenericTwoStepRA_r16.msgB_ResponseWindow_r16,.defintval=-1,TYPE_INT64,0},\
{GNB_CONFIG_STRING_MSGARSRPTHRESHOLD_R16,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->rach_ConfigCommonTwoStepRA_r16.msgA_RSRP_Threshold_r16,.defintval=19,TYPE_INT64,0},\
{GNB_CONFIG_STRING_MSGAMCS_R16,NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->msgA_MCS_r16,.defintval=2,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_NROFSLOTSMSGAPUSCH_R16,NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->nrofSlotsMsgA_PUSCH_r16,.defintval=1,TYPE_INT64,0},\
{GNB_CONFIG_STRING_NROFMSGAPOPERSLOT_R16,NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->nrofMsgA_PO_PerSlot_r16,.defintval=NR_MsgA_PUSCH_Resource_r16__nrofMsgA_PO_PerSlot_r16_one,TYPE_INT64,0},\
{GNB_CONFIG_STRING_MSGAPUSCHTIMEDOMAINOFFSET_R16,NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->msgA_PUSCH_TimeDomainOffset_r16,.defintval=0,TYPE_INT64,0},\
{GNB_CONFIG_STRING_STARTSYMBOLANDLENGTHMSGA_PO_R16,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->startSymbolAndLengthMsgA_PO_r16,.defintval=38,TYPE_INT64,0},\
{GNB_CONFIG_STRING_MAPPINGTYPEMSGAPUSCH_R16,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->mappingTypeMsgA_PUSCH_r16,.defintval=0,TYPE_INT64,0},\
{GNB_CONFIG_STRING_GUARDBANDMSGAPUSCH_R16,NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->guardBandMsgA_PUSCH_r16,.defintval=0,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_FREQUENCYSTARTMSGAPUSCH_R16,NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->frequencyStartMsgA_PUSCH_r16,.defintval=0,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_NROFPRBSPERMSGAPO_R16,NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->nrofPRBs_PerMsgA_PO_r16,.defintval=8,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_NROFMSGAPOFDM_R16,NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->nrofMsgA_PO_FDM_r16,.defintval=NR_MsgA_PUSCH_Resource_r16__nrofMsgA_PO_FDM_r16_one,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_MSGAPUSCHNROFPORTS_R16,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->msgA_DMRS_Config_r16.msgA_PUSCH_NrofPorts_r16,.defintval=1,TYPE_INT64,0},\
{GNB_CONFIG_STRING_NROFDMRSSEQUENCES_R16,NULL,0,.i64ptr=&scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_PUSCH_ResourceGroupA_r16->nrofDMRS_Sequences_r16,.defintval=1,TYPE_INT64,0},\
{GNB_CONFIG_STRING_MSGATRANSFORMPRECODER_R16,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->msgA_PUSCH_Config_r16->msgA_TransformPrecoder_r16,.defintval=NR_MsgA_PUSCH_Config_r16__msgA_TransformPrecoder_r16_disabled,TYPE_INT64,0},\
{GNB_CONFIG_STRING_MSGACBPREAMBLESPERSHAREDRO_R16,NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->ext1->msgA_ConfigCommon_r16->choice.setup->rach_ConfigCommonTwoStepRA_r16.msgA_CB_PreamblesPerSSB_PerSharedRO_r16,.defintval=1,TYPE_INT64,0}} \
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* Serving Cell Config Dedicated configuration parameters */
...
...
openair2/GNB_APP/gnb_config.c
View file @
5e57fdc6
...
...
@@ -83,6 +83,7 @@
#include "NR_SearchSpace.h"
#include "NR_ControlResourceSet.h"
#include "NR_EUTRA-MBSFN-SubframeConfig.h"
#include "NR_BWP-UplinkCommon.h"
#include "uper_decoder.h"
#include "uper_encoder.h"
...
...
@@ -235,6 +236,27 @@ void prepare_scc(NR_ServingCellConfigCommon_t *scc) {
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pucch_ConfigCommon
->
choice
.
setup
->
pucch_ResourceCommon
=
CALLOC
(
1
,
sizeof
(
long
));
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pucch_ConfigCommon
->
choice
.
setup
->
hoppingId
=
CALLOC
(
1
,
sizeof
(
long
));
NR_BWP_UplinkCommon_t
*
initialUplinkBWP
=
scc
->
uplinkConfigCommon
->
initialUplinkBWP
;
// Add the struct ext1
initialUplinkBWP
->
ext1
=
calloc
(
1
,
sizeof
(
*
initialUplinkBWP
->
ext1
));
initialUplinkBWP
->
ext1
->
msgA_ConfigCommon_r16
=
calloc
(
1
,
sizeof
(
*
initialUplinkBWP
->
ext1
->
msgA_ConfigCommon_r16
));
initialUplinkBWP
->
ext1
->
msgA_ConfigCommon_r16
->
present
=
NR_SetupRelease_MsgA_ConfigCommon_r16_PR_setup
;
initialUplinkBWP
->
ext1
->
msgA_ConfigCommon_r16
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
initialUplinkBWP
->
ext1
->
msgA_ConfigCommon_r16
->
choice
.
setup
));
NR_MsgA_ConfigCommon_r16_t
*
NR_MsgA_ConfigCommon_r16
=
initialUplinkBWP
->
ext1
->
msgA_ConfigCommon_r16
->
choice
.
setup
;
NR_MsgA_ConfigCommon_r16
->
rach_ConfigCommonTwoStepRA_r16
.
rach_ConfigGenericTwoStepRA_r16
.
msgB_ResponseWindow_r16
=
calloc
(
1
,
sizeof
(
long
));
NR_MsgA_ConfigCommon_r16
->
rach_ConfigCommonTwoStepRA_r16
.
msgA_RSRP_Threshold_r16
=
calloc
(
1
,
sizeof
(
NR_RSRP_Range_t
));
NR_MsgA_ConfigCommon_r16
->
rach_ConfigCommonTwoStepRA_r16
.
msgA_CB_PreamblesPerSSB_PerSharedRO_r16
=
calloc
(
1
,
sizeof
(
long
));
NR_MsgA_ConfigCommon_r16
->
msgA_PUSCH_Config_r16
=
calloc
(
1
,
sizeof
(
NR_MsgA_PUSCH_Config_r16_t
));
NR_MsgA_PUSCH_Config_r16_t
*
msgA_PUSCH_Config_r16
=
NR_MsgA_ConfigCommon_r16
->
msgA_PUSCH_Config_r16
;
msgA_PUSCH_Config_r16
->
msgA_PUSCH_ResourceGroupA_r16
=
calloc
(
1
,
sizeof
(
NR_MsgA_PUSCH_Resource_r16_t
));
NR_MsgA_PUSCH_Resource_r16_t
*
msgA_PUSCH_Resource
=
msgA_PUSCH_Config_r16
->
msgA_PUSCH_ResourceGroupA_r16
;
msgA_PUSCH_Resource
->
startSymbolAndLengthMsgA_PO_r16
=
calloc
(
1
,
sizeof
(
long
));
msgA_PUSCH_Config_r16
->
msgA_TransformPrecoder_r16
=
calloc
(
1
,
sizeof
(
long
));
// scc->ssb_PositionsInBurst->choice.shortBitmap.buf = MALLOC(1);
// scc->ssb_PositionsInBurst->choice.mediumBitmap.buf = MALLOC(1);
// scc->ssb_PositionsInBurst->choice.longBitmap.buf = MALLOC(8);
...
...
@@ -442,6 +464,13 @@ void fix_scc(NR_ServingCellConfigCommon_t *scc,uint64_t ssbmap) {
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
msg1_SubcarrierSpacing
=
NULL
;
}
if
((
int
)
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
ext1
->
msgA_ConfigCommon_r16
->
choice
.
setup
->
msgA_PUSCH_Config_r16
->
msgA_PUSCH_ResourceGroupA_r16
->
msgA_PUSCH_TimeDomainOffset_r16
==
0
)
{
free
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
ext1
);
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
ext1
=
NULL
;
}
if
((
int
)
*
scc
->
n_TimingAdvanceOffset
==
-
1
)
{
free
(
scc
->
n_TimingAdvanceOffset
);
scc
->
n_TimingAdvanceOffset
=
NULL
;
...
...
openair2/RRC/NR/nr_rrc_config.c
View file @
5e57fdc6
...
...
@@ -69,6 +69,25 @@ static NR_SetupRelease_RACH_ConfigCommon_t *clone_rach_configcommon(const NR_Set
return
clone
;
}
static
NR_SetupRelease_MsgA_ConfigCommon_r16_t
*
clone_msga_configcommon
(
const
NR_SetupRelease_MsgA_ConfigCommon_r16_t
*
mcc
)
{
if
(
mcc
==
NULL
||
mcc
->
present
==
NR_SetupRelease_MsgA_ConfigCommon_r16_PR_NOTHING
)
return
NULL
;
NR_SetupRelease_MsgA_ConfigCommon_r16_t
*
clone
=
calloc_or_fail
(
1
,
sizeof
(
*
clone
));
clone
->
present
=
mcc
->
present
;
if
(
clone
->
present
==
NR_SetupRelease_MsgA_ConfigCommon_r16_PR_release
)
return
clone
;
uint8_t
buf
[
1024
];
asn_enc_rval_t
enc_rval
=
uper_encode_to_buffer
(
&
asn_DEF_NR_MsgA_ConfigCommon_r16
,
NULL
,
mcc
->
choice
.
setup
,
buf
,
sizeof
(
buf
));
AssertFatal
(
enc_rval
.
encoded
>
0
&&
enc_rval
.
encoded
<
sizeof
(
buf
),
"could not clone NR_MsgA_ConfigCommon_r16: problem while encoding
\n
"
);
asn_dec_rval_t
dec_rval
=
uper_decode
(
NULL
,
&
asn_DEF_NR_MsgA_ConfigCommon_r16
,
(
void
**
)
&
clone
->
choice
.
setup
,
buf
,
enc_rval
.
encoded
,
0
,
0
);
AssertFatal
(
dec_rval
.
code
==
RC_OK
&&
dec_rval
.
consumed
==
enc_rval
.
encoded
,
"could not clone NR_MsgA_ConfigCommon_r16:: problem while decoding
\n
"
);
return
clone
;
}
static
NR_SetupRelease_PUSCH_ConfigCommon_t
*
clone_pusch_configcommon
(
const
NR_SetupRelease_PUSCH_ConfigCommon_t
*
pcc
)
{
if
(
pcc
==
NULL
||
pcc
->
present
==
NR_SetupRelease_PUSCH_ConfigCommon_PR_NOTHING
)
...
...
@@ -2055,6 +2074,17 @@ NR_BCCH_DL_SCH_Message_t *get_SIB1_NR(const NR_ServingCellConfigCommon_t *scc, c
UL
->
initialUplinkBWP
.
genericParameters
=
clone_generic_parameters
(
&
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
genericParameters
);
UL
->
initialUplinkBWP
.
rach_ConfigCommon
=
clone_rach_configcommon
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
);
if
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
ext1
)
{
NR_SetupRelease_MsgA_ConfigCommon_r16_t
*
msgA_configcommon
=
clone_msga_configcommon
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
ext1
->
msgA_ConfigCommon_r16
);
if
(
msgA_configcommon
)
{
// Add the struct ext1
UL
->
initialUplinkBWP
.
ext1
=
calloc
(
1
,
sizeof
(
*
UL
->
initialUplinkBWP
.
ext1
));
UL
->
initialUplinkBWP
.
ext1
->
msgA_ConfigCommon_r16
=
msgA_configcommon
;
}
}
UL
->
initialUplinkBWP
.
pusch_ConfigCommon
=
clone_pusch_configcommon
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
pusch_ConfigCommon
);
free
(
UL
->
initialUplinkBWP
.
pusch_ConfigCommon
->
choice
.
setup
->
groupHoppingEnabledTransformPrecoding
);
UL
->
initialUplinkBWP
.
pusch_ConfigCommon
->
choice
.
setup
->
groupHoppingEnabledTransformPrecoding
=
NULL
;
...
...
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