X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_ue_mgr.c;h=fec8c1521e89ce1db100e0858da1e9d15cf1d411;hb=ef711b0830aedde36f4a1beceed146d08e77ce58;hp=080b8bf4da8ea6971b1dc7e47122af53d211a2a5;hpb=d10b52519198632f93deae9574adc69c7ce12efa;p=o-du%2Fl2.git diff --git a/src/du_app/du_ue_mgr.c b/src/du_app/du_ue_mgr.c index 080b8bf4d..fec8c1521 100644 --- a/src/du_app/du_ue_mgr.c +++ b/src/du_app/du_ue_mgr.c @@ -17,7 +17,10 @@ *******************************************************************************/ /* This file contains UE management handling functionality for DU APP */ #include "du_ue_mgr.h" -#include "du_cfg.h" + +#ifdef EGTP_TEST +U32 sduId = 0; +#endif /****************************************************************** * @@ -37,23 +40,30 @@ S16 duSendUeCreateReqToRlc() { U8 idx; Pst pst; - CkwCfgInfo ueCfg; + CkwCfgInfo *ueCfg; DU_SET_ZERO(&ueCfg, sizeof(ueCfg)); DU_SET_ZERO(&pst, sizeof(Pst)); - ueCfg.ueId = 1; - ueCfg.cellId = NR_CELL_ID; - ueCfg.numEnt = 1; + DU_ALLOC(ueCfg, sizeof(CkwCfgInfo)); + +#ifdef EGTP_TEST + ueCfg->ueId = UE_ID; +#endif + ueCfg->cellId = NR_CELL_ID; + ueCfg->numEnt = 1; - for(idx = 0; idx < ueCfg.numEnt; idx++) + for(idx = 0; idx < ueCfg->numEnt; idx++) { - ueCfg.entCfg[idx].rbId = 1; - ueCfg.entCfg[idx].rbType = CM_LTE_DRB; - ueCfg.entCfg[idx].entMode = CM_LTE_MODE_UM; - ueCfg.entCfg[idx].dir = CKW_CFG_DIR_BOTH; - - switch(ueCfg.entCfg[idx].entMode) +#ifdef EGTP_TEST + ueCfg->entCfg[idx].rbId = RB_ID; + ueCfg->entCfg[idx].rbType = CM_LTE_DRB; + ueCfg->entCfg[idx].lCh[0].lChId = LC_ID; + ueCfg->entCfg[idx].lCh[0].type = CM_LTE_LCH_DTCH; +#endif + ueCfg->entCfg[idx].entMode = CM_LTE_MODE_UM; + ueCfg->entCfg[idx].dir = CKW_CFG_DIR_BOTH; + switch(ueCfg->entCfg[idx].entMode) { case CM_LTE_MODE_TM: { @@ -62,9 +72,9 @@ S16 duSendUeCreateReqToRlc() case CM_LTE_MODE_UM: { - ueCfg.entCfg[idx].m.umInfo.dl.snLen = 1; /* For 12 bit SN */ - ueCfg.entCfg[idx].m.umInfo.ul.snLen = 1; /* For 12 bit SN */ - ueCfg.entCfg[idx].m.umInfo.ul.reOrdTmr = 10; /* in msec */ + ueCfg->entCfg[idx].m.umInfo.dl.snLen = 1; /* For 12 bit SN */ + ueCfg->entCfg[idx].m.umInfo.ul.snLen = 1; /* For 12 bit SN */ + ueCfg->entCfg[idx].m.umInfo.ul.reOrdTmr = 10; /* in msec */ break; } @@ -88,11 +98,87 @@ S16 duSendUeCreateReqToRlc() pst.region = duCb.init.region; /* Sending to RLC */ - packUeCreateReq(&pst, &ueCfg); + packUeCreateReq(&pst, ueCfg); RETVALUE(ROK); } /* End of duSendUeCreateReqToRlc */ +/******************************************************************* + * + * @brief Handles EGTP data from CU + * + * @details + * + * Function : duHdlEgtpData + * + * Functionality: + * Processes EGTP header and sends data to RLC + * + * @params[in] Pointer to EGTP Message + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +S16 duHdlEgtpDlData(EgtpMsg *egtpMsg) +{ + /* TODO : Extract RbId/UeID/CellID/SduId from database + using tunnel id in egtp header */ + + DU_LOG("\nDU_APP : Processing DL data"); + + Pst pst; + KwuDatReqInfo datReqInfo; + +#ifdef EGTP_TEST + datReqInfo.rlcId.rbId = RB_ID; + datReqInfo.rlcId.rbType = CM_LTE_DRB; + datReqInfo.rlcId.ueId = UE_ID; + datReqInfo.rlcId.cellId = NR_CELL_ID; + + datReqInfo.sduId = ++sduId; + datReqInfo.lcType = CM_LTE_LCH_DTCH; +#endif + /* Filling pst and Sending to RLC DL */ + pst.selector = DU_SELECTOR_LWLC; + pst.srcEnt = ENTDUAPP; + pst.dstEnt = ENTKW; + pst.dstInst = RLC_DL_INST; + pst.dstProcId = DU_PROC; + pst.srcProcId = DU_PROC; + pst.region = duCb.init.region; + + cmPkKwuDatReq(&pst, &datReqInfo, egtpMsg->msg); + return ROK; +} + +/******************************************************************* + * + * @brief Handles UL data and send to CU + * + * @details + * + * Function : duHdlRlcUlData + * + * Functionality: + * Processes UL Data from RLC and sends to CU + * + * @params[in] Pointer to EGTP Message + * @return ROK - success + * RFAILED - failure + * + *****************************************************************/ + +PUBLIC S16 duHdlRlcUlData(Pst *pst, KwuDatIndInfo* datInd, Buffer *mBuf) +{ + DU_LOG("\nDU_APP : Received UL Data at DU_APP"); + + /* Send UL data to CU via EGTP */ + duSendEgtpDatInd(mBuf); + SPutMsg(mBuf); + + return ROK; +} + /********************************************************************** End of file ***********************************************************************/