X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fmac_sch_interface.h;h=77e5148bb6386727c980b3e2dd8877adec27a9ee;hb=af8f9c8f6f7cd5e0a89e5dfa7a566fa5811e110c;hp=4111dcc5a842108b9909640bca0f09290a311ec3;hpb=8c0d3b68f4e2983fa0e601484cafcbfda69787d5;p=o-du%2Fl2.git diff --git a/src/cm/mac_sch_interface.h b/src/cm/mac_sch_interface.h index 4111dcc5a..77e5148bb 100644 --- a/src/cm/mac_sch_interface.h +++ b/src/cm/mac_sch_interface.h @@ -35,7 +35,11 @@ #define EVENT_UE_DELETE_RSP_TO_MAC 16 #define EVENT_CELL_DELETE_REQ_TO_SCH 17 #define EVENT_CELL_DELETE_RSP_TO_MAC 18 - +#define EVENT_LONG_BSR 19 +#define EVENT_SLICE_CFG_REQ_TO_SCH 20 +#define EVENT_SLICE_CFG_RSP_TO_MAC 21 +#define EVENT_SLICE_RECFG_REQ_TO_SCH 22 +#define EVENT_SLICE_RECFG_RSP_TO_MAC 23 /*macros*/ #define MAX_SSB_IDX 1 /* forcing it as 1 for now. Right value is 64 */ @@ -87,6 +91,7 @@ #define RAR_PAYLOAD_SIZE 10 /* As per spec 38.321, sections 6.1.5 and 6.2.3, RAR PDU is 8 bytes long and 2 bytes of padding */ #define TX_PAYLOAD_HDR_LEN 32 /* Intel L1 requires adding a 32 byte header to transmitted payload */ +#define UL_TX_BUFFER_SIZE 5 #define MAX_NUM_CONFIG_SLOTS 160 /*Max number of slots as per the numerology*/ #define MAX_NUM_K0_IDX 16 /* Max number of pdsch time domain downlink allocation */ @@ -124,6 +129,12 @@ typedef enum RRC_CONNECTED_USERS_RSRC }SchResourceType; +typedef enum +{ + SLICE_FOUND, + SLICE_NOT_FOUND +}RspCause; + typedef enum { NO_TRANSMISSION, @@ -725,20 +736,12 @@ typedef struct schBwpUlCfg SchK2TimingInfoTbl k2InfoTbl; }SchBwpUlCfg; -typedef struct schPolicyMemberList +typedef struct schPlmnInfoList { - Plmn plmn; - Snssai snssai; -}SchPolicyMemberList; - -typedef struct schRrmPolicy -{ - SchResourceType rsrcType; - SchPolicyMemberList memberList; - uint8_t policyMaxRatio; - uint8_t policyMinRatio; - uint8_t policyDedicatedRatio; -}SchRrmPolicy; + Plmn plmn; + uint8_t numSliceSupport; /* Total slice supporting */ + Snssai **snssai; /* List of supporting snssai*/ +}SchPlmnInfoList; typedef struct schCellCfg { @@ -754,9 +757,7 @@ typedef struct schCellCfg SchRachCfg schRachCfg; /* PRACH config */ SchBwpDlCfg schInitialDlBwp; /* Initial DL BWP */ SchBwpUlCfg schInitialUlBwp; /* Initial UL BWP */ - uint8_t numSliceSupport; /* Total num of slice support */ - Snssai **snssai; /* List of supporting snssai*/ - SchRrmPolicy *rrmPolicy; /* RRM policy */ + SchPlmnInfoList plmnInfoList; /* Consits of PlmnId and Snssai list */ #ifdef NR_TDD TDDCfg tddCfg; /* TDD Cfg */ #endif @@ -861,9 +862,8 @@ typedef struct lcSchInfo uint32_t schBytes; /* Number of scheduled bytes */ }LcSchInfo; -typedef struct dlMsgAlloc +typedef struct dlMsgSchedInfo { - uint16_t crnti; uint8_t numLc; LcSchInfo lcSchInfo[MAX_NUM_LC]; /* Scheduled LC info */ BwpCfg bwp; @@ -872,6 +872,13 @@ typedef struct dlMsgAlloc DlPduType pduPres; uint8_t pdschSlot; DlMsgInfo dlMsgInfo; +}DlMsgSchInfo; + +typedef struct dlMsgAlloc +{ + uint16_t crnti; + uint8_t numSchedInfo; + DlMsgSchInfo dlMsgSchedInfo[2]; }DlMsgAlloc; typedef struct schSlotValue @@ -1205,6 +1212,7 @@ typedef struct schInitalDlBwp SchPdcchConfig pdcchCfg; bool pdschCfgPres; SchPdschConfig pdschCfg; + bool k0K1TblPrsnt; SchK0K1TimingInfoTbl k0K1InfoTbl; }SchInitalDlBwp; @@ -1417,6 +1425,7 @@ typedef struct schInitialUlBwp SchPucchCfg pucchCfg; bool puschCfgPres; SchPuschCfg puschCfg; + bool k2TblPrsnt; SchK2TimingInfoTbl k2InfoTbl; }SchInitialUlBwp; @@ -1616,8 +1625,39 @@ typedef struct srUciIndInfo uint8_t srPayload[MAX_SR_BITS_IN_BYTES]; }SrUciIndInfo; -/* function pointers */ +typedef struct schRrmPolicyRatio +{ + uint8_t policyMaxRatio; + uint8_t policyMinRatio; + uint8_t policyDedicatedRatio; +}SchRrmPolicyRatio; + +typedef struct schRrmPolicyOfSlice +{ + Snssai snssai; + SchRrmPolicyRatio *rrmPolicyRatioInfo; +}SchRrmPolicyOfSlice; +typedef struct schSliceCfgReq +{ + uint8_t numOfConfiguredSlice; + SchRrmPolicyOfSlice **listOfConfirguration; +}SchSliceCfgReq; + +typedef struct sliceRsp +{ + Snssai snssai; + SchMacRsp rsp; + RspCause cause; +}SliceRsp; + +typedef struct schSliceRsp +{ + uint8_t numSliceCfgRsp; + SliceRsp **listOfSliceCfgRsp; +}SchSliceCfgRsp; + +/* function pointers */ typedef uint8_t (*SchCellCfgCfmFunc) ARGS(( Pst *pst, /* Post Structure */ SchCellCfgCfm *schCellCfgCfm /* Cell Cfg Cfm */ @@ -1695,6 +1735,23 @@ typedef uint8_t (*SchCellDeleteRspFunc) ARGS(( Pst *pst, /* Post structure */ SchCellDeleteRsp *schCellDeleteRsp)); /* Scheduler UE delete response */ +typedef uint8_t (*MacSchSliceCfgReqFunc) ARGS(( + Pst *pst, /* Post structure */ + SchSliceCfgReq *schSliceCfgReq)); /* Scheduler Slice Cfg Req */ + +typedef uint8_t (*SchSliceCfgRspFunc) ARGS(( + Pst *pst, /* Post Structure */ + SchSliceCfgRsp *schSliceCfgRsp /* Cell Cfg Cfm */ + )); + +typedef uint8_t (*MacSchSliceReCfgReqFunc) ARGS(( + Pst *pst, /* Post structure */ + SchSliceCfgReq *schSliceReCfgReq)); /* Scheduler Slice ReCfg Req */ + +typedef uint8_t (*SchSliceReCfgRspFunc) ARGS(( + Pst *pst, /* Post Structure */ + SchSliceCfgRsp *schSliceReCfgRsp /* Cell ReCfg Cfm */ + )); /* function declarations */ uint8_t packMacSchSlotInd(Pst *pst, SlotTimingInfo *slotInd); uint8_t packSchMacDlAlloc(Pst *pst, DlSchedInfo *dlSchedInfo); @@ -1736,7 +1793,14 @@ 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); - +uint8_t packMacSchSliceCfgReq(Pst *pst, SchSliceCfgReq *cfgReq); +uint8_t MacSchSliceCfgReq(Pst *pst, SchSliceCfgReq *schSliceCfgReq); +uint8_t packSchSliceCfgRsp(Pst *pst, SchSliceCfgRsp *cfgRsp); +uint8_t MacProcSchSliceCfgRsp(Pst *pst, SchSliceCfgRsp *cfgRsp); +uint8_t packMacSchSliceReCfgReq(Pst *pst, SchSliceCfgReq *cfgReq); +uint8_t MacSchSliceReCfgReq(Pst *pst, SchSliceCfgReq *schSliceCfgReq); +uint8_t packSchSliceReCfgRsp(Pst *pst, SchSliceCfgRsp *cfgRsp); +uint8_t MacProcSchSliceReCfgRsp(Pst *pst, SchSliceCfgRsp *sliceReCfgrsp); /********************************************************************** End of file **********************************************************************/