X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Frlc_layer_mgr.c;h=304e60e02649bdbe98fda6194edd8017c90965ca;hb=959944c4b572d2027bceb7bb474a8fc40f85ec1c;hp=f08d4e4fa799ac72c24abc4044fb77725374f948;hpb=be872311899d115fdf4565e4811cc8b37226ac53;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/rlc_layer_mgr.c b/src/5gnrrlc/rlc_layer_mgr.c index f08d4e4fa..304e60e02 100755 --- a/src/5gnrrlc/rlc_layer_mgr.c +++ b/src/5gnrrlc/rlc_layer_mgr.c @@ -173,10 +173,12 @@ static S16 rlcLmmGenCfg(RlcCb *gCb,RlcGenCfg *cfg) rlcTqCp->nxtEnt = 0; gCb->rlcThpt.inst = gCb->init.inst; - gCb->rlcThpt.thptTmr.tmrEvnt = TMR_NONE; - gCb->rlcThpt.numActvUe = 0; - memset(gCb->rlcThpt.thptPerUe, 0, MAX_NUM_UE * sizeof(RlcThptPerUe)); + gCb->rlcThpt.ueTputInfo.ueThptTmr.tmrEvnt = TMR_NONE; + gCb->rlcThpt.ueTputInfo.numActvUe = 0; + memset(gCb->rlcThpt.ueTputInfo.thptPerUe, 0, MAX_NUM_UE * sizeof(RlcThptPerUe)); + gCb->rlcThpt.snssaiTputInfo.snssaiThptTmr.tmrEvnt = TMR_NONE; + if(gCb->genCfg.rlcMode == LKW_RLC_MODE_DL) { RLC_ALLOC(gCb,gCb->u.dlCb, sizeof (RlcDlCb)); @@ -262,9 +264,7 @@ static S16 rlcLmmGenCfg(RlcCb *gCb,RlcGenCfg *cfg) rlcUtlInitToBeFreed(gCb, &(gCb->u.dlCb->toBeFreed)); rlcUtlInitializeSelfPst(gCb); - if(SGetMsg(gCb->init.region, - gCb->init.pool, - &(gCb->u.dlCb->selfPstMBuf)) != ROK) + if(ODU_GET_MSG_BUF(gCb->init.region, gCb->init.pool, &(gCb->u.dlCb->selfPstMBuf)) != ROK) { RLC_FREE(gCb,gCb->u.dlCb->udxDlSap, rlcSapSize); RLC_FREE(gCb,gCb->u.dlCb->rlcKwuDlSap, rlcSapSize); @@ -392,6 +392,24 @@ static S16 rlcLmmGenCfg(RlcCb *gCb,RlcGenCfg *cfg) gCb->init.cfgDone = TRUE; + /* TODO : make this generic for DL and UL after support for UL throughput calculation is added */ + if(gCb->genCfg.rlcMode == LKW_RLC_MODE_DL) + { + /* Starting timer to print throughput */ + if((rlcChkTmr(gCb, (PTR)(&gCb->rlcThpt), EVENT_RLC_UE_THROUGHPUT_TMR)) == FALSE) + { + DU_LOG("\nINFO --> RLC_DL : Starting UE Throughput timer"); + rlcStartTmr(gCb, (PTR)(&gCb->rlcThpt), EVENT_RLC_UE_THROUGHPUT_TMR); + } + } + /* Starting timer to print throughput */ + if((rlcChkTmr(gCb, (PTR)(&gCb->rlcThpt), EVENT_RLC_SNSSAI_THROUGHPUT_TMR)) == FALSE) + { + DU_LOG("\nINFO --> RLC_DL : Starting SNSSAI Throughput timer"); + rlcStartTmr(gCb, (PTR)(&gCb->rlcThpt), EVENT_RLC_SNSSAI_THROUGHPUT_TMR); + } + + return (LCM_REASON_NOT_APPL); } @@ -578,7 +596,7 @@ uint8_t RlcMiRlcConfigReq (Pst *pst,RlcMngmt *cfg) return (RFAILED); } - DU_LOG("\nDEBUG --> RLC : RlcMiRlcConfigReq elmId(%d)", cfg->hdr.elmId.elmnt); + DU_LOG("\nDEBUG --> RLC : RlcMiRlcConfigReq elmId(%d)", cfg->hdr.elmId.elmnt); switch(cfg->hdr.elmId.elmnt) { @@ -1513,7 +1531,7 @@ static Void rlcLmmCleanGblRsrcs(RlcCb *gCb) { if (gCb->u.dlCb->selfPstMBuf != NULL) { - SPutMsg(gCb->u.dlCb->selfPstMBuf); + ODU_PUT_MSG_BUF(gCb->u.dlCb->selfPstMBuf); } RLC_FREE(gCb,gCb->u.dlCb, sizeof (RlcDlCb)); } @@ -1597,14 +1615,16 @@ static S16 rlcLmmShutdown(RlcCb *gCb) } } } - + if(gCb->genCfg.rlcMode == LKW_RLC_MODE_DL) { rlcDbmDlShutdown(gCb); + rlcDelTputSnssaiList(gCb, DIR_DL); } else { rlcDbmUlShutdown(gCb); + rlcDelTputSnssaiList(gCb, DIR_UL); } rlcLmmCleanGblRsrcs(gCb); @@ -2215,7 +2235,7 @@ S16 rlcLmmSendTrc(RlcCb *gCb,Event event,Buffer *mBuf) return RFAILED; } - if (SGetMsg(pst.region, pst.pool, &dstMbuf) != ROK) + if (ODU_GET_MSG_BUF(pst.region, pst.pool, &dstMbuf) != ROK) { DU_LOG("\nERROR --> RLC : Memory Allocation failed"); return RFAILED;