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));
476 /** @brief Data Indication from MAC to RLC to
477 * forward the data received for common channels */
478 typedef S16 (*RguCDatInd) ARGS((
481 RguCDatIndInfo * datInd));
482 /** @brief Data Indication from MAC to RLC to
483 * forward the data received for dedicated channels */
484 typedef S16 (*RguDDatInd) ARGS((
487 RguDDatIndInfo * datInd));
488 /** @brief Status Response from RLC to MAC to
489 * inform the BO report for common channels */
490 typedef S16 (*RguCStaRsp) ARGS((
493 RguCStaRspInfo * staRsp));
494 /** @brief Status Repsonse from RLC to MAC to
495 * inform the BO report for dedicated channels */
496 typedef S16 (*RguDStaRsp) ARGS((
499 RguDStaRspInfo * staRsp));
500 /** @brief Status Indication from MAC to RLC
501 * as a response to the staRsp primitive from RLC */
502 typedef S16 (*RguCStaInd) ARGS((
505 RguCStaIndInfo * staInd));
506 /** @brief Status Indication from MAC to RLC
507 * as a response to the staRsp primitive from RLC */
508 typedef S16 (*RguDStaInd) ARGS((
511 RguDStaIndInfo * staInd));
513 typedef S16 (*RguFlowCntrlIndInfo) ARGS((
516 RguFlowCntrlInd *flowCntrlInd));
518 /* rgu_x_001.main_3 - ADD - L2M & R9 Support */
520 /** @brief HARQ Status Indication from MAC to RLC
521 * as a response to Data Req primitive from RLC */
522 typedef S16 (*RguHqStaInd) ARGS((
525 RguHarqStatusInd *harqStatusInd));
526 /** @brief LCID measurement status from RLC to MAC
527 * so as to provide Timing Info in DDatInd */
528 typedef S16 (*RguL2MUlThrpMeasReq) ARGS((
531 RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq));
533 #endif /* LTE_L2_MEAS */
537 /** @brief Bind Request from RLC to MAC to bind the interface SAPs
538 * @param pst Pointer to the post structure.
539 * @param suId SAP ID of the service user.
540 * @param spId SAP ID of the service provider.
541 * @return ROK/RFAILED
543 EXTERN S16 RgUiRguBndReq ARGS((Pst* pst,SuId suId,SpId spId));
544 /** @brief Unbind Request from RLC to MAC to unbind the interface SAPs
545 * @param pst Pointer to the post structure.
546 * @param spId SAP ID of the service provider.
547 * @param reason Reason for unbind request.
548 * @return ROK/RFAILED
550 EXTERN S16 RgUiRguUbndReq ARGS((Pst* pst,SpId spId,Reason reason));
551 /** @brief Bind Confirmation from MAC to RLC for the bind and unbind
552 * request for the interface SAPs
553 * @param pst Pointer to the post structure.
554 * @param suId SAP ID of the service user.
555 * @param status Status of the bind request.
556 * @return ROK/RFAILED
558 EXTERN S16 RgUiRguBndCfm ARGS((Pst* pst,SuId suId,U8 status));
559 /** @brief Data Request from RLC to MAC for forwarding SDUs on common
560 * channel for transmission
561 * @param pst Pointer to the post structure.
562 * @param spId SAP ID of the service provider.
563 * @param datReq Data request for common channels (BCCH, PCCH and CCCH).
564 * @return ROK/RFAILED
566 EXTERN S16 RgUiRguCDatReq ARGS((Pst* pst,SpId spId,RguCDatReqInfo *datReq));
567 /** @brief Data Request from RLC to MAC for forwarding SDUs on
568 * dedicated channel for transmission
569 * @param pst Pointer to the post structure.
570 * @param spId SAP ID of the service provider.
571 * @param datReq Data request for dedicated channels (DCCH and DTCH).
572 * @return ROK/RFAILED
574 EXTERN S16 RgUiRguDDatReq ARGS((Pst* pst,SpId spId,RguDDatReqInfo *datReq));
575 /** @brief Data Indication from MAC to RLC to
576 * forward the data received for common channels
577 * @param pst Pointer to the post structure.
578 * @param suId SAP ID of the service user.
579 * @param datInd Data indication on CCCH.
580 * @return ROK/RFAILED
582 EXTERN S16 RgUiRguCDatInd ARGS((Pst* pst,SuId suId,RguCDatIndInfo *datInd));
583 /** @brief Data Indication from MAC to RLC to
584 * forward the data received for dedicated channels
585 * @param pst Pointer to the post structure.
586 * @param suId SAP ID of the service user.
587 * @param datInd Data indication on dedicated channels (DCCH and DTCH).
588 * @return ROK/RFAILED
590 EXTERN S16 RgUiRguDDatInd ARGS((Pst* pst,SuId suId,RguDDatIndInfo *datInd));
591 /** @brief Status Response from RLC to MAC to
592 * inform the BO report for common channels
593 * @param pst Pointer to the post structure.
594 * @param spId SAP ID of the service provider.
595 * @param staRsp Status response for common channels (BCCH, PCCH and CCCH).
596 * @return ROK/RFAILED
598 EXTERN S16 RgUiRguCStaRsp ARGS((Pst* pst,SpId spId,RguCStaRspInfo *staRsp));
599 /** @brief Status Response from RLC to MAC to
600 * inform the BO report for dedicated channels
601 * @param pst Pointer to the post structure.
602 * @param spId SAP ID of the service provider.
603 * @param staRsp Status response for dedicated channels (DCCH and DTCH).
604 * @return ROK/RFAILED
606 EXTERN S16 RgUiRguDStaRsp ARGS((Pst* pst,SpId spId,RguDStaRspInfo *staRsp));
607 /** @brief Status Indication from MAC to RLC
608 * as a response to the staRsp primitive from RLC.
609 * @param pst Pointer to the post structure.
610 * @param suId SAP ID of the service user.
611 * @param staInd Status indication on common channels (BCCH, PCCH and CCCH).
612 * @return ROK/RFAILED
614 EXTERN S16 RgUiRguCStaInd ARGS((Pst* pst,SuId suId,RguCStaIndInfo *staInd));
615 /** @brief Status Indication from MAC to RLC
616 * as a response to the staRsp primitive from RLC.
617 * @param pst Pointer to the post structure.
618 * @param suId SAP ID of the service user.
619 * @param staInd Status indication on dedicated channels (DCCH and DTCH).
620 * @return ROK/RFAILED
622 EXTERN S16 RgUiRguDStaInd ARGS((Pst* pst,SuId suId,RguDStaIndInfo *staInd));
623 /** @brief flow control indication from MAC to RLC */
624 EXTERN S16 RgUiRguFlowCntrlInd ARGS((Pst *pst, SuId suId,
625 RguFlowCntrlInd *flowCntrlInd));
626 /*rgu_x_001.main_3 - ADD - L2M & R9 Support */
628 /** @brief HARQ Status Indication from MAC to RLC
629 * as a response to the Data Req from RLC.
630 * Informs HARQ feedback for the TB with sn mapping info. */
631 EXTERN S16 RgUiRguHqStaInd ARGS((Pst* pst,SuId suId,
632 RguHarqStatusInd *harqStatusInd));
636 /** @brief Request for measuring the timing Info for a LC from RLC to MAC
637 * When the status is ON then Timing Info for data bursts
638 * shall be captured and provided to RLC on DDatInd. */
639 EXTERN S16 RgUiRguL2MUlThrpMeasReq ARGS((Pst* pst,SpId spId,
640 RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq));
642 #endif /* LTE_L2_MEAS */
647 /** @brief Request from RLC to MAC to bind the interface saps */
648 EXTERN S16 KwLiRguBndReq ARGS((
653 /** @brief Request from RLC to MAC to Unbind the interface saps */
654 EXTERN S16 KwLiRguUbndReq ARGS((
659 /** @brief Confirmation from MAC to RLC for the bind/Unbind
660 * request for the interface saps */
661 EXTERN S16 KwLiRguBndCfm ARGS((
666 /** @brief Request from RLC to MAC for forwarding SDUs on common
667 * channel for transmission */
668 EXTERN S16 KwLiRguCDatReq ARGS((
671 RguCDatReqInfo * datReq
673 /** @brief Request from RLC to MAC for forwarding SDUs on
674 * dedicated channel for transmission */
675 EXTERN S16 RlcMacSendDlData ARGS((
681 /** @brief Handler toprocess UL data from MAC and
682 * forwarding to appropriate common/dedicated
683 * channel's handler */
684 EXTERN S16 RlcMacProcUlData ARGS((
690 /** @brief Data Indication from MAC to RLC to
691 * forward the data received for common channels*/
692 EXTERN S16 KwLiRguCDatInd ARGS((
695 RguCDatIndInfo * datInd
697 /** @brief Data Indication from MAC to RLC to
698 * forward the data received for dedicated channels*/
699 EXTERN S16 KwLiRguDDatInd ARGS((
702 RguDDatIndInfo * datInd
704 /** @brief Primitive invoked from RLC to MAC to
705 * inform the BO report for common channels*/
706 EXTERN S16 KwLiRguCStaRsp ARGS((
709 RguCStaRspInfo * staRsp
711 /** @brief Primitive invoked from RLC to MAC to
712 * inform the BO report for dedicated channels*/
713 EXTERN S16 RlcMacSendBOStatus ARGS((
716 RlcMacBOStatus* boSta
719 /**@brief Primitive invoked from MAC to RLC to
720 * inform scheduling result for logical channels */
721 EXTERN S16 RlcMacProcSchedRep ARGS((
724 RlcMacSchedRep *schRep
726 /** @brief Status Indication from MAC to RLC
727 * as a response to the staRsp primitive from RLC.
728 * Informs RLC of the totalBufferSize and Timing Info
729 * for the transmission on common channels. */
730 EXTERN S16 KwLiRguCStaInd ARGS((
733 RguCStaIndInfo * staInd
735 /** @brief Status Indication from MAC to RLC
736 * as a response to the staRsp primitive from RLC.
737 * Informs RLC of the totalBufferSize and Timing Info
738 * for the transmission on dedicated channels. */
739 EXTERN S16 KwLiRguDStaInd ARGS((
742 RguDStaIndInfo * staInd
746 /** @brief HARQ Status Indication from MAC to RLC
747 * as a response to the Data Req from RLC.
748 * Informs HARQ feedback for the PDU with sn. */
749 EXTERN S16 KwLiRguHqStaInd ARGS((
752 RguHarqStatusInd *harqStatusInd));
755 /** @brief Request for measuring the timing Info for a LC from RLC to MAC
756 * When the status is ON then Timing Info for data bursts
757 * shall be captured and provided to RLC on DDatInd. */
758 EXTERN S16 KwLiRguL2MUlThrpMeasReq ARGS((
761 RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq));
763 #endif /* LTE_L2_MEAS */
765 /** @brief flowCntrl Indication from MAC to RLC */
766 EXTERN S16 KwLiRguFlowCntrlInd ARGS((
769 RguFlowCntrlInd *flowCntrlInd
774 /** @brief Request from RLC to MAC to bind the interface saps */
775 EXTERN S16 cmPkRguBndReq ARGS((
780 /** @brief Request from RLC to MAC to bind the interface saps */
781 EXTERN S16 cmUnpkRguBndReq ARGS((
786 /** @brief Request from RLC to MAC to Unbind the interface saps */
787 EXTERN S16 cmPkRguUbndReq ARGS((
792 /** @brief Request from RLC to MAC to Unbind the interface saps */
793 EXTERN S16 cmUnpkRguUbndReq ARGS((
798 /** @brief Confirmation from MAC to RLC for the bind/Unbind
799 * request for the interface saps */
800 EXTERN S16 cmPkRguBndCfm ARGS((
805 /** @brief Confirmation from MAC to RLC for the bind/Unbind
806 * request for the interface saps */
807 EXTERN S16 cmUnpkRguBndCfm ARGS((
812 /** @brief Request from RLC to MAC for forwarding SDUs on common
813 * channel for transmission */
814 EXTERN S16 cmPkRguCDatReq ARGS((
817 RguCDatReqInfo * datReq
819 /** @brief Request from RLC to MAC for forwarding SDUs on common
820 * channel for transmission */
821 EXTERN S16 cmUnpkRguCDatReq ARGS((
826 /** @brief Request from RLC to MAC for forwarding SDUs on
827 * dedicated channel for transmission */
828 EXTERN S16 packDlData ARGS((
833 /** @brief Request from RLC to MAC for forwarding SDUs on
834 * dedicated channel for transmission */
835 EXTERN S16 unpackDlData ARGS((
840 /** @brief Data Indication from MAC to RLC to
841 * forward the data received for common channels*/
842 EXTERN S16 cmPkRguCDatInd ARGS((
845 RguCDatIndInfo * datInd
847 /** @brief Data Indication from MAC to RLC to
848 * forward the data received for common channels*/
849 EXTERN S16 cmUnpkRguCDatInd ARGS((
854 /** @brief Data Indication from MAC to RLC to
855 * forward the data received for dedicated channels*/
856 EXTERN S16 packRcvdUlData ARGS((
861 /** @brief Data Indication from MAC to RLC to
862 * forward the data received for dedicated channels*/
863 EXTERN S16 unpackRcvdUlData ARGS((
868 /** @brief Primitive invoked from RLC to MAC to
869 * inform the BO report for common channels*/
870 EXTERN S16 cmPkRguCStaRsp ARGS((
873 RguCStaRspInfo * staRsp
875 /** @brief Primitive invoked from RLC to MAC to
876 * inform the BO report for common channels*/
877 EXTERN S16 cmUnpkRguCStaRsp ARGS((
882 /** @brief Primitive invoked from RLC to MAC to
883 * inform the BO report for dedicated channels*/
884 EXTERN S16 packBOStatus ARGS((
887 RlcMacBOStatus* boStatus
889 /** @brief Primitive invoked from RLC to MAC to
890 * inform the BO report for dedicated channels*/
891 EXTERN S16 unpackBOStatus ARGS((
896 /** @brief Status Indication from MAC to RLC
897 * as a response to the staRsp primitive from RLC.
898 * Informs RLC of the totalBufferSize and Timing Info
899 * for the transmission on common channels. */
900 EXTERN S16 cmPkRguCStaInd ARGS((
903 RguCStaIndInfo * staInd
905 /** @brief Status Indication from MAC to RLC
906 * as a response to the staRsp primitive from RLC.
907 * Informs RLC of the totalBufferSize and Timing Info
908 * for the transmission on common channels. */
909 EXTERN S16 cmUnpkRguCStaInd ARGS((
914 /** @brief Status Indication from MAC to RLC
915 * as a response to the staRsp primitive from RLC.
916 * Informs RLC of the totalBufferSize and Timing Info
917 * for the transmission on dedicated channels. */
918 EXTERN S16 packSchedRep ARGS((
921 RlcMacSchedRep * staInd
923 EXTERN S16 cmPkRguFlowCntrlInfo ARGS((
924 RguFlowCntrlInd *param,
927 EXTERN S16 cmPkRguUeFlowCntrlInfo ARGS((
928 RguUeFlowCntrlInfo *param,
931 EXTERN S16 cmPkRguLcFlowCntrlInfo ARGS((
932 RguLcFlowCntrlInfo *param,
935 EXTERN S16 cmUnpkRguLcFlowCntrlInfo ARGS((
936 RguLcFlowCntrlInfo *param,
939 EXTERN S16 cmUnpkRguUeFlowCntrlInfo ARGS((
940 RguUeFlowCntrlInfo *param,
943 EXTERN S16 cmUnpkRguFlowCntrlInfo ARGS((
944 RguFlowCntrlInd *param,
947 /** @brief Status Indication from MAC to RLC
948 * as a response to the staRsp primitive from RLC.
949 * Informs RLC of the totalBufferSize and Timing Info
950 * for the transmission on dedicated channels. */
951 EXTERN S16 unpackSchedRep ARGS((
956 EXTERN S16 cmPkRguPduInfo ARGS((
960 EXTERN S16 cmUnpkRguPduInfo ARGS((
964 EXTERN S16 cmPkRguDBoReport ARGS((
968 EXTERN S16 cmUnpkRguDBoReport ARGS((
973 EXTERN S16 cmPkRguCDatReqInfo ARGS((
974 RguCDatReqInfo *param,
977 EXTERN S16 cmUnpkRguCDatReqInfo ARGS((
978 RguCDatReqInfo *param,
981 EXTERN S16 cmPkRguLchDatReq ARGS((
985 EXTERN S16 cmUnpkRguLchDatReq ARGS((
989 EXTERN S16 cmPkRguDatReqTb ARGS((
993 EXTERN S16 cmPkRguStaIndTb ARGS((
997 EXTERN S16 cmUnpkRguStaIndTb ARGS((
1001 /* rgu_x_001.main_3 - ADD - L2M Support */
1003 EXTERN S16 cmPkRguDDatReqInfo ARGS((
1005 RguDDatReqInfo *param,
1008 EXTERN S16 cmUnpkRguDDatReqInfo ARGS((
1010 RguDDatReqInfo *param,
1013 EXTERN S16 cmUnpkRguDatReqTb ARGS((
1019 EXTERN S16 cmPkRguDDatReqInfo ARGS((
1020 RguDDatReqInfo *param,
1023 EXTERN S16 cmUnpkRguDDatReqInfo ARGS((
1024 RguDDatReqInfo *param,
1027 EXTERN S16 cmUnpkRguDatReqTb ARGS((
1032 EXTERN S16 cmPkRguCDatIndInfo ARGS((
1033 RguCDatIndInfo *param,
1036 EXTERN S16 cmUnpkRguCDatIndInfo ARGS((
1037 RguCDatIndInfo *param,
1040 EXTERN S16 cmPkRguLchDatInd ARGS((
1041 RguLchDatInd *param,
1044 EXTERN S16 cmUnpkRguLchDatInd ARGS((
1045 RguLchDatInd *param,
1048 EXTERN S16 packRlcMacDataInfo ARGS((
1052 EXTERN S16 unpackRlcMacDataInfo ARGS((
1057 EXTERN S16 cmPkRguCStaRspInfo ARGS((
1058 RguCStaRspInfo *param,
1061 EXTERN S16 cmUnpkRguCStaRspInfo ARGS((
1062 RguCStaRspInfo *param,
1065 EXTERN S16 packBOStatusInfo ARGS((
1066 RlcMacBOStatus *param,
1069 EXTERN S16 unpackBOStatusInfo ARGS((
1070 RlcMacBOStatus *param,
1073 EXTERN S16 cmPkRguCStaIndInfo ARGS((
1074 RguCStaIndInfo *param,
1077 EXTERN S16 cmUnpkRguCStaIndInfo ARGS((
1078 RguCStaIndInfo *param,
1081 EXTERN S16 cmPkRguLchStaInd ARGS((
1082 RguLchStaInd *param,
1085 EXTERN S16 cmUnpkRguLchStaInd ARGS((
1086 RguLchStaInd *param,
1089 EXTERN S16 packSchedRepInfo ARGS((
1090 RlcMacSchedRep *param,
1093 EXTERN S16 unpackSchedRepInfo ARGS((
1094 RlcMacSchedRep *param,
1098 /*rgu_x_001.main_3 - ADD - L2M & R9 Support */
1100 /** @brief Request from MAC to RLC for forwarding HARQ Status */
1102 EXTERN S16 cmPkRguHqStaInd ARGS((
1105 RguHarqStatusInd *harqStatusInd));
1107 /** @brief Request from MAC to RLC forwarding HARQ status */
1108 EXTERN S16 cmUnpkRguHqStaInd ARGS((
1114 /** @brief Primitive invoked from RLC to MAC to
1115 * * inform the On/Off Status of LC Id*/
1116 EXTERN S16 cmPkRguL2MUlThrpMeasReq ARGS((
1119 RguL2MUlThrpMeasReqInfo* measReq
1122 /** @brief Primitive invoked from RLC to MAC to
1123 * * inform the On/Off Status of LC Id*/
1124 EXTERN S16 cmUnpkRguL2MUlThrpMeasReq ARGS((
1125 RguL2MUlThrpMeasReq func,
1130 EXTERN S16 cmPkRguL2MUlThrpMeasReqInfo ARGS((
1131 RguL2MUlThrpMeasReqInfo *param,
1135 EXTERN S16 cmUnpkRguL2MUlThrpMeasReqInfo ARGS((
1136 RguL2MUlThrpMeasReqInfo *param,
1140 #endif /* LTE_L2_MEAS */
1141 EXTERN S16 cmUnpkRguFlowCntrlInd ARGS((
1142 RguFlowCntrlIndInfo func,
1147 EXTERN S16 cmPkRguFlowCntrlInd ARGS((
1150 RguFlowCntrlInd *flowCntrlInd
1157 #endif /* __RGUX__ */
1159 /********************************************************************30**
1162 **********************************************************************/