-U32 kwStatusPduCnt, kwStatusAckCnt, kwStatusNcnt, kwSduSndCnt;
+U32 rlcStatusPduCnt, rlcStatusAckCnt, rlcStatusNcnt, rlcSduSndCnt;
- kwUtlSndDStaRsp(gCb, rbCb, bo, amDl->estHdrSz, amDl->cntrlBo ?TRUE:FALSE,amDl->cntrlBo);
+ rlcUtlSndDStaRsp(gCb, rbCb, bo, amDl->estHdrSz, amDl->cntrlBo ?TRUE:FALSE,amDl->cntrlBo);
MODAMT(rbCb->m.amDl.pollSn, mPollSn, rbCb->m.amDl.txNextAck,rbCb->m.amDl.snModMask);
if (mPollSn <= mAckSn)
{
MODAMT(rbCb->m.amDl.pollSn, mPollSn, rbCb->m.amDl.txNextAck,rbCb->m.amDl.snModMask);
if (mPollSn <= mAckSn)
{
-PRIVATE Void kwAmmDlProcessSuccessfulReTx(gCb, rbCb, retx, datCfm)
+PRIVATE Void rlcAmmDlProcessSuccessfulReTx(gCb, rbCb, retx, datCfm)
- kwAmmDlCheckIsSDUDelivered(gCb, rbCb, &(retx->sduMap), datCfm);
+ rlcAmmDlCheckIsSDUDelivered(gCb, rbCb, &(retx->sduMap), datCfm);
* This function is used to move the PDU from the txBuf to re-transmit buffer
*
* @param[in]RlcCb *gCb RLC instance control block
* This function is used to move the PDU from the txBuf to re-transmit buffer
*
* @param[in]RlcCb *gCb RLC instance control block
- * @param[in]KwAmDl *amDl AM Downlink Control Block
- * @param[in]KwRetx **retx node in the reTx buffer to be moved to, allocated by
+ * @param[in]RlcAmDl *amDl AM Downlink Control Block
+ * @param[in]RlcRetx **retx node in the reTx buffer to be moved to, allocated by
-PRIVATE Void kwAmmDlMoveSduByteSegFrmTxtoRetxBuffer(gCb, amDl, retx, pduInfo)
+PRIVATE Void rlcAmmDlMoveSduByteSegFrmTxtoRetxBuffer(gCb, amDl, retx, pduInfo)
- KW_MEM_CPY(&((*retx)->amHdr), &pduInfo->amHdr, sizeof(KwAmHdr));
- kwAmmAddPduToRetxLst(amDl, (*retx));
+ RLC_MEM_CPY(&((*retx)->amHdr), &pduInfo->amHdr, sizeof(RlcAmHdr));
+ rlcAmmAddPduToRetxLst(amDl, (*retx));
*
* @param[in]RlcCb *gCb RLC instance control block
* @param[in]RlcDlRbCb *rbCb AM Downlink Control Block
*
* @param[in]RlcCb *gCb RLC instance control block
* @param[in]RlcDlRbCb *rbCb AM Downlink Control Block
- * @param[in]KwNackInfo *nackSnInfo Nack Information of a NACK_SN
- * @param[in]KwRetx **retx node in the reTx buffer to be moved to, allocated by
+ * @param[in]RlcNackInfo *nackSnInfo Nack Information of a NACK_SN
+ * @param[in]RlcRetx **retx node in the reTx buffer to be moved to, allocated by
-PRIVATE Void kwAmmDlHndlStatus4SduByteSegInTxBuf(gCb, rbCb, nackSnInfo, retx, datCfm)
+PRIVATE Void rlcAmmDlHndlStatus4SduByteSegInTxBuf(gCb, rbCb, nackSnInfo, retx, datCfm)
/* If So of Sdu byte segment(pduInfo/seg) is < status pdu
soStart that means it's ACKED*/
if(pduSoEnd < nackSnInfo->soStart)
{
/* If So of Sdu byte segment(pduInfo/seg) is < status pdu
soStart that means it's ACKED*/
if(pduSoEnd < nackSnInfo->soStart)
{
*
* @param[in]RlcCb *gCb RLC instance control block
* @param[in]RlcDlRbCb *rbCb AM Downlink Control Block
*
* @param[in]RlcCb *gCb RLC instance control block
* @param[in]RlcDlRbCb *rbCb AM Downlink Control Block
- * @param[in]KwNackInfo *nackSnInfo Nack Information of a NACK_SN
- * @param[in]KwRetx **retx node in the reTx buffer to be moved to, allocated by
+ * @param[in]RlcNackInfo *nackSnInfo Nack Information of a NACK_SN
+ * @param[in]RlcRetx **retx node in the reTx buffer to be moved to, allocated by
-PRIVATE Void kwAmmDlUpdateTxAndReTxBufForNackSn(gCb, rbCb, nackSnInfo, retxNode, datCfm)
+PRIVATE Void rlcAmmDlUpdateTxAndReTxBufForNackSn(gCb, rbCb, nackSnInfo, retxNode, datCfm)
/* Now process the NACK_SN received. Now the NACK_SN is */
/* either the first element of RETX or is in TX array */
/* Now process the NACK_SN received. Now the NACK_SN is */
/* either the first element of RETX or is in TX array */
/* Go through all the AMD PDUs of a particular SN
and check if segment is ACKED if yes then mark succesfully sent,
if segment is NACKed then move it to to retx lst */
/* Go through all the AMD PDUs of a particular SN
and check if segment is ACKED if yes then mark succesfully sent,
if segment is NACKed then move it to to retx lst */
- kwAmmDlHndlStatus4SduByteSegInTxBuf(gCb, rbCb, nackSnInfo, &retx, datCfm);
+ rlcAmmDlHndlStatus4SduByteSegInTxBuf(gCb, rbCb, nackSnInfo, &retx, datCfm);
((retx->soEnd < nackSnInfo->soStart) /*|| (retx->amHdr.so > soEnd)*/))
{
RLOG_ARG3(L_DEBUG, DBG_RBID, rbCb->rlcId.rbId,
((retx->soEnd < nackSnInfo->soStart) /*|| (retx->amHdr.so > soEnd)*/))
{
RLOG_ARG3(L_DEBUG, DBG_RBID, rbCb->rlcId.rbId,
- kwAmmDlProcessSuccessfulReTx(gCb,rbCb, retx, datCfm);
+ rlcAmmDlProcessSuccessfulReTx(gCb,rbCb, retx, datCfm);
-* @param[in]KwAmDl *amDl,
-* @param[in]KwUdxStaPdu *StaPdu,
-* @param[in]KwNackInfo *nackSnInfo,
-* @param[in]KwRetx *retx;
-* @param[in]KwSn sn,
+* @param[in]RlcAmDl *amDl,
+* @param[in]RlcUdxStaPdu *StaPdu,
+* @param[in]RlcNackInfo *nackSnInfo,
+* @param[in]RlcRetx *retx;
+* @param[in]RlcSn sn,
U8 idx
)
#else
PRIVATE Void RlcDlAmmGetNackSnInfoFrmNackRangeIdx(amDl, nackInfo, retxNode, nackSnInfo, idx)
(
U8 idx
)
#else
PRIVATE Void RlcDlAmmGetNackSnInfoFrmNackRangeIdx(amDl, nackInfo, retxNode, nackSnInfo, idx)
(
/* store the re-transmission bo, to check if it changes due to the
processing of the status pdu */
oldRetxBo = AMDL.retxBo;
/* Allocate memory for datCfm Info */
/* store the re-transmission bo, to check if it changes due to the
processing of the status pdu */
oldRetxBo = AMDL.retxBo;
/* Allocate memory for datCfm Info */
- RLC_SHRABL_STATIC_BUF_ALLOC(kwuSap->pst.region, kwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo));
+ RLC_SHRABL_STATIC_BUF_ALLOC(rlckwuSap->pst.region, rlckwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo));
- RLC_SHRABL_STATIC_BUF_FREE(kwuSap->pst.region, kwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo));
+ RLC_SHRABL_STATIC_BUF_FREE(rlckwuSap->pst.region, rlckwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo));
-/* RLC_SHRABL_STATIC_BUF_ALLOC(kwuSap->pst.region, kwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo)); */
- RLC_SHRABL_STATIC_BUF_FREE(kwuSap->pst.region, kwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo));
+/* RLC_SHRABL_STATIC_BUF_ALLOC(rlckwuSap->pst.region, rlckwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo)); */
+ RLC_SHRABL_STATIC_BUF_FREE(rlckwuSap->pst.region, rlckwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo));
/* if any NACKs then txNextAck should be equal to the first NACK_SN*/
txNextAck = pStaPdu->nackInfo[0].sn;
/* if any NACKs then txNextAck should be equal to the first NACK_SN*/
txNextAck = pStaPdu->nackInfo[0].sn;
nackSnInfo.sn = pStaPdu->nackInfo[idx].sn;
RLOG_ARG3(L_DEBUG,DBG_RBID, rbCb->rlcId.rbId,
nackSnInfo.sn = pStaPdu->nackInfo[idx].sn;
RLOG_ARG3(L_DEBUG,DBG_RBID, rbCb->rlcId.rbId,
- RLC_SHRABL_STATIC_BUF_FREE(kwuSap->pst.region, kwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo));
+ RLC_SHRABL_STATIC_BUF_FREE(rlckwuSap->pst.region, rlckwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo));
- kwAmmDlUpdTxAndReTxBufForLessThanNackSn(gCb, rbCb, sn, mNackSn,
+ rlcAmmDlUpdTxAndReTxBufForLessThanNackSn(gCb, rbCb, sn, mNackSn,
- kwAmmDlUpdateTxAndReTxBufForNackSn(gCb, rbCb, &nackSnInfo, &retxNode, &datCfm);
+ rlcAmmDlUpdateTxAndReTxBufForNackSn(gCb, rbCb, &nackSnInfo, &retxNode, &datCfm);
RlcDlAmmGetNackSnInfoFrmNackRangeIdx(&AMDL, &pStaPdu->nackInfo[idx],
retxNode, &nackSnInfo, idx1);
RlcDlAmmGetNackSnInfoFrmNackRangeIdx(&AMDL, &pStaPdu->nackInfo[idx],
retxNode, &nackSnInfo, idx1);
- kwAmmDlUpdateTxAndReTxBufForNackSn(gCb, rbCb, &nackSnInfo,
+ rlcAmmDlUpdateTxAndReTxBufForNackSn(gCb, rbCb, &nackSnInfo,
/* Remove the PDUs with are further acked by the ACK_SN after taking
care of all the NACK_SN related acknowledgments*/
/* Remove the PDUs with are further acked by the ACK_SN after taking
care of all the NACK_SN related acknowledgments*/
- kwAmmDlUpdateTxAndReTxBufForAckSn(gCb,rbCb, mAckSn, retxNode, &datCfm);
+ rlcAmmDlUpdateTxAndReTxBufForAckSn(gCb,rbCb, mAckSn, retxNode, &datCfm);
/* For All ACKs */
RLOG_ARG2(L_UNUSED,DBG_RBID, rbCb->rlcId.rbId,
/* For All ACKs */
RLOG_ARG2(L_UNUSED,DBG_RBID, rbCb->rlcId.rbId,
- kwAmmDlUpdateTxAndReTxBufForAckSn(gCb,rbCb, mAckSn, retxNode, &datCfm);
+ rlcAmmDlUpdateTxAndReTxBufForAckSn(gCb,rbCb, mAckSn, retxNode, &datCfm);
- RLC_SHRABL_STATIC_BUF_FREE(kwuSap->pst.region, kwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo));
+ RLC_SHRABL_STATIC_BUF_FREE(rlckwuSap->pst.region, rlckwuSap->pst.pool, datCfm, sizeof(KwuDatCfmInfo));
/* BO update, if retransmission BO has changed. AMDL.retxBo would have
canged inside the above called functions */
if (oldRetxBo != AMDL.retxBo)
{
/* BO update, if retransmission BO has changed. AMDL.retxBo would have
canged inside the above called functions */
if (oldRetxBo != AMDL.retxBo)
{
* SDU queue of the corresponding RbCb. It also updates the BO and report the
* same to MAC.
* - Allocate memory for and assign received buffer to the SDU
* SDU queue of the corresponding RbCb. It also updates the BO and report the
* same to MAC.
* - Allocate memory for and assign received buffer to the SDU
* - Calculate bo with the buffer received
* - Accumulate bo with retransmission bo and control pdu's bo if available
* - Estimate the header size for the bo; Fill in StaRspInfo and send it
* - Calculate bo with the buffer received
* - Accumulate bo with retransmission bo and control pdu's bo if available
* - Estimate the header size for the bo; Fill in StaRspInfo and send it
-PUBLIC Void kwAmmQSdu(gCb, rbCb, mBuf, datReq)
+Void rlcAmmQSdu(gCb, rbCb, mBuf, datReq)
/* Discard new changes ends */
/* Assign values to sdu */
SFndLenMsg(mBuf, &sdu->sduSz);
/* Discard new changes ends */
/* Assign values to sdu */
SFndLenMsg(mBuf, &sdu->sduSz);
if (AMDL.nxtTx == NULLP)
{
RLOG_ARG2(L_UNUSED,DBG_RBID, rbCb->rlcId.rbId,
if (AMDL.nxtTx == NULLP)
{
RLOG_ARG2(L_UNUSED,DBG_RBID, rbCb->rlcId.rbId,
- kwWinSz = KW_AM_TRANS_WIN_SIZE(&AMDL);
- if (kwWinSz > rbCb->ueCb->tenbStats->stats.nonPersistent.rlc.dlMaxWindowSz)
+ rlcWinSz = RLC_AM_TRANS_WIN_SIZE(&AMDL);
+ if (rlcWinSz > rbCb->ueCb->tenbStats->stats.nonPersistent.rlc.dlMaxWindowSz)
{
/* Check the TB size whether it is sufficcient enough to fit the
status Pdu into it otherwise make arrangement such that it can fit
into in a way of possible NACks*/
/* ccpu00135743 : fix for MAC Hdr size calc */
{
/* Check the TB size whether it is sufficcient enough to fit the
status Pdu into it otherwise make arrangement such that it can fit
into in a way of possible NACks*/
/* ccpu00135743 : fix for MAC Hdr size calc */
rlcDlUdxStaProhTmrStart(&(gCb->u.dlCb->udxDlSap->pst),
sapCb->suId, &(rbCb->rlcId));
/* Update number of pdus in pduInfo */
rlcDlUdxStaProhTmrStart(&(gCb->u.dlCb->udxDlSap->pst),
sapCb->suId, &(rbCb->rlcId));
/* Update number of pdus in pduInfo */
gRlcStats.amRlcStats.numDLStaPduSent++;
RLC_FREE_SHRABL_BUF(gCb->u.dlCb->udxDlSap->pst.region,
gCb->u.dlCb->udxDlSap->pst.pool,
AMDL.pStaPdu,
gRlcStats.amRlcStats.numDLStaPduSent++;
RLC_FREE_SHRABL_BUF(gCb->u.dlCb->udxDlSap->pst.region,
gCb->u.dlCb->udxDlSap->pst.pool,
AMDL.pStaPdu,
* set for the data PDU and returns PDU(s) and updated BO with
* estimated header size to be sent to MAC.
*
* set for the data PDU and returns PDU(s) and updated BO with
* estimated header size to be sent to MAC.
*
* to assemble control Information
* - Check if the pdu size is available to form PDUs from retransmission
* to assemble control Information
* - Check if the pdu size is available to form PDUs from retransmission
-PUBLIC Void kwAmmProcessSdus(gCb, rbCb, kwDatReq,fillCtrlPdu)
+Void rlcAmmProcessSdus(gCb, rbCb, rlcDatReq,fillCtrlPdu)
-PRIVATE Void kwSplitPdu(gCb, rbCb, crnt, next, size)
+PRIVATE Void rlcSplitPdu(gCb, rbCb, crnt, next, size)
/* Set the SN for the new segment */
next->amHdr.sn = crnt->amHdr.sn;
/* Set the protocol specific fields appropriately */
si = crnt->amHdr.si;
/* Set the SN for the new segment */
next->amHdr.sn = crnt->amHdr.sn;
/* Set the protocol specific fields appropriately */
si = crnt->amHdr.si;
next->pendingReTrans = crnt->pendingReTrans;
/* Compute the header size and update the BO appropriately */
next->pendingReTrans = crnt->pendingReTrans;
/* Compute the header size and update the BO appropriately */
* - While pdusize is available and retxBuf has data (pdu or portion
* of pdu) to be sent, form the pdu as it is if it matches with the
* pdusize else segment the PDUs/portion of PDUs
* - While pdusize is available and retxBuf has data (pdu or portion
* of pdu) to be sent, form the pdu as it is if it matches with the
* pdusize else segment the PDUs/portion of PDUs
* required
* - Concatenate data and header info and fill pduInfo
* - Update retxCnt and send indication to PDCP if it reaches maxRetx
* required
* - Concatenate data and header info and fill pduInfo
* - Update retxCnt and send indication to PDCP if it reaches maxRetx
amDl = &AMDL;
#ifdef LTE_L2_MEAS
/* TODO : This shoould be taken care in new Trasmissions */
/* This lchInfo should be retrieved there */
amDl = &AMDL;
#ifdef LTE_L2_MEAS
/* TODO : This shoould be taken care in new Trasmissions */
/* This lchInfo should be retrieved there */
/* TODO : This lcid needs to be searched in case of normal Tx */
/* In retx here, its fine as this will be higher priority */
lchInfo = &l2MeasTb->lchInfo[l2MeasTb->numLchInfo];
/* TODO : This lcid needs to be searched in case of normal Tx */
/* In retx here, its fine as this will be higher priority */
lchInfo = &l2MeasTb->lchInfo[l2MeasTb->numLchInfo];
- while ((kwDatReq->pduSz > 0) && (amDl->nxtRetx != NULLP)&&
- (kwDatReq->pduInfo.numPdu < KW_MAX_PDU))
+ while ((rlcDatReq->pduSz > 0) && (amDl->nxtRetx != NULLP)&&
+ (rlcDatReq->pduInfo.numPdu < RLC_MAX_PDU))
/* kw003.201 : Add header size to seg size to determine if the */
/* the segment can be completed within the allocation */
/* kw003.201 - Eliminate MAC Header Size based on bites needed */
/* kw003.201 : Add header size to seg size to determine if the */
/* the segment can be completed within the allocation */
/* kw003.201 - Eliminate MAC Header Size based on bites needed */
{
U8 pollBit;
RLOG_ARG2(L_DEBUG,DBG_RBID,rbCb->rlcId.rbId,
{
U8 pollBit;
RLOG_ARG2(L_DEBUG,DBG_RBID,rbCb->rlcId.rbId,
- kwConstructAmHdr(&retx->amHdr, hdr, amDl->snLen, &idx);
+ rlcConstructAmHdr(&retx->amHdr, hdr, amDl->snLen, &idx);
/* Add header to the pdu/segment */
SAddPreMsgMultInOrder(hdr, idx + 1, retx->seg);
retx->yetToConst = FALSE;
/* Add header to the pdu/segment */
SAddPreMsgMultInOrder(hdr, idx + 1, retx->seg);
retx->yetToConst = FALSE;
/* kw003.201 - Check if poll bit needs to be set. Retx size does */
/* not affect the poll bit so it is being passed as zero */
/* kw003.201 - Check if poll bit needs to be set. Retx size does */
/* not affect the poll bit so it is being passed as zero */
- pollBit = kwAmmDlCheckAndSetPoll(gCb,rbCb, FALSE, 0);
- KW_UPD_POLL_BIT(gCb, retx, pollBit);
+ pollBit = rlcAmmDlCheckAndSetPoll(gCb,rbCb, FALSE, 0);
+ RLC_UPD_POLL_BIT(gCb, retx, pollBit);
/* Segment this pdu / portion of pdu. Insert this segment into */
/* retxLst and update offset */
RLOG_ARG2(L_DEBUG,DBG_RBID,rbCb->rlcId.rbId,
/* Segment this pdu / portion of pdu. Insert this segment into */
/* retxLst and update offset */
RLOG_ARG2(L_DEBUG,DBG_RBID,rbCb->rlcId.rbId,
- kwSplitPdu(gCb,rbCb, retx, tNode, kwDatReq->pduSz);
+ rlcSplitPdu(gCb,rbCb, retx, tNode, rlcDatReq->pduSz);
#ifdef LTE_L2_MEAS
numSdus = 0;
/* ccpu00143043 */
sduIdx = lchInfo->numSdus;
for (numSdus = 0, sduIdx = lchInfo->numSdus;
#ifdef LTE_L2_MEAS
numSdus = 0;
/* ccpu00143043 */
sduIdx = lchInfo->numSdus;
for (numSdus = 0, sduIdx = lchInfo->numSdus;
- kwConstructAmHdr(&retx->amHdr, hdr, amDl->snLen, &idx);
+ rlcConstructAmHdr(&retx->amHdr, hdr, amDl->snLen, &idx);
SAddPreMsgMultInOrder(hdr, idx + 1, retx->seg);
retx->hdrSz = idx + 1;
/* Poll bit need not be set for this seg, since its second */
/* half remains in retxLst */
SAddPreMsgMultInOrder(hdr, idx + 1, retx->seg);
retx->hdrSz = idx + 1;
/* Poll bit need not be set for this seg, since its second */
/* half remains in retxLst */
/* kw005.201 ccpu00117318, updating the statistics */
gCb->genSts.pdusRetx += 1;
gRlcStats.amRlcStats.numRlcAmCellRetxPdu++;
/* kw005.201 ccpu00117318, updating the statistics */
gCb->genSts.pdusRetx += 1;
gRlcStats.amRlcStats.numRlcAmCellRetxPdu++;
}
#ifndef ALIGN_64BIT
RLOG_ARG3(L_DEBUG,DBG_RBID,rbCb->rlcId.rbId,
}
#ifndef ALIGN_64BIT
RLOG_ARG3(L_DEBUG,DBG_RBID,rbCb->rlcId.rbId,
"UEID:%d CELLID:%d",
amDl->retxBo,
rbCb->rlcId.ueId,
rbCb->rlcId.cellId);
#else
RLOG_ARG3(L_DEBUG,DBG_RBID,rbCb->rlcId.rbId,
"UEID:%d CELLID:%d",
amDl->retxBo,
rbCb->rlcId.ueId,
rbCb->rlcId.cellId);
#else
RLOG_ARG3(L_DEBUG,DBG_RBID,rbCb->rlcId.rbId,
* - While pdusize is available, segment/concatenate SDUs or else if it
* matches the pdu size form PDUs accordingly.
* - RLC header and MAC header size are eliminated while forming the PDUs
* - While pdusize is available, segment/concatenate SDUs or else if it
* matches the pdu size form PDUs accordingly.
* - RLC header and MAC header size are eliminated while forming the PDUs
- U32 *totMacGrant = &kwDatReq->totMacGrant;
- KwL2MeasDlIpTh *dlIpThPut = &rbCb->l2MeasIpThruput.dlIpTh;
+ U32 *totMacGrant = &rlcDatReq->totMacGrant;
+ RlcL2MeasDlIpTh *dlIpThPut = &rbCb->l2MeasIpThruput.dlIpTh;
- /*5GNR: value of KW_AM_PDU_FIXED_HDRSZ will be 2 or 3 depending on SN Size*/
- if(amDl->snLen == KW_AM_CFG_12BIT_SN_LEN)
+ /*5GNR: value of RLC_AM_PDU_FIXED_HDRSZ will be 2 or 3 depending on SN Size*/
+ if(amDl->snLen == RLC_AM_CFG_12BIT_SN_LEN)
if (timeDiff > rbCb->discTmrInt)
{
CmLList* nxtNode;
/*starting Task*/
SStartTask(&startTime, PID_RLC_AMM_DISC_SDUS);
#ifdef LTE_L2_MEAS
if (timeDiff > rbCb->discTmrInt)
{
CmLList* nxtNode;
/*starting Task*/
SStartTask(&startTime, PID_RLC_AMM_DISC_SDUS);
#ifdef LTE_L2_MEAS
- kwUtlAddSduToBeFreedQueue(gCb, sdu);
- kwUtlRaiseDlCleanupEvent(gCb);
+ rlcUtlAddSduToBeFreedQueue(gCb, sdu);
+ rlcUtlRaiseDlCleanupEvent(gCb);
/* We need to restore the crnt in the linked list which
* would have become NULL in the DelFrm above */
amDl->sduQ.crnt = nxtNode;
if(nxtNode)
/* We need to restore the crnt in the linked list which
* would have become NULL in the DelFrm above */
amDl->sduQ.crnt = nxtNode;
if(nxtNode)
/* Eliminate MAC header */
/* ccpu00135743 : Fix for MAC Hdr size calculation */
/*5GNR: value of mac hdr length field changed to 8/16bits */
/* Eliminate MAC header */
/* ccpu00135743 : Fix for MAC Hdr size calculation */
/*5GNR: value of mac hdr length field changed to 8/16bits */
- pduSz = KW_MIN(macGrntSz, (sdu->sduSz + hdrEstmt));
- hdrEstmt += (pduSz < 255) ? KW_MAC_HDR_SZ2 : KW_MAC_HDR_SZ3;
+ pduSz = RLC_MIN(macGrntSz, (sdu->sduSz + hdrEstmt));
+ hdrEstmt += (pduSz < 255) ? RLC_MAC_HDR_SZ2 : RLC_MAC_HDR_SZ3;
- kwAmmCreatePdu(gCb,rbCb, amHdr, pduInfo, pdu);
+ rlcAmmCreatePdu(gCb,rbCb, amHdr, pduInfo, pdu);
- kwUtlUpdSduSnMap(rbCb, sdu, kwDatReq, TRUE);
+ rlcUtlUpdSduSnMap(rbCb, sdu, rlcDatReq, TRUE);
- kwUtlUpdateContainedSduLst(*sduIdx, &contSduLst);
- kwUtlUpdateOutStandingSduLst(dlIpThPut, *sduIdx, sdu->actSz,
+ rlcUtlUpdateContainedSduLst(*sduIdx, &contSduLst);
+ rlcUtlUpdateOutStandingSduLst(dlIpThPut, *sduIdx, sdu->actSz,
sdu->mode.am.sduId, newIdx);
/* Update the arrival time for each SDU */
/* ccpu00143043 */
sdu->mode.am.sduId, newIdx);
/* Update the arrival time for each SDU */
/* ccpu00143043 */
- if(KW_MEAS_IS_DL_IP_MEAS_ON_FOR_RB(gCb,rbCb) ||
- KW_MEAS_IS_DL_DELAY_MEAS_ON_FOR_RB(gCb,rbCb) ||
- KW_MEAS_IS_DL_UU_LOSS_MEAS_ON_FOR_RB(gCb,rbCb) )
+ if(RLC_MEAS_IS_DL_IP_MEAS_ON_FOR_RB(gCb,rbCb) ||
+ RLC_MEAS_IS_DL_DELAY_MEAS_ON_FOR_RB(gCb,rbCb) ||
+ RLC_MEAS_IS_DL_UU_LOSS_MEAS_ON_FOR_RB(gCb,rbCb) )
{
/* If actual size of the sdu is equal to msgLen
* then it is first segment of the SDU */
if(sdu->actSz == sdu->sduSz)
{
{
/* If actual size of the sdu is equal to msgLen
* then it is first segment of the SDU */
if(sdu->actSz == sdu->sduSz)
{
- kwUtlUpdateContainedSduLst(*sduIdx, &contSduLst);
- kwUtlUpdateOutStandingSduLst(dlIpThPut, *sduIdx, sdu->actSz,
+ rlcUtlUpdateContainedSduLst(*sduIdx, &contSduLst);
+ rlcUtlUpdateOutStandingSduLst(dlIpThPut, *sduIdx, sdu->actSz,
/*5GNR RLC: SN should be same for all segment of a SDU.
* Sdu was already segmented and segmenting again*/
pduInfo->amHdr.sn = sdu->mode.am.sn;
/*5GNR RLC: SN should be same for all segment of a SDU.
* Sdu was already segmented and segmenting again*/
pduInfo->amHdr.sn = sdu->mode.am.sn;
pduInfo->amHdr.so = sdu->actSz - sdu->sduSz;
//printf("\n 5GNRLOG: mid segment of lcId %d SduId %u So %u macGrntSz %u sduActSz %u sdu->sduSz %u\n",
pduInfo->amHdr.so = sdu->actSz - sdu->sduSz;
//printf("\n 5GNRLOG: mid segment of lcId %d SduId %u So %u macGrntSz %u sduActSz %u sdu->sduSz %u\n",
/*5GNR_RLC: Store SN so that in sub-seqent SDU segments will use this SN*/
sdu->mode.am.sn = pduInfo->amHdr.sn;
pduInfo->amHdr.so = 0;
/*5GNR_RLC: Store SN so that in sub-seqent SDU segments will use this SN*/
sdu->mode.am.sn = pduInfo->amHdr.sn;
pduInfo->amHdr.so = 0;
- kwAmmCreatePdu(gCb,rbCb, amHdr, pduInfo, pdu);
+ rlcAmmCreatePdu(gCb,rbCb, amHdr, pduInfo, pdu);
- kwUtlUpdSduSnMap(rbCb, sdu, kwDatReq, FALSE);
+ rlcUtlUpdSduSnMap(rbCb, sdu, rlcDatReq, FALSE);
numNewPdu++;
/* kw005.201 ccpu00117318, updating the statistics */
gCb->genSts.pdusSent++;
gRlcStats.amRlcStats.numRlcAmCellSduBytesTx = gRlcStats.amRlcStats.numRlcAmCellSduBytesTx + sduMap.sduSz;
/* Update the RLC Tx buffer with the new PDU info */
numNewPdu++;
/* kw005.201 ccpu00117318, updating the statistics */
gCb->genSts.pdusSent++;
gRlcStats.amRlcStats.numRlcAmCellSduBytesTx = gRlcStats.amRlcStats.numRlcAmCellSduBytesTx + sduMap.sduSz;
/* Update the RLC Tx buffer with the new PDU info */
- l2MeasTb = kwUtlGetCurMeasTb(gCb, rbCb);
- kwUtlUpdateBurstSdus(gCb, rbCb, &contSduLst, dataVol, *totMacGrant);
+ l2MeasTb = rlcUtlGetCurMeasTb(gCb, rbCb);
+ rlcUtlUpdateBurstSdus(gCb, rbCb, &contSduLst, dataVol, *totMacGrant);
{
dstLchInfo->sduInfo[currSduIdx].arvlTime = lchInfo.sduInfo[numSdus].arvlTime;
dstLchInfo->sduInfo[currSduIdx].isRetxPdu = FALSE;
{
dstLchInfo->sduInfo[currSduIdx].arvlTime = lchInfo.sduInfo[numSdus].arvlTime;
dstLchInfo->sduInfo[currSduIdx].isRetxPdu = FALSE;
- RLC_SHRABL_STATIC_BUF_FREE(kwuSap->pst.region, kwuSap->pst.pool, discSduInfo, sizeof(KwuDiscSduInfo));
+ RLC_SHRABL_STATIC_BUF_FREE(rlckwuSap->pst.region, rlckwuSap->pst.pool, discSduInfo, sizeof(KwuDiscSduInfo));
}
#ifndef ALIGN_64BIT
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
}
#ifndef ALIGN_64BIT
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
amDl->bo,
rbCb->rlcId.ueId,
rbCb->rlcId.cellId);
#else
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
amDl->bo,
rbCb->rlcId.ueId,
rbCb->rlcId.cellId);
#else
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
-PRIVATE Bool kwAmmDlCheckAndSetPoll(gCb, rbCb, newPdu, bufSz)
+PRIVATE Bool rlcAmmDlCheckAndSetPoll(gCb, rbCb, newPdu, bufSz)
/* Check if both tx/retx buffer are empty or if tx window is stalled */
if (((amDl->nxtTx == NULLP) && (amDl->nxtRetx == NULLP)) ||
/* Check if both tx/retx buffer are empty or if tx window is stalled */
if (((amDl->nxtTx == NULLP) && (amDl->nxtRetx == NULLP)) ||
amDl->pollSn = (amDl->txNext - 1) & amDl->snModMask;
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
amDl->pollSn = (amDl->txNext - 1) & amDl->snModMask;
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
-PRIVATE Void kwAmmCreatePdu(gCb, rbCb, pduInfo, amHdr, pdu)
+PRIVATE Void rlcAmmCreatePdu(gCb, rbCb, pduInfo, amHdr, pdu)
/* Update sn */
amHdr->sn = amDl->txNext;
/*5GNR RLC: Increment txNext only if no segmentation of it is a last segment */
/* Update sn */
amHdr->sn = amDl->txNext;
/*5GNR RLC: Increment txNext only if no segmentation of it is a last segment */
{
//printf("\n 5GNRLOG: no segment/last seg SDU with lcId %d Sn %u txNext %u So %u\n",
// rbCb->lch.lChId, amHdr->sn, amDl->txNext, amHdr->so);
{
//printf("\n 5GNRLOG: no segment/last seg SDU with lcId %d Sn %u txNext %u So %u\n",
// rbCb->lch.lChId, amHdr->sn, amDl->txNext, amHdr->so);
- amHdr->p = kwAmmDlCheckAndSetPoll(gCb,rbCb, TRUE, pduSz);
+ amHdr->p = rlcAmmDlCheckAndSetPoll(gCb,rbCb, TRUE, pduSz);
- kwConstructAmHdr(amHdr, hdr, amDl->snLen, &idx);
+ rlcConstructAmHdr(amHdr, hdr, amDl->snLen, &idx);
/* Concatenate hdr and data */
SAddPreMsgMultInOrder(hdr, idx+1, pdu);
/* Concatenate hdr and data */
SAddPreMsgMultInOrder(hdr, idx+1, pdu);
- txBuf = kwUtlGetTxBuf(amDl->txBufLst, amHdr->sn);
- kwCpyMsg(gCb,pdu,&(pduInfo->pdu));
+ txBuf = rlcUtlGetTxBuf(amDl->txBufLst, amHdr->sn);
+ rlcCpyMsg(gCb,pdu,&(pduInfo->pdu));
- kwUtlAddReTxPduToBeFreedQueue(gCb, retx);
- kwUtlRaiseDlCleanupEvent(gCb);
+ rlcUtlAddReTxPduToBeFreedQueue(gCb, retx);
+ rlcUtlRaiseDlCleanupEvent(gCb);
- kwUtlSndDStaRsp(gCb, rbCb, 0,0,0,0);
- kwAmmSndStaInd(gCb, rbCb, retx);
+ rlcUtlSndDStaRsp(gCb, rbCb, 0,0,0,0);
+ rlcAmmSndStaInd(gCb, rbCb, retx);
-PRIVATE Void kwAmmDlCheckIsSDUDelivered(gCb, rbCb, sduMap, datCfm)
+PRIVATE Void rlcAmmDlCheckIsSDUDelivered(gCb, rbCb, sduMap, datCfm)
- KwKwuSapCb *kwuSap;
- kwuSap = gCb->u.dlCb->kwuDlSap + KW_UI_PDCP;
- KwUiKwuDatCfm(&kwuSap->pst, kwuSap->suId, *datCfm);
+ RlcKwuSapCb *rlckwuSap;
+ rlckwuSap = gCb->u.dlCb->rlcKwuDlSap + RLC_UI_PDCP;
+ RlcUiKwuDatCfm(&rlckwuSap->pst, rlckwuSap->suId, *datCfm);
- RLC_SHRABL_STATIC_BUF_ALLOC(kwuSap->pst.region, kwuSap->pst.pool, *datCfm, sizeof(KwuDatCfmInfo));
+ RLC_SHRABL_STATIC_BUF_ALLOC(rlckwuSap->pst.region, rlckwuSap->pst.pool, *datCfm, sizeof(KwuDatCfmInfo));
/* Remove SDU from the sduQ */
cmLListDelFrm(&AMDL.sduQ, &sdu->lstEnt);
/* Remove SDU from the sduQ */
cmLListDelFrm(&AMDL.sduQ, &sdu->lstEnt);
- kwUtlAddSduToBeFreedQueue(gCb, sdu);
- kwUtlRaiseDlCleanupEvent(gCb);
+ rlcUtlAddSduToBeFreedQueue(gCb, sdu);
+ rlcUtlRaiseDlCleanupEvent(gCb);
-PRIVATE Void kwAmmDlProcessSuccessfulTxPdu(gCb, rbCb, sn, datCfm)
+PRIVATE Void rlcAmmDlProcessSuccessfulTxPdu(gCb, rbCb, sn, datCfm)
- kwUtlAddTxPduToBeFreedQueue(gCb, txBuf);
- kwUtlRaiseDlCleanupEvent(gCb);
+ rlcUtlAddTxPduToBeFreedQueue(gCb, txBuf);
+ rlcUtlRaiseDlCleanupEvent(gCb);
- RLC_SHRABL_STATIC_BUF_ALLOC(kwuSap->pst.region, kwuSap->pst.pool, staInd, sizeof(KwuStaIndInfo));
+ RLC_SHRABL_STATIC_BUF_ALLOC(rlckwuSap->pst.region, rlckwuSap->pst.pool, staInd, sizeof(KwuStaIndInfo));
RLC_ALLOC(gCb, resetRb, sizeof(RlcDlRbCb));
/* ccpu00135170 Removing KLOCK warning */
RLC_ALLOC(gCb, resetRb, sizeof(RlcDlRbCb));
/* ccpu00135170 Removing KLOCK warning */
- KW_MEM_CPY(resetRb, rbCb, sizeof(RlcDlRbCb));
- RLC_MEM_SET(&resetRb->m.amDl, 0 , sizeof(KwAmDl));
+ RLC_MEM_CPY(resetRb, rbCb, sizeof(RlcDlRbCb));
+ RLC_MEM_SET(&resetRb->m.amDl, 0 , sizeof(RlcAmDl));
- if (ROK != kwDbmFetchDlUeCb(gCb,rlcId.ueId, rlcId.cellId, &ueCb))
+ if (ROK != rlcDbmFetchDlUeCb(gCb,rlcId.ueId, rlcId.cellId, &ueCb))
{
RLOG_ARG2(L_ERROR,DBG_CELLID, rlcId.cellId,
"UeId [%d]: UeCb not found RBID;%d",
{
RLOG_ARG2(L_ERROR,DBG_CELLID, rlcId.cellId,
"UeId [%d]: UeCb not found RBID;%d",
- (KW_TX_BUF_BIN_SIZE * sizeof(CmLListCp)));
- for(hashIndex = 0; hashIndex < KW_TX_BUF_BIN_SIZE; hashIndex++)
+ (RLC_TX_BUF_BIN_SIZE * sizeof(CmLListCp)));
+ for(hashIndex = 0; hashIndex < RLC_TX_BUF_BIN_SIZE; hashIndex++)
- kwAmmDlMoveFrmTxtoRetxBuffer(gCb,amDl, &retx, sn);
+ rlcAmmDlMoveFrmTxtoRetxBuffer(gCb,amDl, &retx, sn);
- kwAmmDlMarkPduForReTx(gCb, rbCb, retx);
- kwAmmSendDStaRsp(gCb, rbCb, &AMDL);
+ rlcAmmDlMarkPduForReTx(gCb, rbCb, retx);
+ rlcAmmSendDStaRsp(gCb, rbCb, &AMDL);
-PRIVATE Void kwAmmDlUpdateTxAndReTxBufForAckSn(gCb, rbCb, mAckSn, retxNode, datCfm)
+PRIVATE Void rlcAmmDlUpdateTxAndReTxBufForAckSn(gCb, rbCb, mAckSn, retxNode, datCfm)
retxNode = retxNode->next;
MODAMT(retx->amHdr.sn, mSn, AMDL.txNextAck,AMDL.snModMask);
if (mSn < mAckSn)
{
retxNode = retxNode->next;
MODAMT(retx->amHdr.sn, mSn, AMDL.txNextAck,AMDL.snModMask);
if (mSn < mAckSn)
{
- kwAmmDlProcessSuccessfulReTx(gCb,rbCb, retx, datCfm);
+ rlcAmmDlProcessSuccessfulReTx(gCb,rbCb, retx, datCfm);
if (txBuf != NULLP)
{
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
if (txBuf != NULLP)
{
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
- kwAmmDlProcessSuccessfulTxPdu(gCb,rbCb, sn, datCfm);
+ rlcAmmDlProcessSuccessfulTxPdu(gCb,rbCb, sn, datCfm);
-PRIVATE Void kwAmmDlUpdTxAndReTxBufForLessThanNackSn(gCb, rbCb, sn, mNackSn, retxNode, datCfm)
+PRIVATE Void rlcAmmDlUpdTxAndReTxBufForLessThanNackSn(gCb, rbCb, sn, mNackSn, retxNode, datCfm)
MODAMT(retx->amHdr.sn, mSn, AMDL.txNextAck,AMDL.snModMask);
if (mSn < mNackSn)
{
(*retxNode) = (*retxNode)->next;
MODAMT(retx->amHdr.sn, mSn, AMDL.txNextAck,AMDL.snModMask);
if (mSn < mNackSn)
{
(*retxNode) = (*retxNode)->next;
- kwAmmDlProcessSuccessfulReTx(gCb,rbCb, retx, datCfm);
+ rlcAmmDlProcessSuccessfulReTx(gCb,rbCb, retx, datCfm);
{
/* this if check seems redundant,why should mSn ever be mTxSn
(which actually is VT(A) */
{
/* this if check seems redundant,why should mSn ever be mTxSn
(which actually is VT(A) */
if ((txBuf != NULLP))
{
RLOG_ARG3(L_DEBUG,DBG_RBID, rbCb->rlcId.rbId,
if ((txBuf != NULLP))
{
RLOG_ARG3(L_DEBUG,DBG_RBID, rbCb->rlcId.rbId,
- kwAmmDlProcessSuccessfulTxPdu(gCb,rbCb, sn, datCfm);
+ rlcAmmDlProcessSuccessfulTxPdu(gCb,rbCb, sn, datCfm);
-PRIVATE Void kwConstructAmHdr(amHdr, hdr, snLen, idx)
-KwAmHdr *amHdr;
+PRIVATE Void rlcConstructAmHdr(amHdr, hdr, snLen, idx)
+RlcAmHdr *amHdr;
node = amDl->retxLst.last;
MODAMT(retx->amHdr.sn, retxMSn, amDl->txNextAck,amDl->snModMask);
while(node != NULLP)
{
node = amDl->retxLst.last;
MODAMT(retx->amHdr.sn, retxMSn, amDl->txNextAck,amDl->snModMask);
while(node != NULLP)
{
MODAMT(tRetx->amHdr.sn, tMSn, amDl->txNextAck,amDl->snModMask);
if (tMSn > retxMSn)
{
MODAMT(tRetx->amHdr.sn, tMSn, amDl->txNextAck,amDl->snModMask);
if (tMSn > retxMSn)
{
-PRIVATE Void kwAmmDlMoveFrmTxtoRetxBuffer(gCb, amDl, retx, sn)
+PRIVATE Void rlcAmmDlMoveFrmTxtoRetxBuffer(gCb, amDl, retx, sn)
- KwTx* txBuf = kwUtlGetTxBuf(amDl->txBufLst, sn);
- TRC2(kwAmmDlMoveFrmTxtoRetxBuffer);
+ RlcTx* txBuf = rlcUtlGetTxBuf(amDl->txBufLst, sn);
+ TRC2(rlcAmmDlMoveFrmTxtoRetxBuffer);
RLC_FREE_WC(gCb, pduInfo, sizeof(RlcDlPduInfo));
}
/* Remove PDU from txBuf */
RLC_FREE_WC(gCb, pduInfo, sizeof(RlcDlPduInfo));
}
/* Remove PDU from txBuf */
{
bytesToEncode += 4; /* 4 Octets: SOstart, SOend */
}
/* Check if E3 : nackRange is set */
{
bytesToEncode += 4; /* 4 Octets: SOstart, SOend */
}
/* Check if E3 : nackRange is set */
{
bytesToEncode += 1; /* 1 Octet: NACK range */
}
/* Check if this NACK info can be accomodated in the Grant */
{
bytesToEncode += 1; /* 1 Octet: NACK range */
}
/* Check if this NACK info can be accomodated in the Grant */
- cntrlPdu[encIdx + 2] = (kwNackInfo->soStart) >> 8;
- cntrlPdu[encIdx + 3] = kwNackInfo->soStart & 0xFF;
+ cntrlPdu[encIdx + 2] = (rlcNackInfo->soStart) >> 8;
+ cntrlPdu[encIdx + 3] = rlcNackInfo->soStart & 0xFF;
- cntrlPdu[encIdx + 4] = (kwNackInfo->soEnd) >> 8;
- cntrlPdu[encIdx + 5] = kwNackInfo->soEnd & 0xFF;
+ cntrlPdu[encIdx + 4] = (rlcNackInfo->soEnd) >> 8;
+ cntrlPdu[encIdx + 5] = rlcNackInfo->soEnd & 0xFF;
{
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
{
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
{
bytesToEncode += 4; /* 4 Octets: SOstart, SOend */
}
/* Check if E3 : nackRange is set */
{
bytesToEncode += 4; /* 4 Octets: SOstart, SOend */
}
/* Check if E3 : nackRange is set */
{
bytesToEncode += 1; /* 1 Octet: NACK range */
}
/* Check if this NACK info can be accomodated in the Grant */
{
bytesToEncode += 1; /* 1 Octet: NACK range */
}
/* Check if this NACK info can be accomodated in the Grant */
- cntrlPdu[encIdx + 3] = (kwNackInfo->soStart) >> 8;
- cntrlPdu[encIdx + 4] = (U8)kwNackInfo->soStart;
+ cntrlPdu[encIdx + 3] = (rlcNackInfo->soStart) >> 8;
+ cntrlPdu[encIdx + 4] = (U8)rlcNackInfo->soStart;
- cntrlPdu[encIdx + 5] = (kwNackInfo->soEnd) >> 8;
- cntrlPdu[encIdx + 6] = (U8)(kwNackInfo->soEnd);
+ cntrlPdu[encIdx + 5] = (rlcNackInfo->soEnd) >> 8;
+ cntrlPdu[encIdx + 6] = (U8)(rlcNackInfo->soEnd);
{
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
{
RLOG_ARG3(L_UNUSED,DBG_RBID,rbCb->rlcId.rbId,
{
/* ERROR Log */
RLOG_ARG3(L_ERROR,DBG_RBID,rbCb->rlcId.rbId,
{
/* ERROR Log */
RLOG_ARG3(L_ERROR,DBG_RBID,rbCb->rlcId.rbId,
CmLteCellId cellId,CmLteRnti rnti,CmLteLcId lcId,Buffer *rlcSdu);
#ifdef ANSI
CmLteCellId cellId,CmLteRnti rnti,CmLteLcId lcId,Buffer *rlcSdu);
#ifdef ANSI
- KWDBGP_BRIEF(gCb, "rgAmmUlHndlStatusPdu(rbCb, cntrlPdu, fByte) \n");
+ RLCDBGP_BRIEF(gCb, "rgAmmUlHndlStatusPdu(rbCb, cntrlPdu, fByte) \n");
- resrvdBitsAckSn = KW_STA_PDU_R_BITS_ACKSN_12BITS;
- resrvdBitsNackSn = KW_STA_PDU_R_BITS_NACKSN_12BITS;
+ resrvdBitsAckSn = RLC_STA_PDU_R_BITS_ACKSN_12BITS;
+ resrvdBitsNackSn = RLC_STA_PDU_R_BITS_NACKSN_12BITS;
- resrvdBitsAckSn = KW_STA_PDU_R_BITS_ACKSN_18BITS;
- resrvdBitsNackSn = KW_STA_PDU_R_BITS_NACKSN_18BITS;
+ resrvdBitsAckSn = RLC_STA_PDU_R_BITS_ACKSN_18BITS;
+ resrvdBitsNackSn = RLC_STA_PDU_R_BITS_NACKSN_18BITS;
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
pStaPdu->ackSn = hdrInfo.val;
/* Check if NACK Exists */
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
pStaPdu->ackSn = hdrInfo.val;
/* Check if NACK Exists */
{
hdrInfo.len = snLen;
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
pStaPdu->nackInfo[pStaPdu->nackCnt].sn = hdrInfo.val;
{
hdrInfo.len = snLen;
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
pStaPdu->nackInfo[pStaPdu->nackCnt].sn = hdrInfo.val;
already present*/
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
/* e2 = (U8) hdrInfo.val;*/
already present*/
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
/* e2 = (U8) hdrInfo.val;*/
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
pStaPdu->nackInfo[pStaPdu->nackCnt].soStart = hdrInfo.val;
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
pStaPdu->nackInfo[pStaPdu->nackCnt].soEnd = hdrInfo.val;
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
pStaPdu->nackInfo[pStaPdu->nackCnt].soStart = hdrInfo.val;
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
pStaPdu->nackInfo[pStaPdu->nackCnt].soEnd = hdrInfo.val;
"rgAmmUlHndlStatusPdu: soStart and soEnd = %d %d \n",
pStaPdu->nackInfo[pStaPdu->nackCnt].soStart,
pStaPdu->nackInfo[pStaPdu->nackCnt].soEnd);
"rgAmmUlHndlStatusPdu: soStart and soEnd = %d %d \n",
pStaPdu->nackInfo[pStaPdu->nackCnt].soStart,
pStaPdu->nackInfo[pStaPdu->nackCnt].soEnd);
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
snRange = (U8)hdrInfo.val;
rgAmmExtractElmnt(gCb, cntrlPdu, &hdrInfo);
snRange = (U8)hdrInfo.val;
/* In case we have reached the MAX NACK CNT, then we should modify the ACK_SN
to the last NACK SN + 1 and discard the original ACK_SN*/
/* In case we have reached the MAX NACK CNT, then we should modify the ACK_SN
to the last NACK SN + 1 and discard the original ACK_SN*/
CmLteCellId cellId,CmLteRnti rnti,CmLteLcId lcId,Buffer *rlcSdu)
{
RlcDlRbCb *rbCb = NULLP;
CmLteCellId cellId,CmLteRnti rnti,CmLteLcId lcId,Buffer *rlcSdu)
{
RlcDlRbCb *rbCb = NULLP;
- if( ROK != kwDbmFetchDlUeCb(gCb,rnti,cellId,&(ueCb)))
+ if( ROK != rlcDbmFetchDlUeCb(gCb,rnti,cellId,&(ueCb)))
}
if(ROK != SExamMsg((Data *)(&fByte),
rlcSdu, 0))
{
printf("\n Failure in Rlc Hdr SExamMsg\n");
}
if(ROK != SExamMsg((Data *)(&fByte),
rlcSdu, 0))
{
printf("\n Failure in Rlc Hdr SExamMsg\n");
{
SRemPreMsg(&temp, rlcSdu);
dlRlcPst.selector = 1;/* LWLC*/
{
SRemPreMsg(&temp, rlcSdu);
dlRlcPst.selector = 1;/* LWLC*/