extern "C" {
#endif /* __cplusplus */
-typedef struct kwUlUeCb KwUlUeCb;
+typedef struct rlcUlUeCb RlcUlUeCb;
-/** @defgroup um_uplink UM Uplink Module
+/**
+ * @brief Structure to hold a RLC UM PDU segment
+ *
+ * @details
+ * - lstEnt : This is required for the linked list in which the segments
+ * are stored
+ * - seg : Holds the segment data
+ * - segSz : The length of the segment in bytes
+ * - soEnd : SOEnd
+ * - umHdr : The UM Header for the PDU segment
+ *
*/
+typedef struct rlcUmSeg
+{
+ CmLList lstEnt; /*!< List entry for PDU segment */
+ Buffer *seg; /*!< PDU segment */
+ MsgLen segSz; /*!< Buffer Size */
+ uint16_t soEnd; /*!< Segment Offset End */
+ RlcUmHdr umHdr; /*!<Um Header */
+}RlcUmSeg;
/**
* @brief Structure to hold a UM PDU
* - umHdr : UM PDU Header Information
* - pduSz : Length of the PDU excluding the header
*/
-typedef struct kwUmRecBuf
+typedef struct rlcUmRecBuf
{
- Buffer *pdu; /**< Buffer holding the UM PDU */
- KwUmHdr umHdr; /**< UM PDU Header Information */
- MsgLen pduSz; /**< PDU Size */
-}KwUmRecBuf;
+ RlcSn sn; /*!< Sequence Number */
+ CmLList lnk; /*!< Link to the receive buffer list */
+ Bool allSegRcvd; /*!< Flag to check whether all seg are received */
+ Bool noMissingSeg; /*!< Flag to check all the bytes are received before the last byte of segment */
+ CmLListCp segLst; /*!< PDU Segments list */
+ uint16_t expSo; /*!< Next expected seg offset */
+ Bool allRcvd; /*!< All bytes received or not */
+ RlcUmSeg *expByteSeg; /*!< Next expected byte segment */
+ Buffer *pdu; /**< Buffer holding the UM PDU */
+ RlcUmHdr umHdr; /**< UM PDU Header Information */
+ MsgLen pduSz; /**< PDU Size */
+}RlcUmRecBuf;
/**
* @brief Structure to hold uplink information in UM mode for a particular RB
* - partialSdu : This is used to store the partially completed SDU.
* It remains till complete SDU is received
*/
-typedef struct kwUmUl
+typedef struct rlcUmUl
{
- U8 snLen; /**< Sequence number length */
- U8 reOrdTmrInt; /**< Timer Interval */
- KwUmRecBuf **recBuf; /**< Reception buffer */
- KwSn umWinSz; /**< UM window size */
- U16 modBitMask; /**< Bitmask for modulus to wrap around variables */
- KwSn sn; /**< Sequence number */
- KwSn vrUr; /**< VR(UR) - Receive state variable */
- KwSn vrUh; /**< VR(UH) - Highest received state variable */
- KwSn vrUx; /**< VR(UX) - Reordering state variable */
- CmTimer reOrdTmr; /**< Reordering Timer */
- Buffer *partialSdu; /**< Partial SDU - Remains till the complete SDU
- is received */
-}KwUmUl;
+ uint8_t snLen; /**< Sequence number length */
+ uint8_t reAsmblTmrInt; /**< Timer Interval */
+ CmLListCp *recBufLst; /**!<Reception Buffer List */
+ RlcSn umWinSz; /**< UM window size */
+ uint16_t modBitMask; /**< Bitmask for modulus to wrap around variables */
+ RlcSn sn; /**< Sequence number */
+ RlcSn vrUr; /**< VR(UR) - Receive state variable */
+ RlcSn vrUh; /**< VR(UH) - Highest received state variable */
+ RlcSn vrUx; /**< VR(UX) - Reordering state variable */
+ CmTimer reAsmblTmr; /**< Reordering Timer */
+ Buffer *assembleSdu; /**< Assemble Sdu - Remains till the complete SDU is received */
+ uint16_t expSo; /*!< Expected SO for reassembly */
+ RlcSn expSn; /*!< Expected Sn */
+}RlcUmUl;
/*@}*/
/**
* - amHdr : The AM Header for the PDU segment
*
*/
-typedef struct kwSeg
+typedef struct rlcSeg
{
CmLList lstEnt; /**< List entry for PDU segment */
Buffer *seg; /**< PDU segment */
MsgLen segSz; /**< Buffer Size */
- U16 soEnd; /**< Segment Offset End */
- KwAmHdr amHdr; /**< AM header */
-}KwSeg;
+ uint16_t soEnd; /**< Segment Offset End */
+ RlcAmHdr amHdr; /**< AM header */
+}RlcSeg;
/*@}*/
* - allRcvd : Whether all the segments for this PDU has been recevied
*
*/
-typedef struct kwAmRecBuf
+typedef struct rlcAmRecBuf
{
CmLList lnk; /**< Link to the receive buffer list */
Buffer *pdu; /**< PDU buffer */
MsgLen pduSz; /**< Buffer Size */
- KwAmHdr amHdr; /**< AM header Info */
+ RlcAmHdr amHdr; /**< AM header Info */
CmLListCp segLst; /**< PDU Segments list */
- KwSeg *expByteSeg; /**< Next expected byte segment */
- U16 expSo; /**< Next expected seg offset */
+ RlcSeg *expByteSeg; /**< Next expected byte segment */
+ uint16_t expSo; /**< Next expected seg offset */
Bool allRcvd; /**< All bytes received or not */
Bool isDelvUpperLayer; /**< Is it sent to upper layer */
-}KwAmRecBuf;
+}RlcAmRecBuf;
/** @addtogroup ammode */
/*@{*/
* the STATUS PDU
*
*/
-typedef struct kwAmUl
+typedef struct rlcAmUl
{
#ifndef LTE_TDD
CmLListCp *recBufLst;
#else
-// KwAmRecBuf *recBuf[1024]; /**< Reception buffer */
+// RlcAmRecBuf *recBuf[1024]; /**< Reception buffer */
#endif
- KwSn rxNext; /**< RX_Next:Equvalent to VR(R) in 4G */
- KwSn rxNextHighestRcvd; /**< RX_Next_Highest_Rcvd: Equvalent to VR(H) in 4G */
- KwSn rxNextStatusTrig; /**< rxNextStatusTrig: Equvalent to VR(X) in 4G*/
- KwSn vrMr; /**< VR(MR) */
- KwSn rxHighestStatus; /**< rxHighestStatus: Eqvalent to VR(MS) in 4G*/
+ RlcSn rxNext; /**< RX_Next:Equvalent to VR(R) in 4G */
+ RlcSn rxNextHighestRcvd; /**< RX_Next_Highest_Rcvd: Equvalent to VR(H) in 4G */
+ RlcSn rxNextStatusTrig; /**< rxNextStatusTrig: Equvalent to VR(X) in 4G*/
+ RlcSn vrMr; /**< VR(MR) */
+ RlcSn rxHighestStatus; /**< rxHighestStatus: Eqvalent to VR(MS) in 4G*/
Bool staTrg; /**< Whether status trigger occured */
Buffer *partialSdu; /**< Partially received SDU */
- KwSn expSn; /**< Expected SN for reassembly */
- U16 expSo; /**< Expected SO for reassembly */
+ RlcSn expSn; /**< Expected SN for reassembly */
+ uint16_t expSo; /**< Expected SO for reassembly */
CmTimer staProhTmr; /**< T_status_prohibit Timer */
- U16 staProhTmrInt; /**< Timer Interval */
+ uint16_t staProhTmrInt; /**< Timer Interval */
CmTimer reOrdTmr; /**< T_reordering Timer */
- U8 reOrdTmrInt; /**< Timer Interval */
+ uint8_t reOrdTmrInt; /**< Timer Interval */
Bool gatherStaPduInfo; /**< Gather STATUS PDU creation info*/
Bool isOutOfSeq; /**< To identify whether packets are Out-Of-Seq or not */
- U8 snLen; /*!< Sequence number length:12 bit or 18 bit : 5GNR RLC */
- U32 snModMask; /*!< (2 Pwr SnLen - 1): 5GNR RLC */
-}KwAmUl;
+ uint8_t snLen; /*!< Sequence number length:12 bit or 18 bit : 5GNR RLC */
+ uint32_t snModMask; /*!< (2 Pwr SnLen - 1): 5GNR RLC */
+}RlcAmUl;
/*@}*/
* - inst : Id of RLC instance where this Radio Bearer is present. Used
* to find the instance from the Radio Bearer for memory needs
* as different instances might have different memory.
- * - kwuSapId : KWU SAP identifier
+ * - k1wuSapId : KWU SAP identifier
* - udxSapId : UDX SAP idenrifier
* - transId : Stores the transaction identifier used to communicate
* with MAC, the same value as sent by MAC is passed back
* - umDl : Unacknowledged Mode downlink information
* - amDl : Acknowledged Mode downlink information
*/
-typedef struct _kwUlRbCb
+typedef struct _rlcUlRbCb
{
/* kw005.201 added support for L2 Measurement */
#ifdef LTE_L2_MEAS
- KwL2MeasRbCb rbL2Cb; /**< RB measurement L2 Cb */
- KwUlUeCb *ueCb; /*!< Pointer to UeCb */
- U8 qci; /**< qci of the RB */
- KwL2MeasIpThruput l2MeasIpThruput; /**< Holds related parameter for
+ RlcL2MeasRbCb rbL2Cb; /**< RB measurement L2 Cb */
+ RlcUlUeCb *ueCb; /*!< Pointer to UeCb */
+ uint8_t qci; /**< qci of the RB */
+ RlcL2MeasIpThruput l2MeasIpThruput; /**< Holds related parameter for
DL/Ul ip throughput>*/
#endif /* LTE_L2_MEAS */
CmLteRlcId rlcId; /**< RLC Identifier */
- KwLchInfo lch; /**< Logical Channel Info */
+ RlcLchInfo lch; /**< Logical Channel Info */
CmLteRlcMode mode; /**< Entity Mode */
- U8 dir; /**< Direction for UL/DL */
+ uint8_t dir; /**< Direction for UL/DL */
Inst inst; /**< Tapa where Rb created Instance id */
- SpId kwuSapId; /**< KWU sap Id, to get the KwuSapCb */
+ SpId k1wuSapId; /**< KWU sap Id, to get the KwuSapCb */
SpId udxSapId; /**< KWU sap Id, to get the KwuSapCb */
- U32 transId; /**< Transaction Id for RLC */
+ uint32_t transId; /**< Transaction Id for RLC */
union
{
- KwUmUl umUl; /**< UM mode Ul elements */
- KwAmUl amUl; /**< AM mode uplink elements */
+ RlcUmUl umUl; /**< UM mode Ul elements */
+ RlcAmUl amUl; /**< AM mode uplink elements */
}m; /**< RLC mode specific Info */
-}KwUlRbCb;
+}RlcUlRbCb;
/**
* @brief Structure to hold mapping between logical channel and Radio Bearer
* @details
* - ulRbCb : Pointer to the uplink Radio Bearer
*/
-typedef struct kwUlLch
+typedef struct rlcUlLch
{
- KwUlRbCb *ulRbCb; /**< Pointer to Uplink RbCb */
-}KwUlLch;
+ RlcUlRbCb *ulRbCb; /**< Pointer to Uplink RbCb */
+}RlcUlLch;
/**
* @brief Structure to hold uplink information about the Cells
* - lCh : Logical Channels in the cell
* - selfPstUl : Pst structure for sending messages to self
*/
-typedef struct kwUlCellCb
+typedef struct rlcUlCellCb
{
CmHashListEnt cellHlEnt; /**< Hash list entry for CellCb */
CmLteCellId cellId; /**< Cell Id */
- KwUlRbCb *rbCb[KW_MAX_RB_PER_CELL]; /**< RbCbs within a Cell */
- KwUlLch lCh[KW_MAX_LCH_PER_CELL]; /**< Logical channels in a cell */
+ RlcUlRbCb *rbCb[RLC_MAX_RB_PER_CELL]; /**< RbCbs within a Cell */
+ RlcUlLch lCh[RLC_MAX_LCH_PER_CELL]; /**< Logical channels in a cell */
Pst selfPstUl;
-}KwUlCellCb;
+}RlcUlCellCb;
/**
* @brief Structure to hold uplink information about the UEs
* - drbCb : Data Radio Bearers configured for the UE
* - lCh : Logical Channels in the UE
*/
-struct kwUlUeCb
+struct rlcUlUeCb
{
CmHashListEnt ueHlEnt; /**< Hash list entry for UeCb */
CmLteRnti ueId; /*!< UE Id */
CmLteCellId cellId; /*!< Cell Id */
- KwUlRbCb *srbCb[KW_MAX_SRB_PER_UE]; /**< SRB RbCbs within an UE */
- KwUlRbCb *drbCb[KW_MAX_DRB_PER_UE]; /**< DRB RbCbs within an UE */
- KwUlLch lCh[KW_MAX_LCH_PER_UE]; /**< Logical channels of an UE*/
+ RlcUlRbCb *srbCb[RLC_MAX_SRB_PER_UE]; /**< SRB RbCbs within an UE */
+ RlcUlRbCb *drbCb[RLC_MAX_DRB_PER_UE]; /**< DRB RbCbs within an UE */
+ RlcUlLch lCh[RLC_MAX_LCH_PER_UE]; /**< Logical channels of an UE*/
/* kw005.201 added support for L2 Measurement */
#ifdef LTE_L2_MEAS
- U32 firstPacketTTI; /*!< is first packet of the burst */
- U16 numActRb[LKW_MAX_QCI]; /**< number of RBs Active */
+ uint32_t firstPacketTTI; /*!< is first packet of the burst */
+ uint16_t numActRb[LKW_MAX_QCI]; /**< number of RBs Active */
Bool isUlBurstActive; /*!<Has the Burst started for UL IP Thrpt meas */
#endif /* LTE_L2_MEAS */
};
* - entUlCfgCfm : Holds the UL configuration status
* - rbCb : Rb Block
*/
-typedef struct kwUlEntTmpData
+typedef struct rlcUlEntTmpData
{
- CkwEntCfgCfmInfo entUlCfgCfm; /**< Ul Configuration status*/
- KwUlRbCb *rbCb; /**< Rb Block */
-}KwUlEntTmpData;
+ RlcEntCfgCfmInfo entUlCfgCfm; /**< Ul Configuration status*/
+ RlcUlRbCb *rbCb; /**< Rb Block */
+}RlcUlEntTmpData;
/**
* @brief Structure to hold transaction information in configuration request
* - newUeInfo : New Ue Information
* - cfgTmpData : Temporary data per Configuration entity
*/
-typedef struct kwUlCfgTmpData
+typedef struct rlcUlCfgTmpData
{
CmHashListEnt transHlEnt; /**< List Entry of
Transaction*/
- U32 transId; /**< Locally generated Transaction Id */
- U32 uprLyrTransId; /**< Transaction Id generated by upper layer.
+ uint32_t transId; /**< Locally generated Transaction Id */
+ uint32_t uprLyrTransId; /**< Transaction Id generated by upper layer.
This is used while sending confirm to the User Layer */
CmLteCellId cellId; /**< Cell Id */
CmLteRnti ueId; /**< Ue Id */
- KwUlUeCb *ueCb; /**< Ue Block */
- KwUlCellCb *cellCb; /**< Cell Block */
- CkwCfgInfo *cfgInfo; /**< Config Information*/
+ RlcUlUeCb *ueCb; /**< Ue Block */
+ RlcUlCellCb *cellCb; /**< Cell Block */
+ RlcCfgInfo *cfgInfo; /**< Config Information*/
CkwUeInfo *ueInfo; /**< Ue Information */
CkwUeInfo *newUeInfo; /**< New Ue Information */
- KwUlEntTmpData cfgEntData[CKW_MAX_ENT_CFG]; /**< Entity Data */
-} KwUlCfgTmpData;
+ RlcUlEntTmpData cfgEntData[CKW_MAX_ENT_CFG]; /**< Entity Data */
+} RlcUlCfgTmpData;
/****************************************************************************
- * EXTERN Declarations
+ * Declarations
***************************************************************************/
/****************************************************************************
* Configuration Functions
***************************************************************************/
-EXTERN S16 kwValidateRbCfgParams ARGS ((KwCb *gCb,
+S16 rlcValidateRbCfgParams ARGS ((RlcCb *gCb,
CmLteRnti ueId,
CmLteCellId cellId,
- CkwEntCfgInfo *cfgToValidate,
+ RlcEntCfgInfo *cfgToValidate,
CmStatus *status));
-EXTERN S16 kwCfgValidateUlRb ARGS (( KwCb *gCb,
- CkwEntCfgInfo *cfgToValidate,
- KwUlEntTmpData *cfgInfo,
- KwUlCfgTmpData *cfg));
+S16 rlcCfgValidateUlRb ARGS (( RlcCb *gCb,
+ RlcEntCfgInfo *cfgToValidate,
+ RlcUlEntTmpData *cfgInfo,
+ RlcUlCfgTmpData *cfg));
-EXTERN S16 kwCfgRollBackUlRb ARGS ((KwCb *gCb,
+S16 rlcCfgRollBackUlRb ARGS ((RlcCb *gCb,
CmLteRnti ueId,
- CkwEntCfgInfo *cfgToValidate,
- KwUlEntTmpData *cfgTempData));
+ RlcEntCfgInfo *cfgToValidate,
+ RlcUlEntTmpData *cfgTempData));
-EXTERN Void kwCfgApplyUlRb ARGS ((KwCb *gCb,
- CkwEntCfgInfo *cfgToAply,
- KwUlEntTmpData *cfgTmpData,
- KwUlCfgTmpData *cfgTmpInfo));
+Void rlcCfgApplyUlRb ARGS ((RlcCb *gCb,
+ RlcEntCfgInfo *cfgToAply,
+ RlcUlEntTmpData *cfgTmpData,
+ RlcUlCfgTmpData *cfgTmpInfo));
-EXTERN S16 kwCfgValidateReEstRb ARGS ((KwCb *gCb,
+S16 rlcCfgValidateReEstRb ARGS ((RlcCb *gCb,
CmLteRnti ueId,
CmLteCellId cellId,
- CkwEntCfgInfo *cfgToValidate,
- KwUlEntTmpData *cfgTmpData));
+ RlcEntCfgInfo *cfgToValidate,
+ RlcUlEntTmpData *cfgTmpData));
-EXTERN Void kwCfgApplyReEstUlRb ARGS ((KwCb *gCb,
+Void rlcCfgApplyReEstUlRb ARGS ((RlcCb *gCb,
CmLteRnti ueId,
CmLteCellId cellId,
Bool sndReEstInd,
- KwUlEntTmpData *cfgTmpData));
+ RlcUlEntTmpData *cfgTmpData));
-EXTERN Void kwCfgApplyDelUlCell ARGS ((KwCb *gCb,
- KwUlCfgTmpData *cfgTmpData));
+Void rlcCfgApplyDelUlCell ARGS ((RlcCb *gCb,
+ RlcUlCfgTmpData *cfgTmpData));
-EXTERN S16 kwCfgValidateDelUlCell ARGS ((KwCb *gCb,
+S16 rlcCfgValidateDelUlCell ARGS ((RlcCb *gCb,
CmLteCellId cellId,
- CkwEntCfgInfo *cfgToValidate,
- KwUlEntTmpData *cfgTmpData,
- KwUlCfgTmpData *cfgInfo));
+ RlcEntCfgInfo *cfgToValidate,
+ RlcUlEntTmpData *cfgTmpData,
+ RlcUlCfgTmpData *cfgInfo));
-EXTERN S16 kwCfgValidateDelUlUe ARGS ((KwCb *gCb,
- CkwEntCfgInfo *cfgToValidate,
- KwUlEntTmpData *cfgTmpData,
- KwUlCfgTmpData *cfgInfo));
+S16 rlcCfgValidateDelUlUe ARGS ((RlcCb *gCb,
+ RlcEntCfgInfo *cfgToValidate,
+ RlcUlEntTmpData *cfgTmpData,
+ RlcUlCfgTmpData *cfgInfo));
-EXTERN Void kwCfgApplyDelUlUe ARGS ((KwCb *gCb,
- KwUlCfgTmpData *cfgTmpData));
+Void rlcCfgApplyDelUlUe ARGS ((RlcCb *gCb,
+ RlcUlCfgTmpData *cfgTmpData));
-EXTERN Void kwHdlUiCkwUlCfgReq ARGS ((KwCb *gCb,
- KwUlCfgTmpData *cfgInfo,
- CkwCfgInfo *cfg));
+Void rlcUlHdlCfgReq ARGS ((RlcCb *gCb,
+ RlcUlCfgTmpData *cfgInfo,
+ RlcCfgInfo *cfg));
-EXTERN Void kwCfgApplyUlUeIdChng ARGS ((KwCb *gCb,
+Void rlcCfgApplyUlUeIdChng ARGS ((RlcCb *gCb,
CkwUeInfo *ueInfo,
CkwUeInfo *newUeInfo,
- KwUlCfgTmpData *cfgTmpInfo));
+ RlcUlCfgTmpData *cfgTmpInfo));
-EXTERN S16 kwCfgValidateUeIdChng ARGS ((KwCb *gCb,
+S16 rlcCfgValidateUeIdChng ARGS ((RlcCb *gCb,
CkwUeInfo *ueInfo,
CkwUeInfo *newUeInfo,
- KwUlCfgTmpData *cfgTmpInfo));
+ RlcUlCfgTmpData *cfgTmpInfo));
/****************************************************************************
* DBM module Functions
***************************************************************************/
-EXTERN S16 kwDbmUlInit ARGS ((KwCb *gCb));
+S16 rlcDbmUlInit ARGS ((RlcCb *gCb));
-EXTERN Void kwDbmUlDeInit ARGS ((KwCb *gCb));
+Void rlcDbmUlDeInit ARGS ((RlcCb *gCb));
-EXTERN S16 kwDbmAddUlUeCb ARGS ((KwCb *gCb,
+S16 rlcDbmAddUlUeCb ARGS ((RlcCb *gCb,
CmLteRnti ueId,
CmLteCellId cellId,
- KwUlUeCb *ueCb));
+ RlcUlUeCb *ueCb));
-EXTERN S16 kwDbmFetchUlUeCb ARGS ((KwCb *gCb,
+uint8_t rlcDbmFetchUlUeCb ARGS ((RlcCb *gCb,
CmLteRnti ueId,
CmLteCellId cellId,
- KwUlUeCb **ueCb));
+ RlcUlUeCb **ueCb));
-EXTERN Void kwDbmDelUlUeCb ARGS ((KwCb *gCb,
- KwUlUeCb *ueCb,
+Void rlcDbmDelUlUeCb ARGS ((RlcCb *gCb,
+ RlcUlUeCb *ueCb,
Bool abortFlag));
-EXTERN Void kwDbmDelAllUlUe ARGS ((KwCb *gCb));
+Void rlcDbmDelAllUlUe ARGS ((RlcCb *gCb));
-EXTERN S16 kwDbmAddUlCellCb ARGS ((KwCb *gCb,
+S16 rlcDbmAddUlCellCb ARGS ((RlcCb *gCb,
CmLteCellId cellId,
- KwUlCellCb *cellCb));
+ RlcUlCellCb *cellCb));
-EXTERN Void kwDbmFetchUlCellCb ARGS ((KwCb *gCb,
+Void rlcDbmFetchUlCellCb ARGS ((RlcCb *gCb,
CmLteCellId cellId,
- KwUlCellCb **cellCb));
+ RlcUlCellCb **cellCb));
-EXTERN Void kwDbmDelUlCellCb ARGS ((KwCb *gCb,
- KwUlCellCb *cellCb));
+Void rlcDbmDelUlCellCb ARGS ((RlcCb *gCb,
+ RlcUlCellCb *cellCb));
-EXTERN Void kwDbmDelAllUlCell ARGS ((KwCb *gCb));
+Void rlcDbmDelAllUlCell ARGS ((RlcCb *gCb));
-EXTERN Void kwDbmFetchUlRbCbByRbId ARGS ((KwCb *gCb,
+Void rlcDbmFetchUlRbCbByRbId ARGS ((RlcCb *gCb,
CmLteRlcId *rlcId,
- KwUlRbCb **rbCb));
+ RlcUlRbCb **rbCb));
-EXTERN Void kwDbmFetchUlRbCbFromLchId ARGS ((KwCb *gCb,
+Void rlcDbmFetchUlRbCbFromLchId ARGS ((RlcCb *gCb,
CmLteRnti ueId,
CmLteCellId cellId,
CmLteLcId lcId,
- KwUlRbCb **rbCb));
+ RlcUlRbCb **rbCb));
-EXTERN Void kwDbmDelAllUlRb ARGS ((KwCb *gCb,
- KwUlRbCb **rbCbLst,
- U8 numRbCb));
+Void rlcDbmDelAllUlRb ARGS ((RlcCb *gCb,
+ RlcUlRbCb **rbCbLst,
+ uint8_t numRbCb));
-EXTERN S16 kwDbmAddUlTransaction ARGS((KwCb *gCb, KwUlCfgTmpData *cfg));
+S16 rlcDbmAddUlTransaction ARGS((RlcCb *gCb, RlcUlCfgTmpData *cfg));
-EXTERN S16 kwDbmFindUlTransaction ARGS((KwCb *gCb,
- U32 transId,
- KwUlCfgTmpData **cfg));
+S16 rlcDbmFindUlTransaction ARGS((RlcCb *gCb,
+ uint32_t transId,
+ RlcUlCfgTmpData **cfg));
-EXTERN S16 kwDbmDelUlTransaction ARGS((KwCb *gCb, KwUlCfgTmpData *cfg));
+S16 rlcDbmDelUlTransaction ARGS((RlcCb *gCb, RlcUlCfgTmpData *cfg));
-EXTERN S16 kwDbmDelAllUlTransactions ARGS((KwCb *gCb));
+S16 rlcDbmDelAllUlTransactions ARGS((RlcCb *gCb));
-EXTERN Void kwDbmUlShutdown ARGS ((KwCb *gCb));
+Void rlcDbmUlShutdown ARGS ((RlcCb *gCb));
/****************************************************************************
* Transparent Mode Functions
***************************************************************************/
#ifdef CCPU_OPT
-EXTERN PUBLIC Void kwTmmRcvFrmLi ARGS ((KwCb *gCb,
- KwUlRbCb *rbCb,
- CmLteRnti tCrnti,
- Buffer *pdu));
-#else /* CCPU_OPT */
-EXTERN PUBLIC Void kwTmmRcvFrmLi ARGS ((KwCb *gCb,
- KwUlRbCb *rbCb,
- Buffer *pdu));
-#endif /* CCPU_OPT */
-
-EXTERN Void kwTmmUlReEstablish ARGS ((KwCb *gCb, KwUlRbCb *rbCb));
+void rlcTmmRcvFrmMac ARGS ((RlcCb *gCb,
+ RlcUlRbCb *rbCb,
+ CmLteRnti tCrnti,
+ Buffer *pdu));
+
+#else
+void rlcTmmRcvFrmMac ARGS ((RlcCb *gCb,
+ RlcUlRbCb *rbCb,
+ Buffer *pdu));
+#endif
+
+Void rlcTmmUlReEstablish ARGS ((RlcCb *gCb, RlcUlRbCb *rbCb));
/****************************************************************************
* Unacknowledged Mode Functions
***************************************************************************/
#ifdef LTE_L2_MEAS
-EXTERN Void kwUmmProcessPdus ARGS((KwCb *gCb,
- KwUlRbCb *rbCb,
+Void rlcUmmProcessPdus ARGS((RlcCb *gCb,
+ RlcUlRbCb *rbCb,
KwPduInfo *pduInfo,
- U32 ttiCnt));
+ uint32_t ttiCnt));
#else
-EXTERN Void kwUmmProcessPdus ARGS ((KwCb *gCb,
- KwUlRbCb *rbCb,
+Void rlcUmmProcessPdus ARGS ((RlcCb *gCb,
+ RlcUlRbCb *rbCb,
KwPduInfo *pduInfo));
#endif
-EXTERN Void kwUmmUlReEstablish ARGS ((KwCb *gCb,
+Void rlcUmmUlReEstablish ARGS ((RlcCb *gCb,
CmLteRlcId *rlcId,
- KwUlRbCb *rbCb));
+ RlcUlRbCb *rbCb));
-EXTERN Void kwUmmReOrdTmrExp ARGS((KwCb *gCb, KwUlRbCb *rbCb));
+Void rlcUmmReAsmblTmrExp ARGS((RlcCb *gCb, RlcUlRbCb *rbCb));
-EXTERN Void kwUmmFreeUlRbCb ARGS ((KwCb *gCb, KwUlRbCb *rbCb));
+Void rlcUmmFreeUlRbCb ARGS ((RlcCb *gCb, RlcUlRbCb *rbCb));
/****************************************************************************
* Acknowledged Mode Functions
***************************************************************************/
-EXTERN Void kwAmmUlReEstablish ARGS((KwCb *gCb,
+Void rlcAmmUlReEstablish ARGS((RlcCb *gCb,
CmLteRlcId rlcId,
Bool sndReEst,
- KwUlRbCb *rbCb));
+ RlcUlRbCb *rbCb));
#ifdef LTE_L2_MEAS
-EXTERN Void kwAmmProcessPdus ARGS((KwCb *gCb,
- KwUlRbCb *rbCb,
+Void rlcAmmProcessPdus ARGS((RlcCb *gCb,
+ RlcUlRbCb *rbCb,
KwPduInfo *pduInfo,
- U32 ttiCnt));
+ uint32_t ttiCnt));
#else
-EXTERN Void kwAmmProcessPdus ARGS((KwCb *gCb,
- KwUlRbCb *rbCb,
+Void rlcAmmProcessPdus ARGS((RlcCb *gCb,
+ RlcUlRbCb *rbCb,
KwPduInfo *pduInfo));
#endif
-EXTERN Void kwAmmReOrdTmrExp ARGS((KwCb *gCb, KwUlRbCb *rbCb));
+Void rlcAmmReOrdTmrExp ARGS((RlcCb *gCb, RlcUlRbCb *rbCb));
-EXTERN Void kwAmmStaProTmrExp ARGS((KwCb *gCb, KwUlRbCb *rbCb));
+Void rlcAmmStaProTmrExp ARGS((RlcCb *gCb, RlcUlRbCb *rbCb));
-EXTERN Void kwAmmFreeUlRbCb ARGS ((KwCb *gCb, KwUlRbCb *rbCb));
+Void rlcAmmFreeUlRbCb ARGS ((RlcCb *gCb, RlcUlRbCb *rbCb));
/****************************************************************************
* Utility Functions
***************************************************************************/
-EXTERN Void kwUtlStoreRecBuf ARGS ((CmLListCp *recBufLst,
- KwAmRecBuf *recBuf,
- KwSn sn
+
+void rlcUtlStoreUmRecBuf ARGS ((CmLListCp *recBufLst,
+ RlcUmRecBuf *recBuf,
+ RlcSn sn
+ ));
+RlcUmRecBuf* rlcUtlGetUmRecBuf ARGS ((CmLListCp *recBufLst,
+ RlcSn sn
+ ));
+void rlcUtlDelUmRecBuf(RlcCb *gCb, CmLListCp *recBufLst, RlcUmRecBuf *recBuf);
+
+Void rlcUtlStoreRecBuf ARGS ((CmLListCp *recBufLst,
+ RlcAmRecBuf *recBuf,
+ RlcSn sn
));
-EXTERN KwAmRecBuf* kwUtlGetRecBuf ARGS ((CmLListCp *recBufLst,
- KwSn sn
+RlcAmRecBuf* rlcUtlGetRecBuf ARGS ((CmLListCp *recBufLst,
+ RlcSn sn
));
-EXTERN Void kwUtlDelRecBuf ARGS ((CmLListCp *recBufLst,
- KwAmRecBuf *recBuf,
- KwCb *gCb
+Void rlcUtlDelRecBuf ARGS ((CmLListCp *recBufLst,
+ RlcAmRecBuf *recBuf,
+ RlcCb *gCb
));
-EXTERN S16 kwUtlRcvFrmLi ARGS ((KwCb *gCb, KwDatIndInfo *datIndInfo));
+uint8_t rlcUtlRcvFrmMac ARGS ((RlcCb *gCb, KwDatIndInfo *datIndInfo));
-EXTERN S16 kwUtlSndDatInd ARGS ((KwCb *gCb,KwUlRbCb *rbCb, Buffer *sdu));
+uint8_t rlcUtlSendUlDataToDu ARGS ((RlcCb *gCb,RlcUlRbCb *rbCb, Buffer *sdu));
#ifdef LTE_L2_MEAS
-EXTERN S16 kwUtlHdlL2TmrExp ARGS (( KwCb *gCb, KwL2MeasEvtCb *measEvtCb));
+S16 rlcUtlHdlL2TmrExp ARGS (( RlcCb *gCb, RlcL2MeasEvtCb *measEvtCb));
-EXTERN Void kwUtlCalUlIpThrPutIncTTI ARGS ((KwCb *gCb,
- KwUlRbCb *rbCb,
- U32 ttiCnt));
+Void rlcUtlCalUlIpThrPutIncTTI ARGS ((RlcCb *gCb,
+ RlcUlRbCb *rbCb,
+ uint32_t ttiCnt));
-EXTERN Void kwUtlCalUlIpThrPut ARGS((KwCb *gCb,
- KwUlRbCb *rbCb,
+Void rlcUtlCalUlIpThrPut ARGS((RlcCb *gCb,
+ RlcUlRbCb *rbCb,
Buffer *pdu,
- U32 ttiCnt));
+ uint32_t ttiCnt));
-EXTERN S16 kwUtlSndUlL2MeasCfm ARGS ((KwCb *gCb, KwL2MeasEvtCb *measEvtCb));
+S16 rlcUtlSndUlL2MeasCfm ARGS ((RlcCb *gCb, RlcL2MeasEvtCb *measEvtCb));
-EXTERN S16 kwUtlSndUlL2MeasNCfm ARGS ((KwCb *gCb,
- KwL2MeasReqEvt *measReqEvt,
- KwL2MeasCfmEvt *measCfmEvt));
+S16 rlcUtlSndUlL2MeasNCfm ARGS ((RlcCb *gCb,
+ RlcL2MeasReqEvt *measReqEvt,
+ RlcL2MeasCfmEvt *measCfmEvt));
-EXTERN S16 kwUtlL2MeasUlInit ARGS((KwCb *gCb));
+S16 rlcUtlL2MeasUlInit ARGS((RlcCb *gCb));
-EXTERN Void kwUtlResetUlL2MeasInKwRb ARGS((KwCb *gCb,
- KwL2MeasCb *measCb,
- U8 measType));
+Void rlcUtlResetUlL2MeasInRlcRb ARGS((RlcCb *gCb,
+ RlcL2MeasCb *measCb,
+ uint8_t measType));
-EXTERN S16 kwUtlValidateIpThL2Meas ARGS ((KwL2MeasReqEvt *measReqEvt,
- KwL2MeasCfmEvt *measCfmEvt));
+S16 rlcUtlValidateIpThL2Meas ARGS ((RlcL2MeasReqEvt *measReqEvt,
+ RlcL2MeasCfmEvt *measCfmEvt));
#endif /* LTE_L2_MEAS */
/****************************************************************************
* Activation Functions
***************************************************************************/
-EXTERN S16 kwUlActvInit ARGS ((Ent ent,
+S16 rlcUlActvInit ARGS ((Ent ent,
Inst inst,
Region region,
Reason reason));
-EXTERN S16 kwUlActvTsk ARGS ((Pst *pst, Buffer *mBuf));
+S16 rlcUlActvTsk ARGS ((Pst *pst, Buffer *mBuf));
/****************************************************************************
* Debug Functions
***************************************************************************/
-EXTERN Void DumpRLCUlDebugInformation ARGS((Void));
+Void DumpRLCUlDebugInformation ARGS((Void));
+
+uint8_t rlcProcCommLcUlData(Pst *pst, SuId suId, RguCDatIndInfo *datInd);
+uint8_t rlcProcDedLcUlData(Pst *pst, SuId suId, RguDDatIndInfo *datInd);
#ifdef __cplusplus
}