X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Frlc_tmr.c;h=0c7234e649ac5afb404edec5dc09b1ff051539fe;hb=f3ebe72b954b0880bd8a5ddeef806ca29e87af32;hp=0e1f789fdd61cfef6be98e0a5eac0951a08c1600;hpb=e698840bb6fcecc68be5b1d1fd17436bd1d5e83f;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/rlc_tmr.c b/src/5gnrrlc/rlc_tmr.c index 0e1f789fd..0c7234e64 100755 --- a/src/5gnrrlc/rlc_tmr.c +++ b/src/5gnrrlc/rlc_tmr.c @@ -85,6 +85,7 @@ /* private function declarations */ static Void rlcBndTmrExpiry(PTR cb); + /** * @brief Handler to start timer * @@ -585,9 +586,12 @@ void rlcUeThptTmrExpiry(PTR cb) */ void rlcSnssaiThptTmrExpiry(PTR cb) { - long double tpt; RlcThpt *rlcThptCb = (RlcThpt*)cb; + static uint8_t snssaiCntDl = 0, snssaiCntUl = 0; + /*Bit map to keep record of reception of DL and UL Snssai Tput expiry*/ + static uint8_t snssaiTputBitmap = DIR_NONE; + /* If cell is not up, throughput details cannot be printed */ if(gCellStatus != CELL_UP) { @@ -595,14 +599,24 @@ void rlcSnssaiThptTmrExpiry(PTR cb) rlcStartTmr(RLC_GET_RLCCB(rlcThptCb->inst), (PTR)(rlcThptCb), EVENT_RLC_SNSSAI_THROUGHPUT_TMR); return; } - - DU_LOG("\n=================================================================="); - if(rlcThptCb->snssaiTputInfo.tputPerSnssaiList != NULLP) + + if(rlcThptCb->snssaiTputInfo.dlTputPerSnssaiList != NULLP) { - DU_LOG("\n===================== DL Throughput Per SNSSAI =============================="); - - rlcCalculateTputPerSnssai(rlcThptCb->snssaiTputInfo.tputPerSnssaiList); - DU_LOG("\n=================================================================="); + snssaiCntDl = rlcCalculateTputPerSnssai(rlcThptCb->snssaiTputInfo.dlTputPerSnssaiList, DIR_DL); + snssaiTputBitmap |= DIR_DL; + arrTputPerSnssai[DIR_DL] = rlcThptCb->snssaiTputInfo.dlTputPerSnssaiList; + } + if(rlcThptCb->snssaiTputInfo.ulTputPerSnssaiList != NULLP) + { + snssaiCntUl = rlcCalculateTputPerSnssai(rlcThptCb->snssaiTputInfo.ulTputPerSnssaiList, DIR_UL); + snssaiTputBitmap |= DIR_UL; + arrTputPerSnssai[DIR_UL] = rlcThptCb->snssaiTputInfo.ulTputPerSnssaiList; + } + if(snssaiTputBitmap == DIR_BOTH) + { + //call the function + BuildSliceReportToDu(MAX(snssaiCntUl, snssaiCntDl)); + snssaiTputBitmap = DIR_NONE; } /* Restart timer */ rlcStartTmr(RLC_GET_RLCCB(rlcThptCb->inst), (PTR)rlcThptCb, EVENT_RLC_SNSSAI_THROUGHPUT_TMR); @@ -669,7 +683,7 @@ uint8_t rlcUeDeleteTmrExpiry(PTR cb) if(RlcProcCfgReq(&ueCb->ueDeleteInfo.pst, rlcUeCfg) != ROK) { DU_LOG("\nERROR --> RLC: rlcUeDeleteTmrExpiry(): Failed to delete UE"); - if(sendRlcUeDeleteRspToDu(rlcUeCfg->cellId, rlcUeCfg->ueId, INVALID_UEID) != ROK) + if(sendRlcUeDeleteRspToDu(rlcUeCfg->cellId, rlcUeCfg->ueId, UEID_INVALID) != ROK) { DU_LOG("ERROR --> RLC: rlcUeDeleteTmrExpiry(): Failed to send UE delete response "); return RFAILED;