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 uint8_t *pduBuf; /*!< RLC PDU buffer */
435 typedef struct rlcMacData
437 CmLteCellId cellId; /*!< CELL ID */
438 CmLteRnti rnti; /*!< Temporary CRNTI */
439 SlotIndInfo slotInfo; /*!< Timing info */
440 U8 numPdu; /*!< 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 uint8_t (*RlcMacUlDataFunc) ARGS((
496 RlcMacData *ulData));
497 /** @brief Status Response from RLC to MAC to
498 * inform the BO report for common channels */
499 typedef S16 (*RguCStaRsp) ARGS((
502 RguCStaRspInfo * staRsp));
503 /** @brief Status Repsonse from RLC to MAC to
504 * inform the BO report for dedicated channels */
505 typedef S16 (*RguDStaRsp) ARGS((
508 RguDStaRspInfo * staRsp));
510 typedef uint16_t (*RlcMacBoStatus) ARGS((
513 RlcMacBOStatus *boStatus));
515 /** @brief Status Indication from MAC to RLC
516 * as a response to the staRsp primitive from RLC */
517 typedef S16 (*RguCStaInd) ARGS((
520 RguCStaIndInfo * staInd));
521 /** @brief Status Indication from MAC to RLC
522 * as a response to the staRsp primitive from RLC */
523 typedef S16 (*RguDStaInd) ARGS((
526 RguDStaIndInfo * staInd));
528 typedef uint16_t (*RlcMacSchedRep) ARGS((
531 RlcMacSchedRepInfo *schRep));
533 typedef S16 (*RguFlowCntrlIndInfo) ARGS((
536 RguFlowCntrlInd *flowCntrlInd));
538 /* rgu_x_001.main_3 - ADD - L2M & R9 Support */
540 /** @brief HARQ Status Indication from MAC to RLC
541 * as a response to Data Req primitive from RLC */
542 typedef S16 (*RguHqStaInd) ARGS((
545 RguHarqStatusInd *harqStatusInd));
546 /** @brief LCID measurement status from RLC to MAC
547 * so as to provide Timing Info in DDatInd */
548 typedef S16 (*RguL2MUlThrpMeasReq) ARGS((
551 RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq));
553 #endif /* LTE_L2_MEAS */
557 /** @brief Bind Request from RLC to MAC to bind the interface SAPs
558 * @param pst Pointer to the post structure.
559 * @param suId SAP ID of the service user.
560 * @param spId SAP ID of the service provider.
561 * @return ROK/RFAILED
563 EXTERN S16 RgUiRguBndReq ARGS((Pst* pst,SuId suId,SpId spId));
564 /** @brief Unbind Request from RLC to MAC to unbind the interface SAPs
565 * @param pst Pointer to the post structure.
566 * @param spId SAP ID of the service provider.
567 * @param reason Reason for unbind request.
568 * @return ROK/RFAILED
570 EXTERN S16 RgUiRguUbndReq ARGS((Pst* pst,SpId spId,Reason reason));
571 /** @brief Bind Confirmation from MAC to RLC for the bind and unbind
572 * request for the interface SAPs
573 * @param pst Pointer to the post structure.
574 * @param suId SAP ID of the service user.
575 * @param status Status of the bind request.
576 * @return ROK/RFAILED
578 EXTERN S16 RgUiRguBndCfm ARGS((Pst* pst,SuId suId,U8 status));
579 /** @brief Data Request from RLC to MAC for forwarding SDUs on common
580 * channel for transmission
581 * @param pst Pointer to the post structure.
582 * @param spId SAP ID of the service provider.
583 * @param datReq Data request for common channels (BCCH, PCCH and CCCH).
584 * @return ROK/RFAILED
586 EXTERN S16 RgUiRguCDatReq ARGS((Pst* pst,SpId spId,RguCDatReqInfo *datReq));
587 /** @brief Data Request from RLC to MAC for forwarding SDUs on
588 * dedicated channel for transmission
589 * @param pst Pointer to the post structure.
590 * @param spId SAP ID of the service provider.
591 * @param datReq Data request for dedicated channels (DCCH and DTCH).
592 * @return ROK/RFAILED
594 EXTERN S16 RgUiRguDDatReq ARGS((Pst* pst,SpId spId,RguDDatReqInfo *datReq));
596 EXTERN uint16_t MacRlcProcDlData(Pst* pst, SpId spId, RlcMacData *dlData);
598 /** @brief Data Indication from MAC to RLC to
599 * forward the data received for common channels
600 * @param pst Pointer to the post structure.
601 * @param suId SAP ID of the service user.
602 * @param datInd Data indication on CCCH.
603 * @return ROK/RFAILED
605 EXTERN S16 RgUiRguCDatInd ARGS((Pst* pst,SuId suId,RguCDatIndInfo *datInd));
606 /** @brief Data Indication from MAC to RLC to
607 * forward the data received for dedicated channels
608 * @param pst Pointer to the post structure.
609 * @param suId SAP ID of the service user.
610 * @param datInd Data indication on dedicated channels (DCCH and DTCH).
611 * @return ROK/RFAILED
613 EXTERN S16 RgUiRguDDatInd ARGS((Pst* pst,SuId suId,RguDDatIndInfo *datInd));
614 /** @brief Status Response from RLC to MAC to
615 * inform the BO report for common channels
616 * @param pst Pointer to the post structure.
617 * @param spId SAP ID of the service provider.
618 * @param staRsp Status response for common channels (BCCH, PCCH and CCCH).
619 * @return ROK/RFAILED
621 EXTERN S16 RgUiRguCStaRsp ARGS((Pst* pst,SpId spId,RguCStaRspInfo *staRsp));
622 /** @brief Status Response from RLC to MAC to
623 * inform the BO report for dedicated channels
624 * @param pst Pointer to the post structure.
625 * @param spId SAP ID of the service provider.
626 * @param staRsp Status response for dedicated channels (DCCH and DTCH).
627 * @return ROK/RFAILED
629 EXTERN S16 RgUiRguDStaRsp ARGS((Pst* pst,SpId spId,RguDStaRspInfo *staRsp));
631 EXTERN uint16_t MacRlcProcBOStatus(Pst* pst, SpId spId, RlcMacBOStatus* boStatus);
633 /** @brief Status Indication from MAC to RLC
634 * as a response to the staRsp primitive from RLC.
635 * @param pst Pointer to the post structure.
636 * @param suId SAP ID of the service user.
637 * @param staInd Status indication on common channels (BCCH, PCCH and CCCH).
638 * @return ROK/RFAILED
640 EXTERN S16 RgUiRguCStaInd ARGS((Pst* pst,SuId suId,RguCStaIndInfo *staInd));
641 /** @brief Status Indication from MAC to RLC
642 * as a response to the staRsp primitive from RLC.
643 * @param pst Pointer to the post structure.
644 * @param suId SAP ID of the service user.
645 * @param staInd Status indication on dedicated channels (DCCH and DTCH).
646 * @return ROK/RFAILED
648 EXTERN S16 RgUiRguDStaInd ARGS((Pst* pst,SuId suId,RguDStaIndInfo *staInd));
649 /** @brief flow control indication from MAC to RLC */
650 EXTERN S16 RgUiRguFlowCntrlInd ARGS((Pst *pst, SuId suId,
651 RguFlowCntrlInd *flowCntrlInd));
652 /*rgu_x_001.main_3 - ADD - L2M & R9 Support */
654 /** @brief HARQ Status Indication from MAC to RLC
655 * as a response to the Data Req from RLC.
656 * Informs HARQ feedback for the TB with sn mapping info. */
657 EXTERN S16 RgUiRguHqStaInd ARGS((Pst* pst,SuId suId,
658 RguHarqStatusInd *harqStatusInd));
662 /** @brief Request for measuring the timing Info for a LC from RLC to MAC
663 * When the status is ON then Timing Info for data bursts
664 * shall be captured and provided to RLC on DDatInd. */
665 EXTERN S16 RgUiRguL2MUlThrpMeasReq ARGS((Pst* pst,SpId spId,
666 RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq));
668 #endif /* LTE_L2_MEAS */
673 /** @brief Request from RLC to MAC to bind the interface saps */
674 EXTERN S16 KwLiRguBndReq ARGS((
679 /** @brief Request from RLC to MAC to Unbind the interface saps */
680 EXTERN S16 KwLiRguUbndReq ARGS((
685 /** @brief Confirmation from MAC to RLC for the bind/Unbind
686 * request for the interface saps */
687 EXTERN S16 KwLiRguBndCfm ARGS((
692 /** @brief Request from RLC to MAC for forwarding SDUs on common
693 * channel for transmission */
694 EXTERN S16 KwLiRguCDatReq ARGS((
697 RguCDatReqInfo * datReq
699 /** @brief Request from RLC to MAC for forwarding SDUs on
700 * dedicated channel for transmission */
701 EXTERN S16 RlcMacSendDlData ARGS((
707 /** @brief Handler toprocess UL data from MAC and
708 * forwarding to appropriate common/dedicated
709 * channel's handler */
710 EXTERN uint8_t RlcProcUlData ARGS((
715 /** @brief Data Indication from MAC to RLC to
716 * forward the data received for common channels*/
717 EXTERN S16 KwLiRguCDatInd ARGS((
720 RguCDatIndInfo * datInd
722 /** @brief Data Indication from MAC to RLC to
723 * forward the data received for dedicated channels*/
724 EXTERN S16 KwLiRguDDatInd ARGS((
727 RguDDatIndInfo * datInd
729 /** @brief Primitive invoked from RLC to MAC to
730 * inform the BO report for common channels*/
731 EXTERN S16 KwLiRguCStaRsp ARGS((
734 RguCStaRspInfo * staRsp
736 /** @brief Primitive invoked from RLC to MAC to
737 * inform the BO report for dedicated channels*/
738 EXTERN S16 RlcMacSendBOStatus ARGS((
741 RlcMacBOStatus* boSta
744 /**@brief Primitive invoked from MAC to RLC to
745 * inform scheduling result for logical channels */
746 EXTERN uint16_t RlcMacProcSchedRep ARGS((
749 RlcMacSchedRepInfo *schRep
751 /** @brief Status Indication from MAC to RLC
752 * as a response to the staRsp primitive from RLC.
753 * Informs RLC of the totalBufferSize and Timing Info
754 * for the transmission on common channels. */
755 EXTERN S16 KwLiRguCStaInd ARGS((
758 RguCStaIndInfo * staInd
760 /** @brief Status Indication from MAC to RLC
761 * as a response to the staRsp primitive from RLC.
762 * Informs RLC of the totalBufferSize and Timing Info
763 * for the transmission on dedicated channels. */
764 EXTERN S16 KwLiRguDStaInd ARGS((
767 RguDStaIndInfo * staInd
771 /** @brief HARQ Status Indication from MAC to RLC
772 * as a response to the Data Req from RLC.
773 * Informs HARQ feedback for the PDU with sn. */
774 EXTERN S16 KwLiRguHqStaInd ARGS((
777 RguHarqStatusInd *harqStatusInd));
780 /** @brief Request for measuring the timing Info for a LC from RLC to MAC
781 * When the status is ON then Timing Info for data bursts
782 * shall be captured and provided to RLC on DDatInd. */
783 EXTERN S16 KwLiRguL2MUlThrpMeasReq ARGS((
786 RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq));
788 #endif /* LTE_L2_MEAS */
790 /** @brief flowCntrl Indication from MAC to RLC */
791 EXTERN S16 KwLiRguFlowCntrlInd ARGS((
794 RguFlowCntrlInd *flowCntrlInd
799 /** @brief Request from RLC to MAC to bind the interface saps */
800 EXTERN S16 cmPkRguBndReq ARGS((
805 /** @brief Request from RLC to MAC to bind the interface saps */
806 EXTERN S16 cmUnpkRguBndReq ARGS((
811 /** @brief Request from RLC to MAC to Unbind the interface saps */
812 EXTERN S16 cmPkRguUbndReq ARGS((
817 /** @brief Request from RLC to MAC to Unbind the interface saps */
818 EXTERN S16 cmUnpkRguUbndReq ARGS((
823 /** @brief Confirmation from MAC to RLC for the bind/Unbind
824 * request for the interface saps */
825 EXTERN S16 cmPkRguBndCfm ARGS((
830 /** @brief Confirmation from MAC to RLC for the bind/Unbind
831 * request for the interface saps */
832 EXTERN S16 cmUnpkRguBndCfm ARGS((
837 /** @brief Request from RLC to MAC for forwarding SDUs on common
838 * channel for transmission */
839 EXTERN S16 cmPkRguCDatReq ARGS((
842 RguCDatReqInfo * datReq
844 /** @brief Request from RLC to MAC for forwarding SDUs on common
845 * channel for transmission */
846 EXTERN S16 cmUnpkRguCDatReq ARGS((
851 /** @brief Request from RLC to MAC for forwarding SDUs on
852 * dedicated channel for transmission */
853 EXTERN uint16_t packDlData ARGS((
858 /** @brief Request from RLC to MAC for forwarding SDUs on
859 * dedicated channel for transmission */
860 EXTERN S16 unpackDlData ARGS((
865 /** @brief Data Indication from MAC to RLC to
866 * forward the data received for common channels*/
867 EXTERN S16 cmPkRguCDatInd ARGS((
870 RguCDatIndInfo * datInd
872 /** @brief Data Indication from MAC to RLC to
873 * forward the data received for common channels*/
874 EXTERN S16 cmUnpkRguCDatInd ARGS((
879 /** @brief Data Indication from MAC to RLC to
880 * forward the data received for dedicated channels*/
881 EXTERN uint8_t packRlcUlData ARGS((
885 /** @brief Data Indication from MAC to RLC to
886 * forward the data received for dedicated channels*/
887 EXTERN uint8_t unpackRcvdUlData ARGS((
888 RlcMacUlDataFunc func,
892 /** @brief Primitive invoked from RLC to MAC to
893 * inform the BO report for common channels*/
894 EXTERN S16 cmPkRguCStaRsp ARGS((
897 RguCStaRspInfo * staRsp
899 /** @brief Primitive invoked from RLC to MAC to
900 * inform the BO report for common channels*/
901 EXTERN S16 cmUnpkRguCStaRsp ARGS((
906 /** @brief Primitive invoked from RLC to MAC to
907 * inform the BO report for dedicated channels*/
908 EXTERN uint16_t packBOStatus ARGS((
911 RlcMacBOStatus* boStatus
913 /** @brief Primitive invoked from RLC to MAC to
914 * inform the BO report for dedicated channels*/
915 EXTERN uint16_t unpackBOStatus ARGS((
920 /** @brief Status Indication from MAC to RLC
921 * as a response to the staRsp primitive from RLC.
922 * Informs RLC of the totalBufferSize and Timing Info
923 * for the transmission on common channels. */
924 EXTERN S16 cmPkRguCStaInd ARGS((
927 RguCStaIndInfo * staInd
929 /** @brief Status Indication from MAC to RLC
930 * as a response to the staRsp primitive from RLC.
931 * Informs RLC of the totalBufferSize and Timing Info
932 * for the transmission on common channels. */
933 EXTERN S16 cmUnpkRguCStaInd ARGS((
938 /** @brief Status Indication from MAC to RLC
939 * as a response to the staRsp primitive from RLC.
940 * Informs RLC of the totalBufferSize and Timing Info
941 * for the transmission on dedicated channels. */
942 EXTERN S16 packSchedRep ARGS((
945 RlcMacSchedRepInfo *staInd
947 EXTERN S16 cmPkRguFlowCntrlInfo ARGS((
948 RguFlowCntrlInd *param,
951 EXTERN S16 cmPkRguUeFlowCntrlInfo ARGS((
952 RguUeFlowCntrlInfo *param,
955 EXTERN S16 cmPkRguLcFlowCntrlInfo ARGS((
956 RguLcFlowCntrlInfo *param,
959 EXTERN S16 cmUnpkRguLcFlowCntrlInfo ARGS((
960 RguLcFlowCntrlInfo *param,
963 EXTERN S16 cmUnpkRguUeFlowCntrlInfo ARGS((
964 RguUeFlowCntrlInfo *param,
967 EXTERN S16 cmUnpkRguFlowCntrlInfo ARGS((
968 RguFlowCntrlInd *param,
971 /** @brief Status Indication from MAC to RLC
972 * as a response to the staRsp primitive from RLC.
973 * Informs RLC of the totalBufferSize and Timing Info
974 * for the transmission on dedicated channels. */
975 EXTERN S16 unpackSchedRep ARGS((
980 EXTERN S16 cmPkRguPduInfo ARGS((
984 EXTERN S16 cmUnpkRguPduInfo ARGS((
988 EXTERN S16 cmPkRguDBoReport ARGS((
992 EXTERN S16 cmUnpkRguDBoReport ARGS((
997 EXTERN S16 cmPkRguCDatReqInfo ARGS((
998 RguCDatReqInfo *param,
1001 EXTERN S16 cmUnpkRguCDatReqInfo ARGS((
1002 RguCDatReqInfo *param,
1005 EXTERN S16 cmPkRguLchDatReq ARGS((
1006 RguLchDatReq *param,
1009 EXTERN S16 cmUnpkRguLchDatReq ARGS((
1010 RguLchDatReq *param,
1013 EXTERN S16 cmPkRguDatReqTb ARGS((
1017 EXTERN S16 cmPkRguStaIndTb ARGS((
1021 EXTERN S16 cmUnpkRguStaIndTb ARGS((
1025 /* rgu_x_001.main_3 - ADD - L2M Support */
1027 EXTERN S16 cmPkRguDDatReqInfo ARGS((
1029 RguDDatReqInfo *param,
1032 EXTERN S16 cmUnpkRguDDatReqInfo ARGS((
1034 RguDDatReqInfo *param,
1037 EXTERN S16 cmUnpkRguDatReqTb ARGS((
1043 EXTERN S16 cmPkRguDDatReqInfo ARGS((
1044 RguDDatReqInfo *param,
1047 EXTERN S16 cmUnpkRguDDatReqInfo ARGS((
1048 RguDDatReqInfo *param,
1051 EXTERN S16 cmUnpkRguDatReqTb ARGS((
1056 EXTERN S16 cmPkRguCDatIndInfo ARGS((
1057 RguCDatIndInfo *param,
1060 EXTERN S16 cmUnpkRguCDatIndInfo ARGS((
1061 RguCDatIndInfo *param,
1064 EXTERN S16 cmPkRguLchDatInd ARGS((
1065 RguLchDatInd *param,
1068 EXTERN S16 cmUnpkRguLchDatInd ARGS((
1069 RguLchDatInd *param,
1072 EXTERN S16 packRlcMacDataInfo ARGS((
1076 EXTERN S16 unpackRlcMacDataInfo ARGS((
1081 EXTERN S16 cmPkRguCStaRspInfo ARGS((
1082 RguCStaRspInfo *param,
1085 EXTERN S16 cmUnpkRguCStaRspInfo ARGS((
1086 RguCStaRspInfo *param,
1089 EXTERN S16 packBOStatusInfo ARGS((
1090 RlcMacBOStatus *param,
1093 EXTERN S16 unpackBOStatusInfo ARGS((
1094 RlcMacBOStatus *param,
1097 EXTERN S16 cmPkRguCStaIndInfo ARGS((
1098 RguCStaIndInfo *param,
1101 EXTERN S16 cmUnpkRguCStaIndInfo ARGS((
1102 RguCStaIndInfo *param,
1105 EXTERN S16 cmPkRguLchStaInd ARGS((
1106 RguLchStaInd *param,
1109 EXTERN S16 cmUnpkRguLchStaInd ARGS((
1110 RguLchStaInd *param,
1113 EXTERN S16 packSchedRepInfo ARGS((
1114 RlcMacSchedRepInfo *param,
1117 EXTERN S16 unpackSchedRepInfo ARGS((
1118 RlcMacSchedRepInfo *param,
1122 /*rgu_x_001.main_3 - ADD - L2M & R9 Support */
1124 /** @brief Request from MAC to RLC for forwarding HARQ Status */
1126 EXTERN S16 cmPkRguHqStaInd ARGS((
1129 RguHarqStatusInd *harqStatusInd));
1131 /** @brief Request from MAC to RLC forwarding HARQ status */
1132 EXTERN S16 cmUnpkRguHqStaInd ARGS((
1138 /** @brief Primitive invoked from RLC to MAC to
1139 * * inform the On/Off Status of LC Id*/
1140 EXTERN S16 cmPkRguL2MUlThrpMeasReq ARGS((
1143 RguL2MUlThrpMeasReqInfo* measReq
1146 /** @brief Primitive invoked from RLC to MAC to
1147 * * inform the On/Off Status of LC Id*/
1148 EXTERN S16 cmUnpkRguL2MUlThrpMeasReq ARGS((
1149 RguL2MUlThrpMeasReq func,
1154 EXTERN S16 cmPkRguL2MUlThrpMeasReqInfo ARGS((
1155 RguL2MUlThrpMeasReqInfo *param,
1159 EXTERN S16 cmUnpkRguL2MUlThrpMeasReqInfo ARGS((
1160 RguL2MUlThrpMeasReqInfo *param,
1164 #endif /* LTE_L2_MEAS */
1165 EXTERN S16 cmUnpkRguFlowCntrlInd ARGS((
1166 RguFlowCntrlIndInfo func,
1171 EXTERN S16 cmPkRguFlowCntrlInd ARGS((
1174 RguFlowCntrlInd *flowCntrlInd
1181 #endif /* __RGUX__ */
1183 /********************************************************************30**
1186 **********************************************************************/