X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fmac_sch_interface.h;h=3424bfd8a9d71228701f7880af7567e776f56629;hb=a5f35b2204dd87ebe347f11282000852b55810ad;hp=72f172cf572567f2a8dafa5f66850eb6c2a9826b;hpb=154ac5a3676b120c741184f7e58627df8003b5c0;p=o-du%2Fl2.git diff --git a/src/cm/mac_sch_interface.h b/src/cm/mac_sch_interface.h index 72f172cf5..3424bfd8a 100644 --- a/src/cm/mac_sch_interface.h +++ b/src/cm/mac_sch_interface.h @@ -36,7 +36,10 @@ #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 */ @@ -126,6 +129,12 @@ typedef enum RRC_CONNECTED_USERS_RSRC }SchResourceType; +typedef enum +{ + SLICE_FOUND, + SLICE_NOT_FOUND +}RspCause; + typedef enum { NO_TRANSMISSION, @@ -157,7 +166,7 @@ typedef enum { NOT_APPLICABLE, INVALID_CELLID, - INVALID_UEIDX + INVALID_UEID }ErrorCause; typedef enum @@ -440,6 +449,10 @@ typedef struct SchSSBPeriod ssbPeriod; /* SSB Periodicity in msec */ uint8_t ssbSubcOffset; /* Subcarrier Offset(Kssb) */ uint32_t nSSBMask[SCH_SSB_MASK_SIZE]; /* Bitmap for actually transmitted SSB. */ + + /*Ref:Spec 38.331 "ssb-PositionsInBurst", Value 0 in Bitmap => corresponding SS/PBCH block is not transmitted + *value 1 => corresponding SS/PBCH block is transmitted*/ + uint8_t totNumSsb; /*S = Total Number of Actual SSB transmitted*/ }SchSsbCfg; typedef struct bwpCfg @@ -573,6 +586,13 @@ typedef struct pdcchCfg } PdcchCfg; /* end of SIB1 PDCCH structures */ +typedef struct pageCfg +{ + uint8_t numPO; /*Derived from Ns*/ + bool poPresent; /*FirstPDCCH-MonitoringPO is present or not*/ + uint16_t pagingOcc[MAX_PO_PER_PF]; /*FirstPDCCH-Monitoring Paging Occasion*/ +}PageCfg; + typedef struct { /* parameters recieved from DU-APP */ @@ -583,10 +603,11 @@ typedef struct uint16_t sib1Mcs; /* parameters derived in scheduler */ - uint8_t n0; - BwpCfg bwp; - PdcchCfg sib1PdcchCfg; - PdschCfg sib1PdschCfg; + uint8_t n0; + BwpCfg bwp; + PdcchCfg sib1PdcchCfg; + PdschCfg sib1PdschCfg; + PageCfg pageCfg; /*Config of Paging*/ }SchSib1Cfg; typedef struct schRachCfg @@ -727,20 +748,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 { @@ -756,12 +769,10 @@ 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 +#endif }SchCellCfg; typedef struct schCellCfgCfm @@ -1569,7 +1580,7 @@ typedef struct schUeCfg typedef struct schUeCfgRsp { - uint16_t ueIdx; + uint16_t ueId; uint16_t cellId; uint16_t crnti; SchMacRsp rsp; @@ -1626,8 +1637,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 */ @@ -1705,6 +1747,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); @@ -1746,7 +1805,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 **********************************************************************/