+++ /dev/null
-/*******************************************************************************
-################################################################################
-# Copyright (c) [2017-2019] [Radisys] #
-# #
-# Licensed under the Apache License, Version 2.0 (the "License"); #
-# you may not use this file except in compliance with the License. #
-# You may obtain a copy of the License at #
-# #
-# http://www.apache.org/licenses/LICENSE-2.0 #
-# #
-# Unless required by applicable law or agreed to in writing, software #
-# distributed under the License is distributed on an "AS IS" BASIS, #
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
-# See the License for the specific language governing permissions and #
-# limitations under the License. #
-################################################################################
-*******************************************************************************/
-
-/********************************************************************20**
-
- Name: NR RLC file for downlink and non real time tasks
-
- Type: C include file
-
- Desc: This file contains helper macros for RLC downlink
- and non real time task
-
- File: kw_dl.h
-
-*********************************************************************21*/
-/** @file kw_dl.h
-@brief RLC Downlink helper macros
-*/
-
-#ifndef __KW_DLH__
-#define __KW_DLH__
-#define RLC_DL_INST 1
-#define RLC_MAX_RNG_DEQ_INDX 8
-
-/* Below are the status used within RLC */
-#define RLC_SDU_OPAT_NOUPDATE 0
-#define RLC_SDU_OPAT_UPD_TX 1
-#define RLC_SDU_OPAT_UPD_RETX 2
-
-/* Below are the status which needs to be updated to MAC */
-#define RLC_RGU_SDU_OPAT_NOUPDATE 0
-#define RLC_RGU_SDU_OPAT_UPDATE 1
-#define RLC_RGU_SDU_OPAT_BREACH 2
-
-/* PDB Values for various QCI bearers : This value is considered
- after taking into account a 20ms delay at the network */
-#define RLC_PDB_VALUE_FOR_QCI1 80
-#define RLC_PDB_VALUE_FOR_QCI2 130
-#define RLC_PDB_VALUE_FOR_QCI3 30
-#define RLC_PDB_VALUE_FOR_QCI4 280
-#define RLC_PDB_VALUE_FOR_QCI5 80
-#define RLC_PDB_VALUE_FOR_QCI6 280
-#define RLC_PDB_VALUE_FOR_QCI7 80
-#define RLC_PDB_VALUE_FOR_QCI8 280
-#define RLC_PDB_VALUE_FOR_QCI9 280
-
-#define RLC_DATA_BITMASK 0x80 /* Data bitmask is used to fill D/C bit for data*/
-/**
- * @def RLC_MEAS_IS_DL_IP_MEAS_ON_FOR_RB
- *
- * This macro is used to check if DL IP throughput measurement is ON
- * or off for the passed rb
- *
- * Returns TRUE (non-zero) if measurement is ON else FALSE (zero)
- *
- * @param[in] _gCb RLC DL Cb
- * @param[in] _rbCb RLC downlink control block
- *
-*/
-#ifdef LTE_L2_MEAS
-#define RLC_MEAS_IS_DL_ANY_MEAS_ON_FOR_RB(_gCb, _rbCb) \
- ((_rbCb->rlcId.rbType == CM_LTE_DRB) && \
- (_gCb->u.dlCb->rlcL2Cb.measOn[_rbCb->qci]))
-
-#define RLC_MEAS_IS_DL_IP_MEAS_ON_FOR_RB(_gCb, _rbCb) \
- ((_rbCb->rlcId.rbType == CM_LTE_DRB) && \
- (_gCb->u.dlCb->rlcL2Cb.measOn[_rbCb->qci] & LKW_L2MEAS_DL_IP) && \
- (_rbCb->rbL2Cb.measOn & LKW_L2MEAS_DL_IP))
-
-#define RLC_MEAS_IS_DL_DELAY_MEAS_ON_FOR_RB(_gCb, _rbCb) \
- ((_rbCb->rlcId.rbType == CM_LTE_DRB) && \
- (_gCb->u.dlCb->rlcL2Cb.measOn[_rbCb->qci] & LKW_L2MEAS_DL_DELAY))
-
-#define RLC_MEAS_IS_DL_UU_LOSS_MEAS_ON_FOR_RB(_gCb, _rbCb) \
- ((_rbCb->rlcId.rbType == CM_LTE_DRB) && \
- (_gCb->u.dlCb->rlcL2Cb.measOn[_rbCb->qci] & LKW_L2MEAS_UU_LOSS))
-#define RLC_UPD_PDCP_L2_DLDELAY_STS(_rlcCb, _rlcRbCb, _delay) \
-{ \
- if(((_rlcRbCb)->rlcId.rbType == CM_LTE_DRB) && \
- ((_rlcCb)->u.dlCb->rlcL2Cb.measOn[_rlcRbCb->qci] & LKW_L2MEAS_DL_DELAY)) \
- { \
- (_rlcRbCb)->rbL2Cb.l2Sts[RLC_L2MEAS_DL_DELAY]->dlPjSduDelay.sduDelay += _delay; \
- (_rlcRbCb)->rbL2Cb.l2Sts[RLC_L2MEAS_DL_DELAY]->dlPjSduDelay.numSdus++; \
- } \
-}
-
-#define RLC_UPD_L2_UU_LOSS_PKTS(_rlcCb, _rlcRbCb, _val) \
-{ \
- if(((_rlcRbCb)->rlcId.rbType == CM_LTE_DRB) && \
- ((_rlcCb)->u.dlCb->rlcL2Cb.measOn[_rlcRbCb->qci] & LKW_L2MEAS_UU_LOSS)) \
- { \
- (_rlcRbCb)->rbL2Cb.l2Sts[RLC_L2MEAS_UU_LOSS]->uuLoss.dLoss += _val; \
- } \
-}
-#define RLC_UPD_L2_UU_LOSS_POS_PKTS(_rlcCb,_rlcRbCb,_val) \
-{ \
- if(((_rlcRbCb)->rlcId.rbType == CM_LTE_DRB) && \
- ((_rlcCb)->u.dlCb->rlcL2Cb.measOn[_rlcRbCb->qci] & LKW_L2MEAS_UU_LOSS)) \
- { \
- (_rlcRbCb)->rbL2Cb.l2Sts[RLC_L2MEAS_UU_LOSS]->uuLoss.posPkts += _val; \
- } \
-}
-/* Discard new changes starts */
-#define RLC_UPD_L2_DL_DISC_SDU_STS(_rlcCb,_rlcRbCb) \
-{ \
- if(((_rlcRbCb)->rlcId.rbType == CM_LTE_DRB) && \
- ((_rlcCb)->u.dlCb->rlcL2Cb.measOn[_rlcRbCb->qci] & LKW_L2MEAS_DL_DISC)) \
- { \
- (_rlcRbCb)->rbL2Cb.l2Sts[RLC_L2MEAS_DL_DISC]->dlDisc.discSdus++; \
- } \
-}
-
-#define RLC_UPD_L2_DL_TOT_SDU_STS(_rlcCb,_rlcRbCb) \
-{ \
- if(((_rlcRbCb)->rlcId.rbType == CM_LTE_DRB) && \
- ((_rlcCb)->u.dlCb->rlcL2Cb.measOn[_rlcRbCb->qci] & LKW_L2MEAS_DL_DISC)) \
- { \
- (_rlcRbCb)->rbL2Cb.l2Sts[RLC_L2MEAS_DL_DISC]->dlDisc.totSdus++; \
- } \
-}
-
-#define RLC_UPD_L2_DECR_NONIP_PER_QCI_RB_COUNT(_rlcCb, _rlcRbCb) \
-{ \
- if(((_rlcRbCb)->rlcId.rbType == CM_LTE_DRB) && \
- ((_rlcCb)->u.dlCb->rlcL2Cb.measOn[_rlcRbCb->qci] & LKW_L2MEAS_DL_DISC)) \
- { \
- uint32_t idx1; \
- for (idx1 = 0; idx1 < LKW_MAX_L2MEAS; idx1++) \
- { \
- if(_rlcCb->u.dlCb->rlcL2Cb.rlcL2EvtCb[idx1].measCb.measType & LKW_L2MEAS_DL_DISC) \
- { \
- if(_rlcCb->u.dlCb->rlcL2Cb.rlcL2EvtCb[idx1].measCb.val.nonIpThMeas.measData[(_rlcRbCb)->qci].totDrbsPerQci > 0) \
- { \
- _rlcCb->u.dlCb->rlcL2Cb.rlcL2EvtCb[idx1].measCb.val.nonIpThMeas.measData[(_rlcRbCb)->qci].totDrbsPerQci--; \
- if (_rlcCb->u.dlCb->rlcL2Cb.rlcL2EvtCb[idx1].measCb.val.nonIpThMeas.measData[(_rlcRbCb)->qci].totDrbsPerQci == 0) \
- { \
- _rlcCb->u.dlCb->rlcL2Cb.rlcL2EvtCb[idx1].measCb.val.nonIpThMeas.qci[(_rlcRbCb)->qci] = 0; \
- memset(&_rlcCb->u.dlCb->rlcL2Cb.rlcL2EvtCb[idx1].measCb.val.nonIpThMeas.measData[(_rlcRbCb)->qci], 0, \
- sizeof(_rlcCb->u.dlCb->rlcL2Cb.rlcL2EvtCb[idx1].measCb.val.nonIpThMeas.measData[(_rlcRbCb)->qci])); \
- } \
- } \
- } \
- } \
- } \
-}
-#else
-#define RLC_UPD_PDCP_L2_DLDELAY_STS(_rlcCb, _rlcRbCb, _delay)
-#define RLC_MEAS_IS_DL_IP_MEAS_ON_FOR_RB(_gCb, _rbCb)
-#define RLC_MEAS_IS_DL_DELAY_MEAS_ON_FOR_RB(_gCb, _rbCb)
-#define RLC_UPD_L2_DL_DISC_SDU_STS(_rlcCb,_rlcRbCb)
-#define RLC_UPD_L2_DL_TOT_SDU_STS(_rlcCb, _rlcRbCb)
-#define RLC_UPD_L2_DECR_NONIP_PER_QCI_RB_COUNT(_rlcCb, _rlcRbCb)
-#endif
-
-
-#endif /* __KW_DLH__ */
-\f
-/********************************************************************30**
-
- End of file
-**********************************************************************/