/* 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 MAC_MEM_REGION 4
-
-#define DU_POOL 1
-#define RLC_POOL 1
-#define RG_POOL 1
-
-/* Events */
-#define EVTCFG 0
-#define EVTSCTPSTRT 1
-#define EVENT_CU_DATA 2
-#define EVENT_SCTP_NTFY 3
-#define EVTSRVOPENREQ 4
-#define EVTSRVOPENCFM 5
-#define EVTTNLMGMTREQ 6
-#define EVTTNLMGMTCFM 7
-#define EVTSLOTIND 8
-#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
#define DU_ZERO_VAL 0
-#define DU_UE_START_CRNTI 100
-
/* Macros */
#define ADD 0
#define DEL 1
#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);
-
-/* 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_SHRABL_BUF(_region, _pool,_buf, _size) \
-{ \
- if (_buf != NULLP) \
- { \
- (Void) SPutStaticBuffer(_region, _pool, \
- (Data *) _buf, (Size) _size, 0); \
- _buf = NULLP; \
- } \
-}
-
-
typedef enum
{
CELL_OUT_OF_SERVICE,
typedef enum
{
UE_INACTIVE,
- UE_ACTIVE
+ UE_ACTIVE
}UeState;
typedef struct cellCfgParams
uint32_t gnbCuUeF1apId; /* GNB CU UE F1AP ID */
UeState ueState;
MacUeCfg macUeCfg;
+ RlcUeCfg rlcUeCfg;
}DuUeCb;
typedef struct duCellCb
CellCfgParams cellInfo; /* Cell info */
Bool firstSlotIndRcvd;
CellStatus cellStatus; /* Cell status */
- uint32_t numActvUes; /* Total Active UEs */
- DuUeCb ueCb[DU_MAX_UE]; /* UE CONTEXT */
+ uint32_t numActvUes; /* Total Active UEs */
+ DuUeCb ueCb[MAX_NUM_UE]; /* UE CONTEXT */
}DuCellCb;
typedef struct duLSapCb
//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 */
uint32_t numUe; /* current number of UEs */
- UeCcchCtxt ueCcchCtxt[DU_MAX_UE]; /* mapping of gnbDuUeF1apId to CRNTI required for CCCH processing*/
+ UeCcchCtxt ueCcchCtxt[MAX_NUM_UE]; /* mapping of gnbDuUeF1apId to CRNTI required for CCCH processing*/
}DuCb;
S16 duBuildRlcCfg(Inst inst);
S16 duBuildRlcLsapCfg(Ent ent, Inst inst, U8 lsapInst);
S16 duBuildRlcUsapCfg(U8 elemId, Ent ent, Inst inst);
-S16 duHdlRlcCfgComplete(Pst *pst, KwMngmt *cfm);
+S16 DuHdlRlcCfgComplete(Pst *pst, KwMngmt *cfm);
S16 duHdlRlcCntrlCfgComplete(Pst *pst, KwMngmt *cfm);
S16 duProcRlcUlCfgComplete(Pst *pst, KwMngmt *cfm);
S16 duProcRlcDlCfgComplete(Pst *pst, KwMngmt *cfm);
S16 duSendEgtpTestData();
S16 duSendEgtpDatInd(Buffer *mBuf);
S16 duHdlSchCfgComplete(Pst *pst, RgMngmt *cfm);
-uint16_t duBuildAndSendMacCellStartReq();
-uint16_t duBuildAndSendMacCellStopReq();
-
+uint8_t duBuildAndSendMacCellStartReq();
+uint8_t duBuildAndSendMacCellStopReq();
#endif
/**********************************************************************
- End of file
-**********************************************************************/
+ End of file
+ **********************************************************************/