X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_mac_inf.h;h=b772a73ed0f32ec94e4fc9262e3a2746a4610cef;hb=4d45b914f9e94203603d3b9fdbcb1aad361301dd;hp=ccc3206f75b60da89daa674b2d03bf57f8f07e67;hpb=0bdd575f55257e64b4becb4cee0df0dab2bac3fa;p=o-du%2Fl2.git diff --git a/src/cm/du_app_mac_inf.h b/src/cm/du_app_mac_inf.h index ccc3206f7..b772a73ed 100644 --- a/src/cm/du_app_mac_inf.h +++ b/src/cm/du_app_mac_inf.h @@ -14,14 +14,12 @@ # See the License for the specific language governing permissions and # # limitations under the License. # ################################################################################ -*******************************************************************************/ + *******************************************************************************/ /* Defines APIs exchanged between du_app and cl module of MAC */ #ifndef __MACINT_H__ #define __MACINT_H__ -#include - #define NUM_NUMEROLOGY 5 /* Number of numerology */ #define MAXIMUM_TDD_PERIODICITY 5 #define MAX_SYMB_PER_SLOT 14 @@ -46,6 +44,7 @@ #define SRB_ID_0 0 #define SRB_ID_1 1 + /* Macro for Ue Context */ #define MAX_NUM_LOGICAL_CHANNELS 11 #define MAX_NUM_SR_CFG_PER_CELL_GRP 8 /* Max number of scheduling request config per cell group */ @@ -58,13 +57,10 @@ #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 PDSCH_START_SYMBOL_LEN 53 -#define PUSCH_START_SYMBOL_LEN 41 -/* Macros for coupling */ -#define DU_MAC_LC 0 -#define DU_MAC_TC 1 -#define DU_MAC_LWLC 2 +#define MAX_NUM_SRB 8 +#define MAX_NUM_DRB 64 +#define MAX_NUM_SCELL 32 /* Event IDs */ #define EVENT_MAC_CELL_CONFIG_REQ 200 @@ -76,6 +72,13 @@ #define EVENT_MAC_UL_CCCH_IND 206 #define EVENT_MAC_DL_CCCH_IND 207 #define EVENT_MAC_UE_CREATE_REQ 208 +#define EVENT_MAC_UE_CREATE_RSP 209 + +typedef enum +{ + MAC_DU_APP_RSP_NOK, + MAC_DU_APP_RSP_OK +}MacRsp; typedef enum { @@ -254,8 +257,8 @@ typedef enum typedef enum { PDSCH_X_OVERHEAD_6, - PDSCH_X_OVERHEAD_12, - PDSCH_X_OVERHEAD_18 + PDSCH_X_OVERHEAD_12, + PDSCH_X_OVERHEAD_18 }PdschXOverhead; typedef enum @@ -291,8 +294,8 @@ typedef enum typedef enum { - SAMEASREG_BUNDLE, - ALL_CONTIGUOUS_RBS + SAMEASREG_BUNDLE, + ALL_CONTIGUOUS_RBS }PrecoderGranul; typedef enum @@ -353,19 +356,88 @@ typedef enum typedef enum { - LC_PRIORITY_1 = 1, - LC_PRIORITY_2, - LC_PRIORITY_3 + LC_PRIORITY_1 = 1, + LC_PRIORITY_2, + LC_PRIORITY_3 }LcPriority; +typedef enum +{ + RADIO_NW_LAYER_FAIL, + TRANSPORT_LAYER_FAIL, + PROTOCOL_FAIL, + MISCELLANEOUS +}CauseGrp; + +typedef enum +{ + UNSPECIFIED_RADIO_NW_CAUSE, + RL_FAIL_RLC, + UNKNOWN_GNB_CU_UE_F1AP_ID, + ALREADY_ALLOCATED_GNB_CU_UE_F1AP_ID, + UNKNOWN_GNB_DU_UE_F1AP_ID, + ALREADY_ALLOCATED_GNB_DU_UE_F1AP_ID, + UNKNOWN_UE_F1AP_ID_PAIR, + INCONSISTENT_UE_F1AP_ID_PAIR, + INTERACTION_WITH_OTHER_PROCEDURE, + UNSUPPORTED_QCI, + ACTION_REQUIRED_FOR_RADIO_REASONS, + RADIO_RESOURCES_UNAVAILABLE, + CANCELLED_PROCEDURE, + RELEASE_NORMAL, + CELL_UNAVAILABLE, + OTHER_RL_FAILURE, + UE_REJECTION, + RESOURCES_UNAVAILABLE_FOR_SLICE +}RadioNwLyrCause; + +typedef enum +{ + UNSPECIFIED_TRANSPORT_LAYER_CAUSE, + TRANSPORT_RESOURCE_UNAVAILABLE +}TransLyrCause; + +typedef enum +{ + TRANSFER_SYNTAX_ERROR, + ABSTRACT_SYNTAX_ERROR_REJECT, + ABSTRACT_SYNTAX_ERROR_IGNORE_AND_REJECT, + INCOMPATIBLE_MESSAGE_FOR_RECEIVER_STATE, + SEMANTIC_ERR, + ABSTRAXCT_SYNTAX_ERROR_FALSELY_CONSTRUCTED_MSG, + UNSPECIFIED_PROTOCOL_CAUSE +}ProtCause; + +typedef enum +{ + CONTROL_PROCESSING_OVERLOAD, + NOT_ENOUGH_USER, + PLANE_PROCESSING_RESOURCES, + HARDWARE_FAIL, + INTERVENTION_BY_O_AND_M, + UNSPECIFIED_MISC_CAUSE +}MiscFailCause; + +typedef struct failureCause +{ + CauseGrp type; + union + { + RadioNwLyrCause radioNwCause; + TransLyrCause transportCause; + ProtCause protcolCause; + MiscFailCause miscCause; + }u; +}FailureCause; + typedef struct carrierCfg { - Bool pres; - U16 bw; /* DL/UL bandwidth */ - U32 freq; /* Absolute frequency of DL/UL point A in KHz */ - U16 k0[NUM_NUMEROLOGY]; /* K0 for DL/UL */ - U16 gridSize[NUM_NUMEROLOGY]; /* DL/UL Grid size for each numerologies */ - U16 numAnt; /* Number of Tx/Rx antennas */ + bool pres; + uint16_t bw; /* DL/UL bandwidth */ + uint32_t freq; /* Absolute frequency of DL/UL point A in KHz */ + uint16_t k0[NUM_NUMEROLOGY]; /* K0 for DL/UL */ + uint16_t gridSize[NUM_NUMEROLOGY]; /* DL/UL Grid size for each numerologies */ + uint16_t numAnt; /* Number of Tx/Rx antennas */ }CarrierCfg; typedef struct ssbCfg @@ -380,42 +452,42 @@ typedef struct ssbCfg uint8_t mibPdu[3]; /* MIB payload */ uint32_t ssbMask[SSB_MASK_SIZE]; /* Bitmap for actually transmitted SSB. */ uint8_t beamId[NUM_SSB]; - Bool multCarrBand; /* Multiple carriers in a band */ - Bool multCellCarr; /* Multiple cells in single carrier */ + bool multCarrBand; /* Multiple carriers in a band */ + bool multCellCarr; /* Multiple cells in single carrier */ }SsbCfg; typedef struct fdmInfo { - U16 rootSeqIdx; /* Root sequence index */ - U8 numRootSeq; /* Number of root sequences required for FD */ - U16 k1; /* Frequency Offset for each FD */ - U8 zeroCorrZoneCfg; /* Zero correlation zone cofig */ - U8 numUnusedRootSeq; /* Number of unused root sequence */ - U8 *unsuedRootSeq; /* Unused root sequence per FD */ + 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 zeroCorrZoneCfg; /* Zero correlation zone cofig */ + uint8_t numUnusedRootSeq; /* Number of unused root sequence */ + uint8_t *unsuedRootSeq; /* Unused root sequence per FD */ }PrachFdmInfo; typedef struct prachCfg { - Bool pres; - uint8_t prachCfgIdx; /* PRACH Cfg Index */ + bool pres; + uint8_t prachCfgIdx; /* PRACH Cfg Index */ PrachSeqLen prachSeqLen; /* RACH Sequence length: Long/short */ uint8_t prachSubcSpacing; /* Subcarrier spacing of RACH */ RstSetCfg prachRstSetCfg; /* PRACH restricted set config */ - uint16_t msg1FreqStart; /* Msg1-FrequencyStart */ + uint16_t msg1FreqStart; /* Msg1-FrequencyStart */ uint8_t msg1Fdm; /* PRACH FDM (1,2,4,8) */ - uint8_t rootSeqLen; /* Root sequence length */ + uint8_t rootSeqLen; /* Root sequence length */ PrachFdmInfo fdm[8]; /* FDM info */ uint8_t ssbPerRach; /* SSB per RACH occassion */ - Bool prachMultCarrBand; /* Multiple carriers in Band */ + bool prachMultCarrBand; /* Multiple carriers in Band */ uint8_t prachRestrictedSet; /* Support for PRACH restricted set */ - uint8_t raContResTmr; /* RA Contention Resoultion Timer */ - uint8_t rsrpThreshSsb; /* RSRP Threshold SSB */ + uint8_t raContResTmr; /* RA Contention Resoultion Timer */ + uint8_t rsrpThreshSsb; /* RSRP Threshold SSB */ uint8_t raRspWindow; /* RA Response Window */ }PrachCfg; typedef struct tddCfg { - Bool pres; + bool pres; DlUlTxPeriodicity tddPeriod; /* DL UL Transmission periodicity */ SlotConfig slotCfg[MAXIMUM_TDD_PERIODICITY][MAX_SYMB_PER_SLOT]; }TDDCfg; @@ -435,8 +507,8 @@ typedef struct bwpParams { uint16_t firstPrb; uint16_t numPrb; - uint8_t scs; - uint8_t cyclicPrefix; + uint8_t scs; + uint8_t cyclicPrefix; }BwpParams; typedef struct candidatesInfo @@ -451,11 +523,11 @@ typedef struct candidatesInfo typedef struct searchSpaceCfg { uint8_t searchSpaceId; - uint8_t coresetId; - uint16_t monitoringSlot; - uint16_t duration; - uint16_t monitoringSymbol; - CandidatesInfo candidate; + uint8_t coresetId; + uint16_t monitoringSlot; + uint16_t duration; + uint16_t monitoringSymbol; + CandidatesInfo candidate; }SearchSpaceCfg; typedef struct pdcchConfigCommon @@ -468,75 +540,67 @@ typedef struct pdcchConfigCommon typedef struct pdschConfigCommon { uint8_t k0; - uint8_t mappingType; - uint8_t startSymbol; - uint8_t lengthSymbol; + uint8_t mappingType; + uint8_t startSymbol; + uint8_t lengthSymbol; }PdschConfigCommon; typedef struct pucchConfigCommon { uint8_t pucchResourceCommon; - uint8_t pucchGroupHopping; + uint8_t pucchGroupHopping; }PucchConfigCommon; typedef struct puschConfigCommon { /* PUSCH-TimeDomainResourceAllocation info */ uint8_t k2; - uint8_t mappingType; - uint8_t startSymbol; - uint8_t lengthSymbol; + uint8_t mappingType; + uint8_t startSymbol; + uint8_t lengthSymbol; }PuschConfigCommon; typedef struct bwpDlConfig { BwpParams bwp; - PdcchConfigCommon pdcchCommon; - PdschConfigCommon pdschCommon; + PdcchConfigCommon pdcchCommon; + PdschConfigCommon pdschCommon; }BwpDlConfig; typedef struct bwpUlConfig { BwpParams bwp; - // rach config common sent in PrachCfg - PucchConfigCommon pucchCommon; - PuschConfigCommon puschCommon; + // rach config common sent in PrachCfg + PucchConfigCommon pucchCommon; + PuschConfigCommon puschCommon; }BwpUlConfig; typedef struct macCellCfg { - U16 transId; /* Trans Id */ - U16 cellId; /* Cell Id */ - U8 numTlv; /* Number of configuration TLVs */ - U8 carrierId; /* Carrired Index */ - U16 phyCellId; /* Physical cell id */ - DuplexMode dupType; /* Duplex type: TDD/FDD */ - CarrierCfg dlCarrCfg; /* DL Carrier configuration */ - CarrierCfg ulCarrCfg; /* UL Carrier configuration */ - Bool freqShft; /* Indicates presence of 7.5kHz frequency shift */ + uint16_t cellId; /* Cell Id */ + uint8_t numTlv; /* Number of configuration TLVs */ + uint8_t carrierId; /* Carrired Index */ + uint16_t phyCellId; /* Physical cell id */ + DuplexMode dupType; /* Duplex type: TDD/FDD */ + CarrierCfg dlCarrCfg; /* DL Carrier configuration */ + CarrierCfg ulCarrCfg; /* UL Carrier configuration */ + bool freqShft; /* Indicates presence of 7.5kHz frequency shift */ SsbCfg ssbCfg; /* SSB configuration */ PrachCfg prachCfg; /* PRACH Configuration */ TDDCfg tddCfg; /* TDD periodicity and slot configuration */ RSSIMeasUnit rssiUnit; /* RSSI measurement unit */ Sib1CellCfg sib1Cfg; /* SIB1 config */ - BwpDlConfig initialDlBwp; /* Initial DL BWP */ - BwpUlConfig initialUlBwp; /* Initial UL BWP */ - uint8_t dmrsTypeAPos; /* DMRS Type A position */ + BwpDlConfig initialDlBwp; /* Initial DL BWP */ + BwpUlConfig initialUlBwp; /* Initial UL BWP */ + uint8_t dmrsTypeAPos; /* DMRS Type A position */ }MacCellCfg; typedef struct macCellCfgCfm { - uint8_t rsp; - U16 transId; + uint16_t cellId; + uint8_t rsp; }MacCellCfgCfm; -typedef struct slotInfo -{ - uint16_t cellId; - uint16_t sfn; - uint16_t slot; -}SlotInfo; - typedef struct macCellStartInfo { uint16_t cellId; @@ -551,6 +615,7 @@ typedef struct ulCcchInd { uint16_t cellId; uint16_t crnti; + uint16_t ulCcchMsgLen; uint8_t *ulCcchMsg; }UlCcchIndInfo; @@ -563,12 +628,12 @@ typedef struct dlCcchInd uint8_t *dlCcchMsg; }DlCcchIndInfo; -typedef struct bsrCfg +typedef struct bsrTmrCfg { uint8_t periodicTimer; uint8_t retxTimer; uint8_t srDelayTimer; -}BsrCfg; +}BsrTmrCfg; /* Info of Scheduling Request to Add/Modify */ @@ -616,10 +681,10 @@ typedef struct phrCfg typedef struct macCellGrpCfg { SchedReqCfg schReqCfg; - TagCfg tagCfg; - //BsrCfg bsrCfg; - bool phrCfgSetupPres; /* true/false: phrCfgSetup/phrCfgRelease */ - PhrCfg phrCfg; + TagCfg tagCfg; + BsrTmrCfg bsrTmrCfg; + bool phrCfgSetupPres; /* true/false: phrCfgSetup/phrCfgRelease */ + PhrCfg phrCfg; }MacCellGrpCfg; typedef struct phyCellGrpCfg @@ -672,6 +737,8 @@ typedef struct pdcchConfig typedef struct pdschTimeDomRsrcAlloc { CommonMappingType mappingType; + uint8_t startSymbol; + uint8_t symbolLength; uint8_t startSymbolAndLength; }PdschTimeDomRsrcAlloc; @@ -726,7 +793,7 @@ typedef struct pdschServCellCfg /* PUCCH Configuration */ typedef struct pucchCfg { - /* TODO : Not used currently */ + /* TODO : Not used currently */ }PucchCfg; /* Transform precoding disabled */ @@ -747,6 +814,8 @@ typedef struct puschTimeDomRsrcAlloc { uint8_t k2; CommonMappingType mappingType; + uint8_t startSymbol; + uint8_t symbolLength; uint8_t startSymbolAndLength; }PuschTimeDomRsrcAlloc; @@ -833,17 +902,17 @@ typedef struct dynFiveQi typedef struct ngRanAllocAndRetPri { - uint8_t priorityLevel; - uint8_t preEmptionCap; - uint8_t preEmptionVul; + uint8_t priorityLevel; + uint8_t preEmptionCap; + uint8_t preEmptionVul; }NgRanAllocAndRetPri; typedef struct grbQosInfo { - uint32_t maxFlowBitRateDl; - uint32_t maxFlowBitRateUl; - uint32_t guarFlowBitRateDl; - uint32_t guarFlowBitRateUl; + uint32_t maxFlowBitRateDl; + uint32_t maxFlowBitRateUl; + uint32_t guarFlowBitRateDl; + uint32_t guarFlowBitRateUl; }GrbQosInfo; typedef struct drbQos @@ -886,7 +955,7 @@ typedef struct lcCfg typedef struct macUeCfg { - uint16_t cellIdx; + uint16_t cellId; uint8_t ueIdx; uint16_t crnti; MacCellGrpCfg macCellGrpCfg; @@ -897,87 +966,133 @@ typedef struct macUeCfg LcCfg lcCfgList[MAX_NUM_LOGICAL_CHANNELS]; }MacUeCfg; +typedef struct nrcgi +{ + Plmn plmn; + uint16_t cellId; +}Nrcgi; + +typedef struct srbFailInfo +{ + uint8_t srbId; + FailureCause cause; +}SRBFailInfo; + +typedef struct drbFailInfo +{ + uint8_t drbId; + FailureCause cause; +}DRBFailInfo; + +typedef struct sCellFailInfo +{ + Nrcgi nrcgi; + FailureCause cause; +}SCellFailInfo; + +typedef struct ueCfgRsp +{ + uint16_t cellId; + uint16_t ueIdx; + MacRsp result; + uint8_t numSRBFailed; /* valid values : 0 to MAX_NUM_SRB */ + SRBFailInfo *failedSRBlisti; + uint8_t numDRBFailed; /* valid values : 0 to MAX_NUM_DRB */ + DRBFailInfo *failedDRBlist; + uint8_t numSCellFailed; /* valid values : 0 to MAX_NUM_SCELL */ + SCellFailInfo *failedSCellList; +}MacUeCfgRsp; + /* Functions for slot Ind from MAC to DU APP*/ -typedef uint16_t (*DuMacSlotInd) ARGS(( - Pst *pst, - SlotInfo *slotInfo )); +typedef uint8_t (*DuMacSlotInd) ARGS(( + Pst *pst, + SlotIndInfo *slotInfo )); /* Functions for stop Ind from MAC to DU APP*/ -typedef uint16_t (*DuMacStopInd) ARGS(( - Pst *pst, - MacCellStopInfo *cellId )); +typedef uint8_t (*DuMacStopInd) ARGS(( + Pst *pst, + MacCellStopInfo *cellId )); /* Functions for mac cell start req */ -typedef uint16_t (*DuMacCellStartReq) ARGS(( - Pst *pst, - MacCellStartInfo *cellStartInfo )); +typedef uint8_t (*DuMacCellStartReq) ARGS(( + Pst *pst, + MacCellStartInfo *cellStartInfo )); /* Functions for mac cell stop request */ -typedef uint16_t (*DuMacCellStopReq) ARGS(( - Pst *pst, - MacCellStopInfo *cellStopInfo )); - +typedef uint8_t (*DuMacCellStopReq) ARGS(( + Pst *pst, + MacCellStopInfo *cellStopInfo )); + /* Function pointers for packing macCellCfg Request and Confirm */ -typedef int (*packMacCellCfgReq) ARGS(( - Pst *pst, - MacCellCfg *macCellCfg )); +typedef uint8_t (*packMacCellCfgReq) ARGS(( + Pst *pst, + MacCellCfg *macCellCfg )); -typedef int (*packMacCellCfgConfirm) ARGS(( - Pst *pst, - MacCellCfgCfm *macCellCfgCfm )); +typedef uint8_t (*packMacCellCfgConfirm) ARGS(( + Pst *pst, + MacCellCfgCfm *macCellCfgCfm )); -typedef int (*DuMacCellCfgReq) ARGS(( - Pst *pst, - MacCellCfg *macCellCfg)); +typedef uint8_t (*DuMacCellCfgReq) ARGS(( + Pst *pst, + MacCellCfg *macCellCfg)); -typedef int (*DuMacCellCfgCfm) ARGS(( - Pst *pst, - MacCellCfgCfm *macCellCfgCfm )); +typedef uint8_t (*DuMacCellCfgCfm) ARGS(( + Pst *pst, + MacCellCfgCfm *macCellCfgCfm )); /* Functions for UL CCCH Ind from MAC to DU APP*/ -typedef uint16_t (*DuMacUlCcchInd) ARGS(( - Pst *pst, - UlCcchIndInfo *ulCcchIndInfo )); +typedef uint8_t (*DuMacUlCcchInd) ARGS(( + Pst *pst, + UlCcchIndInfo *ulCcchIndInfo )); /* Functions for DL CCCH Ind from DU APP to MAC*/ -typedef uint16_t (*DuMacDlCcchInd) ARGS(( - Pst *pst, - DlCcchIndInfo *dlCcchIndInfo )); +typedef uint8_t (*DuMacDlCcchInd) ARGS(( + Pst *pst, + DlCcchIndInfo *dlCcchIndInfo )); /* UE create Request from DU APP to MAC*/ typedef uint8_t (*DuMacUeCreateReq) ARGS(( - Pst *pst, - MacUeCfg *ueCfg )); - -extern uint16_t packMacSlotInd(Pst *pst, SlotInfo *slotInfo ); -extern uint16_t unpackMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf); -extern uint16_t duHandleSlotInd(Pst *pst, SlotInfo *slotInfo); -extern uint16_t packMacCellStartReq(Pst *pst, MacCellStartInfo *cellStartInfo); -extern uint16_t unpackMacCellStartReq(DuMacCellStartReq func, Pst *pst, Buffer *mBuf); -extern uint16_t MacHdlCellStartReq(Pst *pst, MacCellStartInfo *cellStartInfo); -extern uint16_t packMacCellStopReq(Pst *pst, MacCellStopInfo *cellStopInfo); -extern uint16_t unpackMacCellStopReq(DuMacCellStopReq func, Pst *pst, Buffer *mBuf); -extern uint16_t MacHdlCellStopReq(Pst *pst, MacCellStopInfo *cellStopInfo); -extern int packMacCellCfg(Pst *pst, MacCellCfg *macCellCfg); -extern int MacHdlCellCfgReq(Pst *pst, MacCellCfg *macCellCfg); -extern void cmUnpackLwLcMacCellCfg(DuMacCellCfgReq func, Pst *pst, Buffer *mBuf); -extern int unpackMacCellCfgCfm(DuMacCellCfgCfm func, Pst *pst, Buffer *mBuf); -extern int duHandleMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm); -extern uint16_t packMacStopInd(Pst *pst, MacCellStopInfo *cellId); -extern uint16_t unpackMacStopInd(DuMacStopInd func, Pst *pst, Buffer *mBuf); -extern uint16_t duHandleStopInd(Pst *pst, MacCellStopInfo *cellId); -extern uint16_t packMacUlCcchInd(Pst *pst, UlCcchIndInfo *ulCcchIndInfo); -extern uint16_t unpackMacUlCcchInd(DuMacUlCcchInd func, Pst *pst, Buffer *mBuf); -extern uint16_t duHandleUlCcchInd(Pst *pst, UlCcchIndInfo *ulCcchIndInfo); -extern uint16_t packMacDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo); -extern uint16_t unpackMacDlCcchInd(DuMacDlCcchInd func, Pst *pst, Buffer *mBuf); -extern uint16_t MacHdlDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo); -extern uint8_t packDuMacUeCreateReq(Pst *pst, MacUeCfg *ueCfg); -extern uint8_t unpackMacUeCreateReq(DuMacUeCreateReq func, Pst *pst, Buffer *mBuf); -extern uint8_t MacHdlUeCreateReq(Pst *pst, MacUeCfg *ueCfg); -uint8_t sendStopIndMacToDuApp(); + Pst *pst, + MacUeCfg *ueCfg )); + +/* UE create Response from MAC to DU APP */ +typedef uint8_t (*DuMacUeCreateRspFunc) ARGS(( + Pst *pst, + MacUeCfgRsp *cfgRsp)); + +uint8_t packMacSlotInd(Pst *pst, SlotIndInfo *slotInfo ); +uint8_t unpackMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf); +uint8_t duHandleSlotInd(Pst *pst, SlotIndInfo *slotInfo); +uint8_t packMacCellStartReq(Pst *pst, MacCellStartInfo *cellStartInfo); +uint8_t unpackMacCellStartReq(DuMacCellStartReq func, Pst *pst, Buffer *mBuf); +uint8_t MacProcCellStartReq(Pst *pst, MacCellStartInfo *cellStartInfo); +uint8_t packMacCellStopReq(Pst *pst, MacCellStopInfo *cellStopInfo); +uint8_t unpackMacCellStopReq(DuMacCellStopReq func, Pst *pst, Buffer *mBuf); +uint8_t MacProcCellStopReq(Pst *pst, MacCellStopInfo *cellStopInfo); +uint8_t packMacCellCfg(Pst *pst, MacCellCfg *macCellCfg); +uint8_t unpackDuMacCellCfg(DuMacCellCfgReq func, Pst *pst, Buffer *mBuf); +uint8_t MacProcCellCfgReq(Pst *pst, MacCellCfg *macCellCfg); +uint8_t packMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm); +uint8_t unpackMacCellCfgCfm(DuMacCellCfgCfm func, Pst *pst, Buffer *mBuf); +uint8_t duHandleMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm); +uint8_t packMacStopInd(Pst *pst, MacCellStopInfo *cellId); +uint8_t unpackMacStopInd(DuMacStopInd func, Pst *pst, Buffer *mBuf); +uint8_t duHandleStopInd(Pst *pst, MacCellStopInfo *cellId); +uint8_t packMacUlCcchInd(Pst *pst, UlCcchIndInfo *ulCcchIndInfo); +uint8_t unpackMacUlCcchInd(DuMacUlCcchInd func, Pst *pst, Buffer *mBuf); +uint8_t duHandleUlCcchInd(Pst *pst, UlCcchIndInfo *ulCcchIndInfo); +uint8_t packMacDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo); +uint8_t unpackMacDlCcchInd(DuMacDlCcchInd func, Pst *pst, Buffer *mBuf); +uint8_t MacProcDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo); +uint8_t packDuMacUeCreateReq(Pst *pst, MacUeCfg *ueCfg); +uint8_t unpackMacUeCreateReq(DuMacUeCreateReq func, Pst *pst, Buffer *mBuf); +uint8_t MacProcUeCreateReq(Pst *pst, MacUeCfg *ueCfg); +uint8_t packDuMacUeCreateRsp(Pst *pst, MacUeCfgRsp *cfgRsp); +uint8_t unpackDuMacUeCreateRsp(DuMacUeCreateRspFunc func, Pst *pst, Buffer *mBuf); +uint8_t DuHandleMacUeCreateRsp(Pst *pst, MacUeCfgRsp *cfgRsp); +uint8_t sendStopIndMacToDuApp(uint16_t cellId); #endif /********************************************************************** - End of file -**********************************************************************/ + End of file + **********************************************************************/