Merge "Replaced old SSI function with new macros jira id - ODUHIGH-212"
[o-du/l2.git] / src / cm / du_app_mac_inf.h
index 6230948..b772a73 100644 (file)
@@ -20,8 +20,6 @@
 #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 
@@ -434,12 +432,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 +452,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 +478,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 +487,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,15 +577,14 @@ typedef struct 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 */
+   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 */
@@ -600,17 +597,10 @@ typedef struct macCellCfg
 
 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;
@@ -625,6 +615,7 @@ typedef struct ulCcchInd
 {
    uint16_t cellId;
    uint16_t crnti;
+   uint16_t ulCcchMsgLen;
    uint8_t  *ulCcchMsg;
 }UlCcchIndInfo;
 
@@ -975,15 +966,9 @@ typedef struct macUeCfg
    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;
 
@@ -1019,92 +1004,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
 
 /**********************************************************************