/******************************************************************************* ################################################################################ # Copyright (c) [2017-2019] [Radisys] # # # # Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 # # # # 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. # ################################################################################ *******************************************************************************/ /********************************************************************20** Name: environment options Type: C include file Desc: Environment options specifies defines required by the by TRILLIUM software. The defines in this file need to be changed by the customer to reflect the software architecture needed to run under the target system hardware architecture. File: envopt.h *********************************************************************21*/ #ifndef __ENVOPTH__ #define __ENVOPTH__ #define IOT_REPETITION #define NOCMDLINE #define NOFILESYS /************************************************************************ kernel SCTP parameters ************************************************************************/ #define CM_LKSCTP #define CM_LKSCTP_NONBLOCK #define SCTP_CONNECTX_NEW #define CMINETDBG /* defines */ /************************************************************************** general parameters **************************************************************************/ /* error checking, choose none or one */ #ifdef NOERRCHK #else #define ERRCHK /* error checking */ #endif /* NOERRCHK */ #undef CM_PASN_DBG /************************************************************************** unix - multi-threaded system services **************************************************************************/ /* Multi threaded solaris/linux operating system */ #ifdef MT /* unix - multi-threaded */ #define MT_SOL /* Solaris Thread Architecture */ #endif #ifndef SS_MT #define SS_MT #endif //#define UL_ADPT_DBG //#define MAC_5GTF_UPDATE #define PRE_DEF_UE_CTX //#define ENB_SUPPORT_RLC_UM_MODE #define TMR_BASED_TPT_PRINT_5GTF #define EG_GEN_LOAD_5GTF /*Refer 6.3.2 5G-PDCP SN "V5G_323_v1p0"*/ //#define SN_PDCP_5GTF //#define PCAP_IP_DATGEN_LOAD_5GTF #define NO_BSR_SR_5GTF //#define PAL_ENABLE_UL_CA #define DROP_UL_MSG_5GTF #define TFU_5GTF #define RG_5GTF #undef SCH_5GTF_STATS #define DISABLE_RLOG /* Flags that apply for the entire product are defined here */ /* The legacy and the system services defintions are here */ #define USE_LINUX #define CMINET_BSDCOMPAT /* #define SS_TICKS_SEC 100 */ #define CMFILE_REORG_1 #define CMFILE_REORG_2 #define CM_INET2 #define SSINT2 #undef HI_MULTI_THREADED #define SS_PERF #define SS_WL_REGION 1 #define SS_FLOAT #define SS_MT_TMR #define SS_M_PROTO_REGION #define SLES9_PLUS #undef SS_TSKLOG_ENABLE #define SS_MULTICORE_SUPPORT #undef SS_USE_ICC_MEMORY #define SS_LOCKLESS_MEMORY #define SS_USE_ZBC_MEMORY #define SS_THR_REG_MAP #undef SS_RBUF #undef SS_LICENSE_CHECK #undef SS_ROUTE_MSG_CORE1 #undef SS_DBUF_REFLOCK_DISABLE #undef SSI_MEM_CORR_PREVENTION #undef MS_MBUF_CORRUPTION /* 5GNR product specific definations are starts here */ #ifndef RLC_5GNR #define RLC_5GNR #endif /* define AM_RLC_SN_18_BIT means 18 bit SN otherwise 12 bit SN */ //#define AM_RLC_SN_18_BIT //#define NR_PDCP_DRB_SN_18_BIT /* LTE product specific definitions are here */ #define TUCL_TTI_RCV #define LTE_PAL_ENB #define LTE_ENB_PAL #define TENB_RTLIN_CHANGES #define TENB_SPLIT_ARCH_SUPPORT #define TENB_SPLIT_ARCH #undef TENB_T2K3K_SPECIFIC_CHANGES #undef MLOG_ENABLED #undef MSPD_DBG_ENABLE #undef MSPD_MLOG_NEW #define TTI_PROC_FIRST #undef FLAT_BUFFER_OPT #undef NTL_LIB #undef TENB_UL_FP #undef TENB_AS_SECURITY #undef LTE_L2_MEAS #undef LTEPHY_MSPD #undef DAM_PDCP_OPT #define TENB_MAX_UE_SUPPORTED 32 #if MACHINE==BIT64 #define BIT_64 1 #define ALIGN_64BIT #endif #define REL_850 #define TA_NEW #undef TENB_FP #if defined(MODE) && (MODE==TDD) #define LTE_TDD 1 #define TFU_TDD #undef MSPD_TDD_LTE #undef MSPD_TDD #undef MSPD_TDD_DBG #define PHY_3828 #define PHY_3829 #define SPLIT_RLC_DL_TASK #undef RG_SCH_DYNDLDELTA #else #undef LTE_TDD #undef LA_VER3 #undef TFU_TDD #define T2200_FDD_CPU_OVRLD #undef MSPD_PHY_NEW #define T2200_2GB_DDR_CHANGES #define BEST_EFFORT_2_UE_PER_TTI #define KWSELFPSTDLCLEAN #define BATCH_PROCESSING_DL #define BATCH_PROCESSING_UL #define TL_ALLOC_ICC_MEM #undef YS_MS_UL_ZBC #endif #undef PDCP_RLC_DL_RBUF #undef MAC_RLC_UL_RBUF #undef NTL_LIB_DIS_FOR_UL #undef TFU_ALLOC_EVENT_NO_INIT #if defined(MODE) && (MODE==TDD) #define KWSELFPSTDLCLEAN #else #define YSMS_RLF_DETCT #define LA_VER2 #endif #if defined(CA_ENABLE) && (CA_ENABLE==YES) #define CA_PAL_5GTF #define TENB_MULT_CELL_SUPPRT #define LTE_ADV #define CA_PHY 1 #define LTE_ADV_UECAP #undef CA_DBG #define NTL_LIB_DIS_FOR_UL #ifndef SPLIT_RLC_DL_TASK #ifndef CA_PAL_5GTF #define SPLIT_RLC_DL_TASK #endif #endif #endif #ifdef SPLIT_RLC_DL_TASK #define MAC_RLC_HARQ_STA_RBUF #define RLC_MAC_STA_RSP_UL_RBUF #endif #define TENB_STATS /* Interface flags - The interface flags are shared by more than */ /* one layer and hence need to be defined in a common place. */ /* KWU interface definition */ #define CCPU_OPT /* SZT interface (App<->S1AP) flags */ #define SZTV1 #define SZTV2 #define SZTV3 /* CZT interface (App<->X2AP) flags */ #define CZTV1 /* LSZ interface (SM<->S1AP) flags */ #define LSZV1 /* LEG interface (SM<->EGTP) flags */ #define LEGV2 /* CTF interface (App<->CL) flags */ #define CTF_VER3 #undef CTF_V3 /* CPJ interface (RRC<->PDCP) flags */ #define CPJ_V2 /* TFU interface flags */ #ifdef LTE_TDD #define TFU_TDD #else #undef TFU_TDD #endif #define TFU_UPGRADE 1 #define TFU_VER_2 /* RGR interface (APP<->SCH) flags */ #define RGR_V1 #define RGR_V2 #define RGR_CQI_REPT #define RGR_SI_SCH #define RGR_RRM_TICK /* RRM related interface flags */ #define RM_INTF /* LSB interface flags */ #define LSB4 #define LSB8 #define SB_CHECKSUM /* Define to include trillium supplied function */ #define SB_CHECKSUM_CRC /************************************************************************** Layer manager interface version definition **************************************************************************/ #define LMINT3 /* interface 3 */ #ifdef SS /* Common System Services */ /************************************************************************** Common System Services parameters **************************************************************************/ /* product specific options */ #define SS_RTR_SUPPORT /* for supporting router tasks */ #ifdef SS_DRVR_SUPPORT /* for backward compatibility */ #define ENB_RELAY /* for forward compatibility */ #define RYINT1 #endif /* SS_DRVR_SUPPORT */ /* post format, choose none or one */ #define FCSPOSTINT /* forward compatibility, post format */ #endif /* SS */ /************************************************************************** MTSS-Solaris parameters **************************************************************************/ #ifdef SS_MT /* MTSS-Solaris */ #ifndef CONAVL #define CONAVL /* console availability option */ #endif #define STDIO_INCLD #endif /******************************************************************/ /* SCTP Layer */ /******************************************************************/ #ifdef SB /* List of other layers interacting with SCTP and in the same binary */ #ifndef SM #define SM #endif #ifndef SZ #define SZ #endif #ifndef CZ #define CZ #endif #ifndef HI #define HI #endif /* Coupling with other layers */ #define LCSBUISCT #define LCSBLIHIT #define LCSBMILSB /* new TUCL layer */ #ifndef HI_REL_1_4 #define HI_REL_1_4 #endif #ifdef IPV6_SUPPORTED #define SB_IPV6_SUPPORTED #endif /* Checksum */ /* needed dependencies */ #ifdef LCSBUISCT #ifndef LCSCT #define LCSCT 1 #endif #endif #ifdef LCSBMILSB #ifndef LCLSB #define LCLSB 1 #endif #endif #ifdef LCSBLIHIT #ifndef LCHIT #define LCHIT 1 #endif #endif /*----- SCTP have dependencies in LSB and SCT ------*/ #ifdef LCLSB #ifndef LCSCT #define LCSCT #endif #endif /*----- SCTP have dependencies in LSB and SCT ------*/ #ifdef LCSCT #ifndef LCLSB #define LCLSB #endif #endif #endif /* SB */ /************************************************************************** S1AP Section **************************************************************************/ #ifdef SZ #undef SZ #define SZ 1 /* Define the layers that coexist with S1AP. */ #ifndef SB #define SB #endif #ifndef UZ #define UZ #endif #ifndef SM #define SM #endif /* product options */ #define SZ_ENB #define CM_PASN_CRIT_HANDL #undef M_PASN_DBG #undef S1AP_REL851 #define SZ_DYNAMIC_PEER #define SZ_USTA /* interface options */ #define LCSZUISZT /* loosely coupled, SZ upper layer SZT interface */ #define LCSZMILSZ /* loosely coupled, SZ manegement LSZ interface */ #define LCSZLISCT /* loosely coupled, SZ lower layer SCT interface */ /* Based on the selection of coupling above the section below */ /* defines enabling/disabling of loose coupling on the */ /* respective interfaces */ /* ****** THIS SECTION REQUIRES NO FURTHER CHANGES. ********** */ /* Interface between S1AP and Application */ #ifdef LCSZUISZT #ifndef LCSZT #define LCSZT 1 #endif #endif /* Interface between S1AP and management (SM) */ #ifdef LCSZMILSZ #ifndef LCLSZ #define LCLSZ 1 #endif #endif /* Interface between S1AP and Application */ #ifdef LWLCSZUISZT #ifndef LWLCSZT #define LWLCSZT #endif #endif /* Interface between SCTP and S1AP */ #ifdef LCSZLISCT #ifndef LCSCT #define LCSCT #endif #endif #endif /* SZ */ /******************************************************************/ /* EGTP Layer */ /******************************************************************/ #ifdef EG /* Product flags */ #define EGTP_U 1 /* LTE Evolved GTP User Plane Protocol */ /* All the layers that this layer interacts with and are part of */ /* the binary are to be included here. */ #ifndef EU #define EU #endif #ifndef HI #define HI #endif #ifndef SM #define SM #endif #ifdef IPV6_SUPPORTED #define EG_IPV6_SUPPORTED #endif /* EGTP does not use loose coupling towards higher layers and does */ /* not talk to TUCL on HIT in the latest TeNB. However if it were */ /* to use TUCL, it would be loosely coupled as TUCL is multi- */ /* threaded. */ /* TODO - LCEGUIEGT should not be needed. */ #define LCSMEGMILEG #define LCEGLIHIT #define LCEGUIEGT #define LCEGMILEG /* Managing the loose coupling definitions on the interface based */ /* how the interface is coupled from E-GTP layer. */ /* ****** THIS SECTION REQUIRES NO FURTHER CHANGES. ********** */ #if defined(LCEGMILEG) #ifndef LCLEG #define LCLEG 1 #endif #endif #if defined(LCEGLIHIT) #ifndef LCHIT #define LCHIT 1 #endif #endif #ifdef LCEGUIEGT #ifndef LCEGT #define LCEGT #endif #endif #endif /* EG */ /*************************************************************************/ /* LTE-RRC Section */ /*************************************************************************/ #ifdef NH #undef NH #define NH 1 /* Define other layers that are part of the same binary */ /* Along with RRC, we have application(NX,WR) and stack */ /* manager (SM). */ #ifndef SM #define SM #endif /* TODO - We need either WR or NX and not necessarily */ /* both of them. See if we can remove one of it. */ #ifndef NX #define NX #endif #ifndef WR #define WR #endif /* RRC layer functionality flags */ #define DISABLE_RRCSEC /* Interface coupling related flags */ /* TODO - LCNHUINHU should not be needed. */ /* TODO - LCWRLINHU should not be needed. */ #define LWLCNHUINHU #define LCNHUINHU #define LCNHLICPJ #define LCNHLIPJU #define LCNHLICKW #define LCNHLIKWU #define LCNHLICTF #define LCNHMILNH #define LCWRLINHU /* CRG interface between MAC and RRC should be loosely coupled */ #define LCNHLICRG /* Loose coupled NHU */ #ifdef LCNHUINHU #ifndef LCNHU #define LCNHU 1 #endif #endif /* Light weight loose coupled NHU */ #ifdef LWLCNHUINHU #ifndef LWLCNHU #define LWLCNHU 1 #endif #endif /* Loosely coupled CPJ */ #ifdef LCNHLICPJ #ifndef LCCPJ #define LCCPJ 1 #endif #endif /* Loosely coupled PJU */ #ifdef LCNHLIPJU #ifndef LCPJU #define LCPJU 1 #endif #endif /* Loosely coupled CRG */ #ifdef LCNHLICRG #ifndef LCCRG #define LCCRG 1 /* loosely coupled CRG interface */ #endif #endif /* Loosely coupled CTF */ #ifdef LCNHLICTF #ifndef LCCTF #define LCCTF 1 /* loosely coupled CTF interface */ #endif /* LCCTF */ #endif /* LCNHLICTF */ #ifdef LCNHLICKW #ifndef LCCKW #define LCCKW 1 /* loosely coupled CKW interface */ #endif #endif #define LCNHLIKWU #ifdef LCNHLIKWU #ifndef LCKWU #define LCKWU 1 /* loosely coupled KWU interface */ #endif #endif /* TODO These flags should move to SM definitions */ #define LCSMNHMILNH /* Define flags related to loosely coupled LNH interface */ #ifdef LCNHMILNH #ifndef LCLNH #define LCLNH 1 #endif #endif /* Release 9 related flags */ #ifdef LTERRC_REL9 #define S1AP_REL9A6 #ifndef LNH_VER1 #define LNH_VER1 #endif #ifndef NHU_VER1 #define NHU_VER1 #endif #endif /* LTERRC_REL9 */ #ifdef RRC_PHY_CFG_SUPP #define CTF_VER1 #endif #define RNC_INTEG_CCPU #endif /* NH */ /**************************************************************************** CL section ****************************************************************************/ #if (defined(TF) || defined(YS)) /* Self entity definitions */ #ifndef YS #define YS #endif /* Other entity definitions */ #ifndef RG #define RG #endif /* Selection of interface coupling flags */ #define LCTFUITFU #define LCTFUICTF #define LCYSUICTF #define LCYSUITFU #define LCYSMILYS #if defined(MODE) && (MODE == TDD) #define TFU_TDD #else #undef TFU_TDD #endif /* The handling of enabling LC based on coupling enabled */ /* between CL and other layers. */ /* ****** THIS SECTION REQUIRES NO FURTHER CHANGES. ********** */ #ifdef LCTFUITFU #ifndef LCTFU #define LCTFU #endif #endif #ifdef LCTFUICTF #ifndef LCCTF #define LCCTF #endif #endif #ifdef LCYSUICTF #ifndef LCCTF #define LCCTF #endif #endif #ifdef LCYSMILYS #ifndef LCLYS #define LCLYS #endif #endif #define TFU_WRR_2 #endif /* YS/TF */ /**************************************************************************** LTE-MAC Section ****************************************************************************/ #ifdef RG #undef RG #define RG 1 /* Product options */ //#define RG_PHASE2_SCHED 1 #undef RG_DEBUG #undef TTI_PROC #undef PROC_DL #undef SCH_TTI_PROC #undef TOM #undef PAL_MAC_PROC #undef UL_PROC_MAC #define LTEMAC_RGU_PAD 1 #define LTEMAC_MIMO 1 #define LTEMAC_DRX 0 #define UL_LA 1 #undef DL_LA #define LTEMAC_SPS 0 #define LTEMAC_DLUE_TMGOPTMZ #define RG_DL_DELTA_CHANGE #define RG_CMNCH_SCHDELTA_CHANGE #undef RG_ULSCHED_AT_CRC #define TFU_RECPREQ_DELTA_CHANGE #define TFU_DL_DELTA_CHANGE #define TFU_UL_DELTA_CHANGE #define TFU_DLHQFBK_DELTA_CHANGE #define SCH_STATS /* Define all the layers that are colocated with the MAC layer */ /* RRC is located on a different binary on a different CPU. RRC */ /* should not be included here. SM should also not be defined */ /* as it is also located on a different CPU. */ #ifndef UR #define UR #endif #ifndef KW #define KW #endif /* This section selects the coupling for each interface related to */ /* MAC. The section below enabling the coupling code appropriately. */ /* CCPU_OPT flag enables additional information between MAC and RLC */ /* that aids in better selection of transport block size. */ /* TODO - We should delete LWLC for RGM interface. */ #define LCRGUICRG #define LCRGUIRGU #define LWLCRGUIRGU #define LCRGMILRG #define LCRGUIRGR #define LCRGLITFU #define LCRGUIRGM #define LWLCRGUIRGM /* Managing the loose coupling definitions on the interface based */ /* how the interface is coupled from MAC layer. */ /* ****** THIS SECTION REQUIRES NO FURTHER CHANGES. ********** */ #ifdef LCRGUICRG #ifndef LCCRG #define LCCRG #endif #endif #ifdef LCRGUIRGU #ifndef LCRGU #define LCRGU #endif #endif #ifdef LCRGMILRG #ifndef LCLRG #define LCLRG #endif #endif #ifdef LCRGUIRGR #ifndef LCRGR #define LCRGR #endif #endif #ifdef LCRGLITFU #ifndef LCTFU #define LCTFU #endif #endif #ifdef LCRGUIRGM #ifndef RGM_LC #define RGM_LC #endif #endif #ifdef LWLCRGUIRGM #ifndef RGM_LWLC #define RGM_LWLC #endif #endif /******************* section to be changed by CUSTOMERS ******************/ #define RG_SC1 1 /* * Introduced timing deltas in FDD for DL control, DL data, * Reception Request, CRC Indication, HARQ feedback Indication. */ #ifdef LTEMAC_DLUE_TMGOPTMZ /* Delta used between MAC and RLC to recieve data from RLC*/ #define RGU_DELTA 0 #else #define RGU_DELTA 1 #endif #if defined(DLHQ_RTT_OPT) && defined(LOWLATENCY) #define TFU_DELTA 0 #else #define TFU_DELTA 0 #endif #define TFU_RECPREQ_DLDELTA 2 #ifdef LTE_TDD #define RG_ENV_DL_DELTA (TFU_DELTA + RGU_DELTA) #define TFU_DLDATA_DLDELTA (TFU_DELTA) #define TFU_CRCIND_ULDELTA 2 #define TFU_ULCNTRL_DELTA (4 - TFU_CRCIND_ULDELTA) #ifdef MSPD /* Number of subframes in advance UL control (DCI-0/PHICH) should be sent from SCH */ #define TFU_ULCNTRL_DLDELTA 2 #else #define TFU_ULCNTRL_DLDELTA 1 #endif #ifdef DLHQ_RTT_OPT /* Number of subframes later DL HARQ feedback reaches MAC from PHY */ #define TFU_ENV_HQFBKIND_ULDELTA 2 #else #define TFU_ENV_HQFBKIND_ULDELTA 3 #endif /* Number of subframes in Advance the Downlink control is given from MAC to PHY */ #define TFU_DLCNTRL_DLDELTA TFU_DELTA #else /* LTE_TDD */ /* Number of subframes in advance UL control (DCI/PHICH) should be sent from SCH */ #define TFU_ULCNTRL_DLDELTA (RG_SCH_CMN_HARQ_INTERVAL - TFU_CRCIND_ULDELTA) #ifdef LTEPHY_MSPD /* Number of subframes for UL CRC to reach SCH after reception of data at PHY */ #define TFU_CRCIND_ULDELTA 2 #else /* LTEPHY_MSPD */ /* Number of subframes in advance DL control should be sent from SCH */ #define TFU_DLCNTRL_DLDELTA 2 /* Number of subframes in advance DL data should be sent from MAC */ #define TFU_DLDATA_DLDELTA 2 /* Number of subframes for UL CRC to reach SCH after reception of data at PHY */ #define TFU_CRCIND_ULDELTA 2 /* Number of subframes later DL HARQ feedback reaches SCH from PHY */ #define TFU_ENV_HQFBKIND_ULDELTA 2 #endif /* LTEPHY_MSPD */ /* The number of frames ahead that RLC may require a STA IND */ /* Seperated DL control and DL data timing deltas in FDD */ #if (TFU_DLDATA_DLDELTA > TFU_DLCNTRL_DLDELTA) #define RG_ENV_DL_DELTA (TFU_DLDATA_DLDELTA + RGU_DELTA) #else #define RG_ENV_DL_DELTA (TFU_DLCNTRL_DLDELTA + RGU_DELTA) #endif #endif /* LTE_TDD */ /* Delta between Random Access Response and Msg-3*/ #define RGSCH_RARSP_MSG3_DELTA 6 /* PUSCH data reception delta after the PDCCH for uplink(DCI-0) is sent*/ #define RGSCH_PDCCH_PUSCH_DELTA 4 #ifdef LTEMAC_HDFDD #define RG_SCH_HDFDD_DELTA 10 #endif #define RG_ENV_SCH_CMN_DL_DELTA RG_ENV_DL_DELTA /* This parameter should not be less than RG_ENV_DL_DELTA */ #define RG_SCH_NO_DELTA 0 /*Consider no delta */ /* ccpu00117459 - ADD - Added check if incompatible falgs are enabled*/ /* HDFDD and TDD cannot be enabled at the same time. */ #if defined(LTEMAC_HDFDD) && (defined(LTE_TDD) || defined(TFU_TDD)) #error "Enabling LTEMAC_HDFDD along with LTE_TDD or TFU_TDD is not a valid combination." #endif /* LTE_TDD and TFU_TDD must be enabled for TDD mode */ #if (defined(LTE_TDD) && (!defined(TFU_TDD))) || (defined(TFU_TDD) && (!defined(LTE_TDD))) #error "Both LTE_TDD and TFU_TDD must be enabled for TDD mode of operation." #endif #endif /* RG */ /**************************************************************************** NR RLC Section ****************************************************************************/ #ifdef KW /* Only PDCP and MAC are in the same binary. RRC runs on a different */ /* CPU and should not be defined here. */ #ifndef RG #define RG #endif /* -------- LKW Interface ------*/ /* This is the interface between RLC and the stack manager */ /* This should support loosely coupling as they dont run */ /* in the same thread */ #define LCKWMILKW /* -------- CKW Interface ------*/ /* CKW interface is loosely coupled as RRC and RLC reside */ /* on two different CPUs running in different threads */ #define LCKWUICKW /* -------- KWU Interface ------*/ /* KWU interface exists between RRC/PDCP and RLC. Since RRC is */ /* is loosely coupled with RLC, loosely coupled interface is */ /* enabled. */ /* CCPU_OPT carries additional information on the interface to */ /* assit better scheduling at MAC */ #define LCKWUIKWU /* RGU interface between RLC and MAC should be light weight */ /* loosely coupled for performance. */ /* TODO - Do we also need loose coupled interface */ #define LWLCKWLIRGU #define LCKWLIRGU #define CCPU_OPT /* The management of enabling of loose coupling code based */ /* on the selection of coupling choice between RLC and other */ /* modules is below. */ /* Other RLC product flags */ #undef RLC_STATUS_GEN #undef UL_PROC_MAC /* ****** THIS SECTION REQUIRES NO FURTHER CHANGES. ********** */ #ifdef LCKWUICKW #ifndef LCCKW #define LCCKW #endif #endif #ifdef LCKWMILKW #ifndef LCLKW #define LCLKW #endif #endif #ifdef LCKWUIKWU #ifndef LCKWU #define LCKWU #endif #endif #endif /* KW */ /**************************************************************************** LTE-PDCP Section ****************************************************************************/ #ifdef PJ #ifndef PX #define PX #endif #define LCPJMILPJ #define LCPJUICPJ #define LCPJUIPJU /* Other PDCP product flags */ #define LTE_HENB #undef CIPH_BATCH_PROC /* The handling of enabling LC based on whether PDCP enabled */ /* loose coupling when PDCP is acting as the source. */ /* ****** THIS SECTION REQUIRES NO FURTHER CHANGES. ********** */ #ifdef LCPJMILPJ #ifndef LCLPJ #define LCLPJ #endif #endif #ifdef LCPJUICPJ #ifndef LCCPJ #define LCCPJ #endif #endif #ifdef LCKWUIKWU #ifndef LCKWU #define LCKWU #endif #endif #ifdef LCPJUIPJU #ifndef LCPJU #define LCPJU #endif #endif #undef SPACC_NONBLOCKING #undef INTEL_NATIVE_SPACC #undef INTEL_SPACC_IV_OPTIMIZATION #undef SPACC_THREADED #endif /* PJ */ /**************************************************************************** TOTALeNodeB Application section ****************************************************************************/ #ifdef WR /* Since application is many different layers to the lower layers */ /* it must define multiple entities as self entities. */ #ifndef EU #define EU #endif #ifndef EG #define EG #endif /* RRC user */ #ifndef NX #define NX #endif /* S1AP user */ #ifndef UZ #define UZ #endif /* X2AP user */ #ifndef RS #define RS #endif /* Include all the layers that are part of the same binary. */ /* We have stack manager (SM), S1AP (SZ), X2AP (CZ), RRM (RM), */ /* RRC(NH) within the same binary. */ #ifndef SM #define SM #endif #ifndef SZ #define SZ #endif #ifndef CZ #define CZ #endif #ifndef NH #define NH #endif #ifndef RM #define RM #endif #ifndef PX #define PX #endif /* Coupling choices between application and other layers */ /* TODO - LWLCWRLIRGR should not be needed. */ /* TODO - LCEULIEGT should not be needed. */ /* TODO - LCNXLINHU should not be needed. */ #define LCWRMILWR #define LWLCWRMILWR #define LCWRLIEGT #define LCPXLIPJU #define LCWRLICTF #define LWLCNXLINHU #define LCUZLISZT #define LWLCUZLISZT #define LCWRLIRGR #define LWLCWRLIRGR #define LCEULIEGT #define LCNXLINHU #define LCRSLICZT #define LWLCRSLICZT #define LCSZUISZT /* Coupling choices between stack manager and the layers */ /* TODO LCSMSBMILSB should be replaced with LCSMMILSB. */ /* TODO LCSMHIMILHI should be replaced with LCSMMILHI. */ #define LCSMMILEG #define LCSMMILCZ #define LCSMMILSZ #define LCSMSBMILSB #define LCSMMILHI #define LCSMHIMILHI /* TODO LCKWMILKW should be changed to LCSMMILKW in SMM */ /* LCKWMILKW should be used only in RLC product */ #define LCSMMILRG #define LCSMMILNH #define LCSMNHMILNH #define LCKWMILKW #define LCSMMILPJ #define LCSMMILRM #define LCSMMILYS #define LWLCSMMILWR #define LCSMMILWR #define LWLCSMMILWR #define LCSMYSMILYS #define LCYSMILYS /* Application functionality related flags */ #define SI_NEW #define LTE_HO_SUPPORT #define WR_SIBS_ENBLD #undef WR_DETECT_RLF #define WR_DL_CQI #define WR_RSYS_KPI #define WR_WATCHDOG #define WR_IPV6_OAM_WORKAROUND #undef WR_GRPPWR_CNTRL /* #undef ENB_OVRLOAD */ /* The handling of enabling LC based on whether TeNB enabled */ /* loose coupling when PDCP is acting as the source. */ /* ****** THIS SECTION REQUIRES NO FURTHER CHANGES. ********** */ #ifdef LCWRMILWR #ifndef LCLWR #define LCLWR #endif #endif #ifdef LCWRLINHU #ifndef LCNHU #define LCNHU #endif #endif #ifdef LCSZUISZT #ifndef LCSZT #define LCSZT #endif #endif #ifdef LCNXLINHU #ifndef LCNHU #define LCNHU #endif #endif #ifdef LWLCNXLINHU #ifndef LWLCNHU #define LWLCNHU #endif #endif #ifdef LCWRLIEGT #ifndef LCEGT #define LCEGT #endif #endif #ifdef LCPXLIPJU #ifndef LCPJU #define LCPJU #endif #endif #ifdef LCWRLICTF #ifndef LCCTF #define LCCTF #endif #endif #ifdef LCWRLIRGR #ifndef LCRGR #define LCRGR #endif #endif #ifdef LCRSLICZT #ifndef LCCZT #define LCCZT #endif #endif #ifdef LWLCRSLICZT #ifndef LWLCCZT #define LWLCCZT #endif #endif /* ************* SM and layer interaction flags **************** */ #ifdef LCSMMILWR #ifndef LCLWR #define LCLWR #endif #endif #ifdef LWLCSMMILWR #ifndef LWLCLWR #define LWLCLWR #endif #endif #ifdef LCSMMILRG #ifndef LCLRG #define LCLRG #endif #endif #ifdef LCSMMILEG #ifndef LCLEG #define LCLEG #endif #endif #ifdef LCSMMILNH #ifndef LCLNH #define LCLNH #endif #endif #ifdef LWLCSMMILWR #ifndef LWLCLWR #define LWLCLWR #endif #endif #ifdef LCSMMILPJ #ifndef LCLPJ #define LCLPJ #endif #endif #ifdef LCKWMILKW #ifndef LCLKW #define LCLKW #endif #endif #ifdef LCSMYSMILYS #ifndef LCLYS #define LCLYS #endif #endif #ifdef LCYSMILYS #ifndef LCLYS #define LCLYS #endif #endif /* TODO - This definition does not follow naming conventions and */ /* also is a duplicate of the above macro. This should be removed */ /* from the code and then from this make file. */ #ifdef LCSMNHMILNH #ifndef LCLNH #define LCLNH #endif #endif #endif /* WR */ /* ************** End of TeNB Application section *************** */ /**************************************************************************** X2AP section ****************************************************************************/ #ifdef CZ #undef CZ #define CZ 1 /* Define the layers that coexist with X2AP. They are SCTP (SB), */ /* X2AP user (RS/WR), stack manager (SM). */ #ifndef SB #define SB #endif #ifndef RS #define RS #endif #ifndef SM #define SM #endif /* product options */ #define CZ_ENB #define CZ_DYNAMIC_PEER #define CZ_USTA /* interface options */ #define LCCZUICZT /* loosely coupled, CZ upper layer CZT interface */ #define LCCZLISCT /* loosely coupled, CZ lower layer SCT interface */ #define LCCZMILCZ /* loosely coupled, CZ manegement LCZ interface */ /* Based on the selection of coupling above the section below */ /* defines enabling/disabling of loose coupling on the */ /* respective interfaces */ /* ****** THIS SECTION REQUIRES NO FURTHER CHANGES. ********** */ /* Interface between S1AP and Application */ #ifdef LCCZUICZT #ifndef LCCZT #define LCCZT 1 #endif #endif /* Interface between X2AP and management (SM) */ #ifdef LCCZMILCZ #ifndef LCLCZ #define LCLCZ 1 #endif #endif /* Interface between X2AP and Application */ #ifdef LWLCCZUICZT #ifndef LWLCCZT #define LWLCCZT #endif #endif /* Interface between SCTP and X2AP */ #ifdef LCCZLISCT #ifndef LCSCT #define LCSCT #endif #endif #endif /* CZ */ /* ******************************************************************* */ /* TUCL section */ /* ******************************************************************* */ #ifdef HI /* Define the products that TUCL directly talks to and are part of the */ /* same binary. */ #ifndef SB #define SB #endif #ifndef EG #define EG #endif #ifndef SM #define SM #endif /* We need to define LCHIUIHIT if there is at least one layer talking */ /* to TUCL in a loosely coupled fashion. */ #define LCHIUIHIT #define LCHIMILHI /* The section below should not be edited normally. */ #ifdef LCHIUIHIT #ifndef LCHIT #define LCHIT #endif #endif #ifdef LCHIMILHI #ifndef LCLHI #define LCLHI #endif #endif #endif /* HI */ /**************************************************************************** SON section ****************************************************************************/ #ifdef NL #define LWLCSMSONILNL #define TCSMSONILNL #define LCSMSONILNL #ifdef LWLCSMSONILNL #define NLU_LWLC #endif #ifdef LCSMSONILNL #define NLU_LC #endif #ifdef TCSMSONILNL #define NLU_TC #endif #endif /**************************************************************************** RRM section ****************************************************************************/ #ifdef RM #define LCRMLIRGM #define LWLCRMLIRGM #define LWLCRMUIRMU #define LWLCSMRMMILRM #define LCSMRMMILRM #define PTSMMILRM #define LCRMMILRM #ifdef LCRMLIRGM #ifndef RGM_LC #define RGM_LC #endif #endif #ifdef LWLCRMLIRGM #ifndef RGM_LWLC #define RGM_LWLC #endif #endif /* TODO: By conventions we should have this name LCRMU instead of RMU_LC */ #ifdef LCRMUIRMU #ifndef RMU_LC #define RMU_LC #endif #endif #ifdef LWLCRMUIRMU #ifndef RMU_LWLC #define RMU_LWLC #endif #endif #ifdef LCRMMILRM #ifndef LCLRM #define LCLRM #endif #endif #endif #endif /* __ENVOPTH__ */ /********************************************************************30** End of file **********************************************************************/