X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_mac_inf.h;h=24bbacbc0da3f75313df91bc4899000c2396e8b8;hb=4a4be152a02505f732a92caa2a5592f2ec70b9ae;hp=efb935da6f7910651c84760d2f0d37279a597eb1;hpb=631549c756e38e4f42032059f40de4d030c1dddc;p=o-du%2Fl2.git diff --git a/src/cm/du_app_mac_inf.h b/src/cm/du_app_mac_inf.h index efb935da6..24bbacbc0 100644 --- a/src/cm/du_app_mac_inf.h +++ b/src/cm/du_app_mac_inf.h @@ -24,7 +24,6 @@ #define NUM_SSB 1 /* max value is 64 */ #define SSB_MASK_SIZE 1 /* SSB mask size is 32bit for sub6 */ -#define SIB1_NEW_TX_PERIOD 160 #define SIB1_REPETITION_PERIOD 20 #define CORESET_0_INDEX 0 #define CORESET_1_INDEX 1 @@ -38,7 +37,6 @@ #define SEARCHSPACE_4_INDEX 4 #define SS_MONITORING_SLOT_SL1 0 /* all slots */ #define SS_MONITORING_SYMBOL 0x2000; /* symbol-0, set 14th bit */ -#define SIB1_MCS 4 /* Macro for Ue Context */ #define MAX_NUM_SR_CFG_PER_CELL_GRP 8 /* Max number of scheduling request config per cell group */ @@ -49,10 +47,6 @@ #define MONITORING_SYMB_WITHIN_SLOT_SIZE 2 /* i.e. 2 bytes because size of monitoring symbols within slot is 14 bits */ #define MAX_NUM_DL_ALLOC 16 /* Max number of pdsch time domain downlink allocation */ #define MAX_NUM_UL_ALLOC 16 /* Max number of pusch time domain uplink allocation */ -#define SD_SIZE 3 /* Max size of Slice Differentiator in S-NSSAI */ - -#define MAX_NUM_SRB 8 -#define MAX_NUM_DRB 64 #define MAX_NUM_SCELL 32 /* PUCCH Configuration Macro */ @@ -77,17 +71,51 @@ #define EVENT_MAC_UE_CREATE_RSP 209 #define EVENT_MAC_UE_RECONFIG_REQ 210 #define EVENT_MAC_UE_RECONFIG_RSP 211 +#define EVENT_MAC_UE_DELETE_REQ 212 +#define EVENT_MAC_UE_DELETE_RSP 213 +#define EVENT_MAC_CELL_DELETE_REQ 214 +#define EVENT_MAC_CELL_DELETE_RSP 215 +#define EVENT_MAC_SLICE_CFG_REQ 216 +#define EVENT_MAC_SLICE_CFG_RSP 217 +#define EVENT_MAC_SLICE_RECFG_REQ 218 +#define EVENT_MAC_SLICE_RECFG_RSP 219 +#define EVENT_MAC_SLOT_IND 220 +#define EVENT_MAC_RACH_RESOURCE_REQ 221 +#define EVENT_MAC_RACH_RESOURCE_RSP 222 +#define EVENT_MAC_RACH_RESOURCE_REL 223 +#define EVENT_MAC_DL_PCCH_IND 224 #define BSR_PERIODIC_TIMER_SF_10 10 #define BSR_RETX_TIMER_SF_320 320 #define BSR_SR_DELAY_TMR_2560 2560 +#define PAGING_SCHED_DELTA 4 + typedef enum { MAC_DU_APP_RSP_NOK, MAC_DU_APP_RSP_OK }MacRsp; +typedef enum +{ + SLICE_PRESENT, + SLICE_NOT_PRESENT +}RspReason; + +typedef enum +{ + DEL_SUCCESSFUL, + CELLID_INVALID, + UEID_INVALID +}UeDeleteStatus; + +typedef enum +{ + SUCCESSFUL_RSP, + CELL_ID_INVALID +}CellDeleteStatus; + typedef enum { DUP_MODE_FDD, @@ -475,6 +503,20 @@ typedef enum MCS_TABLE_QAM64_LOW_SE }McsTable; +typedef enum +{ + RSRC_PRB, + RSRC_DRB, + RSRC_RRC_CONNECTED_USERS +}ResourceType; + +typedef enum +{ + TRANSMISSION_ALLOWED, + STOP_TRANSMISSION, + RESTART_TRANSMISSION +}DataTransmissionAction; + typedef struct failureCause { CauseGrp type; @@ -534,7 +576,9 @@ typedef struct prachCfg uint8_t msg1Fdm; /* PRACH FDM (1,2,4,8) */ uint8_t rootSeqLen; /* Root sequence length */ PrachFdmInfo fdm[8]; /* FDM info */ + uint8_t totalNumRaPreamble; /* Total number of RA preambles */ uint8_t ssbPerRach; /* SSB per RACH occassion */ + uint8_t numCbPreamblePerSsb; /* Number of CB preamble per SSB */ bool prachMultCarrBand; /* Multiple carriers in Band */ uint8_t prachRestrictedSet; /* Support for PRACH restricted set */ uint8_t raContResTmr; /* RA Contention Resoultion Timer */ @@ -542,15 +586,22 @@ typedef struct prachCfg uint8_t raRspWindow; /* RA Response Window */ }PrachCfg; +typedef struct schPageCfg +{ + uint8_t numPO; /*Derived from Ns*/ + bool poPresent; /*Whether FirstPDCCH-MonitoringPO is present or not*/ + uint16_t pagingOcc[MAX_PO_PER_PF]; /*FirstPDCCH-Monitoring Paging Occasion*/ +}SchPageCfg; + typedef struct sib1CellCfg { uint8_t *sib1Pdu; 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 sib1Mcs; + SchPageCfg pagingCfg; } Sib1CellCfg; typedef struct bwpParams @@ -587,12 +638,19 @@ typedef struct pdcchConfigCommon uint8_t raSearchSpaceId; }PdcchConfigCommon; -typedef struct pdschConfigCommon +typedef struct pdschCfgCommTimeDomRsrcAlloc { uint8_t k0; uint8_t mappingType; uint8_t startSymbol; uint8_t lengthSymbol; +}PdschCfgCommTimeDomRsrcAlloc; + +typedef struct pdschConfigCommon +{ + uint8_t numTimeDomAlloc; + /* PDSCH time domain DL resource allocation list */ + PdschCfgCommTimeDomRsrcAlloc timeDomRsrcAllocList[MAX_NUM_DL_ALLOC]; }PdschConfigCommon; typedef struct pucchConfigCommon @@ -601,13 +659,22 @@ typedef struct pucchConfigCommon uint8_t pucchGroupHopping; }PucchConfigCommon; +/* PUSCH Time Domain Resource Allocation */ +typedef struct puschTimeDomRsrcAlloc +{ + uint8_t k2; + CommonMappingType mappingType; + uint8_t startSymbol; + uint8_t symbolLength; + uint8_t startSymbolAndLength; +}PuschTimeDomRsrcAlloc; + + typedef struct puschConfigCommon { /* PUSCH-TimeDomainResourceAllocation info */ - uint8_t k2; - uint8_t mappingType; - uint8_t startSymbol; - uint8_t lengthSymbol; + uint8_t numTimeDomRsrcAlloc; + PuschTimeDomRsrcAlloc timeDomRsrcAllocList[MAX_NUM_UL_ALLOC]; /* PUSCH time domain UL resource allocation list */ }PuschConfigCommon; typedef struct bwpDlConfig @@ -625,6 +692,52 @@ typedef struct bwpUlConfig PuschConfigCommon puschCommon; }BwpUlConfig; +typedef struct plmnInfoList +{ + Plmn plmn; + uint8_t numSupportedSlice; /* Total slice supporting */ + Snssai **snssai; /* List of supporting snssai*/ +}PlmnInfoList; + +#ifdef NR_DRX +/* The following list of structures is taken from the DRX-Config section of specification 33.331. */ +typedef struct drxOnDurationTimer +{ + bool onDurationTimerValInMs; + union + { + uint8_t subMilliSeconds; + uint16_t milliSeconds; + }onDurationtimerValue; +}DrxOnDurationTimer; + +typedef struct drxLongCycleStartOffset +{ + uint16_t drxLongCycleStartOffsetChoice; + uint16_t drxLongCycleStartOffsetVal; +}DrxLongCycleStartOffset; + +typedef struct shortDrx +{ + uint16_t drxShortCycle; + uint8_t drxShortCycleTimer; +}ShortDrx; + +typedef struct drxCfg +{ + DrxOnDurationTimer drxOnDurationTimer; + uint16_t drxInactivityTimer; + uint8_t drxHarqRttTimerDl; + uint8_t drxHarqRttTimerUl; + uint16_t drxRetransmissionTimerDl; + uint16_t drxRetransmissionTimerUl; + DrxLongCycleStartOffset drxLongCycleStartOffset; + bool shortDrxPres; + ShortDrx shortDrx; + uint8_t drxSlotOffset; +}DrxCfg; +#endif + typedef struct macCellCfg { uint16_t cellId; /* Cell Id */ @@ -645,6 +758,8 @@ typedef struct macCellCfg BwpDlConfig initialDlBwp; /* Initial DL BWP */ BwpUlConfig initialUlBwp; /* Initial UL BWP */ uint8_t dmrsTypeAPos; /* DMRS Type A position */ + PlmnInfoList plmnInfoList; /* Consits of PlmnId and Snssai list */ + //RrmPolicy *rrmPolicy; /* RRM policy details */ }MacCellCfg; typedef struct macCellCfgCfm @@ -727,6 +842,10 @@ typedef struct macCellGrpCfg BsrTmrCfg bsrTmrCfg; bool phrCfgSetupPres; /* true/false: phrCfgSetup/phrCfgRelease */ PhrCfg phrCfg; +#ifdef NR_DRX + bool drxCfgPresent; + DrxCfg drxCfg; +#endif }MacCellGrpCfg; typedef struct phyCellGrpCfg @@ -778,6 +897,7 @@ typedef struct pdcchConfig /* PDSCH time domain resource allocation */ typedef struct pdschTimeDomRsrcAlloc { + uint8_t *k0; CommonMappingType mappingType; uint8_t startSymbol; uint8_t symbolLength; @@ -922,8 +1042,8 @@ typedef struct pucchResrcCfg typedef struct pucchFormatCfg { - uint8_t interSlotFreqHop; - uint8_t addDmrs; + bool interSlotFreqHop; + bool addDmrs; uint8_t maxCodeRate; uint8_t numSlots; bool pi2BPSK; @@ -1028,16 +1148,6 @@ typedef struct dmrsUlCfg TransPrecodDisabled transPrecodDisabled; /* Transform precoding disabled */ }DmrsUlCfg; -/* PUSCH Time Domain Resource Allocation */ -typedef struct puschTimeDomRsrcAlloc -{ - uint8_t k2; - CommonMappingType mappingType; - uint8_t startSymbol; - uint8_t symbolLength; - uint8_t startSymbolAndLength; -}PuschTimeDomRsrcAlloc; - /* PUSCH Configuration */ typedef struct puschCfg { @@ -1069,14 +1179,14 @@ typedef struct servCellCfgInfo { InitialDlBwp initDlBwp; uint8_t numDlBwpToAdd; - DlBwpInfo DlBwpToAddList[MAX_NUM_BWP]; + DlBwpInfo dlBwpToAddList[MAX_NUM_BWP]; uint8_t firstActvDlBwpId; uint8_t defaultDlBwpId; uint8_t *bwpInactivityTmr; PdschServCellCfg pdschServCellCfg; InitialUlBwp initUlBwp; uint8_t numUlBwpToAdd; - UlBwpInfo UlBwpToAddList[MAX_NUM_BWP]; + UlBwpInfo ulBwpToAddList[MAX_NUM_BWP]; uint8_t firstActvUlBwpId; }ServCellCfgInfo; @@ -1087,19 +1197,38 @@ typedef struct spCellCfg ServCellCfgInfo servCellCfg; }SpCellCfg; +/* Serving cell Re-configuration */ +typedef struct servCellRecfgInfo +{ + InitialDlBwp initDlBwp; + uint8_t numDlBwpToAddOrMod; + DlBwpInfo dlBwpToAddOrModList[MAX_NUM_BWP]; + uint8_t numDlBwpToRel; + DlBwpInfo dlBwpToRelList[MAX_NUM_BWP]; + uint8_t firstActvDlBwpId; + uint8_t defaultDlBwpId; + uint8_t *bwpInactivityTmr; + PdschServCellCfg pdschServCellCfg; + InitialUlBwp initUlBwp; + uint8_t numUlBwpToAddOrMod; + UlBwpInfo ulBwpToAddOrModList[MAX_NUM_BWP]; + uint8_t numUlBwpToRel; + UlBwpInfo ulBwpToRelList[MAX_NUM_BWP]; + uint8_t firstActvUlBwpId; +}ServCellRecfgInfo; + +/* Special cell Re-configuration */ +typedef struct spCellRecfg +{ + uint8_t servCellIdx; + ServCellRecfgInfo servCellCfg; +}SpCellRecfg; + typedef struct ambrCfg { uint32_t ulBr; /* UL Bit rate */ - uint32_t dlBr; /* DL Bit rate */ }AmbrCfg; -/* Single Network Slice Selection assistance Info */ -typedef struct snssai -{ - uint8_t sst; /* Slice Type */ - uint8_t sd[SD_SIZE]; /* Slice Differentiator */ -}Snssai; - typedef struct nonDynFiveQi { uint16_t fiveQi; @@ -1158,17 +1287,16 @@ typedef struct ulLcCfg BucketSizeDur bsd; // bucketSizeDuration }UlLcCfg; -typedef struct duLcCfg +typedef struct dlLcCfg { LcPriority lcp; // logical Channel Prioritization }DlLcCfg; typedef struct lcCfg { - ConfigType configType; uint8_t lcId; - DrbQosInfo *drbQos; Snssai *snssai; + DrbQosInfo *drbQos; bool ulLcCfgPres; UlLcCfg ulLcCfg; DlLcCfg dlLcCfg; @@ -1183,20 +1311,50 @@ typedef struct modulationInfo typedef struct macUeCfg { - uint16_t cellId; - uint8_t ueIdx; - uint16_t crnti; - MacCellGrpCfg macCellGrpCfg; - PhyCellGrpCfg phyCellGrpCfg; - SpCellCfg spCellCfg; - AmbrCfg *ambrCfg; - ModulationInfo dlModInfo; /* DL modulation info */ - ModulationInfo ulModInfo; /* UL modulation info */ - uint8_t numLcs; - LcCfg lcCfgList[MAX_NUM_LC]; - UeCfgState macUeCfgState; /* InActive / Completed */ + uint16_t cellId; + uint8_t ueId; + uint16_t crnti; + bool macCellGrpCfgPres; + MacCellGrpCfg macCellGrpCfg; + bool phyCellGrpCfgPres; + PhyCellGrpCfg phyCellGrpCfg; + bool spCellCfgPres; + SpCellCfg spCellCfg; + AmbrCfg *ambrCfg; + ModulationInfo dlModInfo; /* DL modulation info */ + ModulationInfo ulModInfo; /* UL modulation info */ + uint8_t numLcs; + LcCfg lcCfgList[MAX_NUM_LC]; }MacUeCfg; +/* UE Re-configuration */ +typedef struct macUeRecfg +{ + uint16_t cellId; + uint8_t ueId; + uint8_t beamIdx; + uint16_t crnti; + bool macCellGrpRecfgPres; + MacCellGrpCfg macCellGrpRecfg; + bool phyCellGrpRecfgPres; + PhyCellGrpCfg phyCellGrpRecfg; + bool spCellRecfgPres; + SpCellRecfg spCellRecfg; + AmbrCfg *ambrRecfg; + ModulationInfo dlModInfo; + ModulationInfo ulModInfo; + uint8_t numLcsToAdd; + LcCfg lcCfgAdd[MAX_NUM_LC]; + uint8_t numLcsToDel; + uint8_t lcIdToDel[MAX_NUM_LC]; + uint8_t numLcsToMod; + LcCfg lcCfgMod[MAX_NUM_LC]; + DataTransmissionAction transmissionAction; +#ifdef NR_DRX + bool drxConfigIndicatorRelease; +#endif +}MacUeRecfg; + typedef struct nrcgi { Plmn plmn; @@ -1224,7 +1382,7 @@ typedef struct sCellFailInfo typedef struct ueCfgRsp { uint16_t cellId; - uint16_t ueIdx; + uint16_t ueId; MacRsp result; uint8_t numSRBFailed; /* valid values : 0 to MAX_NUM_SRB */ SRBFailInfo *failedSRBlisti; @@ -1232,13 +1390,137 @@ typedef struct ueCfgRsp DRBFailInfo *failedDRBlist; uint8_t numSCellFailed; /* valid values : 0 to MAX_NUM_SCELL */ SCellFailInfo *failedSCellList; + uint8_t numDRBModFailed; /* valid values : 0 to MAX_NUM_DRB */ + DRBFailInfo *failedDRBModlist; }MacUeCfgRsp; -/* Functions for slot Ind from MAC to DU APP*/ +typedef struct ueCfgRsp MacUeRecfgRsp; + +typedef struct rachRsrcReq +{ + uint16_t cellId; + uint16_t ueId; + uint8_t numSsb; + uint8_t ssbIdx[MAX_NUM_SSB]; +}MacRachRsrcReq; + +typedef struct macCfraSsbResource +{ + uint8_t ssbIdx; + uint8_t raPreambleIdx; +}MacCfraSsbResource; + +typedef struct macCfraResource +{ + uint8_t numSsb; + MacCfraSsbResource ssbResource[MAX_NUM_SSB]; +}MacCfraResource; + +typedef struct macRachRsrcRsp +{ + uint16_t cellId; + uint16_t ueId; + MacRsp result; + uint16_t newCrnti; /* This parameter maps to 3GPP TS 38.331 newUE-Identity */ + MacCfraResource cfraResource; +}MacRachRsrcRsp; + +typedef struct macRachRsrcRel +{ + uint16_t cellId; + uint16_t ueId; + uint16_t crnti; +}MacRachRsrcRel; + +typedef struct ueDelete +{ + uint16_t cellId; + uint8_t ueId; + uint16_t crnti; +}MacUeDelete; + +typedef struct ueDeleteRsp +{ + uint16_t cellId; + uint8_t ueId; + UeDeleteStatus result; +}MacUeDeleteRsp; + +typedef struct macCellDeleteReq +{ + uint16_t cellId; +}MacCellDeleteReq; + +typedef struct macCellDeleteRsp +{ + uint16_t cellId; + CellDeleteStatus result; +}MacCellDeleteRsp; + +typedef struct macSliceRsp +{ + Snssai snssai; + MacRsp rsp; + RspReason cause; +}MacSliceRsp; + +typedef struct rrmPolicyRatio +{ + uint8_t policyMaxRatio; + uint8_t policyMinRatio; + uint8_t policyDedicatedRatio; +}RrmPolicyRatio; + +typedef struct macSliceRrmPolicy +{ + Snssai snssai; + RrmPolicyRatio *rrmPolicyRatio; +}MacSliceRrmPolicy; + +typedef struct macSliceCfgReq +{ + uint8_t numOfConfiguredSlice; + MacSliceRrmPolicy **listOfSliceCfg; +}MacSliceCfgReq; + +typedef struct macSliceCfgRsp +{ + uint8_t numSliceCfgRsp; + MacSliceRsp **listOfSliceCfgRsp; +}MacSliceCfgRsp; + +/*As per ORAN-WG8, Slice Cfg and ReCfg are same structures*/ +typedef struct macSliceCfgReq MacSliceRecfgReq; +typedef struct macSliceCfgRsp MacSliceRecfgRsp; + +typedef struct dlPcchInd +{ + uint16_t cellId; + uint16_t pf; + uint8_t i_s; + uint16_t pduLen; + uint8_t *pcchPdu; +}DlPcchInd; + +typedef struct cellInfo +{ + SlotTimingInfo slotInfo; + uint16_t cellId; +}CellInfo; + +typedef struct cellInfo CellStartInfo; +typedef struct cellInfo CellStopInfo; + +/* Functions for CellUp Ind from MAC to DU APP*/ typedef uint8_t (*DuMacCellUpInd) ARGS(( Pst *pst, OduCellId *cellId )); +/* Functions for slot Ind from MAC to DU APP*/ +typedef uint8_t (*DuMacSlotInd) ARGS(( + Pst *pst, + SlotTimingInfo *slotIndInfo)); + /* Functions for stop Ind from MAC to DU APP*/ typedef uint8_t (*DuMacStopInd) ARGS(( Pst *pst, @@ -1247,12 +1529,12 @@ typedef uint8_t (*DuMacStopInd) ARGS(( /* Functions for mac cell start req */ typedef uint8_t (*DuMacCellStart) ARGS(( Pst *pst, - OduCellId *cellId)); + CellStartInfo *cellId)); /* Functions for mac cell stop request */ typedef uint8_t (*DuMacCellStop) ARGS(( Pst *pst, - OduCellId *cellId )); + CellStopInfo *cellId )); /* Function pointers for packing macCellCfg Request and Confirm */ typedef uint8_t (*packMacCellCfgReq) ARGS(( @@ -1291,20 +1573,87 @@ typedef uint8_t (*MacDuUeCfgRspFunc) ARGS(( Pst *pst, MacUeCfgRsp *cfgRsp)); -/* UE Reconfig Request from DU APP to MAC*/ +/* UE Reconfig Request from DU APP to MAC */ typedef uint8_t (*DuMacUeReconfigReq) ARGS(( Pst *pst, - MacUeCfg *ueCfg )); + MacUeRecfg *ueCfg )); + +/* UE Reconfig Response from MAC to DU APP */ +typedef uint8_t (*MacDuUeRecfgRspFunc) ARGS(( + Pst *pst, + MacUeRecfgRsp *cfgRsp)); + +/* RACH Resource Request from DU APP to MAC */ +typedef uint8_t (*DuMacRachRsrcReq) ARGS(( + Pst *pst, + MacRachRsrcReq *rachRsrcReq)); + +/* RACH Resource Response from MAC to DU APP */ +typedef uint8_t (*MacDuRachRsrcRspFunc) ARGS(( + Pst *pst, + MacRachRsrcRsp *rachRsrcRsp)); + +/* RACH Resource Release from DU APP to MAC */ +typedef uint8_t (*DuMacRachRsrcRel) ARGS(( + Pst *pst, + MacRachRsrcRel *rachRsrcRel)); + +/* UE Delete Request from DU APP to MAC*/ +typedef uint8_t (*DuMacUeDeleteReq) ARGS(( + Pst *pst, + MacUeDelete *ueDel )); + +/* UE Delete Response from MAC to DU APP*/ +typedef uint8_t (*MacDuUeDeleteRspFunc) ARGS(( + Pst *pst, + MacUeDeleteRsp *deleteRsp)); + +/* Cell Delete Request from DU APP to MAC*/ +typedef uint8_t (*DuMacCellDeleteReq) ARGS(( + Pst *pst, + MacCellDeleteReq *cellDelete )); + +/* Cell Delete Response from MAC to DU APP*/ +typedef uint8_t (*MacDuCellDeleteRspFunc) ARGS(( + Pst *pst, + MacCellDeleteRsp *cellDeleteRsp)); + +/* Slice Cfg Request from DU APP to MAC*/ +typedef uint8_t (*DuMacSliceCfgReq) ARGS(( + Pst *pst, + MacSliceCfgReq *CfgReq)); + +/* Slice Cfg Response from MAC to DU APP */ +typedef uint8_t (*MacDuSliceCfgRspFunc) ARGS(( + Pst *pst, + MacSliceCfgRsp *cfgRsp)); + +/* Slice ReReCfg Request from DU APP to MAC*/ +typedef uint8_t (*DuMacSliceRecfgReq) ARGS(( + Pst *pst, + MacSliceRecfgReq *CfgReq)); + +/* Slice ReReCfg Response from MAC to DU APP */ +typedef uint8_t (*MacDuSliceRecfgRspFunc) ARGS(( + Pst *pst, + MacSliceRecfgRsp *cfgRsp)); + +/* Pcch indication from DU APP to MAC*/ +typedef uint8_t (*DuMacDlPcchInd) ARGS(( + Pst *pst, + DlPcchInd *pcchInd)); + +uint64_t ueBitMapPerCell[MAX_NUM_CELL]; /* Bit Map to store used/free UE-IDX per Cell */ uint8_t packMacCellUpInd(Pst *pst, OduCellId *cellId); uint8_t unpackMacCellUpInd(DuMacCellUpInd func, Pst *pst, Buffer *mBuf); uint8_t duHandleCellUpInd(Pst *pst, OduCellId *cellId); -uint8_t packMacCellStart(Pst *pst, OduCellId *cellId); +uint8_t packMacCellStart(Pst *pst, CellStartInfo *cellStartInfo); uint8_t unpackMacCellStart(DuMacCellStart func, Pst *pst, Buffer *mBuf); -uint8_t MacProcCellStart(Pst *pst, OduCellId *cellId); -uint8_t packMacCellStop(Pst *pst, OduCellId *cellId); +uint8_t MacProcCellStart(Pst *pst, CellStartInfo *cellStartInfo); +uint8_t packMacCellStop(Pst *pst, CellStopInfo *cellStopInfo); uint8_t unpackMacCellStop(DuMacCellStop func, Pst *pst, Buffer *mBuf); -uint8_t MacProcCellStop(Pst *pst, OduCellId *cellId); +uint8_t MacProcCellStop(Pst *pst, CellStopInfo *cellStopInfo); uint8_t packMacCellCfg(Pst *pst, MacCellCfg *macCellCfg); uint8_t unpackDuMacCellCfg(DuMacCellCfgReq func, Pst *pst, Buffer *mBuf); uint8_t MacProcCellCfgReq(Pst *pst, MacCellCfg *macCellCfg); @@ -1327,12 +1676,56 @@ uint8_t sendStopIndMacToDuApp(uint16_t cellId); uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp); uint8_t unpackDuMacUeCfgRsp(MacDuUeCfgRspFunc func, Pst *pst, Buffer *mBuf); uint8_t DuProcMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp); -uint8_t packDuMacUeReconfigReq(Pst *pst, MacUeCfg *ueCfg); +uint8_t packDuMacUeReconfigReq(Pst *pst, MacUeRecfg *ueRecfg); uint8_t unpackMacUeReconfigReq(DuMacUeReconfigReq func, Pst *pst, Buffer *mBuf); -uint8_t MacProcUeReconfigReq(Pst *pst, MacUeCfg *ueCfg); - +uint8_t MacProcUeReconfigReq(Pst *pst, MacUeRecfg *ueRecfg); +uint8_t packDuMacUeRecfgRsp(Pst *pst, MacUeRecfgRsp *recfgRsp); +uint8_t unpackDuMacUeRecfgRsp(MacDuUeRecfgRspFunc func, Pst *pst, Buffer *mBuf); +uint8_t DuProcMacUeRecfgRsp(Pst *pst, MacUeRecfgRsp *recfgRsp); +uint8_t packDuMacRachRsrcReq(Pst *pst, MacRachRsrcReq *rachRsrcReq); +uint8_t unpackMacRachRsrcReq(DuMacRachRsrcReq func, Pst *pst, Buffer *mBuf); +uint8_t MacProcRachRsrcReq(Pst *pst, MacRachRsrcReq *rachRsrcReq); +uint8_t packDuMacRachRsrcRsp(Pst *pst, MacRachRsrcRsp *rachRsrcRsp); +uint8_t unpackDuMacRachRsrcRsp(MacDuRachRsrcRspFunc func, Pst *pst, Buffer *mBuf); +uint8_t DuProcMacRachRsrcRsp(Pst *pst, MacRachRsrcRsp *rachRsrcRsp); +uint8_t packDuMacRachRsrcRel(Pst *pst, MacRachRsrcRel *rachRsrcRel); +uint8_t unpackMacRachRsrcRel(DuMacRachRsrcRel func, Pst *pst, Buffer *mBuf); +uint8_t MacProcRachRsrcRel(Pst *pst, MacRachRsrcRel *rachRsrcRel); +uint8_t packDuMacUeDeleteReq(Pst *pst, MacUeDelete *ueDelete); +uint8_t MacProcUeDeleteReq(Pst *pst, MacUeDelete *ueDelete); +uint8_t unpackMacUeDeleteReq(DuMacUeDeleteReq func, Pst *pst, Buffer *mBuf); +uint8_t packDuMacUeDeleteRsp(Pst *pst, MacUeDeleteRsp *deleteRsp); +uint8_t DuProcMacUeDeleteRsp(Pst *pst, MacUeDeleteRsp *deleteRsp); +uint8_t unpackDuMacUeDeleteRsp(MacDuUeDeleteRspFunc func, Pst *pst, Buffer *mBuf); +uint8_t packDuMacCellDeleteReq(Pst *pst, MacCellDeleteReq *cellDelete); +uint8_t MacProcCellDeleteReq(Pst *pst, MacCellDeleteReq *cellDelete); +uint8_t unpackMacCellDeleteReq(DuMacCellDeleteReq func, Pst *pst, Buffer *mBuf); +uint8_t packDuMacCellDeleteRsp(Pst *pst, MacCellDeleteRsp *cellDeleteRsp); +uint8_t DuProcMacCellDeleteRsp(Pst *pst, MacCellDeleteRsp *cellDeleteRsp); +uint8_t unpackDuMacCellDeleteRsp(MacDuCellDeleteRspFunc func, Pst *pst, Buffer *mBuf); +uint8_t packDuMacSliceCfgReq(Pst *pst, MacSliceCfgReq *sliceCfgReq); +uint8_t MacProcSliceCfgReq(Pst *pst, MacSliceCfgReq *sliceCfgReq); +uint8_t unpackMacSliceCfgReq(DuMacSliceCfgReq func, Pst *pst, Buffer *mBuf); +uint8_t DuProcMacSliceCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp); +uint8_t packDuMacSliceCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp); +uint8_t unpackDuMacSliceCfgRsp(MacDuSliceCfgRspFunc func, Pst *pst, Buffer *mBuf); +uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceRecfgReq *sliceRecfgReq); +uint8_t MacProcSliceRecfgReq(Pst *pst, MacSliceRecfgReq *sliceRecfgReq); +uint8_t unpackMacSliceRecfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf); +uint8_t DuProcMacSliceRecfgRsp(Pst *pst, MacSliceRecfgRsp *sliceRecfgRsp); +uint8_t packDuMacSliceRecfgRsp(Pst *pst, MacSliceRecfgRsp *sliceRecfgRsp); +uint8_t unpackDuMacSliceRecfgRsp(MacDuSliceRecfgRspFunc func, Pst *pst, Buffer *mBuf); +uint8_t duHandleSlotInd(Pst *pst, SlotTimingInfo *slotIndInfo); +uint8_t packMacSlotInd(Pst *pst, SlotTimingInfo *slotIndInfo); +uint8_t unpackDuMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf); +uint8_t packDuMacDlPcchInd(Pst *pst, DlPcchInd *pcchInd); +uint8_t MacProcDlPcchInd(Pst *pst, DlPcchInd *pcchInd); +uint8_t unpackMacDlPcchInd(DuMacDlPcchInd func, Pst *pst, Buffer *mBuf); +int8_t getFreeBitFromUeBitMap(uint16_t cellId); +void unsetBitInUeBitMap(uint16_t cellId, uint8_t bitPos); #endif + /********************************************************************** End of file **********************************************************************/