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
15488a18
Commit
15488a18
authored
May 02, 2024
by
Raymond Knopp
Committed by
francescomani
May 29, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added parameter to limit the maxMIMO-layers on DL (i.e. to 2 for 4x4)
parent
168b172f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
7 deletions
+19
-7
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+5
-2
openair2/GNB_APP/gnb_paramdef.h
openair2/GNB_APP/gnb_paramdef.h
+4
-0
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+1
-0
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+9
-5
No files found.
openair2/GNB_APP/gnb_config.c
View file @
15488a18
...
...
@@ -718,6 +718,7 @@ void RCconfig_verify(configmodule_interface_t *cfg, ngran_node_t node_type)
verify_gnb_param_notset
(
gnbp
,
GNB_DO_CSIRS_IDX
,
GNB_CONFIG_STRING_DOCSIRS
);
verify_gnb_param_notset
(
gnbp
,
GNB_DO_SRS_IDX
,
GNB_CONFIG_STRING_DOSRS
);
verify_gnb_param_notset
(
gnbp
,
GNB_FORCE256QAMOFF_IDX
,
GNB_CONFIG_STRING_FORCE256QAMOFF
);
verify_gnb_param_notset
(
gnbp
,
GNB_MAXMIMOLAYERS_IDX
,
GNB_CONFIG_STRING_MAXMIMOLAYERS
);
// check for some general sections
verify_section_notset
(
cfg
,
NULL
,
CONFIG_STRING_L1_LIST
);
...
...
@@ -1304,12 +1305,14 @@ void RCconfig_nr_macrlc(configmodule_interface_t *cfg)
config
.
force_256qam_off
=
*
GNBParamList
.
paramarray
[
0
][
GNB_FORCE256QAMOFF_IDX
].
iptr
;
config
.
force_UL256qam_off
=
*
GNBParamList
.
paramarray
[
0
][
GNB_FORCEUL256QAMOFF_IDX
].
iptr
;
config
.
use_deltaMCS
=
*
GNBParamList
.
paramarray
[
0
][
GNB_USE_DELTA_MCS_IDX
].
iptr
!=
0
;
config
.
maxMIMO_layers
=
*
GNBParamList
.
paramarray
[
0
][
GNB_MAXMIMOLAYERS_IDX
].
iptr
;
LOG_I
(
GNB_APP
,
"CSI-RS %d, SRS %d, 256 QAM %s, delta_MCS %s
\n
"
,
"CSI-RS %d, SRS %d, 256 QAM %s, delta_MCS %s
, maxMIMO_Layers %d
\n
"
,
config
.
do_CSIRS
,
config
.
do_SRS
,
config
.
force_256qam_off
?
"force off"
:
"may be on"
,
config
.
use_deltaMCS
?
"on"
:
"off"
);
config
.
use_deltaMCS
?
"on"
:
"off"
,
config
.
maxMIMO_layers
);
NR_ServingCellConfigCommon_t
*
scc
=
get_scc_config
(
cfg
,
config
.
minRXTXTIME
);
//xer_fprint(stdout, &asn_DEF_NR_ServingCellConfigCommon, scc);
...
...
openair2/GNB_APP/gnb_paramdef.h
View file @
15488a18
...
...
@@ -125,6 +125,7 @@ typedef enum {
#define GNB_CONFIG_STRING_ULPRBBLACKLIST "ul_prbblacklist"
#define GNB_CONFIG_STRING_UMONDEFAULTDRB "um_on_default_drb"
#define GNB_CONFIG_STRING_FORCE256QAMOFF "force_256qam_off"
#define GNB_CONFIG_STRING_MAXMIMOLAYERS "maxMIMO_layers"
#define GNB_CONFIG_STRING_ENABLE_SDAP "enable_sdap"
#define GNB_CONFIG_STRING_DRBS "drbs"
#define GNB_CONFIG_STRING_USE_DELTA_MCS "use_deltaMCS"
...
...
@@ -136,6 +137,7 @@ typedef enum {
#define GNB_CONFIG_HLP_STRING_ENABLE_SDAP "enable the SDAP layer\n"
#define GNB_CONFIG_HLP_FORCE256QAMOFF "suppress activation of 256 QAM despite UE support"
#define GNB_CONFIG_HLP_MAXMIMOLAYERS "limit on maxMIMO-layers for DL"
#define GNB_CONFIG_HLP_STRING_DRBS "Number of total DRBs to establish, including the mandatory for PDU SEssion (default=1)\n"
#define GNB_CONFIG_HLP_GNB_DU_ID "defines the gNB-DU ID (only applicable for DU)"
#define GNB_CONFIG_HLP_GNB_CU_UP_ID "defines the gNB-CU-UP ID (only applicable for CU-UP)"
...
...
@@ -177,6 +179,7 @@ typedef enum {
{GNB_CONFIG_STRING_GNB_CU_UP_ID, GNB_CONFIG_HLP_GNB_CU_UP_ID, 0, .u64ptr=NULL, .defint64val=1, TYPE_UINT64, 0}, \
{GNB_CONFIG_STRING_USE_DELTA_MCS, GNB_CONFIG_HLP_USE_DELTA_MCS, 0, .iptr=NULL, .defintval=0, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_FORCEUL256QAMOFF, GNB_CONFIG_HLP_FORCEUL256QAMOFF, 0, .iptr=NULL, .defintval=0, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_MAXMIMOLAYERS, GNB_CONFIG_HLP_MAXMIMOLAYERS, 0, .iptr=NULL, .defintval=-1, TYPE_INT, 0}, \
}
// clang-format on
...
...
@@ -212,6 +215,7 @@ typedef enum {
#define GNB_GNB_CU_UP_ID_IDX 28
#define GNB_USE_DELTA_MCS_IDX 29
#define GNB_FORCEUL256QAMOFF_IDX 30
#define GNB_MAXMIMOLAYERS_IDX 31
#define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD}
#define GNBPARAMS_CHECK { \
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
15488a18
...
...
@@ -138,6 +138,7 @@ typedef struct nr_mac_config_t {
bool
force_256qam_off
;
bool
force_UL256qam_off
;
bool
use_deltaMCS
;
int
maxMIMO_layers
;
//int pusch_TargetSNRx10;
//int pucch_TargetSNRx10;
}
nr_mac_config_t
;
...
...
openair2/RRC/NR/nr_rrc_config.c
View file @
15488a18
...
...
@@ -512,7 +512,8 @@ static void config_csiim(int do_csirs,
void
set_dl_maxmimolayers
(
NR_PDSCH_ServingCellConfig_t
*
pdsch_servingcellconfig
,
const
NR_ServingCellConfigCommon_t
*
scc
,
const
NR_UE_NR_Capability_t
*
uecap
)
const
NR_UE_NR_Capability_t
*
uecap
,
int
maxMIMO_layers
)
{
if
(
!
pdsch_servingcellconfig
->
ext1
)
...
...
@@ -536,7 +537,10 @@ void set_dl_maxmimolayers(NR_PDSCH_ServingCellConfig_t *pdsch_servingcellconfig,
supported_bw_comparison
(
bw_mhz
,
&
dl_fs
->
supportedBandwidthDL
,
dl_fs
->
channelBW_90mhz
)
&&
dl_fs
->
maxNumberMIMO_LayersPDSCH
)
{
long
ue_supported_layers
=
(
2
<<
*
dl_fs
->
maxNumberMIMO_LayersPDSCH
);
*
pdsch_servingcellconfig
->
ext1
->
maxMIMO_Layers
=
NR_MAX_SUPPORTED_DL_LAYERS
<
ue_supported_layers
?
NR_MAX_SUPPORTED_DL_LAYERS
:
ue_supported_layers
;
if
(
maxMIMO_layers
==
-
1
)
*
pdsch_servingcellconfig
->
ext1
->
maxMIMO_Layers
=
NR_MAX_SUPPORTED_DL_LAYERS
<
ue_supported_layers
?
NR_MAX_SUPPORTED_DL_LAYERS
:
ue_supported_layers
;
else
*
pdsch_servingcellconfig
->
ext1
->
maxMIMO_Layers
=
maxMIMO_layers
<
ue_supported_layers
?
maxMIMO_layers
:
ue_supported_layers
;
return
;
}
}
...
...
@@ -2397,7 +2401,7 @@ static NR_SpCellConfig_t *get_initial_SpCellConfig(int uid,
pdsch_servingcellconfig
->
nrofHARQ_ProcessesForPDSCH
=
calloc
(
1
,
sizeof
(
*
pdsch_servingcellconfig
->
nrofHARQ_ProcessesForPDSCH
));
*
pdsch_servingcellconfig
->
nrofHARQ_ProcessesForPDSCH
=
NR_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n16
;
pdsch_servingcellconfig
->
pucch_Cell
=
NULL
;
set_dl_maxmimolayers
(
pdsch_servingcellconfig
,
scc
,
NULL
);
set_dl_maxmimolayers
(
pdsch_servingcellconfig
,
scc
,
NULL
,
configuration
->
maxMIMO_layers
);
// Downlink BWPs
int
n_dl_bwp
=
0
;
...
...
@@ -2600,7 +2604,7 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
NR_SpCellConfig_t
*
SpCellConfig
=
cellGroupConfig
->
spCellConfig
;
NR_PDSCH_ServingCellConfig_t
*
pdsch_servingcellconfig
=
SpCellConfig
->
spCellConfigDedicated
->
pdsch_ServingCellConfig
->
choice
.
setup
;
set_dl_maxmimolayers
(
pdsch_servingcellconfig
,
scc
,
uecap
);
set_dl_maxmimolayers
(
pdsch_servingcellconfig
,
scc
,
uecap
,
configuration
->
maxMIMO_layers
);
NR_CSI_MeasConfig_t
*
csi_MeasConfig
=
SpCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
->
choice
.
setup
;
for
(
int
report
=
0
;
report
<
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
count
;
report
++
)
{
...
...
@@ -2979,7 +2983,7 @@ NR_CellGroupConfig_t *get_default_secondaryCellGroup(const NR_ServingCellConfigC
pdsch_servingcellconfig
->
nrofHARQ_ProcessesForPDSCH
=
calloc
(
1
,
sizeof
(
*
pdsch_servingcellconfig
->
nrofHARQ_ProcessesForPDSCH
));
*
pdsch_servingcellconfig
->
nrofHARQ_ProcessesForPDSCH
=
NR_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n16
;
pdsch_servingcellconfig
->
pucch_Cell
=
NULL
;
set_dl_maxmimolayers
(
pdsch_servingcellconfig
,
servingcellconfigcommon
,
uecap
);
set_dl_maxmimolayers
(
pdsch_servingcellconfig
,
servingcellconfigcommon
,
uecap
,
configuration
->
maxMIMO_layers
);
pdsch_servingcellconfig
->
ext1
->
processingType2Enabled
=
NULL
;
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
=
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