#endif /* __cplusplus */
/** @brief Local typedefs */
-typedef U32 RlcSn; /*!< Sequence Number length */
+typedef uint32_t RlcSn; /*!< Sequence Number length */
typedef RguDDatIndInfo KwDatIndInfo;
typedef struct _amRlcStats
{
- U32 numDLStaPduSent;
- U32 numDLNacksInStaPdu;
- U32 numDLBytesUnused;
- U32 numDLPollTimerExpiresSrb;
- U32 numDLPollTimerExpiresDrb;
- U32 numDLMaxRetx;
- U32 numDLRetransPdus;
- U32 numULPdusDiscarded;
- U32 numULReOrdTimerExpires;
- U32 numULStaPduRcvd;
- U32 numULNackInStaPduRcvd;
- U32 numRlcAmCellSduTx; /* Count of SDUs transmitted in DL for all UEs */
- U32 numRlcAmCellSduBytesTx; /*Total number of bytes transmitted in DL for all Ues */
- U32 numRlcAmCellRetxPdu; /*Count of PDUs retransmitted for all Ues */
- U32 numRlcAmMaxRetx; /*Total number of Max-RLC retransmissions hit for all the Ues */
- U32 numRlcAmCellDupPduRx; /*Count of Duplicate PDUs detected for a UE in UL for all Ues */
- U32 numRlcAmCellDropOutWinRx; /*Count of PDUs dropped due to Out of Window reception for all Ues */
- U32 numRlcAmCellSduRx; /* Count of SDUs received in UL for all UEs*/
- U32 numRlcAmCellSduBytesRx;/*Total number of bytes received in UL for all Ues*/
- U32 numRlcAmCellNackRx; /*Total number of UL PDUs nacked for all the Ues*/
- U32 numRlcAmCellWinStall; /*Number of window stalls detected for all the Ues */
+ uint32_t numDLStaPduSent;
+ uint32_t numDLNacksInStaPdu;
+ uint32_t numDLBytesUnused;
+ uint32_t numDLPollTimerExpiresSrb;
+ uint32_t numDLPollTimerExpiresDrb;
+ uint32_t numDLMaxRetx;
+ uint32_t numDLRetransPdus;
+ uint32_t numULPdusDiscarded;
+ uint32_t numULReOrdTimerExpires;
+ uint32_t numULStaPduRcvd;
+ uint32_t numULNackInStaPduRcvd;
+ uint32_t numRlcAmCellSduTx; /* Count of SDUs transmitted in DL for all UEs */
+ uint32_t numRlcAmCellSduBytesTx; /*Total number of bytes transmitted in DL for all Ues */
+ uint32_t numRlcAmCellRetxPdu; /*Count of PDUs retransmitted for all Ues */
+ uint32_t numRlcAmMaxRetx; /*Total number of Max-RLC retransmissions hit for all the Ues */
+ uint32_t numRlcAmCellDupPduRx; /*Count of Duplicate PDUs detected for a UE in UL for all Ues */
+ uint32_t numRlcAmCellDropOutWinRx; /*Count of PDUs dropped due to Out of Window reception for all Ues */
+ uint32_t numRlcAmCellSduRx; /* Count of SDUs received in UL for all UEs*/
+ uint32_t numRlcAmCellSduBytesRx;/*Total number of bytes received in UL for all Ues*/
+ uint32_t numRlcAmCellNackRx; /*Total number of UL PDUs nacked for all the Ues*/
+ uint32_t numRlcAmCellWinStall; /*Number of window stalls detected for all the Ues */
}AMRLCStats;
typedef struct _umRlcStats
{
- U32 numDLBytesUnused;
- U32 numDLMaxRetx;
- U32 numULPdusDiscarded;
- U32 numULReOrdTimerExpires;
- U32 numULPdusOutsideWindow;
+ uint32_t numDLBytesUnused;
+ uint32_t numDLMaxRetx;
+ uint32_t numULPdusDiscarded;
+ uint32_t numULReOrdTimerExpires;
+ uint32_t numULPdusOutsideWindow;
}UMRLCStats;
typedef struct _rlcStats
UMRLCStats umRlcStats;
}RLCStats;
-EXTERN RLCStats gRlcStats;
+RLCStats gRlcStats;
/* kw005.201 added support for L2 Measurement */
#ifdef LTE_L2_MEAS
* @brief Structure to hold an Unacknowledged Mode header
*
* @details
- * - fi : Framing Info
+ * - si : Segmentation Info
* - sn : Sequence number
- * - numLi : Number of length indicators in the following array (li)
- * - li : Length indicators
+ * - so : Segmentation offset
*/
typedef struct rlcUmHdr
{
- U8 fi; /*!< Framing Info */
- RlcSn sn; /*!< Sequence number */
- U16 numLi; /*!< Number of LIs */
- U16 li[RLC_MAX_UL_LI]; /*!< Array of LIs */
+ uint8_t si; /*!< Segmentation Info */
+ RlcSn sn; /*!< Sequence number */
+ uint16_t so; /*!< Segmentation offset */
}RlcUmHdr;
+
/**
* @brief Structure to hold an Acknowledged Mode header
*
*/
typedef struct rlcAmHdr
{
- U8 dc; /*!< Data/Control PDU */
- U8 p; /*!< Poll bit */
- U8 si; /*!< Segmentation Info: 5GNR */
- RlcSn sn; /*!< Sequence number */
- U32 so; /*!< Segment offset */
+ uint8_t dc; /*!< Data/Control PDU */
+ uint8_t p; /*!< Poll bit */
+ uint8_t si; /*!< Segmentation Info: 5GNR */
+ RlcSn sn; /*!< Sequence number */
+ uint32_t so; /*!< Segment offset */
}RlcAmHdr;
/* structures used for encoding/decoding the headers */
typedef struct rlcCntrlInfo
{
- U16 val;
- U8 len;
- U16 idx;
- U8 emtBits;
- U16 e1Idx;
- U16 e2Idx;
- U8 e1eb;
+ uint16_t val;
+ uint8_t len;
+ uint16_t idx;
+ uint8_t emtBits;
+ uint16_t e1Idx;
+ uint16_t e2Idx;
+ uint8_t e1eb;
}RlcCntrlInfo;
typedef struct rlcHdrInfo
{
- U32 val;
- U8 len;
- U8 eb;
- U8 *hdr;
- U16 idx;
- U8 pEb;
- U8 pLen;
+ uint32_t val;
+ uint8_t len;
+ uint8_t eb;
+ uint8_t *hdr;
+ uint16_t idx;
+ uint8_t pEb;
+ uint8_t pLen;
}RlcHdrInfo;
typedef struct rlcExtHdr
{
- U32 val;
- U16 len;
- U8 hdr;
- U8 pLen;
+ uint32_t val;
+ uint16_t len;
+ uint8_t hdr;
+ uint8_t pLen;
}RlcExtHdr;
/**
{
struct
{
- U32 numActvUe; /*!< number of active Ue */
- U32 sampOc; /*!< Total number of sampling occasion */
+ uint32_t numActvUe; /*!< number of active Ue */
+ uint32_t sampOc; /*!< Total number of sampling occasion */
}actUe;
struct
{
- U32 dLoss; /*!< Total number of lost packets */
- U32 posPkts; /*!< Total number of positively acknowlegded
+ uint32_t dLoss; /*!< Total number of lost packets */
+ uint32_t posPkts; /*!< Total number of positively acknowlegded
packets */
}uuLoss;
struct /*!< For DL IP throughput */
{
- U32 volSummation; /*!< Sum of data in bytes */
- U32 timeSummation; /*!< Sum of time difference in milli sec*/
+ uint32_t volSummation; /*!< Sum of data in bytes */
+ uint32_t timeSummation; /*!< Sum of time difference in milli sec*/
}dlIpThruput;
struct /*!< For UL IP throughput */
{
- U32 volSummation; /*!< Sum of data in bytes */
- U32 timeSummation; /*!< Sum of time difference in milli sec*/
+ uint32_t volSummation; /*!< Sum of data in bytes */
+ uint32_t timeSummation; /*!< Sum of time difference in milli sec*/
}ulIpThruput;
/* Discard new changes starts */
struct /*!< For UL IP throughput */
{
- U32 discSdus; /*!< Total RLC SDUs discarded */
- U32 totSdus; /*!< Total RLC SDUs received */
+ uint32_t discSdus; /*!< Total RLC SDUs discarded */
+ uint32_t totSdus; /*!< Total RLC SDUs received */
}dlDisc;
struct /*!< For UL IP throughput */
{
- U64 sduDelay; /*!< Total SDUs delay */
- U32 numSdus;
+ uint64_t sduDelay; /*!< Total SDUs delay */
+ uint32_t numSdus;
}dlPjSduDelay;
- U32 totDrbsPerQci; /*!< Total Count of DRB's for this QCI */
+ uint32_t totDrbsPerQci; /*!< Total Count of DRB's for this QCI */
}RlcL2Cntr;
struct rlcSduSnMap
CmLList lstEnt;
Bool failMarked;
Bool fullySent;
- U32 sduId;
- U16 numSn;
- U16 snList[RLC_MAX_PDU_MAP];
- U16 harqAck;
- U16 reqSent;
- U16 rspRcvd;
+ uint32_t sduId;
+ uint16_t numSn;
+ uint16_t snList[RLC_MAX_PDU_MAP];
+ uint16_t harqAck;
+ uint16_t reqSent;
+ uint16_t rspRcvd;
};
typedef struct rlcSnSduMap
{
- U16 sn;
- CmLteLcId lChId; /*!< Logical channel Id */
- U16 numSdu;
+ uint16_t sn;
+ CmLteLcId lChId; /*!< Logical channel Id */
+ uint16_t numSdu;
#ifdef LTE_RLC_R9
Bool isBurstSplitted; /*!< true: burst for this LCH is splitted */
#endif /* LTE_RLC_R9 */
typedef struct rlcTbSnMap
{
CmHashListEnt hlTbEnt;
- U32 tbId;
- U16 prevNumSn;
- U16 numSn;
- RlcSnSduMap snSduMap[RGU_MAX_PDU * RGU_MAX_LC];
+ uint32_t tbId;
+ uint16_t prevNumSn;
+ uint16_t numSn;
+ RlcSnSduMap snSduMap[RGU_MAX_PDU * RGU_MAX_LC];
}RlcTbSnMap;
typedef struct rlcL2MeasCbUeMeasInfo
CmLteCellId cellId; /*!< UE ID (Used only for IP Throughput
in UL/DL */
Bool isValid; /*! < is this UE entry valid */
- U8 numLcId; /*!< Holds the number of LCh for which Ul Ip
+ uint8_t numLcId; /*!< Holds the number of LCh for which Ul Ip
measurement is ON */
- U8 lcId[RLC_MAX_LCH_PER_UE]; /*!< Holds the list of LCh for which Ul ip
+ uint8_t lcId[RLC_MAX_LCH_PER_UE]; /*!< Holds the list of LCh for which Ul ip
measurement is ON */
RlcL2Cntr measData[LKW_MAX_QCI];
- U16 numQci; /*!< number of valid qcI */
- U8 qci[LKW_MAX_QCI]; /*!< list of valid qcI */
+ uint16_t numQci; /*!< number of valid qcI */
+ uint8_t qci[LKW_MAX_QCI]; /*!< list of valid qcI */
}RlcL2MeasCbUeMeasInfo;
typedef struct rlcL2MeasCbIpThMeas
{
- U8 numUes;
- U8 totNumQci;
- U8 totQci[LKW_MAX_QCI];
+ uint8_t numUes;
+ uint8_t totNumQci;
+ uint8_t totQci[LKW_MAX_QCI];
RlcL2MeasCbUeMeasInfo ueInfoLst[LKW_MAX_UE]; /*Added for handling meas for multiple ues*/
}RlcL2MeasCbIpThMeas;
typedef struct rlcL2MeasCbNonIpThMeas
{
- U16 numSamples; /*!< Number of samples to take on numActUe */
- U16 numQci; /*!< number of valid qcI */
- U8 qci[LKW_MAX_QCI]; /*!< list of valid qcI */
+ uint16_t numSamples; /*!< Number of samples to take on numActUe */
+ uint16_t numQci; /*!< number of valid qcI */
+ uint8_t qci[LKW_MAX_QCI]; /*!< list of valid qcI */
RlcL2Cntr measData[LKW_MAX_QCI]; /*!< Measurement CB */
}RlcL2MeasCbNonIpThMeas;
* RLC L2 Measurement CB */
typedef struct rlcL2MeasCb
{
- U8 measType; /*!< Bit-wise set measurement types */
+ uint8_t measType; /*!< Bit-wise set measurement types */
RlcL2MeasCbIpNonIpThMeasVal val; /* Union of IP tpt or non-ip tpt */
}RlcL2MeasCb;
* RLC L2 Measurement Evt CB */
typedef struct rlcL2MeasEvtCb
{
- U32 transId; /*!< TransId of Measurement Req */
- U32 cbIdx; /*!< TransId of Measurement Req */
+ uint32_t transId; /*!< TransId of Measurement Req */
+ uint32_t cbIdx; /*!< TransId of Measurement Req */
CmTimer l2Tmr; /* NOT USED */ /*!< L2 Timer per request */
TmrCfg l2TmrCfg; /* NOT USED */ /*!< Time period of measurement */
- RlcL2MeasCb measCb; /*!< Measurement CB */
+ RlcL2MeasCb measCb; /*!< Measurement CB */
EpcTime startTime; /* NOT USED */ /*!< start time when meas starts*/
}RlcL2MeasEvtCb;
* RLC L2 Measurement Rb CB */
typedef struct rlcL2MeasRbCb
{
- U8 measOn; /*!< Measurements that are running */
+ uint8_t measOn; /*!< Measurements that are running */
RlcL2Cntr *l2Sts[RLC_MAX_L2MEAS_EVT]; /*!< L2 Mesurement statistics */
}RlcL2MeasRbCb;
* RLC L2 CB */
typedef struct rlcL2Cb
{
- U16 rlcNumMeas; /*!< Number of measurements going on */
+ uint16_t rlcNumMeas; /*!< Number of measurements going on */
RlcL2MeasEvtCb rlcL2EvtCb[LKW_MAX_L2MEAS]; /*!< Pointers to Measurement Cb */
- U8 measOn[LKW_MAX_QCI]; /*!< Measurement on */
- U32 numActUe[LKW_MAX_QCI]; /*!< Measurement on */
+ uint8_t measOn[LKW_MAX_QCI]; /*!< Measurement on */
+ uint32_t numActUe[LKW_MAX_QCI]; /*!< Measurement on */
}RlcL2Cb;
* burst sdus in DL for a RB */
typedef struct rlcOutStngSduInfo
{
- U32 sduId; /*!< SDU Id of sdu */
+ uint32_t sduId; /*!< SDU Id of sdu */
MsgLen sduLen; /*!< Size of sdu */
- U32 numTb; /*!< Hold the number of TBs for this sdu in DL */
+ uint32_t numTb; /*!< Hold the number of TBs for this sdu in DL */
}RlcOutStngSduInfo;
/**
* throughput for a RB */
typedef struct rlcL2MeasDlIpTh
{
- Bool isBurstAct; /*!< Set to TRUE when burst is active in DL */
- U64 burstStartTime; /*!< Holds the starting time of the burst */
- U32 burstEndSduId; /*!< Sdu ID when burst ends */
- U8 lastSduIdx; /*!< Holds the index of last outStanding sdu */
+ Bool isBurstAct; /*!< Set to TRUE when burst is active in DL */
+ uint64_t burstStartTime; /*!< Holds the starting time of the burst */
+ uint32_t burstEndSduId; /*!< Sdu ID when burst ends */
+ uint8_t lastSduIdx; /*!< Holds the index of last outStanding sdu */
RlcOutStngSduInfo outStngSduArr[RLC_L2MEAS_MAX_OUTSTNGSDU];/*!< Hold the burst sdu information */
}RlcL2MeasDlIpTh;
* throughput for a RB */
typedef struct rlcL2MeasIpThruput
{
- U32 dataVol; /*!< Holds volume of new data in bytes
+ uint32_t dataVol; /*!< Holds volume of new data in bytes
for UL IP throughput */
- U32 ttiCnt; /*!< Holds ttiCnt received from MAC in UL */
- U32 prevTtiCnt; /*!< Holds previous ttiCnt received from MAC in UL */
+ uint32_t ttiCnt; /*!< Holds ttiCnt received from MAC in UL */
+ uint32_t prevTtiCnt; /*!< Holds previous ttiCnt received from MAC in UL */
RlcL2MeasDlIpTh dlIpTh;
}RlcL2MeasIpThruput;
Pst pst; /*!< Service user post structure */
SpId spId; /*!< Service provider Id */
SuId suId; /*!< Service user Id */
- U8 state; /*!< Sap Status */
+ uint8_t state; /*!< Sap Status */
RlcCkwCntSts sts; /*!< Statistics */
}RlcCkwSapCb;
Pst pst; /*!< Service user post structure */
SpId spId; /*!< Service provider Id */
SuId suId; /*!< Service user Id */
- U8 state; /*!< Sap Status */
- RlcKwuSapSts sts; /*!< Statistics */
+ uint8_t state; /*!< Sap Status */
+ RlcKwuSapSts sts; /*!< Statistics */
}RlcKwuSapCb;
/**
Pst pst; /*!< Service user post structure */
SpId spId; /*!< Service provider Id */
SuId suId; /*!< Service user Id */
- U8 state; /*!< Sap Status */
+ uint8_t state; /*!< Sap Status */
CmTimer bndTmr; /*!< Bind Timer */
- U16 bndTmrInt; /*!< Timer Interval */
- U8 retryCnt; /*!< Bind Retry Count */
+ uint16_t bndTmrInt; /*!< Timer Interval */
+ uint8_t retryCnt; /*!< Bind Retry Count */
}RlcRguSapCb;
/**
Pst pst; /*!< Service user post structure */
SpId spId; /*!< Service provider Id */
SuId suId; /*!< Service user Id */
- U8 state; /*!< Sap Status */
+ uint8_t state; /*!< Sap Status */
CmTimer bndTmr; /*!< Bind Timer */
- U16 bndTmrInt; /*!< Timer Interval */
- U8 retryCnt; /*!< Bind Retry Count */
+ uint16_t bndTmrInt; /*!< Timer Interval */
+ uint8_t retryCnt; /*!< Bind Retry Count */
}RlcUdxUlSapCb;
/**
*/
typedef struct rlcUdxDlSapCb
{
- Pst pst; /*!< Service user post structure */
- SpId spId; /*!< Service provider Id */
- SuId suId; /*!< Service user Id */
- U8 state; /*!< Sap Status */
+ Pst pst; /*!< Service user post structure */
+ SpId spId; /*!< Service provider Id */
+ SuId suId; /*!< Service user Id */
+ uint8_t state; /*!< Sap Status */
}RlcUdxDlSapCb;
/**
*/
typedef struct rlcDlCb
{
- U8 numKwuSaps; /*!< Number of RLC Data Saps */
- U8 numUdxSaps; /*!< Number of RLC Data Saps */
- RlcKwuSapCb *rlcKwuDlSap; /*!< KWU Sap Control Block */
- RlcUdxDlSapCb *udxDlSap; /*!< UDX DL Sap Control Block */
- RlcRguSapCb *rguDlSap; /*!< RGU Sap Control Block */
+ uint8_t numKwuSaps; /*!< Number of RLC Data Saps */
+ uint8_t numUdxSaps; /*!< Number of RLC Data Saps */
+ RlcKwuSapCb *rlcKwuDlSap; /*!< KWU Sap Control Block */
+ RlcUdxDlSapCb *udxDlSap; /*!< UDX DL Sap Control Block */
+ RlcRguSapCb *rguDlSap; /*!< RGU Sap Control Block */
CmHashListCp cellLstCp; /*!< Hashlist of CellCb */
CmHashListCp ueLstCp; /*!< Hashlist of UeCb */
- RlcDlDataToBeFreed toBeFreed; /*!< Pointer to data to be freed */
+ RlcDlDataToBeFreed toBeFreed; /*!< Pointer to data to be freed */
Pst selfPst; /*!< Pst to post events to self */
Buffer *selfPstMBuf; /*!< Buffer used for self post */
Bool shutdownReceived; /*!< Request for shutdown recevied */
typedef struct rlcUlCb
{
RlcCkwSapCb ckwSap; /*!< CKW Sap Conrol Block */
- U8 numKwuSaps; /*!< Number of RLC Data Saps */
- U8 numUdxSaps; /*!< Number of RLC Data Saps */
+ uint8_t numKwuSaps; /*!< Number of RLC Data Saps */
+ uint8_t numUdxSaps; /*!< Number of RLC Data Saps */
RlcUdxUlSapCb *udxUlSap; /*!< UDX DL Sap Control Block */
RlcKwuSapCb *rlcKwuUlSap; /*!< KWU Sap Control Block */
RlcRguSapCb *rguUlSap; /*!< RGU Sap Control Block */
CmHashListCp cellLstCp; /*!< Hashlist of CellCb */
CmHashListCp ueLstCp; /*!< Hashlist of UeCb */
CmHashListCp transIdLstCp; /*!< Hashlist of cfg trans */
+ uint8_t rlcUlUdxEventType; /*!<Ue Create/ReConfig> */
/* kw005.201 added support for L2 Measurement */
#ifdef LTE_L2_MEAS
RlcL2Cb rlcL2Cb; /*!< Control Block for L2 Measurements in RLC */
RlcGenCfg genCfg; /*!< General Configuration Structure */
RlcGenSts genSts; /*!< General Statistics */
S16 trcLen; /*!< Trace Length */
- U8 trcMask; /*!< Trace Mask */
+ uint8_t trcMask; /*!< Trace Mask */
CmTqType rlcTq[RLC_TMR_LEN]; /*!< Timer queue */
CmTqCp rlcTqCp; /*!< Timer queue control point */
union
uint8_t dlSduId; /*!< Downlink SDU ID */
}RlcCb;
-EXTERN RlcCb *rlcCb[MAX_RLC_INSTANCES]; /*!< RLC global control block */
+RlcCb *rlcCb[MAX_RLC_INSTANCES]; /*!< RLC global control block */
/****************************************************************************
- * EXTERN Declarations
+ * Declarations
***************************************************************************/
S16 rlcGetSId ARGS((SystemId *s));
void rlcStartTmr ARGS((RlcCb *gCb, PTR cb, S16 tmrEvnt));
-void rlcStopTmr ARGS((RlcCb *gCb, PTR cb, U8 tmrType));
+void rlcStopTmr ARGS((RlcCb *gCb, PTR cb, uint8_t tmrType));
bool rlcChkTmr ARGS((RlcCb *gCb,PTR cb, S16 tmrEvnt));
#ifdef LTE_L2_MEAS
Void rlcLmmSendAlarm ARGS (( RlcCb *gCb,
- U16 category,
- U16 event,
- U16 cause,
+ uint16_t category,
+ uint16_t event,
+ uint16_t cause,
SuId suId,
- U32 ueId,
- U8 qci));
+ uint32_t ueId,
+ uint8_t qci));
S16 RlcMiRlcDlL2MeasReq ARGS (( Pst *pst, RlcL2MeasReqEvt *measReqEvt ));
-S16 RlcMiRlcDlL2MeasSendReq ARGS((Pst *pst,U8 measType));
-S16 RlcMiRlcDlL2MeasStopReq ARGS((Pst *pst,U8 measType));
+S16 RlcMiRlcDlL2MeasSendReq ARGS((Pst *pst,uint8_t measType));
+S16 RlcMiRlcDlL2MeasStopReq ARGS((Pst *pst,uint8_t measType));
S16 RlcMiRlcUlL2MeasReq ARGS (( Pst *pst, RlcL2MeasReqEvt *measReqEvt ));
-S16 RlcMiRlcUlL2MeasSendReq ARGS((Pst *pst,U8 measType));
-S16 RlcMiRlcUlL2MeasStopReq ARGS((Pst *pst,U8 measType));
+S16 RlcMiRlcUlL2MeasSendReq ARGS((Pst *pst,uint8_t measType));
+S16 RlcMiRlcUlL2MeasStopReq ARGS((Pst *pst,uint8_t measType));
Void rlcUtlPlcMeasDatInL2Sts ARGS((RlcL2Cntr *measData,
RlcL2MeasRbCb *rbL2Cb,
- U8 measType));
+ uint8_t measType));
#else /* LTE_L2_MEAS */
Void rlcLmmSendAlarm ARGS ((RlcCb *gCb,
- U16 category,
- U16 event,
- U16 cause,
+ uint16_t category,
+ uint16_t event,
+ uint16_t cause,
SuId suId,
- U32 ueId));
+ uint32_t ueId));
#endif /* LTE_L2_MEAS */
#ifdef __cplusplus