#define EVENT_UCI_IND_TO_SCH 12
#define EVENT_MODIFY_UE_CONFIG_REQ_TO_SCH 13
#define EVENT_UE_RECONFIG_RSP_TO_MAC 14
+#define EVENT_UE_DELETE_REQ_TO_SCH 15
+#define EVENT_UE_DELETE_RSP_TO_MAC 16
+#define EVENT_CELL_DELETE_REQ_TO_SCH 17
+#define EVENT_CELL_DELETE_RSP_TO_MAC 18
/*macros*/
#define MAX_SR_BITS_IN_BYTES 1
#define MAX_NUM_LOGICAL_CHANNEL_GROUPS 8
/* can we have a common numslot numscs between mac sch */
+#ifdef NR_TDD
+#define MAX_SLOTS 20
+#else
#define MAX_SLOTS 10
+#endif
#define MAX_SFN 1024
#define MAX_NUM_SR_CFG_PER_CELL_GRP 8 /* Max number of scheduling request config per cell group */
#define MAX_NUM_TAGS 4 /* Max number of timing advance groups */
#define MAX_NUM_DL_DATA_TO_UL_ACK 15
#define SD_SIZE 3
+#define TX_PAYLOAD_HDR_LEN 32 /* Intel L1 requires adding a 32 byte header to transmitted payload */
+
#define ADD_DELTA_TO_TIME(crntTime, toFill, incr) \
{ \
if ((crntTime.slot + incr) > (MAX_SLOTS - 1)) \
SR_PROHIBIT_MS128
}SchSrProhibitTimer;
+typedef enum
+{
+ NOT_APPLICABLE,
+ INVALID_CELLID,
+ INVALID_UEIDX
+}ErrorCause;
+
typedef enum
{
SR_TRANS_MAX_N4,
typedef struct pdschFreqAlloc
{
uint8_t resourceAllocType;
- /* since we are using type-1, hence rbBitmap excluded */
+ /* since we are using type-1, rbBitmap excluded */
FreqDomainAlloc freqAlloc;
uint8_t vrbPrbMapping;
} PdschFreqAlloc;
{
/* parameters recieved from DU-APP */
uint16_t sib1PduLen;
- uint16_t sib1NewTxPeriod;
uint16_t sib1RepetitionPeriod;
uint8_t coresetZeroIndex; /* derived from 4 LSB of pdcchSib1 present in MIB */
uint8_t searchSpaceZeroIndex; /* derived from 4 MSB of pdcchSib1 present in MIB */
{
uint16_t cellId; /* Cell Id */
uint16_t phyCellId; /* Physical cell id */
- uint8_t bandwidth; /* Supported B/W */
uint8_t numerology; /* Supported numerology */
SchDuplexMode dupMode; /* Duplex type: TDD/FDD */
+ uint8_t bandwidth; /* Supported B/W */
+ uint32_t dlFreq; /* DL Frequency */
+ uint32_t ulFreq; /* UL Frequency */
SchSsbCfg ssbSchCfg; /* SSB config */
SchSib1Cfg sib1SchCfg; /* SIB1 config */
SchRachCfg schRachCfg; /* PRACH config */
typedef struct lcSchInfo
{
uint8_t lcId;
- uint16_t schBytes; /* Number of scheduled bytes */
+ uint32_t schBytes; /* Number of scheduled bytes */
}LcSchInfo;
typedef struct dlMsgAlloc
typedef struct schAmbrCfg
{
uint32_t ulBr; /* Ul BitRate */
- uint32_t dlBr; /* Dl BitRate */
}SchAmbrCfg;
typedef struct schModulationInfo
{
uint16_t cellId;
uint16_t crnti;
+ bool macCellGrpCfgPres;
SchMacCellGrpCfg macCellGrpCfg;
+ bool phyCellGrpCfgPres;
SchPhyCellGrpCfg phyCellGrpCfg;
+ bool spCellCfgPres;
SchSpCellCfg spCellCfg;
SchAmbrCfg *ambrCfg;
SchModulationInfo dlModInfo;
SchFailureCause cause;
}SchUeCfgRsp;
+typedef struct schUeDelete
+{
+ uint16_t cellId;
+ uint16_t crnti;
+}SchUeDelete;
+
+typedef struct schUeDeleteRsp
+{
+ uint16_t cellId;
+ uint16_t crnti;
+ SchMacRsp rsp;
+ ErrorCause cause;
+}SchUeDeleteRsp;
+
+typedef struct schCellDelete
+{
+ uint16_t cellId;
+}SchCellDelete;
+
+
+typedef struct schCellDeleteRsp
+{
+ uint16_t cellId;
+ SchMacRsp rsp;
+}SchCellDeleteRsp;
+
typedef struct dataVolInfo
{
uint8_t lcgId;
Pst *pst, /* Post structure */
SchUeCfgRsp *cfgRsp)); /* Scheduler UE Cfg response */
+typedef uint8_t (*MacSchUeDeleteReqFunc) ARGS((
+ Pst *pst, /* Post structure */
+ SchUeDelete *schUeDel)); /*Scheduler UE Del*/
+
+typedef uint8_t (*SchUeDeleteRspFunc) ARGS((
+ Pst *pst, /* Post structure */
+ SchUeDeleteRsp *delRsp)); /* Scheduler UE delete response */
+
+typedef uint8_t (*MacSchCellDeleteReqFunc) ARGS((
+ Pst *pst, /* Post structure */
+ SchCellDelete *schCellDelete)); /*Scheduler UE Del*/
+
+typedef uint8_t (*SchCellDeleteRspFunc) ARGS((
+ Pst *pst, /* Post structure */
+ SchCellDeleteRsp *schCellDeleteRsp)); /* Scheduler UE delete response */
+
/* function declarations */
uint8_t packMacSchSlotInd(Pst *pst, SlotIndInfo *slotInd);
uint8_t packSchMacDlAlloc(Pst *pst, DlSchedInfo *dlSchedInfo);
uint8_t MacSchModUeConfigReq(Pst *pst, SchUeCfg *ueCfgToSch);
uint8_t packSchUeReconfigRsp(Pst *pst, SchUeCfgRsp *cfgRsp);
uint8_t MacProcSchUeReconfigRsp(Pst *pst, SchUeCfgRsp *cfgRsp);
+uint8_t packMacSchUeDeleteReq(Pst *pst, SchUeDelete *schUeDel);
+uint8_t MacSchUeDeleteReq(Pst *pst, SchUeDelete *ueDelete);
+uint8_t packSchUeDeleteRsp(Pst *pst, SchUeDeleteRsp *delRsp);
+uint8_t MacProcSchUeDeleteRsp(Pst *pst, SchUeDeleteRsp *schUeDelRsp);
+uint8_t packMacSchCellDeleteReq(Pst *pst, SchCellDelete *schCellDelete);
+uint8_t MacSchCellDeleteReq(Pst *pst, SchCellDelete *schCellDelete);
+uint8_t packSchCellDeleteRsp(Pst *pst, SchCellDeleteRsp *schCellDeleteRsp);
+uint8_t MacProcSchCellDeleteRsp(Pst *pst, SchCellDeleteRsp *schCellDeleteRsp);
/**********************************************************************
End of file