Remove the gNB_MAC_INST.eth_params_s, since it's only purpose is to store what can be on the stack. For the Aerial log message, don't print an empty prefix but what is actually used for Aerial.
176 lines
12 KiB
C
176 lines
12 KiB
C
/*
|
|
* SPDX-License-Identifier: LicenseRef-CSSL-1.0
|
|
*/
|
|
|
|
/*!
|
|
* \brief definition of configuration parameters for all gNodeB modules
|
|
*/
|
|
|
|
#ifndef __GNB_APP_MACRLC_NR_PARAMDEF__H__
|
|
#define __GNB_APP_MACRLC_NR_PARAMDEF__H__
|
|
|
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
/* MACRLC configuration section names */
|
|
#define MACRLC_LIST "MACRLCs"
|
|
|
|
/* MACRLC configuration parameters names */
|
|
#define MACRLC_TRANSPORT_N_PREFERENCE "tr_n_preference"
|
|
#define MACRLC_LOCAL_N_ADDRESS "local_n_address"
|
|
#define MACRLC_LOCAL_N_ADDRESS_F1U "local_n_address_f1u"
|
|
#define MACRLC_REMOTE_N_ADDRESS "remote_n_address"
|
|
#define MACRLC_LOCAL_N_PORTD "local_n_portd"
|
|
#define MACRLC_REMOTE_N_PORTD "remote_n_portd"
|
|
#define MACRLC_TRANSPORT_S_PREFERENCE "tr_s_preference"
|
|
#define MACRLC_TRANSPORT_S_SHM_PREFIX "tr_s_shm_prefix"
|
|
#define MACRLC_TRANSPORT_S_POLL_CORE "tr_s_poll_core"
|
|
#define MACRLC_LOCAL_S_ADDRESS "local_s_address"
|
|
#define MACRLC_REMOTE_S_ADDRESS "remote_s_address"
|
|
#define MACRLC_LOCAL_S_PORTC "local_s_portc"
|
|
#define MACRLC_LOCAL_S_PORTD "local_s_portd"
|
|
#define MACRLC_ULSCH_MAX_FRAME_INACTIVITY "ulsch_max_frame_inactivity"
|
|
#define MACRLC_PUSCHTARGETSNRX10 "pusch_TargetSNRx10"
|
|
#define MACRLC_PUCCHTARGETSNRX10 "pucch_TargetSNRx10"
|
|
#define MACRLC_UL_PRBBLACK_SNR_THRESHOLD "ul_prbblack_SNR_threshold"
|
|
#define MACRLC_PUCCHFAILURETHRES "pucch_FailureThres"
|
|
#define MACRLC_PUSCHFAILURETHRES "pusch_FailureThres"
|
|
#define MACRLC_DL_BLER_TARGET_UPPER "dl_bler_target_upper"
|
|
#define MACRLC_DL_BLER_TARGET_LOWER "dl_bler_target_lower"
|
|
#define MACRLC_DL_MIN_MCS "dl_min_mcs"
|
|
#define MACRLC_DL_MAX_MCS "dl_max_mcs"
|
|
#define MACRLC_UL_BLER_TARGET_UPPER "ul_bler_target_upper"
|
|
#define MACRLC_UL_BLER_TARGET_LOWER "ul_bler_target_lower"
|
|
#define MACRLC_UL_MIN_MCS "ul_min_mcs"
|
|
#define MACRLC_UL_MAX_MCS "ul_max_mcs"
|
|
#define MACRLC_DL_HARQ_ROUND_MAX "dl_harq_round_max"
|
|
#define MACRLC_UL_HARQ_ROUND_MAX "ul_harq_round_max"
|
|
#define MACRLC_MIN_GRANT_PRB "min_grant_prb"
|
|
#define MACRLC_IDENTITY_PM "identity_precoding_matrix"
|
|
#define MACRLC_ANALOG_BEAMFORMING "set_analog_beamforming"
|
|
#define MACRLC_BEAM_DURATION "beam_duration"
|
|
#define MACRLC_BEAMS_PERIOD "beams_per_period"
|
|
#define MACRLC_BEAM_WEIGHTS_LIST "beam_weights"
|
|
#define MACRLC_DBT_FILE "dbt_file"
|
|
#define MACRLC_PUSCH_RSSI_THRESHOLD "pusch_RSSI_Threshold"
|
|
#define MACRLC_PUCCH_RSSI_THRESHOLD "pucch_RSSI_Threshold"
|
|
#define MACRLC_STATS_MAX_UE "stats_max_ue"
|
|
|
|
#define HLP_MACRLC_UL_PRBBLACK "SNR threshold to decide whether a PRB will be blacklisted or not"
|
|
#define HLP_MACRLC_DL_BLER_UP "Upper threshold of BLER to decrease DL MCS"
|
|
#define HLP_MACRLC_DL_BLER_LO "Lower threshold of BLER to increase DL MCS"
|
|
#define HLP_MACRLC_DL_MIN_MCS "Minimum DL MCS that should be used"
|
|
#define HLP_MACRLC_DL_MAX_MCS "Maximum DL MCS that should be used"
|
|
#define HLP_MACRLC_UL_BLER_UP "Upper threshold of BLER to decrease UL MCS"
|
|
#define HLP_MACRLC_UL_BLER_LO "Lower threshold of BLER to increase UL MCS"
|
|
#define HLP_MACRLC_UL_MIN_MCS "Minimum UL MCS that should be used"
|
|
#define HLP_MACRLC_UL_MAX_MCS "Maximum UL MCS that should be used"
|
|
#define HLP_MACRLC_DL_HARQ_MAX "Maximum number of DL HARQ rounds"
|
|
#define HLP_MACRLC_UL_HARQ_MAX "Maximum number of UL HARQ rounds"
|
|
#define HLP_MACRLC_MIN_GRANT_PRB "Minimal Periodic ULSCH Grant PRBs"
|
|
#define HLP_MACRLC_IDENTITY_PM "Flag to use only identity matrix in DL precoding"
|
|
#define HLP_MACRLC_AB "Flag to enable analog beamforming"
|
|
#define HLP_MACRLC_BEAM_DURATION "number of consecutive slots for a given set of beams"
|
|
#define HLP_MACRLC_BEAMS_PERIOD "set of beams that can be simultaneously allocated in a period"
|
|
#define HLP_MACRLC_DBT_FILE "File path to CSV file to read digital beamforming table"
|
|
#define HLP_MACRLC_PUSCH_RSSI_THRESHOLD "Limits PUSCH TPC commands based on RSSI to prevent ADC railing. Value range [-1280, 0], unit 0.1 dBm/dBFS"
|
|
#define HLP_MACRLC_PUCCH_RSSI_THRESHOLD "Limits PUCCH TPC commands based on RSSI to prevent ADC railing. Value range [-1280, 0], unit 0.1 dBm/dBFS"
|
|
#define HLP_MACRLC_STATS_MAX_UE "Maximum number of UEs before disabling periodical output (0 to disable)"
|
|
|
|
/*-------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
/* MacRLC configuration parameters */
|
|
/* optname helpstr paramflags XXXptr defXXXval type numelt */
|
|
/*-------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
// clang-format off
|
|
#define MACRLCPARAMS_DESC { \
|
|
{MACRLC_TRANSPORT_N_PREFERENCE, NULL, 0, .strptr=NULL, .defstrval="local_L1", TYPE_STRING, 0}, \
|
|
{MACRLC_LOCAL_N_ADDRESS, NULL, 0, .strptr=NULL, .defstrval="127.0.0.1", TYPE_STRING, 0}, \
|
|
{MACRLC_REMOTE_N_ADDRESS, NULL, 0, .uptr=NULL, .defstrval="127.0.0.2", TYPE_STRING, 0}, \
|
|
{MACRLC_LOCAL_N_PORTD, NULL, 0, .uptr=NULL, .defintval=50011, TYPE_UINT, 0}, \
|
|
{MACRLC_REMOTE_N_PORTD, NULL, 0, .uptr=NULL, .defintval=50011, TYPE_UINT, 0}, \
|
|
{MACRLC_TRANSPORT_S_PREFERENCE, NULL, 0, .strptr=NULL, .defstrval="local_RRC", TYPE_STRING, 0}, \
|
|
{MACRLC_LOCAL_S_ADDRESS, NULL, 0, .uptr=NULL, .defstrval="127.0.0.1", TYPE_STRING, 0}, \
|
|
{MACRLC_REMOTE_S_ADDRESS, NULL, 0, .uptr=NULL, .defstrval="127.0.0.2", TYPE_STRING, 0}, \
|
|
{MACRLC_LOCAL_S_PORTC, NULL, 0, .uptr=NULL, .defintval=50020, TYPE_UINT, 0}, \
|
|
{MACRLC_LOCAL_S_PORTD, NULL, 0, .uptr=NULL, .defintval=50021, TYPE_UINT, 0}, \
|
|
{MACRLC_ULSCH_MAX_FRAME_INACTIVITY, NULL, 0, .uptr=NULL, .defintval=10, TYPE_UINT, 0}, \
|
|
{MACRLC_PUSCHTARGETSNRX10, NULL, 0, .iptr=NULL, .defintval=200, TYPE_INT, 0}, \
|
|
{MACRLC_PUCCHTARGETSNRX10, NULL, 0, .iptr=NULL, .defintval=150, TYPE_INT, 0}, \
|
|
{MACRLC_UL_PRBBLACK_SNR_THRESHOLD, HLP_MACRLC_UL_PRBBLACK, 0, .iptr=NULL, .defintval=10, TYPE_INT, 0}, \
|
|
{MACRLC_PUCCHFAILURETHRES, NULL, 0, .iptr=NULL, .defintval=10, TYPE_INT, 0}, \
|
|
{MACRLC_PUSCHFAILURETHRES, NULL, 0, .iptr=NULL, .defintval=10, TYPE_INT, 0}, \
|
|
{MACRLC_DL_BLER_TARGET_UPPER, HLP_MACRLC_DL_BLER_UP, 0, .dblptr=NULL, .defdblval=0.15, TYPE_DOUBLE, 0}, \
|
|
{MACRLC_DL_BLER_TARGET_LOWER, HLP_MACRLC_DL_BLER_LO, 0, .dblptr=NULL, .defdblval=0.05, TYPE_DOUBLE, 0}, \
|
|
{MACRLC_DL_MIN_MCS, HLP_MACRLC_DL_MIN_MCS, 0, .u8ptr=NULL, .defintval=0, TYPE_UINT8, 0}, \
|
|
{MACRLC_DL_MAX_MCS, HLP_MACRLC_DL_MAX_MCS, 0, .u8ptr=NULL, .defintval=28, TYPE_UINT8, 0}, \
|
|
{MACRLC_UL_BLER_TARGET_UPPER, HLP_MACRLC_UL_BLER_UP, 0, .dblptr=NULL, .defdblval=0.15, TYPE_DOUBLE, 0}, \
|
|
{MACRLC_UL_BLER_TARGET_LOWER, HLP_MACRLC_UL_BLER_LO, 0, .dblptr=NULL, .defdblval=0.05, TYPE_DOUBLE, 0}, \
|
|
{MACRLC_UL_MIN_MCS, HLP_MACRLC_UL_MIN_MCS, 0, .u8ptr=NULL, .defintval=0, TYPE_UINT8, 0}, \
|
|
{MACRLC_UL_MAX_MCS, HLP_MACRLC_UL_MAX_MCS, 0, .u8ptr=NULL, .defintval=28, TYPE_UINT8, 0}, \
|
|
{MACRLC_DL_HARQ_ROUND_MAX, HLP_MACRLC_DL_HARQ_MAX, 0, .u8ptr=NULL, .defintval=4, TYPE_UINT8, 0}, \
|
|
{MACRLC_UL_HARQ_ROUND_MAX, HLP_MACRLC_UL_HARQ_MAX, 0, .u8ptr=NULL, .defintval=4, TYPE_UINT8, 0}, \
|
|
{MACRLC_MIN_GRANT_PRB, HLP_MACRLC_MIN_GRANT_PRB, 0, .u16ptr=NULL, .defintval=5, TYPE_UINT16, 0}, \
|
|
{MACRLC_IDENTITY_PM, HLP_MACRLC_IDENTITY_PM, PARAMFLAG_BOOL, .u8ptr=NULL, .defintval=0, TYPE_UINT8, 0}, \
|
|
{MACRLC_LOCAL_N_ADDRESS_F1U, NULL, 0, .strptr=NULL, .defstrval=NULL, TYPE_STRING, 0}, \
|
|
{MACRLC_TRANSPORT_S_SHM_PREFIX, NULL, 0, .strptr=NULL, .defstrval="nvipc", TYPE_STRING, 0}, \
|
|
{MACRLC_TRANSPORT_S_POLL_CORE, NULL, 0, .i8ptr=NULL, .defintval=-1, TYPE_INT8, 0}, \
|
|
{MACRLC_ANALOG_BEAMFORMING, HLP_MACRLC_AB, 0, .strptr=NULL, .defstrval="none", TYPE_STRING, 0}, \
|
|
{MACRLC_BEAM_DURATION, HLP_MACRLC_BEAM_DURATION, 0, .u8ptr=NULL, .defintval=1, TYPE_UINT8, 0}, \
|
|
{MACRLC_BEAMS_PERIOD, HLP_MACRLC_BEAMS_PERIOD, 0, .u8ptr=NULL, .defintval=1, TYPE_UINT8, 0}, \
|
|
{MACRLC_BEAM_WEIGHTS_LIST, NULL, 0, .iptr=NULL, .defintarrayval=0, TYPE_INTARRAY,0}, \
|
|
{MACRLC_DBT_FILE, HLP_MACRLC_DBT_FILE, 0, .strptr=NULL, .defstrval=NULL, TYPE_STRING, 0}, \
|
|
{MACRLC_PUSCH_RSSI_THRESHOLD, HLP_MACRLC_PUSCH_RSSI_THRESHOLD, \
|
|
0, .iptr=NULL, .defintval=0, TYPE_INT, 0}, \
|
|
{MACRLC_PUCCH_RSSI_THRESHOLD, HLP_MACRLC_PUCCH_RSSI_THRESHOLD, \
|
|
0, .iptr=NULL, .defintval=0, TYPE_INT, 0}, \
|
|
{MACRLC_STATS_MAX_UE, HLP_MACRLC_STATS_MAX_UE, 0, .iptr=NULL, .defintval=8, TYPE_INT, 0}, \
|
|
}
|
|
// clang-format off
|
|
|
|
#define MACRLCPARAMS_CHECK { \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s2 = { config_check_intrange, {0, 31} } }, /* DL min MCS */ \
|
|
{ .s2 = { config_check_intrange, {0, 31} } }, /* DL max MCS */ \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s2 = { config_check_intrange, {0, 31} } }, /* UL min MCS */ \
|
|
{ .s2 = { config_check_intrange, {0, 31} } }, /* UL max MCS */ \
|
|
{ .s2 = { config_check_intrange, {1, 8} } }, /* DL max HARQ rounds */ \
|
|
{ .s2 = { config_check_intrange, {1, 8} } }, /* UL max HARQ rounds */ \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s2 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s2 = { NULL } }, \
|
|
{ .s3a = { config_checkstr_assign_integer, \
|
|
{"none", "preconfigured", "lophy"}, \
|
|
{NO_BEAM_MODE, PRECONFIGURED_BEAM_IDX, LOPHY_BEAM_IDX}, \
|
|
3 } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s2 = { config_check_intrange, {-1280, 0}} }, /* PUSCH RSSI threshold range */ \
|
|
{ .s2 = { config_check_intrange, {-1280, 0}} }, /* PUCCH RSSI threshold range */ \
|
|
{ .s5 = { NULL } }, \
|
|
}
|
|
|
|
/*---------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
#endif
|