Merge "[Epic-ID: ODUHIGH-556][Task-ID: ODUHIGH-570] UL Candidate Sel and Res Alloc...
[o-du/l2.git] / src / du_app / du_cfg.h
index 3b0a0d4..d82297a 100644 (file)
 #endif
 
 /* MACROS */
-#define DU_INST 0
-#define DU_ID 1
-
-#ifndef O1_ENABLE
-#define DU_IP_V4_ADDR "192.168.130.81"
-#define CU_IP_V4_ADDR "192.168.130.82"
-#define RIC_IP_V4_ADDR "192.168.130.80"
+#define GNB_ID  1 /* As per 38.423,Sec 9.2.2.1, gnbId range b/w 0 to 4294967295 */
 
-#define F1_SCTP_PORT 38472  /* As per the spec 38.472, the registered port number for F1AP is 38472 */
-#define E2_SCTP_PORT 36421
-#endif
+#define DU_INST 0
 
-#define F1_EGTP_PORT  2152  /* As per the spec 29.281, the registered port number for GTP-U is 2152 */
 #define NR_PCI 1
 #define NR_CELL_ID 1
 
-#define DU_NAME "ORAN OAM DU"
-#define CELL_TYPE SMALL
-
-//TODO: while testing for TDD, Mu1 and 100 MHz, this flag must be enabled
-#ifdef NR_TDD
-#define DUPLEX_MODE DUP_MODE_TDD
-#define NR_DL_ARFCN 623400
-#define NR_UL_ARFCN 623400
-#define NR_FREQ_BAND 78
-#define NR_SCS SCS_30KHZ
-#define NR_BANDWIDTH BANDWIDTH_100MHZ
-#else
-#define DUPLEX_MODE DUP_MODE_FDD
-#define NR_DL_ARFCN 428000
-#define NR_UL_ARFCN 390000
-#define NR_FREQ_BAND 1
-#define NR_SCS SCS_15KHZ
-#define NR_BANDWIDTH BANDWIDTH_20MHZ
-#endif
-
 #define TRANS_ID 1
-#define DU_TAC 1
-#define PLMN_MCC0 3
-#define PLMN_MCC1 1
-#define PLMN_MCC2 1
-#define PLMN_MNC0 4
-#define PLMN_MNC1 8
-#define PLMN_MNC2 0
 #define PLMN_SIZE 3
 
-/* Spec 38.104 Table 5.4.2.3-1:Applicable NR-ARFCN per operating band in FR1 */
-#define SUL_ARFCN 100
-#define SUL_BAND 2
-
-#define TIME_CFG 4
 #define MEAS_TIMING_ARFCN 630432
 #define CARRIER_IDX 1
-#define NUM_TX_ANT 2
-#define NUM_RX_ANT 2
 #define FREQ_SHIFT_7P5KHZ FALSE
-#define SSB_PBCH_PWR 0
-#define BCH_PAYLOAD PHY_GEN_TIMING_PBCH_BIT
-#define NORMAL_CYCLIC_PREFIX 0
-#define OFFSET_TO_POINT_A 24                     /* PRB Offset to Point A */
-#define BETA_PSS BETA_PSS_0DB  
-#define SSB_PERIODICITY 20
-#define SSB_SUBCARRIER_OFFSET 0         
-#define SSB_FREQUENCY  3000000   /*ssbFrequency in kHz*/
 #define SSB_MULT_CARRIER_BAND FALSE
 #define MULT_CELL_CARRIER FALSE
-#define FREQ_LOC_BW  28875             /* DL frequency location and bandwidth. Spec 38.508 Table 4.3.1.0B-1*/
-#define UL_P_MAX  23
-#define DMRS_TYPE_A_POS 2
 #define NUM_SYMBOLS_PER_SLOT 14       /* Number of symbols within a slot */
 #define CORESET0_END_PRB   48
 #define CORESET1_NUM_PRB   24
 
 /* MACRO defines for PRACH Configuration */
-#ifndef NR_TDD
-#define PRACH_CONFIG_IDX   16
-#else
-#define PRACH_CONFIG_IDX   88
-#endif
 #define PRACH_MAX_PRB  24  /* As per (spec 38.211-Table 6.3.3.2-1), max allocated PRBs can go upto 24 */
-#define PRACH_FREQ_START  (MAX_NUM_RB - PRACH_MAX_PRB) /* In order to allocate PRACH from end of the resource grid */
-#define PRACH_SEQ_LEN SHORT_SEQUENCE
-#define PRACH_SUBCARRIER_SPACING NR_SCS
-#define PRACH_RESTRICTED_SET_CFG 0
-#define NUM_PRACH_FDM 1
-#define ROOT_SEQ_IDX 0
-#define NUM_ROOT_SEQ 1
-#define ZERO_CORRELATION_ZONE_CFG 4
 #define NUM_UNUSED_ROOT_SEQ 0
 #define UNUSED_ROOT_SEQ 1
-#define SSB_PER_RACH 1
-#define CB_PREAMBLE_PER_SSB 8
 #define PRACH_MULT_CARRIER_BAND FALSE
-#define PRACH_PREAMBLE_RCVD_TGT_PWR  -74   
-#define NUM_RA_PREAMBLE  63
-#define RSRP_THRESHOLD_SSB   31
-
-#ifdef NR_TDD
-#define TDD_PERIODICITY TX_PRDCTY_MS_5 
-#endif
 
 #define RSS_MEASUREMENT_UNIT DONT_REPORT_RSSI
 #define RA_CONT_RES_TIMER 64
-#define RA_RSP_WINDOW 10
 
 /* MACRCO Ddefine for PDCCH Configuration */
-#define PDCCH_SEARCH_SPACE_ID      1    /* Common search space id */
-#define PDCCH_CTRL_RSRC_SET_ID     0    /* Control resource set id */
-#define PDCCH_SEARCH_SPACE_ID_SIB1 1    /* Search space id for sib1 */
-#define PDCCH_SEARCH_SPACE_ID_PAGING 1  /* Search space id for paging */
-#define PDCCH_SEARCH_SPACE_ID_RA   1    /* Search spaced id for random access */
-#define PDCCH_SERACH_SPACE_DCI_FORMAT 0
 #define PDCCH_CTRL_RSRC_SET_ONE_ID  1
 #define PDCCH_CTRL_RSRC_SET_ONE_DURATION 2  /* Duration for control resource set id i */
 #define PDCCH_CTRL_RSRC_SET_ONE_PRECOD_GRANULARITY 1   /* Precoded granularity */
 #define PDCCH_SRCH_SPC_TWO_UE_SPEC_DCI_FORMAT  0  /* format 0-0 and 1-0 */
 #define PDCCH_SYMBOL_WITHIN_SLOT 128     /* Symbol within Slot Value */
 
-
-#define SIB1_VALUE_TAG 10
-
 /* MACRO Ddefine for PDSCH Configuration */
 #define NUM_TIME_DOM_RSRC_ALLOC 2
-#define PDSCH_K0_CFG1  0
-#define PDSCH_K0_CFG2  1
 #define PDSCH_START_SYMBOL  3
 #define PDSCH_LENGTH_SYMBOL 11
 #define PDSCH_RES_ALLOC_TYPE       1          /* Resource allocation type */
 #define PUSCH_START_SYMBOL  3
 #define PUSCH_LENGTH_SYMBOL 11
 
-#define PUSCH_MSG3_DELTA_PREAMBLE 0
-#define PUSCH_P0_NOMINAL_WITH_GRANT -70
 #define PUSCH_TRANSFORM_PRECODER    1      /* 1: Disabled */
 #define PUSCH_MAX_MIMO_LAYERS       1
 #define PUSCH_PROCESS_TYPE2_ENABLED false
 
-/* Macro define for PUCCH Configuration */
-#define PUCCH_RSRC_COMMON  0
-#define PUCCH_GROUP_HOPPING 0 /* Neither sequence hopping nor group hopping */
-#define PUCCH_P0_NOMINAL   -74
-
-/* MACRO defines for TDD DL-UL Configuration */
-#define NUM_DL_SLOTS 7
-#define NUM_DL_SYMBOLS 12 
-#define NUM_UL_SLOTS 2
-#define NUM_UL_SYMBOLS 1
-#define GUARD_SLOT_IDX 7
-
 /* MACRO defines for SRC config */
 #define SRS_RSRC_ID  1
 #define SRS_RSET_ID  1
 #define MAX_NUM_OF_UE_ID       65536    /* Max num of UEs served by DU */
 #define MAXNUMOFUACPLMN    12       /* Maximum number of PLMN ids*/
 #define MAXNUMOFUACPERPLMN 64       /* Maximum number of signalled categories per PLMN */
-#define NR_RANAC           150      /* RANAC */
 #define DEFAULT_CELLS      1        /* Max num of broadcast PLMN ids */
 #define IE_EXTENSION_LIST_COUNT 1
 
 /* Macro definitions for MIB/SIB1 */
-#define SYS_FRAME_NUM 0
 #define SPARE 0
-#define SSB_SC_OFFSET 0
-#define DU_RANAC 1
 #define CELL_IDENTITY 1
 
 /* Macro definitions for DUtoCuRrcContainer */
 #define MAX_RATIO        30
 #define MIN_RATIO        20
 #define DEDICATED_RATIO  10
-#define NUM_OF_SUPPORTED_SLICE  2
 
 #ifdef NR_DRX
 /* Macros for Drx configuration */
 #define DRX_SLOT_OFFSET 0
 #endif
 
+/* In case of initial configuration we are supporting only 2 measurement
+ * information RRU.PrbTotDl and RRU.PrbTotUl.
+ * In case of configuration modification we are supporting 3 measurement
+ * information RRU.PrbTotDl, RRU.PrbTotUl and UECNTX.RelReq */
+#define NUM_OF_MEASUREMENT_INFO_SUPPORTED(_configType) \
+   ((_configType == CONFIG_ADD) ? 2 :3)
+
 typedef enum
 {
    GNBDU,
@@ -678,17 +578,11 @@ typedef struct epIpAddrPort
    char   port[2];
 }EpIpAddrPort;
 
-typedef struct f1TaiSliceSuppLst
-{
-   uint8_t    numSupportedSlices;
-   Snssai    **snssai;   
-}F1TaiSliceSuppLst;
-
 typedef struct f1SrvdPlmn
 {
    Plmn   plmn;
    Plmn   extPlmn;    /* Extended available PLMN list */
-   F1TaiSliceSuppLst taiSliceSuppLst;
+   SupportedSliceList taiSliceSuppLst;
 }F1SrvdPlmn;
 
 typedef struct f1BrdcstPlmnInfo
@@ -1244,31 +1138,39 @@ typedef struct sib1Params
    SrvCellCfgCommSib     srvCellCfgCommSib;
 }Sib1Params;
 
+typedef struct threadInfo
+{
+   SSTskId duAppSTskId;
+   uint8_t duAppCoreId;
+   SSTskId egtpSTskId;
+   uint8_t egtpCoreId;
+   SSTskId sctpSTskId;
+   uint8_t sctpCoreId;
+   SSTskId rlcUlSTskId;
+   uint8_t rlcUlCoreId;
+   SSTskId rlcMacSTskId;
+   uint8_t rlcMacCoreId;
+   SSTskId schSTskId;
+   uint8_t schCoreId;
+   SSTskId lwrMacSTskId;
+   uint8_t lwrMacCoreId;
+}ThreadInfo;
+
 typedef struct duCfgParams
-{
-   SctpParams         sctpParams;                  /* SCTP Params */
-   F1EgtpParams       egtpParams;                  /* EGTP Params */
-   uint32_t           maxUe;
+{  
    uint32_t           duId;
    char               *duName;
-   SchedulerCfg       schedCfg;
+   uint16_t           maxNumDrb;
+   ThreadInfo         threadInfo;
+   SctpParams         sctpParams;                  /* SCTP Params */
+   F1EgtpParams       egtpParams;                  /* EGTP Params */
    F1DuSrvdCellInfo   srvdCellLst[MAX_NUM_CELL];  /* Serving cell list *///TODO: this must be removed eventually
-   F1RrcVersion       rrcVersion;                 /* RRC version */
    MacCellCfg         macCellCfg;                    /* MAC cell configuration */
    MibParams          mibParams;                  /* MIB Params */
    Sib1Params         sib1Params;                 /* SIB1 Params */
    MacSliceCfgReq     tempSliceCfg;
 }DuCfgParams;
 
-typedef struct f1SetupMsg
-{
-   uint8_t f1MsgReqBufSize;
-   char    *f1MsgReqBuf; 
-   uint8_t f1MsgRspBufSize;
-   char    *f1MsgRspBuf;
-}F1SetupMsg;
-
-
 #ifndef O1_ENABLE
 //RRM POLICY STRUCT
 
@@ -1307,6 +1209,10 @@ DuCfgParams duCfgParam;
 uint8_t readClCfg();
 uint8_t readCfg();
 uint8_t duReadCfg(); 
+void printDuConfig();
+
+uint8_t fillDuSrvdCellSysInfo(F1DuSysInfo *sysInfo);
+
 uint16_t calcSliv(uint8_t startSymbol, uint8_t lengthSymbol);
 uint8_t cpyRrmPolicyInDuCfgParams(RrmPolicyList rrmPolicy[], uint8_t policyNum, MacSliceCfgReq *tempSliceCfg);