UL data path changes at Phy stub, RLC UL UM and DU APP [Issue-ID: ODUHIGH-262]
[o-du/l2.git] / src / 5gnrrlc / kw.x
index b34fad1..fb098d7 100755 (executable)
@@ -40,7 +40,7 @@ extern "C" {
 #endif /* __cplusplus */
 
 /** @brief Local typedefs */
-typedef U32    KwSn;   /*!< Sequence Number length */
+typedef uint32_t    RlcSn;   /*!< Sequence Number length */
 
 typedef RguDDatIndInfo KwDatIndInfo;
 
@@ -50,36 +50,36 @@ typedef RguPduInfo KwPduInfo; /* kw002.201 : Aligning the structure with RGU */
 
 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
@@ -88,11 +88,11 @@ typedef struct _rlcStats
    UMRLCStats   umRlcStats;
 }RLCStats;
 
-EXTERN RLCStats gRlcStats;
+RLCStats gRlcStats;
 
 /* kw005.201 added support for L2 Measurement */
 #ifdef LTE_L2_MEAS
-typedef struct kwSduSnMap KwSduSnMap;
+typedef struct rlcSduSnMap RlcSduSnMap;
 typedef RguLchMapInfo KwLchMapInfo;
 #endif /*  LTE_L2_MEAS */
 
@@ -103,18 +103,17 @@ typedef RguLchMapInfo KwLchMapInfo;
  * @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 kwUmHdr
+typedef struct rlcUmHdr
 {
-   U8     fi;              /*!< Framing Info */
-   KwSn   sn;              /*!< Sequence number */
-   U16    numLi;           /*!< Number of LIs */
-   U16    li[KW_MAX_UL_LI];   /*!< Array of LIs */
-}KwUmHdr;
+   uint8_t     si;              /*!< Segmentation Info */
+   RlcSn       sn;              /*!< Sequence number */
+   uint16_t    so;              /*!< Segmentation offset */
+}RlcUmHdr;
+
 
 /** 
  * @brief  Structure to hold an Acknowledged Mode header
@@ -131,45 +130,45 @@ typedef struct kwUmHdr
  *    - numLi : Number of length indicators in the following array (li)
  *    - li    : Length indicators
 */
-typedef struct kwAmHdr
+typedef struct rlcAmHdr
 {
-   U8     dc;              /*!< Data/Control PDU */
-   U8     p;               /*!< Poll bit */
-   U8     si;              /*!< Segmentation Info: 5GNR */ 
-   KwSn   sn;              /*!< Sequence number */
-   U32    so;              /*!< Segment offset */
-}KwAmHdr;
+   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 kwCntrlInfo
-{
-   U16  val;
-   U8   len;
-   U16  idx;
-   U8   emtBits;
-   U16  e1Idx;
-   U16  e2Idx;   
-   U8   e1eb;
-}KwCntrlInfo;
-
-typedef struct kwHdrInfo
-{
-   U32  val;
-   U8   len;
-   U8   eb;
-   U8   *hdr;
-   U16  idx;
-   U8   pEb;
-   U8   pLen;
-}KwHdrInfo;
-
-typedef struct kwExtHdr
-{
-   U32 val;
-   U16 len;
-   U8  hdr;
-   U8  pLen;
-}KwExtHdr;
+typedef struct rlcCntrlInfo
+{
+   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
+{
+   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
+{
+   uint32_t val;
+   uint16_t len;
+   uint8_t  hdr;
+   uint8_t  pLen;
+}RlcExtHdr;
 
 /** 
  * @brief  Structure to hold information about a Logical channel
@@ -178,162 +177,162 @@ typedef struct kwExtHdr
  *    - lChId    : Logical channel Id
  *    - lChType  : Logical channel type 
 */ 
-typedef struct kwLchInfo
+typedef struct rlcLchInfo
 {
    CmLteLcId     lChId;     /*!< Logical channel Id */
    CmLteLcType   lChType;   /*!< Logical channel type */
-}KwLchInfo;
+}RlcLchInfo;
 
 /* kw005.201 added support for L2 Measurement */
 #ifdef LTE_L2_MEAS
 
-/** @struct KwL2Cntr
+/** @struct RlcL2Cntr
  * RLC L2 Counter  */
-typedef struct kwL2Cntr
+typedef struct rlcL2Cntr
 {
    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 */
-}KwL2Cntr;
+   uint32_t    totDrbsPerQci;     /*!< Total Count of DRB's for this QCI */
+}RlcL2Cntr;
 
-struct kwSduSnMap
+struct rlcSduSnMap
 {
    CmLList     lstEnt;
    Bool        failMarked;
    Bool        fullySent;
-   U32         sduId;
-   U16         numSn;
-   U16         snList[KW_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 kwSnSduMap
+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 */
-   KwSduSnMap  *sduList[KW_MAX_DL_LI];
-}KwSnSduMap;
+   RlcSduSnMap  *sduList[RLC_MAX_DL_LI];
+}RlcSnSduMap;
 
-typedef struct kwTbSnMap
+typedef struct rlcTbSnMap
 {
    CmHashListEnt  hlTbEnt;
-   U32            tbId;
-   U16            prevNumSn;
-   U16            numSn;
-   KwSnSduMap     snSduMap[RGU_MAX_PDU * RGU_MAX_LC];
-}KwTbSnMap;
+   uint32_t       tbId;
+   uint16_t       prevNumSn;
+   uint16_t       numSn;
+   RlcSnSduMap    snSduMap[RGU_MAX_PDU * RGU_MAX_LC];
+}RlcTbSnMap;
 
-typedef struct kwL2MeasCbUeMeasInfo
+typedef struct rlcL2MeasCbUeMeasInfo
 {
    CmLteRnti   ueId;                    /*!< UE ID (Used only for IP Throughput
                                              in UL/DL */
    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[KW_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 */
-   KwL2Cntr    measData[LKW_MAX_QCI];
-   U16         numQci;                  /*!< number of valid qcI */
-   U8          qci[LKW_MAX_QCI];        /*!< list of valid qcI */
-}KwL2MeasCbUeMeasInfo;
+   RlcL2Cntr    measData[LKW_MAX_QCI];
+   uint16_t     numQci;                  /*!< number of valid qcI */
+   uint8_t      qci[LKW_MAX_QCI];        /*!< list of valid qcI */
+}RlcL2MeasCbUeMeasInfo;
 
-typedef struct kwL2MeasCbIpThMeas
+typedef struct rlcL2MeasCbIpThMeas
 {
-   U8                   numUes;
-   U8                   totNumQci;
-   U8                   totQci[LKW_MAX_QCI];
-   KwL2MeasCbUeMeasInfo ueInfoLst[LKW_MAX_UE]; /*Added for handling meas for multiple ues*/ 
-}KwL2MeasCbIpThMeas;
+   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 kwL2MeasCbNonIpThMeas
+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 */
-   KwL2Cntr   measData[LKW_MAX_QCI];   /*!< Measurement CB */
-}KwL2MeasCbNonIpThMeas;
+   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;
 
-typedef union kwL2MeasCbIpNonIpThMeasVal
+typedef union rlcL2MeasCbIpNonIpThMeasVal
 {
-   KwL2MeasCbIpThMeas    ipThMeas;
-   KwL2MeasCbNonIpThMeas nonIpThMeas;
-}KwL2MeasCbIpNonIpThMeasVal;
+   RlcL2MeasCbIpThMeas    ipThMeas;
+   RlcL2MeasCbNonIpThMeas nonIpThMeas;
+}RlcL2MeasCbIpNonIpThMeasVal;
 
-/** @struct KwL2MeasCb
+/** @struct RlcL2MeasCb
  * RLC L2 Measurement CB */
-typedef struct kwL2MeasCb
+typedef struct rlcL2MeasCb
 {
-   U8               measType;        /*!< Bit-wise set measurement types */
-   KwL2MeasCbIpNonIpThMeasVal val;   /* Union of IP tpt or non-ip tpt */
-}KwL2MeasCb;
+   uint8_t        measType;        /*!< Bit-wise set measurement types */
+   RlcL2MeasCbIpNonIpThMeasVal val;   /* Union of IP tpt or non-ip tpt */
+}RlcL2MeasCb;
 
-/** @struct KwL2MeasEvtCb
+/** @struct RlcL2MeasEvtCb
  * RLC L2 Measurement Evt CB */
-typedef struct kwL2MeasEvtCb
+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 */
-   KwL2MeasCb    measCb;                 /*!< Measurement CB */ 
+   RlcL2MeasCb   measCb;                 /*!< Measurement CB */ 
    EpcTime       startTime; /* NOT USED */            /*!<  start time when meas starts*/ 
-}KwL2MeasEvtCb;
+}RlcL2MeasEvtCb;
 
-/** @struct KwL2MeasRbCb
+/** @struct RlcL2MeasRbCb
  * RLC L2 Measurement Rb CB */
-typedef struct kwL2MeasRbCb
+typedef struct rlcL2MeasRbCb
 {
-   U8            measOn;                      /*!< Measurements that are running */ 
-   KwL2Cntr      *l2Sts[KW_MAX_L2MEAS_EVT];  /*!< L2 Mesurement statistics */     
-}KwL2MeasRbCb;
+   uint8_t        measOn;                      /*!< Measurements that are running */ 
+   RlcL2Cntr      *l2Sts[RLC_MAX_L2MEAS_EVT];  /*!< L2 Mesurement statistics */     
+}RlcL2MeasRbCb;
 
-/** @struct KwL2Cb
+/** @struct RlcL2Cb
  * RLC L2  CB */
-typedef struct kwL2Cb
+typedef struct rlcL2Cb
 {
-   U16            kwNumMeas;                   /*!< Number of measurements going on */
-   KwL2MeasEvtCb  kwL2EvtCb[LKW_MAX_L2MEAS];  /*!< Pointers to Measurement Cb */
-   U8             measOn[LKW_MAX_QCI];          /*!< Measurement on */
-   U32            numActUe[LKW_MAX_QCI];       /*!< Measurement on */
-}KwL2Cb;
+   uint16_t        rlcNumMeas;                   /*!< Number of measurements going on */
+   RlcL2MeasEvtCb  rlcL2EvtCb[LKW_MAX_L2MEAS];  /*!< Pointers to Measurement Cb */
+   uint8_t         measOn[LKW_MAX_QCI];          /*!< Measurement on */
+   uint32_t        numActUe[LKW_MAX_QCI];       /*!< Measurement on */
+}RlcL2Cb;
 
 
 typedef enum _dlIpThrputState
@@ -345,41 +344,41 @@ typedef enum _dlIpThrputState
 }DlIpThrputState;
 
 /** 
-* @struct kwL2MeasSduLst
+* @struct rlcL2MeasSduLst
 * Structure to hold parameters of 
 * burst sdus in DL for a RB */
-typedef struct kwOutStngSduInfo
+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 */
-}KwOutStngSduInfo;
+   uint32_t  numTb;            /*!< Hold the number of TBs for this sdu in DL */
+}RlcOutStngSduInfo;
 
 /** 
-* @struct kwL2MeasDlIpTh
+* @struct rlcL2MeasDlIpTh
 * Structure to hold parameters for DL ip 
 * throughput for a RB */
-typedef struct kwL2MeasDlIpTh
+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 */
-   KwOutStngSduInfo  outStngSduArr[KW_L2MEAS_MAX_OUTSTNGSDU];/*!< Hold the burst sdu information */
-}KwL2MeasDlIpTh;
+   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;
 
 /** 
-* @struct kwL2MeasIpThruput
+* @struct rlcL2MeasIpThruput
 * Structure to hold parameters for UL/DL ip 
 * throughput for a RB */
-typedef struct kwL2MeasIpThruput
+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 */
-   KwL2MeasDlIpTh  dlIpTh;
-}KwL2MeasIpThruput;
+   uint32_t         ttiCnt;                  /*!< Holds ttiCnt received from MAC in UL */
+   uint32_t         prevTtiCnt;        /*!< Holds previous ttiCnt received from MAC in UL */
+   RlcL2MeasDlIpTh  dlIpTh;
+}RlcL2MeasIpThruput;
 
 #endif /* LTE_L2_MEAS */
 
@@ -390,11 +389,11 @@ typedef struct kwL2MeasIpThruput
  *    - ueId    : UE Id
  *    - cellId  : Cell Id 
 */
-typedef struct kwUeKey
+typedef struct rlcUeKey
 {
    CmLteRnti     ueId;     /*!< UE Id */
    CmLteCellId   cellId;   /*!< Cell Id */
-}KwUeKey;
+}RlcUeKey;
 
 /** 
  * @brief  Structure to hold an information about the CKW SAP
@@ -406,14 +405,14 @@ typedef struct kwUeKey
  *    - state : State of the SAP
  *    - sts   : SAP specific statistics 
 */
-typedef struct kwCkwSapCb
+typedef struct rlcCkwSapCb
 {
    Pst           pst;     /*!< Service user post structure */
    SpId          spId;    /*!< Service provider Id */
    SuId          suId;    /*!< Service user Id */
-   U8            state;   /*!< Sap Status */
-   KwCkwCntSts   sts;     /*!< Statistics */
-}KwCkwSapCb;
+   uint8_t       state;   /*!< Sap Status */
+   RlcCkwCntSts   sts;     /*!< Statistics */
+}RlcCkwSapCb;
 
 /** 
  * @brief  Structure to hold an information about the KWU SAP
@@ -425,14 +424,14 @@ typedef struct kwCkwSapCb
  *    - state : State of the SAP
  *    - sts   : SAP specific statistics 
 */
-typedef struct kwKwuSapCb
+typedef struct rlcKwuSapCb
 {
    Pst           pst;     /*!< Service user post structure */
    SpId          spId;    /*!< Service provider Id */
    SuId          suId;    /*!< Service user Id */
-   U8            state;   /*!< Sap Status */
-   KwKwuSapSts   sts;     /*!< Statistics */
-}KwKwuSapCb;
+   uint8_t       state;   /*!< Sap Status */
+   RlcKwuSapSts  sts;     /*!< Statistics */
+}RlcKwuSapCb;
 
 /** 
  * @brief  Structure to hold an information about the RGU SAP
@@ -446,16 +445,16 @@ typedef struct kwKwuSapCb
  *    - bndTmrInt : Timer Interval
  *    - retryCnt  : Bind Retry Count
 */
-typedef struct kwRguSapCb
+typedef struct 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 */
-}KwRguSapCb;
+   uint16_t  bndTmrInt;   /*!< Timer Interval */
+   uint8_t   retryCnt;    /*!< Bind Retry Count */
+}RlcRguSapCb;
 
 /** 
  * @brief  Structure to hold an information about the UDX UL SAP
@@ -469,16 +468,16 @@ typedef struct kwRguSapCb
  *    - bndTmrInt : Timer Interval
  *    - retryCnt  : Bind Retry Count
 */
-typedef struct kwUdxUlSapCb
+typedef struct rlcUdxUlSapCb
 {
    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 */
-}KwUdxUlSapCb;
+   uint16_t  bndTmrInt;   /*!< Timer Interval */
+   uint8_t   retryCnt;    /*!< Bind Retry Count */
+}RlcUdxUlSapCb;
 
 /** 
  * @brief  Structure to hold an information about the UDX DL SAP
@@ -489,13 +488,13 @@ typedef struct kwUdxUlSapCb
  *    - suId      : Service user Id
  *    - state     : State of the SAP
 */
-typedef struct kwUdxDlSapCb
+typedef struct rlcUdxDlSapCb
 {
-   Pst    pst;     /*!< Service user post structure */
-   SpId   spId;    /*!< Service provider Id */
-   SuId   suId;    /*!< Service user Id */
-   U8     state;   /*!< Sap Status */
-}KwUdxDlSapCb;
+   Pst     pst;     /*!< Service user post structure */
+   SpId    spId;    /*!< Service provider Id */
+   SuId    suId;    /*!< Service user Id */
+   uint8_t state;   /*!< Sap Status */
+}RlcUdxDlSapCb;
 
 /** 
  * @brief  Structure to hold info about memory to be freed
@@ -521,7 +520,7 @@ typedef struct rlcDlDataToBeFreed
  * @details
  *    - numKwuSaps        : Number of RLC KWU Saps
  *    - numUdxSaps        : Number of RLC UDX Saps
- *    - kwuDlSap          : Pointer to the array of KWU SAPS
+ *    - rlcKwuDlSap          : Pointer to the array of KWU SAPS
  *    - udxDlSap          : Pointer to the array of UDX SAPS
  *    - rguDlSap          : RGU Sap Control Block
  *    - cellLstCp         : Hashlist of CellCb
@@ -532,20 +531,20 @@ typedef struct rlcDlDataToBeFreed
  */
 typedef struct rlcDlCb
 {
-   U8                  numKwuSaps;         /*!< Number of RLC Data Saps */
-   U8                  numUdxSaps;         /*!< Number of RLC Data Saps */
-   KwKwuSapCb          *kwuDlSap;          /*!< KWU Sap Control Block */
-   KwUdxDlSapCb        *udxDlSap;          /*!< UDX DL Sap Control Block */
-   KwRguSapCb          *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 */
    Bool                eventInQueue;       /*!< Event exists in queue or not */
 #ifdef LTE_L2_MEAS
-   KwL2Cb              kwL2Cb; /*!< Control Block for L2 Measurements in RLC */
+   RlcL2Cb              rlcL2Cb; /*!< Control Block for L2 Measurements in RLC */
 #endif /* LTE_L2_MEAS */
 }RlcDlCb;
 
@@ -557,7 +556,7 @@ typedef struct rlcDlCb
  *    - numKwuSaps   : Number of RLC KWU Saps
  *    - numUdxSaps   : Number of RLC UDX Saps
  *    - udxUlSap     : Pointer to the array of UDX SAPS 
- *    - kwuUlSap     : Pointer to the array of KWU SAPS
+ *    - rlcKwuUlSap     : Pointer to the array of KWU SAPS
  *    - rguUlSap     : RGU Sap Control Block
  *    - cellLstCp    : Hashlist of CellCb
  *    - ueLstCp      : Hashlist of UeCb 
@@ -565,18 +564,19 @@ typedef struct rlcDlCb
  */
 typedef struct rlcUlCb
 {
-   KwCkwSapCb     ckwSap;         /*!< CKW Sap Conrol Block */ 
-   U8             numKwuSaps;     /*!< Number of RLC Data Saps */
-   U8             numUdxSaps;     /*!< Number of RLC Data Saps */
-   KwUdxUlSapCb   *udxUlSap;      /*!< UDX DL Sap Control Block */
-   KwKwuSapCb     *kwuUlSap;      /*!< KWU Sap Control Block */
-   KwRguSapCb     *rguUlSap;      /*!< RGU Sap Control Block */
+   RlcCkwSapCb     ckwSap;         /*!< CKW Sap Conrol Block */ 
+   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
-   KwL2Cb        kwL2Cb; /*!< Control Block for L2 Measurements in RLC */
+   RlcL2Cb        rlcL2Cb; /*!< Control Block for L2 Measurements in RLC */
 #endif /* LTE_L2_MEAS */
 }RlcUlCb;
 
@@ -590,8 +590,8 @@ typedef struct rlcUlCb
  *    - genSts  : General Statistics
  *    - trcLen  : Trace Length
  *    - trcMask : Trace Mask
- *    - kwTq    : Timer queue
- *    - kwTqCp  : Timer queue control point
+ *    - rlcTq    : Timer queue
+ *    - rlcTqCp  : Timer queue control point
  *    - u       : Union depending on whether the instance is UL or DL
  *      - ulCb  : UL instance Control Block
  *      - dlCb  : DL instance Control Block
@@ -599,61 +599,62 @@ typedef struct rlcUlCb
 typedef struct rlcCb
 {
    TskInit    init;               /*!< Task Initialization Info */
-   KwGenCfg   genCfg;             /*!< General Configuration Structure */
-   KwGenSts   genSts;             /*!< General Statistics */
+   RlcGenCfg   genCfg;             /*!< General Configuration Structure */
+   RlcGenSts   genSts;             /*!< General Statistics */
    S16        trcLen;             /*!< Trace Length */
-   U8         trcMask;            /*!< Trace Mask */
-   CmTqType   kwTq[KW_TMR_LEN];   /*!< Timer queue */
-   CmTqCp     kwTqCp;             /*!< Timer queue control point */
+   uint8_t         trcMask;            /*!< Trace Mask */
+   CmTqType   rlcTq[RLC_TMR_LEN];   /*!< Timer queue */
+   CmTqCp     rlcTqCp;             /*!< Timer queue control point */
    union 
    {
       RlcUlCb   *ulCb;   /*!< Ul Control Block */
       RlcDlCb   *dlCb;   /*!< Dl Control Block */
    } u;
+   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
  ***************************************************************************/
-EXTERN S16 kwGetSId ARGS((SystemId *s));
+S16 rlcGetSId ARGS((SystemId *s));
 
-EXTERN Void kwTmrExpiry ARGS((PTR cb, S16 tmrEvnt));
+Void rlcTmrExpiry ARGS((PTR cb, S16 tmrEvnt));
 
-EXTERN S16 kwLmmSendTrc ARGS ((RlcCb *gCb, Event event, Buffer *mBuf));
+S16 rlcLmmSendTrc ARGS ((RlcCb *gCb, Event event, Buffer *mBuf));
 
-EXTERN Void kwStartTmr ARGS((RlcCb *gCb, PTR cb, S16 tmrEvnt));
+void rlcStartTmr ARGS((RlcCb *gCb, PTR cb, S16 tmrEvnt));
 
-EXTERN Void kwStopTmr  ARGS((RlcCb *gCb, PTR cb, U8 tmrType));
+void rlcStopTmr  ARGS((RlcCb *gCb, PTR cb, uint8_t tmrType));
 
-EXTERN Bool kwChkTmr ARGS((RlcCb *gCb,PTR cb, S16 tmrEvnt));
+bool rlcChkTmr ARGS((RlcCb *gCb,PTR cb, S16 tmrEvnt));
 
 #ifdef LTE_L2_MEAS
-EXTERN Void kwLmmSendAlarm ARGS (( RlcCb *gCb,
-                                   U16 category, 
-                                   U16 event, 
-                                   U16 cause, 
+Void rlcLmmSendAlarm ARGS (( RlcCb *gCb,
+                                   uint16_t category, 
+                                   uint16_t event, 
+                                   uint16_t cause, 
                                    SuId suId, 
-                                   U32 ueId, 
-                                   U8 qci));
-
-EXTERN S16 KwMiRlcDlL2MeasReq ARGS (( Pst *pst, KwL2MeasReqEvt *measReqEvt ));
-EXTERN S16 KwMiRlcDlL2MeasSendReq ARGS((Pst *pst,U8 measType));
-EXTERN S16 KwMiRlcDlL2MeasStopReq ARGS((Pst *pst,U8 measType));
-EXTERN S16 KwMiRlcUlL2MeasReq ARGS (( Pst *pst, KwL2MeasReqEvt *measReqEvt ));
-EXTERN S16 KwMiRlcUlL2MeasSendReq ARGS((Pst *pst,U8 measType));
-EXTERN S16 KwMiRlcUlL2MeasStopReq ARGS((Pst *pst,U8 measType));
-EXTERN Void kwUtlPlcMeasDatInL2Sts ARGS((KwL2Cntr *measData, 
-                                         KwL2MeasRbCb *rbL2Cb,
-                                         U8 measType));
+                                   uint32_t ueId, 
+                                   uint8_t qci));
+
+S16 RlcMiRlcDlL2MeasReq ARGS (( Pst *pst, RlcL2MeasReqEvt *measReqEvt ));
+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,uint8_t measType));
+S16 RlcMiRlcUlL2MeasStopReq ARGS((Pst *pst,uint8_t measType));
+Void rlcUtlPlcMeasDatInL2Sts ARGS((RlcL2Cntr *measData, 
+                                         RlcL2MeasRbCb *rbL2Cb,
+                                         uint8_t measType));
 #else /* LTE_L2_MEAS */
-EXTERN Void kwLmmSendAlarm ARGS ((RlcCb *gCb,
-                                  U16 category, 
-                                  U16 event, 
-                                  U16 cause, 
+Void rlcLmmSendAlarm ARGS ((RlcCb *gCb,
+                                  uint16_t category, 
+                                  uint16_t event, 
+                                  uint16_t cause, 
                                   SuId suId, 
-                                  U32 ueId));
+                                  uint32_t ueId));
 #endif /* LTE_L2_MEAS */
 
 #ifdef __cplusplus