K0-K1 configuration from F1AP to SCH [Issue-ID: ODUHIGH-341]
[o-du/l2.git] / src / cm / du_app_mac_inf.h
index cccce8e..6a3fdbc 100644 (file)
 #define __MACINT_H__
 
 #define NUM_NUMEROLOGY 5  /* Number of numerology */
-#define MAXIMUM_TDD_PERIODICITY 5
-#define MAX_SYMB_PER_SLOT 14 
 
 #define NUM_SSB                1       /* max value is 64 */
 #define SSB_MASK_SIZE  1       /* SSB mask size is 32bit for sub6 */
-#define SIB1_NEW_TX_PERIOD      160
 #define SIB1_REPETITION_PERIOD   20
 #define CORESET_0_INDEX      0
 #define CORESET_1_INDEX      1
@@ -53,8 +50,6 @@
 #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 MAX_NUM_SRB    8
-#define MAX_NUM_DRB    64
 #define MAX_NUM_SCELL  32
 
 /* PUCCH Configuration Macro */
 #define EVENT_MAC_UE_CREATE_RSP      209
 #define EVENT_MAC_UE_RECONFIG_REQ    210
 #define EVENT_MAC_UE_RECONFIG_RSP    211
+#define EVENT_MAC_UE_DELETE_REQ      212
+#define EVENT_MAC_UE_DELETE_RSP      213
+#define EVENT_MAC_CELL_DELETE_REQ    214
+#define EVENT_MAC_CELL_DELETE_RSP    215
 
 #define BSR_PERIODIC_TIMER_SF_10 10
 #define BSR_RETX_TIMER_SF_320 320
@@ -90,6 +89,19 @@ typedef enum
    MAC_DU_APP_RSP_OK
 }MacRsp;
 
+typedef enum
+{
+   SUCCESS,
+   CELLID_INVALID,
+   UEIDX_INVALID
+}UeDeleteStatus;
+
+typedef enum
+{
+   SUCCESSFUL_RSP,
+   CELL_ID_INVALID
+}CellDeleteStatus;
+
 typedef enum
 {
    DUP_MODE_FDD,
@@ -123,25 +135,6 @@ typedef enum
    RSSI_UNIT_DBFS
 }RSSIMeasUnit;
 
-typedef enum
-{
-   DL_SLOT,
-   UL_SLOT,
-   GUARD_SLOT
-}SlotConfig;
-
-typedef enum
-{
-   TX_PRDCTY_MS_0P5,
-   TX_PRDCTY_MS_0P625,
-   TX_PRDCTY_MS_1,
-   TX_PRDCTY_MS_1P25,
-   TX_PRDCTY_MS_2,
-   TX_PRDCTY_MS_2P5,
-   TX_PRDCTY_MS_5,
-   TX_PRDCTY_MS_10
-}DlUlTxPeriodicity;
-
 typedef enum
 {
    BETA_PSS_0DB,
@@ -563,18 +556,10 @@ typedef struct prachCfg
    uint8_t       raRspWindow;         /* RA Response Window */
 }PrachCfg;
 
-typedef struct tddCfg
-{
-   bool               pres;
-   DlUlTxPeriodicity  tddPeriod;      /* DL UL Transmission periodicity */
-   SlotConfig         slotCfg[MAXIMUM_TDD_PERIODICITY][MAX_SYMB_PER_SLOT]; 
-}TDDCfg;
-
 typedef struct sib1CellCfg
 {
    uint8_t  *sib1Pdu;
    uint16_t sib1PduLen;
-   uint16_t sib1NewTxPeriod;
    uint16_t sib1RepetitionPeriod;
    uint8_t coresetZeroIndex;     /* derived from 4 LSB of pdcchSib1 present in MIB */
    uint8_t searchSpaceZeroIndex; /* derived from 4 MSB of pdcchSib1 present in MIB */
@@ -615,12 +600,19 @@ typedef struct pdcchConfigCommon
    uint8_t raSearchSpaceId;
 }PdcchConfigCommon;
 
-typedef struct pdschConfigCommon
+typedef struct pdschCfgCommTimeDomRsrcAlloc
 {
    uint8_t k0;
    uint8_t mappingType;
    uint8_t startSymbol;
    uint8_t lengthSymbol;
+}PdschCfgCommTimeDomRsrcAlloc;
+
+typedef struct pdschConfigCommon
+{
+   uint8_t  numTimeDomAlloc;
+   /* PDSCH time domain DL resource allocation list */
+   PdschCfgCommTimeDomRsrcAlloc   timeDomRsrcAllocList[MAX_NUM_DL_ALLOC]; 
 }PdschConfigCommon;
 
 typedef struct pucchConfigCommon
@@ -665,7 +657,9 @@ typedef struct macCellCfg
    bool           freqShft;         /* Indicates presence of 7.5kHz frequency shift */
    SsbCfg         ssbCfg;           /* SSB configuration */          
    PrachCfg       prachCfg;         /* PRACH Configuration */
+#ifdef NR_TDD
    TDDCfg         tddCfg;           /* TDD periodicity and slot configuration */
+#endif
    RSSIMeasUnit   rssiUnit;         /* RSSI measurement unit */
    Sib1CellCfg    sib1Cfg;          /* SIB1 config */
    BwpDlConfig    initialDlBwp;     /* Initial DL BWP */
@@ -804,6 +798,7 @@ typedef struct pdcchConfig
 /* PDSCH time domain resource allocation */
 typedef struct pdschTimeDomRsrcAlloc
 {
+   uint8_t           *k0;
    CommonMappingType mappingType;
    uint8_t           startSymbol;
    uint8_t           symbolLength;
@@ -1116,7 +1111,6 @@ typedef struct spCellCfg
 typedef struct ambrCfg
 {
    uint32_t ulBr;   /* UL Bit rate */
-   uint32_t dlBr;   /* DL Bit rate */
 }AmbrCfg;
 
 /* Single Network Slice Selection assistance Info */
@@ -1212,8 +1206,11 @@ typedef struct macUeCfg
    uint16_t cellId;
    uint8_t  ueIdx;
    uint16_t crnti;
+   bool macCellGrpCfgPres;
    MacCellGrpCfg macCellGrpCfg;
+   bool phyCellGrpCfgPres;
    PhyCellGrpCfg phyCellGrpCfg;
+   bool spCellCfgPres;
    SpCellCfg spCellCfg;
    AmbrCfg   *ambrCfg;
    ModulationInfo dlModInfo;    /* DL modulation info */
@@ -1260,6 +1257,31 @@ typedef struct ueCfgRsp
    SCellFailInfo  *failedSCellList;
 }MacUeCfgRsp;
 
+typedef struct ueDelete
+{
+    uint16_t cellId;
+    uint8_t  ueId;
+    uint16_t crnti;
+}MacUeDelete;
+
+typedef struct ueDeleteRsp
+{
+   uint16_t cellId;
+   uint8_t  ueId;
+   UeDeleteStatus result;
+}MacUeDeleteRsp;
+
+typedef struct macCellDelete
+{
+   uint16_t cellId;
+}MacCellDelete;
+
+typedef struct macCellDeleteRsp
+{
+   uint16_t cellId;
+   CellDeleteStatus result;
+}MacCellDeleteRsp;
+
 /* Functions for slot Ind from MAC to DU APP*/
 typedef uint8_t (*DuMacCellUpInd) ARGS((
         Pst       *pst,
@@ -1322,6 +1344,26 @@ typedef uint8_t (*DuMacUeReconfigReq) ARGS((
         Pst           *pst,
         MacUeCfg      *ueCfg ));
 
+/* UE Delete Request from DU APP to MAC*/
+typedef uint8_t (*DuMacUeDeleteReq) ARGS((
+     Pst           *pst,
+     MacUeDelete   *ueDel ));
+
+/* UE Delete Response from MAC to DU APP*/
+typedef uint8_t (*MacDuUeDeleteRspFunc) ARGS((
+     Pst            *pst,
+     MacUeDeleteRsp *deleteRsp));
+
+/* Cell Delete Request from DU APP to MAC*/
+typedef uint8_t (*DuMacCellDeleteReq) ARGS((
+     Pst           *pst,
+     MacCellDelete *cellDelete ));
+
+/* Cell Delete Response from MAC to DU APP*/
+typedef uint8_t (*MacDuCellDeleteRspFunc) ARGS((
+     Pst            *pst,
+     MacCellDeleteRsp *cellDeleteRsp));
+
 uint8_t packMacCellUpInd(Pst *pst, OduCellId *cellId);
 uint8_t unpackMacCellUpInd(DuMacCellUpInd func, Pst *pst, Buffer *mBuf);
 uint8_t duHandleCellUpInd(Pst *pst, OduCellId *cellId);
@@ -1356,9 +1398,22 @@ uint8_t DuProcMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp);
 uint8_t packDuMacUeReconfigReq(Pst *pst, MacUeCfg *ueCfg);
 uint8_t unpackMacUeReconfigReq(DuMacUeReconfigReq func, Pst *pst, Buffer *mBuf);
 uint8_t MacProcUeReconfigReq(Pst *pst, MacUeCfg *ueCfg);
+uint8_t packDuMacUeDeleteReq(Pst *pst, MacUeDelete *ueDelete);
+uint8_t MacProcUeDeleteReq(Pst *pst,  MacUeDelete *ueDelete);
+uint8_t unpackMacUeDeleteReq(DuMacUeDeleteReq func, Pst *pst, Buffer *mBuf);
+uint8_t packDuMacUeDeleteRsp(Pst *pst, MacUeDeleteRsp *deleteRsp);
+uint8_t DuProcMacUeDeleteRsp(Pst *pst, MacUeDeleteRsp *deleteRsp);
+uint8_t unpackDuMacUeDeleteRsp(MacDuUeDeleteRspFunc func, Pst *pst, Buffer *mBuf);
+uint8_t packDuMacCellDeleteReq(Pst *pst, MacCellDelete *cellDelete);
+uint8_t MacProcCellDeleteReq(Pst *pst, MacCellDelete *cellDelete);
+uint8_t unpackMacCellDeleteReq(DuMacCellDeleteReq func, Pst *pst, Buffer *mBuf);
+uint8_t packDuMacCellDeleteRsp(Pst *pst, MacCellDeleteRsp *cellDeleteRsp);
+uint8_t DuProcMacCellDeleteRsp(Pst *pst, MacCellDeleteRsp *cellDeleteRsp);
+uint8_t unpackDuMacCellDeleteRsp(MacDuCellDeleteRspFunc func, Pst *pst, Buffer *mBuf);
 
 #endif
 
+
 /**********************************************************************
   End of file
  **********************************************************************/