UL data path changes at Phy stub, RLC UL UM and DU APP [Issue-ID: ODUHIGH-262]
[o-du/l2.git] / src / du_app / du_mgr.h
index a02ec5c..c48583a 100644 (file)
@@ -55,7 +55,7 @@
 #define MAC_CONFIGURED (MAC_GEN_CFG | MAC_SAP_CFG)
 
 #define DU_SET_ZERO(_buf, _size)   \
-   memset((uint8_t *)(_buf), 0, _size);
+   memset((_buf), 0, _size);
 
 typedef enum
 {
@@ -71,29 +71,78 @@ typedef enum
    UE_ACTIVE
 }UeState;
 
+typedef enum
+{
+   UE_CTXT_UNKNOWN,
+   UE_CTXT_SETUP,
+   UE_CTXT_MOD
+}UeCtxtActionType;
+
+/** F1AP Msg IE **/
+typedef struct f1setupRsp
+{
+   uint32_t transId; /* Uniquely identify transaction */
+   char     cuName[CU_DU_NAME_LEN_MAX];   /* CU Name */
+   F1RrcVersion    rrcVersion;  /* RRC version */
+}F1SetupRsp;
+
+typedef struct f1DlRrcMsg 
+{
+   uint32_t gnbDuUeF1apId;
+   uint32_t gnbCuUeF1apId;
+   uint8_t  srbId;
+   bool     execDup;
+   bool     deliveryStatRpt;
+   uint16_t rrcMsgSize;
+   uint8_t  *rrcMsgPdu;
+}F1DlRrcMsg;
+
+typedef struct duUeCfg
+{
+   void *cellGrpCfg;
+   void *ueNrCapability;
+   uint8_t numRlcLcs;        /* Rlc Ue Cfg */
+   RlcBearerCfg rlcLcCfg[MAX_NUM_LC];
+   uint8_t numMacLcs;        /* Mac Ue Cfg */
+   LcCfg   macLcCfg[MAX_NUM_LC];
+   AmbrCfg *ambrCfg;
+}DuUeCfg;
+
+typedef struct f1UeContextSetup
+{
+   UeCtxtActionType actionType;
+   uint8_t cellIdx;
+   DuUeCfg  duUeCfg;        
+   F1DlRrcMsg  *dlRrcMsg;
+}F1UeContextSetupDb;
+
 typedef struct cellCfgParams
 {
    NrEcgi      nrEcgi;         /* ECGI */
-   uint16_t         nrPci;          /* PCI */
-   uint16_t         fiveGsTac;         /* 5gSTac */
-   Plmn      plmn[MAX_PLMN]; /* List of serving PLMN IDs */
-   uint32_t         maxUe;          /* max UE per slot */
+   uint16_t    nrPci;          /* PCI */
+   uint16_t    fiveGsTac;         /* 5gSTac */
+   Plmn        plmn[MAX_PLMN]; /* List of serving PLMN IDs */
+   uint32_t    maxUe;          /* max UE per slot */
 }CellCfgParams;
 
 typedef struct duUeCb
 {
-   uint32_t gnbDuUeF1apId; /* GNB DU UE F1AP ID */
-   uint32_t gnbCuUeF1apId; /* GNB CU UE F1AP ID */
-   UeState  ueState;
-   MacUeCfg macUeCfg;
-   RlcUeCfg rlcUeCfg;
+   F1UeContextSetupDb *f1UeDb;
+   uint16_t crnti;
+   uint32_t gnbDuUeF1apId;   /* GNB DU UE F1AP ID */
+   uint32_t gnbCuUeF1apId;   /* GNB CU UE F1AP ID */
+   uint32_t drbBitMap;       /* Drb Bit Map */
+   UeState  ueState;         /* UE Active/ Ue Inactive state */
+   MacUeCfg macUeCfg;        /* Mac Ue Cfg */
+   RlcUeCfg rlcUeCfg;        /* Rlc Ue Cfg */
 }DuUeCb;
 
 typedef struct duCellCb
 {
    uint16_t       cellId;           /* Internal cell Id */
    CellCfgParams  cellInfo;         /* Cell info */
-   bool           firstSlotIndRcvd;
+   /* pointer to store the address of macCellCfg params used to send du-app to MAC */
+   MacCellCfg    *duMacCellCfg;
    CellStatus     cellStatus;       /* Cell status */
    uint32_t       numActvUes;       /* Total Active UEs */
    DuUeCb         ueCb[MAX_NUM_UE];  /* UE CONTEXT */
@@ -107,8 +156,8 @@ typedef struct duLSapCb
    State       sapState;
    Mem         mem;
    CmTimer     timer;
-   uint8_t          bndRetryCnt;
-   uint8_t          maxBndRetry;
+   uint8_t     bndRetryCnt;
+   uint8_t     maxBndRetry;
    TmrCfg      bndTmr;
 }DuLSapCb;
 
@@ -132,8 +181,6 @@ typedef struct duCb
    DuCellCb*     cfgCellLst[MAX_NUM_CELL];     /* List of cells at DU APP of type DuCellCb */
    uint8_t       numActvCells;
    DuCellCb*     actvCellLst[MAX_NUM_CELL];    /* List of cells activated/to be activated of type DuCellCb */
-   /* pointer to store the address of macCellCfg params used to send du-app to MAC */
-   MacCellCfg    *duMacCellCfg;         /* pointer to store params while sending DU-APP to MAC */
    uint32_t       numUe;            /* current number of UEs */
    UeCcchCtxt     ueCcchCtxt[MAX_NUM_UE]; /* mapping of gnbDuUeF1apId to CRNTI required for CCCH processing*/
 }DuCb;
@@ -188,12 +235,10 @@ uint8_t duHdlEgtpCfgComplete(CmStatus cfm);
 uint8_t duSendEgtpSrvOpenReq();
 uint8_t duHdlEgtpSrvOpenComplete(CmStatus cfm);
 uint8_t duSendEgtpTnlMgmtReq(uint8_t action, uint32_t lclTeid, uint32_t remTeid);
-uint8_t duHdlEgtpTnlMgmtCfm(EgtpTnlEvt tnlEvtCfm);
-uint8_t duSendEgtpTestData();
 uint8_t duSendEgtpDatInd(Buffer *mBuf);
 uint8_t duHdlSchCfgComplete(Pst *pst, RgMngmt *cfm);
-uint8_t duBuildAndSendMacCellStartReq();
-uint8_t duBuildAndSendMacCellStopReq();
+uint8_t duBuildAndSendMacCellStart();
+uint8_t duBuildAndSendMacCellStop();
 #endif
 
 /**********************************************************************