[Epic-ID: ODUHIGH-510][Task-ID: ODUHIGH-514] DU-initiated E2 Reset Procedure
[o-du/l2.git] / src / du_app / du_mgr.h
index e7345f5..7904f47 100644 (file)
@@ -80,7 +80,8 @@ typedef enum
    UE_INACTIVE,
    UE_ACTIVE,
    UE_HANDIN_IN_PROGRESS,
-   UE_DELETION_IN_PROGRESS
+   UE_DELETION_IN_PROGRESS,
+   UE_RESET_IN_PROGRESS
 }UeState;
 
 typedef enum
@@ -140,19 +141,65 @@ typedef struct drxCycle
 }DrxCycle;
 #endif
 
+typedef struct duLcCfg
+{
+   ConfigType configType;
+   LcCfg      lcConfig;
+}DuLcCfg;
+
+typedef struct duMacUeCfg
+{
+   uint16_t               cellId;
+   uint8_t                ueId;
+   uint16_t               crnti;
+   bool                   macCellGrpCfgPres;
+   MacCellGrpCfg          macCellGrpCfg;
+   bool                   phyCellGrpCfgPres;
+   PhyCellGrpCfg          phyCellGrpCfg;
+   bool                   spCellCfgPres;
+   SpCellRecfg            spCellCfg;
+   AmbrCfg                *ambrCfg;
+   ModulationInfo         dlModInfo;    /* DL modulation info */ //TBD
+   ModulationInfo         ulModInfo;    /* UL modulation info */  //TBD
+   uint8_t                numLcs;
+   DuLcCfg                lcCfgList[MAX_NUM_LC];
+   UeCfgState             macUeCfgState;    /* InActive / Completed */ //TBD
+   DataTransmissionAction transmissionAction; //TBD
+#ifdef NR_DRX
+   bool     drxConfigIndicatorRelease;
+#endif
+}DuMacUeCfg;
+
+typedef struct duRlcBearerCfg
+{
+   ConfigType   configType;
+   RlcBearerCfg rlcBearerCfg;
+}DuRlcBearerCfg;
+
+typedef struct duRlcUeCfg
+{
+   uint16_t       cellId;
+   uint8_t        ueId;
+   uint8_t        numLcs;
+   DuRlcBearerCfg rlcLcCfg[MAX_NUM_LC];
+   UeCfgState     rlcUeCfgState; /* InActive / Completed */
+}DuRlcUeCfg;
+
+
 typedef struct duUeCfg
 {
    void *cellGrpCfg;
    void *ueNrCapability;
    uint8_t numRlcLcs;        /* Rlc Ue Cfg */
-   RlcBearerCfg rlcLcCfg[MAX_NUM_LC];
+   DuRlcBearerCfg rlcLcCfg[MAX_NUM_LC];
    uint8_t numMacLcs;        /* Mac Ue Cfg */
-   LcCfg   macLcCfg[MAX_NUM_LC];
+   DuLcCfg   macLcCfg[MAX_NUM_LC];
    AmbrCfg *ambrCfg;
    uint8_t numDrb;
    UpTnlCfg upTnlInfo[MAX_NUM_DRB];  /* User plane TNL Info*/
    uint8_t numDrbSetupMod;        /*No. of DRB Added during Modification*/
-   MacUeCfg copyOfmacUeCfg;
+   uint8_t numDrbModified;        /*No. of DRB Modified during Modification*/
+   DuMacUeCfg copyOfmacUeCfg;
    DataTransmissionAction dataTransmissionAction;
 #ifdef NR_DRX
    bool     drxCyclePres;
@@ -188,8 +235,8 @@ typedef struct duUeCb
    uint32_t drbBitMap;       /* Drb Bit Map */
    UeState  ueState;         /* UE Active/ Ue Inactive state */
    MacCfraResource cfraResource; /* CF-RA resource assigned by MAC/SCH */
-   MacUeCfg macUeCfg;        /* Mac Ue Cfg */
-   RlcUeCfg rlcUeCfg;        /* Rlc Ue Cfg */
+   DuMacUeCfg duMacUeCfg;        /* Mac Ue Cfg */
+   DuRlcUeCfg duRlcUeCfg;        /* Rlc Ue Cfg */
 }DuUeCb;
 
 typedef struct  slotInfo
@@ -283,6 +330,7 @@ typedef struct duCb
    TskInit       init;                      /* DU Init */
    bool          f1Status;                  /* Status of F1 connection */
    bool          e2Status;                  /* Status of E2 connection */
+   E2apDb        e2apDb;                    /* E2AP database */
    uint8_t       numCfgCells;               /* number of configured cells */ 
    DuCellCb*     cfgCellLst[MAX_NUM_CELL];  /* List of cells at DU APP of type DuCellCb */
    uint8_t       numActvCells;              /* Number of active cells */