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
4f9aaa92
Commit
4f9aaa92
authored
May 27, 2021
by
Abhijith
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Access SCD parameters from config file
parent
af6807d3
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
410 additions
and
148 deletions
+410
-148
openair2/GNB_APP/RRC_nr_paramsvalues.h
openair2/GNB_APP/RRC_nr_paramsvalues.h
+27
-10
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+21
-11
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+0
-1
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+16
-19
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
+0
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+1
-6
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+1
-5
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+2
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+4
-5
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+1
-1
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+17
-36
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.SCD.conf
...ERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.SCD.conf
+320
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
.../GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
+0
-51
No files found.
openair2/GNB_APP/RRC_nr_paramsvalues.h
View file @
4f9aaa92
...
@@ -228,13 +228,19 @@
...
@@ -228,13 +228,19 @@
#define GNB_CONFIG_STRING_ULPTRSREOFFSET_0 "ul_ptrsReOffset_0"
#define GNB_CONFIG_STRING_ULPTRSREOFFSET_0 "ul_ptrsReOffset_0"
#define GNB_CONFIG_STRING_ULPTRSMAXPORTS_0 "ul_ptrsMaxPorts_0"
#define GNB_CONFIG_STRING_ULPTRSMAXPORTS_0 "ul_ptrsMaxPorts_0"
#define GNB_CONFIG_STRING_ULPTRSPOWER_0 "ul_ptrsPower_0"
#define GNB_CONFIG_STRING_ULPTRSPOWER_0 "ul_ptrsPower_0"
#define GNB_CONFIG_STRING_DLBWP1_ID "bwp-Id_1"
#define GNB_CONFIG_STRING_DLBWP2_ID "bwp-Id_2"
#define GNB_CONFIG_STRING_DLBWP3_ID "bwp-Id_3"
#define GNB_CONFIG_STRING_DLBWP4_ID "bwp-Id_4"
#define GNB_CONFIG_STRING_FIRSTACTIVEDLBWP_ID "firstActiveDownlinkBWP-Id"
#define GNB_CONFIG_STRING_FIRSTACTIVEDLBWP_ID "firstActiveDownlinkBWP-Id"
#define GNB_CONFIG_STRING_BWP_ID_0 "bwp-Id_0"
#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_BWP1 "bwp1_locationAndBandwidth"
#define GNB_CONFIG_STRING_BWP_ID_1 "bwp-Id_1"
#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_BWP2 "bwp2_locationAndBandwidth"
#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_0 "locationAndBandwidth_0"
#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_BWP3 "bwp3_locationAndBandwidth"
#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_1 "locationAndBandwidth_1"
#define GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_BWP4 "bwp4_locationAndBandwidth"
#define GNB_CONFIG_STRING_SCS_0 "subcarrierSpacing_0"
#define GNB_CONFIG_STRING_SCS_BWP1 "bwp1_subcarrierSpacing"
#define GNB_CONFIG_STRING_SCS_1 "subcarrierSpacing_1"
#define GNB_CONFIG_STRING_SCS_BWP2 "bwp2_subcarrierSpacing"
#define GNB_CONFIG_STRING_SCS_BWP3 "bwp3_subcarrierSpacing"
#define GNB_CONFIG_STRING_SCS_BWP4 "bwp4_subcarrierSpacing"
#define GNB_CONFIG_STRING_DEFAULTDLBWP_ID "defaultDownlinkBWP-Id"
#define GNB_CONFIG_STRING_DEFAULTDLBWP_ID "defaultDownlinkBWP-Id"
#define GNB_CONFIG_STRING_FIRSTACTIVEULBWP_ID "firstActiveUplinkBWP-Id"
#define GNB_CONFIG_STRING_FIRSTACTIVEULBWP_ID "firstActiveUplinkBWP-Id"
...
@@ -443,10 +449,21 @@
...
@@ -443,10 +449,21 @@
{GNB_CONFIG_STRING_ULPTRSREOFFSET_0,NULL,0,i64ptr:scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->resourceElementOffset,defint64val:-1,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_ULPTRSREOFFSET_0,NULL,0,i64ptr:scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->resourceElementOffset,defint64val:-1,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_ULPTRSMAXPORTS_0,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->maxNrofPorts,defint64val:0,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_ULPTRSMAXPORTS_0,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->maxNrofPorts,defint64val:0,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_ULPTRSPOWER_0,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->ptrs_Power,defint64val:0,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_ULPTRSPOWER_0,NULL,0,i64ptr:&scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[0]->bwp_Dedicated->pusch_Config->choice.setup->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup->transformPrecoderDisabled->ptrs_Power,defint64val:0,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_FIRSTACTIVEDLBWP_ID,NULL,0,i64ptr:scd->firstActiveDownlinkBWP_Id,defint64val:0,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_FIRSTACTIVEDLBWP_ID,NULL,0,i64ptr:scd->firstActiveDownlinkBWP_Id,defint64val:1,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_FIRSTACTIVEULBWP_ID,NULL,0,i64ptr:scd->uplinkConfig->firstActiveUplinkBWP_Id,defint64val:0,TYPE_INT64,0}} //, \
{GNB_CONFIG_STRING_FIRSTACTIVEULBWP_ID,NULL,0,i64ptr:scd->uplinkConfig->firstActiveUplinkBWP_Id,defint64val:1,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_BWP_ID_0,NULL,0,i64ptr:scd->downlinkBWP_ToAddModList->list.array[0].bwp_Id,defint64val:0,TYPE_INT64,0}}//, \
{GNB_CONFIG_STRING_DLBWP1_ID,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Id,defint64val:1,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_BWP_ID_1,NULL,0,i64ptr:scd->downlinkBWP_ToAddModList->list.array[1]->bwp_Id,defint64val:0,TYPE_INT64,0}}
{GNB_CONFIG_STRING_DLBWP2_ID,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[1]->bwp_Id,defint64val:2,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_DLBWP3_ID,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[2]->bwp_Id,defint64val:3,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_DLBWP4_ID,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[3]->bwp_Id,defint64val:4,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_SCS_BWP1,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_SCS_BWP2,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[1]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_SCS_BWP3,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[2]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_SCS_BWP4,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[3]->bwp_Common->genericParameters.subcarrierSpacing,defint64val:1,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_BWP1,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[0]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_BWP2,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[1]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_BWP3,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[2]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}, \
{GNB_CONFIG_STRING_LOCATIONANDBANDWIDTH_BWP4,NULL,0,i64ptr:&scd->downlinkBWP_ToAddModList->list.array[3]->bwp_Common->genericParameters.locationAndBandwidth,defint64val:0,TYPE_INT64,0}}
...
...
openair2/GNB_APP/gnb_config.c
View file @
4f9aaa92
...
@@ -326,24 +326,32 @@ void fix_scc(NR_ServingCellConfigCommon_t *scc,uint64_t ssbmap) {
...
@@ -326,24 +326,32 @@ void fix_scc(NR_ServingCellConfigCommon_t *scc,uint64_t ssbmap) {
}
}
/* Function to allocate dedicated serving cell config strutures */
/* Function to allocate dedicated serving cell config strutures */
//Abhi : error at this function : when adding for loop to add new elements of downlinkBWP-ToAddModList.
void
prepare_scd
(
NR_ServingCellConfig_t
*
scd
,
int
scd_present
)
{
void
prepare_scd
(
NR_ServingCellConfig_t
*
scd
)
{
// Allocate downlink structures
// Allocate downlink structures
scd
->
downlinkBWP_ToAddModList
=
CALLOC
(
1
,
sizeof
(
*
scd
->
downlinkBWP_ToAddModList
));
scd
->
downlinkBWP_ToAddModList
=
CALLOC
(
1
,
sizeof
(
*
scd
->
downlinkBWP_ToAddModList
));
scd
->
uplinkConfig
=
CALLOC
(
1
,
sizeof
(
*
scd
->
uplinkConfig
));
scd
->
uplinkConfig
=
CALLOC
(
1
,
sizeof
(
*
scd
->
uplinkConfig
));
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
=
CALLOC
(
1
,
sizeof
(
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
));
if
(
scd_present
)
{
scd
->
bwp_InactivityTimer
=
CALLOC
(
1
,
sizeof
(
*
scd
->
bwp_InactivityTimer
));
scd
->
bwp_InactivityTimer
=
CALLOC
(
1
,
sizeof
(
*
scd
->
bwp_InactivityTimer
));
scd
->
uplinkConfig
->
firstActiveUplinkBWP_Id
=
CALLOC
(
1
,
sizeof
(
*
scd
->
uplinkConfig
->
firstActiveUplinkBWP_Id
));
scd
->
uplinkConfig
->
firstActiveUplinkBWP_Id
=
CALLOC
(
1
,
sizeof
(
*
scd
->
uplinkConfig
->
firstActiveUplinkBWP_Id
));
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
=
CALLOC
(
1
,
sizeof
(
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
));
scd
->
firstActiveDownlinkBWP_Id
=
CALLOC
(
1
,
sizeof
(
*
scd
->
firstActiveDownlinkBWP_Id
));
scd
->
firstActiveDownlinkBWP_Id
=
CALLOC
(
1
,
sizeof
(
*
scd
->
firstActiveDownlinkBWP_Id
));
*
scd
->
firstActiveDownlinkBWP_Id
=
1
;
*
scd
->
uplinkConfig
->
firstActiveUplinkBWP_Id
=
1
;
}
for
(
int
j
=
0
;
j
<
4
;
j
++
)
for
(
int
j
=
0
;
j
<
4
;
j
++
)
{
{
// Downlink bandwidth part
// Downlink bandwidth part
NR_BWP_Downlink_t
*
bwp
=
calloc
(
1
,
sizeof
(
*
bwp
));
NR_BWP_Downlink_t
*
bwp
=
calloc
(
1
,
sizeof
(
*
bwp
));
bwp
->
bwp_Id
=
1
;
bwp
->
bwp_Id
=
j
+
1
;
// Allocate downlink dedicated bandwidth part and PDSCH structures
// Allocate downlink dedicated bandwidth part and PDSCH structures
bwp
->
bwp_Common
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
));
bwp
->
bwp_Common
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
));
// bwp->bwp_Common->genericParameters.locationAndBandwidth = calloc(1, sizeof(*bwp->bwp_Common->genericParameters.locationAndBandwidth) );
// bwp->bwp_Common->genericParameters.subcarrierSpacing = calloc(1, sizeof(*bwp->bwp_Common->genericParameters.subcarrierSpacing) );
bwp
->
bwp_Common
->
pdcch_ConfigCommon
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
));
bwp
->
bwp_Common
->
pdcch_ConfigCommon
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
));
bwp
->
bwp_Common
->
pdsch_ConfigCommon
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdsch_ConfigCommon
));
bwp
->
bwp_Common
->
pdsch_ConfigCommon
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdsch_ConfigCommon
));
bwp
->
bwp_Dedicated
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Dedicated
));
bwp
->
bwp_Dedicated
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Dedicated
));
...
@@ -406,7 +414,7 @@ for (int j = 0 ;j < 4 ; j++)
...
@@ -406,7 +414,7 @@ for (int j = 0 ;j < 4 ; j++)
// UL bandwidth part
// UL bandwidth part
NR_BWP_Uplink_t
*
ubwp
=
CALLOC
(
1
,
sizeof
(
*
ubwp
));
NR_BWP_Uplink_t
*
ubwp
=
CALLOC
(
1
,
sizeof
(
*
ubwp
));
ubwp
->
bwp_Id
=
1
;
ubwp
->
bwp_Id
=
j
+
1
;
ubwp
->
bwp_Common
=
CALLOC
(
1
,
sizeof
(
*
ubwp
->
bwp_Common
));
ubwp
->
bwp_Common
=
CALLOC
(
1
,
sizeof
(
*
ubwp
->
bwp_Common
));
ubwp
->
bwp_Dedicated
=
CALLOC
(
1
,
sizeof
(
*
ubwp
->
bwp_Dedicated
));
ubwp
->
bwp_Dedicated
=
CALLOC
(
1
,
sizeof
(
*
ubwp
->
bwp_Dedicated
));
...
@@ -837,11 +845,10 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
...
@@ -837,11 +845,10 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
// Serving Cell Config Dedicated
// Serving Cell Config Dedicated
NR_ServingCellConfig_t
*
scd
=
calloc
(
1
,
sizeof
(
NR_ServingCellConfig_t
));
NR_ServingCellConfig_t
*
scd
=
calloc
(
1
,
sizeof
(
NR_ServingCellConfig_t
));
memset
((
void
*
)
scd
,
0
,
sizeof
(
NR_ServingCellConfig_t
));
memset
((
void
*
)
scd
,
0
,
sizeof
(
NR_ServingCellConfig_t
));
prepare_scd
(
scd
);
paramdef_t
SCDsParams
[]
=
SCDPARAMS_DESC
(
scd
);
printf
(
"RRC BWP 0: %d"
,
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Id
);
printf
(
"RRC BWP 1: %d"
,
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
1
]
->
bwp_Id
);
paramlist_def_t
SCDsParamList
=
{
GNB_CONFIG_STRING_SERVINGCELLCONFIGDEDICATED
,
NULL
,
0
};
paramlist_def_t
SCDsParamList
=
{
GNB_CONFIG_STRING_SERVINGCELLCONFIGDEDICATED
,
NULL
,
0
};
prepare_scd
(
scd
,
SCDsParamList
.
numelt
);
paramdef_t
SCDsParams
[]
=
SCDPARAMS_DESC
(
scd
);
////////// Physical parameters
////////// Physical parameters
...
@@ -922,14 +929,17 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
...
@@ -922,14 +929,17 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
if
(
SCDsParamList
.
numelt
>
0
)
{
if
(
SCDsParamList
.
numelt
>
0
)
{
sprintf
(
aprefix
,
"%s.[%i].%s.[%i]"
,
GNB_CONFIG_STRING_GNB_LIST
,
0
,
GNB_CONFIG_STRING_SERVINGCELLCONFIGDEDICATED
,
0
);
sprintf
(
aprefix
,
"%s.[%i].%s.[%i]"
,
GNB_CONFIG_STRING_GNB_LIST
,
0
,
GNB_CONFIG_STRING_SERVINGCELLCONFIGDEDICATED
,
0
);
config_get
(
SCDsParams
,
sizeof
(
SCDsParams
)
/
sizeof
(
paramdef_t
),
aprefix
);
config_get
(
SCDsParams
,
sizeof
(
SCDsParams
)
/
sizeof
(
paramdef_t
),
aprefix
);
LOG_I
(
RRC
,
"Read in ServingCellConfigDedicated UL (FreqDensity_0 %d, FreqDensity_1 %d, TimeDensity_0 %d, TimeDensity_1 %d, TimeDensity_2 %d, RE offset %d,
BWP_ID
%d
\n
"
,
LOG_I
(
RRC
,
"Read in ServingCellConfigDedicated UL (FreqDensity_0 %d, FreqDensity_1 %d, TimeDensity_0 %d, TimeDensity_1 %d, TimeDensity_2 %d, RE offset %d,
First_active_BWP_ID %d SCS %d, LocationandBW
%d
\n
"
,
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
frequencyDensity
->
list
.
array
[
0
],
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
frequencyDensity
->
list
.
array
[
0
],
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
frequencyDensity
->
list
.
array
[
1
],
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
frequencyDensity
->
list
.
array
[
1
],
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
array
[
0
],
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
array
[
0
],
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
array
[
1
],
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
array
[
1
],
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
array
[
2
],
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
array
[
2
],
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
,
(
int
)
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
,
(
int
)
*
scd
->
firstActiveDownlinkBWP_Id
);
(
int
)
*
scd
->
firstActiveDownlinkBWP_Id
,
(
int
)
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
,
(
int
)
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
);
}
}
fix_scd
(
scd
);
fix_scd
(
scd
);
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
4f9aaa92
...
@@ -2880,7 +2880,6 @@ uint16_t nr_dci_size(const NR_ServingCellConfigCommon_t *scc,
...
@@ -2880,7 +2880,6 @@ uint16_t nr_dci_size(const NR_ServingCellConfigCommon_t *scc,
dci_pdu
->
antenna_ports
.
nbits
=
getAntPortBitWidth
(
typeA
,
typeB
);
dci_pdu
->
antenna_ports
.
nbits
=
getAntPortBitWidth
(
typeA
,
typeB
);
size
+=
dci_pdu
->
antenna_ports
.
nbits
;
size
+=
dci_pdu
->
antenna_ports
.
nbits
;
// Tx Config Indication
// Tx Config Indication
//Abhi : Check this -- bwp_id to replaced with corset_id ? each BWP can have multiple CORSETs .. this has to be corset_id
int
corset_id
=
1
;
int
corset_id
=
1
;
long
*
isTciEnable
=
bwp
->
bwp_Dedicated
->
pdcch_Config
->
choice
.
setup
->
controlResourceSetToAddModList
->
list
.
array
[
corset_id
-
1
]
->
tci_PresentInDCI
;
long
*
isTciEnable
=
bwp
->
bwp_Dedicated
->
pdcch_Config
->
choice
.
setup
->
controlResourceSetToAddModList
->
list
.
array
[
corset_id
-
1
]
->
tci_PresentInDCI
;
if
(
isTciEnable
!=
NULL
)
{
if
(
isTciEnable
!=
NULL
)
{
...
...
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
4f9aaa92
...
@@ -333,21 +333,20 @@ void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format
...
@@ -333,21 +333,20 @@ void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format
NR_ServingCellConfig_t
*
scd
=
mac
->
scg
->
spCellConfig
->
spCellConfigDedicated
;
NR_ServingCellConfig_t
*
scd
=
mac
->
scg
->
spCellConfig
->
spCellConfigDedicated
;
//Abhi : TODO : uncomment this when DCI based swithching is available
if
(
bwp_ind
&&
dci_format
){
// if (bwp_ind && dci_format){
switch
(
*
dci_format
){
// switch(*dci_format){
case
NR_UL_DCI_FORMAT_0_1
:
// case NR_UL_DCI_FORMAT_0_1:
mac
->
UL_BWP_Id
=
*
bwp_ind
;
// mac->UL_BWP_Id = *bwp_ind;
break
;
// break;
case
NR_DL_DCI_FORMAT_1_1
:
// case NR_DL_DCI_FORMAT_1_1:
mac
->
DL_BWP_Id
=
*
bwp_ind
;
// mac->DL_BWP_Id = *bwp_ind;
break
;
// break;
default:
// default:
LOG_E
(
MAC
,
"In %s: failed to configure BWP Id from DCI with format %d
\n
"
,
__FUNCTION__
,
*
dci_format
);
// LOG_E(MAC, "In %s: failed to configure BWP Id from DCI with format %d \n", __FUNCTION__, *dci_format);
}
// }
}
else
{
// } else {
if
(
scd
->
firstActiveDownlinkBWP_Id
)
if
(
scd
->
firstActiveDownlinkBWP_Id
)
mac
->
DL_BWP_Id
=
*
scd
->
firstActiveDownlinkBWP_Id
;
mac
->
DL_BWP_Id
=
*
scd
->
firstActiveDownlinkBWP_Id
;
...
@@ -361,7 +360,7 @@ void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format
...
@@ -361,7 +360,7 @@ void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format
else
else
mac
->
UL_BWP_Id
=
1
;
mac
->
UL_BWP_Id
=
1
;
//
}
}
LOG_I
(
MAC
,
"In %s setting DL_BWP_Id %ld UL_BWP_Id %ld
\n
"
,
__FUNCTION__
,
mac
->
DL_BWP_Id
,
mac
->
UL_BWP_Id
);
LOG_I
(
MAC
,
"In %s setting DL_BWP_Id %ld UL_BWP_Id %ld
\n
"
,
__FUNCTION__
,
mac
->
DL_BWP_Id
,
mac
->
UL_BWP_Id
);
...
@@ -374,12 +373,11 @@ void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format
...
@@ -374,12 +373,11 @@ void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format
*/
*/
void
config_control_ue
(
NR_UE_MAC_INST_t
*
mac
){
void
config_control_ue
(
NR_UE_MAC_INST_t
*
mac
){
//Abhi : Hardcoded CORSET ID here
uint8_t
coreset_id
=
1
,
ss_id
;
uint8_t
coreset_id
=
1
,
ss_id
;
NR_ServingCellConfig_t
*
scd
=
mac
->
scg
->
spCellConfig
->
spCellConfigDedicated
;
NR_ServingCellConfig_t
*
scd
=
mac
->
scg
->
spCellConfig
->
spCellConfigDedicated
;
AssertFatal
(
scd
->
downlinkBWP_ToAddModList
!=
NULL
,
"downlinkBWP_ToAddModList is null
\n
"
);
AssertFatal
(
scd
->
downlinkBWP_ToAddModList
!=
NULL
,
"downlinkBWP_ToAddModList is null
\n
"
);
//AssertFatal(scd->downlinkBWP_ToAddModList->list.count == 1
, "downlinkBWP_ToAddModList->list->count is %d\n", scd->downlinkBWP_ToAddModList->list.count);
AssertFatal
(
scd
->
downlinkBWP_ToAddModList
->
list
.
count
<=
4
,
"downlinkBWP_ToAddModList->list->count is %d
\n
"
,
scd
->
downlinkBWP_ToAddModList
->
list
.
count
);
config_bwp_ue
(
mac
,
NULL
,
NULL
);
config_bwp_ue
(
mac
,
NULL
,
NULL
);
NR_BWP_Id_t
dl_bwp_id
=
mac
->
DL_BWP_Id
;
NR_BWP_Id_t
dl_bwp_id
=
mac
->
DL_BWP_Id
;
...
@@ -393,7 +391,6 @@ void config_control_ue(NR_UE_MAC_INST_t *mac){
...
@@ -393,7 +391,6 @@ void config_control_ue(NR_UE_MAC_INST_t *mac){
NR_BWP_DownlinkDedicated_t
*
dl_bwp_Dedicated
=
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
dl_bwp_id
-
1
]
->
bwp_Dedicated
;
NR_BWP_DownlinkDedicated_t
*
dl_bwp_Dedicated
=
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
dl_bwp_id
-
1
]
->
bwp_Dedicated
;
AssertFatal
(
dl_bwp_Dedicated
!=
NULL
,
"dl_bwp_Dedicated is null
\n
"
);
AssertFatal
(
dl_bwp_Dedicated
!=
NULL
,
"dl_bwp_Dedicated is null
\n
"
);
//Abhi : TODO : add assert statements for UL BWP!
NR_SetupRelease_PDCCH_Config_t
*
pdcch_Config
=
dl_bwp_Dedicated
->
pdcch_Config
;
NR_SetupRelease_PDCCH_Config_t
*
pdcch_Config
=
dl_bwp_Dedicated
->
pdcch_Config
;
AssertFatal
(
pdcch_Config
!=
NULL
,
"pdcch_Config is null
\n
"
);
AssertFatal
(
pdcch_Config
!=
NULL
,
"pdcch_Config is null
\n
"
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
View file @
4f9aaa92
...
@@ -224,7 +224,6 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
...
@@ -224,7 +224,6 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
RA_config_t
*
ra
=
&
mac
->
ra
;
RA_config_t
*
ra
=
&
mac
->
ra
;
int
ss_id
;
int
ss_id
;
//Abhi : harcoded CORSET ID here
uint8_t
bwp_id
=
mac
->
DL_BWP_Id
;
uint8_t
bwp_id
=
mac
->
DL_BWP_Id
;
uint8_t
coreset_id
=
1
;
uint8_t
coreset_id
=
1
;
//NR_ServingCellConfig_t *scd = mac->scg->spCellConfig->spCellConfigDedicated;
//NR_ServingCellConfig_t *scd = mac->scg->spCellConfig->spCellConfigDedicated;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
4f9aaa92
...
@@ -438,7 +438,6 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
...
@@ -438,7 +438,6 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
AssertFatal
(
mac
->
DLbwp
[
0
]
!=
NULL
,
"DLbwp[0] should not be zero here!
\n
"
);
AssertFatal
(
mac
->
DLbwp
[
0
]
!=
NULL
,
"DLbwp[0] should not be zero here!
\n
"
);
AssertFatal
(
mac
->
ULbwp
[
0
]
!=
NULL
,
"DLbwp[0] should not be zero here!
\n
"
);
AssertFatal
(
mac
->
ULbwp
[
0
]
!=
NULL
,
"DLbwp[0] should not be zero here!
\n
"
);
//Abhi : TODO
const
uint16_t
n_RB_DLBWP
=
(
ra
->
ra_state
==
WAIT_RAR
||
ra
->
ra_state
==
WAIT_CONTENTION_RESOLUTION
)
?
NRRIV2BW
(
mac
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
)
:
NRRIV2BW
(
mac
->
DLbwp
[
dl_bwp_id
-
1
]
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
const
uint16_t
n_RB_DLBWP
=
(
ra
->
ra_state
==
WAIT_RAR
||
ra
->
ra_state
==
WAIT_CONTENTION_RESOLUTION
)
?
NRRIV2BW
(
mac
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
)
:
NRRIV2BW
(
mac
->
DLbwp
[
dl_bwp_id
-
1
]
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
LOG_D
(
MAC
,
"In %s: Processing received DCI format %s (DL BWP %d)
\n
"
,
__FUNCTION__
,
dci_formats
[
dci_format
],
n_RB_DLBWP
);
LOG_D
(
MAC
,
"In %s: Processing received DCI format %s (DL BWP %d)
\n
"
,
__FUNCTION__
,
dci_formats
[
dci_format
],
n_RB_DLBWP
);
...
@@ -791,11 +790,7 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
...
@@ -791,11 +790,7 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
* 47 DMRS_SEQ_INI:
* 47 DMRS_SEQ_INI:
*/
*/
//Abhi : temporarily commenting this out
// if (dci->bwp_indicator.val != 1) {
// LOG_W(MAC, "[%d.%d] bwp_indicator != 1! Possibly due to false DCI. Ignoring DCI!\n", frame, slot);
// return -1;
// }
config_bwp_ue
(
mac
,
&
dci
->
bwp_indicator
.
val
,
&
dci_format
);
config_bwp_ue
(
mac
,
&
dci
->
bwp_indicator
.
val
,
&
dci_format
);
NR_PDSCH_Config_t
*
pdsch_config
=
mac
->
DLbwp
[
dl_bwp_id
-
1
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
;
NR_PDSCH_Config_t
*
pdsch_config
=
mac
->
DLbwp
[
dl_bwp_id
-
1
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
4f9aaa92
...
@@ -625,11 +625,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
...
@@ -625,11 +625,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
}
else
if
(
*
dci_format
==
NR_UL_DCI_FORMAT_0_1
)
{
}
else
if
(
*
dci_format
==
NR_UL_DCI_FORMAT_0_1
)
{
/* BANDWIDTH_PART_IND */
/* BANDWIDTH_PART_IND */
//Abhi : why must BWP always be 1 ?
// if (dci->bwp_indicator.val != 1) {
// LOG_W(MAC, "bwp_indicator != 1! Possibly due to false DCI. Ignoring DCI!\n");
// return -1;
// }
config_bwp_ue
(
mac
,
&
dci
->
bwp_indicator
.
val
,
dci_format
);
config_bwp_ue
(
mac
,
&
dci
->
bwp_indicator
.
val
,
dci_format
);
target_ss
=
NR_SearchSpace__searchSpaceType_PR_ue_Specific
;
target_ss
=
NR_SearchSpace__searchSpaceType_PR_ue_Specific
;
ul_layers_config
(
mac
,
pusch_config_pdu
,
dci
);
ul_layers_config
(
mac
,
pusch_config_pdu
,
dci
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
4f9aaa92
...
@@ -1067,7 +1067,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1067,7 +1067,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
dci_payload
.
mcs
=
pdsch_pdu_rel15
->
mcsIndex
[
0
];
dci_payload
.
mcs
=
pdsch_pdu_rel15
->
mcsIndex
[
0
];
dci_payload
.
tb_scaling
=
tb_scaling
;
dci_payload
.
tb_scaling
=
tb_scaling
;
LOG_
D
(
NR_MAC
,
LOG_
I
(
NR_MAC
,
"[RAPROC] DCI type 1 payload: freq_alloc %d (%d,%d,%d), time_alloc %d, vrb to prb %d, mcs %d tb_scaling %d
\n
"
,
"[RAPROC] DCI type 1 payload: freq_alloc %d (%d,%d,%d), time_alloc %d, vrb to prb %d, mcs %d tb_scaling %d
\n
"
,
dci_payload
.
frequency_domain_assignment
.
val
,
dci_payload
.
frequency_domain_assignment
.
val
,
pdsch_pdu_rel15
->
rbStart
,
pdsch_pdu_rel15
->
rbStart
,
...
@@ -1078,7 +1078,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1078,7 +1078,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
dci_payload
.
mcs
,
dci_payload
.
mcs
,
dci_payload
.
tb_scaling
);
dci_payload
.
tb_scaling
);
LOG_
D
(
NR_MAC
,
LOG_
I
(
NR_MAC
,
"[RAPROC] DCI params: rnti 0x%x, rnti_type %d, dci_format %d coreset params: FreqDomainResource %llx, start_symbol %d n_symb %d
\n
"
,
"[RAPROC] DCI params: rnti 0x%x, rnti_type %d, dci_format %d coreset params: FreqDomainResource %llx, start_symbol %d n_symb %d
\n
"
,
pdcch_pdu_rel15
->
dci_pdu
[
0
].
RNTI
,
pdcch_pdu_rel15
->
dci_pdu
[
0
].
RNTI
,
NR_RNTI_RA
,
NR_RNTI_RA
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
4f9aaa92
...
@@ -954,12 +954,11 @@ void nr_schedule_ue_spec(module_id_t module_id,
...
@@ -954,12 +954,11 @@ void nr_schedule_ue_spec(module_id_t module_id,
// bwp indicator
// bwp indicator
const
int
n_dl_bwp
=
UE_info
->
secondaryCellGroup
[
UE_id
]
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
count
;
const
int
n_dl_bwp
=
UE_info
->
secondaryCellGroup
[
UE_id
]
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
count
;
// AssertFatal(n_dl_bwp == 1
,
AssertFatal
(
n_dl_bwp
<=
4
,
//
"downlinkBWP_ToAddModList has %d BWP!\n",
"downlinkBWP_ToAddModList has %d BWP!
\n
"
,
//
n_dl_bwp);
n_dl_bwp
);
// as per table 7.3.1.1.2-1 in 38.212
// as per table 7.3.1.1.2-1 in 38.212
// Abhi :look into this
dci_payload
.
bwp_indicator
.
val
=
n_dl_bwp
<=
4
?
bwp
->
bwp_Id
:
bwp
->
bwp_Id
-
1
;
dci_payload
.
bwp_indicator
.
val
=
n_dl_bwp
<
4
?
bwp
->
bwp_Id
:
bwp
->
bwp_Id
-
1
;
AssertFatal
(
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
resourceAllocation
==
NR_PDSCH_Config__resourceAllocation_resourceAllocationType1
,
AssertFatal
(
bwp
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
resourceAllocation
==
NR_PDSCH_Config__resourceAllocation_resourceAllocationType1
,
"Only frequency resource allocation type 1 is currently supported
\n
"
);
"Only frequency resource allocation type 1 is currently supported
\n
"
);
dci_payload
.
frequency_domain_assignment
.
val
=
dci_payload
.
frequency_domain_assignment
.
val
=
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
4f9aaa92
...
@@ -615,7 +615,7 @@ void config_uldci(const NR_BWP_Uplink_t *ubwp,
...
@@ -615,7 +615,7 @@ void config_uldci(const NR_BWP_Uplink_t *ubwp,
case
NR_UL_DCI_FORMAT_0_1
:
case
NR_UL_DCI_FORMAT_0_1
:
dci_pdu_rel15
->
dai
[
0
].
val
=
0
;
//TODO
dci_pdu_rel15
->
dai
[
0
].
val
=
0
;
//TODO
// bwp indicator as per table 7.3.1.1.2-1 in 38.212
// bwp indicator as per table 7.3.1.1.2-1 in 38.212
dci_pdu_rel15
->
bwp_indicator
.
val
=
n_ubwp
<
4
?
bwp_id
:
bwp_id
-
1
;
dci_pdu_rel15
->
bwp_indicator
.
val
=
n_ubwp
<
=
4
?
bwp_id
:
bwp_id
-
1
;
// SRS resource indicator
// SRS resource indicator
if
(
ubwp
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
txConfig
!=
NULL
)
{
if
(
ubwp
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
txConfig
!=
NULL
)
{
AssertFatal
(
*
ubwp
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
txConfig
==
NR_PUSCH_Config__txConfig_codebook
,
AssertFatal
(
*
ubwp
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
txConfig
==
NR_PUSCH_Config__txConfig_codebook
,
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
4f9aaa92
...
@@ -461,8 +461,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -461,8 +461,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToReleaseList
=
NULL
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToReleaseList
=
NULL
;
//Abhi : Fix me
// Code has to loop thorough multiple BWP wherever necessary
NR_BWP_Downlink_t
*
bwp
=
NULL
;
NR_BWP_Downlink_t
*
bwp
=
NULL
;
for
(
int
bwp_loop
=
0
;
bwp_loop
<
4
;
bwp_loop
++
)
for
(
int
bwp_loop
=
0
;
bwp_loop
<
4
;
bwp_loop
++
)
{
{
...
@@ -473,19 +471,16 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -473,19 +471,16 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
));
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
));
bwp
=
calloc
(
1
,
sizeof
(
*
bwp
));
bwp
=
calloc
(
1
,
sizeof
(
*
bwp
));
}
bwp
->
bwp_Id
=
bwp_loop
+
1
;
//Abhi: remove this ? BWP is added to asn only when scd is not present
#pragma region bwp-downlink-Common
bwp
->
bwp_Common
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
));
// copy common BWP size from initial BWP except for bandwdith
// copy common BWP size from initial BWP except for bandwdith
bwp
->
bwp_Id
=
bwp_loop
+
1
;
memcpy
((
void
*
)
&
bwp
->
bwp_Common
->
genericParameters
,
memcpy
((
void
*
)
&
bwp
->
bwp_Common
->
genericParameters
,
&
servingcellconfigcommon
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
,
&
servingcellconfigcommon
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
,
sizeof
(
bwp
->
bwp_Common
->
genericParameters
));
sizeof
(
bwp
->
bwp_Common
->
genericParameters
));
bwp
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
=
1
;
bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
=
PRBalloc_to_locationandbandwidth
(
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
carrierBandwidth
,
0
);
bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
=
PRBalloc_to_locationandbandwidth
(
servingcellconfigcommon
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
carrierBandwidth
,
0
);
bwp
->
bwp_Common
->
genericParameters
.
subcarrierSpacing
=
1
;
//Abhi : hardcoded
}
#pragma region bwp_common->pdcch_ConfigCommon
bwp
->
bwp_Common
->
pdcch_ConfigCommon
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
));
bwp
->
bwp_Common
->
pdcch_ConfigCommon
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
));
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
present
=
NR_SetupRelease_PDCCH_ConfigCommon_PR_setup
;
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
present
=
NR_SetupRelease_PDCCH_ConfigCommon_PR_setup
;
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
));
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
));
...
@@ -494,7 +489,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -494,7 +489,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
int
curr_bwp
=
NRRIV2BW
(
bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
int
curr_bwp
=
NRRIV2BW
(
bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
275
);
#pragma region corset
NR_ControlResourceSet_t
*
coreset
=
calloc
(
1
,
sizeof
(
*
coreset
));
NR_ControlResourceSet_t
*
coreset
=
calloc
(
1
,
sizeof
(
*
coreset
));
coreset
->
controlResourceSetId
=
1
;
coreset
->
controlResourceSetId
=
1
;
// frequency domain resources depends on BWP size
// frequency domain resources depends on BWP size
...
@@ -532,13 +526,11 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -532,13 +526,11 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
coreset
->
pdcch_DMRS_ScramblingID
=
NULL
;
coreset
->
pdcch_DMRS_ScramblingID
=
NULL
;
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonControlResourceSet
=
coreset
;
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonControlResourceSet
=
coreset
;
#pragma endregion coreset
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceZero
=
NULL
;
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
searchSpaceZero
=
NULL
;
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
=
NULL
;
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
=
NULL
;
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
));
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
commonSearchSpaceList
));
#pragma region CommonSearchSpace
NR_SearchSpace_t
*
ss
=
calloc
(
1
,
sizeof
(
*
ss
));
NR_SearchSpace_t
*
ss
=
calloc
(
1
,
sizeof
(
*
ss
));
ss
->
searchSpaceId
=
1
;
ss
->
searchSpaceId
=
1
;
ss
->
controlResourceSetId
=
calloc
(
1
,
sizeof
(
*
ss
->
controlResourceSetId
));
ss
->
controlResourceSetId
=
calloc
(
1
,
sizeof
(
*
ss
->
controlResourceSetId
));
...
@@ -574,14 +566,12 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -574,14 +566,12 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
));
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
));
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
=
1
;
*
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
ra_SearchSpace
=
1
;
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
ext1
=
NULL
;
bwp
->
bwp_Common
->
pdcch_ConfigCommon
->
choice
.
setup
->
ext1
=
NULL
;
#pragma endregion pdcch_ConfigCommon
bwp
->
bwp_Common
->
pdsch_ConfigCommon
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdsch_ConfigCommon
));
bwp
->
bwp_Common
->
pdsch_ConfigCommon
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdsch_ConfigCommon
));
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
present
=
NR_SetupRelease_PDSCH_ConfigCommon_PR_setup
;
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
present
=
NR_SetupRelease_PDSCH_ConfigCommon_PR_setup
;
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
));
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
));
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
));
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
));
#pragma endregion bwp_Common->pdcch_ConfigCommon
// copy PDSCH TimeDomainResourceAllocation from InitialBWP
// copy PDSCH TimeDomainResourceAllocation from InitialBWP
NR_PDSCH_TimeDomainResourceAllocation_t
*
pdschi
;
NR_PDSCH_TimeDomainResourceAllocation_t
*
pdschi
;
...
@@ -595,14 +585,12 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -595,14 +585,12 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
pdschi
->
startSymbolAndLength
=
servingcellconfigcommon
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
->
list
.
array
[
i
]
->
startSymbolAndLength
;
pdschi
->
startSymbolAndLength
=
servingcellconfigcommon
->
downlinkConfigCommon
->
initialDownlinkBWP
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
->
list
.
array
[
i
]
->
startSymbolAndLength
;
ASN_SEQUENCE_ADD
(
&
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
->
list
,
pdschi
);
ASN_SEQUENCE_ADD
(
&
bwp
->
bwp_Common
->
pdsch_ConfigCommon
->
choice
.
setup
->
pdsch_TimeDomainAllocationList
->
list
,
pdschi
);
}
}
#pragma endregion bwp_common
if
(
!
servingcellconfigdedicated
)
{
if
(
!
servingcellconfigdedicated
)
{
bwp
->
bwp_Dedicated
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Dedicated
));
bwp
->
bwp_Dedicated
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Dedicated
));
}
}
#pragma region bwp-downlink-Dedicated
bwp
->
bwp_Dedicated
->
pdcch_Config
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Dedicated
->
pdcch_Config
));
bwp
->
bwp_Dedicated
->
pdcch_Config
=
calloc
(
1
,
sizeof
(
*
bwp
->
bwp_Dedicated
->
pdcch_Config
));
bwp
->
bwp_Dedicated
->
pdcch_Config
->
present
=
NR_SetupRelease_PDCCH_Config_PR_setup
;
bwp
->
bwp_Dedicated
->
pdcch_Config
->
present
=
NR_SetupRelease_PDCCH_Config_PR_setup
;
...
@@ -773,12 +761,11 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -773,12 +761,11 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
if
(
!
servingcellconfigdedicated
)
{
if
(
!
servingcellconfigdedicated
)
{
ASN_SEQUENCE_ADD
(
&
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
,
bwp
);
ASN_SEQUENCE_ADD
(
&
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
,
bwp
);
}
}
#pragma endregion bwp-downlink-Dedicated
//Abhi : FIX ME!
if
(
!
servingcellconfigdedicated
)
{
//TODO : check if code goes here
//
secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id));
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
firstActiveDownlinkBWP_Id
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
firstActiveDownlinkBWP_Id
));
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
firstActiveDownlinkBWP_Id
=
1
;
//*secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id=1; //Abhi: this has to be removed
}
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
bwp_InactivityTimer
=
NULL
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
bwp_InactivityTimer
=
NULL
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
defaultDownlinkBWP_Id
=
NULL
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
defaultDownlinkBWP_Id
=
NULL
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
defaultDownlinkBWP_Id
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
defaultDownlinkBWP_Id
));
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
defaultDownlinkBWP_Id
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
defaultDownlinkBWP_Id
));
...
@@ -788,7 +775,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -788,7 +775,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
));
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
));
}
}
#pragma region bwp-uplink
NR_BWP_UplinkDedicated_t
*
initialUplinkBWP
=
calloc
(
1
,
sizeof
(
*
initialUplinkBWP
));
NR_BWP_UplinkDedicated_t
*
initialUplinkBWP
=
calloc
(
1
,
sizeof
(
*
initialUplinkBWP
));
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
initialUplinkBWP
=
initialUplinkBWP
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
initialUplinkBWP
=
initialUplinkBWP
;
initialUplinkBWP
->
pucch_Config
=
NULL
;
initialUplinkBWP
->
pucch_Config
=
NULL
;
...
@@ -801,7 +787,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -801,7 +787,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
pusch_Config
=
calloc
(
1
,
sizeof
(
*
pusch_Config
));
pusch_Config
=
calloc
(
1
,
sizeof
(
*
pusch_Config
));
}
}
#pragma region pusch-config-ubwp-dedicated
initialUplinkBWP
->
pusch_Config
->
choice
.
setup
=
pusch_Config
;
initialUplinkBWP
->
pusch_Config
->
choice
.
setup
=
pusch_Config
;
pusch_Config
->
txConfig
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
txConfig
));
pusch_Config
->
txConfig
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
txConfig
));
*
pusch_Config
->
txConfig
=
NR_PUSCH_Config__txConfig_codebook
;
*
pusch_Config
->
txConfig
=
NR_PUSCH_Config__txConfig_codebook
;
...
@@ -895,7 +880,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -895,7 +880,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
}
}
/*----------------------------------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------------------------------*/
#pragma endregion PUSCH-Config-ubwp-dedicated
initialUplinkBWP
->
srs_Config
=
calloc
(
1
,
sizeof
(
*
initialUplinkBWP
->
srs_Config
));
initialUplinkBWP
->
srs_Config
=
calloc
(
1
,
sizeof
(
*
initialUplinkBWP
->
srs_Config
));
initialUplinkBWP
->
srs_Config
->
present
=
NR_SetupRelease_SRS_Config_PR_setup
;
initialUplinkBWP
->
srs_Config
->
present
=
NR_SetupRelease_SRS_Config_PR_setup
;
...
@@ -903,7 +887,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -903,7 +887,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
initialUplinkBWP
->
srs_Config
->
choice
.
setup
=
srs_Config
;
initialUplinkBWP
->
srs_Config
->
choice
.
setup
=
srs_Config
;
srs_Config
->
srs_ResourceSetToReleaseList
=
NULL
;
srs_Config
->
srs_ResourceSetToReleaseList
=
NULL
;
#pragma region srs_Config-ubwp-dedicated
srs_Config
->
srs_ResourceSetToAddModList
=
calloc
(
1
,
sizeof
(
*
srs_Config
->
srs_ResourceSetToAddModList
));
srs_Config
->
srs_ResourceSetToAddModList
=
calloc
(
1
,
sizeof
(
*
srs_Config
->
srs_ResourceSetToAddModList
));
NR_SRS_ResourceSet_t
*
srs_resset0
=
calloc
(
1
,
sizeof
(
*
srs_resset0
));
NR_SRS_ResourceSet_t
*
srs_resset0
=
calloc
(
1
,
sizeof
(
*
srs_resset0
));
srs_resset0
->
srs_ResourceSetId
=
0
;
srs_resset0
->
srs_ResourceSetId
=
0
;
...
@@ -955,7 +938,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -955,7 +938,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
srs_res0
->
spatialRelationInfo
->
referenceSignal
.
choice
.
csi_RS_Index
=
0
;
srs_res0
->
spatialRelationInfo
->
referenceSignal
.
choice
.
csi_RS_Index
=
0
;
ASN_SEQUENCE_ADD
(
&
srs_Config
->
srs_ResourceToAddModList
->
list
,
srs_res0
);
ASN_SEQUENCE_ADD
(
&
srs_Config
->
srs_ResourceToAddModList
->
list
,
srs_res0
);
#pragma endregion srs_config
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
uplinkBWP_ToReleaseList
=
NULL
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
uplinkBWP_ToReleaseList
=
NULL
;
NR_BWP_Uplink_t
*
ubwp
=
NULL
;
NR_BWP_Uplink_t
*
ubwp
=
NULL
;
...
@@ -981,7 +963,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -981,7 +963,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
ubwp
->
bwp_Dedicated
=
calloc
(
1
,
sizeof
(
*
ubwp
->
bwp_Dedicated
));
ubwp
->
bwp_Dedicated
=
calloc
(
1
,
sizeof
(
*
ubwp
->
bwp_Dedicated
));
}
}
#pragma region bwp-uplink-Dedicated
ubwp
->
bwp_Dedicated
->
pucch_Config
=
calloc
(
1
,
sizeof
(
*
ubwp
->
bwp_Dedicated
->
pucch_Config
));
ubwp
->
bwp_Dedicated
->
pucch_Config
=
calloc
(
1
,
sizeof
(
*
ubwp
->
bwp_Dedicated
->
pucch_Config
));
ubwp
->
bwp_Dedicated
->
pucch_Config
->
present
=
NR_SetupRelease_PUCCH_Config_PR_setup
;
ubwp
->
bwp_Dedicated
->
pucch_Config
->
present
=
NR_SetupRelease_PUCCH_Config_PR_setup
;
...
@@ -1110,16 +1091,16 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -1110,16 +1091,16 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
ubwp
->
bwp_Dedicated
->
srs_Config
->
choice
.
setup
=
srs_Config
;
ubwp
->
bwp_Dedicated
->
srs_Config
->
choice
.
setup
=
srs_Config
;
ubwp
->
bwp_Dedicated
->
beamFailureRecoveryConfig
=
NULL
;
ubwp
->
bwp_Dedicated
->
beamFailureRecoveryConfig
=
NULL
;
#pragma endregion bwp-uplink-Dedicated
if
(
!
servingcellconfigdedicated
)
{
if
(
!
servingcellconfigdedicated
)
{
ASN_SEQUENCE_ADD
(
&
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
,
ubwp
);
ASN_SEQUENCE_ADD
(
&
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
,
ubwp
);
}
}
#pragma endregion bwp-uplink-Config
}
}
//secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id));
//*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = 1;
if
(
!
servingcellconfigdedicated
)
{
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
firstActiveUplinkBWP_Id
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
firstActiveUplinkBWP_Id
));
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
firstActiveUplinkBWP_Id
=
1
;
}
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
));
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
));
NR_PUSCH_ServingCellConfig_t
*
pusch_scc
=
calloc
(
1
,
sizeof
(
*
pusch_scc
));
NR_PUSCH_ServingCellConfig_t
*
pusch_scc
=
calloc
(
1
,
sizeof
(
*
pusch_scc
));
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
->
present
=
NR_SetupRelease_PUSCH_ServingCellConfig_PR_setup
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
pusch_ServingCellConfig
->
present
=
NR_SetupRelease_PUSCH_ServingCellConfig_PR_setup
;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.SCD.conf
0 → 100644
View file @
4f9aaa92
Active_gNBs
= (
"gNB-Eurecom-5GNRBox"
);
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity
=
"none"
;
gNBs
=
(
{
//////////
Identification
parameters
:
gNB_ID
=
0
xe00
;
cell_type
=
"CELL_MACRO_GNB"
;
gNB_name
=
"gNB-Eurecom-5GNRBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
1
;
plmn_list
= ({
mcc
=
208
;
mnc
=
93
;
mnc_length
=
2
;});
tr_s_preference
=
"local_mac"
//////////
Physical
parameters
:
ssb_SubcarrierOffset
=
0
;
pdsch_AntennaPorts
=
1
;
pusch_AntennaPorts
=
1
;
servingCellConfigCommon
= (
{
#spCellConfigCommon
physCellId
=
0
;
# downlinkConfigCommon
#frequencyInfoDL
# this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP), points to Subcarrier 0 of RB#10 of SSB block
absoluteFrequencySSB
=
641032
;
dl_frequencyBand
=
78
;
# this is 3600 MHz
dl_absoluteFrequencyPointA
=
640000
;
#scs-SpecificCarrierList
dl_offstToCarrier
=
0
;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
dl_subcarrierSpacing
=
1
;
dl_carrierBandwidth
=
106
;
#initialDownlinkBWP
#genericParameters
# this is RBstart=33 (Start RB of SSB block),L=24 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth
=
6358
;
#6368;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing
=
1
;
#pdcch-ConfigCommon
initialDLBWPcontrolResourceSetZero
=
0
;
#12;
initialDLBWPsearchSpaceZero
=
0
;
#pdsch-ConfigCommon
#pdschTimeDomainAllocationList (up to 16 entries)
initialDLBWPk0_0
=
0
;
# used for (full) DL slot
initialDLBWPmappingType_0
=
0
;
# 0=typeA,1=typeB
initialDLBWPstartSymbolAndLength_0
=
40
;
# this is SS=1,L=13
initialDLBWPk0_1
=
0
;
# used for DL part mixed slot
initialDLBWPmappingType_1
=
0
;
initialDLBWPstartSymbolAndLength_1
=
57
;
# this is SS=1,L=5
#uplinkConfigCommon
#frequencyInfoUL
ul_frequencyBand
=
78
;
#scs-SpecificCarrierList
ul_offstToCarrier
=
0
;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
ul_subcarrierSpacing
=
1
;
ul_carrierBandwidth
=
106
;
pMax
=
20
;
#initialUplinkBWP
#genericParameters
initialULBWPlocationAndBandwidth
=
6358
;
#6368;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing
=
1
;
#rach-ConfigCommon
#rach-ConfigGeneric
prach_ConfigurationIndex
=
98
;
#prach_msg1_FDM
#0 = one, 1=two, 2=four, 3=eight
prach_msg1_FDM
=
0
;
prach_msg1_FrequencyStart
=
0
;
zeroCorrelationZoneConfig
=
13
;
preambleReceivedTargetPower
= -
118
;
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
preambleTransMax
=
6
;
#powerRampingStep
# 0=dB0,1=dB2,2=dB4,3=dB6
powerRampingStep
=
1
;
#ra_ReponseWindow
#1,2,4,8,10,20,40,80
ra_ResponseWindow
=
4
;
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
=
4
;
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB
=
15
;
#ra_ContentionResolutionTimer
#(0..7) 8,16,24,32,40,48,56,64
ra_ContentionResolutionTimer
=
7
;
rsrp_ThresholdSSB
=
19
;
#prach-RootSequenceIndex_PR
#1 = 839, 2 = 139
prach_RootSequenceIndex_PR
=
2
;
prach_RootSequenceIndex
=
1
;
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
#
msg1_SubcarrierSpacing
=
1
,
# restrictedSetConfig
# 0=unrestricted, 1=restricted type A, 2=restricted type B
restrictedSetConfig
=
0
,
# pusch-ConfigCommon (up to 16 elements)
initialULBWPk2_0
=
6
;
# used for (full) UL slot
initialULBWPmappingType_0
=
1
initialULBWPstartSymbolAndLength_0
=
41
;
# this is SS=0 L=13
initialULBWPk2_1
=
6
;
# used for UL part mixed slot
initialULBWPmappingType_1
=
1
;
initialULBWPstartSymbolAndLength_1
=
69
;
# this is SS=10 L=2
initialULBWPk2_2
=
7
;
# used for Msg.3 during RA
initialULBWPmappingType_2
=
1
;
initialULBWPstartSymbolAndLength_2
=
52
;
# this is SS=10 L=4
msg3_DeltaPreamble
=
1
;
p0_NominalWithGrant
=-
90
;
# pucch-ConfigCommon setup :
# pucchGroupHopping
# 0 = neither, 1= group hopping, 2=sequence hopping
pucchGroupHopping
=
0
;
hoppingId
=
40
;
p0_nominal
= -
90
;
# ssb_PositionsInBurs_BitmapPR
# 1=short, 2=medium, 3=long
ssb_PositionsInBurst_PR
=
2
;
ssb_PositionsInBurst_Bitmap
=
0
x1
;
# ssb_periodicityServingCell
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
ssb_periodicityServingCell
=
2
;
# dmrs_TypeA_position
# 0 = pos2, 1 = pos3
dmrs_TypeA_Position
=
0
;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
subcarrierSpacing
=
1
;
#tdd-UL-DL-ConfigurationCommon
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
referenceSubcarrierSpacing
=
1
;
# pattern1
# dl_UL_TransmissionPeriodicity
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
dl_UL_TransmissionPeriodicity
=
6
;
nrofDownlinkSlots
=
7
;
nrofDownlinkSymbols
=
6
;
nrofUplinkSlots
=
2
;
nrofUplinkSymbols
=
4
;
ssPBCH_BlockPower
= -
25
;
}
);
# Dedicated Serving Cell Configuration
servingCellConfigDedicated
= (
{
# BWP-Downlink
# BWP 1 Configuration
bwp
-
Id_1
=
1
;
bwp1_locationAndBandwidth
=
28908
; //
RBstart
=
33
,
L
=
106
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
bwp1_subcarrierSpacing
=
1
;
# BWP 2 Configuration
bwp
-
Id_2
=
2
;
bwp2_locationAndBandwidth
=
28908
; //
RBstart
=
33
,
L
=
106
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
bwp2_subcarrierSpacing
=
1
;
# BWP 3 Configuration
bwp
-
Id_3
=
3
;
bwp3_locationAndBandwidth
=
28908
; //
RBstart
=
33
,
L
=
106
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
bwp3_subcarrierSpacing
=
1
;
# BWP 4 Configuration
bwp
-
Id_4
=
4
;
bwp4_locationAndBandwidth
=
28908
; //
RBstart
=
33
,
L
=
106
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
bwp4_subcarrierSpacing
=
1
;
firstActiveDownlinkBWP
-
Id
=
2
;
#BWP-Id
# bwp-InactivityTimer ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
# ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
# ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
# spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
defaultDownlinkBWP
-
Id
=
1
;
#BWP-Id
# UplinkConfig
firstActiveUplinkBWP
-
Id
=
2
;
#BWP-Id
#BWP-Uplink
}
);
# ------- SCTP definitions
SCTP
:
{
# Number of streams to use in input/output
SCTP_INSTREAMS
=
2
;
SCTP_OUTSTREAMS
=
2
;
};
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"192.168.12.26"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
NETWORK_INTERFACES
:
{
GNB_INTERFACE_NAME_FOR_S1_MME
=
"eth0"
;
GNB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.111/24"
;
GNB_INTERFACE_NAME_FOR_S1U
=
"eth0"
;
GNB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.111/24"
;
GNB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
}
);
MACRLCs
= (
{
num_cc
=
1
;
tr_s_preference
=
"local_L1"
;
tr_n_preference
=
"local_RRC"
;
}
);
L1s
= (
{
num_cc
=
1
;
tr_n_preference
=
"local_mac"
;
pusch_proc_threads
=
8
;
}
);
RUs
= (
{
local_rf
=
"yes"
nb_tx
=
1
nb_rx
=
1
att_tx
=
0
att_rx
=
0
;
bands
= [
7
];
max_pdschReferenceSignalPower
= -
27
;
max_rxgain
=
50
;
eNB_instances
= [
0
];
## beamforming 1x2 matrix: 1 layer x 2 antennas
#bf_weights = [0x00007fff, 0x00007fff];
## beamforming 1x4 matrix: 1 layer x 4 antennas
#bf_weights = [0x00007fff, 0x0000,0x0000, 0x0000];
## beamforming 2x2 matrix:
#bf_weights = [0x00007fff, 0x00000000, 0x00000000, 0x00007fff];
## beamforming 4x4 matrix:
#bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
sdr_addrs
=
"addr=192.168.10.2,mgmt_addr=192.168.10.2,second_addr=192.168.20.2"
;
clock_src
=
"external"
;
}
);
THREAD_STRUCT
= (
{
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
parallel_config
=
"PARALLEL_RU_L1_TRX_SPLIT"
;
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
worker_config
=
"WORKER_ENABLE"
;
}
);
log_config
:
{
global_log_level
=
"info"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"info"
;
mac_log_verbosity
=
"high"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"medium"
;
};
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
View file @
4f9aaa92
...
@@ -175,57 +175,6 @@ gNBs =
...
@@ -175,57 +175,6 @@ gNBs =
);
);
# Dedicated Serving Cell Configuration
servingCellConfigDedicated
= (
{
# BWP-Downlink
# DL PTRS related parameters.
# 3GPP TS 38.331 PTRS-DownlinkConfig
# BWP 1 Configuration
bwp
-
Id_0
=
1
;
locationAndBandwidth_0
=
1234
; //
TODO
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
subcarrierSpacing_0
=
1
;
# BWP 2 Configuration
bwp
-
Id_1
=
1
;
locationAndBandwidth_1
=
1234
; //
TODO
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
subcarrierSpacing_1
=
1
;
firstActiveDownlinkBWP
-
Id
=
2
;
#BWP-Id
# bwp-InactivityTimer ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
# ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
# ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
# spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
defaultDownlinkBWP
-
Id
=
1
;
#BWP-Id
# UplinkConfig
firstActiveUplinkBWP
-
Id
=
2
;
#BWP-Id
#BWP-Uplink
# UL PTRS related parameters.
# 3GPP TS 38.331 PTRS-UplinkConfig
# frequencyDensity value range: 1-276
# ptrs-Power
# 0 = p00, 1 = p01, 2 = p10, 3 = p11
#ul_ptrsPower_0 = 0;
}
);
# ------- SCTP definitions
# ------- SCTP definitions
SCTP
:
SCTP
:
...
...
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