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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
4891e809
Commit
4891e809
authored
Jun 04, 2024
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
moving beamforming matrix to MAC and feeding it to FAPI structures
parent
c48397f4
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
92 additions
and
66 deletions
+92
-66
executables/nr-ru.c
executables/nr-ru.c
+1
-28
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
+22
-22
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+25
-0
openair2/GNB_APP/gnb_paramdef.h
openair2/GNB_APP/gnb_paramdef.h
+16
-12
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+25
-2
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+3
-2
No files found.
executables/nr-ru.c
View file @
4891e809
...
...
@@ -58,8 +58,6 @@ static int DEFBANDS[] = {7};
static
int
DEFENBS
[]
=
{
0
};
static
int
DEFBFW
[]
=
{
0x00007fff
};
static
int
DEFRUTPCORES
[]
=
{
-
1
,
-
1
,
-
1
,
-
1
};
//static int DEFNRBANDS[] = {7};
//static int DEFGNBS[] = {0};
#include "ENB_APP/enb_paramdef.h"
#include "GNB_APP/gnb_paramdef.h"
...
...
@@ -1880,21 +1878,9 @@ void stop_RU(int nb_ru) {
static
void
NRRCconfig_RU
(
configmodule_interface_t
*
cfg
)
{
paramdef_t
RUParams
[]
=
RUPARAMS_DESC
;
paramlist_def_t
RUParamList
=
{
CONFIG_STRING_RU_LIST
,
NULL
,
0
};
paramlist_def_t
RUParamList
=
{
CONFIG_STRING_RU_LIST
,
NULL
,
0
};
config_getlist
(
cfg
,
&
RUParamList
,
RUParams
,
sizeofArray
(
RUParams
),
NULL
);
paramdef_t
GNBSParams
[]
=
GNBSPARAMS_DESC
;
paramdef_t
GNBParams
[]
=
GNBPARAMS_DESC
;
paramlist_def_t
GNBParamList
=
{
GNB_CONFIG_STRING_GNB_LIST
,
NULL
,
0
};
config_get
(
cfg
,
GNBSParams
,
sizeofArray
(
GNBSParams
),
NULL
);
int
num_gnbs
=
GNBSParams
[
GNB_ACTIVE_GNBS_IDX
].
numelt
;
AssertFatal
(
num_gnbs
>
0
,
"Failed to parse config file no gnbs %s
\n
"
,
GNB_CONFIG_STRING_ACTIVE_GNBS
);
config_getlist
(
cfg
,
&
GNBParamList
,
GNBParams
,
sizeofArray
(
GNBParams
),
NULL
);
int
N1
=
*
GNBParamList
.
paramarray
[
0
][
GNB_PDSCH_ANTENNAPORTS_N1_IDX
].
iptr
;
int
N2
=
*
GNBParamList
.
paramarray
[
0
][
GNB_PDSCH_ANTENNAPORTS_N2_IDX
].
iptr
;
int
XP
=
*
GNBParamList
.
paramarray
[
0
][
GNB_PDSCH_ANTENNAPORTS_XP_IDX
].
iptr
;
int
num_logical_antennas
=
N1
*
N2
*
XP
;
if
(
RUParamList
.
numelt
>
0
)
{
RC
.
ru
=
(
RU_t
**
)
malloc
(
RC
.
nb_RU
*
sizeof
(
RU_t
*
));
RC
.
ru_mask
=
(
1
<<
NB_RU
)
-
1
;
...
...
@@ -2061,8 +2047,6 @@ static void NRRCconfig_RU(configmodule_interface_t *cfg)
}
/* strcmp(local_rf, "yes") != 0 */
RC
.
ru
[
j
]
->
nb_tx
=
*
(
RUParamList
.
paramarray
[
j
][
RU_NB_TX_IDX
].
uptr
);
AssertFatal
(
RC
.
ru
[
j
]
->
nb_tx
>=
num_logical_antennas
,
"Number of logical antenna ports (set in config file with pdsch_AntennaPorts) cannot be larger than physical antennas (nb_tx)
\n
"
);
RC
.
ru
[
j
]
->
nb_rx
=
*
(
RUParamList
.
paramarray
[
j
][
RU_NB_RX_IDX
].
uptr
);
RC
.
ru
[
j
]
->
att_tx
=
*
(
RUParamList
.
paramarray
[
j
][
RU_ATT_TX_IDX
].
uptr
);
RC
.
ru
[
j
]
->
att_rx
=
*
(
RUParamList
.
paramarray
[
j
][
RU_ATT_RX_IDX
].
uptr
);
...
...
@@ -2084,17 +2068,6 @@ static void NRRCconfig_RU(configmodule_interface_t *cfg)
RC
.
ru
[
j
]
->
ru_thread_core
=
*
(
RUParamList
.
paramarray
[
j
][
RU_RU_THREAD_CORE
].
iptr
);
printf
(
"[RU %d] Setting half-slot parallelization to %d
\n
"
,
j
,
RC
.
ru
[
j
]
->
half_slot_parallelization
);
AssertFatal
(
RC
.
ru
[
j
]
->
num_tpcores
<=
RUParamList
.
paramarray
[
j
][
RU_TP_CORES
].
numelt
,
"Number of TP cores should be <=16
\n
"
);
for
(
int
i
=
0
;
i
<
RC
.
ru
[
j
]
->
num_tpcores
;
i
++
)
RC
.
ru
[
j
]
->
tpcores
[
i
]
=
RUParamList
.
paramarray
[
j
][
RU_TP_CORES
].
iptr
[
i
];
if
(
config_isparamset
(
RUParamList
.
paramarray
[
j
],
RU_BF_WEIGHTS_LIST_IDX
))
{
RC
.
ru
[
j
]
->
nb_bfw
=
RUParamList
.
paramarray
[
j
][
RU_BF_WEIGHTS_LIST_IDX
].
numelt
;
for
(
int
i
=
0
;
i
<
RC
.
ru
[
j
]
->
num_gNB
;
i
++
)
{
RC
.
ru
[
j
]
->
bw_list
[
i
]
=
(
int32_t
*
)
malloc16_clear
((
RC
.
ru
[
j
]
->
nb_bfw
)
*
sizeof
(
int32_t
));
for
(
int
b
=
0
;
b
<
RC
.
ru
[
j
]
->
nb_bfw
;
b
++
)
RC
.
ru
[
j
]
->
bw_list
[
i
][
b
]
=
RUParamList
.
paramarray
[
j
][
RU_BF_WEIGHTS_LIST_IDX
].
iptr
[
b
];
}
}
}
// j=0..num_rus
}
else
{
RC
.
nb_RU
=
0
;
...
...
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
View file @
4891e809
...
...
@@ -442,6 +442,27 @@ typedef struct
}
nfapi_nr_measurement_config_t
;
//-----------------------//
//3.3.6 Storing Precoding and Beamforming Tables
//table 3-32
typedef
struct
{
uint16_t
dig_beam_weight_Re
;
uint16_t
dig_beam_weight_Im
;
}
nfapi_nr_txru_t
;
typedef
struct
{
uint16_t
beam_idx
;
//0~65535
nfapi_nr_txru_t
*
txru_list
;
}
nfapi_nr_dig_beam_t
;
typedef
struct
{
uint16_t
num_dig_beams
;
//0~65535
uint16_t
num_txrus
;
//0~65535
nfapi_nr_dig_beam_t
*
dig_beam_list
;
}
nfapi_nr_dbt_pdu_t
;
// Table 3–62 Precoding matrix (PM) PDU (v.222.10.04)
typedef
struct
{
int16_t
precoder_weight_Re
;
...
...
@@ -574,6 +595,7 @@ typedef struct {
nfapi_nr_measurement_config_t
measurement_config
;
nfapi_nr_nfapi_t
nfapi_config
;
nfapi_nr_pm_list_t
pmi_list
;
nfapi_nr_dbt_pdu_t
dbt_config
;
}
nfapi_nr_config_request_scf_t
;
...
...
@@ -640,28 +662,6 @@ typedef struct {
nfapi_nr_phy_notifications_errors_e
error_code
;
}
nfapi_nr_phy_notifications_error_indicate_t
;
//-----------------------//
//3.3.6 Storing Precoding and Beamforming Tables
//table 3-32
//?
typedef
struct
{
uint16_t
beam_idx
;
//0~65535
}
nfapi_nr_dig_beam_t
;
typedef
struct
{
uint16_t
dig_beam_weight_Re
;
uint16_t
dig_beam_weight_Im
;
}
nfapi_nr_txru_t
;
typedef
struct
{
uint16_t
num_dig_beams
;
//0~65535
uint16_t
num_txrus
;
//0~65535
nfapi_nr_dig_beam_t
*
dig_beam_list
;
nfapi_nr_txru_t
*
txru_list
;
}
nfapi_nr_dbt_pdu_t
;
// Section 3.4
// Section 3.4.1 slot indication
...
...
openair2/GNB_APP/gnb_config.c
View file @
4891e809
...
...
@@ -95,6 +95,11 @@
#include "nfapi/oai_integration/aerial/fapi_vnf_p5.h"
#endif
static
int
DEFBANDS
[]
=
{
7
};
static
int
DEFENBS
[]
=
{
0
};
static
int
DEFBFW
[]
=
{
0x00007fff
};
static
int
DEFRUTPCORES
[]
=
{
-
1
,
-
1
,
-
1
,
-
1
};
extern
uint16_t
sf_ahead
;
extern
int
config_check_band_frequencies
(
int
ind
,
int16_t
band
,
uint64_t
downlink_frequency
,
...
...
@@ -1240,6 +1245,15 @@ void RCconfig_nr_macrlc(configmodule_interface_t *cfg)
config
.
pdsch_AntennaPorts
.
XP
,
config
.
pusch_AntennaPorts
);
paramdef_t
RUParams
[]
=
RUPARAMS_DESC
;
paramlist_def_t
RUParamList
=
{
CONFIG_STRING_RU_LIST
,
NULL
,
0
};
config_getlist
(
config_get_if
(),
&
RUParamList
,
RUParams
,
sizeofArray
(
RUParams
),
NULL
);
int
num_tx
=
0
;
for
(
int
i
=
0
;
i
<
RUParamList
.
numelt
;
i
++
)
num_tx
+=
*
(
RUParamList
.
paramarray
[
i
][
RU_NB_TX_IDX
].
uptr
);
AssertFatal
(
num_tx
>=
config
.
pdsch_AntennaPorts
.
XP
*
config
.
pdsch_AntennaPorts
.
N1
*
config
.
pdsch_AntennaPorts
.
N2
,
"Number of logical antenna ports (set in config file with pdsch_AntennaPorts) cannot be larger than physical antennas (nb_tx)
\n
"
);
config
.
minRXTXTIME
=
*
GNBParamList
.
paramarray
[
0
][
GNB_MINRXTXTIME_IDX
].
iptr
;
LOG_I
(
GNB_APP
,
"minTXRXTIME %d
\n
"
,
config
.
minRXTXTIME
);
config
.
sib1_tda
=
*
GNBParamList
.
paramarray
[
0
][
GNB_SIB1_TDA_IDX
].
iptr
;
...
...
@@ -1289,6 +1303,17 @@ void RCconfig_nr_macrlc(configmodule_interface_t *cfg)
config
.
timer_config
.
n311
,
config
.
timer_config
.
t319
);
if
(
config_isparamset
(
GNBParamList
.
paramarray
[
0
],
GNB_BEAMWEIGHTS_IDX
))
{
int
n
=
GNBParamList
.
paramarray
[
0
][
GNB_BEAMWEIGHTS_IDX
].
numelt
;
AssertFatal
(
n
%
num_tx
==
0
,
"Error! Number of beam input needs to be multiple of TX antennas
\n
"
);
config
.
nb_bfw
[
0
]
=
num_tx
;
config
.
nb_bfw
[
1
]
=
n
/
num_tx
;
config
.
bw_list
=
(
int32_t
*
)
malloc16_clear
(
n
*
sizeof
(
int32_t
));
for
(
int
b
=
0
;
b
<
n
;
b
++
)
{
config
.
bw_list
[
b
]
=
GNBParamList
.
paramarray
[
0
][
GNB_BEAMWEIGHTS_IDX
].
iptr
[
b
];
}
}
NR_ServingCellConfigCommon_t
*
scc
=
get_scc_config
(
cfg
,
config
.
minRXTXTIME
);
//xer_fprint(stdout, &asn_DEF_NR_ServingCellConfigCommon, scc);
NR_ServingCellConfig_t
*
scd
=
get_scd_config
(
cfg
);
...
...
openair2/GNB_APP/gnb_paramdef.h
View file @
4891e809
...
...
@@ -125,22 +125,23 @@ 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_GNB_DU_ID "gNB_DU_ID"
#define GNB_CONFIG_STRING_GNB_CU_UP_ID "gNB_CU_UP_ID"
#define GNB_CONFIG_STRING_USE_DELTA_MCS "use_deltaMCS"
#define GNB_CONFIG_HLP_USE_DELTA_MCS "Use deltaMCS-based power headroom reporting in PUSCH-Config"
#define GNB_CONFIG_HLP_FORCEUL256QAMOFF "suppress activation of UL 256 QAM despite UE support"
#define GNB_CONFIG_STRING_FORCEUL256QAMOFF "force_UL256qam_off"
#define GNB_CONFIG_STRING_
GNB_DU_ID "gNB_DU_ID
"
#define GNB_CONFIG_STRING_
GNB_CU_UP_ID "gNB_CU_UP_ID
"
#define GNB_CONFIG_STRING_
MAXMIMOLAYERS "maxMIMO_layers
"
#define GNB_CONFIG_STRING_
BEAM_WEIGHTS_LIST "beam_weights
"
#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)"
#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)"
#define GNB_CONFIG_HLP_USE_DELTA_MCS "Use deltaMCS-based power headroom reporting in PUSCH-Config"
#define GNB_CONFIG_HLP_FORCEUL256QAMOFF "suppress activation of UL 256 QAM despite UE support"
/*-----------------------------------------------------------------------------------------------------------------------------------------*/
/* cell configuration parameters */
...
...
@@ -172,14 +173,15 @@ typedef enum {
{GNB_CONFIG_STRING_MINRXTXTIME, NULL, 0, .iptr=NULL, .defintval=2, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_ULPRBBLACKLIST, NULL, 0, .strptr=NULL,.defstrval="", TYPE_STRING, 0}, \
{GNB_CONFIG_STRING_UMONDEFAULTDRB, NULL, PARAMFLAG_BOOL, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
{GNB_CONFIG_STRING_FORCE256QAMOFF, GNB_CONFIG_HLP_FORCE256QAMOFF, PARAMFLAG_BOOL, .iptr=NULL, .defintval=0,
TYPE_INT, 0}, \
{GNB_CONFIG_STRING_ENABLE_SDAP, GNB_CONFIG_HLP_STRING_ENABLE_SDAP, PARAMFLAG_BOOL,
.iptr=NULL, .defintval=0,
TYPE_INT, 0}, \
{GNB_CONFIG_STRING_FORCE256QAMOFF, GNB_CONFIG_HLP_FORCE256QAMOFF, PARAMFLAG_BOOL, .iptr=NULL, .defintval=0, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_ENABLE_SDAP, GNB_CONFIG_HLP_STRING_ENABLE_SDAP, PARAMFLAG_BOOL,
.iptr=NULL, .defintval=0,
TYPE_INT, 0}, \
{GNB_CONFIG_STRING_DRBS, GNB_CONFIG_HLP_STRING_DRBS, 0, .iptr=NULL, .defintval=1, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_GNB_DU_ID, GNB_CONFIG_HLP_GNB_DU_ID, 0, .u64ptr=NULL, .defint64val=1, TYPE_UINT64, 0}, \
{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}, \
{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}, \
{GNB_CONFIG_STRING_BEAM_WEIGHTS_LIST, NULL, 0, .iptr=NULL, .defintarrayval=0, TYPE_INTARRAY, 0}, \
}
// clang-format on
...
...
@@ -216,6 +218,7 @@ typedef enum {
#define GNB_USE_DELTA_MCS_IDX 29
#define GNB_FORCEUL256QAMOFF_IDX 30
#define GNB_MAXMIMOLAYERS_IDX 31
#define GNB_BEAMWEIGHTS_IDX 32
#define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD}
#define GNBPARAMS_CHECK { \
...
...
@@ -251,6 +254,7 @@ typedef enum {
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
}
/*-------------------------------------------------------------------------------------------------------------------------------------------------*/
...
...
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
4891e809
...
...
@@ -273,7 +273,13 @@ nfapi_nr_pm_list_t init_DL_MIMO_codebook(gNB_MAC_INST *gNB, nr_pdsch_AntennaPort
return
mat
;
}
static
void
config_common
(
gNB_MAC_INST
*
nrmac
,
nr_pdsch_AntennaPorts_t
pdsch_AntennaPorts
,
int
pusch_AntennaPorts
,
NR_ServingCellConfigCommon_t
*
scc
)
static
void
config_common
(
gNB_MAC_INST
*
nrmac
,
nr_pdsch_AntennaPorts_t
pdsch_AntennaPorts
,
int
pusch_AntennaPorts
,
int
nb_tx
,
int
nb_beams
,
int32_t
*
bw_list
,
NR_ServingCellConfigCommon_t
*
scc
)
{
nfapi_nr_config_request_scf_t
*
cfg
=
&
nrmac
->
config
[
0
];
nrmac
->
common_channels
[
0
].
ServingCellConfigCommon
=
scc
;
...
...
@@ -588,6 +594,21 @@ static void config_common(gNB_MAC_INST *nrmac, nr_pdsch_AntennaPorts_t pdsch_Ant
// precoding matrix configuration (to be improved)
cfg
->
pmi_list
=
init_DL_MIMO_codebook
(
nrmac
,
pdsch_AntennaPorts
);
// beamforming matrix configuration
cfg
->
dbt_config
.
num_dig_beams
=
nb_beams
;
cfg
->
dbt_config
.
num_txrus
=
nb_tx
;
cfg
->
dbt_config
.
dig_beam_list
=
malloc16
(
nb_beams
*
sizeof
(
*
cfg
->
dbt_config
.
dig_beam_list
));
AssertFatal
(
cfg
->
dbt_config
.
dig_beam_list
,
"out of memory
\n
"
);
for
(
int
i
=
0
;
i
<
nb_beams
;
i
++
)
{
nfapi_nr_dig_beam_t
*
beam
=
&
cfg
->
dbt_config
.
dig_beam_list
[
i
];
beam
->
beam_idx
=
i
;
beam
->
txru_list
=
malloc16
(
nb_tx
*
sizeof
(
*
beam
->
txru_list
));
for
(
int
j
=
0
;
j
<
nb_tx
;
j
++
)
{
beam
->
txru_list
[
j
].
dig_beam_weight_Re
=
bw_list
[
j
+
i
*
nb_tx
]
&
0xffff
;
beam
->
txru_list
[
j
].
dig_beam_weight_Im
=
(
bw_list
[
j
+
i
*
nb_tx
]
>>
16
)
&
0xffff
;
LOG_D
(
NR_MAC
,
"Beam %d Tx %d Weight (%d, %d)
\n
"
,
i
,
j
,
beam
->
txru_list
[
j
].
dig_beam_weight_Re
,
beam
->
txru_list
[
j
].
dig_beam_weight_Im
);
}
}
}
void
nr_mac_config_scc
(
gNB_MAC_INST
*
nrmac
,
NR_ServingCellConfigCommon_t
*
scc
,
const
nr_mac_config_t
*
config
)
...
...
@@ -621,7 +642,9 @@ void nr_mac_config_scc(gNB_MAC_INST *nrmac, NR_ServingCellConfigCommon_t *scc, c
LOG_I
(
NR_MAC
,
"Configuring common parameters from NR ServingCellConfig
\n
"
);
config_common
(
nrmac
,
config
->
pdsch_AntennaPorts
,
config
->
pusch_AntennaPorts
,
scc
);
int
nb_tx
=
config
->
nb_bfw
[
0
];
int
nb_beams
=
config
->
nb_bfw
[
1
];
config_common
(
nrmac
,
config
->
pdsch_AntennaPorts
,
config
->
pusch_AntennaPorts
,
nb_tx
,
nb_beams
,
config
->
bw_list
,
scc
);
if
(
NFAPI_MODE
==
NFAPI_MONOLITHIC
)
{
// nothing to be sent in the other cases
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
4891e809
...
...
@@ -160,9 +160,10 @@ typedef struct nr_mac_config_t {
bool
force_UL256qam_off
;
bool
use_deltaMCS
;
int
maxMIMO_layers
;
//int pusch_TargetSNRx10;
//int pucch_TargetSNRx10;
nr_mac_timers_t
timer_config
;
/// beamforming weight matrix size
int
nb_bfw
[
2
];
int32_t
*
bw_list
;
}
nr_mac_config_t
;
typedef
struct
NR_preamble_ue
{
...
...
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