[Epic-ID: ODUHIGH-405][Task-ID: ODUHIGH-425] Fixes in the CU stub for memory-related...
[o-du/l2.git] / src / cu_stub / cu_stub.h
index efb800f..d2c3f88 100644 (file)
    SPutSBuf(CU_APP_MEM_REG, CU_POOL,                         \
          (Data *)_datPtr, _size);
 
+#define SEARCH_DU_DB(_duIdx, _duId, _duDb){\
+   _duDb = NULLP; \
+   for(_duIdx=0; _duIdx < cuCb.numDu; _duIdx++)\
+   {\
+      if(cuCb.duInfo[_duIdx].duId == _duId)\
+      {\
+         _duDb =  (&cuCb.duInfo[_duIdx]);\
+              break; \
+     }\
+   }\
+}
+
+#define SEARCH_CELL_DB(_cellIdx, _duDb, _nrCellId, _cellCb){\
+   _cellCb = NULLP; \
+   for(_cellIdx=0; _cellIdx < _duDb->numCells; _cellIdx++)\
+   {\
+      if(_duDb->cellCb[_cellIdx].nrCellId == _nrCellId)\
+      {\
+         _cellCb = (&(_duDb->cellCb[_cellIdx]));\
+         break;\
+      }\
+   }\
+}
+
+
+typedef enum
+{
+   UE_IDLE,
+   UE_ATTACH_IN_PROGRESS,
+   UE_ACTIVE,
+   UE_HANDOVER_IN_PROGRESS
+}UeState;
+
 typedef struct RrcVersion
 {
   uint8_t    rrcVer;     /* Latest RRC Version */
@@ -86,12 +119,33 @@ typedef struct cuCfgParams
    RrcVersion       rrcVersion;
 }CuCfgParams;
 
+typedef struct cuCellCb CuCellCb;
+
+typedef struct cuUeCb
+{
+   CuCellCb  *cellCb;
+   uint32_t  crnti;
+   uint8_t   gnbDuUeF1apId;
+   uint8_t   gnbCuUeF1apId;
+   F1apMsgDb f1apMsgDb;
+   UeState   state;
+}CuUeCb;
+
+struct cuCellCb
+{
+   uint32_t nrCellId;
+   uint8_t  numUe;
+   CuUeCb   *ueCb[MAX_NUM_UE];
+};
+
 typedef struct duDb
 {
    uint32_t duId;
    char     duName[CU_DU_NAME_LEN_MAX];
-   //Cell Info
-   //UE Info within each Cell
+   uint8_t  numCells;
+   CuCellCb cellCb[MAX_NUM_CELL];  
+   uint8_t  numUe;
+   CuUeCb   ueCb[MAX_NUM_CELL * MAX_NUM_UE];
 }DuDb;
 
 typedef struct cuGlobalCb
@@ -101,6 +155,7 @@ typedef struct cuGlobalCb
    Snssai      *snssaiList[MAX_NUM_OF_SLICE];
    uint8_t     numDu;
    DuDb        duInfo[MAX_DU_SUPPORTED];
+   uint32_t    gnbCuUeF1apIdGenerator;   /* Generating CU UE F1AP ID */
 }CuGlobalCb;
 
 CuGlobalCb cuCb;