X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_mgr.h;h=c9f402e8a41ae202d384d1e2701794d3ea451ec1;hb=ba78fa13b01e0729fe0a6a7a18cbf1d52cdcda1c;hp=4d876f3722cc9551fb9a9cf827763200468ea310;hpb=4d45b914f9e94203603d3b9fdbcb1aad361301dd;p=o-du%2Fl2.git diff --git a/src/du_app/du_mgr.h b/src/du_app/du_mgr.h index 4d876f372..c9f402e8a 100644 --- a/src/du_app/du_mgr.h +++ b/src/du_app/du_mgr.h @@ -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,28 +71,77 @@ 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; + uint8_t numRlcLcs; /* Rlc Ue Cfg */ + RlcBearerCfg rlcLcCfg[MAX_NUM_LC]; + uint8_t numMacLcs; /* Mac Ue Cfg */ + LcCfg macLcCfg[MAX_NUM_LC]; + MaxAggrBitRate *maxAggrBitRate; +}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 */ + /* pointer to store the address of macCellCfg params used to send du-app to MAC */ + MacCellCfg *duMacCellCfg; bool firstSlotIndRcvd; CellStatus cellStatus; /* Cell status */ uint32_t numActvUes; /* Total Active UEs */ @@ -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; @@ -169,10 +216,10 @@ uint8_t duSendRlcDlCfg(); uint8_t duBuildRlcCfg(Inst inst); uint8_t duBuildRlcLsapCfg(Ent ent, Inst inst, uint8_t lsapInst); uint8_t duBuildRlcUsapCfg(uint8_t elemId, Ent ent, Inst inst); -uint8_t DuHdlRlcCfgComplete(Pst *pst, KwMngmt *cfm); -uint8_t duHdlRlcCntrlCfgComplete(Pst *pst, KwMngmt *cfm); -uint8_t duProcRlcUlCfgComplete(Pst *pst, KwMngmt *cfm); -uint8_t duProcRlcDlCfgComplete(Pst *pst, KwMngmt *cfm); +uint8_t DuHdlRlcCfgComplete(Pst *pst, RlcMngmt *cfm); +uint8_t duHdlRlcCntrlCfgComplete(Pst *pst, RlcMngmt *cfm); +uint8_t duProcRlcUlCfgComplete(Pst *pst, RlcMngmt *cfm); +uint8_t duProcRlcDlCfgComplete(Pst *pst, RlcMngmt *cfm); uint8_t duSendMacCfg(); uint8_t duBuildMacGenCfg(); uint8_t duBuildMacUsapCfg(SpId sapId);