X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Frlc_msg_hdl.c;h=d73f8338644bb32f6bdfedd7dc2152df3b476049;hb=aae1fb8fd1e149a7b3a6a6ca799c56aceadc6184;hp=0495a44c1ae21acc8e368167725f0b826cb2e657;hpb=5cf1b5ae6066676b1da1105618dfd845d648eeeb;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/rlc_msg_hdl.c b/src/5gnrrlc/rlc_msg_hdl.c index 0495a44c1..d73f83386 100644 --- a/src/5gnrrlc/rlc_msg_hdl.c +++ b/src/5gnrrlc/rlc_msg_hdl.c @@ -64,7 +64,8 @@ uint8_t fillRlcUeCfgRsp(RlcUeCfgRsp *rlcCfgRsp, RlcCfgCfmInfo *rlcCRsp) uint8_t ret = ROK; rlcCfgRsp->cellId = rlcCRsp->cellId; - rlcCfgRsp->ueIdx = rlcCRsp->ueId; + rlcCfgRsp->ueId = rlcCRsp->ueId; + rlcCfgRsp->result = RLC_DU_APP_RSP_OK; for(idx = 0; idx < rlcCRsp->numEnt; idx++) { if(rlcCRsp->entCfgCfm[idx].status.status == CKW_CFG_CFM_OK) @@ -184,14 +185,14 @@ uint8_t fillLcCfg(RlcCb *gCb, RlcEntCfgInfo *rlcUeCfg, RlcBearerCfg *duRlcUeCfg) rlcUeCfg->lCh[lChRbIdx].type = duRlcUeCfg->lcType; rlcUeCfg->m.amInfo.ul.snLen = duRlcUeCfg->u.amCfg->ulAmCfg.snLenUl; rlcUeCfg->m.amInfo.ul.staProhTmr = duRlcUeCfg->u.amCfg->ulAmCfg.statProhTmr; - rlcUeCfg->m.amInfo.ul.reAsmblTmr = duRlcUeCfg->u.amCfg->ulAmCfg.reAssemTmr * RLC_REASSEMBLY_TMR_BASE; + rlcUeCfg->m.amInfo.ul.reAsmblTmr = duRlcUeCfg->u.amCfg->ulAmCfg.reAssemTmr; break; } case RLC_MODE_UM: { /* UL UM CONFIG */ rlcUeCfg->m.umInfo.ul.snLen = duRlcUeCfg->u.umBiDirCfg->ulUmCfg.snLenUlUm; - rlcUeCfg->m.umInfo.ul.reAsmblTmr = duRlcUeCfg->u.umBiDirCfg->ulUmCfg.reAssemTmr * RLC_REASSEMBLY_TMR_BASE; + rlcUeCfg->m.umInfo.ul.reAsmblTmr = duRlcUeCfg->u.umBiDirCfg->ulUmCfg.reAssemTmr; /* DL UM CONFIG */ rlcUeCfg->m.umInfo.dl.snLen = duRlcUeCfg->u.umBiDirCfg->dlUmCfg.snLenDlUm; @@ -226,11 +227,11 @@ uint8_t fillRlcCfg(RlcCb *gCb, RlcCfgInfo *rlcUeCfg, RlcUeCfg *ueCfg) { uint8_t lcIdx; - rlcUeCfg->ueId = ueCfg->ueIdx; + rlcUeCfg->ueId = ueCfg->ueId; rlcUeCfg->cellId = ueCfg->cellId; rlcUeCfg->numEnt = ueCfg->numLcs; rlcUeCfg->transId = getTransId(); - + for(lcIdx = 0; lcIdx < rlcUeCfg->numEnt; lcIdx++) { if(fillLcCfg(gCb, &rlcUeCfg->entCfg[lcIdx], &ueCfg->rlcLcCfg[lcIdx]) != ROK) @@ -262,7 +263,7 @@ void fillRlcCfgFailureRsp(RlcCfgCfmInfo *cfgRsp, RlcUeCfg *ueCfg) { uint8_t cfgIdx =0; - cfgRsp->ueId = ueCfg->ueIdx; + cfgRsp->ueId = ueCfg->ueId; cfgRsp->cellId = ueCfg->cellId; cfgRsp->numEnt = ueCfg->numLcs; for(cfgIdx =0; cfgIdxnumLcs; cfgIdx++) @@ -353,7 +354,7 @@ uint8_t BuildAndSendRrcDeliveryReportToDu( RlcDlRrcMsgInfo *dlRrcMsgInfo ) if(rrcDelivery) { rrcDelivery->cellId = dlRrcMsgInfo->cellId; - rrcDelivery->ueIdx = dlRrcMsgInfo->ueIdx; + rrcDelivery->ueId = dlRrcMsgInfo->ueId; rrcDelivery->srbId = dlRrcMsgInfo->lcId ; rrcDelivery->rrcDeliveryStatus.deliveryStatus = PDCP_SN; rrcDelivery->rrcDeliveryStatus.triggeringMessage = PDCP_SN; @@ -402,7 +403,7 @@ uint8_t RlcProcDlRrcMsgTransfer(Pst *pst, RlcDlRrcMsgInfo *dlRrcMsgInfo) datReqInfo->rlcId.rbType = dlRrcMsgInfo->rbType; datReqInfo->rlcId.rbId = dlRrcMsgInfo->rbId; - datReqInfo->rlcId.ueId = dlRrcMsgInfo->ueIdx; + datReqInfo->rlcId.ueId = dlRrcMsgInfo->ueId; datReqInfo->rlcId.cellId = dlRrcMsgInfo->cellId; datReqInfo->lcType = dlRrcMsgInfo->lcType; datReqInfo->sduId = ++(rlcCb[pst->dstInst]->dlSduId); @@ -491,7 +492,7 @@ uint8_t RlcProcUlData(Pst *pst, RlcData *ulData) memset(cLchUlDat, 0, sizeof(RguCDatIndInfo)); cLchUlDat->cellId = ulData->cellId; - GET_UE_IDX(ulData->rnti, cLchUlDat->rnti); + GET_UE_ID(ulData->rnti, cLchUlDat->rnti); cLchUlDat->lcId = ulData->pduInfo[idx].lcId; /* Copy fixed buffer to message */ @@ -553,7 +554,7 @@ uint8_t RlcProcUlData(Pst *pst, RlcData *ulData) if(dLchPduPres) { dLchUlDat->cellId = ulData->cellId; - GET_UE_IDX(ulData->rnti, dLchUlDat->rnti); + GET_UE_ID(ulData->rnti, dLchUlDat->rnti); for(idx = 0; idx < MAX_NUM_LC; idx++) { @@ -704,10 +705,10 @@ uint8_t RlcProcUeReconfigReq(Pst *pst, RlcUeCfg *ueCfg) uint8_t ret = ROK; RlcCfgInfo *rlcUeCfg = NULLP; //Seed code Rlc cfg struct RlcCb *rlcUeCb = NULLP; - RlcCfgCfmInfo *cfgRsp; + RlcCfgCfmInfo cfgRsp; Pst rspPst; - DU_LOG("\nDEBUG --> RLC: UE reconfig request received. CellID[%d] UEIDX[%d]",ueCfg->cellId, ueCfg->ueIdx); + DU_LOG("\nDEBUG --> RLC: UE reconfig request received. CellID[%d] UEID[%d]",ueCfg->cellId, ueCfg->ueId); rlcUeCb = RLC_GET_RLCCB(pst->dstInst); RLC_ALLOC(rlcUeCb, rlcUeCfg, sizeof(RlcCfgInfo)); @@ -724,9 +725,8 @@ uint8_t RlcProcUeReconfigReq(Pst *pst, RlcUeCfg *ueCfg) { DU_LOG("\nERROR --> RLC: Failed to fill configuration at RlcProcUeReconfigReq()"); FILL_PST_RLC_TO_DUAPP(rspPst, RLC_UL_INST, EVENT_RLC_UE_RECONFIG_RSP); - memset(cfgRsp, 0, sizeof(RlcCfgCfmInfo)); - fillRlcCfgFailureRsp(cfgRsp, ueCfg); - SendRlcUeCfgRspToDu(&rspPst, cfgRsp); + fillRlcCfgFailureRsp(&cfgRsp, ueCfg); + SendRlcUeCfgRspToDu(&rspPst, &cfgRsp); } else { @@ -777,7 +777,7 @@ uint8_t RlcProcDlUserDataTransfer(Pst *pst, RlcDlUserDataInfo *dlDataMsgInfo) datReqInfo->rlcId.rbType = RB_TYPE_DRB; datReqInfo->rlcId.rbId = dlDataMsgInfo->rbId; - datReqInfo->rlcId.ueId = dlDataMsgInfo->ueIdx; + datReqInfo->rlcId.ueId = dlDataMsgInfo->ueId; datReqInfo->rlcId.cellId = dlDataMsgInfo->cellId; datReqInfo->lcType = LCH_DTCH; datReqInfo->sduId = ++(rlcCb[pst->dstInst]->dlSduId); @@ -804,7 +804,7 @@ uint8_t RlcProcDlUserDataTransfer(Pst *pst, RlcDlUserDataInfo *dlDataMsgInfo) * Functionality: * sending UE delete response to DU * - * @params[in] uint8_t cellId, uint8_t ueIdx, UeDeleteResult result + * @params[in] uint8_t cellId, uint8_t ueId, UeDeleteResult result * * @return ROK - success * RFAILED - failure @@ -974,18 +974,18 @@ uint8_t sendSlicePmToDu(SlicePmList *sliceStats) * recpord of this snssai * */ -bool rlcFindSliceEntry(uint32_t snssaiVal, uint8_t *snssaiIdx, SlicePmList *sliceStats) +bool rlcFindSliceEntry(SliceIdentifier snssaiVal, uint8_t *snssaiIdx, SlicePmList *sliceStats) { uint8_t cntSlices = sliceStats->numSlice; for(*snssaiIdx = 0;(*snssaiIdx) < cntSlices; (*snssaiIdx)++) { - if(snssaiVal == sliceStats->sliceRecord[*snssaiIdx].networkSliceIdentifier) + if((snssaiVal.sst == sliceStats->sliceRecord[*snssaiIdx].networkSliceIdentifier.sst)&& + (snssaiVal.sd == sliceStats->sliceRecord[*snssaiIdx].networkSliceIdentifier.sd)) { return TRUE; } } - DU_LOG("\nERROR --> RLC: Total no of Slice exhausted!"); return FALSE; } @@ -1013,7 +1013,7 @@ uint8_t BuildSliceReportToDu(uint8_t snssaiCnt) RlcTptPerSnssai *snssaiNode = NULLP; Direction dir = DIR_UL; SlicePmList *sliceStats = NULLP; /*Slice metric */ - uint32_t snssaiVal = 0; + SliceIdentifier snssaiVal ; uint8_t snssaiIdx = 0; if(snssaiCnt == 0) @@ -1049,12 +1049,11 @@ uint8_t BuildSliceReportToDu(uint8_t snssaiCnt) while(node) { - snssaiVal = 0; snssaiIdx = 0; snssaiNode = (RlcTptPerSnssai *)node->node; - memcpy(&snssaiVal, snssaiNode->snssai, sizeof(Snssai)); - + snssaiVal.sst = snssaiNode->snssai->sst; + snssaiVal.sd = snssaiNode->snssai->sd[2]+snssaiNode->snssai->sd[1]*10+snssaiNode->snssai->sd[0]*100; if(rlcFindSliceEntry(snssaiVal, &snssaiIdx, sliceStats) == FALSE) { sliceStats->sliceRecord[snssaiIdx].networkSliceIdentifier = snssaiVal;