#ifndef __MACINT_H__
#define __MACINT_H__
-#include <stdbool.h>
-
#define NUM_NUMEROLOGY 5 /* Number of numerology */
#define MAXIMUM_TDD_PERIODICITY 5
#define MAX_SYMB_PER_SLOT 14
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
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 */
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 */
typedef struct tddCfg
{
- Bool pres;
+ bool pres;
DlUlTxPeriodicity tddPeriod; /* DL UL Transmission periodicity */
SlotConfig slotCfg[MAXIMUM_TDD_PERIODICITY][MAX_SYMB_PER_SLOT];
}TDDCfg;
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 */
+ 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 */
typedef struct macCellCfgCfm
{
+ uint16_t cellId;
uint8_t rsp;
- U16 transId;
}MacCellCfgCfm;
-typedef struct slotInfo
-{
- uint16_t cellId;
- uint16_t sfn;
- uint16_t slot;
-}SlotInfo;
-
typedef struct macCellStartInfo
{
uint16_t cellId;
{
uint16_t cellId;
uint16_t crnti;
+ uint16_t ulCcchMsgLen;
uint8_t *ulCcchMsg;
}UlCcchIndInfo;
LcCfg lcCfgList[MAX_NUM_LOGICAL_CHANNELS];
}MacUeCfg;
-typedef struct plmnId
-{
- uint8_t mcc[3];
- uint8_t mnc[3];
-}PlmnIdentity;
-
typedef struct nrcgi
{
- PlmnIdentity plmn;
+ Plmn plmn;
uint16_t cellId;
}Nrcgi;
}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
/**********************************************************************