X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Fkw_ptli.c;h=261ac789f843987fc038521d886fe0363660bc25;hb=3330932565e15a749fd5dd5039cdea2862ca51cc;hp=5e7873d730d057ff2e40db854754ca1f69f84ef9;hpb=d10b52519198632f93deae9574adc69c7ce12efa;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/kw_ptli.c b/src/5gnrrlc/kw_ptli.c index 5e7873d73..261ac789f 100755 --- a/src/5gnrrlc/kw_ptli.c +++ b/src/5gnrrlc/kw_ptli.c @@ -18,36 +18,23 @@ /********************************************************************20** - Name: LTE-RLC Layer - Lower Interface + Name: NR RLC Layer - Lower Interface Type: C file - Desc: C source code for the lower interface of LTE-RLC + Desc: C source code for the lower interface of NR RLC File: kw_ptli.c *********************************************************************21*/ -static const char* RLOG_MODULE_NAME="LIM"; -static int RLOG_MODULE_ID=2048; -static int RLOG_FILE_ID=238; + /** @file kw_ptli.c @brief RLC Lower Interface */ /* header (.h) include files */ -#include "envopt.h" /* environment options */ -#include "envdep.h" /* environment dependent */ -#include "envind.h" /* environment independent */ - -#include "gen.h" /* general */ -#include "ssi.h" /* system services */ -#include "cm5.h" /* common timer defines */ -#include "cm_tkns.h" /* common tokens defines */ -#include "cm_mblk.h" /* common memory allocation library defines */ -#include "cm_llist.h" /* common link list defines */ -#include "cm_hash.h" /* common hash list defines */ -#include "cm_lte.h" /* common LTE defines */ +#include "common_def.h" #include "lkw.h" /* LKW defines */ #include "ckw.h" /* CKW defines */ #include "kwu.h" /* KWU defines */ @@ -62,16 +49,6 @@ static int RLOG_FILE_ID=238; #include "kw.h" /* RLC defines */ /* extern (.x) include files */ -#include "gen.x" /* general */ -#include "ssi.x" /* system services */ - -#include "cm5.x" /* common timer library */ -#include "cm_tkns.x" /* common tokens */ -#include "cm_mblk.x" /* common memory allocation */ -#include "cm_llist.x" /* common link list */ -#include "cm_hash.x" /* common hash list */ -#include "cm_lte.x" /* common LTE includes */ -#include "cm_lib.x" /* common memory allocation library */ #include "lkw.x" /* LKW */ #include "ckw.x" /* CKW */ #include "kwu.x" /* KWU */ @@ -94,20 +71,20 @@ static int RLOG_FILE_ID=238; #endif #ifdef __cplusplus -EXTERN "C" { +extern "C" { #endif /* __cplusplus */ #ifdef RLC_MAC_DAT_REQ_RBUF -PUBLIC S16 kwLiRguDatReqRbuf(Pst *Post,SpId spId,Void *datReq); +S16 rlcLiRguDatReqRbuf(Pst *Post,SpId spId,Void *datReq); #endif #ifdef RLC_MAC_STA_RSP_RBUF -PUBLIC S16 kwLiRguStaRspRbuf(Pst *Post,SpId spId,Void *staRsp); +S16 rlcLiRguStaRspRbuf(Pst *Post,SpId spId,Void *staRsp); #endif #if defined(MAC_RLC_HARQ_STA_RBUF) && defined(LTE_L2_MEAS) -EXTERN S16 KwDlHarqStaBatchProc (Void); +S16 RlcDlHarqStaBatchProc (Void); #endif @@ -117,7 +94,7 @@ EXTERN S16 KwDlHarqStaBatchProc (Void); /* RGU Bind Request primitive */ -PUBLIC RguBndReq kwLiRguBndReqMt[] = +RguBndReq kwLiRguBndReqMt[] = { #ifdef LCKWLIRGU cmPkRguBndReq, /* 0 - loosely coupled */ @@ -132,7 +109,7 @@ PUBLIC RguBndReq kwLiRguBndReqMt[] = /* RGU Unbind Request primitive */ -PUBLIC RguBndReq kwLiRguUbndReqMt[] = +RguBndReq kwLiRguUbndReqMt[] = { #ifdef LCKWLIRGU cmPkRguUbndReq, /* 0 - loosely coupled */ @@ -145,43 +122,12 @@ PUBLIC RguBndReq kwLiRguUbndReqMt[] = #endif /* LCRGUIRGU */ }; -/* RGU Dedicated Channel Data Request primitive */ - -PUBLIC RguDDatReq rlcMacSendDlDataOpts[] = -{ -#ifdef LCKWLIRGU - packSendDlData, /* 0 - loosely coupled */ -#endif /* LCRGUIRGU */ -#ifdef RG - RgUiRguDDatReq, /* 1 - tightly coupled, MAC */ -#endif /* RG */ -#ifdef LCKWLIRGU - packSendDlData, /* 0 - loosely coupled */ -#endif /* LCRGUIRGU */ -}; - - -/* RLC logical Channel Status primitive */ - -PUBLIC RguDStaRsp rlcMacSendBOStatusOpts[] = -{ -#ifdef LCKWLIRGU - packSendBOStatus, /* 0 - loosely coupled */ -#endif /* LCRGUIRGU */ -#ifdef RG - RgUiRguDStaRsp, /* 1 - tightly coupled, MAC */ -#endif /* RG */ -#ifdef LCKWLIRGU - packSendBOStatus, /* 0 - LWLC loosely coupled */ -#endif /* LCRGUIRGU */ -}; - /* kw005.201 added support for L2 Measurement */ #ifdef LTE_L2_MEAS #ifdef LTE_RLC_R9 /* RGU L2 Measurement Ul Ip Throughput Measurement Request primitive */ -PUBLIC RguL2MUlThrpMeasReq kwLiRguL2MUlThrpMeasReqMt[] = +RguL2MUlThrpMeasReq kwLiRguL2MUlThrpMeasReqMt[] = { #ifdef LCKWLIRGU cmPkRguL2MUlThrpMeasReq, /* 0 - loosely coupled */ @@ -217,28 +163,20 @@ PUBLIC RguL2MUlThrpMeasReq kwLiRguL2MUlThrpMeasReqMt[] = * -# ROK */ -#ifdef ANSI -PUBLIC S16 KwLiRguBndReq +S16 RlcLiRguBndReq ( Pst *post, /* post structure */ SuId suId, /* Service User Id */ SpId spId /* Service Provider Id */ ) -#else -PUBLIC S16 KwLiRguBndReq(post, suId, spId) -Pst *post; /* post structure */ -SuId suId; /* Service User Id */ -SpId spId; /* Service Provider Id */ -#endif { - TRC3(KwLiRguBndReq) /* jump to specific primitive depending on configured selector */ (*kwLiRguBndReqMt[post->selector])(post, suId, spId); - RETVALUE(ROK); + return ROK; -} /* end of KwLiRguBndReq */ +} /* end of RlcLiRguBndReq */ /** @@ -260,135 +198,15 @@ SpId spId; /* Service Provider Id */ * -# ROK */ -#ifdef ANSI -PUBLIC S16 KwLiRguUbndReq -( -Pst *post, -SpId spId, -Reason reason -) -#else -PUBLIC S16 KwLiRguUbndReq(post, spId, reason) -Pst *post; -SpId spId; -Reason reason; -#endif +S16 RlcLiRguUbndReq(Pst *post,SpId spId,Reason reason) { - TRC3(KwLiRguUbndReq) /* jump to specific primitive depending on configured selector */ (*kwLiRguUbndReqMt[post->selector])(post, spId, reason); - RETVALUE(ROK); - -} /* end of KwLiRguUbndReq */ - - -/** - * - * @brief - * - * Handler for sending PDU(s) from RLC to MAC for dedicated logical channels. - * - * @b Description: - * - * This function sends PDU(s) to MAC via one or more dedicated - * logical channels along with the Buffer Occupancy of these - * channels. - * - * @param[in] post Post structure - * @param[in] spId Service Provider ID - * @param[in] datIndInfo Data Request Information - * - * @return S16 - * -# ROK - * -# RFAILED - * - */ -#ifdef ANSI -PUBLIC S16 RlcMacSendDlData -( -Pst *post, -SpId spId, -RlcMacData *dlData -) -#else -PUBLIC S16 RlcMacSendDlData(post, spId, dlData) -Pst *post; -SpId spId; -RlcMacData *dlData; -#endif -{ - TRC3(RlcMacSendDlData) -#ifdef RLC_MAC_DAT_REQ_RBUF - post->event=EVTRGUDDATREQ; - if((kwLiRguDatReqRbuf(post, spId, datReq)) != ROK) - { - - SPutStaticBuffer(post->region, post->pool, - (Data *) datReq, sizeof(RguDDatReqInfo), 0); - RETVALUE(RFAILED); - } -#else - /* jump to specific primitive depending on configured selector */ - (*rlcMacSendDlDataOpts[post->selector])(post, spId, dlData); -#endif - RETVALUE(ROK); - -} /* end of KwLiRguDDatReq */ - - - -/** - * - * @brief - * - * Handler for reporting the Buffer Occupancy to MAC - * for logical channels. - * - * @b Description: - * - * This function reports the Buffer Occupancy of one or more - * logical channels to MAC. - * - * @param[in] post Post structure - * @param[in] spId Service Provider ID - * @param[in] boSta BO Status Information - * - * @return S16 - * -# ROK - * -# RFAILED - * - */ -#ifdef ANSI -PUBLIC S16 RlcMacSendBOStatus -( -Pst *post, -SpId spId, -RlcMacBOStatus *boSta -) -#else -PUBLIC S16 RlcMacSendBOStatus(post, spId, staRsp) -Pst *post; -SpId spId; -RlcMacBOStatus *boSta; -#endif -{ - TRC3(RlcMacSendBOStatus) -#if defined(SPLIT_RLC_DL_TASK) && defined(RLC_MAC_STA_RSP_RBUF) - post->event= EVTRGUDSTARSP; - if((kwLiRguStaRspRbuf(post, spId, staRsp)) != ROK) - { - RETVALUE(RFAILED); - } -#endif - /* jump to specific primitive depending on configured selector */ - (*rlcMacSendBOStatusOpts[post->selector])(post, spId, boSta); - - RETVALUE(ROK); - -} /* end of RlcMacSendBOStatus */ + return ROK; +} /* end of RlcLiRguUbndReq */ /* kw005.201 added support for L2 Measurement */ #ifdef LTE_L2_MEAS @@ -415,70 +233,49 @@ RlcMacBOStatus *boSta; * -# RFAILED * */ -#ifdef ANSI -PUBLIC S16 KwLiRguL2MUlThrpMeasReq -( -Pst *post, -SpId spId, -RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq -) -#else -PUBLIC S16 KwLiRguL2MUlThrpMeasReq(post, spId, l2mUlThrpMeasReq) -Pst *post; -SpId spId; -RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq; -#endif +S16 RlcLiRguL2MUlThrpMeasReq(Pst *post,SpId spId,RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq) { - TRC3(KwLiRguL2MUlThrpMeasReq) /* jump to specific primitive depending on configured selector */ (*kwLiRguL2MUlThrpMeasReqMt[post->selector])(post, spId, l2mUlThrpMeasReq); - RETVALUE(ROK); + return ROK; -} /* end of KwLiRguL2MUlThrpMeasReq */ +} /* end of RlcLiRguL2MUlThrpMeasReq */ #endif /* LTE_RLC_R9 */ #endif /* LTE_L2_MEAS */ #ifdef MAC_RLC_UL_RBUF -PUBLIC S16 kwUlBatchProc ARGS ((Void)); -EXTERN Void kwUtlFreeUlRBuf ARGS((void)); +S16 rlcUlBatchProc ARGS ((Void)); +Void rlcUtlFreeUlRBuf ARGS((void)); -#ifdef ANSI -PUBLIC S16 kwUlBatchProc -( -Void -) -#else -PUBLIC S16 kwUlBatchProc() -Void; -#endif +S16 rlcUlBatchProc(Void) { /* Read from Ring Buffer and process PDCP packets */ RguDDatIndInfo *datInd; Void *elmIndx = NULLP; - PRIVATE Pst rlcUlRbfuPst={1,1,ENTKW,0,ENTRG,0,PRIOR0,RTESPEC,EVTRLCULDAT,0,0,0,0}; + static Pst rlcUlRbfuPst={1,1,ENTRLC,0,ENTMAC,0,PRIOR0,RTESPEC,EVTRLCULDAT,0,0,0,0}; /* Read from Ring Buffer and process PDCP packets */ #ifndef SS_RBUF RguDedDatInd1 *rguDatInd = NULLP; - U8 rngBufDeqIndx = 0; + uint8_t rngBufDeqIndx = 0; elmIndx = SRngGetRIndx(SS_RNG_BUF_ULMAC_TO_ULRLC); while(NULLP != elmIndx) { rguDatInd = (RguDedDatInd1 *)elmIndx; datInd = (RguDDatIndInfo*) rguDatInd->msg; - SsRngInfoTbl[SS_RNG_BUF_ULMAC_TO_ULRLC].nPktProc++;;//Number of pkt processed in tti + SsRngInfoTbl[SS_RNG_BUF_ULMAC_TO_ULRLC].nPktProc++;//Number of pkt processed in tti if(datInd != NULLP) { - KwLiRguDDatInd(&rlcUlRbfuPst, 0, datInd); + RlcProcDedLcUlData(&rlcUlRbfuPst, 0, datInd); } else { - RLOG0(L_ERROR,"Received NULL buffer"); + DU_LOG("\nERROR --> RLC UL : Received NULL buffer"); } rguDatInd->msg=NULLP; SRngIncrRIndx(SS_RNG_BUF_ULMAC_TO_ULRLC); @@ -498,7 +295,7 @@ Void; while(NULLP != elmIndx) { datInd = (RguDDatIndInfo *)elmIndx; - KwLiRguDDatInd(&rlcUlRbfuPst, 0, datInd); + RlcProcDedLcUlData(&rlcUlRbfuPst, 0, datInd); elmIndx = NULLP; datInd = NULLP; @@ -508,7 +305,7 @@ Void; break; } #endif - RETVALUE(ROK); + return ROK; } @@ -525,18 +322,13 @@ Void; * -# RFAILED * */ -#ifdef ANSI -PUBLIC Void kwUtlFreeUlRBuf(void) -#else -PUBLIC Void kwUtlFreeUlRBuf() -#endif +Void rlcUtlFreeUlRBuf(void) { RguDDatIndInfo *datInd; PTR elem; - U8 numLch; - U8 numPdu; + uint8_t numLch; + uint8_t numPdu; - TRC2(kwUtlFreeUlRBuf) /* Free SS_RNG_BUF_ULMAC_TO_ULRLC */ while((SDeqSRngBuf (SS_RNG_BUF_ULMAC_TO_ULRLC, &elem) == ROK)) { @@ -547,28 +339,16 @@ PUBLIC Void kwUtlFreeUlRBuf() { if(datInd->lchData[numLch].pdu.mBuf[numPdu]) { - KW_FREE_BUF_WC(datInd->lchData[numLch].pdu.mBuf[numPdu]); + ODU_PUT_MSG_BUF(datInd->lchData[numLch].pdu.mBuf[numPdu]); } } } - KW_PST_FREE(0, 0, datInd, sizeof(RguDDatIndInfo)); + RLC_PST_FREE(0, 0, datInd, sizeof(RguDDatIndInfo)); } } #endif #ifdef RLC_MAC_STA_RSP_RBUF -#ifdef ANSI -PUBLIC S16 kwLiRguStaRspRbuf -( -Pst *post, -SpId spId, -Void *staRsp -) -#else -PUBLIC S16 kwLiRguStaRspRbuf(post, spId, staRsp) -Pst *post; -SpId spId; -Void *staRsp; -#endif /* ANSI */ +S16 rlcLiRguStaRspRbuf(Pst *post,SpId spId,Void *staRsp) { S16 ret1 = ROK; @@ -579,35 +359,23 @@ Void *staRsp; if (NULLP != elem) { staRspInfo = (RguDStaRspInfo *)elem; - cmMemcpy((U8 *)staRspInfo, (U8 *)staRsp, sizeof(RguDStaRspInfo)); + memcpy(staRspInfo, staRsp, sizeof(RguDStaRspInfo)); staRspInfo->post = *post; SRngIncrWIndx(SS_RNG_BUF_DLRLC_TO_DLMAC); SsRngInfoTbl[SS_RNG_BUF_DLRLC_TO_DLMAC].pktRate++; } else { - RLOG0(L_ERROR,"RLC DL STA RSP RBUF is FULL!!! "); + DU_LOG("\nERROR --> RLC_DL : RLC DL STA RSP RBUF is FULL!!! "); SsRngInfoTbl[SS_RNG_BUF_DLRLC_TO_DLMAC].pktDrop++; ret1 = RFAILED; } - RETVALUE(ret1); -} /* cmPkKwuDatReq */ + return (ret1); +} /* cmPkRlcDatReq */ #endif #ifdef RLC_MAC_DAT_REQ_RBUF -#ifdef ANSI -PUBLIC S16 kwLiRguDatReqRbuf -( -Pst *post, -SpId spId, -Void *datReq -) -#else -PUBLIC S16 kwLiRguDatReqRbuf(post, spId, datReq) -Pst *post; -SpId spId; -Void *datReq; -#endif /* ANSI */ +S16 rlcLiRguDatReqRbuf(Pst *post,SpId spId,Void *datReq) { S16 ret1 = ROK; @@ -625,12 +393,12 @@ Void *datReq; } else { - printf("RLC DL DAT REQ RBUF is FULL!!! \n"); + DU_LOG("\nERROR --> RLC_DL : RLC DL DAT REQ RBUF is FULL!!! \n"); SsRngInfoTbl[SS_RNG_BUF_DLRLC_TO_DLMAC_DAT_REQ].pktDrop++; ret1 = RFAILED; } - RETVALUE(ret1); -} /* cmPkKwuDatReq */ + return (ret1); +} /* cmPkRlcDatReq */ #endif