X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Fkw_dl_ex_ms.c;h=16492a237126f8dcdb18f946ccf87061b1a7fb88;hb=069f38324ca51afc183962404383802ae8a5553c;hp=eeb545a9548f8c5a8ae1e392a643f252e97fa4ea;hpb=105199ef642ffe9736ea24a01d4546578fa25e60;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/kw_dl_ex_ms.c b/src/5gnrrlc/kw_dl_ex_ms.c index eeb545a95..16492a237 100755 --- a/src/5gnrrlc/kw_dl_ex_ms.c +++ b/src/5gnrrlc/kw_dl_ex_ms.c @@ -18,19 +18,16 @@ /********************************************************************20** - Name: LTE-RLC Layer - System Services Interface Functions + Name: NR RLC Layer - System Services Interface Functions Type: C file Desc: C source code for the interface to System Services - of LTE-RLC + of NR RLC File: kw_dl_ex_ms.c *********************************************************************21*/ -static const char* RLOG_MODULE_NAME="RLC_DL"; -static int RLOG_MODULE_ID=2048; -static int RLOG_FILE_ID=195; /** @filekw_dl_ex_ms.c @brief RLC System Services Interface @@ -58,24 +55,26 @@ static int RLOG_FILE_ID=195; #include "kw.x" #include "kw_udx.x" #include "kw_dl.x" +#include "du_app_rlc_inf.h" +#include "rlc_mac_inf.h" #include "ctf.h" -PUBLIC S16 kwUtlDlBatchProcPkts(Void); -PUBLIC S16 kwDlBatchProc(Void); +S16 rlcUtlDlBatchProcPkts(Void); +S16 rlcDlBatchProc(Void); #if (defined(MAC_RLC_HARQ_STA_RBUF) && defined(LTE_L2_MEAS)) -U32 isDatReqProcessed; -PUBLIC void kwUtlDlBatchProcHqStaInd ARGS ((Void)); +uint32_t isDatReqProcessed; +void rlcUtlDlBatchProcHqStaInd ARGS ((Void)); #endif #if (defined(L2_L3_SPLIT) && defined(ICC_RECV_TSK_RBUF)) -EXTERN S16 kwDlBatchProcSplit ARGS((Void)); +S16 rlcDlBatchProcSplit ARGS((Void)); #endif //UDAY #ifdef L2_OPTMZ -U32 kwAmmStaPduList[512] = {0}; -EXTERN S16 ssGetDBufOfSize ARGS((Region region, Size size, Buffer **dBuf)); +uint32_t rlcAmmStaPduList[512] = {0}; +S16 ssGetDBufOfSize ARGS((Region region, Size size, Buffer **dBuf)); #endif -PUBLIC S16 kwDlInitExt ARGS (( Void )); +S16 rlcDlInitExt ARGS (( Void )); /** * @@ -91,17 +90,9 @@ PUBLIC S16 kwDlInitExt ARGS (( Void )); * */ -#ifdef ANSI -PUBLIC S16 kwDlInitExt -( -) -#else -PUBLIC S16 kwDlInitExt() -#endif +S16 rlcDlInitExt() { - TRC2(kwDlInitExt); - - RETVALUE(ROK); + return ROK; } /* kwInitExt */ @@ -116,16 +107,16 @@ PUBLIC S16 kwDlInitExt() * Activates Initialization * * @b Description: - * This function is invoked by system services to initialize the LTE-RLC + * This function is invoked by system services to initialize the NR RLC * layer. This is an entry point used by LTE_RLC layer to initialize its * global variables, before becoming operational. * * Allowable values for parameters are specified in ssi.h. * - * @param[in] ent - Specify the entity id of the LTE-RLC task. - * @param[in] inst - Specify the entity id of the LTE-RLC task. + * @param[in] ent - Specify the entity id of the NR RLC task. + * @param[in] inst - Specify the entity id of the NR RLC task. * @param[in] region - Specifies the memory region from which - * LTE-RLC should allocate structures and buffers. + * NR RLC should allocate structures and buffers. * @param[in] reason - Specifies the reason for calling this * initialization function. * @@ -133,57 +124,48 @@ PUBLIC S16 kwDlInitExt() * -# ROK * */ -#ifdef ANSI -PUBLIC S16 kwDlActvInit +S16 rlcDlActvInit ( Ent ent, /* entity */ Inst inst, /* instance */ Region region, /* region */ Reason reason /* reason */ ) -#else -PUBLIC S16 kwDlActvInit(ent, inst, region, reason) -Ent ent; /* entity */ -Inst inst; /* instance */ -Region region; /* region */ -Reason reason; /* reason */ -#endif { - KwCb *tKwCb; - TRC3(kwDlActvInit) + RlcCb *tRlcCb; - if (inst >= KW_MAX_RLC_INSTANCES) + if (inst >= MAX_RLC_INSTANCES) { /* intance greater than MAX instances */ - RETVALUE(RFAILED); + return RFAILED; } - if (kwCb[inst] != NULLP) + if (rlcCb[inst] != NULLP) { - RETVALUE (RFAILED); + return (RFAILED); } - if (SGetSBuf(region, 0, (Data **)&tKwCb, - (Size)sizeof (KwCb)) != ROK) + if (SGetSBuf(region, 0, (Data **)&tRlcCb, + (Size)sizeof (RlcCb)) != ROK) { - RETVALUE(RFAILED); + return RFAILED; } - /* Initialize kwCb */ - KW_MEM_SET(tKwCb, 0, sizeof(KwCb)); + /* Initialize rlcCb */ + RLC_MEM_SET(tRlcCb, 0, sizeof(RlcCb)); /* Initialize task configuration parameters */ - tKwCb->init.ent = ent; /* entity */ - tKwCb->init.inst = inst; /* instance */ - tKwCb->init.region = region; /* static region */ - tKwCb->init.pool = 0; /* static pool */ - tKwCb->init.reason = reason; /* reason */ - tKwCb->init.cfgDone = FALSE; /* configuration done */ - tKwCb->init.acnt = TRUE; /* enable accounting */ - tKwCb->init.usta = TRUE; /* enable unsolicited status */ - tKwCb->init.trc = FALSE; /* enable trace */ - tKwCb->init.procId = SFndProcId(); - - kwCb[inst] = tKwCb; + tRlcCb->init.ent = ent; /* entity */ + tRlcCb->init.inst = inst; /* instance */ + tRlcCb->init.region = region; /* static region */ + tRlcCb->init.pool = 0; /* static pool */ + tRlcCb->init.reason = reason; /* reason */ + tRlcCb->init.cfgDone = FALSE; /* configuration done */ + tRlcCb->init.acnt = TRUE; /* enable accounting */ + tRlcCb->init.usta = TRUE; /* enable unsolicited status */ + tRlcCb->init.trc = FALSE; /* enable trace */ + tRlcCb->init.procId = ODU_GET_PROCID(); + + rlcCb[inst] = tRlcCb; //UDAY #ifdef L2_OPTMZ @@ -194,7 +176,7 @@ Reason reason; /* reason */ SGetMsg(1, 0 , &mBuf); ssGetDBufOfSize(1 , 1800, &bufPtr); SUpdMsg(mBuf, bufPtr, 0); - kwAmmStaPduList[i] = (U32)mBuf; + rlcAmmStaPduList[i] = (uint32_t)mBuf; } #endif /* call external function for intialization */ @@ -204,7 +186,7 @@ Reason reason; /* reason */ - RETVALUE(ROK); + return ROK; } /* kwActvInit */ @@ -215,7 +197,7 @@ Reason reason; /* reason */ * Activation Task * * @b Description: - * Processes events received for MLTE-RLC layer via System Services from + * Processes events received for NR RLC layer via System Services from * other layers. * * @param[in] pst - Pst Structure @@ -228,21 +210,14 @@ Reason reason; /* reason */ #if (defined (MAC_FREE_RING_BUF) || defined (RLC_FREE_RING_BUF)) pthread_t gRlcTId = 0; #endif -#ifdef ANSI -PUBLIC S16 kwDlActvTsk +S16 rlcDlActvTsk ( Pst *pst, /* pst structure */ Buffer *mBuf /* message buffer */ ) -#else -PUBLIC S16 kwDlActvTsk(pst, mBuf) -Pst *pst; /* pst structure */ -Buffer *mBuf; /* message buffer */ -#endif { S16 ret = ROK; - TRC3(kwDlActvTsk); #ifdef RLC_FREE_RING_BUF gRlcTId = pthread_self(); #endif @@ -256,25 +231,25 @@ Buffer *mBuf; /* message buffer */ #ifdef LCLKW case LKW_EVT_CFG_REQ: { - ret = cmUnpkLkwCfgReq(KwMiLkwCfgReq, pst, mBuf); + ret = unpackRlcConfigReq(RlcMiRlcConfigReq, pst, mBuf); break; } case LKW_EVT_CNTRL_REQ: { - ret = cmUnpkLkwCntrlReq(KwMiLkwCntrlReq, pst, mBuf); + ret = cmUnpkLkwCntrlReq(RlcMiLkwCntrlReq, pst, mBuf); break; } case LKW_EVT_STS_REQ: { - ret = cmUnpkLkwStsReq(KwMiLkwStsReq, pst, mBuf); + ret = cmUnpkLkwStsReq(RlcMiLkwStsReq, pst, mBuf); break; } case LKW_EVT_STA_REQ: { - ret = cmUnpkLkwStaReq(KwMiLkwStaReq, pst, mBuf); + ret = cmUnpkLkwStaReq(RlcMiLkwStaReq, pst, mBuf); break; } /* kw005.201 added support for L2 Measurement */ @@ -283,15 +258,26 @@ Buffer *mBuf; /* message buffer */ #ifdef LCKWU case KWU_EVT_DAT_REQ: /* Data request */ { - ret = cmUnpkKwuDatReq(KwUiKwuDatReq, pst, mBuf); + //ret = cmUnpkKwuDatReq(rlcProcDlData, pst, mBuf); break; } #endif /* LCKWU */ + + case EVENT_DL_RRC_MSG_TRANS_TO_RLC: + { + ret = unpackDlRrcMsgToRlc(RlcProcDlRrcMsgTransfer, pst, mBuf); + break; + } + case EVENT_DL_USER_DATA_TRANS_TO_RLC: + { + ret = unpackRlcDlUserDataToRlc(RlcProcDlUserDataTransfer, pst, mBuf); + break; + } default: - SPutMsg(mBuf); - if (pst->dstInst < KW_MAX_RLC_INSTANCES) + ODU_PUT_MSG_BUF(mBuf); + if (pst->dstInst < MAX_RLC_INSTANCES) { - RLOG1(L_ERROR,"Received Invalid Event[%d] from SM", + DU_LOG("\nERROR --> RLC_DL : Received Invalid Event[%d] from SM", pst->event); } ret = RFAILED; @@ -301,7 +287,7 @@ Buffer *mBuf; /* message buffer */ break; } - case ENTKW: + case ENTRLC: { switch(pst->event) @@ -309,55 +295,55 @@ Buffer *mBuf; /* message buffer */ #ifdef LCUDX case UDX_EVT_BND_REQ: /* Bind request */ { - ret = cmUnpkUdxBndReq(KwDlUdxBndReq, pst, mBuf ); + ret = cmUnpkUdxBndReq(rlcDlUdxBndReq, pst, mBuf ); break; } case UDX_EVT_UBND_REQ: /* Bind request */ { - ret = cmUnpkUdxUbndReq(KwDlUdxUbndReq, pst, mBuf ); + ret = cmUnpkUdxUbndReq(rlcDlUdxUbndReq, pst, mBuf ); break; } case UDX_EVT_CFG_REQ: /* Unbind request */ { - ret = cmUnpkUdxCfgReq(KwDlUdxCfgReq, pst, mBuf ); + ret = cmUnpkUdxCfgReq(rlcDlUdxCfgReq, pst, mBuf ); break; } case UDX_EVT_UEIDCHG_REQ: /* Configuration request */ { - ret = cmUnpkUdxUeIdChgReq(KwDlUdxUeIdChgReq, pst, mBuf); + ret = cmUnpkUdxUeIdChgReq(rlcDlUdxUeIdChgReq, pst, mBuf); break; } case UDX_EVT_STA_UPD_REQ: /* Configuration request */ { - ret = cmUnpkUdxStaUpdReq(KwDlUdxStaUpdReq, pst, mBuf); + ret = cmUnpkUdxStaUpdReq(rlcDlUdxStaUpdReq, pst, mBuf); break; } case UDX_EVT_STA_PDU_REQ: /* Configuration request */ { - ret = cmUnpkUdxStaPduReq(KwDlUdxStaPduReq, pst, mBuf); + ret = cmUnpkUdxStaPduReq(rlcDlUdxStaPduReq, pst, mBuf); break; } #ifdef LTE_L2_MEAS case UDX_EVT_L2MEAS_REQ: { - ret = cmUnpkUdxL2MeasReq(KwDlUdxL2MeasReq, pst, mBuf); + ret = cmUnpkUdxL2MeasReq(rlcDlUdxL2MeasReq, pst, mBuf); break; } case UDX_EVT_L2MEAS_SEND_REQ: { - ret = cmUnpkUdxL2MeasSendReq(KwDlUdxL2MeasSendReq, pst, mBuf); + ret = cmUnpkUdxL2MeasSendReq(rlcDlUdxL2MeasSendReq, pst, mBuf); break; } case UDX_EVT_L2MEAS_STOP_REQ: { - ret = cmUnpkUdxL2MeasStopReq(KwDlUdxL2MeasStopReq, pst, mBuf); + ret = cmUnpkUdxL2MeasStopReq(rlcDlUdxL2MeasStopReq, pst, mBuf); break; } #endif @@ -365,15 +351,15 @@ Buffer *mBuf; /* message buffer */ #endif /* LCCKW */ case UDX_EVT_DL_CLEANUP_MEM: { - kwUtlFreeDlMemory(KW_GET_KWCB(pst->dstInst)); + rlcUtlFreeDlMemory(RLC_GET_RLCCB(pst->dstInst)); break; } default: - SPutMsg(mBuf); - if (pst->dstInst < KW_MAX_RLC_INSTANCES) + ODU_PUT_MSG_BUF(mBuf); + if (pst->dstInst < MAX_RLC_INSTANCES) { - RLOG1(L_ERROR,"Received Invalid Event[%d] from RLC UL", + DU_LOG("\nERROR --> RLC_DL : Received Invalid Event[%d] from RLC UL", pst->event); } ret = RFAILED; @@ -390,40 +376,40 @@ Buffer *mBuf; /* message buffer */ #ifdef LCKWU case KWU_EVT_BND_REQ: /* Bind request */ { - ret = cmUnpkKwuBndReq(KwUiKwuBndReq, pst, mBuf ); + ret = cmUnpkKwuBndReq(RlcUiKwuBndReq, pst, mBuf ); break; } case KWU_EVT_UBND_REQ: /* Unbind request */ { - ret = cmUnpkKwuUbndReq(KwUiKwuUbndReq, pst, mBuf ); + ret = cmUnpkKwuUbndReq(RlcUiKwuUbndReq, pst, mBuf ); break; } #ifdef L2_L3_SPLIT case KWU_EVT_CPLANE_DAT_REQ: /* C-Plane Data request */ { - ret = cmUnpkKwuDatReq(KwUiKwuDatReq, pst, mBuf); + ret = cmUnpkKwuDatReq(rlcProcDlData, pst, mBuf); break; } #else case KWU_EVT_DAT_REQ: /* Data request */ { - ret = cmUnpkKwuDatReq(KwUiKwuDatReq, pst, mBuf); + //ret = cmUnpkKwuDatReq(rlcProcDlData, pst, mBuf); break; } #endif case KWU_EVT_DISC_SDU_REQ: /* Discard SDU request */ { - ret = cmUnpkKwuDiscSduReq(KwUiKwuDiscSduReq, pst, mBuf); + ret = cmUnpkKwuDiscSduReq(RlcUiKwuDiscSduReq, pst, mBuf); break; } #endif /* LCKWU */ default: - SPutMsg(mBuf); - if (pst->dstInst < KW_MAX_RLC_INSTANCES) + ODU_PUT_MSG_BUF(mBuf); + if (pst->dstInst < MAX_RLC_INSTANCES) { - RLOG1(L_ERROR,"Received Invalid Event[%d] from RRC", + DU_LOG("\nERROR --> RLC_DL : Received Invalid Event[%d] from RRC", pst->event); } ret = RFAILED; @@ -440,40 +426,40 @@ Buffer *mBuf; /* message buffer */ #ifdef LCKWU case KWU_EVT_BND_REQ: /* Bind request */ { - ret = cmUnpkKwuBndReq(KwUiKwuBndReq, pst, mBuf ); + ret = cmUnpkKwuBndReq(RlcUiKwuBndReq, pst, mBuf ); break; } case KWU_EVT_UBND_REQ: /* Unbind request */ { - ret = cmUnpkKwuUbndReq(KwUiKwuUbndReq, pst, mBuf ); + ret = cmUnpkKwuUbndReq(RlcUiKwuUbndReq, pst, mBuf ); break; } #ifdef L2_L3_SPLIT case KWU_EVT_CPLANE_DAT_REQ: /* C-Plane Data request */ case KWU_EVT_UPLANE_DAT_REQ: /* U-Plane Data request */ { - ret = cmUnpkKwuDatReq(KwUiKwuDatReq, pst, mBuf); + ret = cmUnpkKwuDatReq(rlcProcDlData, pst, mBuf); break; } #else case KWU_EVT_DAT_REQ: /* Data request */ { - ret = cmUnpkKwuDatReq(KwUiKwuDatReq, pst, mBuf); + //ret = cmUnpkKwuDatReq(rlcProcDlData, pst, mBuf); break; } #endif case KWU_EVT_DISC_SDU_REQ: /* Discard SDU request */ { - ret = cmUnpkKwuDiscSduReq(KwUiKwuDiscSduReq, pst, mBuf); + ret = cmUnpkKwuDiscSduReq(RlcUiKwuDiscSduReq, pst, mBuf); break; } default: - SPutMsg(mBuf); - if (pst->dstInst < KW_MAX_RLC_INSTANCES) + ODU_PUT_MSG_BUF(mBuf); + if (pst->dstInst < MAX_RLC_INSTANCES) { - RLOG1(L_ERROR,"Received Invalid Event[%d] from PDCP", + DU_LOG("\nERROR --> RLC_DL : Received Invalid Event[%d] from PDCP", pst->event); } ret = RFAILED; @@ -483,48 +469,48 @@ Buffer *mBuf; /* message buffer */ break; } - case ENTRG: + case ENTMAC: { switch(pst->event) { #ifdef LCRGU case EVTRGUBNDCFM: /* Bind request */ { - ret = cmUnpkRguBndCfm(KwLiRguBndCfm, pst, mBuf ); + ret = cmUnpkRguBndCfm(RlcLiRguBndCfm, pst, mBuf ); break; } - case EVTSCHREP: /* Dedicated Channel Status Response */ + case EVENT_SCHED_RESULT_TO_RLC: { - ret = unpackSchedRep(RlcMacProcSchedRep, pst, mBuf); + ret = unpackSchedResultRpt(RlcProcSchedResultRpt, pst, mBuf); break; } /* kw005.201 added support for L2 Measurement */ #ifdef LTE_L2_MEAS case EVTRGUHQSTAIND: /* Harq status indication */ { - ret = cmUnpkRguHqStaInd(KwLiRguHqStaInd, pst, mBuf); + ret = cmUnpkRguHqStaInd(RlcLiRguHqStaInd, pst, mBuf); break; } #endif case EVTRGUFLOWCNTRLIND: { - ret = cmUnpkRguFlowCntrlInd(KwLiRguFlowCntrlInd,pst,mBuf); + ret = cmUnpkRguFlowCntrlInd(RlcLiRguFlowCntrlInd,pst,mBuf); break; } #endif /* LCRGU */ #ifdef RLC_STA_PROC_IN_MAC/* RLC Status PDU Processing */ case UDX_EVT_STA_UPD_REQ: /* Configuration request */ { - ret = cmUnpkUdxStaUpdReq(KwDlUdxStaUpdReq, pst, mBuf); + ret = cmUnpkUdxStaUpdReq(rlcDlUdxStaUpdReq, pst, mBuf); break; } #endif default: - SPutMsg(mBuf); - if (pst->dstInst < KW_MAX_RLC_INSTANCES) + ODU_PUT_MSG_BUF(mBuf); + if (pst->dstInst < MAX_RLC_INSTANCES) { - RLOG1(L_ERROR,"Received Invalid Event[%d] from MAC", + DU_LOG("\nERROR --> RLC_DL : Received Invalid Event[%d] from MAC", pst->event); } ret = RFAILED; @@ -533,17 +519,17 @@ Buffer *mBuf; /* message buffer */ break; } #ifdef SS_RBUF - case ENTTF: + case ENTLWRMAC: { switch(pst->event) { case EVTCTFBTCHPROCTICK: { - kwUtlDlBatchProcPkts(); + rlcUtlDlBatchProcPkts(); break; } } - SPutMsg(mBuf); + ODU_PUT_MSG_BUF(mBuf); break; } #endif @@ -554,24 +540,24 @@ Buffer *mBuf; /* message buffer */ case KWU_EVT_TTI_IND: { #if (defined(L2_L3_SPLIT) && defined(ICC_RECV_TSK_RBUF)) - kwDlBatchProcSplit(); + rlcDlBatchProcSplit(); #else #if defined(PDCP_RLC_DL_RBUF) - kwDlBatchProc(); + rlcDlBatchProc(); #endif #endif #if (defined(SPLIT_RLC_DL_TASK) && defined(MAC_RLC_HARQ_STA_RBUF) && defined(LTE_L2_MEAS)) - //KwDlHarqStaBatchProc(); - kwUtlDlBatchProcHqStaInd(); + //RlcDlHarqStaBatchProc(); + rlcUtlDlBatchProcHqStaInd(); #endif #ifndef KWSELFPSTDLCLEAN /* Revanth_chg */ /* Moving Cleanup from self post event to TTI event */ - kwUtlFreeDlMem(); + rlcUtlFreeDlMem(); #endif - SPutMsg(mBuf); + ODU_PUT_MSG_BUF(mBuf); break; } } @@ -581,20 +567,20 @@ Buffer *mBuf; /* message buffer */ default: { - if (pst->dstInst < KW_MAX_RLC_INSTANCES) + if (pst->dstInst < MAX_RLC_INSTANCES) { - /*KwCb *tKwCb = KW_GET_KWCB(pst->dstInst);*/ - RLOG1(L_ERROR, "Received Invalid Source Entity[%d]", + /*RlcCb *tRlcCb = RLC_GET_RLCCB(pst->dstInst);*/ + DU_LOG("\nERROR --> RLC_DL : Received Invalid Source Entity[%d]", pst->event); } - SPutMsg(mBuf); + ODU_PUT_MSG_BUF(mBuf); ret = RFAILED; break; } } - SExitTsk(); + ODU_EXIT_TASK(); - RETVALUE(ret); + return (ret); } /* kwActvTsk */