X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcm%2Fdu_app_mac_inf.h;h=237f4d18dabf2f5ca25350f20b5877de2ba7e55e;hb=42f73fef5ef8722af83284e0f146b2da693a1f68;hp=a3017a04cc25cd54b61d496280df7115ecdcd9eb;hpb=392607b7a8cbf1b7415b15517275dd1ef4e897a9;p=o-du%2Fl2.git diff --git a/src/cm/du_app_mac_inf.h b/src/cm/du_app_mac_inf.h index a3017a04c..237f4d18d 100644 --- a/src/cm/du_app_mac_inf.h +++ b/src/cm/du_app_mac_inf.h @@ -20,8 +20,6 @@ #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 @@ -44,17 +42,12 @@ #define SS_MONITORING_SYMBOL 0x2000; /* symbol-0, set 14th bit */ #define SIB1_MCS 4 -#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 */ #define MAC_NUM_TAGS 4 /* Max number of timing advance groups */ #define MAX_NUM_BWP 4 /* Max number of BWP per serving cell */ #define MAX_NUM_CRSET 3 /* Max number of control resource set in add/modify/release list */ #define MAX_NUM_SEARCH_SPC 10 /* Max number of search space in add/modify/release list */ -#define FREQ_DOM_RSRC_SIZE 6 /* i.e. 6 bytes because Size of frequency domain resource is 45 bits */ #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 */ @@ -434,12 +427,12 @@ typedef struct 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 @@ -454,23 +447,23 @@ 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; + bool pres; uint8_t prachCfgIdx; /* PRACH Cfg Index */ PrachSeqLen prachSeqLen; /* RACH Sequence length: Long/short */ uint8_t prachSubcSpacing; /* Subcarrier spacing of RACH */ @@ -480,7 +473,7 @@ typedef struct prachCfg 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 */ @@ -489,7 +482,7 @@ typedef struct prachCfg typedef struct tddCfg { - Bool pres; + bool pres; DlUlTxPeriodicity tddPeriod; /* DL UL Transmission periodicity */ SlotConfig slotCfg[MAXIMUM_TDD_PERIODICITY][MAX_SYMB_PER_SLOT]; }TDDCfg; @@ -579,14 +572,14 @@ typedef struct bwpUlConfig typedef struct macCellCfg { - U16 cellId; /* Cell Id */ - U8 numTlv; /* Number of configuration TLVs */ - U8 carrierId; /* Carrired Index */ - U16 phyCellId; /* Physical cell id */ + 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 */ + bool freqShft; /* Indicates presence of 7.5kHz frequency shift */ SsbCfg ssbCfg; /* SSB configuration */ PrachCfg prachCfg; /* PRACH Configuration */ TDDCfg tddCfg; /* TDD periodicity and slot configuration */ @@ -599,17 +592,10 @@ typedef struct macCellCfg typedef struct macCellCfgCfm { - U16 cellId; + 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; @@ -624,6 +610,7 @@ typedef struct ulCcchInd { uint16_t cellId; uint16_t crnti; + uint16_t ulCcchMsgLen; uint8_t *ulCcchMsg; }UlCcchIndInfo; @@ -971,18 +958,12 @@ typedef struct macUeCfg SpCellCfg spCellCfg; MaxAggrBitRate *maxAggrBitRate; uint8_t numLcs; - LcCfg lcCfgList[MAX_NUM_LOGICAL_CHANNELS]; + LcCfg lcCfgList[MAX_NUM_LC]; }MacUeCfg; -typedef struct plmnId -{ - uint8_t mcc[3]; - uint8_t mnc[3]; -}PlmnIdentity; - typedef struct nrcgi { - PlmnIdentity plmn; + Plmn plmn; uint16_t cellId; }Nrcgi; @@ -1018,92 +999,93 @@ typedef struct ueCfgRsp }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 )); + Pst *pst, + MacUeCfg *ueCfg )); /* UE create Response from MAC to DU APP */ typedef uint8_t (*DuMacUeCreateRspFunc) ARGS(( - Pst *pst, - MacUeCfgRsp *cfgRsp)); - -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(); -extern uint8_t packDuMacUeCreateRsp(Pst *pst, MacUeCfgRsp *cfgRsp); -extern uint8_t unpackDuMacUeCreateRsp(DuMacUeCreateRspFunc func, Pst *pst, Buffer *mBuf); -extern uint8_t duHandleMacUeCreateRsp(Pst *pst, MacUeCfgRsp *cfgRsp); + 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 /**********************************************************************