[Epic-ID: ODUHIGH-538][Issue-ID: ODUHIGH-571] Adding XML parser for macros defined...
[o-du/l2.git] / src / cm / common_def.h
index ae50d82..e07f6a6 100644 (file)
 #include "cm_lib.x"
 #include "du_log.h"
 
-#define RADIO_FRAME_DURATION 10 /* Time duration of a radio frame in ms */
+#define SCH_INST_START 1
+#define SCH_MAX_INST 1
+
 /* MAX values */
 #define MAX_NUM_CELL 2 /* Changed to 2 to support cell Id 2 even if there is only one cell in DU */
 #define MAX_NUM_MU   4
 #define MAX_NUM_UE   3
-#define MAX_NUM_UE_PER_TTI 1
+#define MAX_NUM_UE_PER_TTI 2
 #define MAX_NUM_LC   MAX_DRB_LCID + 1   /*Spec 38.331: Sec 6.4: maxLC-ID Keyword*/
 #define MAX_NUM_SRB  3    /* Max. no of Srbs */
 #define MAX_NUM_DRB  29   /* spec 38.331, maxDRB */
 #define MAX_NUM_HARQ_PROC 16 /* spec 38.331, nrofHARQ-ProcessesForPDSCH */
 #define MAX_NUM_TB_PER_UE 2  /* spec 38.331, maxNrofCodeWordsScheduledByDCI */
 
-/* 5G ORAN phy delay */
-#ifdef NR_TDD
-#define PHY_DELTA_DL 2
-#define PHY_DELTA_UL 0
-#else
-#define PHY_DELTA_DL 1
-#define PHY_DELTA_UL 0
-#endif
-
  /* SELECTORS */ 
 #define ODU_SELECTOR_LC 0
 #define ODU_SELECTOR_TC 1
 #define MAX_NUM_RB TOTAL_PRB_20MHZ_MU0 /* value for numerology 0, 20 MHz */
 #endif
 
-#define ODU_UE_THROUGHPUT_PRINT_TIME_INTERVAL      5     /* in milliseconds */
-#define ODU_SNSSAI_THROUGHPUT_PRINT_TIME_INTERVAL  60000 /* in milliseconds */
-
 /*Spec 38.331 Sec 6.4: Maximum number of paging occasion per paging frame*/
 #define MAX_PO_PER_PF 4
 
 
 #define MAX_SFN   1024
 
+/*First SCS in kHz as per 3gpp spec 38.211 Table 4.2-1 */
+#define BASE_SCS 15
+
+#define MAX_NUM_STATS_GRP 5 /* Max number of statistics group per configuration request */
+#define MAX_NUM_STATS 10    /* Max number of statistics per group */
+
 /* Defining macros for common utility functions */
 #define ODU_GET_MSG_BUF SGetMsg
 #define ODU_PUT_MSG_BUF SPutMsg
 #define ODU_PRINT_MSG SPrntMsg
 #define ODU_REM_PRE_MSG SRemPreMsg
 #define ODU_REM_PRE_MSG_MULT SRemPreMsgMult
+#define ODU_REM_POST_MSG_MULT SRemPstMsgMult
 #define ODU_REG_TMR_MT SRegTmrMt
 #define ODU_SEGMENT_MSG SSegMsg
 #define ODU_CAT_MSG SCatMsg
    _isLcidValid = ((_lcId >= SRB0_LCID && _lcId <= MAX_DRB_LCID) ? 1 : 0);\
 }
 
+/**
+ * @def TMR_CALCUATE_WAIT
+ *
+ *    This macro calculates and assigns wait time based on the value of the
+ *    timer and the timer resolution. Timer value of 0 signifies that the
+ *    timer is not configured
+ *
+ * @param[out] _wait   Time for which to arm the timer changed to proper
+ *                     value according to the resolution
+ * @param[in] _tmrVal   Value of the timer
+ * @param[in] _timerRes   Resolution of the timer
+ *
+*/
+#define TMR_CALCUATE_WAIT(_wait, _tmrVal, _timerRes)          \
+{                                                             \
+   (_wait) = ((_tmrVal) * SS_TICKS_SEC)/((_timerRes) * 1000); \
+   if((0 != (_tmrVal)) && (0 == (_wait)))                     \
+   {                                                          \
+      (_wait) = 1;                                            \
+   }                                                          \
+}
+
 typedef enum
 {
    SUCCESSFUL, 
@@ -229,6 +248,9 @@ typedef enum
    UEID_INVALID, 
    RESOURCE_UNAVAILABLE,  
    SLICE_NOT_FOUND,
+   DUPLICATE_ENTRY,
+   PARAM_INVALID,
+   STATS_ID_NOT_FOUND
 }CauseOfResult ;
 
 typedef enum
@@ -275,13 +297,13 @@ typedef enum
 
 typedef enum
 {
-   SCS_5MS,
-   SCS_10MS,
-   SCS_20MS,
-   SCS_40MS,
-   SCS_80MS,
-   SCS_160MS
-}ScsPeriodicity;
+   SSB_5MS,
+   SSB_10MS,
+   SSB_20MS,
+   SSB_40MS,
+   SSB_80MS,
+   SSB_160MS
+}SSBPeriodicity;
 
 typedef enum
 {
@@ -326,6 +348,12 @@ typedef struct snssai
    uint8_t   sd[SD_SIZE];
 }Snssai;
 
+typedef struct supportedSliceList
+{
+   uint8_t    numSupportedSlices;
+   Snssai    **snssai;
+}SupportedSliceList;
+
 typedef struct oduCellId
 {
    uint16_t cellId;
@@ -342,16 +370,26 @@ typedef struct tddCfg
 }TDDCfg;
 #endif
 
-OduCellStatus gCellStatus;
-uint64_t gSlotCount;
-uint64_t gDlDataRcvdCnt;   /* Number of DL data received at EGTP */
+typedef struct gConfiguration
+{
+   uint8_t gPhyDeltaDl;
+   uint8_t gPhyDeltaUl;
+   uint8_t gUeThrptTimeIntervl;
+   uint8_t gSnssaiThrptTimeIntervl;
+   uint8_t gRadioFrameDuration;
+   OduCellStatus gCellStatus;
+   uint64_t gSlotCount;
+   uint64_t gDlDataRcvdCnt;   /* Number of DL data received at EGTP */
+}GConfiguration;
+
+GConfiguration gConfigInfo;
 
 void fillCoresetFeqDomAllocMap(uint16_t startPrb, uint16_t prbSize, uint8_t *freqDomain);
 void oduCpyFixBufToMsg(uint8_t *fixBuf, Buffer *mBuf, uint16_t len);
 uint8_t buildPlmnId(Plmn plmn, uint8_t *buf);
 uint16_t convertScsEnumValToScsVal(uint8_t scsEnumValue);
 uint8_t convertScsValToScsEnum(uint32_t num);
-uint8_t convertScsPeriodicityToEnum(uint32_t num);
+uint8_t convertSSBPeriodicityToEnum(uint32_t num);
 
 uint8_t SGetSBufNewForDebug(char *file, const char *func, int line, Region region, Pool pool, Data **ptr, Size size);
 uint8_t SPutSBufNewForDebug(char *file, const char *func, int line, Region region, Pool pool, Data *ptr, Size size);