[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-532] RIC Subscription Delete Req/Rsp API...
[o-du/l2.git] / src / cm / common_def.h
index 2f2f196..9e7bef4 100644 (file)
@@ -53,6 +53,9 @@
 #include "cm_lib.x"
 #include "du_log.h"
 
+#define SCH_INST_START 1
+#define SCH_MAX_INST 1
+
 #define RADIO_FRAME_DURATION 10 /* Time duration of a radio frame in ms */
 /* 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_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_SSB  64   /* spec 28.331, maxNrofSSBs */
+#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 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_CFG 2 /* Max number of statistics configuration/Subscription supported */
+#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
 
 #ifdef NR_TDD
 /* Maximum slots for max periodicity and highest numerology is 320.
- * However, aligning to fapi_interface.h, setting this macro to 160 */
-#define MAX_TDD_PERIODICITY_SLOTS 160 
+ * However, aligning to fapi_interface.h, setting this macro to 160.
+ * TODO : To support 160, FAPI_MAX_NUM_TLVS_CONFIG in fapi_interface.h
+ * of Intel L1 must be incremented to a higher number */
+#define MAX_TDD_PERIODICITY_SLOTS 10 
 #endif
 
 #define GET_UE_ID( _crnti,_ueId)           \
    _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, 
+   CELLID_INVALID, 
+   UEID_INVALID, 
+   RESOURCE_UNAVAILABLE,  
+   SLICE_NOT_FOUND,
+   DUPLICATE_ENTRY,
+   PARAM_INVALID,
+   STATS_ID_NOT_FOUND
+}CauseOfResult ;
+
 typedef enum
 {
    UE_CFG_INACTIVE,
    UE_CFG_INPROGRESS,
    UE_CREATE_COMPLETE,
    UE_DELETE_COMPLETE,
-   UE_RECFG_COMPLETE
+   UE_RECFG_COMPLETE,
+   UE_RESET_COMPLETE
 }UeCfgState;
 
 typedef enum
@@ -226,17 +282,11 @@ typedef enum
    CONFIG_UNKNOWN,
    CONFIG_ADD,
    CONFIG_MOD,
-   CONFIG_DEL
+   CONFIG_DEL,
+   CONFIG_REESTABLISH
 }ConfigType;
 
 #ifdef NR_TDD
-typedef enum
-{
-   DL_SLOT,
-   UL_SLOT,
-   FLEXI_SLOT
-}SlotConfig;
-
 typedef enum
 {
    TX_PRDCTY_MS_0P5,
@@ -261,13 +311,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
 {
@@ -320,9 +370,11 @@ typedef struct oduCellId
 #ifdef NR_TDD
 typedef struct tddCfg
 {
-   bool               pres;
-   DlUlTxPeriodicity  tddPeriod;      /* DL UL Transmission periodicity */
-   SlotConfig         slotCfg[MAX_TDD_PERIODICITY_SLOTS][MAX_SYMB_PER_SLOT]; 
+   DlUlTxPeriodicity  tddPeriod;     /*DL UL Transmission periodicity */
+   uint8_t            nrOfDlSlots;   /*No. of consecultive full DL slots at beginning of DL-UL pattern*/
+   uint8_t            nrOfDlSymbols; /*No. of consecultive DL symbol at beginning of slot after last full DL slot*/ 
+   uint8_t            nrOfUlSlots;   /*No. of consecutive full UL slots at the end of each DL-UL pattern*/
+   uint8_t            nrOfUlSymbols; /*No. of consecutive UL symbols in the end of the slot before the first full UL slot*/
 }TDDCfg;
 #endif
 
@@ -334,15 +386,17 @@ void fillCoresetFeqDomAllocMap(uint16_t startPrb, uint16_t prbSize, uint8_t *fre
 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 convertSSBPeriodicityToEnum(uint32_t num);
 
-uint8_t SGetSBufNewForDebug(char *file, char *func, char *line, Region region, Pool pool, Data **ptr, Size size);
-uint8_t SPutSBufNewForDebug(char *file, char *func, char *line, Region region, Pool pool, Data *ptr, Size size);
-uint8_t SGetStaticBufNewForDebug(char *file, char *func, char *line, \
+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);
+uint8_t SGetStaticBufNewForDebug(char *file, const char *func, int line, \
 Region region, Pool pool, Data **ptr, Size size, uint8_t memType);
-uint8_t SPutStaticBufNewForDebug(char *file, char *func, char *line, \
+uint8_t SPutStaticBufNewForDebug(char *file, const char *func, int line, \
 Region region, Pool pool, Data *ptr, Size size, uint8_t memType);
 uint8_t countSetBits(uint32_t num);
-
+uint32_t convertArfcnToFreqKhz(uint32_t arfcn);
 #endif
 
 /**********************************************************************