After the last commit, it is not possible to bind on separate interfaces for F1-C and F1-U. In other words, it is for instance not possible to have the F1-C on one subnet on one physical interface, and F1-U on another subnet on another physical interface. This commit introduces a second option MACRLCs.[0].local_n_address_f1u to allow to bind F1-U on an alternative address; if it is not specified, the interface of F1-C is reused. The above only works for the DU; no corresponding option exists for the CU. For the CU, use separate CU-CP and CU-UP. Use it in the CI.
209 lines
14 KiB
C
209 lines
14 KiB
C
/*
|
|
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
|
* contributor license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright ownership.
|
|
* The OpenAirInterface Software Alliance licenses this file to You under
|
|
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.openairinterface.org/?page_id=698
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*-------------------------------------------------------------------------------
|
|
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
|
* contact@openairinterface.org
|
|
*/
|
|
|
|
/*! \file MACRLC_nr_paramdef.h
|
|
* \brief definition of configuration parameters for all gNodeB modules
|
|
* \author Francois TABURET, WEI-TAI CHEN
|
|
* \date 2018
|
|
* \version 0.1
|
|
* \company NOKIA BellLabs France, NTUST
|
|
* \email: francois.taburet@nokia-bell-labs.com, kroempa@gmail.com
|
|
* \note
|
|
* \warning
|
|
*/
|
|
|
|
#ifndef __GNB_APP_MACRLC_NR_PARAMDEF__H__
|
|
#define __GNB_APP_MACRLC_NR_PARAMDEF__H__
|
|
|
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
|
|
/* MACRLC configuration parameters names */
|
|
#define CONFIG_STRING_MACRLC_CC "num_cc"
|
|
#define CONFIG_STRING_MACRLC_TRANSPORT_N_PREFERENCE "tr_n_preference"
|
|
#define CONFIG_STRING_MACRLC_LOCAL_N_IF_NAME "local_n_if_name"
|
|
#define CONFIG_STRING_MACRLC_LOCAL_N_ADDRESS "local_n_address"
|
|
#define CONFIG_STRING_MACRLC_LOCAL_N_ADDRESS_F1U "local_n_address_f1u"
|
|
#define CONFIG_STRING_MACRLC_REMOTE_N_ADDRESS "remote_n_address"
|
|
#define CONFIG_STRING_MACRLC_LOCAL_N_PORTC "local_n_portc"
|
|
#define CONFIG_STRING_MACRLC_REMOTE_N_PORTC "remote_n_portc"
|
|
#define CONFIG_STRING_MACRLC_LOCAL_N_PORTD "local_n_portd"
|
|
#define CONFIG_STRING_MACRLC_REMOTE_N_PORTD "remote_n_portd"
|
|
#define CONFIG_STRING_MACRLC_TRANSPORT_S_PREFERENCE "tr_s_preference"
|
|
#define CONFIG_STRING_MACRLC_LOCAL_S_IF_NAME "local_s_if_name"
|
|
#define CONFIG_STRING_MACRLC_LOCAL_S_ADDRESS "local_s_address"
|
|
#define CONFIG_STRING_MACRLC_REMOTE_S_ADDRESS "remote_s_address"
|
|
#define CONFIG_STRING_MACRLC_LOCAL_S_PORTC "local_s_portc"
|
|
#define CONFIG_STRING_MACRLC_REMOTE_S_PORTC "remote_s_portc"
|
|
#define CONFIG_STRING_MACRLC_LOCAL_S_PORTD "local_s_portd"
|
|
#define CONFIG_STRING_MACRLC_REMOTE_S_PORTD "remote_s_portd"
|
|
#define CONFIG_STRING_MACRLC_ULSCH_MAX_FRAME_INACTIVITY "ulsch_max_frame_inactivity"
|
|
#define CONFIG_STRING_MACRLC_PUSCHTARGETSNRX10 "pusch_TargetSNRx10"
|
|
#define CONFIG_STRING_MACRLC_PUCCHTARGETSNRX10 "pucch_TargetSNRx10"
|
|
#define CONFIG_STRING_MACRLC_UL_PRBBLACK_SNR_THRESHOLD "ul_prbblack_SNR_threshold"
|
|
#define CONFIG_STRING_MACRLC_PUCCHFAILURETHRES "pucch_FailureThres"
|
|
#define CONFIG_STRING_MACRLC_PUSCHFAILURETHRES "pusch_FailureThres"
|
|
#define CONFIG_STRING_MACRLC_DL_BLER_TARGET_UPPER "dl_bler_target_upper"
|
|
#define CONFIG_STRING_MACRLC_DL_BLER_TARGET_LOWER "dl_bler_target_lower"
|
|
#define CONFIG_STRING_MACRLC_DL_MAX_MCS "dl_max_mcs"
|
|
#define CONFIG_STRING_MACRLC_UL_BLER_TARGET_UPPER "ul_bler_target_upper"
|
|
#define CONFIG_STRING_MACRLC_UL_BLER_TARGET_LOWER "ul_bler_target_lower"
|
|
#define CONFIG_STRING_MACRLC_UL_MAX_MCS "ul_max_mcs"
|
|
#define CONFIG_STRING_MACRLC_DL_HARQ_ROUND_MAX "dl_harq_round_max"
|
|
#define CONFIG_STRING_MACRLC_UL_HARQ_ROUND_MAX "ul_harq_round_max"
|
|
#define CONFIG_STRING_MACRLC_MIN_GRANT_PRB "min_grant_prb"
|
|
#define CONFIG_STRING_MACRLC_MIN_GRANT_MCS "min_grant_mcs"
|
|
#define CONFIG_STRING_MACRLC_IDENTITY_PM "identity_precoding_matrix"
|
|
|
|
#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_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_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_MIN_GRANT_MCS "Minimal Periodic ULSCH Grant MCS"
|
|
#define HLP_MACRLC_IDENTITY_PM "Flag to use only identity matrix in DL precoding"
|
|
|
|
/*-------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
/* MacRLC configuration parameters */
|
|
/* optname helpstr paramflags XXXptr defXXXval type numelt */
|
|
/*-------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
// clang-format off
|
|
#define MACRLCPARAMS_DESC { \
|
|
{CONFIG_STRING_MACRLC_CC, NULL, 0, .uptr=NULL, .defintval=50011, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_MACRLC_TRANSPORT_N_PREFERENCE, NULL, 0, .strptr=NULL, .defstrval="local_L1", TYPE_STRING, 0}, \
|
|
{CONFIG_STRING_MACRLC_LOCAL_N_IF_NAME, NULL, 0, .strptr=NULL, .defstrval="lo", TYPE_STRING, 0}, \
|
|
{CONFIG_STRING_MACRLC_LOCAL_N_ADDRESS, NULL, 0, .strptr=NULL, .defstrval="127.0.0.1", TYPE_STRING, 0}, \
|
|
{CONFIG_STRING_MACRLC_REMOTE_N_ADDRESS, NULL, 0, .uptr=NULL, .defstrval="127.0.0.2", TYPE_STRING, 0}, \
|
|
{CONFIG_STRING_MACRLC_LOCAL_N_PORTC, NULL, 0, .uptr=NULL, .defintval=50010, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_MACRLC_REMOTE_N_PORTC, NULL, 0, .uptr=NULL, .defintval=50010, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_MACRLC_LOCAL_N_PORTD, NULL, 0, .uptr=NULL, .defintval=50011, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_MACRLC_REMOTE_N_PORTD, NULL, 0, .uptr=NULL, .defintval=50011, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_MACRLC_TRANSPORT_S_PREFERENCE, NULL, 0, .strptr=NULL, .defstrval="local_RRC", TYPE_STRING, 0}, \
|
|
{CONFIG_STRING_MACRLC_LOCAL_S_IF_NAME, NULL, 0, .strptr=NULL, .defstrval="lo", TYPE_STRING, 0}, \
|
|
{CONFIG_STRING_MACRLC_LOCAL_S_ADDRESS, NULL, 0, .uptr=NULL, .defstrval="127.0.0.1", TYPE_STRING, 0}, \
|
|
{CONFIG_STRING_MACRLC_REMOTE_S_ADDRESS, NULL, 0, .uptr=NULL, .defstrval="127.0.0.2", TYPE_STRING, 0}, \
|
|
{CONFIG_STRING_MACRLC_LOCAL_S_PORTC, NULL, 0, .uptr=NULL, .defintval=50020, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_MACRLC_REMOTE_S_PORTC, NULL, 0, .uptr=NULL, .defintval=50020, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_MACRLC_LOCAL_S_PORTD, NULL, 0, .uptr=NULL, .defintval=50021, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_MACRLC_REMOTE_S_PORTD, NULL, 0, .uptr=NULL, .defintval=50021, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_MACRLC_ULSCH_MAX_FRAME_INACTIVITY, NULL, 0, .uptr=NULL, .defintval=10, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_MACRLC_PUSCHTARGETSNRX10, NULL, 0, .iptr=NULL, .defintval=200, TYPE_INT, 0}, \
|
|
{CONFIG_STRING_MACRLC_PUCCHTARGETSNRX10, NULL, 0, .iptr=NULL, .defintval=150, TYPE_INT, 0}, \
|
|
{CONFIG_STRING_MACRLC_UL_PRBBLACK_SNR_THRESHOLD, HLP_MACRLC_UL_PRBBLACK, 0, .iptr=NULL, .defintval=10, TYPE_INT, 0}, \
|
|
{CONFIG_STRING_MACRLC_PUCCHFAILURETHRES, NULL, 0, .iptr=NULL, .defintval=10, TYPE_INT, 0}, \
|
|
{CONFIG_STRING_MACRLC_PUSCHFAILURETHRES, NULL, 0, .iptr=NULL, .defintval=10, TYPE_INT, 0}, \
|
|
{CONFIG_STRING_MACRLC_DL_BLER_TARGET_UPPER, HLP_MACRLC_DL_BLER_UP, 0, .dblptr=NULL, .defdblval=0.15, TYPE_DOUBLE, 0}, \
|
|
{CONFIG_STRING_MACRLC_DL_BLER_TARGET_LOWER, HLP_MACRLC_DL_BLER_LO, 0, .dblptr=NULL, .defdblval=0.05, TYPE_DOUBLE, 0}, \
|
|
{CONFIG_STRING_MACRLC_DL_MAX_MCS, HLP_MACRLC_DL_MAX_MCS, 0, .u8ptr=NULL, .defintval=28, TYPE_UINT8, 0}, \
|
|
{CONFIG_STRING_MACRLC_UL_BLER_TARGET_UPPER, HLP_MACRLC_UL_BLER_UP, 0, .dblptr=NULL, .defdblval=0.15, TYPE_DOUBLE, 0}, \
|
|
{CONFIG_STRING_MACRLC_UL_BLER_TARGET_LOWER, HLP_MACRLC_UL_BLER_LO, 0, .dblptr=NULL, .defdblval=0.05, TYPE_DOUBLE, 0}, \
|
|
{CONFIG_STRING_MACRLC_UL_MAX_MCS, HLP_MACRLC_UL_MAX_MCS, 0, .u8ptr=NULL, .defintval=28, TYPE_UINT8, 0}, \
|
|
{CONFIG_STRING_MACRLC_DL_HARQ_ROUND_MAX, HLP_MACRLC_DL_HARQ_MAX, 0, .u8ptr=NULL, .defintval=4, TYPE_UINT8, 0}, \
|
|
{CONFIG_STRING_MACRLC_UL_HARQ_ROUND_MAX, HLP_MACRLC_UL_HARQ_MAX, 0, .u8ptr=NULL, .defintval=4, TYPE_UINT8, 0}, \
|
|
{CONFIG_STRING_MACRLC_MIN_GRANT_PRB, HLP_MACRLC_MIN_GRANT_PRB, 0, .u8ptr=NULL, .defintval=5, TYPE_UINT8, 0}, \
|
|
{CONFIG_STRING_MACRLC_MIN_GRANT_MCS, HLP_MACRLC_MIN_GRANT_MCS, 0, .u8ptr=NULL, .defintval=9, TYPE_UINT8, 0}, \
|
|
{CONFIG_STRING_MACRLC_IDENTITY_PM, HLP_MACRLC_IDENTITY_PM, PARAMFLAG_BOOL, .u8ptr=NULL, .defintval=0, TYPE_UINT8, 0}, \
|
|
{CONFIG_STRING_MACRLC_LOCAL_N_ADDRESS_F1U, NULL, 0, .strptr=NULL, .defstrval=NULL, TYPE_STRING, 0}, \
|
|
}
|
|
// clang-format off
|
|
|
|
#define MACRLC_CC_IDX 0
|
|
#define MACRLC_TRANSPORT_N_PREFERENCE_IDX 1
|
|
#define MACRLC_LOCAL_N_IF_NAME_IDX 2
|
|
#define MACRLC_LOCAL_N_ADDRESS_IDX 3
|
|
#define MACRLC_REMOTE_N_ADDRESS_IDX 4
|
|
#define MACRLC_LOCAL_N_PORTC_IDX 5
|
|
#define MACRLC_REMOTE_N_PORTC_IDX 6
|
|
#define MACRLC_LOCAL_N_PORTD_IDX 7
|
|
#define MACRLC_REMOTE_N_PORTD_IDX 8
|
|
#define MACRLC_TRANSPORT_S_PREFERENCE_IDX 9
|
|
#define MACRLC_LOCAL_S_IF_NAME_IDX 10
|
|
#define MACRLC_LOCAL_S_ADDRESS_IDX 11
|
|
#define MACRLC_REMOTE_S_ADDRESS_IDX 12
|
|
#define MACRLC_LOCAL_S_PORTC_IDX 13
|
|
#define MACRLC_REMOTE_S_PORTC_IDX 14
|
|
#define MACRLC_LOCAL_S_PORTD_IDX 15
|
|
#define MACRLC_REMOTE_S_PORTD_IDX 16
|
|
#define MACRLC_ULSCH_MAX_FRAME_INACTIVITY 17
|
|
#define MACRLC_PUSCHTARGETSNRX10_IDX 18
|
|
#define MACRLC_PUCCHTARGETSNRX10_IDX 19
|
|
#define MACRLC_UL_PRBBLACK_SNR_THRESHOLD_IDX 20
|
|
#define MACRLC_PUCCHFAILURETHRES_IDX 21
|
|
#define MACRLC_PUSCHFAILURETHRES_IDX 22
|
|
#define MACRLC_DL_BLER_TARGET_UPPER_IDX 23
|
|
#define MACRLC_DL_BLER_TARGET_LOWER_IDX 24
|
|
#define MACRLC_DL_MAX_MCS_IDX 25
|
|
#define MACRLC_UL_BLER_TARGET_UPPER_IDX 26
|
|
#define MACRLC_UL_BLER_TARGET_LOWER_IDX 27
|
|
#define MACRLC_UL_MAX_MCS_IDX 28
|
|
#define MACRLC_DL_HARQ_ROUND_MAX_IDX 29
|
|
#define MACRLC_UL_HARQ_ROUND_MAX_IDX 30
|
|
#define MACRLC_MIN_GRANT_PRB_IDX 31
|
|
#define MACRLC_MIN_GRANT_MCS_IDX 32
|
|
#define MACRLC_IDENTITY_PM_IDX 33
|
|
#define MACRLC_LOCAL_N_ADDRESS_F1U_IDX 34
|
|
|
|
#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 } }, \
|
|
{ .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, {1, 8} } }, /* DL max HARQ rounds */ \
|
|
{ .s2 = { config_check_intrange, {1, 8} } }, /* UL max HARQ rounds */ \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
{ .s2 = { NULL } }, \
|
|
{ .s5 = { NULL } }, \
|
|
}
|
|
|
|
/*---------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
#endif
|