#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_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
_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
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,
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
{
#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
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, 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 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
/**********************************************************************