X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_mgr.h;h=49b26d75ca497f78efc6c0ffa8dd9672ec582726;hb=45d134510deb6902b870b4a0fb574b6075fba601;hp=35ef06a3a02258e0f494549ff9663dac65c23f89;hpb=a42c1300602c311dd44fd1e5595dcf6f9f9e1e5d;p=o-du%2Fl2.git diff --git a/src/du_app/du_mgr.h b/src/du_app/du_mgr.h index 35ef06a3a..49b26d75c 100644 --- a/src/du_app/du_mgr.h +++ b/src/du_app/du_mgr.h @@ -19,52 +19,7 @@ /* This file contains message handling functionality for DU cell management */ #ifndef __DU_MGR_H__ #define __DU_MGR_H__ - -#include "stdio.h" -#include "ctype.h" -#include "envopt.h" /* Environment options */ -#include "envdep.h" /* Environment dependent */ -#include "envind.h" /* Environment independent */ -#include "gen.h" /* General */ -#include "ssi.h" /* System services */ -#include "cm5.h" /* Common timer defines */ -#include "cm_tkns.h" /* Common tokens defines */ -#include "cm_mblk.h" /* Common memory allocation library defines */ -#include "cm_llist.h" /* Common link list defines */ -#include "cm_hash.h" /* Common hashlist defines */ -#include "cm_lte.h" -#include "cm_inet.h" -#include "lkw.h" -#include "lrg.h" -#include "legtp.h" -#include "du_app_mac_inf.h" - -#include "gen.x" /* General */ -#include "ssi.x" /* System services */ - -#include "cm5.x" /* Common timer library */ -#include "cm_tkns.x" /* Common tokens */ -#include "cm_mblk.x" /* Common memory allocation */ -#include "cm_llist.x" /* Common link list */ -#include "cm_hash.x" /* Common hashlist */ -#include "cm_lte.x" -#include "cm_inet.x" -#include "cm_lib.x" -#include "lkw.x" -#include "lrg.x" - -#include "du_cfg.h" - #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 DU_POOL 1 -#define RLC_POOL 1 -#define RG_POOL 1 /* Events */ #define EVTCFG 0 @@ -79,10 +34,6 @@ #define EVTSTARTPOLL 9 #define EVENT_RIC_DATA 10 -/* Selector */ -#define DU_SELECTOR_LC 0 -#define DU_SELECTOR_TC 1 -#define DU_SELECTOR_LWLC 2 /* SAP IDs */ #define DU_MAC_SUID 0 @@ -100,7 +51,6 @@ #define DU_ZERO_VAL 0 /* Macros */ - #define ADD 0 #define DEL 1 @@ -121,30 +71,6 @@ #define DU_SET_ZERO(_buf, _size) \ cmMemset((U8 *)(_buf), 0, _size); -/* allocate and zero out a static buffer */ -#define DU_ALLOC(_datPtr, _size) \ -{ \ - S16 _ret; \ - _ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL, \ - (Data **)&_datPtr, _size); \ - if(_ret == ROK) \ - cmMemset((U8*)_datPtr, 0, _size); \ - else \ - _datPtr = NULLP; \ -} - -/* free a static buffer */ -#define DU_FREE(_datPtr, _size) \ - if(_datPtr) \ - SPutSBuf(DU_APP_MEM_REGION, DU_POOL, \ - (Data *)_datPtr, _size); - -/* Free shared memory, received through LWLC */ -#define DU_FREE_MEM(_region, _pool, _datPtr, _size) \ - if(_datPtr) \ - SPutSBuf(_region, _pool,(Data *)_datPtr, _size); \ - _datPtr = NULL; - typedef enum { CELL_OUT_OF_SERVICE, @@ -153,6 +79,12 @@ typedef enum DELETION_IN_PROGRESS }CellStatus; +typedef enum +{ + UE_INACTIVE, + UE_ACTIVE +}UeState; + typedef struct cellCfgParams { NrEcgi nrEcgi; /* ECGI */ @@ -162,13 +94,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 */ + uint16_t cellId; /* Internal cell Id */ + CellCfgParams cellInfo; /* Cell info */ Bool firstSlotIndRcvd; - CellStatus cellStatus; /*Cell status */ + CellStatus cellStatus; /* Cell status */ + uint32_t numActvUes; /* Total Active UEs */ + DuUeCb ueCb[MAX_NUM_UE]; /* UE CONTEXT */ }DuCellCb; typedef struct duLSapCb @@ -184,6 +125,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 { @@ -192,10 +141,14 @@ typedef struct duCb //DuLSapCb **macSap; /* MAC SAP */ Bool f1Status; /* Status of F1 connection */ Bool e2Status; /* Status of E2 connection */ - 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 */ + uint8_t numCfgCells; + 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 */ + 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; @@ -252,10 +205,11 @@ S16 duHdlEgtpTnlMgmtCfm(EgtpTnlEvt tnlEvtCfm); S16 duSendEgtpTestData(); S16 duSendEgtpDatInd(Buffer *mBuf); S16 duHdlSchCfgComplete(Pst *pst, RgMngmt *cfm); -uint16_t duBuildAndSendMacCellStartReq(); +uint8_t duBuildAndSendMacCellStartReq(); +uint8_t duBuildAndSendMacCellStopReq(); #endif /********************************************************************** - End of file -**********************************************************************/ + End of file + **********************************************************************/