Remove L1_..._IDX
Similar like parent commit, but for L1.
This commit is contained in:
@@ -13,31 +13,31 @@
|
|||||||
|
|
||||||
|
|
||||||
/* L1 configuration parameters names */
|
/* L1 configuration parameters names */
|
||||||
#define CONFIG_STRING_L1_CC "num_cc"
|
#define L1_CC "num_cc"
|
||||||
#define CONFIG_STRING_L1_LOCAL_N_ADDRESS "local_n_address"
|
#define L1_LOCAL_N_ADDRESS "local_n_address"
|
||||||
#define CONFIG_STRING_L1_REMOTE_N_ADDRESS "remote_n_address"
|
#define L1_REMOTE_N_ADDRESS "remote_n_address"
|
||||||
#define CONFIG_STRING_L1_LOCAL_N_PORTC "local_n_portc"
|
#define L1_LOCAL_N_PORTC "local_n_portc"
|
||||||
#define CONFIG_STRING_L1_REMOTE_N_PORTC "remote_n_portc"
|
#define L1_REMOTE_N_PORTC "remote_n_portc"
|
||||||
#define CONFIG_STRING_L1_LOCAL_N_PORTD "local_n_portd"
|
#define L1_LOCAL_N_PORTD "local_n_portd"
|
||||||
#define CONFIG_STRING_L1_REMOTE_N_PORTD "remote_n_portd"
|
#define L1_REMOTE_N_PORTD "remote_n_portd"
|
||||||
#define CONFIG_STRING_L1_TRANSPORT_N_PREFERENCE "tr_n_preference"
|
#define L1_TRANSPORT_N_PREFERENCE "tr_n_preference"
|
||||||
#define CONFIG_STRING_L1_THREAD_POOL_SIZE "thread_pool_size"
|
#define L1_THREAD_POOL_SIZE "thread_pool_size"
|
||||||
#define CONFIG_STRING_L1_OFDM_OFFSET_DIVISOR "ofdm_offset_divisor"
|
#define L1_OFDM_OFFSET_DIVISOR "ofdm_offset_divisor"
|
||||||
#define CONFIG_STRING_L1_PUCCH0_DTX_THRESHOLD "pucch0_dtx_threshold"
|
#define L1_PUCCH0_DTX_THRESHOLD "pucch0_dtx_threshold"
|
||||||
#define CONFIG_STRING_L1_PRACH_DTX_THRESHOLD "prach_dtx_threshold"
|
#define L1_PRACH_DTX_THRESHOLD "prach_dtx_threshold"
|
||||||
#define CONFIG_STRING_L1_PUSCH_DTX_THRESHOLD "pusch_dtx_threshold"
|
#define L1_PUSCH_DTX_THRESHOLD "pusch_dtx_threshold"
|
||||||
#define CONFIG_STRING_L1_SRS_DTX_THRESHOLD "srs_dtx_threshold"
|
#define L1_SRS_DTX_THRESHOLD "srs_dtx_threshold"
|
||||||
#define CONFIG_STRING_L1_MAX_LDPC_ITERATIONS "max_ldpc_iterations"
|
#define L1_MAX_LDPC_ITERATIONS "max_ldpc_iterations"
|
||||||
#define CONFIG_STRING_L1_RX_THREAD_CORE "L1_rx_thread_core"
|
#define L1_RX_THREAD_CORE "L1_rx_thread_core"
|
||||||
#define CONFIG_STRING_L1_TX_THREAD_CORE "L1_tx_thread_core"
|
#define L1_TX_THREAD_CORE "L1_tx_thread_core"
|
||||||
#define HLP_TP_SIZ "thread_pool_size paramter removed, please use --thread-pool"
|
#define HLP_TP_SIZ "thread_pool_size paramter removed, please use --thread-pool"
|
||||||
#define CONFIG_STRING_L1_TX_AMP_BACKOFF_dB "tx_amp_backoff_dB"
|
#define L1_TX_AMP_BACKOFF_dB "tx_amp_backoff_dB"
|
||||||
#define HLP_L1TX_BO "Backoff from full-scale output at the L1 entity(frequency domain), ex. 12 would corresponding to 14-bit input level (6 dB/bit). Default 36 dBFS for OAI RU entity"
|
#define HLP_L1TX_BO "Backoff from full-scale output at the L1 entity(frequency domain), ex. 12 would corresponding to 14-bit input level (6 dB/bit). Default 36 dBFS for OAI RU entity"
|
||||||
#define CONFIG_STRING_L1_PHASE_COMP "phase_compensation"
|
#define L1_PHASE_COMP "phase_compensation"
|
||||||
#define HLP_L1_PHASE_COMP "Apply NR symbolwise phase rotation"
|
#define HLP_L1_PHASE_COMP "Apply NR symbolwise phase rotation"
|
||||||
#define CONFIG_STRING_NUM_ANTENNAS_PER_THREAD "dmrs_num_antennas_per_thread"
|
#define L1_NUM_ANTENNAS_PER_THREAD "dmrs_num_antennas_per_thread"
|
||||||
#define HLP_NUM_ARX "Number of antennas per thread for PUSCH channel estimation"
|
#define HLP_NUM_ARX "Number of antennas per thread for PUSCH channel estimation"
|
||||||
#define CONFIG_STRING_ANALOG_DAS "enable_das"
|
#define L1_ANALOG_DAS "enable_das"
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
/* L1 configuration parameters */
|
/* L1 configuration parameters */
|
||||||
@@ -45,50 +45,29 @@
|
|||||||
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
// clang-format off
|
// clang-format off
|
||||||
#define L1PARAMS_DESC { \
|
#define L1PARAMS_DESC { \
|
||||||
{CONFIG_STRING_L1_CC, NULL, 0, .uptr=NULL, .defintval=1, TYPE_UINT, 0}, \
|
{L1_CC, NULL, 0, .uptr=NULL, .defintval=1, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_TRANSPORT_N_PREFERENCE, NULL, 0, .strptr=NULL, .defstrval="local_mac", TYPE_STRING, 0}, \
|
{L1_TRANSPORT_N_PREFERENCE, NULL, 0, .strptr=NULL, .defstrval="local_mac", TYPE_STRING, 0}, \
|
||||||
{CONFIG_STRING_L1_LOCAL_N_ADDRESS, NULL, 0, .strptr=NULL, .defstrval="127.0.0.1", TYPE_STRING, 0}, \
|
{L1_LOCAL_N_ADDRESS, NULL, 0, .strptr=NULL, .defstrval="127.0.0.1", TYPE_STRING, 0}, \
|
||||||
{CONFIG_STRING_L1_REMOTE_N_ADDRESS, NULL, 0, .strptr=NULL, .defstrval="127.0.0.2", TYPE_STRING, 0}, \
|
{L1_REMOTE_N_ADDRESS, NULL, 0, .strptr=NULL, .defstrval="127.0.0.2", TYPE_STRING, 0}, \
|
||||||
{CONFIG_STRING_L1_LOCAL_N_PORTC, NULL, 0, .uptr=NULL, .defintval=50030, TYPE_UINT, 0}, \
|
{L1_LOCAL_N_PORTC, NULL, 0, .uptr=NULL, .defintval=50030, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_REMOTE_N_PORTC, NULL, 0, .uptr=NULL, .defintval=50030, TYPE_UINT, 0}, \
|
{L1_REMOTE_N_PORTC, NULL, 0, .uptr=NULL, .defintval=50030, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_LOCAL_N_PORTD, NULL, 0, .uptr=NULL, .defintval=50031, TYPE_UINT, 0}, \
|
{L1_LOCAL_N_PORTD, NULL, 0, .uptr=NULL, .defintval=50031, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_REMOTE_N_PORTD, NULL, 0, .uptr=NULL, .defintval=50031, TYPE_UINT, 0}, \
|
{L1_REMOTE_N_PORTD, NULL, 0, .uptr=NULL, .defintval=50031, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_THREAD_POOL_SIZE, HLP_TP_SIZ, 0, .uptr=NULL, .defintval=2022, TYPE_UINT, 0}, \
|
{L1_THREAD_POOL_SIZE, HLP_TP_SIZ, 0, .uptr=NULL, .defintval=2022, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_OFDM_OFFSET_DIVISOR, NULL, 0, .uptr=NULL, .defuintval=8, TYPE_UINT, 0}, \
|
{L1_OFDM_OFFSET_DIVISOR, NULL, 0, .uptr=NULL, .defuintval=8, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_PUCCH0_DTX_THRESHOLD, NULL, 0, .uptr=NULL, .defintval=100, TYPE_UINT, 0}, \
|
{L1_PUCCH0_DTX_THRESHOLD, NULL, 0, .uptr=NULL, .defintval=100, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_PRACH_DTX_THRESHOLD, NULL, 0, .uptr=NULL, .defintval=150, TYPE_UINT, 0}, \
|
{L1_PRACH_DTX_THRESHOLD, NULL, 0, .uptr=NULL, .defintval=150, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_PUSCH_DTX_THRESHOLD, NULL, 0, .uptr=NULL, .defintval=50, TYPE_UINT, 0}, \
|
{L1_PUSCH_DTX_THRESHOLD, NULL, 0, .uptr=NULL, .defintval=50, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_SRS_DTX_THRESHOLD, NULL, 0, .uptr=NULL, .defintval=30, TYPE_UINT, 0}, \
|
{L1_SRS_DTX_THRESHOLD, NULL, 0, .uptr=NULL, .defintval=30, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_MAX_LDPC_ITERATIONS, NULL, 0, .uptr=NULL, .defintval=8, TYPE_UINT, 0}, \
|
{L1_MAX_LDPC_ITERATIONS, NULL, 0, .uptr=NULL, .defintval=8, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_RX_THREAD_CORE, NULL, 0, .iptr=NULL, .defintval=-1, TYPE_INT, 0}, \
|
{L1_RX_THREAD_CORE, NULL, 0, .iptr=NULL, .defintval=-1, TYPE_INT, 0}, \
|
||||||
{CONFIG_STRING_L1_TX_THREAD_CORE, NULL, 0, .iptr=NULL, .defintval=-1, TYPE_INT, 0}, \
|
{L1_TX_THREAD_CORE, NULL, 0, .iptr=NULL, .defintval=-1, TYPE_INT, 0}, \
|
||||||
{CONFIG_STRING_L1_TX_AMP_BACKOFF_dB, HLP_L1TX_BO,0, .uptr=NULL, .defintval=36, TYPE_UINT, 0}, \
|
{L1_TX_AMP_BACKOFF_dB, HLP_L1TX_BO,0, .uptr=NULL, .defintval=36, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_L1_PHASE_COMP, HLP_L1_PHASE_COMP,PARAMFLAG_BOOL, .uptr=NULL,.defintval=1, TYPE_UINT, 0}, \
|
{L1_PHASE_COMP, HLP_L1_PHASE_COMP,PARAMFLAG_BOOL, .uptr=NULL,.defintval=1, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_NUM_ANTENNAS_PER_THREAD, HLP_NUM_ARX,0, .uptr=NULL, .defintval=1, TYPE_UINT, 0}, \
|
{L1_NUM_ANTENNAS_PER_THREAD, HLP_NUM_ARX,0, .uptr=NULL, .defintval=1, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_ANALOG_DAS, NULL, 0, .uptr=NULL, .defintval=0, TYPE_UINT, 0}, \
|
{L1_ANALOG_DAS, NULL, 0, .uptr=NULL, .defintval=0, TYPE_UINT, 0}, \
|
||||||
}
|
}
|
||||||
// clang-format on
|
// clang-format on
|
||||||
#define L1_CC_IDX 0
|
|
||||||
#define L1_TRANSPORT_N_PREFERENCE_IDX 1
|
|
||||||
#define L1_LOCAL_N_ADDRESS_IDX 2
|
|
||||||
#define L1_REMOTE_N_ADDRESS_IDX 3
|
|
||||||
#define L1_LOCAL_N_PORTC_IDX 4
|
|
||||||
#define L1_REMOTE_N_PORTC_IDX 5
|
|
||||||
#define L1_LOCAL_N_PORTD_IDX 6
|
|
||||||
#define L1_REMOTE_N_PORTD_IDX 7
|
|
||||||
#define L1_THREAD_POOL_SIZE 8
|
|
||||||
#define L1_OFDM_OFFSET_DIVISOR 9
|
|
||||||
#define L1_PUCCH0_DTX_THRESHOLD 10
|
|
||||||
#define L1_PRACH_DTX_THRESHOLD 11
|
|
||||||
#define L1_PUSCH_DTX_THRESHOLD 12
|
|
||||||
#define L1_SRS_DTX_THRESHOLD 13
|
|
||||||
#define L1_MAX_LDPC_ITERATIONS 14
|
|
||||||
#define L1_RX_THREAD_CORE 15
|
|
||||||
#define L1_TX_THREAD_CORE 16
|
|
||||||
#define L1_TX_AMP_BACKOFF_dB 17
|
|
||||||
#define L1_PHASE_COMP 18
|
|
||||||
#define NUM_ANTENNAS_PER_THREAD 19
|
|
||||||
#define L1_ANALOG_DAS 20
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -828,33 +828,35 @@ void RCconfig_NR_L1(void)
|
|||||||
GET_PARAMS_LIST(L1_ParamList, L1_Params, L1PARAMS_DESC, CONFIG_STRING_L1_LIST, NULL);
|
GET_PARAMS_LIST(L1_ParamList, L1_Params, L1PARAMS_DESC, CONFIG_STRING_L1_LIST, NULL);
|
||||||
|
|
||||||
if (L1_ParamList.numelt > 0) {
|
if (L1_ParamList.numelt > 0) {
|
||||||
AssertFatal(*L1_ParamList.paramarray[j][L1_THREAD_POOL_SIZE].uptr == 2022,
|
const paramdef_t *params = L1_ParamList.paramarray[j];
|
||||||
|
const int np = sizeofArray(L1_Params);
|
||||||
|
AssertFatal(*gpd(params, np, L1_THREAD_POOL_SIZE)->uptr == 2022,
|
||||||
"thread_pool_size removed, please use --thread-pool\n");
|
"thread_pool_size removed, please use --thread-pool\n");
|
||||||
gNB->ofdm_offset_divisor = *(L1_ParamList.paramarray[j][L1_OFDM_OFFSET_DIVISOR].uptr);
|
gNB->ofdm_offset_divisor = *gpd(params, np, L1_OFDM_OFFSET_DIVISOR)->uptr;
|
||||||
gNB->pucch0_thres = *(L1_ParamList.paramarray[j][L1_PUCCH0_DTX_THRESHOLD].uptr);
|
gNB->pucch0_thres = *gpd(params, np, L1_PUCCH0_DTX_THRESHOLD)->uptr;
|
||||||
gNB->prach_thres = *(L1_ParamList.paramarray[j][L1_PRACH_DTX_THRESHOLD].uptr);
|
gNB->prach_thres = *gpd(params, np, L1_PRACH_DTX_THRESHOLD)->uptr;
|
||||||
gNB->pusch_thres = *(L1_ParamList.paramarray[j][L1_PUSCH_DTX_THRESHOLD].uptr);
|
gNB->pusch_thres = *gpd(params, np, L1_PUSCH_DTX_THRESHOLD)->uptr;
|
||||||
gNB->srs_thres = *(L1_ParamList.paramarray[j][L1_SRS_DTX_THRESHOLD].uptr);
|
gNB->srs_thres = *gpd(params, np, L1_SRS_DTX_THRESHOLD)->uptr;
|
||||||
gNB->max_ldpc_iterations = *(L1_ParamList.paramarray[j][L1_MAX_LDPC_ITERATIONS].uptr);
|
gNB->max_ldpc_iterations = *gpd(params, np, L1_MAX_LDPC_ITERATIONS)->uptr;
|
||||||
gNB->L1_rx_thread_core = *(L1_ParamList.paramarray[j][L1_RX_THREAD_CORE].iptr);
|
gNB->L1_rx_thread_core = *gpd(params, np, L1_RX_THREAD_CORE)->iptr;
|
||||||
gNB->L1_tx_thread_core = *(L1_ParamList.paramarray[j][L1_TX_THREAD_CORE].iptr);
|
gNB->L1_tx_thread_core = *gpd(params, np, L1_TX_THREAD_CORE)->iptr;
|
||||||
LOG_I(NR_PHY, "L1_RX_THREAD_CORE %d (%d)\n", *(L1_ParamList.paramarray[j][L1_RX_THREAD_CORE].iptr), L1_RX_THREAD_CORE);
|
LOG_I(NR_PHY, "thread cores for L1_RX %d L1_TX %d\n", gNB->L1_rx_thread_core, gNB->L1_tx_thread_core);
|
||||||
gNB->TX_AMP = min(32767.0 / pow(10.0, .05 * (double)(*L1_ParamList.paramarray[j][L1_TX_AMP_BACKOFF_dB].uptr)), INT16_MAX);
|
gNB->TX_AMP = min(32767.0 / pow(10.0, .05 * (double)(*gpd(params, np, L1_TX_AMP_BACKOFF_dB)->uptr)), INT16_MAX);
|
||||||
gNB->phase_comp = *L1_ParamList.paramarray[j][L1_PHASE_COMP].uptr;
|
LOG_I(NR_PHY, "TX_AMP = %d (-%d dBFS)\n", gNB->TX_AMP, *gpd(params, np, L1_TX_AMP_BACKOFF_dB)->uptr);
|
||||||
gNB->dmrs_num_antennas_per_thread = *(L1_ParamList.paramarray[j][NUM_ANTENNAS_PER_THREAD].uptr);
|
|
||||||
gNB->enable_analog_das = *(L1_ParamList.paramarray[j][L1_ANALOG_DAS].uptr);
|
|
||||||
LOG_I(NR_PHY, "TX_AMP = %d (-%d dBFS)\n", gNB->TX_AMP, *L1_ParamList.paramarray[j][L1_TX_AMP_BACKOFF_dB].uptr);
|
|
||||||
AssertFatal(gNB->TX_AMP > 300, "TX_AMP is too small, must be larger than 300 (is %d)\n", gNB->TX_AMP);
|
AssertFatal(gNB->TX_AMP > 300, "TX_AMP is too small, must be larger than 300 (is %d)\n", gNB->TX_AMP);
|
||||||
|
gNB->phase_comp = *gpd(params, np, L1_PHASE_COMP)->uptr;
|
||||||
|
gNB->dmrs_num_antennas_per_thread = *gpd(params, np, L1_NUM_ANTENNAS_PER_THREAD)->uptr;
|
||||||
|
gNB->enable_analog_das = *gpd(params, np, L1_ANALOG_DAS)->uptr;
|
||||||
// Midhaul configuration
|
// Midhaul configuration
|
||||||
if (strcmp(*(L1_ParamList.paramarray[j][L1_TRANSPORT_N_PREFERENCE_IDX].strptr), "local_mac") == 0) {
|
if (strcmp(*gpd(params, np, L1_TRANSPORT_N_PREFERENCE)->strptr, "local_mac") == 0) {
|
||||||
// do nothing
|
// do nothing
|
||||||
} else if (strcmp(*(L1_ParamList.paramarray[j][L1_TRANSPORT_N_PREFERENCE_IDX].strptr), "nfapi") == 0) {
|
} else if (strcmp(*gpd(params, np, L1_TRANSPORT_N_PREFERENCE)->strptr, "nfapi") == 0) {
|
||||||
gNB->eth_params_n.my_addr = strdup(*(L1_ParamList.paramarray[j][L1_LOCAL_N_ADDRESS_IDX].strptr));
|
gNB->eth_params_n.my_addr = strdup(*gpd(params, np, L1_LOCAL_N_ADDRESS)->strptr);
|
||||||
gNB->eth_params_n.remote_addr = strdup(*(L1_ParamList.paramarray[j][L1_REMOTE_N_ADDRESS_IDX].strptr));
|
gNB->eth_params_n.remote_addr = strdup(*gpd(params, np, L1_REMOTE_N_ADDRESS)->strptr);
|
||||||
gNB->eth_params_n.my_portc = *(L1_ParamList.paramarray[j][L1_LOCAL_N_PORTC_IDX].iptr);
|
gNB->eth_params_n.my_portc = *gpd(params, np, L1_LOCAL_N_PORTC)->iptr;
|
||||||
gNB->eth_params_n.remote_portc = *(L1_ParamList.paramarray[j][L1_REMOTE_N_PORTC_IDX].iptr);
|
gNB->eth_params_n.remote_portc = *gpd(params, np, L1_REMOTE_N_PORTC)->iptr;
|
||||||
gNB->eth_params_n.my_portd = *(L1_ParamList.paramarray[j][L1_LOCAL_N_PORTD_IDX].iptr);
|
gNB->eth_params_n.my_portd = *gpd(params, np, L1_LOCAL_N_PORTD)->iptr;
|
||||||
gNB->eth_params_n.remote_portd = *(L1_ParamList.paramarray[j][L1_REMOTE_N_PORTD_IDX].iptr);
|
gNB->eth_params_n.remote_portd = *gpd(params, np, L1_REMOTE_N_PORTD)->iptr;
|
||||||
gNB->eth_params_n.transp_preference = ETH_UDP_MODE;
|
gNB->eth_params_n.transp_preference = ETH_UDP_MODE;
|
||||||
|
|
||||||
configure_nr_nfapi_pnf(gNB->eth_params_n.remote_addr,
|
configure_nr_nfapi_pnf(gNB->eth_params_n.remote_addr,
|
||||||
@@ -1753,7 +1755,9 @@ void RCconfig_nr_macrlc(configmodule_interface_t *cfg)
|
|||||||
bool das_enabled = false;
|
bool das_enabled = false;
|
||||||
if (NFAPI_MODE == NFAPI_MONOLITHIC) {
|
if (NFAPI_MODE == NFAPI_MONOLITHIC) {
|
||||||
GET_PARAMS_LIST(L1_ParamList, L1_Params, L1PARAMS_DESC, CONFIG_STRING_L1_LIST, NULL);
|
GET_PARAMS_LIST(L1_ParamList, L1_Params, L1PARAMS_DESC, CONFIG_STRING_L1_LIST, NULL);
|
||||||
das_enabled = *(L1_ParamList.paramarray[j][L1_ANALOG_DAS].uptr);
|
const paramdef_t *l1_params = L1_ParamList.paramarray[j];
|
||||||
|
const int l1_np = sizeofArray(L1_Params);
|
||||||
|
das_enabled = *gpd(l1_params, l1_np, L1_ANALOG_DAS)->uptr;
|
||||||
}
|
}
|
||||||
// TODO config_isparamset doesn't seem to work for array types, checking numelt instead
|
// TODO config_isparamset doesn't seem to work for array types, checking numelt instead
|
||||||
int n = gpd(params, np, MACRLC_BEAM_WEIGHTS_LIST)->numelt;
|
int n = gpd(params, np, MACRLC_BEAM_WEIGHTS_LIST)->numelt;
|
||||||
|
|||||||
Reference in New Issue
Block a user