X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fmac_sch_interface.h;h=f6eae33360e2d06e6d9b2b5ddbd7853fd77638ae;hb=4a4be152a02505f732a92caa2a5592f2ec70b9ae;hp=7542bd44951811f20fb611913cc7e2423b904b48;hpb=74ff55d4020f29652ad292bf3add3107021c63d4;p=o-du%2Fl2.git diff --git a/src/cm/mac_sch_interface.h b/src/cm/mac_sch_interface.h index 7542bd449..f6eae3336 100644 --- a/src/cm/mac_sch_interface.h +++ b/src/cm/mac_sch_interface.h @@ -17,26 +17,37 @@ *******************************************************************************/ /* events */ -#define EVENT_SCH_CELL_CFG 1 -#define EVENT_SCH_CELL_CFG_CFM 2 -#define EVENT_DL_SCH_INFO 3 -#define EVENT_UL_SCH_INFO 4 -#define EVENT_RACH_IND_TO_SCH 5 -#define EVENT_CRC_IND_TO_SCH 6 -#define EVENT_DL_RLC_BO_INFO_TO_SCH 7 -#define EVENT_ADD_UE_CONFIG_REQ_TO_SCH 8 -#define EVENT_UE_CONFIG_RSP_TO_MAC 9 -#define EVENT_SLOT_IND_TO_SCH 10 -#define EVENT_SHORT_BSR 11 -#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 - - +#define EVENT_SCH_GEN_CFG 1 +#define EVENT_SCH_CELL_CFG 2 +#define EVENT_SCH_CELL_CFG_CFM 3 +#define EVENT_DL_SCH_INFO 4 +#define EVENT_UL_SCH_INFO 5 +#define EVENT_RACH_IND_TO_SCH 6 +#define EVENT_CRC_IND_TO_SCH 7 +#define EVENT_DL_RLC_BO_INFO_TO_SCH 8 +#define EVENT_ADD_UE_CONFIG_REQ_TO_SCH 9 +#define EVENT_UE_CONFIG_RSP_TO_MAC 10 +#define EVENT_SLOT_IND_TO_SCH 11 +#define EVENT_SHORT_BSR 12 +#define EVENT_UCI_IND_TO_SCH 13 +#define EVENT_MODIFY_UE_CONFIG_REQ_TO_SCH 14 +#define EVENT_UE_RECONFIG_RSP_TO_MAC 15 +#define EVENT_UE_DELETE_REQ_TO_SCH 16 +#define EVENT_UE_DELETE_RSP_TO_MAC 17 +#define EVENT_CELL_DELETE_REQ_TO_SCH 18 +#define EVENT_CELL_DELETE_RSP_TO_MAC 19 +#define EVENT_LONG_BSR 20 +#define EVENT_SLICE_CFG_REQ_TO_SCH 21 +#define EVENT_SLICE_CFG_RSP_TO_MAC 22 +#define EVENT_SLICE_RECFG_REQ_TO_SCH 23 +#define EVENT_SLICE_RECFG_RSP_TO_MAC 24 +#define EVENT_RACH_RESOURCE_REQUEST_TO_SCH 25 +#define EVENT_RACH_RESOURCE_RESPONSE_TO_MAC 26 +#define EVENT_RACH_RESOURCE_RELEASE_TO_SCH 27 +#define EVENT_PAGING_IND_TO_SCH 28 +#define EVENT_DL_PAGING_ALLOC 29 +#define EVENT_DL_REL_HQ_PROC 30 +#define EVENT_DL_HARQ_IND_TO_SCH 31 /*macros*/ #define MAX_SSB_IDX 1 /* forcing it as 1 for now. Right value is 64 */ #define SCH_SSB_MASK_SIZE 1 @@ -57,14 +68,8 @@ #define MAX_NUMBER_OF_CRC_IND_BITS 1 #define MAX_NUMBER_OF_UCI_IND_BITS 1 #define MAX_SR_BITS_IN_BYTES 1 +#define MAX_HARQ_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_BWP 4 /* Max number of BWP per serving cell */ @@ -87,6 +92,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 */ @@ -100,9 +106,9 @@ #define DEFAULT_K2_VALUE_FOR_SCS60 2 #define DEFAULT_K2_VALUE_FOR_SCS120 3 -#define ADD_DELTA_TO_TIME(crntTime, toFill, incr) \ +#define ADD_DELTA_TO_TIME(crntTime, toFill, incr, numOfSlot) \ { \ - if ((crntTime.slot + incr) > (MAX_SLOTS - 1)) \ + if ((crntTime.slot + incr) > (numOfSlot - 1)) \ { \ toFill.sfn = (crntTime.sfn + 1); \ } \ @@ -110,7 +116,7 @@ { \ toFill.sfn = crntTime.sfn; \ } \ - toFill.slot = (crntTime.slot + incr) % MAX_SLOTS; \ + toFill.slot = (crntTime.slot + incr) % numOfSlot; \ if (toFill.sfn >= MAX_SFN) \ { \ toFill.sfn%=MAX_SFN; \ @@ -124,6 +130,12 @@ typedef enum RRC_CONNECTED_USERS_RSRC }SchResourceType; +typedef enum +{ + SLICE_FOUND, + SLICE_NOT_FOUND +}RspCause; + typedef enum { NO_TRANSMISSION, @@ -155,7 +167,7 @@ typedef enum { NOT_APPLICABLE, INVALID_CELLID, - INVALID_UEIDX + INVALID_UEID }ErrorCause; typedef enum @@ -416,6 +428,13 @@ typedef enum BOTH }DlPduType; +typedef enum +{ + DATA_TRANSMISSION_ALLOWED, + STOP_DATA_TRANSMISSION, + RESTART_DATA_TRANSMISSION +}SchDataTransmission; + /*structures*/ typedef struct timeDomainAlloc { @@ -438,6 +457,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 @@ -571,6 +594,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 */ @@ -581,10 +611,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 @@ -597,11 +628,14 @@ typedef struct schRachCfg uint16_t rootSeqIdx; /* Root sequence index */ uint8_t numRootSeq; /* Number of root sequences required for FD */ uint16_t k1; /* Frequency Offset for each FD */ + uint8_t totalNumRaPreamble; /* Total number of RA preambles */ uint8_t ssbPerRach; /* SSB per RACH occassion */ + uint8_t numCbPreamblePerSsb; /* Number of CB preamble per SSB */ uint8_t prachMultCarrBand; /* Presence of Multiple carriers in Band */ uint8_t raContResTmr; /* RA Contention Resoultion Timer */ uint8_t rsrpThreshSsb; /* RSRP Threshold SSB */ uint8_t raRspWindow; /* RA Response Window */ + uint8_t maxMsg3Tx; /* MAximum num of msg3 tx*/ }SchRachCfg; typedef struct schBwpParams @@ -725,20 +759,59 @@ typedef struct schBwpUlCfg SchK2TimingInfoTbl k2InfoTbl; }SchBwpUlCfg; -typedef struct schPolicyMemberList +typedef struct schPlmnInfoList { - Plmn plmn; - Snssai snssai; -}SchPolicyMemberList; + Plmn plmn; + uint8_t numSliceSupport; /* Total slice supporting */ + Snssai **snssai; /* List of supporting snssai*/ +}SchPlmnInfoList; -typedef struct schRrmPolicy +typedef struct schHqCfgParam { - SchResourceType rsrcType; - SchPolicyMemberList memberList; - uint8_t policyMaxRatio; - uint8_t policyMinRatio; - uint8_t policyDedicatedRatio; -}SchRrmPolicy; + uint8_t maxDlDataHqTx; + uint8_t maxMsg4HqTx; + uint8_t maxUlDataHqTx; +}SchHqCfg; + +#ifdef NR_DRX +/* The following list of structures is taken from the DRX-Config section of specification 33.331. */ + +typedef struct schDrxOnDurationTimer +{ + bool onDurationTimerValInMs; + union + { + uint8_t subMilliSeconds; + uint16_t milliSeconds; + }onDurationtimerValue; +}SchDrxOnDurationTimer; + +typedef struct schDrxLongCycleStartOffset +{ + uint16_t drxLongCycleStartOffsetChoice; + uint16_t drxLongCycleStartOffsetVal; +}SchDrxLongCycleStartOffset; + +typedef struct schShortDrx +{ + uint16_t drxShortCycle; + uint8_t drxShortCycleTimer; +}SchShortDrx; + +typedef struct schDrxCfg +{ + SchDrxOnDurationTimer drxOnDurationTimer; + uint16_t drxInactivityTimer; + uint8_t drxHarqRttTimerDl; + uint8_t drxHarqRttTimerUl; + uint16_t drxRetransmissionTimerDl; + uint16_t drxRetransmissionTimerUl; + SchDrxLongCycleStartOffset drxLongCycleStartOffset; + bool shortDrxPres; + SchShortDrx shortDrx; + uint8_t drxSlotOffset; +}SchDrxCfg; +#endif typedef struct schCellCfg { @@ -754,18 +827,18 @@ 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 */ + SchHqCfg schHqCfg; #ifdef NR_TDD TDDCfg tddCfg; /* TDD Cfg */ -#endif +#endif }SchCellCfg; typedef struct schCellCfgCfm { uint16_t cellId; /* Cell Id */ - SchMacRsp rsp; + SchMacRsp rsp; + SchFailureCause cause; }SchCellCfgCfm; typedef struct ssbInfo @@ -863,6 +936,7 @@ typedef struct lcSchInfo typedef struct dlMsgSchedInfo { + bool isRetx; uint8_t numLc; LcSchInfo lcSchInfo[MAX_NUM_LC]; /* Scheduled LC info */ BwpCfg bwp; @@ -962,6 +1036,20 @@ typedef struct dlSchedInfo }DlSchedInfo; +typedef struct dlPageAlloc +{ + uint16_t cellId; + SlotTimingInfo dlPageTime; + uint8_t ssbIdx; + bool shortMsgInd; + uint8_t shortMsg; + BwpCfg bwp; + PdcchCfg pagePdcchCfg; + PdschCfg pagePdschCfg; + uint16_t dlPagePduLen; + uint8_t *dlPagePdu; +}DlPageAlloc; + typedef struct tbInfo { uint8_t qamOrder; /* Modulation Order */ @@ -1113,6 +1201,10 @@ typedef struct schMacCellGrpCfg SchSchedReqCfg schedReqCfg; SchTagCfg tagCfg; SchPhrCfg phrCfg; /* To be used only if phrCfgSetupPres is true */ +#ifdef NR_DRX + bool drxCfgPresent; + SchDrxCfg drxCfg; /* Drx configuration */ +#endif }SchMacCellGrpCfg; /* Physical Cell Group Configuration */ @@ -1434,19 +1526,39 @@ typedef struct schUlBwpInfo uint8_t bwpId; }SchUlBwpInfo; +/* Serving cell configuration */ +typedef struct schServCellRecfgInfo +{ + SchInitalDlBwp initDlBwp; + uint8_t numDlBwpToAddOrMod; + SchDlBwpInfo dlBwpToAddOrModList[MAX_NUM_BWP]; + uint8_t numDlBwpToRel; + SchDlBwpInfo dlBwpToRelList[MAX_NUM_BWP]; + uint8_t firstActvDlBwpId; + uint8_t defaultDlBwpId; + uint8_t *bwpInactivityTmr; + SchPdschServCellCfg pdschServCellCfg; + SchInitialUlBwp initUlBwp; + uint8_t numUlBwpToAddOrMod; + SchUlBwpInfo ulBwpToAddOrModList[MAX_NUM_BWP]; + uint8_t numUlBwpToRel; + SchUlBwpInfo ulBwpToRelList[MAX_NUM_BWP]; + uint8_t firstActvUlBwpId; +}SchServCellRecfgInfo; + /* Serving cell configuration */ typedef struct schServCellCfgInfo { SchInitalDlBwp initDlBwp; uint8_t numDlBwpToAdd; - SchDlBwpInfo DlBwpToAddList[MAX_NUM_BWP]; + SchDlBwpInfo dlBwpToAddList[MAX_NUM_BWP]; uint8_t firstActvDlBwpId; uint8_t defaultDlBwpId; uint8_t *bwpInactivityTmr; SchPdschServCellCfg pdschServCellCfg; SchInitialUlBwp initUlBwp; uint8_t numUlBwpToAdd; - SchUlBwpInfo UlBwpToAddList[MAX_NUM_BWP]; + SchUlBwpInfo ulBwpToAddList[MAX_NUM_BWP]; uint8_t firstActvUlBwpId; }SchServCellCfgInfo; @@ -1507,6 +1619,13 @@ typedef struct schSpCellCfg SchServCellCfgInfo servCellCfg; }SchSpCellCfg; +/* Special cell Reconfiguration */ +typedef struct schSpCellRecfg +{ + uint8_t servCellIdx; + SchServCellRecfgInfo servCellRecfg; +}SchSpCellRecfg; + /* Uplink logical channel configuration */ typedef struct SchUlLcCfg { @@ -1526,10 +1645,9 @@ typedef struct schDlLcCfg /* Logical Channel configuration */ typedef struct schLcCfg { - ConfigType configType; uint8_t lcId; - SchDrbQosInfo *drbQos; Snssai *snssai; + SchDrbQosInfo *drbQos; SchDlLcCfg dlLcCfg; SchUlLcCfg ulLcCfg; }SchLcCfg; @@ -1548,9 +1666,11 @@ typedef struct schModulationInfo }SchModulationInfo; /* UE configuration */ -typedef struct schUeCfg +typedef struct schUeCfgReq { uint16_t cellId; + uint8_t ueId; + uint8_t beamIdx; uint16_t crnti; bool macCellGrpCfgPres; SchMacCellGrpCfg macCellGrpCfg; @@ -1561,19 +1681,88 @@ typedef struct schUeCfg SchAmbrCfg *ambrCfg; SchModulationInfo dlModInfo; SchModulationInfo ulModInfo; - uint8_t numLcs; + uint8_t numLcsToAdd; SchLcCfg schLcCfg[MAX_NUM_LC]; -}SchUeCfg; +}SchUeCfgReq; + +/* UE Re-configuration */ +typedef struct schUeRecfgReq +{ + uint16_t cellId; + uint8_t ueId; + uint8_t beamIdx; + uint16_t crnti; + bool macCellGrpRecfgPres; + SchMacCellGrpCfg macCellGrpRecfg; + bool phyCellGrpRecfgPres; + SchPhyCellGrpCfg phyCellGrpRecfg; + bool spCellRecfgPres; + SchSpCellRecfg spCellRecfg; + SchAmbrCfg *ambrRecfg; + SchModulationInfo dlModInfo; + SchModulationInfo ulModInfo; + uint8_t numLcsToAdd; + SchLcCfg schLcCfgAdd[MAX_NUM_LC]; + uint8_t numLcsToDel; + uint8_t lcIdToDel[MAX_NUM_LC]; + uint8_t numLcsToMod; + SchLcCfg schLcCfgMod[MAX_NUM_LC]; + SchDataTransmission dataTransmissionInfo; +#ifdef NR_DRX + bool drxConfigIndicatorRelease; +#endif +}SchUeRecfgReq; typedef struct schUeCfgRsp { - uint16_t ueIdx; uint16_t cellId; + uint8_t beamIdx; + uint16_t ueId; uint16_t crnti; SchMacRsp rsp; SchFailureCause cause; }SchUeCfgRsp; +/*As per WG8, UE ReCFG and UECFG have same structure definition*/ +typedef struct schUeCfgRsp SchUeRecfgRsp; + +typedef struct schRachRsrcReq +{ + SlotTimingInfo slotInd; + uint16_t cellId; + uint16_t crnti; + uint8_t numSsb; + uint8_t ssbIdx[MAX_NUM_SSB]; +}SchRachRsrcReq; + +typedef struct schCfraSsbResource +{ + uint8_t ssbIdx; + uint8_t raPreambleIdx; +}SchCfraSsbResource; + +typedef struct schCfraRsrc +{ + uint8_t numSsb; + SchCfraSsbResource ssbResource[MAX_NUM_SSB]; +}SchCfraResource; + +typedef struct schRachRsrcRsp +{ + uint16_t cellId; + uint16_t crnti; + SchMacRsp result; + SchCfraResource cfraResource; +}SchRachRsrcRsp; + +typedef struct schRachRsrcRel +{ + SlotTimingInfo slotInd; + uint16_t cellId; + uint16_t crnti; + SchCfraResource cfraResource; +}SchRachRsrcRel; + typedef struct schUeDelete { uint16_t cellId; @@ -1588,16 +1777,17 @@ typedef struct schUeDeleteRsp ErrorCause cause; }SchUeDeleteRsp; -typedef struct schCellDelete +typedef struct schCellDeleteReq { uint16_t cellId; -}SchCellDelete; +}SchCellDeleteReq; typedef struct schCellDeleteRsp { - uint16_t cellId; - SchMacRsp rsp; + uint16_t cellId; + SchMacRsp rsp; + SchFailureCause cause; }SchCellDeleteRsp; typedef struct dataVolInfo @@ -1624,8 +1814,74 @@ typedef struct srUciIndInfo uint8_t srPayload[MAX_SR_BITS_IN_BYTES]; }SrUciIndInfo; -/* function pointers */ +typedef struct dlHarqInd +{ + uint16_t cellId; + uint16_t crnti; + SlotTimingInfo slotInd; + uint8_t numHarq; + uint8_t harqPayload[MAX_HARQ_BITS_IN_BYTES]; +}DlHarqInd; + +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 schSliceCfgRsp +{ + uint8_t numSliceCfgRsp; + SliceRsp **listOfSliceCfgRsp; +}SchSliceCfgRsp; +/*As per ORAN-WG8, Slice Cfg and Recfg are same structures*/ +typedef struct schSliceCfgReq SchSliceRecfgReq; +typedef struct schSliceCfgRsp SchSliceRecfgRsp; + +typedef struct schPageInd +{ + uint16_t cellId; + uint16_t pf; + uint8_t i_s; + uint16_t pduLen; + uint8_t *pagePdu; +}SchPageInd; + +typedef struct schUeHqInfo +{ + uint16_t crnti; + uint8_t hqProcId; +}SchUeHqInfo; + +typedef struct schRlsHqInfo +{ + uint16_t cellId; + uint8_t numUes; + SchUeHqInfo *ueHqInfo; +}SchRlsHqInfo; + +/* function pointers */ typedef uint8_t (*SchCellCfgCfmFunc) ARGS(( Pst *pst, /* Post Structure */ SchCellCfgCfm *schCellCfgCfm /* Cell Cfg Cfm */ @@ -1641,6 +1897,11 @@ typedef uint8_t (*SchMacDlAllocFunc) ARGS(( DlSchedInfo *dlSchedInfo /* dl allocation Info */ )); +typedef uint8_t (*SchMacDlPageAllocFunc) ARGS(( + Pst *pst, /* Post Structure */ + DlPageAlloc *dlPageAlloc /* dl Page allocation Info */ + )); + typedef uint8_t (*SchMacUlSchInfoFunc) ARGS(( Pst *pst, /* Post Structure */ UlSchedInfo *ulSchedInfo /* UL Alloc Sch Info */ @@ -1660,7 +1921,7 @@ typedef uint8_t (*MacSchDlRlcBoInfoFunc) ARGS(( typedef uint8_t (*MacSchAddUeConfigReqFunc) ARGS(( Pst *pst, /* Post structure */ - SchUeCfg *ueCfgToSch)); /* Scheduler UE Cfg */ + SchUeCfgReq *ueCfgToSch)); /* Scheduler UE Cfg */ typedef uint8_t (*SchUeCfgRspFunc) ARGS(( Pst *pst, /* Post structure */ @@ -1675,17 +1936,33 @@ typedef uint8_t (*MacSchBsrFunc) ARGS(( UlBufferStatusRptInd *bsrInd )); +typedef uint8_t (*MacSchDlHarqIndFunc) ARGS(( + Pst *pst, /* Post structure */ + DlHarqInd *dlHarqInd)); /* Dl HARQ IND Info */ + typedef uint8_t (*MacSchSrUciIndFunc) ARGS(( Pst *pst, /* Post structure */ SrUciIndInfo *uciInd)); /* UCI IND Info */ typedef uint8_t (*MacSchModUeConfigReqFunc) ARGS(( Pst *pst, /* Post structure */ - SchUeCfg *ueCfgToSch)); /* Scheduler UE Cfg */ + SchUeRecfgReq *ueRecfgToSch)); /* Scheduler UE Recfg */ -typedef uint8_t (*SchUeReCfgRspFunc) ARGS(( +typedef uint8_t (*SchUeRecfgRspFunc) ARGS(( Pst *pst, /* Post structure */ - SchUeCfgRsp *cfgRsp)); /* Scheduler UE Cfg response */ + SchUeRecfgRsp *recfgRsp)); /* Scheduler UE Cfg response */ + +typedef uint8_t (*MacSchRachRsrcReqFunc) ARGS(( + Pst *pst, /* Post structure */ + SchRachRsrcReq *schRachRsrcReq)); /* RACH resource request to SCH */ + +typedef uint8_t (*SchRachRsrcRspFunc) ARGS(( + Pst *pst, /* Post structure */ + SchRachRsrcRsp *schRachRsrcRsp)); /* RACH resource request to MAC */ + +typedef uint8_t (*MacSchRachRsrcRelFunc) ARGS(( + Pst *pst, /* Post structure */ + SchRachRsrcRel *schRachRsrcRel)); /* RACH resource release to SCH */ typedef uint8_t (*MacSchUeDeleteReqFunc) ARGS(( Pst *pst, /* Post structure */ @@ -1697,12 +1974,38 @@ typedef uint8_t (*SchUeDeleteRspFunc) ARGS(( typedef uint8_t (*MacSchCellDeleteReqFunc) ARGS(( Pst *pst, /* Post structure */ - SchCellDelete *schCellDelete)); /*Scheduler UE Del*/ + SchCellDeleteReq *schCellDelete)); /*Scheduler UE Del*/ 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 */ + SchSliceRecfgReq *schSliceRecfgReq)); /* Scheduler Slice Recfg Req */ + +typedef uint8_t (*SchSliceRecfgRspFunc) ARGS(( + Pst *pst, /* Post Structure */ + SchSliceRecfgRsp *schSliceRecfgRsp /* Cell Recfg Cfm */ + )); + +typedef uint8_t (*MacSchPagingIndFunc) ARGS(( + Pst *pst, /* Post structure */ + SchPageInd *schPagingInd)); /* Paging Indication */ + +typedef uint8_t (*SchMacDlReleaseHarqFunc) ARGS(( + Pst *pst, /* Post structure */ + SchRlsHqInfo *rlsHqInfo)); /* Release Harq proc */ + /* function declarations */ uint8_t packMacSchSlotInd(Pst *pst, SlotTimingInfo *slotInd); uint8_t packSchMacDlAlloc(Pst *pst, DlSchedInfo *dlSchedInfo); @@ -1721,30 +2024,53 @@ uint8_t packMacSchCrcInd(Pst *pst, CrcIndInfo *crcInd); uint8_t MacSchCrcInd(Pst *pst, CrcIndInfo *crcInd); uint8_t packMacSchDlRlcBoInfo(Pst *pst, DlRlcBoInfo *dlBoInfo); uint8_t MacSchDlRlcBoInfo(Pst *pst, DlRlcBoInfo *dlBoInfo); -uint8_t packMacSchAddUeConfigReq(Pst *pst, SchUeCfg *ueCfgToSch); -uint8_t MacSchAddUeConfigReq(Pst *pst, SchUeCfg *ueCfgToSch); +uint8_t packMacSchAddUeConfigReq(Pst *pst, SchUeCfgReq *ueCfgToSch); +uint8_t MacSchAddUeConfigReq(Pst *pst, SchUeCfgReq *ueCfgToSch); uint8_t packSchUeCfgRsp(Pst *pst, SchUeCfgRsp *cfgRsp); uint8_t MacProcSchUeCfgRsp(Pst *pst, SchUeCfgRsp *cfgRsp); +uint8_t packSchUeRecfgRsp(Pst *pst, SchUeRecfgRsp *cfgRsp); +uint8_t MacProcSchUeRecfgRsp(Pst *pst, SchUeRecfgRsp *reCfgRsp); uint8_t MacSchSlotInd ARGS((Pst * pst, SlotTimingInfo * slotInd)); uint8_t packMacSchSlotInd(Pst * pst, SlotTimingInfo * slotInd); uint8_t unpackMacSchSlotInd(MacSchSlotIndFunc func, Pst *pst, Buffer *mBuf); uint8_t packMacSchBsr(Pst *pst, UlBufferStatusRptInd *bsrInd); uint8_t MacSchBsr(Pst *pst, UlBufferStatusRptInd *bsrInd); uint8_t packMacSchSrUciInd(Pst *pst, SrUciIndInfo *uciInd); +uint8_t packMacSchDlHarqInd(Pst *pst, DlHarqInd *dlHarqInd); +uint8_t MacSchDlHarqInd(Pst *pst, DlHarqInd *dlHarqInd); uint8_t MacSchSrUciInd(Pst *pst, SrUciIndInfo *uciInd); -uint8_t packMacSchModUeConfigReq(Pst *pst, SchUeCfg *ueCfgToSch); -uint8_t MacSchModUeConfigReq(Pst *pst, SchUeCfg *ueCfgToSch); -uint8_t packSchUeReconfigRsp(Pst *pst, SchUeCfgRsp *cfgRsp); -uint8_t MacProcSchUeReconfigRsp(Pst *pst, SchUeCfgRsp *cfgRsp); +uint8_t packMacSchModUeConfigReq(Pst *pst, SchUeRecfgReq *ueRecfgToSch); +uint8_t MacSchModUeConfigReq(Pst *pst, SchUeRecfgReq *ueRecfgToSch); +uint8_t packSchUeReconfigRsp(Pst *pst, SchUeRecfgRsp *recfgRsp); +uint8_t MacProcSchUeReconfigRsp(Pst *pst, SchUeRecfgRsp *recfgRsp); +uint8_t packMacSchRachRsrcReq(Pst *pst, SchRachRsrcReq *schRachRsrcReq); +uint8_t MacSchRachRsrcReq(Pst *pst, SchRachRsrcReq *schRachRsrcReq); +uint8_t packSchRachRsrcRsp(Pst *pst, SchRachRsrcRsp *schRachRsrcRsp); +uint8_t MacProcSchRachRsrcRsp(Pst *pst, SchRachRsrcRsp *schRachRsrcRsp); +uint8_t packMacSchRachRsrcRel(Pst *pst, SchRachRsrcRel *schRachRsrcRel); +uint8_t MacSchRachRsrcRel(Pst *pst, SchRachRsrcRel *schRachRsrcRel); 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 packMacSchCellDeleteReq(Pst *pst, SchCellDeleteReq *schCellDelete); +uint8_t MacSchCellDeleteReq(Pst *pst, SchCellDeleteReq *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, SchSliceRecfgReq *recfgReq); +uint8_t MacSchSliceRecfgReq(Pst *pst, SchSliceRecfgReq *schSliceRecfgReq); +uint8_t packSchSliceRecfgRsp(Pst *pst, SchSliceRecfgRsp *schSliceRecfgRsp); +uint8_t MacProcSchSliceRecfgRsp(Pst *pst, SchSliceRecfgRsp *sliceRecfgrsp); +uint8_t packMacSchPagingInd(Pst *pst, SchPageInd *pageInd); +uint8_t MacSchPagingInd(Pst *pst, SchPageInd *pageInd); +uint8_t packSchMacDlPageAlloc(Pst *pst, DlPageAlloc *dlPageAlloc); +uint8_t MacProcDlPageAlloc(Pst *pst, DlPageAlloc *dlPageAlloc); +uint8_t packSchMacDlReleaseHarq(Pst *pst, SchRlsHqInfo *rlsHqInfo); +uint8_t MacSchReleaseDlHarqProc(Pst *pst, SchRlsHqInfo *rlsHqInfo); /********************************************************************** End of file **********************************************************************/