From: lal.harshita Date: Wed, 22 Mar 2023 08:23:15 +0000 (+0530) Subject: [Epic-ID: ODUHIGH-488][Task-ID: ODUHIGH-501] Ue Create and Rsp correction in DUAPP... X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=o-du%2Fl2.git;a=commitdiff_plain;h=52ca0cf30806914e2f44054932cd2300f12aded8 [Epic-ID: ODUHIGH-488][Task-ID: ODUHIGH-501] Ue Create and Rsp correction in DUAPP-RLC/MAC interface Signed-off-by: lal.harshita Change-Id: I98bf5aac7573d62d52203475ede3fca20a5c0b12 Signed-off-by: lal.harshita --- diff --git a/src/5gnrmac/mac.h b/src/5gnrmac/mac.h index ea4bfa0cd..64ff813fb 100644 --- a/src/5gnrmac/mac.h +++ b/src/5gnrmac/mac.h @@ -229,19 +229,19 @@ typedef struct macUeCb struct macCellCb { - uint16_t cellId; - uint16_t numOfSlots; - MacCellStatus state; - uint16_t crntiMap; - MacRaCbInfo macRaCb[MAX_NUM_UE]; - MacDlSlot dlSlot[MAX_SLOTS]; - MacUlSlot ulSlot[MAX_SLOTS]; - uint16_t numActvUe; - MacUeCfg *ueCfgTmpData[MAX_NUM_UE]; - MacUeRecfg *ueRecfgTmpData[MAX_NUM_UE]; - MacUeCb ueCb[MAX_NUM_UE]; - MacCellCfg macCellCfg; - SlotTimingInfo currTime; + uint16_t cellId; + uint16_t numOfSlots; + MacCellStatus state; + uint16_t crntiMap; + MacRaCbInfo macRaCb[MAX_NUM_UE]; + MacDlSlot dlSlot[MAX_SLOTS]; + MacUlSlot ulSlot[MAX_SLOTS]; + uint16_t numActvUe; + MacUeCreateReq *ueCfgTmpData[MAX_NUM_UE]; + MacUeRecfg *ueRecfgTmpData[MAX_NUM_UE]; + MacUeCb ueCb[MAX_NUM_UE]; + MacCellCfg macCellCfg; + SlotTimingInfo currTime; }; typedef struct macCb diff --git a/src/5gnrmac/mac_ue_mgr.c b/src/5gnrmac/mac_ue_mgr.c index 99c4e8d71..cea930536 100644 --- a/src/5gnrmac/mac_ue_mgr.c +++ b/src/5gnrmac/mac_ue_mgr.c @@ -28,11 +28,11 @@ #include "mac.h" #include "mac_utils.h" -MacDuUeCfgRspFunc macDuUeCfgRspOpts[] = +MacDuUeCreateRspFunc macDuUeCreateRspOpts[] = { - packDuMacUeCfgRsp, /* packing for loosely coupled */ - DuProcMacUeCfgRsp, /* packing for tightly coupled */ - packDuMacUeCfgRsp /* packing for light weight loosly coupled */ + packDuMacUeCreateRsp, /* packing for loosely coupled */ + DuProcMacUeCreateRsp, /* packing for tightly coupled */ + packDuMacUeCreateRsp /* packing for light weight loosly coupled */ }; MacDuUeRecfgRspFunc macDuUeRecfgRspOpts[] = @@ -1756,7 +1756,7 @@ uint8_t fillLogicalChannelCfg(SchLcCfg *schLcCfg, LcCfg *macLcCfg) * * ****************************************************************/ -uint8_t fillSchLcCfgList(SchUeCfgReq *schUeCfg, MacUeCfg *ueCfg) +uint8_t fillSchLcCfgList(SchUeCfgReq *schUeCfg, MacUeCreateReq *ueCfg) { uint8_t lcIdx; @@ -1836,7 +1836,7 @@ uint8_t fillSchLcRecfgList(SchUeRecfgReq *schUeRecfg, MacUeRecfg *ueRecfg) * RFAILED - failure * * ****************************************************************/ -uint8_t fillSchUeCfg(SchUeCfgReq *schUeCfg, MacUeCfg *ueCfg) +uint8_t fillSchUeCfg(SchUeCfgReq *schUeCfg, MacUeCreateReq *ueCfg) { uint8_t ret = ROK; @@ -2225,7 +2225,7 @@ void updateMacDlLcCtxt(UeDlCb *dlInfo, LcCfg *ueLcCfg, uint8_t lcIdToDel) * * ****************************************************************/ -uint8_t fillMacLcCfgList(MacUeCb *ueCb, MacUeCfg *ueCfg) +uint8_t fillMacLcCfgList(MacUeCb *ueCb, MacUeCreateReq *ueCfg) { uint8_t lcIdx = 0; @@ -2378,7 +2378,7 @@ uint8_t updateMacLcCfgList(MacUeCb *ueCb, MacUeRecfg *ueRecfg) * * ****************************************************************/ -uint8_t fillMacUeCb(MacUeCb *ueCb, MacUeCfg *ueCfg, uint8_t cellIdx) +uint8_t fillMacUeCb(MacUeCb *ueCb, MacUeCreateReq *ueCfg, uint8_t cellIdx) { uint8_t ret = ROK; @@ -2531,7 +2531,7 @@ void deleteMacRaCb(uint16_t cellIdx, MacUeCb *ueCb) * RFAILED - failure * * ****************************************************************/ -uint8_t createUeCb(uint8_t cellIdx, MacUeCb *ueCb, MacUeCfg *ueCfg) +uint8_t createUeCb(uint8_t cellIdx, MacUeCb *ueCb, MacUeCreateReq *ueCfg) { uint8_t ret = ROK; uint8_t hqProcIdx = 0; @@ -2630,7 +2630,7 @@ uint8_t modifyUeCb(uint8_t cellIdx, MacUeCb *ueCb, MacUeRecfg *ueRecfg) * * ****************************************************************/ -uint8_t procMacUeCfgData(Pst *pst, MacUeCfg *ueCfg, MacUeRecfg *ueRecfg) +uint8_t procMacUeCfgData(Pst *pst, MacUeCreateReq *ueCfg, MacUeRecfg *ueRecfg) { uint8_t ret = ROK, ueId = 0; uint16_t cellIdx, cellId; @@ -2702,27 +2702,27 @@ uint8_t procMacUeCfgData(Pst *pst, MacUeCfg *ueCfg, MacUeRecfg *ueRecfg) * * Functionality: Function to store the UeCfg Data * - * @params[in] MacUeCfg pointer + * @params[in] MacUeCreateReq pointer * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t copyToTmpData(MacUeCfg *ueCfg, MacUeRecfg *ueRecfg) +uint8_t copyToTmpData(MacUeCreateReq *ueCfg, MacUeRecfg *ueRecfg) { uint8_t cellIdx; if(ueCfg != NULLP) { - MacUeCfg *tmpData = NULLP; + MacUeCreateReq *tmpData = NULLP; - MAC_ALLOC(tmpData, sizeof(MacUeCfg)); + MAC_ALLOC(tmpData, sizeof(MacUeCreateReq)); if(!tmpData) { DU_LOG("\nERROR --> MAC: Memory Alloc Failed at copyToTmpData()"); return RFAILED; } - memcpy(tmpData, ueCfg, sizeof(MacUeCfg)); + memcpy(tmpData, ueCfg, sizeof(MacUeCreateReq)); GET_CELL_IDX(ueCfg->cellId, cellIdx); macCb.macCell[cellIdx]->ueCfgTmpData[ueCfg->ueId-1] = tmpData; } @@ -2758,7 +2758,7 @@ uint8_t copyToTmpData(MacUeCfg *ueCfg, MacUeRecfg *ueRecfg) * RFAILED - failure * * ****************************************************************/ -uint8_t MacProcUeCreateReq(Pst *pst, MacUeCfg *ueCfg) +uint8_t MacProcUeCreateReq(Pst *pst, MacUeCreateReq *ueCfg) { uint8_t ret = ROK; SchUeCfgReq schUeCfg; @@ -2802,7 +2802,7 @@ uint8_t MacProcUeCreateReq(Pst *pst, MacUeCfg *ueCfg) ret = RFAILED; } /* FREE shared memory */ - MAC_FREE_SHRABL_BUF(pst->region, pst->pool, ueCfg, sizeof(MacUeCfg)); + MAC_FREE_SHRABL_BUF(pst->region, pst->pool, ueCfg, sizeof(MacUeCreateReq)); return ret; } @@ -2825,10 +2825,10 @@ uint8_t MacProcUeCreateReq(Pst *pst, MacUeCfg *ueCfg) * ****************************************************************/ uint8_t MacSendUeCreateRsp(MacRsp result, SchUeCfgRsp *schCfgRsp) { - MacUeCfgRsp *cfgRsp; + MacUeCreateRsp *cfgRsp; Pst rspPst; - MAC_ALLOC_SHRABL_BUF(cfgRsp, sizeof(MacUeCfgRsp)); + MAC_ALLOC_SHRABL_BUF(cfgRsp, sizeof(MacUeCreateRsp)); if(!cfgRsp) { DU_LOG("\nERROR --> MAC: Memory allocation for UE config response failed"); @@ -2836,7 +2836,7 @@ uint8_t MacSendUeCreateRsp(MacRsp result, SchUeCfgRsp *schCfgRsp) } /* Filling UE Config response */ - memset(cfgRsp, 0, sizeof(MacUeCfgRsp)); + memset(cfgRsp, 0, sizeof(MacUeCreateRsp)); cfgRsp->cellId = schCfgRsp->cellId; cfgRsp->ueId = schCfgRsp->ueId; cfgRsp->result = result; @@ -2844,7 +2844,7 @@ uint8_t MacSendUeCreateRsp(MacRsp result, SchUeCfgRsp *schCfgRsp) /* Fill Post structure and send UE Create response*/ memset(&rspPst, 0, sizeof(Pst)); FILL_PST_MAC_TO_DUAPP(rspPst, EVENT_MAC_UE_CREATE_RSP); - return (*macDuUeCfgRspOpts[rspPst.selector])(&rspPst, cfgRsp); + return (*macDuUeCreateRspOpts[rspPst.selector])(&rspPst, cfgRsp); } /******************************************************************* @@ -2900,14 +2900,14 @@ uint8_t MacSendUeReconfigRsp(MacRsp result, SchUeRecfgRsp *schCfgRsp) * * @params[in] cellIdx, ueId * - * @return MacUeCfg pointer - success + * @return MacUeCreateReq pointer - success * NULLP - failure * * ****************************************************************/ -MacUeCfg *getMacUeCfg(uint16_t cellIdx, uint8_t ueId) +MacUeCreateReq *getMacUeCfg(uint16_t cellIdx, uint8_t ueId) { - MacUeCfg *ueCfg = NULLP; + MacUeCreateReq *ueCfg = NULLP; if(macCb.macCell[cellIdx]) { ueCfg = macCb.macCell[cellIdx]->ueCfgTmpData[ueId-1]; @@ -2974,7 +2974,7 @@ uint8_t MacProcSchUeCfgRsp(Pst *pst, SchUeCfgRsp *schCfgRsp) uint8_t result = MAC_DU_APP_RSP_NOK; uint8_t ret = ROK; uint16_t cellIdx; - MacUeCfg *ueCfg = NULLP; + MacUeCreateReq *ueCfg = NULLP; #ifdef CALL_FLOW_DEBUG_LOG switch(pst->event) @@ -3016,7 +3016,7 @@ uint8_t MacProcSchUeCfgRsp(Pst *pst, SchUeCfgRsp *schCfgRsp) DU_LOG("\nERROR --> MAC: SCH UeConfigRsp for CRNTI[%d] is failed in MacProcSchUeCfgRsp()", schCfgRsp->crnti); } ret = MacSendUeCreateRsp(result, schCfgRsp); - MAC_FREE(ueCfg, sizeof(MacUeCfg)); + MAC_FREE(ueCfg, sizeof(MacUeCreateReq)); ueCfg = NULLP; return ret; } diff --git a/src/5gnrrlc/rlc_dl_ul_inf_ul.c b/src/5gnrrlc/rlc_dl_ul_inf_ul.c index b7eb803ad..b6afa2021 100755 --- a/src/5gnrrlc/rlc_dl_ul_inf_ul.c +++ b/src/5gnrrlc/rlc_dl_ul_inf_ul.c @@ -262,12 +262,12 @@ RlcCfgCfmInfo *cfmInfo if(tRlcCb->u.ulCb->rlcUlUdxEventType == EVENT_RLC_UE_CREATE_REQ) { FILL_PST_RLC_TO_DUAPP(rspPst, RLC_UL_INST, EVENT_RLC_UE_CREATE_RSP); - SendRlcUeCfgRspToDu(&rspPst, cfgCfm); + SendRlcUeCreateRspToDu(&rspPst, cfgCfm); } else if(tRlcCb->u.ulCb->rlcUlUdxEventType == EVENT_RLC_UE_RECONFIG_REQ) { FILL_PST_RLC_TO_DUAPP(rspPst, RLC_UL_INST, EVENT_RLC_UE_RECONFIG_RSP); - SendRlcUeCfgRspToDu(&rspPst, cfgCfm); + SendRlcUeReconfigRspToDu(&rspPst, cfgCfm); } else if (tRlcCb->u.ulCb->rlcUlUdxEventType == EVENT_RLC_UE_DELETE_REQ) { diff --git a/src/5gnrrlc/rlc_mgr.c b/src/5gnrrlc/rlc_mgr.c index 60391efc0..dd6793464 100644 --- a/src/5gnrrlc/rlc_mgr.c +++ b/src/5gnrrlc/rlc_mgr.c @@ -35,13 +35,19 @@ #include "du_app_rlc_inf.h" #include "rlc_mgr.h" -RlcDuUeCfgRsp rlcUeCfgRspOpts[] = +RlcDuUeCreateRsp rlcUeCreateRspOpts[] = { - packRlcDuUeCfgRsp, /* 0 - loosely coupled */ - DuProcRlcUeCfgRsp, /* 1 - tightly coupled */ - packRlcDuUeCfgRsp /* 2 - LWLC loosely coupled */ + packRlcDuUeCreateRsp, /* 0 - loosely coupled */ + DuProcRlcUeCreateRsp, /* 1 - tightly coupled */ + packRlcDuUeCreateRsp /* 2 - LWLC loosely coupled */ }; +RlcDuUeReconfigRsp rlcUeReconfigRspOpts[] = +{ + packRlcDuUeReconfigRsp, /* 0 - loosely coupled */ + DuProcRlcUeReconfigRsp, /* 1 - tightly coupled */ + packRlcDuUeReconfigRsp /* 2 - LWLC loosely coupled */ +}; /*********************************************************** * @@ -61,15 +67,15 @@ RlcDuUeCfgRsp rlcUeCfgRspOpts[] = * -# RFAILED * *************************************************************/ -uint8_t SendRlcUeCfgRspToDu(Pst *pst, RlcCfgCfmInfo *cfgRsp) +uint8_t SendRlcUeCreateRspToDu(Pst *pst, RlcCfgCfmInfo *cfgRsp) { /* jump to specific primitive depending on configured selector */ uint8_t ret = ROK; RlcCb *gCb; - RlcUeCfgRsp *ueRsp = NULLP; + RlcUeCreateRsp *ueRsp = NULLP; gCb = RLC_GET_RLCCB(pst->srcInst); - RLC_ALLOC_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCfgRsp)); + RLC_ALLOC_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCreateRsp)); if(!ueRsp) { DU_LOG("\nERROR --> RLC: Memory allocation failed for ueRsp at SendRlcUeCreateRspToDu()"); @@ -78,25 +84,80 @@ uint8_t SendRlcUeCfgRspToDu(Pst *pst, RlcCfgCfmInfo *cfgRsp) else { /* Mapping Old api to New Api */ - ret = fillRlcUeCfgRsp(ueRsp, cfgRsp); + ret = fillRlcUeCreateRsp(ueRsp, cfgRsp); + if(!ret) + { + ret = (*rlcUeCreateRspOpts[pst->selector])(pst, ueRsp); + if(ret) + { + DU_LOG("\nERROR --> RLC: Failed at SendRlcUeCreateRspToDu()"); + RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCreateRsp)); + } + } + else + { + DU_LOG("\nERROR --> RLC: Failed at fillRlcUeCreateRsp() for event %d", pst->event); + RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCreateRsp)); + } + } + RLC_FREE(gCb, cfgRsp, sizeof(RlcCfgCfmInfo)); + return ret; +} /* end of SendRlcUeCreateRspToDu */ + +/*********************************************************** + * + * @brief + * + * Handler for the ue Reconfig response to DUAPP + * + * @b Description: + * + * This function reports ue Reconfig response to DUAPP + * + * @param[in] post Post structure + * @param[in] cfgRsp ue reconfig Config Response + * + * @return uint16_t + * -# ROK + * -# RFAILED + * + *************************************************************/ +uint8_t SendRlcUeReconfigRspToDu(Pst *pst, RlcCfgCfmInfo *cfgRsp) +{ + /* jump to specific primitive depending on configured selector */ + uint8_t ret = ROK; + RlcCb *gCb; + RlcUeReconfigRsp *ueRsp = NULLP; + + gCb = RLC_GET_RLCCB(pst->srcInst); + RLC_ALLOC_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeReconfigRsp)); + if(!ueRsp) + { + DU_LOG("\nERROR --> RLC: Memory allocation failed for ueRsp at SendRlcUeReconfigRspToDu()"); + ret = RFAILED; + } + else + { + /* Mapping Old api to New Api */ + ret = fillRlcUeCreateRsp(ueRsp, cfgRsp); if(!ret) { - ret = (*rlcUeCfgRspOpts[pst->selector])(pst, ueRsp); + ret = (*rlcUeReconfigRspOpts[pst->selector])(pst, ueRsp); if(ret) { - DU_LOG("\nERROR --> RLC: Failed at SendRlcUeCfgRspToDu()"); - RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCfgRsp)); + DU_LOG("\nERROR --> RLC: Failed at SendRlcUeReconfigRspToDu()"); + RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeReconfigRsp)); } } else { - DU_LOG("\nERROR --> RLC: Failed at fillRlcUeCfgRsp() for event %d", pst->event); - RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeCfgRsp)); + DU_LOG("\nERROR --> RLC: Failed at fillRlcUeCreateRsp() for event %d", pst->event); + RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueRsp, sizeof(RlcUeReconfigRsp)); } } RLC_FREE(gCb, cfgRsp, sizeof(RlcCfgCfmInfo)); return ret; -} /* end of SendRlcUeCfgRspToDu */ +} /* end of SendRlcUeReconfigRspToDu */ /********************************************************************** End of file diff --git a/src/5gnrrlc/rlc_mgr.h b/src/5gnrrlc/rlc_mgr.h index 3c6a8a345..956b77282 100644 --- a/src/5gnrrlc/rlc_mgr.h +++ b/src/5gnrrlc/rlc_mgr.h @@ -17,8 +17,9 @@ *******************************************************************************/ /* This file stores defines used at RLC interface */ -uint8_t fillRlcUeCfgRsp(RlcUeCfgRsp *rlcCfgRsp, RlcCfgCfmInfo *rlcCRsp); -uint8_t SendRlcUeCfgRspToDu(Pst *pst, RlcCfgCfmInfo *cfgRsp); +uint8_t fillRlcUeCreateRsp(RlcUeCreateRsp *rlcCfgRsp, RlcCfgCfmInfo *rlcCRsp); +uint8_t SendRlcUeCreateRspToDu(Pst *pst, RlcCfgCfmInfo *cfgRsp); +uint8_t SendRlcUeReconfigRspToDu(Pst *pst, RlcCfgCfmInfo *cfgRsp); uint8_t sendRlcUeDeleteRspToDu(uint16_t cellId, uint8_t ueId, CauseOfResult status); uint8_t sendRlcUeReestablishRspToDu(uint16_t cellId,uint8_t ueId, CauseOfResult status); /********************************************************************** diff --git a/src/5gnrrlc/rlc_msg_hdl.c b/src/5gnrrlc/rlc_msg_hdl.c index a102debcd..38f0456fa 100644 --- a/src/5gnrrlc/rlc_msg_hdl.c +++ b/src/5gnrrlc/rlc_msg_hdl.c @@ -98,19 +98,19 @@ uint8_t BuildAndSendRlcMaxRetransIndToDu(uint16_t cellId,uint8_t ueId, uint8_t l * * @details * - * Function : fillRlcUeCfgRsp + * Function : fillRlcUeCreateRsp * * Functionality: * Fills RLC UL UE Cfg Rsp from RlcCRsp * * @params[in] Pointer to RlcCfgCfm - * Pointer to RlcUeCfgRsp + * Pointer to RlcUeCreateRsp * * @return ROK/RFAILED * *****************************************************************/ -uint8_t fillRlcUeCfgRsp(RlcUeCfgRsp *rlcCfgRsp, RlcCfgCfmInfo *rlcCRsp) +uint8_t fillRlcUeCreateRsp(RlcUeCreateRsp *rlcCfgRsp, RlcCfgCfmInfo *rlcCRsp) { uint8_t idx; uint8_t ret = ROK; @@ -274,7 +274,7 @@ uint8_t fillLcCfg(RlcCb *gCb, RlcEntCfgInfo *rlcUeCfg, RlcBearerCfg *duRlcUeCfg) * ******************************************************************/ -uint8_t fillRlcCfg(RlcCb *gCb, RlcCfgInfo *rlcUeCfg, RlcUeCfg *ueCfg) +uint8_t fillRlcCfg(RlcCb *gCb, RlcCfgInfo *rlcUeCfg, RlcUeCreate *ueCfg) { uint8_t lcIdx; @@ -366,12 +366,12 @@ uint8_t updateRlcCfg(RlcCb *gCb, RlcCfgInfo *rlcUeCfg, RlcUeRecfg *ueRecfg) * Functionality: * Fill RlcCfgCfmInfo structure for sending failure response to DU * - * @params[in] RlcCfgCfmInfo *cfgRsp, RlcUeCfg *ueCfg + * @params[in] RlcCfgCfmInfo *cfgRsp, RlcUeCreate *ueCfg * * @return void * * ****************************************************************/ -void fillRlcCfgFailureRsp(RlcCfgCfmInfo *cfgRsp, RlcUeCfg *ueCfg) +void fillRlcCfgFailureRsp(RlcCfgCfmInfo *cfgRsp, RlcUeCreate *ueCfg) { uint8_t cfgIdx =0; @@ -398,7 +398,7 @@ void fillRlcCfgFailureRsp(RlcCfgCfmInfo *cfgRsp, RlcUeCfg *ueCfg) * Functionality: * Fill RlcCfgCfmInfo structure for sending failure response to DU * - * @params[in] RlcCfgCfmInfo *cfgRsp, RlcUeCfg *ueCfg + * @params[in] RlcCfgCfmInfo *cfgRsp, RlcUeCreate *ueCfg * * @return void * @@ -448,12 +448,12 @@ void fillRlcRecfgFailureRsp(RlcCfgCfmInfo *cfgRsp, RlcUeRecfg *ueRecfg) * Handles Ue create Request from DU APP * * @params[in] Post structure pointer - * RlcUeCfg pointer + * RlcUeCreate pointer * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t RlcProcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg) +uint8_t RlcProcUeCreateReq(Pst *pst, RlcUeCreate *ueCfg) { uint8_t ret = ROK; RlcCb *gCb; @@ -477,7 +477,7 @@ uint8_t RlcProcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg) DU_LOG("\nERROR --> RLC: Failed to fill configuration at RlcProcUeCreateReq()"); FILL_PST_RLC_TO_DUAPP(rspPst, RLC_UL_INST, EVENT_RLC_UE_CREATE_RSP); fillRlcCfgFailureRsp(&cfgRsp, ueCfg); - SendRlcUeCfgRspToDu(&rspPst, &cfgRsp); + SendRlcUeCreateRspToDu(&rspPst, &cfgRsp); } else @@ -487,7 +487,7 @@ uint8_t RlcProcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg) DU_LOG("\nERROR --> RLC: Failed to configure Add/Mod/Del entities at RlcProcUeCreateReq()"); } } - RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueCfg, sizeof(RlcUeCfg)); + RLC_FREE_SHRABL_BUF(pst->region, pst->pool, ueCfg, sizeof(RlcUeCreate)); return ret; } @@ -827,7 +827,7 @@ uint8_t RlcProcUeReconfigReq(Pst *pst, RlcUeRecfg *ueRecfg) DU_LOG("\nERROR --> RLC: Failed to fill configuration at RlcProcUeReconfigReq()"); FILL_PST_RLC_TO_DUAPP(rspPst, RLC_UL_INST, EVENT_RLC_UE_RECONFIG_RSP); fillRlcRecfgFailureRsp(&cfgRsp, ueRecfg); - SendRlcUeCfgRspToDu(&rspPst, &cfgRsp); + SendRlcUeReconfigRspToDu(&rspPst, &cfgRsp); } else { diff --git a/src/cm/common_def.c b/src/cm/common_def.c index 444db96f8..5aa8705e5 100644 --- a/src/cm/common_def.c +++ b/src/cm/common_def.c @@ -447,16 +447,16 @@ uint32_t convertArfcnToFreqKhz(uint32_t arfcn) uint8_t indexTable = 0; uint32_t freq = 0; - for(indexTable = 0; indexTable < 4; indexTable++) + for(indexTable = 0; indexTable < 3; indexTable++) { if(arfcn <= arfcnFreqTable[indexTable][4]) { - freq = arfcnFreqTable[indexTable][2] + (arfcnFreqTable[indexTable][1] * (arfcn - arfcnFreqTable[indexTable][3])); - return (freq*1000); + freq = (arfcnFreqTable[indexTable][2] * 1000) + (arfcnFreqTable[indexTable][1] * (arfcn - arfcnFreqTable[indexTable][3])); + return (freq); } } DU_LOG("ERROR --> DUAPP: ARFCN vaid range is between 0 and 3279165"); - return (freq*1000); + return (freq); } @@ -472,7 +472,7 @@ uint32_t convertArfcnToFreqKhz(uint32_t arfcn) * 3GPP TS 38.104, Table 5.4.2.1-1 * Formula: NREF = NREF-Offs + (FREF – FREF-Offs) / ΔFGlobal * -* @params[in] uint32_t Freq(MHZ) +* @params[in] uint32_t Freq(kHZ) * * @return [out] uint32_t ARFCN(number) * @@ -482,11 +482,11 @@ uint32_t convertFreqToArfcn(uint32_t freq) uint8_t indexTable = 0; uint32_t arfcn = 0; - for(indexTable = 0; indexTable < 4; indexTable++) + for(indexTable = 0; indexTable < 3; indexTable++) { if(freq < arfcnFreqTable[indexTable][0]) { - arfcn = arfcnFreqTable[indexTable][3] + ((freq - arfcnFreqTable[indexTable][2]) / (arfcnFreqTable[indexTable][1])); + arfcn = arfcnFreqTable[indexTable][3] + ((freq - (arfcnFreqTable[indexTable][2] * 1000)) / (arfcnFreqTable[indexTable][1])); return (arfcn); } } diff --git a/src/cm/du_app_mac_inf.c b/src/cm/du_app_mac_inf.c index d5735c880..e64717099 100644 --- a/src/cm/du_app_mac_inf.c +++ b/src/cm/du_app_mac_inf.c @@ -687,12 +687,12 @@ uint8_t unpackMacDlCcchInd(DuMacDlCcchInd func, Pst *pst, Buffer *mBuf) * * * @params[in] Post structure pointer - * MacUeCfg pointer + * MacUeCreateReq pointer * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t packDuMacUeCreateReq(Pst *pst, MacUeCfg *ueCfg) +uint8_t packDuMacUeCreateReq(Pst *pst, MacUeCreateReq *ueCfg) { Buffer *mBuf = NULLP; @@ -737,7 +737,7 @@ uint8_t unpackMacUeCreateReq(DuMacUeCreateReq func, Pst *pst, Buffer *mBuf) { if(pst->selector == ODU_SELECTOR_LWLC) { - MacUeCfg *ueCfg; + MacUeCreateReq *ueCfg; /* unpack the address of the structure */ CMCHKUNPK(oduUnpackPointer, (PTR *)&ueCfg, mBuf); @@ -756,21 +756,21 @@ uint8_t unpackMacUeCreateReq(DuMacUeCreateReq func, Pst *pst, Buffer *mBuf) /******************************************************************* * - * @brief Pack and send UE config response from MAC to DU APP + * @brief Pack and send UE create response from MAC to DU APP * * @details * - * Function : packDuMacUeCfgRsp + * Function : packDuMacUeCreateRsp * * Functionality: - * Pack and send UE config response from MAC to DU APP + * Pack and send UE create response from MAC to DU APP * * @params[in] * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) +uint8_t packDuMacUeCreateRsp(Pst *pst, MacUeCreateRsp *cfgRsp) { Buffer *mBuf = NULLP; @@ -778,7 +778,7 @@ uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) { if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) { - DU_LOG("\nERROR --> MAC : Memory allocation failed at packDuMacUeCfgRsp"); + DU_LOG("\nERROR --> MAC : Memory allocation failed at packDuMacUeCreateRsp"); return RFAILED; } /* pack the address of the structure */ @@ -786,7 +786,7 @@ uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) } else { - DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacUeCfgRsp"); + DU_LOG("\nERROR --> MAC: Only LWLC supported for packDuMacUeCreateRsp"); return RFAILED; } @@ -794,24 +794,24 @@ uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) } /******************************************************************* * - * @brief Unpack UE Config Response from MAC to DU APP + * @brief Unpack UE Create Response from MAC to DU APP * * @details * - * Function :unpackDuMacUeCfgRsp + * Function :unpackDuMacUeCreateRsp * - * Functionality: Unpack UE Config Response from MAC to DU APP + * Functionality: Unpack UE Create Response from MAC to DU APP * * @params[in] * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t unpackDuMacUeCfgRsp(MacDuUeCfgRspFunc func, Pst *pst, Buffer *mBuf) +uint8_t unpackDuMacUeCreateRsp(MacDuUeCreateRspFunc func, Pst *pst, Buffer *mBuf) { if(pst->selector == ODU_SELECTOR_LWLC) { - MacUeCfgRsp *cfgRsp = NULLP; + MacUeCreateRsp *cfgRsp = NULLP; /* unpack the address of the structure */ CMCHKUNPK(oduUnpackPointer, (PTR *)&cfgRsp, mBuf); @@ -836,7 +836,7 @@ uint8_t unpackDuMacUeCfgRsp(MacDuUeCfgRspFunc func, Pst *pst, Buffer *mBuf) * * * @params[in] Post structure pointer - * MacUeCfg pointer + * MacUeRecfg pointer * @return ROK - success * RFAILED - failure * diff --git a/src/cm/du_app_mac_inf.h b/src/cm/du_app_mac_inf.h index af3b6229d..558aaac60 100644 --- a/src/cm/du_app_mac_inf.h +++ b/src/cm/du_app_mac_inf.h @@ -1458,7 +1458,7 @@ typedef struct modulationInfo McsTable mcsTable; /* MCS table */ }ModulationInfo; -typedef struct macUeCfg +typedef struct macUeCreateReq { uint16_t cellId; uint8_t ueId; @@ -1475,7 +1475,7 @@ typedef struct macUeCfg ModulationInfo ulModInfo; /* UL modulation info */ uint8_t numLcs; LcCfg lcCfgList[MAX_NUM_LC]; -}MacUeCfg; +}MacUeCreateReq; /* UE Re-configuration */ typedef struct macUeRecfg @@ -1529,7 +1529,7 @@ typedef struct sCellFailInfo FailureCause cause; }SCellFailInfo; -typedef struct ueCfgRsp +typedef struct macUeCreateRsp { uint16_t cellId; uint16_t ueId; @@ -1542,9 +1542,9 @@ typedef struct ueCfgRsp SCellFailInfo *failedSCellList; uint8_t numDRBModFailed; /* valid values : 0 to MAX_NUM_DRB */ DRBFailInfo *failedDRBModlist; -}MacUeCfgRsp; +}MacUeCreateRsp; -typedef struct ueCfgRsp MacUeRecfgRsp; +typedef struct macUeCreateRsp MacUeRecfgRsp; typedef struct rachRsrcReq { @@ -1738,12 +1738,12 @@ typedef uint8_t (*DuMacDlCcchInd) ARGS(( /* UE create Request from DU APP to MAC*/ typedef uint8_t (*DuMacUeCreateReq) ARGS(( Pst *pst, - MacUeCfg *ueCfg )); + MacUeCreateReq *ueCfg )); /* UE create Response from MAC to DU APP */ -typedef uint8_t (*MacDuUeCfgRspFunc) ARGS(( +typedef uint8_t (*MacDuUeCreateRspFunc) ARGS(( Pst *pst, - MacUeCfgRsp *cfgRsp)); + MacUeCreateRsp *cfgRsp)); /* UE Reconfig Request from DU APP to MAC */ typedef uint8_t (*DuMacUeReconfigReq) ARGS(( @@ -1856,13 +1856,13 @@ uint8_t duHandleUlCcchInd(Pst *pst, UlCcchIndInfo *ulCcchIndInfo); uint8_t packMacDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo); uint8_t unpackMacDlCcchInd(DuMacDlCcchInd func, Pst *pst, Buffer *mBuf); uint8_t MacProcDlCcchInd(Pst *pst, DlCcchIndInfo *dlCcchIndInfo); -uint8_t packDuMacUeCreateReq(Pst *pst, MacUeCfg *ueCfg); +uint8_t packDuMacUeCreateReq(Pst *pst, MacUeCreateReq *ueCfg); uint8_t unpackMacUeCreateReq(DuMacUeCreateReq func, Pst *pst, Buffer *mBuf); -uint8_t MacProcUeCreateReq(Pst *pst, MacUeCfg *ueCfg); +uint8_t MacProcUeCreateReq(Pst *pst, MacUeCreateReq *ueCfg); uint8_t sendStopIndMacToDuApp(uint16_t cellId); -uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp); -uint8_t unpackDuMacUeCfgRsp(MacDuUeCfgRspFunc func, Pst *pst, Buffer *mBuf); -uint8_t DuProcMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp); +uint8_t packDuMacUeCreateRsp(Pst *pst, MacUeCreateRsp *cfgRsp); +uint8_t unpackDuMacUeCreateRsp(MacDuUeCreateRspFunc func, Pst *pst, Buffer *mBuf); +uint8_t DuProcMacUeCreateRsp(Pst *pst, MacUeCreateRsp *cfgRsp); uint8_t packDuMacUeReconfigReq(Pst *pst, MacUeRecfg *ueRecfg); uint8_t unpackMacUeReconfigReq(DuMacUeReconfigReq func, Pst *pst, Buffer *mBuf); uint8_t MacProcUeReconfigReq(Pst *pst, MacUeRecfg *ueRecfg); diff --git a/src/cm/du_app_rlc_inf.c b/src/cm/du_app_rlc_inf.c index dcfb9b950..ff556a56c 100644 --- a/src/cm/du_app_rlc_inf.c +++ b/src/cm/du_app_rlc_inf.c @@ -114,12 +114,12 @@ uint8_t unpackRlcMaxRetransInd(RlcDuMaxRetransInd func, Pst *pst, Buffer *mBuf) * * * @params[in] Post structure pointer - * RlcUeCfg pointer + * RlcUeCreate pointer * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t packDuRlcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg) +uint8_t packDuRlcUeCreateReq(Pst *pst, RlcUeCreate *ueCfg) { Buffer *mBuf = NULLP; @@ -164,7 +164,7 @@ uint8_t unpackRlcUeCreateReq(DuRlcUeCreateReq func, Pst *pst, Buffer *mBuf) { if(pst->selector == ODU_SELECTOR_LWLC) { - RlcUeCfg *ueCfg; + RlcUeCreate *ueCfg; /* unpack the address of the structure */ CMCHKUNPK(oduUnpackPointer, (PTR *)&ueCfg, mBuf); ODU_PUT_MSG_BUF(mBuf); @@ -182,11 +182,11 @@ uint8_t unpackRlcUeCreateReq(DuRlcUeCreateReq func, Pst *pst, Buffer *mBuf) /******************************************************************* * - * @brief Packs and Sends UE Cfg Response from RLC to DUAPP + * @brief Packs and Sends UE Create Response from RLC to DUAPP * * @details * - * Function : packRlcDuUeCfgRsp + * Function : packRlcDuUeCreateRsp * * Functionality: * Packs and Sends UE Cfg Rrsponse from RLC to DUAPP @@ -198,7 +198,7 @@ uint8_t unpackRlcUeCreateReq(DuRlcUeCreateReq func, Pst *pst, Buffer *mBuf) * RFAILED - failure * * ****************************************************************/ -uint8_t packRlcDuUeCfgRsp(Pst *pst, RlcUeCfgRsp *ueCfg) +uint8_t packRlcDuUeCreateRsp(Pst *pst, RlcUeCreateRsp *ueCfg) { Buffer *mBuf = NULLP; @@ -206,7 +206,7 @@ uint8_t packRlcDuUeCfgRsp(Pst *pst, RlcUeCfgRsp *ueCfg) { if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) { - DU_LOG("\nERROR --> RLC : Memory allocation failed at packRlcDuUeCfgRsp"); + DU_LOG("\nERROR --> RLC : Memory allocation failed at packRlcDuUeCreateRsp"); return RFAILED; } /* pack the address of the structure */ @@ -214,7 +214,7 @@ uint8_t packRlcDuUeCfgRsp(Pst *pst, RlcUeCfgRsp *ueCfg) } else { - DU_LOG("\nERROR --> RLC: Only LWLC supported for packRlcDuUeCfgRsp"); + DU_LOG("\nERROR --> RLC: Only LWLC supported for packRlcDuUeCreateRsp"); return RFAILED; } @@ -223,11 +223,11 @@ uint8_t packRlcDuUeCfgRsp(Pst *pst, RlcUeCfgRsp *ueCfg) /******************************************************************* * - * @brief Unpacks UE Cfg Response received from DU APP + * @brief Unpacks UE Create Response received from DU APP * * @details * - * Function : unpackRlcUeCfgRsp + * Function : unpackRlcUeCreateRsp * * Functionality: * Unpacks UE Cfg Response received from DU APP @@ -239,11 +239,11 @@ uint8_t packRlcDuUeCfgRsp(Pst *pst, RlcUeCfgRsp *ueCfg) * RFAILED - failure * * ****************************************************************/ -uint8_t unpackRlcUeCfgRsp(RlcDuUeCfgRsp func, Pst *pst, Buffer *mBuf) +uint8_t unpackRlcUeCreateRsp(RlcDuUeCreateRsp func, Pst *pst, Buffer *mBuf) { if(pst->selector == ODU_SELECTOR_LWLC) { - RlcUeCfgRsp *cfgRsp = NULLP; + RlcUeCreateRsp *cfgRsp = NULLP; /* unpack the address of the structure */ CMCHKUNPK(oduUnpackPointer, (PTR *)&cfgRsp, mBuf); ODU_PUT_MSG_BUF(mBuf); @@ -259,6 +259,85 @@ uint8_t unpackRlcUeCfgRsp(RlcDuUeCfgRsp func, Pst *pst, Buffer *mBuf) return RFAILED; } +/******************************************************************* + * + * @brief Packs and Sends UE Reconfig Response from RLC to DUAPP + * + * @details + * + * Function : packRlcDuUeReconfigRsp + * + * Functionality: + * Packs and Sends UE Reconfig Rrsponse from RLC to DUAPP + * + * + * @params[in] Post structure pointer + * RlcUeRecfgRsp pointer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t packRlcDuUeReconfigRsp(Pst *pst, RlcUeReconfigRsp *ueCfg) +{ + Buffer *mBuf = NULLP; + + if(pst->selector == ODU_SELECTOR_LWLC) + { + if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK) + { + DU_LOG("\nERROR --> RLC : Memory allocation failed at packRlcDuUeReconfigRsp"); + return RFAILED; + } + /* pack the address of the structure */ + CMCHKPK(oduPackPointer,(PTR)ueCfg, mBuf); + } + else + { + DU_LOG("\nERROR --> RLC: Only LWLC supported for packRlcDuUeReconfigRsp"); + return RFAILED; + } + + return ODU_POST_TASK(pst,mBuf); +} + +/******************************************************************* + * + * @brief Unpacks UE Reconfig Response received from DU APP + * + * @details + * + * Function : unpackRlcUeReconfigRsp + * + * Functionality: + * Unpacks UE Reconfig Response received from DU APP + * + * @params[in] Pointer to Handler + * Post structure pointer + * Message Buffer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t unpackRlcUeReconfigRsp(RlcDuUeReconfigRsp func, Pst *pst, Buffer *mBuf) +{ + if(pst->selector == ODU_SELECTOR_LWLC) + { + RlcUeReconfigRsp *cfgRsp = NULLP; + /* unpack the address of the structure */ + CMCHKUNPK(oduUnpackPointer, (PTR *)&cfgRsp, mBuf); + ODU_PUT_MSG_BUF(mBuf); + return (*func)(pst, cfgRsp); + } + else + { + /* Nothing to do for other selectors */ + DU_LOG("\nERROR --> RLC: Only LWLC supported for UE Re-Cfg Response "); + ODU_PUT_MSG_BUF(mBuf); + } + + return RFAILED; +} + /******************************************************************* * * @brief Pack and send UL RRC message transfer from RLC to DU APP diff --git a/src/cm/du_app_rlc_inf.h b/src/cm/du_app_rlc_inf.h index d35b1440c..ee536f64b 100644 --- a/src/cm/du_app_rlc_inf.h +++ b/src/cm/du_app_rlc_inf.h @@ -217,22 +217,25 @@ typedef struct rlcUeRecfg }RlcUeRecfg; /* Ref: ORAN_WG8.V7.0.0 Sec 11.2.5.1 UE Create */ -typedef struct rlcUeCfg +typedef struct rlcUeCreate { uint16_t cellId; uint8_t ueId; uint8_t numLcsToAdd; RlcBearerCfg rlcLcCfgAdd[MAX_NUM_LC]; -}RlcUeCfg; +}RlcUeCreate; /* Ref: ORAN_WG8.V7.0.0 Sec 11.2.5.2 UE Create Response */ -typedef struct rlcUeCfgRsp +typedef struct rlcUeCreateRsp { uint16_t cellId; uint16_t ueId; RlcRsp result; FailureReason reason; -}RlcUeCfgRsp; +}RlcUeCreateRsp; + +/* Ref: ORAN_WG8.V7.0.0 Sec 11.2.5.4 UE Reconfig Response */ +typedef struct rlcUeCreateRsp RlcUeReconfigRsp; /* Ref: ORAN_WG8.V7.0.0 Sec 11.2.5.5 UE Delete Response */ typedef struct rlcUeDelete @@ -362,12 +365,12 @@ typedef uint8_t (*RlcDuMaxRetransInd) ARGS(( /* UE create Request from DU APP to RLC*/ typedef uint8_t (*DuRlcUeCreateReq) ARGS(( Pst *pst, - RlcUeCfg *ueCfg )); + RlcUeCreate *ueCfg )); -/* UE Cfg Response from RLC to DU APP*/ -typedef uint8_t (*RlcDuUeCfgRsp) ARGS(( +/* UE Create Response from RLC to DU APP*/ +typedef uint8_t (*RlcDuUeCreateRsp) ARGS(( Pst *pst, - RlcUeCfgRsp *ueCfgRsp)); + RlcUeCreateRsp *ueCreateRsp)); /* UE Delete Response from RLC to DU APP*/ typedef uint8_t (*RlcDuUeDeleteRsp) ARGS(( @@ -394,6 +397,11 @@ typedef uint8_t (*DuRlcUeReconfigReq) ARGS(( Pst *pst, RlcUeRecfg *ueRecfg )); +/* UE Reconfig Response from RLC to DU APP*/ +typedef uint8_t (*RlcDuUeReconfigRsp) ARGS(( + Pst *pst, + RlcUeReconfigRsp *ueReconfigRsp)); + /* UE Delete Request from DU APP to RLC */ typedef uint8_t (*DuRlcUeDeleteReq) ARGS(( Pst *pst, @@ -432,10 +440,12 @@ typedef uint8_t (*RlcDuUeReestablishRsp) ARGS(( /* Pack/Unpack function declarations */ uint8_t packRlcDuMaxRetransInd(Pst *pst, RlcMaxRetransInfo *maxRetransInd); uint8_t unpackRlcMaxRetransInd(RlcDuMaxRetransInd func, Pst *pst, Buffer *mBuf); -uint8_t packDuRlcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg); +uint8_t packDuRlcUeCreateReq(Pst *pst, RlcUeCreate *ueCfg); uint8_t unpackRlcUeCreateReq(DuRlcUeCreateReq func, Pst *pst, Buffer *mBuf); -uint8_t packRlcDuUeCfgRsp(Pst *pst, RlcUeCfgRsp *ueCfgRsp); -uint8_t unpackRlcUeCfgRsp(RlcDuUeCfgRsp func, Pst *pst, Buffer *mBuf); +uint8_t packRlcDuUeCreateRsp(Pst *pst, RlcUeCreateRsp *ueCfgRsp); +uint8_t unpackRlcUeCreateRsp(RlcDuUeCreateRsp func, Pst *pst, Buffer *mBuf); +uint8_t packRlcDuUeReconfigRsp(Pst *pst, RlcUeReconfigRsp *ueCfgRsp); +uint8_t unpackRlcUeReconfigRsp(RlcDuUeReconfigRsp func, Pst *pst, Buffer *mBuf); uint8_t packRlcUlRrcMsgToDu(Pst *pst, RlcUlRrcMsgInfo *ulRrcMsgInfo); uint8_t unpackRlcUlRrcMsgToDu(RlcUlRrcMsgToDuFunc func, Pst *pst, Buffer *mBuf); uint8_t packDlRrcMsgToRlc(Pst *pst, RlcDlRrcMsgInfo *dlRrcMsgInfo); @@ -463,8 +473,9 @@ uint8_t unpackRlcUeReestablishRsp(RlcDuUeReestablishRsp func, Pst *pst, Buffer * /* Event Handler function declarations */ uint8_t DuProcRlcMaxRetransInd(Pst *pst, RlcMaxRetransInfo *maxRetransInd); -uint8_t RlcProcUeCreateReq(Pst *pst, RlcUeCfg *ueCfg); -uint8_t DuProcRlcUeCfgRsp(Pst *pst, RlcUeCfgRsp *cfgRsp); +uint8_t RlcProcUeCreateReq(Pst *pst, RlcUeCreate *ueCfg); +uint8_t DuProcRlcUeCreateRsp(Pst *pst, RlcUeCreateRsp *cfgRsp); +uint8_t DuProcRlcUeReconfigRsp(Pst *pst, RlcUeReconfigRsp *recfgRsp); uint8_t DuProcRlcUlRrcMsgTrans(Pst *pst, RlcUlRrcMsgInfo *ulRrcMsgInfo); uint8_t RlcProcDlRrcMsgTransfer(Pst *pst, RlcDlRrcMsgInfo *dlRrcMsgInfo); uint8_t DuProcRlcRrcDeliveryReport(Pst *pst, RrcDeliveryReport *rrcDeliveryReport); diff --git a/src/du_app/du_f1ap_msg_hdl.c b/src/du_app/du_f1ap_msg_hdl.c index 2719cdbdc..c35573207 100644 --- a/src/du_app/du_f1ap_msg_hdl.c +++ b/src/du_app/du_f1ap_msg_hdl.c @@ -13081,7 +13081,7 @@ uint8_t extractSrbListToSetup(SRBs_ToBeSetup_List_t *srbCfg, DuUeCfg *ueCfgDb) * * @params[in] DRBs_ToBeSetup_Item_t , DRBs_ToBeSetupMod_Item_t, * DRBs_ToBeModified_Item_t , lcId, DuLcCfg pointer, - * RlcBearerCfg , UpTnlCfg, RlcUeCfg + * RlcBearerCfg , UpTnlCfg, DuRlcUeCfg * @return void * * ****************************************************************/ diff --git a/src/du_app/du_mgr_msg_router.c b/src/du_app/du_mgr_msg_router.c index c78102a34..da12de625 100644 --- a/src/du_app/du_mgr_msg_router.c +++ b/src/du_app/du_mgr_msg_router.c @@ -432,12 +432,12 @@ uint8_t duActvTsk(Pst *pst, Buffer *mBuf) } case EVENT_RLC_UE_CREATE_RSP: { - ret = unpackRlcUeCfgRsp(DuProcRlcUeCfgRsp, pst, mBuf); + ret = unpackRlcUeCreateRsp(DuProcRlcUeCreateRsp, pst, mBuf); break; } case EVENT_RLC_UE_RECONFIG_RSP: { - ret = unpackRlcUeCfgRsp(DuProcRlcUeCfgRsp, pst, mBuf); + ret = unpackRlcUeReconfigRsp(DuProcRlcUeReconfigRsp, pst, mBuf); break; } case EVENT_RLC_UE_DELETE_RSP: @@ -537,7 +537,7 @@ uint8_t duActvTsk(Pst *pst, Buffer *mBuf) } case EVENT_MAC_UE_CREATE_RSP: { - ret = unpackDuMacUeCfgRsp(DuProcMacUeCfgRsp, pst, mBuf); + ret = unpackDuMacUeCreateRsp(DuProcMacUeCreateRsp, pst, mBuf); break; } case EVENT_MAC_UE_RECONFIG_RSP: diff --git a/src/du_app/du_ue_mgr.c b/src/du_app/du_ue_mgr.c index 813d22bc7..769f4e9a1 100644 --- a/src/du_app/du_ue_mgr.c +++ b/src/du_app/du_ue_mgr.c @@ -1664,7 +1664,7 @@ uint8_t fillRlcSrb1LcCfg(DuRlcBearerCfg *rlcLcCfg) * Functionality: * Processes UE Reconfig Req to RLC UL * - * @params[in] Pointer to RlcUeCfg + * @params[in] Pointer to RlcUeRecfg * @return ROK - success * RFAILED - failure * @@ -1689,7 +1689,7 @@ uint8_t sendUeRecfgReqToRlc(RlcUeRecfg *rlcUeRecfg) } else { - DU_LOG("\nERROR --> DU_APP: Received RlcUeCfg is NULL at sendUeRecfgReqToRlc()"); + DU_LOG("\nERROR --> DU_APP: Received RlcUeRecfg is NULL at sendUeRecfgReqToRlc()"); ret = RFAILED; } return ret; @@ -1884,7 +1884,7 @@ uint8_t duCreateUeCb(UeCcchCtxt *ueCcchCtxt, uint32_t gnbCuUeF1apId) /********************************************************************************** * - * @brief Fills Ue Cfg from DU DB to MacUeCfg + * @brief Fills Ue Cfg from DU DB to MacUeCreateReq * * @details * @@ -1893,12 +1893,12 @@ uint8_t duCreateUeCb(UeCcchCtxt *ueCcchCtxt, uint32_t gnbCuUeF1apId) * Functionality: fills ue Cfg to be sent to MAC * * @params[in] DuMacUeCfg Pointer - * MacUeCfg Pointer + * MacUeCreateReq Pointer * * @return ROK - success * RFAILED - failure * *******************************************************************************/ -void fillMacUeCfg(DuMacUeCfg *duMacUeCfg, MacUeCfg *macUeCfg) +void fillMacUeCfg(DuMacUeCfg *duMacUeCfg, MacUeCreateReq *macUeCfg) { uint8_t lcIdx = 0; @@ -1971,12 +1971,12 @@ void fillMacUeCfg(DuMacUeCfg *duMacUeCfg, MacUeCfg *macUeCfg) * Functionality: fills ue Cfg to be sent to RLC * * @params[in] DuRlcUeCfg Pointer - * RlcUeCfg Pointer + * RlcUeCreate Pointer * * @return ROK - success * RFAILED - failure * *******************************************************************************/ -void fillRlcUeCfg(DuRlcUeCfg *duRlcUeCfg, RlcUeCfg *rlcUeCfg) +void fillRlcUeCfg(DuRlcUeCfg *duRlcUeCfg, RlcUeCreate *rlcUeCfg) { uint8_t lcIdx = 0; @@ -2018,7 +2018,7 @@ void fillRlcUeCfg(DuRlcUeCfg *duRlcUeCfg, RlcUeCfg *rlcUeCfg) uint8_t duBuildAndSendUeCreateReqToMac(uint16_t cellId, uint8_t gnbDuUeF1apId, uint16_t crnti, DuUeCfg *ueCfgDb, DuMacUeCfg *duMacUeCfg) { uint8_t ret = ROK; - MacUeCfg *macUeCfg = NULLP; + MacUeCreateReq *macUeCfg = NULLP; Pst pst; memset(&pst, 0, sizeof(Pst)); @@ -2034,10 +2034,10 @@ uint8_t duBuildAndSendUeCreateReqToMac(uint16_t cellId, uint8_t gnbDuUeF1apId, u FILL_PST_DUAPP_TO_MAC(pst, EVENT_MAC_UE_CREATE_REQ); /* Copying ueCb to a sharable buffer */ - DU_ALLOC_SHRABL_BUF(macUeCfg, sizeof(MacUeCfg)); + DU_ALLOC_SHRABL_BUF(macUeCfg, sizeof(MacUeCreateReq)); if(macUeCfg) { - memset(macUeCfg, 0, sizeof(MacUeCfg)); + memset(macUeCfg, 0, sizeof(MacUeCreateReq)); fillMacUeCfg(duMacUeCfg, macUeCfg); DU_LOG("\nDEBUG --> DU_APP: Sending UE create request to MAC"); @@ -2046,7 +2046,7 @@ uint8_t duBuildAndSendUeCreateReqToMac(uint16_t cellId, uint8_t gnbDuUeF1apId, u if(ret == RFAILED) { DU_LOG("\nERROR --> DU_APP : Failure in sending Ue Create Req to MAC at duBuildAndSendUeCreateReqToMac()"); - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, macUeCfg, sizeof(MacUeCfg)); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, macUeCfg, sizeof(MacUeCreateReq)); } } else @@ -2736,20 +2736,20 @@ uint8_t duUpdateDuUeCbCfg(uint8_t ueId, uint8_t cellId) /******************************************************************* * - * @brief Handle UE config response from MAC + * @brief Handle UE create response from MAC * * @details * - * Function : DuProcMacUeCfgRsp + * Function : DuProcMacUeCreateRsp * - * Functionality: Handle UE Config response from MAC + * Functionality: Handle UE Create response from MAC * - * @params[in] Pointer to MacUeCfgRsp and Pst + * @params[in] Pointer to MacUeCreateRsp and Pst * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t DuProcMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) +uint8_t DuProcMacUeCreateRsp(Pst *pst, MacUeCreateRsp *cfgRsp) { uint8_t ret = ROK; uint16_t cellIdx; @@ -2778,14 +2778,14 @@ uint8_t DuProcMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) if((duBuildAndSendRachRsrcReqToMac(cfgRsp->cellId, cfgRsp->ueId)) != ROK) { DU_LOG("\nERROR --> DU APP : Failed to send RACH Resource Request to MAC"); - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(MacUeCfgRsp)); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(MacUeCreateRsp)); return RFAILED; } } else { DU_LOG("\nERROR -> DU APP : Failure in updating DU UE CB"); - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(MacUeCfgRsp)); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(MacUeCreateRsp)); return RFAILED; } } @@ -2797,11 +2797,11 @@ uint8_t DuProcMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) DU_LOG("\nERROR --> DU APP : MAC UE CFG Response for EVENT[%d]: FAILURE [DU UE F1AP ID : %d]", pst->event, cfgRsp->ueId); ret = RFAILED; } - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(MacUeCfgRsp)); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(MacUeCreateRsp)); } else { - DU_LOG("\nERROR --> DU APP : Received MAC Ue Config Response is NULL at DuProcMacUeCfgRsp()"); + DU_LOG("\nERROR --> DU APP : Received MAC Ue Config Response is NULL at DuProcMacUeCreateRsp()"); ret = RFAILED; } return ret; @@ -2893,7 +2893,7 @@ uint8_t DuProcMacUeRecfgRsp(Pst *pst, MacUeRecfgRsp *reCfgRsp) * * @params[in] cellId, * ueId, - * Pointer to RlcUeCfg + * Pointer to RlcUeCreate * @return ROK - success * RFAILED - failure * @@ -2902,7 +2902,7 @@ uint8_t DuProcMacUeRecfgRsp(Pst *pst, MacUeRecfgRsp *reCfgRsp) uint8_t duBuildAndSendUeCreateReqToRlc(uint16_t cellId, uint8_t gnbDuUeF1apId, DuUeCfg *ueCfgDb, DuRlcUeCfg *duRlcUeCfg) { uint8_t ret = ROK; - RlcUeCfg *rlcUeCfg = NULLP; + RlcUeCreate *rlcUeCfg = NULLP; Pst pst; ret = updateRlcUeCfg(cellId, gnbDuUeF1apId, ueCfgDb, duRlcUeCfg); @@ -2914,10 +2914,10 @@ uint8_t duBuildAndSendUeCreateReqToRlc(uint16_t cellId, uint8_t gnbDuUeF1apId, D FILL_PST_DUAPP_TO_RLC(pst, RLC_UL_INST, EVENT_RLC_UE_CREATE_REQ); /* Copying ueCfg to a sharable buffer */ - DU_ALLOC_SHRABL_BUF(rlcUeCfg, sizeof(RlcUeCfg)); + DU_ALLOC_SHRABL_BUF(rlcUeCfg, sizeof(RlcUeCreate)); if(rlcUeCfg) { - memset(rlcUeCfg, 0, sizeof(RlcUeCfg)); + memset(rlcUeCfg, 0, sizeof(RlcUeCreate)); fillRlcUeCfg(duRlcUeCfg, rlcUeCfg); /* Processing one Ue at a time to RLC */ @@ -2926,7 +2926,7 @@ uint8_t duBuildAndSendUeCreateReqToRlc(uint16_t cellId, uint8_t gnbDuUeF1apId, D if(ret == RFAILED) { DU_LOG("\nERROR --> DU_APP : Failure in sending Ue Create Req to RLC"); - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, rlcUeCfg, sizeof(RlcUeCfg)); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, rlcUeCfg, sizeof(RlcUeCreate)); ret = RFAILED; } } @@ -2945,7 +2945,7 @@ uint8_t duBuildAndSendUeCreateReqToRlc(uint16_t cellId, uint8_t gnbDuUeF1apId, D * @details * - * Function : DuProcRlcUeCfgRsp + * Function : DuProcRlcUeCreateRsp * * Functionality: * Processes UE create Rsp received from RLC UL @@ -2956,7 +2956,7 @@ uint8_t duBuildAndSendUeCreateReqToRlc(uint16_t cellId, uint8_t gnbDuUeF1apId, D * RFAILED - failure * *****************************************************************/ -uint8_t DuProcRlcUeCfgRsp(Pst *pst, RlcUeCfgRsp *cfgRsp) +uint8_t DuProcRlcUeCreateRsp(Pst *pst, RlcUeCreateRsp *cfgRsp) { uint8_t ret = ROK; @@ -2980,20 +2980,62 @@ uint8_t DuProcRlcUeCfgRsp(Pst *pst, RlcUeCfgRsp *cfgRsp) if((duBuildAndSendRachRsrcReqToMac(cfgRsp->cellId, cfgRsp->ueId)) != ROK) { DU_LOG("\nERROR --> DU APP : Failed to send RACH Resource Request to MAC"); - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(MacUeCfgRsp)); - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(RlcUeCfgRsp)); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(RlcUeCreateRsp)); return RFAILED; } } else { DU_LOG("\nERROR --> DU APP : Failure in updating DU UE CB"); - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(RlcUeCfgRsp)); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(RlcUeCreateRsp)); return RFAILED; } } } - else if(pst->event == EVENT_RLC_UE_RECONFIG_RSP) + } + else + { + DU_LOG("\nERROR --> DU_APP: RLC UE CREATE Response for EVENT[%d] : FAILED [UE IDX : %d, REASON :%d]",\ + pst->event, cfgRsp->ueId, cfgRsp->reason); + ret = RFAILED; + } + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(RlcUeCreateRsp)); + } + else + { + DU_LOG("\nERROR --> DU_APP: Received RLC Ue Create Response is NULL at DuProcRlcUeCreateRsp()"); + ret = RFAILED; + } + return ret; +} + +/******************************************************************* + * + * @brief Processes UE reconfig Rsp received from RLC UL + * + * @details + * + + * Function : DuProcRlcUeReconfigRsp + * + * Functionality: + * Processes UE reconfig Rsp received from RLC UL + * + * @params[in] Post structure + * Pointer to RlcCfgCfm + * @return ROK - success + * RFAILED - failure + * + *****************************************************************/ +uint8_t DuProcRlcUeReconfigRsp(Pst *pst, RlcUeReconfigRsp *cfgRsp) +{ + uint8_t ret = ROK; + + if(cfgRsp) + { + if(cfgRsp->result == RLC_DU_APP_RSP_OK) + { + if(pst->event == EVENT_RLC_UE_RECONFIG_RSP) { DU_LOG("\nINFO --> DU_APP: RLC UE Reconfig Response : SUCCESS [UE IDX:%d]", cfgRsp->ueId); @@ -3006,14 +3048,14 @@ uint8_t DuProcRlcUeCfgRsp(Pst *pst, RlcUeCfgRsp *cfgRsp) if((BuildAndSendUeCtxtRsp(cfgRsp->cellId, cfgRsp->ueId)) != ROK) { DU_LOG("\nERROR --> DU APP : Failure in BuildAndSendUeCtxtRsp"); - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(RlcUeCfgRsp)); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(RlcUeReconfigRsp)); return RFAILED; } } else { DU_LOG("\nERROR --> DU APP : Failure in updating DU UE CB"); - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(RlcUeCfgRsp)); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(RlcUeReconfigRsp)); return RFAILED; } } @@ -3021,7 +3063,7 @@ uint8_t DuProcRlcUeCfgRsp(Pst *pst, RlcUeCfgRsp *cfgRsp) } else { - DU_LOG("\nERROR --> DU_APP: RLC UE CFG Response for EVENT[%d] : FAILED [UE IDX : %d, REASON :%d]",\ + DU_LOG("\nERROR --> DU_APP: RLC UE RE-CFG Response for EVENT[%d] : FAILED [UE IDX : %d, REASON :%d]",\ pst->event, cfgRsp->ueId, cfgRsp->reason); if((pst->event == EVENT_RLC_UE_RECONFIG_RSP)) { @@ -3029,16 +3071,15 @@ uint8_t DuProcRlcUeCfgRsp(Pst *pst, RlcUeCfgRsp *cfgRsp) } ret = RFAILED; } - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(RlcUeCfgRsp)); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, cfgRsp, sizeof(RlcUeReconfigRsp)); } else { - DU_LOG("\nERROR --> DU_APP: Received RLC Ue Config Response is NULL at DuProcRlcUeCfgRsp()"); + DU_LOG("\nERROR --> DU_APP: Received RLC Ue ReConfig Response is NULL at DuProcRlcUeReconfigRsp()"); ret = RFAILED; } return ret; } - /********************************************************************************** * * @brief Fills Ue ReCfg from DU DB to RlcUeRecfg @@ -3102,7 +3143,7 @@ void fillRlcUeRecfg(DuRlcUeCfg *duRlcUeCfg, RlcUeRecfg *rlcUeRecfg) * * @params[in] cellId, crnti * DuUeCfg *ueCfgDb - * RlcUeCfg *rlcUeCfg + * RlcUeCreate *rlcUeCfg * @return ROK - success * RFAILED - failure * @@ -3971,16 +4012,16 @@ uint8_t duBuildAndSendUeDeleteReq(uint16_t cellId, uint16_t crnti) /******************************************************************* * - * @brief delete RlcUeCfg from duCb + * @brief delete RlcUeCreate from duCb * * @details * * Function : deleteRlcUeCfg * * Functionality: - * delete RlcUeCfg from duCb + * delete RlcUeCreate from duCb * - * @params[in] RlcUeCfg *ueCfg + * @params[in] RlcUeCreate *ueCfg * * @return ROK - success * RFAILED - failure @@ -4021,7 +4062,7 @@ void deleteRlcUeCfg(DuRlcUeCfg *ueCfg) } DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, lcCfg->snssai, sizeof(Snssai)); } - memset(ueCfg, 0, sizeof(RlcUeCfg)); + memset(ueCfg, 0, sizeof(DuRlcUeCfg)); } }