X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Frlc_tmr.c;h=fc8ae668f70035396872e989b92a3aed2ca2d483;hb=3eb33bcb19a8e47fcf8b58b417d6fa05919952cf;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..fc8ae668f 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);