1 /*******************************************************************************
2 ################################################################################
3 # Copyright (c) [2017-2019] [Radisys] #
5 # Licensed under the Apache License, Version 2.0 (the "License"); #
6 # you may not use this file except in compliance with the License. #
7 # You may obtain a copy of the License at #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
11 # Unless required by applicable law or agreed to in writing, software #
12 # distributed under the License is distributed on an "AS IS" BASIS, #
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
14 # See the License for the specific language governing permissions and #
15 # limitations under the License. #
16 ################################################################################
17 *******************************************************************************/
19 /**********************************************************************
20 Name: Upper Layer Interface
24 Desc: Structures, variables and typedefs required by
29 *********************************************************************21*/
40 @brief Structure declarations and definitions for RGU interface.
43 /***********************************************************************
44 typedefs and data structures
45 ***********************************************************************/
48 * @brief PDU information given on a logical channel.
50 typedef struct rguPduInfo
52 U8 numPdu; /*!< Number of PDUs */
53 Buffer *mBuf[RGU_MAX_PDU]; /*!< numPdu data buffers */
58 * @brief Buffer Occupancy Report for dedicated logical channel.
60 typedef struct rguDBoReport
62 S32 bo; /*!< Buffer occupancy reported by RLC */
64 U16 estRlcHdrSz; /*!< Estimated RLC header size */
65 Bool staPduPrsnt; /*!< Indicates whether the BO includes
66 a status PDU as well */
68 U32 staPduBo; /*!< Indicates the Status PDU BO.
69 This is included in bo */
74 * @brief DatReq from RLC to MAC for Common Channels (BCCH, PCCH and CCCH).
76 typedef struct rguCDatReqInfo
78 CmLteCellId cellId; /*!< CELL ID */
79 CmLteLcId lcId; /*!< Logical channel ID */
80 CmLteLcType lcType; /*!< Logical channel Type */
81 U32 transId; /*!< Transaction ID */
83 U8 pnb; /*Paging narrowBand on which UE performs Paging*/
86 CmLteTimingInfo timeToTx; /*!< Actual time when PHY transmits
87 this, applicable to BCCH and PCCH only */
88 CmLteRnti rnti; /*!< Temporary CRNTI:Applicable for CCCH. */
90 Buffer *pdu; /*!< PDU to be transmitted */
93 * @brief DatReq Information of a logical channel.
95 typedef struct rguLchDatReq
97 CmLteLcId lcId; /*!< Logical channel ID */
98 RguDBoReport boReport; /*!< BO for the logical channel */
99 RguPduInfo pdu; /*!< PDU to be transmitted*/
102 Bool freeBuff; /*!< TRUE if Buffer is to be freed by MAC
103 It is set for UM bearer*/
107 /*rgu_x_001.main_3 - ADD - L2M Support */
110 * @brief Structure to store logical channels to SN mapping */
111 typedef struct rguLchmapInfo
113 CmLteLcId lChId; /*!< Logical channel Id */
114 U16 snList[RGU_MAX_LC]; /*!< Set of sequence numbers */
117 * @brief Sequence Number mapping info per TB
119 typedef struct rguSnMapInfo
121 U32 tbId; /*!< TB id for which sn info map */
122 U8 numLch; /*!< Number of Ded Logical Channels */
123 RguLchMapInfo lchMap[RGU_MAX_LC]; /*!< LC to SN Mapping Info*/
127 * @brief Structure to hold harq status Indication to RLC
129 typedef struct rguHarqStatusInd
131 CmLteCellId cellId; /*!< Cell Id*/
132 CmLteRnti ueId; /*!< ue Id*/
133 U8 numTbs; /*!< Number of Tbs present */
135 U32 tbId[RGU_MAX_TB]; /*!< tbId provided by RLC in
137 U16 status[RGU_MAX_TB]; /*!< Status back to RLC ACK/NACK*/
141 * @brief Structure to hold rguHarqStatusInd and pst structure
143 typedef struct rguHarqStaInd
145 RguHarqStatusInd hqStatusInd;
150 * @brief UL Throughput Measurement Request from RLC to MAC regarding configuration
151 * of an LC for a particular UE to provide Timing Info.
153 typedef struct rguL2MUlThrpMeasReqInfo
155 CmLteCellId cellId; /*!< Cell Id*/
156 CmLteRnti rnti; /*!< UE Id*/
157 U8 numLcId; /*!< Number of LC Ids configured */
158 U8 lcId[RGU_MAX_LC]; /*!< LC ID indices that are
160 Bool enbMeas; /*!< Indication to enable/disable
161 measurement for the LC ID*/
162 } RguL2MUlThrpMeasReqInfo;
164 #endif /* LTE_L2_MEAS */
166 * @brief DatReq info for each TB of a UE.
168 typedef struct rguDatReqTb
170 U8 nmbLch; /*!< Number of logical channels of a UE
171 that have data for this TB */
172 RguLchDatReq lchData[RGU_MAX_LC]; /*!< Data Buffers and BO of
173 logical channels for this TB */
174 /* rgu_x_001.main_3 - ADD - L2M Support */
176 U32 tbId; /*!< RLC's internal tbId maintained
178 #endif /* LTE_L2_MEAS */
182 * @brief DatReq from RLC to MAC for dedicated channels of an UE.
184 typedef struct rguDDatReqPerUe
186 CmLteRnti rnti; /*!< UE ID */
187 U32 transId; /*!< Transaction ID */
188 U8 nmbOfTbs; /*!< Number of TBs. Relevant for MIMO */
189 RguDatReqTb datReqTb[2]; /*!< DatReq info for MAX 2 TBs */
193 * @brief DatReq from RLC to MAC for dedicated channels of all UEs in a TTI.
195 typedef struct rguDDatReqInfo
197 CmLteCellId cellId; /*!< CELL ID */
198 U8 nmbOfUeGrantPerTti; /*!< Number of TBs. Relevant for MIMO */
199 RguDDatReqPerUe datReq[RGU_MAX_NUM_UE_PER_TTI]; /*!< Pointer to DatReq for MAX UEs configured Per TTI */
203 * @brief DatInd from MAC to RLC on CCCH.
205 typedef struct rguCDatIndInfo
207 CmLteCellId cellId; /*!< Cell ID */
208 CmLteRnti rnti; /*!< RNTI */
209 CmLteLcId lcId; /*!< Logical channel instance */
210 Buffer *pdu; /*!< PDU received always one */
213 #ifdef MAC_RLC_UL_RBUF
214 typedef struct rguDedDatInd1
220 /* rgu_x_001.main_3 - ADD - L2M & R9 Support */
224 * * Segment Indication ID from MAC to RLC */
225 typedef enum rguL2MUlThrpSegInd
227 RGU_L2M_ULTHRP_NOTDEF = 0,/**< Specifies No Indication */
228 RGU_L2M_ULTHRP_FIRST = 1, /**< Specifies First Segment Indication */
229 RGU_L2M_ULTHRP_LAST = 2, /**< Specifies Last Segment Indication */
230 RGU_L2M_ULTHRP_INTERIM = 3 /**< Specifies Interim Segment Indication */
234 * @brief Scheduled IP Throughput Timing Info from MAC to RLC.
236 typedef struct rgL2MeasUlThrpTimInfo
238 U32 thrpTimeUl; /*!< Difference in Timing values T1, T2 */
239 RguL2MUlThrpSegInd firstLastSegInd; /*!< Indication of Data Burst */
240 }RgL2MeasUlThrpTimInfo;
244 * @brief DatInd Information for a logical channel.
246 typedef struct rguLchDatInd
248 CmLteLcId lcId; /*!< Logical channel instance */
249 RguPduInfo pdu; /*!< PDU received */
250 /* rgu_x_001.main_3 - ADD - L2M & R9 Support */
254 * @brief Data Indication from MAC to RLC for dedicated channels of an UE.
256 typedef struct rguDDatIndInfo
258 CmLteCellId cellId; /*!< CELL ID */
259 CmLteRnti rnti; /*!< UE ID */
260 U8 numLch; /*!< Number of logical channels within
261 the UE that has data */
262 RguLchDatInd lchData[RGU_MAX_LC]; /*!< Data buffers of logical channels */
264 U32 ttiCnt; /*!< The Current TTI in the Cell */
265 U8 burstInd; /*!< Indicates the Burst Start or End */
270 * @brief Status Response from RLC to MAC for common logical channel.
272 typedef struct rguCStaRspInfo
274 CmLteCellId cellId; /*!< CELL ID */
275 CmLteLcId lcId; /*!< Logical channel ID */
276 CmLteLcType lcType; /*!< Logical channel type */
277 S32 bo; /*!< Buffer occupancy reported by RLC */
279 U8 emtcDiReason; /*!< Reason for DI message to send. */
280 U8 pnb; /*paging narrowBand on which UE will perform paging*/
282 union /*!< lcType in the primitive is
283 the union selector */
285 CmLteTimingInfo timeToTx; /*!< Timing info for the BO, applicable for
287 CmLteRnti rnti; /*!< Temporary CRNTI, only for CCCH */
292 * @brief Status Response from RLC to MAC for dedicated logical channel.
294 typedef struct rguDStaRspInfo
297 CmLteCellId cellId; /*!< CELL ID */
298 CmLteRnti rnti; /*!< UE ID */
299 CmLteLcId lcId; /*!< Logical channel ID */
300 RguDBoReport boReport; /*!< BO report for this common channel */
304 * @brief Status Indication from MAC to RLC for common logical channel.
306 typedef struct rguCStaIndInfo
308 CmLteCellId cellId; /*!< CELL ID */
309 CmLteLcId lcId; /*!< Logical channel ID */
310 U32 transId; /*!< Transaction ID */
311 CmLteRnti rnti; /*!< Temporary CRNTI */
313 Bool isEmtcPaging; /*!< To Identify whether Paging is EMTC or Lagecy */
314 CmLteTimingInfo pagingTimingInfo; /*!< paging TimingInfo information */
319 * @brief StaInd info for each logical channel of an UE.
321 typedef struct rguLchStaInd
323 CmLteLcId lcId; /*!< Logical channel ID */
324 S16 totBufSize; /*!< Total buffer size in bytes
329 * @brief StaInd info for each TB of a UE.
331 typedef struct rguStaIndTb
333 U8 nmbLch; /*!< Number of logical channels scheduled
335 RguLchStaInd lchStaInd[RGU_MAX_LC];/*!< Buffer size allocated for scheduled
336 logical channels for this TB */
338 U32 tbId; /*!< RLC internal TB id */
339 U16 status; /*!< Status back to RLC ACK/NACK/RGU_NACK_LOSS */
343 * @brief StaInd from MAC to RLC for dedicated logical channels of an UE.
345 typedef struct rguDStaIndPerUe
347 CmLteRnti rnti; /*!< UE ID */
348 U32 transId; /*!< Transaction ID */
349 U8 nmbOfTbs; /*!< Number of TBs. Relevant for MIMO */
350 RguStaIndTb staIndTb[2]; /*!< StaInd info for MAX 2 TBs */
351 Bool fillCtrlPdu; /*!< Flag to fill RLC control PDU */
355 * @brief StaInd from MAC to RLC for dedicated logical channels of all UEs Per TTI.
357 typedef struct rguDStaIndInfo
359 CmLteCellId cellId; /*!< CELL ID */
360 U8 nmbOfUeGrantPerTti; /*!< Number of TBs. Relevant for MIMO */
361 RguDStaIndPerUe staInd[RGU_MAX_NUM_UE_PER_TTI]; /*!< StaInd info for MAX number of UEs per TTI */
365 * @brief flowCntrl info per LC.
367 typedef struct rguLcFlowCntrlInfo
371 U32 maxBo4FlowCtrl; /*!< MAX BO of Queued SDUs at RLC beyond which Flow is Controlled */
375 * @brief flowCntrl info per UE.
377 typedef struct rguUeFlowCntrlInfo
381 RguLcFlowCntrlInfo lcInfo[RGU_MAX_LC];
385 * @brief flowCntrlInd from MAC to RLC for dedicated logical channels of all UEs Per TTI.
387 typedef struct rguFlowCntrlInd
389 CmLteCellId cellId; /*!< CELL ID */
391 RguUeFlowCntrlInfo ueFlowCntrlInfo[RGU_MAX_NUM_UE_PER_TTI];
393 typedef struct rguInfoRingElem
400 /* Buffer occupancy status information */
401 typedef struct rlcMacBOStatus
403 CmLteCellId cellId; /*!< CELL ID */
404 CmLteRnti rnti; /*!< UE ID */
405 Bool commCh; /*!< Common or Dedicated Channel */
406 CmLteLcId lcId; /*!< Logical channel ID */
407 S32 bo; /*!< Buffer occupancy reported by RLC */
410 /* Schedule result report from RLC to MAC */
411 typedef struct rlcMacLchSta
413 Bool commCh; /*!<Common or Dedicated Channel */
414 RguLchStaInd lchStaInd; /*!<Buffer size allocated for logical channel */
417 typedef struct rlcMacSchedRep
419 CmLteTimingInfo timeToTx; /*!< Air interface time */
420 CmLteCellId cellId; /*!< CELL ID */
421 CmLteRnti rnti; /*!< Temporary CRNTI */
422 U8 nmbLch; /*!< Number of logical channels scheduled */
423 RlcMacLchSta lchSta[RGU_MAX_LC]; /*!< Scheduled info of logical channels */
426 /* UL Data i.e. RLC PDU info from RLC to MAC */
427 typedef struct rlcMacPduInfo
429 Bool commCh; /*!<Common or Dedicated Channel */
430 CmLteLcId lcId; /*!< Logical channel ID */
431 MsgLen pduLen; /*!< PDU Length */
432 Buffer *pduBuf; /*!< RLC PDU buffer */
435 typedef struct rlcMacData
437 CmLteTimingInfo timeToTx; /*!< Air interface time */
438 CmLteCellId cellId; /*!< CELL ID */
439 CmLteRnti rnti; /*!< Temporary CRNTI */
440 U8 nmbPdu; /*!< Number of RLC PDUs */
441 RlcMacPduInfo pduInfo[RGU_MAX_PDU];
445 /***********************************************************************
446 type definitions for upper layer interface - RLC primitives
447 ***********************************************************************/
448 /** @brief Bind Request from RLC to MAC to bind the interface SAPs */
449 typedef S16 (*RguBndReq) ARGS((
453 /** @brief Unbind Request from RLC to MAC to unbind the interface SAPs */
454 typedef S16 (*RguUbndReq) ARGS((
458 /** @brief Bind Confirmation from MAC to RLC for the bind/unbind
459 * request for the interface SAPs */
460 typedef S16 (*RguBndCfm) ARGS((
464 /** @brief Data Request from RLC to MAC for forwarding SDUs on common
465 * channel for transmission */
466 typedef S16 (*RguCDatReq) ARGS((
469 RguCDatReqInfo * datReq));
470 /** @brief Data Request from RLC to MAC for forwarding SDUs on
471 * dedicated channel for transmission */
472 typedef S16 (*RguDDatReq) ARGS((
475 RguDDatReqInfo *datReq));
477 typedef uint16_t (*RlcMacDlData) ARGS((
480 RlcMacData *dlData));
481 /** @brief Data Indication from MAC to RLC to
482 * forward the data received for common channels */
483 typedef S16 (*RguCDatInd) ARGS((
486 RguCDatIndInfo * datInd));
487 /** @brief Data Indication from MAC to RLC to
488 * forward the data received for dedicated channels */
489 typedef S16 (*RguDDatInd) ARGS((
492 RguDDatIndInfo *datInd));
494 typedef S16 (*RlcMacUlData) ARGS((
497 RlcMacData *ulData));
498 /** @brief Status Response from RLC to MAC to
499 * inform the BO report for common channels */
500 typedef S16 (*RguCStaRsp) ARGS((
503 RguCStaRspInfo * staRsp));
504 /** @brief Status Repsonse from RLC to MAC to
505 * inform the BO report for dedicated channels */
506 typedef S16 (*RguDStaRsp) ARGS((
509 RguDStaRspInfo * staRsp));
511 typedef uint16_t (*RlcMacBoStatus) ARGS((
514 RlcMacBOStatus *boStatus));
516 /** @brief Status Indication from MAC to RLC
517 * as a response to the staRsp primitive from RLC */
518 typedef S16 (*RguCStaInd) ARGS((
521 RguCStaIndInfo * staInd));
522 /** @brief Status Indication from MAC to RLC
523 * as a response to the staRsp primitive from RLC */
524 typedef S16 (*RguDStaInd) ARGS((
527 RguDStaIndInfo * staInd));
529 typedef uint16_t (*RlcMacSchedRep) ARGS((
532 RlcMacSchedRepInfo *schRep));
534 typedef S16 (*RguFlowCntrlIndInfo) ARGS((
537 RguFlowCntrlInd *flowCntrlInd));
539 /* rgu_x_001.main_3 - ADD - L2M & R9 Support */
541 /** @brief HARQ Status Indication from MAC to RLC
542 * as a response to Data Req primitive from RLC */
543 typedef S16 (*RguHqStaInd) ARGS((
546 RguHarqStatusInd *harqStatusInd));
547 /** @brief LCID measurement status from RLC to MAC
548 * so as to provide Timing Info in DDatInd */
549 typedef S16 (*RguL2MUlThrpMeasReq) ARGS((
552 RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq));
554 #endif /* LTE_L2_MEAS */
558 /** @brief Bind Request from RLC to MAC to bind the interface SAPs
559 * @param pst Pointer to the post structure.
560 * @param suId SAP ID of the service user.
561 * @param spId SAP ID of the service provider.
562 * @return ROK/RFAILED
564 EXTERN S16 RgUiRguBndReq ARGS((Pst* pst,SuId suId,SpId spId));
565 /** @brief Unbind Request from RLC to MAC to unbind the interface SAPs
566 * @param pst Pointer to the post structure.
567 * @param spId SAP ID of the service provider.
568 * @param reason Reason for unbind request.
569 * @return ROK/RFAILED
571 EXTERN S16 RgUiRguUbndReq ARGS((Pst* pst,SpId spId,Reason reason));
572 /** @brief Bind Confirmation from MAC to RLC for the bind and unbind
573 * request for the interface SAPs
574 * @param pst Pointer to the post structure.
575 * @param suId SAP ID of the service user.
576 * @param status Status of the bind request.
577 * @return ROK/RFAILED
579 EXTERN S16 RgUiRguBndCfm ARGS((Pst* pst,SuId suId,U8 status));
580 /** @brief Data Request from RLC to MAC for forwarding SDUs on common
581 * channel for transmission
582 * @param pst Pointer to the post structure.
583 * @param spId SAP ID of the service provider.
584 * @param datReq Data request for common channels (BCCH, PCCH and CCCH).
585 * @return ROK/RFAILED
587 EXTERN S16 RgUiRguCDatReq ARGS((Pst* pst,SpId spId,RguCDatReqInfo *datReq));
588 /** @brief Data Request from RLC to MAC for forwarding SDUs on
589 * dedicated channel for transmission
590 * @param pst Pointer to the post structure.
591 * @param spId SAP ID of the service provider.
592 * @param datReq Data request for dedicated channels (DCCH and DTCH).
593 * @return ROK/RFAILED
595 EXTERN S16 RgUiRguDDatReq ARGS((Pst* pst,SpId spId,RguDDatReqInfo *datReq));
597 EXTERN uint16_t MacRlcProcDlData(Pst* pst, SpId spId, RlcMacData *dlData);
599 /** @brief Data Indication from MAC to RLC to
600 * forward the data received for common channels
601 * @param pst Pointer to the post structure.
602 * @param suId SAP ID of the service user.
603 * @param datInd Data indication on CCCH.
604 * @return ROK/RFAILED
606 EXTERN S16 RgUiRguCDatInd ARGS((Pst* pst,SuId suId,RguCDatIndInfo *datInd));
607 /** @brief Data Indication from MAC to RLC to
608 * forward the data received for dedicated channels
609 * @param pst Pointer to the post structure.
610 * @param suId SAP ID of the service user.
611 * @param datInd Data indication on dedicated channels (DCCH and DTCH).
612 * @return ROK/RFAILED
614 EXTERN S16 RgUiRguDDatInd ARGS((Pst* pst,SuId suId,RguDDatIndInfo *datInd));
615 /** @brief Status Response from RLC to MAC to
616 * inform the BO report for common channels
617 * @param pst Pointer to the post structure.
618 * @param spId SAP ID of the service provider.
619 * @param staRsp Status response for common channels (BCCH, PCCH and CCCH).
620 * @return ROK/RFAILED
622 EXTERN S16 RgUiRguCStaRsp ARGS((Pst* pst,SpId spId,RguCStaRspInfo *staRsp));
623 /** @brief Status Response from RLC to MAC to
624 * inform the BO report for dedicated channels
625 * @param pst Pointer to the post structure.
626 * @param spId SAP ID of the service provider.
627 * @param staRsp Status response for dedicated channels (DCCH and DTCH).
628 * @return ROK/RFAILED
630 EXTERN S16 RgUiRguDStaRsp ARGS((Pst* pst,SpId spId,RguDStaRspInfo *staRsp));
632 EXTERN uint16_t MacRlcProcBOStatus(Pst* pst, SpId spId, RlcMacBOStatus* boStatus);
634 /** @brief Status Indication from MAC to RLC
635 * as a response to the staRsp primitive from RLC.
636 * @param pst Pointer to the post structure.
637 * @param suId SAP ID of the service user.
638 * @param staInd Status indication on common channels (BCCH, PCCH and CCCH).
639 * @return ROK/RFAILED
641 EXTERN S16 RgUiRguCStaInd ARGS((Pst* pst,SuId suId,RguCStaIndInfo *staInd));
642 /** @brief Status Indication from MAC to RLC
643 * as a response to the staRsp primitive from RLC.
644 * @param pst Pointer to the post structure.
645 * @param suId SAP ID of the service user.
646 * @param staInd Status indication on dedicated channels (DCCH and DTCH).
647 * @return ROK/RFAILED
649 EXTERN S16 RgUiRguDStaInd ARGS((Pst* pst,SuId suId,RguDStaIndInfo *staInd));
650 /** @brief flow control indication from MAC to RLC */
651 EXTERN S16 RgUiRguFlowCntrlInd ARGS((Pst *pst, SuId suId,
652 RguFlowCntrlInd *flowCntrlInd));
653 /*rgu_x_001.main_3 - ADD - L2M & R9 Support */
655 /** @brief HARQ Status Indication from MAC to RLC
656 * as a response to the Data Req from RLC.
657 * Informs HARQ feedback for the TB with sn mapping info. */
658 EXTERN S16 RgUiRguHqStaInd ARGS((Pst* pst,SuId suId,
659 RguHarqStatusInd *harqStatusInd));
663 /** @brief Request for measuring the timing Info for a LC from RLC to MAC
664 * When the status is ON then Timing Info for data bursts
665 * shall be captured and provided to RLC on DDatInd. */
666 EXTERN S16 RgUiRguL2MUlThrpMeasReq ARGS((Pst* pst,SpId spId,
667 RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq));
669 #endif /* LTE_L2_MEAS */
674 /** @brief Request from RLC to MAC to bind the interface saps */
675 EXTERN S16 KwLiRguBndReq ARGS((
680 /** @brief Request from RLC to MAC to Unbind the interface saps */
681 EXTERN S16 KwLiRguUbndReq ARGS((
686 /** @brief Confirmation from MAC to RLC for the bind/Unbind
687 * request for the interface saps */
688 EXTERN S16 KwLiRguBndCfm ARGS((
693 /** @brief Request from RLC to MAC for forwarding SDUs on common
694 * channel for transmission */
695 EXTERN S16 KwLiRguCDatReq ARGS((
698 RguCDatReqInfo * datReq
700 /** @brief Request from RLC to MAC for forwarding SDUs on
701 * dedicated channel for transmission */
702 EXTERN S16 RlcMacSendDlData ARGS((
708 /** @brief Handler toprocess UL data from MAC and
709 * forwarding to appropriate common/dedicated
710 * channel's handler */
711 EXTERN S16 RlcMacProcUlData ARGS((
717 /** @brief Data Indication from MAC to RLC to
718 * forward the data received for common channels*/
719 EXTERN S16 KwLiRguCDatInd ARGS((
722 RguCDatIndInfo * datInd
724 /** @brief Data Indication from MAC to RLC to
725 * forward the data received for dedicated channels*/
726 EXTERN S16 KwLiRguDDatInd ARGS((
729 RguDDatIndInfo * datInd
731 /** @brief Primitive invoked from RLC to MAC to
732 * inform the BO report for common channels*/
733 EXTERN S16 KwLiRguCStaRsp ARGS((
736 RguCStaRspInfo * staRsp
738 /** @brief Primitive invoked from RLC to MAC to
739 * inform the BO report for dedicated channels*/
740 EXTERN S16 RlcMacSendBOStatus ARGS((
743 RlcMacBOStatus* boSta
746 /**@brief Primitive invoked from MAC to RLC to
747 * inform scheduling result for logical channels */
748 EXTERN uint16_t RlcMacProcSchedRep ARGS((
751 RlcMacSchedRepInfo *schRep
753 /** @brief Status Indication from MAC to RLC
754 * as a response to the staRsp primitive from RLC.
755 * Informs RLC of the totalBufferSize and Timing Info
756 * for the transmission on common channels. */
757 EXTERN S16 KwLiRguCStaInd ARGS((
760 RguCStaIndInfo * staInd
762 /** @brief Status Indication from MAC to RLC
763 * as a response to the staRsp primitive from RLC.
764 * Informs RLC of the totalBufferSize and Timing Info
765 * for the transmission on dedicated channels. */
766 EXTERN S16 KwLiRguDStaInd ARGS((
769 RguDStaIndInfo * staInd
773 /** @brief HARQ Status Indication from MAC to RLC
774 * as a response to the Data Req from RLC.
775 * Informs HARQ feedback for the PDU with sn. */
776 EXTERN S16 KwLiRguHqStaInd ARGS((
779 RguHarqStatusInd *harqStatusInd));
782 /** @brief Request for measuring the timing Info for a LC from RLC to MAC
783 * When the status is ON then Timing Info for data bursts
784 * shall be captured and provided to RLC on DDatInd. */
785 EXTERN S16 KwLiRguL2MUlThrpMeasReq ARGS((
788 RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq));
790 #endif /* LTE_L2_MEAS */
792 /** @brief flowCntrl Indication from MAC to RLC */
793 EXTERN S16 KwLiRguFlowCntrlInd ARGS((
796 RguFlowCntrlInd *flowCntrlInd
801 /** @brief Request from RLC to MAC to bind the interface saps */
802 EXTERN S16 cmPkRguBndReq ARGS((
807 /** @brief Request from RLC to MAC to bind the interface saps */
808 EXTERN S16 cmUnpkRguBndReq ARGS((
813 /** @brief Request from RLC to MAC to Unbind the interface saps */
814 EXTERN S16 cmPkRguUbndReq ARGS((
819 /** @brief Request from RLC to MAC to Unbind the interface saps */
820 EXTERN S16 cmUnpkRguUbndReq ARGS((
825 /** @brief Confirmation from MAC to RLC for the bind/Unbind
826 * request for the interface saps */
827 EXTERN S16 cmPkRguBndCfm ARGS((
832 /** @brief Confirmation from MAC to RLC for the bind/Unbind
833 * request for the interface saps */
834 EXTERN S16 cmUnpkRguBndCfm ARGS((
839 /** @brief Request from RLC to MAC for forwarding SDUs on common
840 * channel for transmission */
841 EXTERN S16 cmPkRguCDatReq ARGS((
844 RguCDatReqInfo * datReq
846 /** @brief Request from RLC to MAC for forwarding SDUs on common
847 * channel for transmission */
848 EXTERN S16 cmUnpkRguCDatReq ARGS((
853 /** @brief Request from RLC to MAC for forwarding SDUs on
854 * dedicated channel for transmission */
855 EXTERN uint16_t packDlData ARGS((
860 /** @brief Request from RLC to MAC for forwarding SDUs on
861 * dedicated channel for transmission */
862 EXTERN S16 unpackDlData ARGS((
867 /** @brief Data Indication from MAC to RLC to
868 * forward the data received for common channels*/
869 EXTERN S16 cmPkRguCDatInd ARGS((
872 RguCDatIndInfo * datInd
874 /** @brief Data Indication from MAC to RLC to
875 * forward the data received for common channels*/
876 EXTERN S16 cmUnpkRguCDatInd ARGS((
881 /** @brief Data Indication from MAC to RLC to
882 * forward the data received for dedicated channels*/
883 EXTERN S16 packRcvdUlData ARGS((
888 /** @brief Data Indication from MAC to RLC to
889 * forward the data received for dedicated channels*/
890 EXTERN S16 unpackRcvdUlData ARGS((
895 /** @brief Primitive invoked from RLC to MAC to
896 * inform the BO report for common channels*/
897 EXTERN S16 cmPkRguCStaRsp ARGS((
900 RguCStaRspInfo * staRsp
902 /** @brief Primitive invoked from RLC to MAC to
903 * inform the BO report for common channels*/
904 EXTERN S16 cmUnpkRguCStaRsp ARGS((
909 /** @brief Primitive invoked from RLC to MAC to
910 * inform the BO report for dedicated channels*/
911 EXTERN uint16_t packBOStatus ARGS((
914 RlcMacBOStatus* boStatus
916 /** @brief Primitive invoked from RLC to MAC to
917 * inform the BO report for dedicated channels*/
918 EXTERN uint16_t unpackBOStatus ARGS((
923 /** @brief Status Indication from MAC to RLC
924 * as a response to the staRsp primitive from RLC.
925 * Informs RLC of the totalBufferSize and Timing Info
926 * for the transmission on common channels. */
927 EXTERN S16 cmPkRguCStaInd ARGS((
930 RguCStaIndInfo * staInd
932 /** @brief Status Indication from MAC to RLC
933 * as a response to the staRsp primitive from RLC.
934 * Informs RLC of the totalBufferSize and Timing Info
935 * for the transmission on common channels. */
936 EXTERN S16 cmUnpkRguCStaInd ARGS((
941 /** @brief Status Indication from MAC to RLC
942 * as a response to the staRsp primitive from RLC.
943 * Informs RLC of the totalBufferSize and Timing Info
944 * for the transmission on dedicated channels. */
945 EXTERN S16 packSchedRep ARGS((
948 RlcMacSchedRepInfo *staInd
950 EXTERN S16 cmPkRguFlowCntrlInfo ARGS((
951 RguFlowCntrlInd *param,
954 EXTERN S16 cmPkRguUeFlowCntrlInfo ARGS((
955 RguUeFlowCntrlInfo *param,
958 EXTERN S16 cmPkRguLcFlowCntrlInfo ARGS((
959 RguLcFlowCntrlInfo *param,
962 EXTERN S16 cmUnpkRguLcFlowCntrlInfo ARGS((
963 RguLcFlowCntrlInfo *param,
966 EXTERN S16 cmUnpkRguUeFlowCntrlInfo ARGS((
967 RguUeFlowCntrlInfo *param,
970 EXTERN S16 cmUnpkRguFlowCntrlInfo ARGS((
971 RguFlowCntrlInd *param,
974 /** @brief Status Indication from MAC to RLC
975 * as a response to the staRsp primitive from RLC.
976 * Informs RLC of the totalBufferSize and Timing Info
977 * for the transmission on dedicated channels. */
978 EXTERN S16 unpackSchedRep ARGS((
983 EXTERN S16 cmPkRguPduInfo ARGS((
987 EXTERN S16 cmUnpkRguPduInfo ARGS((
991 EXTERN S16 cmPkRguDBoReport ARGS((
995 EXTERN S16 cmUnpkRguDBoReport ARGS((
1000 EXTERN S16 cmPkRguCDatReqInfo ARGS((
1001 RguCDatReqInfo *param,
1004 EXTERN S16 cmUnpkRguCDatReqInfo ARGS((
1005 RguCDatReqInfo *param,
1008 EXTERN S16 cmPkRguLchDatReq ARGS((
1009 RguLchDatReq *param,
1012 EXTERN S16 cmUnpkRguLchDatReq ARGS((
1013 RguLchDatReq *param,
1016 EXTERN S16 cmPkRguDatReqTb ARGS((
1020 EXTERN S16 cmPkRguStaIndTb ARGS((
1024 EXTERN S16 cmUnpkRguStaIndTb ARGS((
1028 /* rgu_x_001.main_3 - ADD - L2M Support */
1030 EXTERN S16 cmPkRguDDatReqInfo ARGS((
1032 RguDDatReqInfo *param,
1035 EXTERN S16 cmUnpkRguDDatReqInfo ARGS((
1037 RguDDatReqInfo *param,
1040 EXTERN S16 cmUnpkRguDatReqTb ARGS((
1046 EXTERN S16 cmPkRguDDatReqInfo ARGS((
1047 RguDDatReqInfo *param,
1050 EXTERN S16 cmUnpkRguDDatReqInfo ARGS((
1051 RguDDatReqInfo *param,
1054 EXTERN S16 cmUnpkRguDatReqTb ARGS((
1059 EXTERN S16 cmPkRguCDatIndInfo ARGS((
1060 RguCDatIndInfo *param,
1063 EXTERN S16 cmUnpkRguCDatIndInfo ARGS((
1064 RguCDatIndInfo *param,
1067 EXTERN S16 cmPkRguLchDatInd ARGS((
1068 RguLchDatInd *param,
1071 EXTERN S16 cmUnpkRguLchDatInd ARGS((
1072 RguLchDatInd *param,
1075 EXTERN S16 packRlcMacDataInfo ARGS((
1079 EXTERN S16 unpackRlcMacDataInfo ARGS((
1084 EXTERN S16 cmPkRguCStaRspInfo ARGS((
1085 RguCStaRspInfo *param,
1088 EXTERN S16 cmUnpkRguCStaRspInfo ARGS((
1089 RguCStaRspInfo *param,
1092 EXTERN S16 packBOStatusInfo ARGS((
1093 RlcMacBOStatus *param,
1096 EXTERN S16 unpackBOStatusInfo ARGS((
1097 RlcMacBOStatus *param,
1100 EXTERN S16 cmPkRguCStaIndInfo ARGS((
1101 RguCStaIndInfo *param,
1104 EXTERN S16 cmUnpkRguCStaIndInfo ARGS((
1105 RguCStaIndInfo *param,
1108 EXTERN S16 cmPkRguLchStaInd ARGS((
1109 RguLchStaInd *param,
1112 EXTERN S16 cmUnpkRguLchStaInd ARGS((
1113 RguLchStaInd *param,
1116 EXTERN S16 packSchedRepInfo ARGS((
1117 RlcMacSchedRepInfo *param,
1120 EXTERN S16 unpackSchedRepInfo ARGS((
1121 RlcMacSchedRepInfo *param,
1125 /*rgu_x_001.main_3 - ADD - L2M & R9 Support */
1127 /** @brief Request from MAC to RLC for forwarding HARQ Status */
1129 EXTERN S16 cmPkRguHqStaInd ARGS((
1132 RguHarqStatusInd *harqStatusInd));
1134 /** @brief Request from MAC to RLC forwarding HARQ status */
1135 EXTERN S16 cmUnpkRguHqStaInd ARGS((
1141 /** @brief Primitive invoked from RLC to MAC to
1142 * * inform the On/Off Status of LC Id*/
1143 EXTERN S16 cmPkRguL2MUlThrpMeasReq ARGS((
1146 RguL2MUlThrpMeasReqInfo* measReq
1149 /** @brief Primitive invoked from RLC to MAC to
1150 * * inform the On/Off Status of LC Id*/
1151 EXTERN S16 cmUnpkRguL2MUlThrpMeasReq ARGS((
1152 RguL2MUlThrpMeasReq func,
1157 EXTERN S16 cmPkRguL2MUlThrpMeasReqInfo ARGS((
1158 RguL2MUlThrpMeasReqInfo *param,
1162 EXTERN S16 cmUnpkRguL2MUlThrpMeasReqInfo ARGS((
1163 RguL2MUlThrpMeasReqInfo *param,
1167 #endif /* LTE_L2_MEAS */
1168 EXTERN S16 cmUnpkRguFlowCntrlInd ARGS((
1169 RguFlowCntrlIndInfo func,
1174 EXTERN S16 cmPkRguFlowCntrlInd ARGS((
1177 RguFlowCntrlInd *flowCntrlInd
1184 #endif /* __RGUX__ */
1186 /********************************************************************30**
1189 **********************************************************************/