[Epic-ID: ODUHIGH-][Task-ID: ODUHIGH-]WG8 alignment | Cell conf
[o-du/l2.git] / src / du_app / du_cfg.h
index 6701eb9..3876523 100644 (file)
 #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 DU_PORT 38472
-#define CU_PORT 38472
-#define RIC_PORT 36421
+
+#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_EGTP_PORT  39001
-#define CU_EGTP_PORT  39002
+#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 DU_NAME "ORAN OAM DU"
 #define CELL_TYPE SMALL
 
 //TODO: while testing for TDD, Mu1 and 100 MHz, this flag must be enabled
 #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_5MS   5
-#define SSB_PERIODICITY_10MS  10
-#define SSB_PERIODICITY_20MS  20
-#define SSB_PERIODICITY_40MS  40
-#define SSB_PERIODICITY_80MS  80
-#define SSB_PERIODICITY_160MS 160
-#define SSB_SUBCARRIER_OFFSET 0               
+#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 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 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 RSS_MEASUREMENT_UNIT DONT_REPORT_RSSI
 #define RA_CONT_RES_TIMER 64
 #define RA_RSP_WINDOW 10
-#define PRACH_RESTRICTED_SET 0 /* Unrestricted */
-#define ROOT_SEQ_LEN 139
 
 /* MACRCO Ddefine for PDCCH Configuration */
 #define PDCCH_SEARCH_SPACE_ID      1    /* Common search space id */
 #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
 /* Macro definitions for F1 procedures */
 #define CU_DU_NAME_LEN_MAX 30      /* Max length of CU/DU name string */
 #define MAX_F1_CONNECTIONS 65536    /* Max num of F1 connections */
-#define MAX_PLMN           1        /* Max num of broadcast PLMN ids */
+
 #define MAXNRARFCN         3279165  /* Maximum values of NRAFCN */
 #define MAX_NRCELL_BANDS   2       /* Maximum number of frequency bands */
 #define MAX_NUM_OF_SLICE_ITEMS 1024     /* Maximum number of signalled slice support items */
 #define SPARE 0
 #define SSB_SC_OFFSET 0
 #define DU_RANAC 1
-#define CELL_IDENTITY 16
+#define CELL_IDENTITY 1
 
 /* Macro definitions for DUtoCuRrcContainer */
-#define CELL_GRP_ID 1
+#define CELL_GRP_ID 0
 #define SCH_REQ_ID  0
 #define SR_PROHIBIT_TMR 5
 #define SR_TRANS_MAX 2
 #define PHR_PROHIBHIT_TMR 0
 #define PHR_PWR_FACTOR_CHANGE 3
 #define PHR_MODE_OTHER_CG 0
-#define SN_FIELD_LEN 0
+#define SN_FIELD_LEN 1
 #define T_POLL_RETRANSMIT 8       /* Enum for 45ms */ 
 #define T_POLL_RETRANSMIT_VAL 45  /* Value in ms */
 #define POLL_PDU 0                /* Enum for 4 pdus */
 #define DEDICATED_RATIO  10
 #define NUM_OF_SUPPORTED_SLICE  2
 
+#ifdef NR_DRX
+/* Macros for Drx configuration */
+#define DRX_ONDURATION_TIMER_VALUE_PRESENT_IN_MS true
+#define DRX_ONDURATION_TIMER_VALUE_IN_SUBMS 32
+#define DRX_ONDURATION_TIMER_VALUE_IN_MS 10
+#define DRX_INACTIVITY_TIMER 2
+#define DRX_HARQ_RTT_TIMER_DL 56
+#define DRX_HARQ_RTT_TIMER_UL 56
+#define DRX_RETRANSMISSION_TIMER_DL 4
+#define DRX_RETRANSMISSION_TIMER_UL 4
+#define DRX_LONG_CYCLE_START_OFFSET_CHOICE 40
+#define DRX_LONG_CYCLE_START_OFFSET_VAL 8
+#define DRX_SHORT_CYCLE_PRESENT true
+#define DRX_SHORT_CYCLE 2
+#define DRX_SHORT_CYCLE_TIMER 2
+#define DRX_SLOT_OFFSET 0
+#endif
+
 typedef enum
 {
    GNBDU,
@@ -1108,7 +1124,7 @@ typedef struct bcchCfg
 
 typedef struct pcchCfg
 {
-   uint8_t  dfltPagingCycle;                        /* Default paging cycle */
+   uint16_t  dfltPagingCycle;                       /* Default paging cycle */
    uint8_t  nAndPagingFrmOffsetType;                /*Number of PagingFrames in PagingCycle defined in terms of T.*/
    uint8_t  pageFrameOffset;                        /* Paging Frame offset */
    uint8_t  ns;                                     /* Number of paging occassions in paging frame */
@@ -1148,8 +1164,8 @@ typedef struct rachCfgCommon
    long   pwrRampingStep;    /* Power ramping steps for PRACH */
    long   raRspWindow;       /* RA response window */
    long   numRaPreamble;     /* Total num of preamble used in random access */
-   uint8_t ssbPerRachOccPresent;
    long   numSsbPerRachOcc;  /* Numer of SSBs per RACH Occassion */
+   long   numCbPreamblePerSsb; /* Number of Contention-Based preamble per SSB */
    long   contResTimer;      /* Contention resolution timer */
    long   rsrpThreshSsb;
    uint8_t rootSeqIdxPresent;
@@ -1184,6 +1200,7 @@ typedef struct pucchCfgCommon
 
 typedef struct ulCfgCommon
 {
+   long   freqBandInd;  /* Uplink frequency band indicator */
    long   pMax;         /* Max UL transmission power that UE applies */
    long   locAndBw;     /* Frequency location and bandwidth */
    ScsSpecCarrier   ulScsCarrier; /* SCS Specific carrier */
@@ -1205,6 +1222,7 @@ typedef struct tddUlDlCfgCommon
 
 typedef struct srvCellCfgCommSib
 { 
+   long               scs;
    DlCfgCommon        dlCfg;
    UlCfgCommon        ulCfg;
    uint8_t            ssbPosInBurst;
@@ -1226,29 +1244,6 @@ typedef struct sib1Params
    SrvCellCfgCommSib     srvCellCfgCommSib;
 }Sib1Params;
 
-typedef struct policyMemberList
-{
-   Plmn plmn;
-   Snssai  snssai;
-}PolicyMemberList;
-
-typedef struct rrmPolicy
-{
-   ResourceType     rsrcType;
-   uint8_t          numMemberList;
-   PolicyMemberList **memberList;
-   uint8_t          policyMaxRatio;
-   uint8_t          policyMinRatio;
-   uint8_t          policyDedicatedRatio;
-}RrmPolicy;
-
-typedef struct copyOfRecvdSliceCfg
-{
-   RrmPolicy          **rrmPolicy;
-   uint8_t            totalRrmPolicy;
-   uint8_t            totalSliceCount;
-}CopyOfRecvdSliceCfg;
-
 typedef struct duCfgParams
 {
    SctpParams         sctpParams;                  /* SCTP Params */
@@ -1262,7 +1257,7 @@ typedef struct duCfgParams
    MacCellCfg         macCellCfg;                    /* MAC cell configuration */
    MibParams          mibParams;                  /* MIB Params */
    Sib1Params         sib1Params;                 /* SIB1 Params */
-   CopyOfRecvdSliceCfg tempSliceCfg;
+   MacSliceCfgReq     tempSliceCfg;
 }DuCfgParams;
 
 typedef struct f1SetupMsg
@@ -1273,18 +1268,47 @@ typedef struct f1SetupMsg
    char    *f1MsgRspBuf;
 }F1SetupMsg;
 
+
+#ifndef O1_ENABLE
+//RRM POLICY STRUCT
+
+typedef struct rRMPolicyMemberList
+{
+   uint8_t mcc[3];
+   uint8_t mnc[3];
+   uint8_t sd[3];
+   uint8_t sst;
+}RRMPolicyMemberList;
+
+typedef enum
+{
+  PRB,
+  PRB_UL,
+  PRB_DL,
+  RRC,
+  DRB
+}RrmResourceType;
+
+typedef struct rrmPolicyList
+{
+   char id[1];
+   RrmResourceType resourceType;
+   uint8_t rRMMemberNum;
+   RRMPolicyMemberList rRMPolicyMemberList[2];
+   uint8_t rRMPolicyMaxRatio;
+   uint8_t rRMPolicyMinRatio;
+   uint8_t rRMPolicyDedicatedRatio;
+}RrmPolicyList;
+#endif
+
 DuCfgParams duCfgParam;
 
 /*function declarations */
-void FillSlotConfig();
 uint8_t readClCfg();
 uint8_t readCfg();
 uint8_t duReadCfg(); 
 uint16_t calcSliv(uint8_t startSymbol, uint8_t lengthSymbol);
-
-#ifdef O1_ENABLE
-uint8_t cpyRrmPolicyInDuCfgParams(RrmPolicyList rrmPolicy[], uint8_t policyNum, CopyOfRecvdSliceCfg *tempSliceCfg);
-#endif
+uint8_t cpyRrmPolicyInDuCfgParams(RrmPolicyList rrmPolicy[], uint8_t policyNum, MacSliceCfgReq *tempSliceCfg);
 
 #endif /* __DU_CONFIG_H__ */