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
Michael Black
OpenXG-RAN
Commits
2bab0057
Commit
2bab0057
authored
Jan 11, 2022
by
luis_pereira87
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove unused BWPs
parent
296357fe
Changes
11
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
85 additions
and
73 deletions
+85
-73
openair2/GNB_APP/RRC_nr_paramsvalues.h
openair2/GNB_APP/RRC_nr_paramsvalues.h
+0
-1
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+48
-18
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+1
-3
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+2
-2
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+1
-3
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+2
-3
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+2
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+2
-2
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+25
-37
No files found.
openair2/GNB_APP/RRC_nr_paramsvalues.h
View file @
2bab0057
...
@@ -160,7 +160,6 @@
...
@@ -160,7 +160,6 @@
#define GNB_CONFIG_STRING_SCS_ULBWP4 "ul_bwp4_subcarrierSpacing"
#define GNB_CONFIG_STRING_SCS_ULBWP4 "ul_bwp4_subcarrierSpacing"
#define GNB_CONFIG_STRING_FIRSTACTIVEULBWP_ID "firstActiveUplinkBWP-Id"
#define GNB_CONFIG_STRING_FIRSTACTIVEULBWP_ID "firstActiveUplinkBWP-Id"
/*--------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------*/
/* pdcch_ConfigSIB1 parameters */
/* pdcch_ConfigSIB1 parameters */
/*--------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------*/
...
...
openair2/GNB_APP/gnb_config.c
View file @
2bab0057
...
@@ -375,8 +375,7 @@ void prepare_scd(NR_ServingCellConfig_t *scd) {
...
@@ -375,8 +375,7 @@ void prepare_scd(NR_ServingCellConfig_t *scd) {
scd
->
defaultDownlinkBWP_Id
=
CALLOC
(
1
,
sizeof
(
*
scd
->
defaultDownlinkBWP_Id
));
scd
->
defaultDownlinkBWP_Id
=
CALLOC
(
1
,
sizeof
(
*
scd
->
defaultDownlinkBWP_Id
));
*
scd
->
defaultDownlinkBWP_Id
=
0
;
*
scd
->
defaultDownlinkBWP_Id
=
0
;
for
(
int
j
=
0
;
j
<
4
;
j
++
)
for
(
int
j
=
0
;
j
<
NR_MAX_NUM_BWP
;
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
));
...
@@ -384,8 +383,6 @@ for (int j = 0 ;j < 4 ; j++)
...
@@ -384,8 +383,6 @@ for (int j = 0 ;j < 4 ; j++)
// 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
));
...
@@ -460,12 +457,13 @@ for (int j = 0 ;j < 4 ; j++)
...
@@ -460,12 +457,13 @@ for (int j = 0 ;j < 4 ; j++)
/* This function checks dedicated serving cell configuration and performs fixes as needed */
/* This function checks dedicated serving cell configuration and performs fixes as needed */
void
fix_scd
(
NR_ServingCellConfig_t
*
scd
)
{
void
fix_scd
(
NR_ServingCellConfig_t
*
scd
)
{
// Check for DL PTRS parameters validity
// Check for DL PTRS parameters validity
for
(
int
bwp_i
=
0
;
bwp_i
<
4
;
bwp_i
++
)
for
(
int
bwp_i
=
0
;
bwp_i
<
scd
->
downlinkBWP_ToAddModList
->
list
.
count
;
bwp_i
++
)
{
{
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
// If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
// If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
for
(
int
i
=
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
for
(
int
i
=
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
if
((
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
array
[
i
]
<
1
)
if
((
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
array
[
i
]
<
1
)
||
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
array
[
i
]
>
276
))
{
||
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
array
[
i
]
>
276
))
{
LOG_I
(
RRC
,
"DL PTRS frequencyDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
LOG_I
(
RRC
,
"DL PTRS frequencyDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
...
@@ -475,9 +473,11 @@ void fix_scd(NR_ServingCellConfig_t *scd) {
...
@@ -475,9 +473,11 @@ void fix_scd(NR_ServingCellConfig_t *scd) {
}
}
}
}
}
}
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
// If any of the timeDensity values are not set or are out of bounds, PTRS is assumed to be not present
// If any of the timeDensity values are not set or are out of bounds, PTRS is assumed to be not present
for
(
int
i
=
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
for
(
int
i
=
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
if
((
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
array
[
i
]
<
0
)
if
((
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
array
[
i
]
<
0
)
||
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
array
[
i
]
>
29
))
{
||
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
array
[
i
]
>
29
))
{
LOG_I
(
RRC
,
"DL PTRS timeDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
LOG_I
(
RRC
,
"DL PTRS timeDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
...
@@ -487,6 +487,7 @@ void fix_scd(NR_ServingCellConfig_t *scd) {
...
@@ -487,6 +487,7 @@ void fix_scd(NR_ServingCellConfig_t *scd) {
}
}
}
}
}
}
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
if
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
resourceElementOffset
>
2
)
{
if
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
resourceElementOffset
>
2
)
{
LOG_I
(
RRC
,
"Freeing DL PTRS resourceElementOffset
\n
"
);
LOG_I
(
RRC
,
"Freeing DL PTRS resourceElementOffset
\n
"
);
...
@@ -499,6 +500,10 @@ void fix_scd(NR_ServingCellConfig_t *scd) {
...
@@ -499,6 +500,10 @@ void fix_scd(NR_ServingCellConfig_t *scd) {
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
epre_Ratio
=
NULL
;
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
epre_Ratio
=
NULL
;
}
}
}
}
}
// Check for UL PTRS parameters validity
for
(
int
bwp_i
=
0
;
bwp_i
<
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
count
;
bwp_i
++
)
{
if
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
)
{
if
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
)
{
// If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
// If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
...
@@ -525,6 +530,7 @@ void fix_scd(NR_ServingCellConfig_t *scd) {
...
@@ -525,6 +530,7 @@ void fix_scd(NR_ServingCellConfig_t *scd) {
}
}
}
}
}
}
if
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
)
{
if
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
)
{
// Check for UL PTRS parameters validity
// Check for UL PTRS parameters validity
if
(
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
>
2
)
{
if
(
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
>
2
)
{
...
@@ -533,6 +539,7 @@ void fix_scd(NR_ServingCellConfig_t *scd) {
...
@@ -533,6 +539,7 @@ void fix_scd(NR_ServingCellConfig_t *scd) {
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
=
NULL
;
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
=
NULL
;
}
}
}
}
}
}
}
}
...
@@ -988,10 +995,8 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
...
@@ -988,10 +995,8 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
paramdef_t
SCDsParams
[]
=
SCDPARAMS_DESC
(
scd
);
paramdef_t
SCDsParams
[]
=
SCDPARAMS_DESC
(
scd
);
paramlist_def_t
SCDsParamList
=
{
GNB_CONFIG_STRING_SERVINGCELLCONFIGDEDICATED
,
NULL
,
0
};
paramlist_def_t
SCDsParamList
=
{
GNB_CONFIG_STRING_SERVINGCELLCONFIGDEDICATED
,
NULL
,
0
};
////////// Physical parameters
////////// Physical parameters
/* get global parameters, defined outside any section in the config file */
/* get global parameters, defined outside any section in the config file */
config_get
(
GNBSParams
,
sizeof
(
GNBSParams
)
/
sizeof
(
paramdef_t
),
NULL
);
config_get
(
GNBSParams
,
sizeof
(
GNBSParams
)
/
sizeof
(
paramdef_t
),
NULL
);
...
@@ -1081,6 +1086,31 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
...
@@ -1081,6 +1086,31 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
(
int
)
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
(
int
)
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
);
);
}
}
for
(
int
bb
=
0
;
bb
<
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
count
;
bb
++
)
{
printf
(
"scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[bb]->bwp_Common->genericParameters = %li
\n
"
,
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bb
]
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
);
}
// Remove unused BWPs
int
b
=
0
;
while
(
b
<
scd
->
downlinkBWP_ToAddModList
->
list
.
count
)
{
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
b
]
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
==
0
)
{
asn_sequence_del
(
&
scd
->
downlinkBWP_ToAddModList
->
list
,
b
,
1
);
}
else
{
b
++
;
}
}
b
=
0
;
while
(
b
<
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
count
)
{
if
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
b
]
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
==
0
)
{
asn_sequence_del
(
&
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
,
b
,
1
);
}
else
{
b
++
;
}
}
fix_scd
(
scd
);
fix_scd
(
scd
);
printf
(
"NRRRC %d: Southbound Transport %s
\n
"
,
i
,
*
(
GNBParamList
.
paramarray
[
i
][
GNB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
));
printf
(
"NRRRC %d: Southbound Transport %s
\n
"
,
i
,
*
(
GNBParamList
.
paramarray
[
i
][
GNB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
));
...
...
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
2bab0057
...
@@ -476,9 +476,7 @@ void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format
...
@@ -476,9 +476,7 @@ void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format
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
);
}
}
// configure ss coreset after switching BWP
// configure ss coreset after switching BWP
configure_ss_coreset
(
mac
,
configure_ss_coreset
(
mac
,
scd
,
mac
->
DL_BWP_Id
);
scd
,
mac
->
DL_BWP_Id
);
}
else
{
}
else
{
if
(
scd
->
firstActiveDownlinkBWP_Id
)
if
(
scd
->
firstActiveDownlinkBWP_Id
)
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
2bab0057
...
@@ -1022,8 +1022,8 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
...
@@ -1022,8 +1022,8 @@ 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:
*/
*/
if
(
dci
->
bwp_indicator
.
val
>
4
)
{
if
(
dci
->
bwp_indicator
.
val
>
NR_MAX_NUM_BWP
)
{
LOG_W
(
NR_MAC
,
"[%d.%d] bwp_indicator %d >
4
Possibly due to false DCI. Ignoring DCI!
\n
"
,
frame
,
slot
,
dci
->
bwp_indicator
.
val
);
LOG_W
(
NR_MAC
,
"[%d.%d] bwp_indicator %d >
NR_MAX_NUM_BWP
Possibly due to false DCI. Ignoring DCI!
\n
"
,
frame
,
slot
,
dci
->
bwp_indicator
.
val
);
return
-
1
;
return
-
1
;
}
}
config_bwp_ue
(
mac
,
&
dci
->
bwp_indicator
.
val
,
&
dci_format
);
config_bwp_ue
(
mac
,
&
dci
->
bwp_indicator
.
val
,
&
dci_format
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
2bab0057
...
@@ -684,16 +684,14 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
...
@@ -684,16 +684,14 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
int
target_ss
;
int
target_ss
;
bool
valid_ptrs_setup
=
0
;
bool
valid_ptrs_setup
=
0
;
uint16_t
n_RB_ULBWP
;
n_RB_ULBWP
=
NRRIV2BW
(
ubwpc
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
uint16_t
n_RB_ULBWP
=
NRRIV2BW
(
ubwpc
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
pusch_config_pdu
->
bwp_start
=
NRRIV2PRBOFFSET
(
ubwpc
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
pusch_config_pdu
->
bwp_start
=
NRRIV2PRBOFFSET
(
ubwpc
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
pusch_config_pdu
->
bwp_size
=
n_RB_ULBWP
;
pusch_config_pdu
->
bwp_size
=
n_RB_ULBWP
;
AssertFatal
(
ubwpd
->
pusch_Config
!=
NULL
,
"pusch_Config shouldn't be null
\n
"
);
AssertFatal
(
ubwpd
->
pusch_Config
!=
NULL
,
"pusch_Config shouldn't be null
\n
"
);
NR_PUSCH_Config_t
*
pusch_Config
=
ubwpd
->
pusch_Config
->
choice
.
setup
;
NR_PUSCH_Config_t
*
pusch_Config
=
ubwpd
->
pusch_Config
->
choice
.
setup
;
// Basic sanity check for MCS value to check for a false or erroneous DCI
// Basic sanity check for MCS value to check for a false or erroneous DCI
if
(
dci
->
mcs
>
28
)
{
if
(
dci
->
mcs
>
28
)
{
LOG_W
(
NR_MAC
,
"MCS value %d out of bounds! Possibly due to false DCI. Ignoring DCI!
\n
"
,
dci
->
mcs
);
LOG_W
(
NR_MAC
,
"MCS value %d out of bounds! Possibly due to false DCI. Ignoring DCI!
\n
"
,
dci
->
mcs
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
View file @
2bab0057
...
@@ -307,9 +307,8 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
...
@@ -307,9 +307,8 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
}
}
memset
(
RC
.
nrmac
[
module_idP
]
->
cce_list
[
0
][
0
],
0
,
MAX_NUM_CCE
*
sizeof
(
int
));
// coreset0
memset
(
RC
.
nrmac
[
module_idP
]
->
cce_list
[
0
][
0
],
0
,
MAX_NUM_CCE
*
sizeof
(
int
));
// coreset0
memset
(
RC
.
nrmac
[
module_idP
]
->
cce_list
[
0
][
1
],
0
,
MAX_NUM_CCE
*
sizeof
(
int
));
// coreset1 on initialBWP
for
(
int
i_bwp
=
0
;
i_bwp
<
MAX_NUM_BWP
;
i_bwp
++
)
for
(
int
i_bwp
=
1
;
i_bwp
<
MAX_NUM_BWP
;
i_bwp
++
)
memset
(
RC
.
nrmac
[
module_idP
]
->
cce_list
[
i_bwp
][
1
],
0
,
MAX_NUM_CCE
*
sizeof
(
int
));
// coresetid i (0 to coreset1 on initialBWP)
memset
(
RC
.
nrmac
[
module_idP
]
->
cce_list
[
i_bwp
][
1
],
0
,
MAX_NUM_CCE
*
sizeof
(
int
));
// coresetid i
NR_UE_info_t
*
UE_info
=
&
RC
.
nrmac
[
module_idP
]
->
UE_info
;
NR_UE_info_t
*
UE_info
=
&
RC
.
nrmac
[
module_idP
]
->
UE_info
;
for
(
int
UE_id
=
UE_info
->
list
.
head
;
UE_id
>=
0
;
UE_id
=
UE_info
->
list
.
next
[
UE_id
])
for
(
int
UE_id
=
UE_info
->
list
.
head
;
UE_id
>=
0
;
UE_id
=
UE_info
->
list
.
next
[
UE_id
])
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
2bab0057
...
@@ -1120,7 +1120,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
...
@@ -1120,7 +1120,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
memset
(
&
dci_payload
,
0
,
sizeof
(
dci_pdu_rel15_t
));
memset
(
&
dci_payload
,
0
,
sizeof
(
dci_pdu_rel15_t
));
// bwp indicator
// bwp indicator
const
int
n_dl_bwp
=
bwp
?
UE_info
->
CellGroup
[
UE_id
]
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
count
:
0
;
const
int
n_dl_bwp
=
bwp
?
UE_info
->
CellGroup
[
UE_id
]
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
count
:
0
;
AssertFatal
(
n_dl_bwp
<=
4
,
"downlinkBWP_ToAddModList has %d BWP!
\n
"
,
n_dl_bwp
);
AssertFatal
(
n_dl_bwp
<=
NR_MAX_NUM_BWP
,
"downlinkBWP_ToAddModList has %d BWP!
\n
"
,
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
dci_payload
.
bwp_indicator
.
val
=
bwp
?
(
n_dl_bwp
<
4
?
bwp
->
bwp_Id
:
bwp
->
bwp_Id
-
1
)
:
0
;
dci_payload
.
bwp_indicator
.
val
=
bwp
?
(
n_dl_bwp
<
4
?
bwp
->
bwp_Id
:
bwp
->
bwp_Id
-
1
)
:
0
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
2bab0057
...
@@ -297,7 +297,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
...
@@ -297,7 +297,7 @@ void nr_preprocessor_phytest(module_id_t module_id,
while
(
rbStart
+
rbSize
<
bwpSize
&&
!
vrb_map
[
rbStart
+
rbSize
+
BWPStart
]
&&
rbSize
<
target_dl_bw
)
while
(
rbStart
+
rbSize
<
bwpSize
&&
!
vrb_map
[
rbStart
+
rbSize
+
BWPStart
]
&&
rbSize
<
target_dl_bw
)
rbSize
++
;
rbSize
++
;
/* found target_dl_bw? */
/* found target_dl_bw? */
if
(
rbStart
+
rbSize
==
target_dl_bw
)
if
(
rbStart
+
rbSize
==
target_dl_bw
)
break
;
break
;
/* at end and below target_dl_bw? */
/* at end and below target_dl_bw? */
if
(
rbStart
+
rbSize
>=
bwpSize
)
if
(
rbStart
+
rbSize
>=
bwpSize
)
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
2bab0057
...
@@ -1969,7 +1969,7 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
...
@@ -1969,7 +1969,7 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
/* Set default BWPs */
/* Set default BWPs */
const
struct
NR_ServingCellConfig__downlinkBWP_ToAddModList
*
bwpList
=
servingCellConfig
?
servingCellConfig
->
downlinkBWP_ToAddModList
:
NULL
;
const
struct
NR_ServingCellConfig__downlinkBWP_ToAddModList
*
bwpList
=
servingCellConfig
?
servingCellConfig
->
downlinkBWP_ToAddModList
:
NULL
;
if
(
bwpList
)
AssertFatal
(
bwpList
->
list
.
count
<=
4
,
if
(
bwpList
)
AssertFatal
(
bwpList
->
list
.
count
<=
NR_MAX_NUM_BWP
,
"downlinkBWP_ToAddModList has %d BWP!
\n
"
,
"downlinkBWP_ToAddModList has %d BWP!
\n
"
,
bwpList
->
list
.
count
);
bwpList
->
list
.
count
);
const
int
bwp_id
=
servingCellConfig
?
*
servingCellConfig
->
firstActiveDownlinkBWP_Id
:
0
;
const
int
bwp_id
=
servingCellConfig
?
*
servingCellConfig
->
firstActiveDownlinkBWP_Id
:
0
;
...
@@ -1982,7 +1982,7 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
...
@@ -1982,7 +1982,7 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
sched_ctrl
->
active_bwp
?
(
void
*
)
sched_ctrl
->
active_bwp
->
bwp_Dedicated
:
NULL
,
sched_ctrl
->
active_bwp
?
(
void
*
)
sched_ctrl
->
active_bwp
->
bwp_Dedicated
:
NULL
,
sched_ctrl
->
search_space
,
target_ss
);
sched_ctrl
->
search_space
,
target_ss
);
const
struct
NR_UplinkConfig__uplinkBWP_ToAddModList
*
ubwpList
=
servingCellConfig
?
servingCellConfig
->
uplinkConfig
->
uplinkBWP_ToAddModList
:
NULL
;
const
struct
NR_UplinkConfig__uplinkBWP_ToAddModList
*
ubwpList
=
servingCellConfig
?
servingCellConfig
->
uplinkConfig
->
uplinkBWP_ToAddModList
:
NULL
;
if
(
ubwpList
)
AssertFatal
(
ubwpList
->
list
.
count
<=
4
,
if
(
ubwpList
)
AssertFatal
(
ubwpList
->
list
.
count
<=
NR_MAX_NUM_BWP
,
"uplinkBWP_ToAddModList has %d BWP!
\n
"
,
"uplinkBWP_ToAddModList has %d BWP!
\n
"
,
ubwpList
->
list
.
count
);
ubwpList
->
list
.
count
);
const
int
ul_bwp_id
=
servingCellConfig
?
*
servingCellConfig
->
uplinkConfig
->
firstActiveUplinkBWP_Id
:
0
;
const
int
ul_bwp_id
=
servingCellConfig
?
*
servingCellConfig
->
uplinkConfig
->
firstActiveUplinkBWP_Id
:
0
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
2bab0057
...
@@ -623,7 +623,7 @@ int checkTargetSSBInTCIStates_pdcchConfig(int ssb_index_t, int Mod_idP, int UE_i
...
@@ -623,7 +623,7 @@ int checkTargetSSBInTCIStates_pdcchConfig(int ssb_index_t, int Mod_idP, int UE_i
int
nb_tci_states
=
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
initialDownlinkBWP
->
pdsch_Config
->
choice
.
setup
->
tci_StatesToAddModList
->
list
.
count
;
int
nb_tci_states
=
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
initialDownlinkBWP
->
pdsch_Config
->
choice
.
setup
->
tci_StatesToAddModList
->
list
.
count
;
NR_TCI_State_t
*
tci
=
NULL
;
NR_TCI_State_t
*
tci
=
NULL
;
NR_TCI_StateId_t
*
tci_id
=
NULL
;
NR_TCI_StateId_t
*
tci_id
=
NULL
;
int
bwp_id
=
1
;
//TODO
int
bwp_id
=
1
;
//TODO
NR_BWP_Downlink_t
*
bwp
=
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_id
-
1
];
NR_BWP_Downlink_t
*
bwp
=
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_id
-
1
];
NR_ControlResourceSet_t
*
coreset
=
bwp
->
bwp_Dedicated
->
pdcch_Config
->
choice
.
setup
->
controlResourceSetToAddModList
->
list
.
array
[
bwp_id
-
1
];
NR_ControlResourceSet_t
*
coreset
=
bwp
->
bwp_Dedicated
->
pdcch_Config
->
choice
.
setup
->
controlResourceSetToAddModList
->
list
.
array
[
bwp_id
-
1
];
int
i
;
int
i
;
...
@@ -691,7 +691,7 @@ void tci_handling(module_id_t Mod_idP, int UE_id, frame_t frame, slot_t slot) {
...
@@ -691,7 +691,7 @@ void tci_handling(module_id_t Mod_idP, int UE_id, frame_t frame, slot_t slot) {
int
ssb_index
[
MAX_NUM_SSB
]
=
{
0
};
int
ssb_index
[
MAX_NUM_SSB
]
=
{
0
};
int
ssb_rsrp
[
MAX_NUM_SSB
]
=
{
0
};
int
ssb_rsrp
[
MAX_NUM_SSB
]
=
{
0
};
uint8_t
idx
=
0
;
uint8_t
idx
=
0
;
int
bwp_id
=
1
;
//TODO
int
bwp_id
=
1
;
//TODO
NR_UE_info_t
*
UE_info
=
&
RC
.
nrmac
[
Mod_idP
]
->
UE_info
;
NR_UE_info_t
*
UE_info
=
&
RC
.
nrmac
[
Mod_idP
]
->
UE_info
;
NR_CellGroupConfig_t
*
CellGroup
=
UE_info
->
CellGroup
[
UE_id
];
NR_CellGroupConfig_t
*
CellGroup
=
UE_info
->
CellGroup
[
UE_id
];
NR_BWP_Downlink_t
*
bwp
=
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_id
-
1
];
NR_BWP_Downlink_t
*
bwp
=
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_id
-
1
];
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
2bab0057
This diff is collapsed.
Click to expand it.
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