X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_mgr.h;h=6b4183f6859d4add1c533c8e357da123f336ce78;hb=0bdd575f55257e64b4becb4cee0df0dab2bac3fa;hp=f229b1ba083d06725389932429249d85f261019c;hpb=80a4fa9d0aede180472530cab6efa6acc925424b;p=o-du%2Fl2.git diff --git a/src/du_app/du_mgr.h b/src/du_app/du_mgr.h index f229b1ba0..6b4183f68 100644 --- a/src/du_app/du_mgr.h +++ b/src/du_app/du_mgr.h @@ -58,9 +58,9 @@ #define DU_PROC 0 /* Memory related configs */ #define DU_APP_MEM_REGION 0 -#define RLC_UL_MEM_REGION 1 -#define RLC_DL_MEM_REGION 4 -#define RG_MEM_REGION 4 +#define RLC_UL_MEM_REGION 1 +#define RLC_DL_MEM_REGION 4 +#define MAC_MEM_REGION 4 #define DU_POOL 1 #define RLC_POOL 1 @@ -99,8 +99,9 @@ #define DU_ZERO_VAL 0 -/* Macros */ +#define DU_UE_START_CRNTI 100 +/* Macros */ #define ADD 0 #define DEL 1 @@ -139,11 +140,32 @@ SPutSBuf(DU_APP_MEM_REGION, DU_POOL, \ (Data *)_datPtr, _size); +/* Allocate shared memory to be used for LWLC + * during inter-layer communication */ +#define DU_ALLOC_SHRABL_BUF(_buf, _size) \ +{ \ + if(SGetStaticBuffer(DU_APP_MEM_REGION, DU_POOL, \ + (Data **)&_buf, (Size) _size, 0) == ROK) \ + { \ + cmMemset((U8 *)(_buf), 0, _size); \ + } \ + else \ + { \ + (_buf) = NULLP; \ + } \ +} + /* Free shared memory, received through LWLC */ -#define DU_FREE_MEM(_region, _pool, _datPtr, _size) \ - if(_datPtr) \ - SPutSBuf(_region, _pool,(Data *)_datPtr, _size); \ - _datPtr = NULL; +#define DU_FREE_SHRABL_BUF(_region, _pool,_buf, _size) \ +{ \ + if (_buf != NULLP) \ + { \ + (Void) SPutStaticBuffer(_region, _pool, \ + (Data *) _buf, (Size) _size, 0); \ + _buf = NULLP; \ + } \ +} + typedef enum { @@ -153,6 +175,12 @@ typedef enum DELETION_IN_PROGRESS }CellStatus; +typedef enum +{ + UE_INACTIVE, + UE_ACTIVE +}UeState; + typedef struct cellCfgParams { NrEcgi nrEcgi; /* ECGI */ @@ -162,12 +190,22 @@ typedef struct cellCfgParams U32 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; +}DuUeCb; typedef struct duCellCb { - U32 cellId; /* Internal cell Id */ - CellCfgParams cellInfo; /* Cell info */ - CellStatus cellStatus; /*Cell status */ + uint16_t cellId; /* Internal cell Id */ + CellCfgParams cellInfo; /* Cell info */ + Bool firstSlotIndRcvd; + CellStatus cellStatus; /* Cell status */ + uint32_t numActvUes; /* Total Active UEs */ + DuUeCb ueCb[DU_MAX_UE]; /* UE CONTEXT */ }DuCellCb; typedef struct duLSapCb @@ -183,6 +221,14 @@ typedef struct duLSapCb TmrCfg bndTmr; }DuLSapCb; +typedef struct ueCcchCtxt +{ + uint32_t gnbDuUeF1apId; /* GNB DU UE F1AP ID */ + uint16_t crnti; /* CRNTI */ + uint16_t cellId; /* Cell Id */ +}UeCcchCtxt; + + /* DU APP DB */ typedef struct duCb { @@ -194,7 +240,9 @@ typedef struct duCb DuCellCb* cfgCellLst[DU_MAX_CELLS]; /* List of cells at DU APP of type DuCellCb */ DuCellCb* actvCellLst[DU_MAX_CELLS]; /* 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 */ + MacCellCfg *duMacCellCfg; /* pointer to store params while sending DU-APP to MAC */ + uint32_t numUe; /* current number of UEs */ + UeCcchCtxt ueCcchCtxt[DU_MAX_UE]; /* mapping of gnbDuUeF1apId to CRNTI required for CCCH processing*/ }DuCb; @@ -252,6 +300,7 @@ S16 duSendEgtpTestData(); S16 duSendEgtpDatInd(Buffer *mBuf); S16 duHdlSchCfgComplete(Pst *pst, RgMngmt *cfm); uint16_t duBuildAndSendMacCellStartReq(); +uint16_t duBuildAndSendMacCellStopReq(); #endif