[Epic-ID: ODUHIGH-406][Task-ID: ODUHIGH-423] UE context setup request from CU to...
[o-du/l2.git] / src / du_app / du_cfg.h
index cc30db1..709deeb 100644 (file)
 #ifndef __DU_CONFIG_H_
 #define __DU_CONFIG_H__
 
+#ifdef O1_ENABLE
+#include "CmInterface.h"
+#endif
+
 /* MACROS */
 #define DU_INST 0
 #define DU_ID 1
 #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_NUMEROLOGY 0
 #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
@@ -69,8 +78,6 @@
 #define SUL_ARFCN 100
 #define SUL_BAND 2
 
-
-
 #define TIME_CFG 0
 #define CARRIER_IDX 1
 #define NUM_TX_ANT 2
 
 /* MACRO defines for PRACH Configuration */
 #define PRACH_CONFIG_IDX   88
-#define PRACH_FREQ_START   0
+#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 0
+#define PRACH_SUBCARRIER_SPACING NR_SCS
 #define PRACH_RESTRICTED_SET_CFG 0
 #define NUM_PRACH_FDM 1
 #define ROOT_SEQ_IDX 0
 #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 Define for PUSCH Configuration */
 #define MAX_UL_ALLOC 16
-#define PUSCH_K2_CFG1  3
-#define PUSCH_K2_CFG2  4
+#define PUSCH_K2_CFG1  4
+#define PUSCH_K2_CFG2  5
 #define PUSCH_START_SYMBOL  3
 #define PUSCH_LENGTH_SYMBOL 11
 
 
 /* Macro define for PUCCH Configuration */
 #define PUCCH_RSRC_COMMON  0
-#define PUCCH_GROUP_HOPPING 2 /* disable */
+#define PUCCH_GROUP_HOPPING 0 /* Neither sequence hopping nor group hopping */
 #define PUCCH_P0_NOMINAL   -74
 
 /* MACRO defines for TDD DL-UL Configuration */
 #define SPARE 0
 #define SSB_SC_OFFSET 0
 #define DU_RANAC 1
-#define CELL_IDENTITY 32
+#define CELL_IDENTITY 16
 
 /* 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 */
 
 /*VALID Tunnel ID*/
 #define MIN_TEID 1   /*[Spec 29.281,Sec 5.1]: All Zero TEIDs are never assigned for setting up GTP-U Tunnel*/
-#define MAX_TEID 10 /*[Spec 29.281]: Max limit is not mentioned but as per GTP-U Header Format, TEID occupies 4 octets */
+#define MAX_TEID MAX_NUM_DRB * MAX_NUM_UE  /*[Spec 29.281]: Max limit is not mentioned but as per GTP-U Header Format, TEID occupies 4 octets */
 
 /* Slice Ratio */
 #define MAX_RATIO        30
 #define MIN_RATIO        20
 #define DEDICATED_RATIO  10
-#define DEDICATED_SLICE_INDEX   1 
 #define NUM_OF_SUPPORTED_SLICE  2
 
 typedef enum
@@ -1101,10 +1109,12 @@ typedef struct bcchCfg
 
 typedef struct pcchCfg
 {
-   long   dfltPagingCycle;      /* Default paging cycle */
-   long   nAndPagingFrmOffPresent;
-   long   nAndPagingFrmOff;     /* n and Paging Frame offset */
-   long   numPagingOcc;         /* Number of paging occassions in paging frame */
+   uint8_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 */
+   uint8_t  firstPDCCHMontioringType;               /* First PDCCH Monitoring Paging Occasion Presence Type*/
+   uint16_t firstPDCCHMontioringInfo[MAX_PO_PER_PF];/*Indicates the first PDCCH monitoring occasion of each PO of the PF*/
 }PcchCfg;
 
 typedef struct scsSpecCarrier
@@ -1217,6 +1227,29 @@ 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 */
@@ -1230,8 +1263,19 @@ typedef struct duCfgParams
    MacCellCfg         macCellCfg;                    /* MAC cell configuration */
    MibParams          mibParams;                  /* MIB Params */
    Sib1Params         sib1Params;                 /* SIB1 Params */
+   CopyOfRecvdSliceCfg tempSliceCfg;
 }DuCfgParams;
 
+typedef struct f1SetupMsg
+{
+   uint8_t f1MsgReqBufSize;
+   char    *f1MsgReqBuf; 
+   uint8_t f1MsgRspBufSize;
+   char    *f1MsgRspBuf;
+}F1SetupMsg;
+
+DuCfgParams duCfgParam;
+
 /*function declarations */
 void FillSlotConfig();
 uint8_t readClCfg();
@@ -1239,6 +1283,10 @@ 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
+
 #endif /* __DU_CONFIG_H__ */
 
 /**********************************************************************