Changes to make number of slots and BW generic
[o-du/l2.git] / src / cm / mac_sch_interface.h
index 2783f0e..76145f9 100644 (file)
 #define EVENT_RACH_IND_TO_SCH        5
 #define EVENT_CRC_IND_TO_SCH         6
 #define EVENT_DL_RLC_BO_INFO_TO_SCH  7
-#define EVENT_UE_CONFIG_REQ_TO_SCH   8
+#define EVENT_ADD_UE_CONFIG_REQ_TO_SCH   8
 #define EVENT_UE_CONFIG_RSP_TO_MAC   9
 #define EVENT_SLOT_IND_TO_SCH        10
 #define EVENT_SHORT_BSR              11
 #define EVENT_UCI_IND_TO_SCH         12
-#define EVENT_UE_RECONFIG_REQ_TO_SCH 13
+#define EVENT_MODIFY_UE_CONFIG_REQ_TO_SCH 13
 #define EVENT_UE_RECONFIG_RSP_TO_MAC 14
 
 
@@ -356,6 +356,13 @@ typedef enum
    FORMAT1_1
 }FormatType;
 
+typedef enum
+{
+   SCH_MCS_TABLE_QAM_64,
+   SCH_MCS_TABLE_QAM_256,
+   SCH_MCS_TABLE_QAM_64_LOW_SE
+}SchMcsTable;
+
 /*structures*/
 typedef struct timeDomainAlloc
 {
@@ -615,16 +622,16 @@ typedef struct schBwpUlCfg
 
 typedef struct schCellCfg
 {
-   uint16_t    cellId;           /* Cell Id */
-   uint16_t    phyCellId;        /* Physical cell id */
-   uint8_t     bandwidth;        /* Supported B/W */
+   uint16_t       cellId;           /* Cell Id */
+   uint16_t       phyCellId;        /* Physical cell id */
+   uint8_t        bandwidth;        /* Supported B/W */
+   uint8_t        numerology;       /* Supported numerology */
    SchDuplexMode  dupMode;          /* Duplex type: TDD/FDD */
-   SchSsbCfg   ssbSchCfg;        /* SSB config */
-   SchSib1Cfg  sib1SchCfg;       /* SIB1 config */
-   SchRachCfg  schRachCfg;       /* PRACH config */
-   SchBwpDlCfg schInitialDlBwp;  /* Initial DL BWP */
-   SchBwpUlCfg schInitialUlBwp;  /* Initial UL BWP */
-   uint8_t     puschMu;          /* PUSCH MU */
+   SchSsbCfg      ssbSchCfg;        /* SSB config */
+   SchSib1Cfg     sib1SchCfg;       /* SIB1 config */
+   SchRachCfg     schRachCfg;       /* PRACH config */
+   SchBwpDlCfg    schInitialDlBwp;  /* Initial DL BWP */
+   SchBwpUlCfg    schInitialUlBwp;  /* Initial UL BWP */
 }SchCellCfg;
 
 typedef struct schCellCfgCfm
@@ -812,10 +819,12 @@ typedef struct dlSchedInfo
 
 typedef struct tbInfo
 {
-   uint8_t  mcs;    /* MCS */
-   uint8_t  ndi;    /* NDI */
-   uint8_t  rv;     /* Redundancy Version */
-   uint16_t tbSize; /* TB Size */
+   uint8_t  qamOrder;  /* Modulation Order */
+   uint8_t  mcs;       /* MCS */
+   SchMcsTable  mcsTable;  /* MCS Table */
+   uint8_t  ndi;       /* NDI */
+   uint8_t  rv;        /* Redundancy Version */
+   uint16_t tbSize;    /* TB Size */
 }TbInfo;
 
 typedef struct schPuschInfo
@@ -1214,6 +1223,7 @@ typedef struct schDlLcCfg
 /* Logical Channel configuration */
 typedef struct schLcCfg
 {
+   ConfigType     configType;
    uint8_t        lcId;
    SchDrbQosInfo  *drbQos;
    SchSnssai      *snssai;
@@ -1222,11 +1232,18 @@ typedef struct schLcCfg
 }SchLcCfg;
 
 /* Aggregate max bit rate */
-typedef struct aggrMaxBitRate
+typedef struct schAmbrCfg
+{
+   uint32_t   ulBr;   /* Ul BitRate */
+   uint32_t   dlBr;   /* Dl BitRate */
+}SchAmbrCfg;
+
+typedef struct schModulationInfo
 {
-   uint32_t   ulBitRate;
-   uint32_t   dlBitRate;
-}SchAggrMaxBitRate;
+   uint8_t      modOrder;
+   uint8_t      mcsIndex;
+   SchMcsTable  mcsTable;
+}SchModulationInfo;
 
 /* UE configuration */
 typedef struct schUeCfg
@@ -1236,9 +1253,11 @@ typedef struct schUeCfg
    SchMacCellGrpCfg   macCellGrpCfg;
    SchPhyCellGrpCfg   phyCellGrpCfg;
    SchSpCellCfg       spCellCfg;
-   SchAggrMaxBitRate  *aggrMaxBitRate;
-   uint8_t            numLc;
-   SchLcCfg           lcCfgList[MAX_NUM_LC];
+   SchAmbrCfg         *ambrCfg;
+   SchModulationInfo  dlModInfo;
+   SchModulationInfo  ulModInfo;
+   uint8_t            numLcs;
+   SchLcCfg           schLcCfg[MAX_NUM_LC];
 }SchUeCfg;
 
 typedef struct schUeCfgRsp
@@ -1308,7 +1327,7 @@ typedef uint8_t (*MacSchDlRlcBoInfoFunc) ARGS((
         Pst         *pst,         /* Post structure */
         DlRlcBoInfo *dlBoInfo));   /* DL BO Info */
 
-typedef uint8_t (*MacSchUeCreateReqFunc) ARGS((
+typedef uint8_t (*MacSchAddUeConfigReqFunc) ARGS((
         Pst         *pst,           /* Post structure */
         SchUeCfg    *ueCfgToSch));   /* Scheduler UE Cfg */
 
@@ -1329,7 +1348,7 @@ typedef uint8_t (*MacSchSrUciIndFunc) ARGS((
         Pst         *pst,         /* Post structure */
         SrUciIndInfo  *uciInd));    /* UCI IND Info */
 
-typedef uint8_t (*MacSchUeReconfigReqFunc) ARGS((
+typedef uint8_t (*MacSchModUeConfigReqFunc) ARGS((
         Pst         *pst,           /* Post structure */
         SchUeCfg    *ueCfgToSch));   /* Scheduler UE Cfg */
 
@@ -1356,8 +1375,8 @@ uint8_t packMacSchCrcInd(Pst *pst, CrcIndInfo *crcInd);
 uint8_t MacSchCrcInd(Pst *pst, CrcIndInfo *crcInd);
 uint8_t packMacSchDlRlcBoInfo(Pst *pst, DlRlcBoInfo *dlBoInfo);
 uint8_t MacSchDlRlcBoInfo(Pst *pst, DlRlcBoInfo *dlBoInfo);
-uint8_t packMacSchUeCreateReq(Pst *pst, SchUeCfg *ueCfgToSch);
-uint8_t MacSchUeCreateReq(Pst *pst, SchUeCfg *ueCfgToSch);
+uint8_t packMacSchAddUeConfigReq(Pst *pst, SchUeCfg *ueCfgToSch);
+uint8_t MacSchAddUeConfigReq(Pst *pst, SchUeCfg *ueCfgToSch);
 uint8_t packSchUeCfgRsp(Pst *pst, SchUeCfgRsp *cfgRsp);
 uint8_t MacProcSchUeCfgRsp(Pst *pst, SchUeCfgRsp *cfgRsp);
 uint8_t MacSchSlotInd ARGS((Pst * pst, SlotIndInfo * slotInd));
@@ -1367,8 +1386,10 @@ uint8_t packMacSchBsr(Pst *pst, UlBufferStatusRptInd *bsrInd);
 uint8_t MacSchBsr(Pst *pst, UlBufferStatusRptInd *bsrInd);
 uint8_t packMacSchSrUciInd(Pst *pst, SrUciIndInfo *uciInd);
 uint8_t MacSchSrUciInd(Pst *pst, SrUciIndInfo *uciInd);
-uint8_t packMacSchUeReconfigReq(Pst *pst, SchUeCfg *ueCfgToSch);
-uint8_t MacSchUeReconfigReq(Pst *pst, SchUeCfg *ueCfgToSch);
+uint8_t packMacSchModUeConfigReq(Pst *pst, SchUeCfg *ueCfgToSch);
+uint8_t MacSchModUeConfigReq(Pst *pst, SchUeCfg *ueCfgToSch);
+uint8_t packSchUeReconfigRsp(Pst *pst, SchUeCfgRsp *cfgRsp);
+uint8_t MacProcSchUeReconfigRsp(Pst *pst, SchUeCfgRsp *cfgRsp);
 
 /**********************************************************************
   End of file