[Epic-ID: ODUHIGH-461][Task-ID: ODUHIGH-468]Unused files and functions removed/disabled
[o-du/l2.git] / src / cm / rgu.x
1 /*******************************************************************************
2 ################################################################################
3 #   Copyright (c) [2017-2019] [Radisys]                                        #
4 #                                                                              #
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                                    #
8 #                                                                              #
9 #       http://www.apache.org/licenses/LICENSE-2.0                             #
10 #                                                                              #
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 *******************************************************************************/
18
19 /**********************************************************************
20      Name:    Upper Layer Interface
21
22      Type:    C header file
23
24      Desc:    Structures, variables and typedefs required by 
25               RGU interface
26
27      File:    rgu.x
28
29 *********************************************************************21*/
30
31 \f
32 #ifndef __RGUX__
33 #define __RGUX__
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38 /** 
39   @file rgu.x 
40   @brief Structure declarations and definitions for RGU interface.
41  */
42
43 /***********************************************************************
44                           typedefs and data structures
45  ***********************************************************************/
46
47 /**
48  * @brief PDU information given on a logical channel.
49  */
50 typedef struct rguPduInfo
51 {
52    uint8_t     numPdu;                 /*!< Number of PDUs */ 
53    Buffer *mBuf[RGU_MAX_PDU];     /*!< numPdu data buffers */
54 } RguPduInfo;
55
56
57 /**
58  * @brief Buffer Occupancy Report for dedicated logical channel.
59  */
60 typedef struct rguDBoReport
61 {
62    S32  bo;                /*!< Buffer occupancy reported by RLC */
63 #ifdef CCPU_OPT
64    uint16_t  estRlcHdrSz;       /*!< Estimated RLC header size */
65    Bool staPduPrsnt;       /*!< Indicates whether the BO includes
66                                 a status PDU as well */
67 #endif
68    uint32_t  staPduBo;          /*!< Indicates the Status PDU BO. 
69                                 This is included in bo */
70    uint32_t  oldestSduArrTime;
71 } RguDBoReport;
72
73 /**
74  * @brief DatReq from RLC to MAC for Common Channels (BCCH, PCCH and CCCH).
75  */
76 typedef struct rguCDatReqInfo
77 {
78    CmLteCellId     cellId;          /*!< CELL ID */
79    CmLteLcId       lcId;            /*!< Logical channel ID */
80    CmLteLcType     lcType;          /*!< Logical channel Type */
81    uint32_t             transId;         /*!< Transaction ID */
82 #ifdef EMTC_ENABLE
83    uint8_t              pnb;            /*Paging narrowBand on which UE performs Paging*/
84 #endif
85    union{
86    CmLteTimingInfo timeToTx;        /*!< Actual time when PHY transmits
87                                          this, applicable to BCCH and PCCH only */
88    CmLteRnti rnti;                  /*!< Temporary CRNTI:Applicable for CCCH. */
89    }u;
90    Buffer          *pdu;            /*!< PDU to be transmitted */
91 } RguCDatReqInfo;
92 /**
93  * @brief DatReq Information of a logical channel.
94  */
95 typedef struct rguLchDatReq
96 {
97    CmLteLcId    lcId;                /*!< Logical channel ID */
98    RguDBoReport boReport;            /*!< BO for the logical channel */
99    RguPduInfo   pdu;                 /*!< PDU to be transmitted*/
100    Bool         setMaxUlPrio;
101 #ifdef L2_OPTMZ
102    Bool         freeBuff;            /*!< TRUE if Buffer is to be freed by MAC
103                                           It is set for UM bearer*/
104 #endif
105 } RguLchDatReq;
106
107 /*rgu_x_001.main_3 - ADD - L2M Support */
108 #ifdef LTE_L2_MEAS
109 /**
110  * @brief Structure to store logical channels to SN mapping */
111 typedef struct rguLchmapInfo
112 {
113    CmLteLcId lChId;                  /*!< Logical channel Id */
114    uint16_t       snList[RGU_MAX_LC];     /*!< Set of sequence numbers */
115 }RguLchMapInfo;
116 /**
117  * @brief Sequence Number mapping info per TB 
118  * */
119 typedef struct rguSnMapInfo
120 {
121    uint32_t            tbId;               /*!< TB id for which sn info map */
122    uint8_t             numLch;             /*!< Number of Ded Logical Channels */
123    RguLchMapInfo  lchMap[RGU_MAX_LC]; /*!< LC to SN Mapping Info*/
124 } RguSnMapInfo;
125
126 /*
127  *  @brief Structure to hold harq status Indication to RLC
128  *  */
129 typedef struct rguHarqStatusInd
130 {
131    CmLteCellId   cellId;                    /*!< Cell Id*/
132    CmLteRnti     ueId;                      /*!< ue Id*/
133    uint8_t            numTbs;                    /*!< Number of Tbs present */
134  
135    uint32_t           tbId[RGU_MAX_TB];          /*!< tbId provided by RLC in
136                                                  DatReq  */                                                                                 
137    uint16_t           status[RGU_MAX_TB];        /*!< Status back to RLC ACK/NACK*/
138 } RguHarqStatusInd;
139
140 /*
141  *  @brief Structure to hold rguHarqStatusInd and pst structure
142  *  */
143 typedef struct rguHarqStaInd
144 {
145     RguHarqStatusInd  hqStatusInd;            
146     Pst               pst;
147 } RguHarqStaInd;
148
149 /*
150  *  @brief UL Throughput Measurement Request from RLC to MAC regarding configuration
151  *  of an LC for a particular UE to provide Timing Info.
152  *  */
153 typedef struct rguL2MUlThrpMeasReqInfo
154 {
155    CmLteCellId   cellId;                    /*!< Cell Id*/
156    CmLteRnti     rnti;                      /*!< UE Id*/
157    uint8_t            numLcId;                   /*!< Number of LC Ids configured */
158    uint8_t            lcId[RGU_MAX_LC];          /*!< LC ID indices that are 
159                                               configured */
160    Bool          enbMeas;                   /*!< Indication to enable/disable 
161                                                measurement for the LC ID*/
162 } RguL2MUlThrpMeasReqInfo;
163
164 #endif /* LTE_L2_MEAS */
165 /**
166  * @brief DatReq info for each TB of a UE.
167  */
168 typedef struct rguDatReqTb
169 {
170    uint8_t           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 */
175 #ifdef LTE_L2_MEAS
176    uint32_t          tbId;                /*!< RLC's internal tbId maintained
177                                           per UE */  
178 #endif /* LTE_L2_MEAS */
179 }RguDatReqTb;
180
181 /**
182  * @brief DatReq from RLC to MAC for dedicated channels of an UE.
183  */
184 typedef struct rguDDatReqPerUe
185 {
186    CmLteRnti     rnti;         /*!< UE ID */
187    uint32_t           transId;      /*!< Transaction ID */
188    uint8_t            nmbOfTbs;     /*!< Number of TBs. Relevant for MIMO */
189    RguDatReqTb   datReqTb[2];  /*!< DatReq info for MAX 2 TBs */ 
190 } RguDDatReqPerUe;
191
192 /**
193  * @brief DatReq from RLC to MAC for dedicated channels of all UEs in a TTI.
194  */
195 typedef struct rguDDatReqInfo
196 {
197    CmLteCellId        cellId;                        /*!< CELL ID */
198    uint8_t                 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 */ 
200 } RguDDatReqInfo;
201
202 /**
203  * @brief DatInd from MAC to RLC on CCCH.
204  */
205 typedef struct rguCDatIndInfo
206 {
207    CmLteCellId cellId;               /*!< Cell ID */
208    CmLteRnti   rnti;                 /*!< RNTI */
209    CmLteLcId   lcId;                 /*!< Logical channel instance */
210    Buffer      *pdu;                 /*!< PDU received always one */
211 } RguCDatIndInfo;
212
213 #ifdef MAC_RLC_UL_RBUF
214 typedef struct rguDedDatInd1
215 {
216    Void *msg;
217 }RguDedDatInd1;
218 #endif 
219
220 /* rgu_x_001.main_3 - ADD - L2M & R9 Support */
221 #ifdef LTE_L2_MEAS
222
223 /** 
224  *  * Segment Indication ID from MAC to RLC */
225 typedef enum rguL2MUlThrpSegInd
226 {
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 */
231 }RguL2MUlThrpSegInd;
232
233 /**
234  * @brief Scheduled IP Throughput Timing Info from MAC to RLC.
235  */
236 typedef struct rgL2MeasUlThrpTimInfo 
237 {
238    uint32_t                 thrpTimeUl;      /*!< Difference in Timing values T1, T2 */
239    RguL2MUlThrpSegInd  firstLastSegInd;         /*!< Indication of Data Burst */
240 }RgL2MeasUlThrpTimInfo;
241
242 #endif
243 /**
244  * @brief DatInd Information for a logical channel.
245  */
246 typedef struct rguLchDatInd
247 {
248    CmLteLcId    lcId;                /*!< Logical channel instance */
249    RguPduInfo   pdu;                 /*!< PDU received */
250    /* rgu_x_001.main_3 - ADD - L2M & R9 Support */
251 }RguLchDatInd;
252
253 /**
254  * @brief Data Indication from MAC to RLC for dedicated channels of an UE.
255  */
256 typedef struct rguDDatIndInfo
257 {
258    CmLteCellId  cellId;              /*!< CELL ID */
259    CmLteRnti    rnti;                /*!< UE ID */
260    uint8_t           numLch;              /*!< Number of logical channels within
261                                        the UE that has data */
262    RguLchDatInd lchData[MAX_NUM_LC]; /*!< Data buffers of logical channels */
263 #ifdef LTE_L2_MEAS
264    uint32_t          ttiCnt;              /*!< The Current TTI in the Cell */
265    uint8_t           burstInd;            /*!< Indicates the Burst Start or End */
266 #endif
267 } RguDDatIndInfo;
268
269 /**
270  * @brief Status Response from RLC to MAC  for common logical channel.
271  */
272 typedef struct rguCStaRspInfo
273 {
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 */
278 #ifdef EMTC_ENABLE
279    uint8_t          emtcDiReason;   /*!< Reason for DI message to send. */
280    uint8_t          pnb;            /*paging narrowBand on which UE will perform paging*/
281 #endif
282    union                        /*!< lcType in the primitive is 
283                                      the union selector */
284    {
285       CmLteTimingInfo timeToTx; /*!< Timing info for the BO, applicable for
286                                    BCCH and PCCH */
287       CmLteRnti       rnti;     /*!< Temporary CRNTI, only for CCCH */
288    } u;
289 } RguCStaRspInfo;
290
291 /**
292  * @brief Status Response from RLC to MAC  for dedicated logical channel.
293  */
294 typedef struct rguDStaRspInfo
295 {
296    Pst          post; 
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 */
301 } RguDStaRspInfo;
302
303 /**
304  * @brief Status Indication from MAC to RLC for common logical channel.
305  */
306 typedef struct rguCStaIndInfo
307 {
308    CmLteCellId cellId;       /*!< CELL ID */
309    CmLteLcId   lcId;         /*!< Logical channel ID */
310    uint32_t         transId;      /*!< Transaction ID */
311    CmLteRnti   rnti;         /*!< Temporary CRNTI */
312 #ifdef EMTC_ENABLE
313    Bool                isEmtcPaging;      /*!< To Identify whether Paging is EMTC or Lagecy */
314    CmLteTimingInfo     pagingTimingInfo; /*!< paging TimingInfo information */
315 #endif
316 } RguCStaIndInfo;
317
318 /**
319  * @brief StaInd info for each logical channel of an UE.
320  */
321 typedef struct rguLchStaInd
322 {
323    CmLteLcId   lcId;         /*!< Logical channel ID */
324    S16         totBufSize;  /*!< Total buffer size in bytes 
325                                 scheduled by MAC */
326 } RguLchStaInd;
327
328 /**
329  * @brief StaInd info for each TB of a UE.
330  */
331 typedef struct rguStaIndTb
332 {
333    uint8_t           nmbLch;               /*!< Number of logical channels scheduled
334                                            for this TB */
335    RguLchStaInd lchStaInd[RGU_MAX_LC];/*!< Buffer size allocated for scheduled 
336                                            logical channels for this TB */
337 #ifdef LTE_L2_MEAS
338    uint32_t          tbId;                /*!< RLC internal TB id */                                           
339    uint16_t          status;              /*!< Status back to RLC ACK/NACK/RGU_NACK_LOSS */
340 #endif
341 }RguStaIndTb;
342 /**
343  * @brief StaInd from MAC to RLC for dedicated logical channels of an UE.
344  */
345 typedef struct rguDStaIndPerUe
346 {
347    CmLteRnti     rnti;        /*!< UE ID */
348    uint32_t           transId;     /*!< Transaction ID */
349    uint8_t            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 */
352 } RguDStaIndPerUe;
353
354 /**
355  * @brief StaInd from MAC to RLC for dedicated logical channels of all UEs Per TTI.
356  */
357 typedef struct rguDStaIndInfo
358 {
359    CmLteCellId      cellId;                       /*!< CELL ID */
360    uint8_t               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 */
362 } RguDStaIndInfo;
363
364 /**
365  * @brief flowCntrl info per LC.
366  */
367 typedef struct rguLcFlowCntrlInfo
368 {
369   CmLteLcId   lcId; 
370   uint32_t         pktAdmitCnt; 
371   uint32_t         maxBo4FlowCtrl; /*!< MAX BO of Queued SDUs at RLC beyond which Flow is Controlled */
372 }RguLcFlowCntrlInfo;
373
374 /**
375  * @brief flowCntrl info per UE.
376  */
377 typedef struct rguUeFlowCntrlInfo 
378 {
379   CmLteRnti            ueId;
380   uint32_t                  numLcs;
381   RguLcFlowCntrlInfo   lcInfo[RGU_MAX_LC];
382 }RguUeFlowCntrlInfo;  
383
384 /**
385  * @brief flowCntrlInd from MAC to RLC for dedicated logical channels of all UEs Per TTI.
386  */
387 typedef struct rguFlowCntrlInd
388 {
389    CmLteCellId         cellId;                       /*!< CELL ID */
390    uint32_t                 numUes;
391    RguUeFlowCntrlInfo  ueFlowCntrlInfo[RGU_MAX_NUM_UE_PER_TTI];
392 }RguFlowCntrlInd;  
393 typedef struct rguInfoRingElem 
394 {
395   SpId         spId;
396   uint8_t           event;
397   Void         *msg;
398 }RguInfoRingElem;
399
400 /***********************************************************************
401           type definitions for upper layer interface - RLC primitives
402  ***********************************************************************/
403 /** @brief Bind Request from RLC to MAC to bind the interface SAPs */
404 typedef S16 (*RguBndReq) ARGS((
405    Pst*                 pst,
406    SuId                 suId,
407    SpId                 spId));
408 /** @brief Unbind Request from RLC to MAC to unbind the interface SAPs */
409 typedef S16 (*RguUbndReq) ARGS((
410    Pst*                 pst,
411    SpId                 spId,
412    Reason               reason));
413 /** @brief Bind Confirmation from MAC to RLC for the bind/unbind 
414  * request for the interface SAPs */
415 typedef S16 (*RguBndCfm) ARGS((
416    Pst*                 pst,
417    SuId                 suId,
418    uint8_t                   status));
419 /** @brief Data Request from RLC to MAC for forwarding SDUs on common
420  * channel for transmission */
421 typedef S16 (*RguCDatReq) ARGS((
422    Pst*                 pst,
423    SpId                 spId,
424    RguCDatReqInfo  *    datReq));
425 /** @brief Data Request from RLC to MAC for forwarding SDUs on 
426  * dedicated channel for transmission */
427 typedef S16 (*RguDDatReq) ARGS((
428    Pst*                 pst,
429    SpId                 spId,
430    RguDDatReqInfo       *datReq));
431
432 /** @brief Data Indication from MAC to RLC to 
433  * forward the data received for common channels */
434 typedef S16 (*RguCDatInd) ARGS((
435    Pst*                 pst,
436    SuId                 suId,
437    RguCDatIndInfo  *    datInd));
438 /** @brief Data Indication from MAC to RLC to 
439  * forward the data received for dedicated channels */
440 typedef S16 (*RguDDatInd) ARGS((
441    Pst*                 pst,
442    SuId                 suId,
443    RguDDatIndInfo       *datInd));
444
445 /** @brief Status Response from RLC to MAC to 
446  * inform the BO report for common channels */
447 typedef S16 (*RguCStaRsp) ARGS((
448    Pst*                 pst,
449    SpId                 spId,
450    RguCStaRspInfo  *    staRsp));
451 /** @brief Status Repsonse from RLC to MAC to 
452  * inform the BO report for dedicated channels */
453 typedef S16 (*RguDStaRsp) ARGS((
454    Pst*                 pst,
455    SpId                 spId,
456    RguDStaRspInfo  *    staRsp));
457
458 /** @brief Status Indication from MAC to RLC  
459  * as a response to the staRsp primitive from RLC */
460 typedef S16 (*RguCStaInd) ARGS((
461    Pst*                 pst,
462    SuId                 suId,
463    RguCStaIndInfo  *    staInd));
464 /** @brief Status Indication from MAC to RLC  
465  * as a response to the staRsp primitive from RLC */
466 typedef S16 (*RguDStaInd) ARGS((
467    Pst*                 pst,
468    SuId                 suId,
469    RguDStaIndInfo *    staInd));
470
471 typedef S16 (*RguFlowCntrlIndInfo) ARGS((
472    Pst                  *pst,
473    SuId                 suId,
474    RguFlowCntrlInd      *flowCntrlInd));
475
476 /* rgu_x_001.main_3 - ADD - L2M & R9 Support */
477 #ifdef LTE_L2_MEAS
478 /** @brief HARQ Status Indication from MAC to RLC  
479  * as a response to Data Req primitive from RLC */
480 typedef S16 (*RguHqStaInd) ARGS((
481    Pst*                 pst,
482    SuId                 suId,
483    RguHarqStatusInd     *harqStatusInd));
484 /** @brief LCID measurement status from RLC to MAC  
485  * so as to provide Timing Info in DDatInd */
486 typedef S16 (*RguL2MUlThrpMeasReq) ARGS((
487    Pst*                 pst,
488    SpId                 spId,
489    RguL2MUlThrpMeasReqInfo  *l2mUlThrpMeasReq));
490
491 #endif /* LTE_L2_MEAS */
492
493
494 #ifdef RG
495 /** @brief Bind Request from RLC to MAC to bind the interface SAPs
496  * @param pst Pointer to the post structure.
497  * @param suId SAP ID of the service user.
498  * @param spId SAP ID of the service provider.
499  * @return ROK/RFAILED
500 */
501 S16 RgUiRguBndReq ARGS((Pst* pst,SuId suId,SpId spId));
502 /** @brief Unbind Request from RLC to MAC to unbind the interface SAPs 
503  * @param pst Pointer to the post structure.
504  * @param spId SAP ID of the service provider.
505  * @param reason Reason for unbind request.
506  * @return ROK/RFAILED
507 */
508 S16 RgUiRguUbndReq ARGS((Pst* pst,SpId spId,Reason reason));
509 /** @brief Bind Confirmation from MAC to RLC for the bind and unbind 
510  * request for the interface SAPs 
511  * @param pst Pointer to the post structure.
512  * @param suId SAP ID of the service user.
513  * @param status Status of the bind request. 
514  * @return ROK/RFAILED
515 */
516 S16 RgUiRguBndCfm ARGS((Pst* pst,SuId suId,uint8_t status));
517
518 /** @brief Data Indication from MAC to RLC to 
519  * forward the data received for common channels
520  * @param pst Pointer to the post structure.
521  * @param suId SAP ID of the service user.
522  * @param datInd Data indication on CCCH.
523  * @return ROK/RFAILED
524 */
525 S16 RgUiRguCDatInd ARGS((Pst* pst,SuId suId,RguCDatIndInfo  *datInd));
526 /** @brief Data Indication from MAC to RLC to 
527  * forward the data received for dedicated channels
528  * @param pst Pointer to the post structure.
529  * @param suId SAP ID of the service user.
530  * @param datInd Data indication on dedicated channels (DCCH and DTCH).
531  * @return ROK/RFAILED
532 */
533 S16 RgUiRguDDatInd ARGS((Pst* pst,SuId suId,RguDDatIndInfo  *datInd));
534
535 /** @brief Status Indication from MAC to RLC  
536  * as a response to the staRsp primitive from RLC.
537  * @param pst Pointer to the post structure.
538  * @param suId SAP ID of the service user.
539  * @param staInd Status indication on common channels (BCCH, PCCH and CCCH).
540  * @return ROK/RFAILED
541 */
542 S16 RgUiRguCStaInd ARGS((Pst* pst,SuId suId,RguCStaIndInfo  *staInd));
543 /** @brief Status Indication from MAC to RLC  
544  * as a response to the staRsp primitive from RLC.
545  * @param pst Pointer to the post structure.
546  * @param suId SAP ID of the service user.
547  * @param staInd Status indication on dedicated channels (DCCH and DTCH).
548  * @return ROK/RFAILED
549 */
550 S16 RgUiRguDStaInd ARGS((Pst* pst,SuId suId,RguDStaIndInfo  *staInd));
551 /** @brief flow control indication from MAC to RLC */  
552 S16 RgUiRguFlowCntrlInd ARGS((Pst *pst, SuId suId, 
553 RguFlowCntrlInd *flowCntrlInd)); 
554 /*rgu_x_001.main_3 - ADD - L2M & R9 Support */
555 #ifdef LTE_L2_MEAS
556 /** @brief HARQ Status Indication from MAC to RLC  
557  * as a response to the Data Req from RLC.
558  * Informs HARQ feedback for the TB with sn mapping info. */
559 S16 RgUiRguHqStaInd ARGS((Pst* pst,SuId suId,
560 RguHarqStatusInd *harqStatusInd));
561
562
563
564 /** @brief Request for measuring the timing Info for a LC from RLC to MAC  
565  * When the status is ON then Timing Info for data bursts 
566  * shall be captured and provided to RLC on DDatInd. */
567 S16 RgUiRguL2MUlThrpMeasReq ARGS((Pst* pst,SpId spId,
568 RguL2MUlThrpMeasReqInfo  *l2mUlThrpMeasReq));
569
570 #endif /* LTE_L2_MEAS */
571
572 #endif
573
574 #ifdef KW
575 /** @brief Request from RLC to MAC to bind the interface saps */
576 S16 RlcLiRguBndReq ARGS((
577    Pst*                 pst,
578    SuId                 suId,
579    SpId                 spId
580 ));
581 /** @brief Request from RLC to MAC to Unbind the interface saps */
582 S16 RlcLiRguUbndReq ARGS((
583    Pst*                 pst,
584    SpId                 spId,
585    Reason               reason
586 ));
587 /** @brief Confirmation from MAC to RLC for the bind/Unbind 
588  * request for the interface saps */
589 S16 RlcLiRguBndCfm ARGS((
590    Pst*                 pst,
591    SuId                 suId,
592    uint8_t                   status
593 ));
594 /** @brief Request from RLC to MAC for forwarding SDUs on common
595  * channel for transmission */
596 S16 RlcLiRguCDatReq ARGS((
597    Pst*                 pst,
598    SpId                 spId,
599    RguCDatReqInfo  *    datReq
600 ));
601
602 /** @brief Primitive invoked from RLC to MAC to 
603  * inform the BO report for common channels*/
604 S16 RlcLiRguCStaRsp ARGS((
605    Pst*                 pst,
606    SpId                 spId,
607    RguCStaRspInfo  *    staRsp
608 ));
609
610 #ifdef LTE_L2_MEAS
611 /** @brief HARQ Status Indication from MAC to RLC  
612  * as a response to the Data Req from RLC.
613  * Informs HARQ feedback for the PDU with sn. */
614 S16 RlcLiRguHqStaInd ARGS((
615    Pst*                 pst,
616    SuId                 suId,
617    RguHarqStatusInd     *harqStatusInd));
618
619
620 /** @brief Request for measuring the timing Info for a LC from RLC to MAC  
621  * When the status is ON then Timing Info for data bursts 
622  * shall be captured and provided to RLC on DDatInd. */
623 S16 RlcLiRguL2MUlThrpMeasReq ARGS((
624    Pst*                 pst,
625    SpId                 spId,
626    RguL2MUlThrpMeasReqInfo *l2mUlThrpMeasReq));
627
628 #endif /* LTE_L2_MEAS */
629
630 /** @brief flowCntrl Indication from MAC to RLC  */
631 S16 RlcLiRguFlowCntrlInd ARGS((
632 Pst              *pst, 
633 SuId             suId, 
634 RguFlowCntrlInd  *flowCntrlInd
635 ));
636 #endif
637
638 #ifdef LCRGU
639 /** @brief Request from RLC to MAC to bind the interface saps */
640 S16 cmPkRguBndReq ARGS((
641    Pst*                 pst,
642    SuId                 suId,
643    SpId                 spId
644 ));
645 /** @brief Request from RLC to MAC to bind the interface saps */
646 S16 cmUnpkRguBndReq ARGS((
647    RguBndReq            func,
648    Pst*                 pst,
649    Buffer               *mBuf
650 ));
651 /** @brief Request from RLC to MAC to Unbind the interface saps */
652 S16 cmPkRguUbndReq ARGS((
653    Pst*                 pst,
654    SpId                 spId,
655    Reason               reason
656 ));
657 /** @brief Request from RLC to MAC to Unbind the interface saps */
658 S16 cmUnpkRguUbndReq ARGS((
659    RguUbndReq           func,
660    Pst*                 pst,
661    Buffer               *mBuf
662 ));
663 /** @brief Confirmation from MAC to RLC for the bind/Unbind 
664  * request for the interface saps */
665 S16 cmPkRguBndCfm ARGS((
666    Pst*                 pst,
667    SuId                 suId,
668    uint8_t                   status
669 ));
670 /** @brief Confirmation from MAC to RLC for the bind/Unbind 
671  * request for the interface saps */
672 S16 cmUnpkRguBndCfm ARGS((
673    RguBndCfm            func,
674    Pst*                 pst,
675    Buffer               *mBuf
676 ));
677 /** @brief Request from RLC to MAC for forwarding SDUs on common
678  * channel for transmission */
679 S16 cmPkRguCDatReq ARGS((
680    Pst*                 pst,
681    SpId                 spId,
682    RguCDatReqInfo  *    datReq
683 ));
684 /** @brief Request from RLC to MAC for forwarding SDUs on common
685  * channel for transmission */
686 S16 cmUnpkRguCDatReq ARGS((
687    RguCDatReq           func,
688    Pst*                 pst,
689    Buffer               *mBuf
690 ));
691
692 /** @brief Data Indication from MAC to RLC to 
693  * forward the data received for common channels*/
694 S16 cmPkRguCDatInd ARGS((
695    Pst*                 pst,
696    SuId                 suId,
697    RguCDatIndInfo  *    datInd
698 ));
699 /** @brief Data Indication from MAC to RLC to 
700  * forward the data received for common channels*/
701 S16 cmUnpkRguCDatInd ARGS((
702    RguCDatInd           func,
703    Pst*                 pst,
704    Buffer               *mBuf
705 ));
706
707 /** @brief Primitive invoked from RLC to MAC to 
708  * inform the BO report for common channels*/
709 S16 cmPkRguCStaRsp ARGS((
710    Pst*                 pst,
711    SpId                 spId,
712    RguCStaRspInfo  *    staRsp
713 ));
714 /** @brief Primitive invoked from RLC to MAC to 
715  * inform the BO report for common channels*/
716 S16 cmUnpkRguCStaRsp ARGS((
717    RguCStaRsp           func,
718    Pst*                 pst,
719    Buffer               *mBuf
720 ));
721
722 /** @brief Status Indication from MAC to RLC  
723  * as a response to the staRsp primitive from RLC.
724  * Informs RLC of the totalBufferSize and Timing Info 
725  * for the transmission on common channels. */
726 S16 cmPkRguCStaInd ARGS((
727    Pst*                 pst,
728    SuId                 suId,
729    RguCStaIndInfo  *    staInd
730 ));
731 /** @brief Status Indication from MAC to RLC  
732  * as a response to the staRsp primitive from RLC.
733  * Informs RLC of the totalBufferSize and Timing Info 
734  * for the transmission on common channels. */
735 S16 cmUnpkRguCStaInd ARGS((
736    RguCStaInd           func,
737    Pst*                 pst,
738    Buffer               *mBuf
739 ));
740
741 S16 cmPkRguFlowCntrlInfo ARGS((
742 RguFlowCntrlInd *param, 
743 Buffer           *mBuf
744 ));
745 S16 cmPkRguUeFlowCntrlInfo ARGS((
746 RguUeFlowCntrlInfo *param,
747 Buffer           *mBuf
748 ));
749 S16 cmPkRguLcFlowCntrlInfo ARGS((
750 RguLcFlowCntrlInfo *param,
751 Buffer           *mBuf
752 ));
753 S16 cmUnpkRguLcFlowCntrlInfo ARGS((
754 RguLcFlowCntrlInfo *param,
755 Buffer           *mBuf
756 ));
757 S16 cmUnpkRguUeFlowCntrlInfo ARGS((
758 RguUeFlowCntrlInfo *param,
759 Buffer           *mBuf
760 ));
761 S16 cmUnpkRguFlowCntrlInfo ARGS((
762 RguFlowCntrlInd *param, 
763 Buffer           *mBuf
764 ));
765
766 S16 cmPkRguPduInfo ARGS((
767    RguPduInfo           *param,
768    Buffer               *mBuf
769 ));
770 S16 cmUnpkRguPduInfo ARGS((
771    RguPduInfo           *param,
772    Buffer               *mBuf
773 ));
774 S16 cmPkRguDBoReport ARGS((
775    RguDBoReport         *param,
776    Buffer               *mBuf
777 ));
778 S16 cmUnpkRguDBoReport ARGS((
779    RguDBoReport         *param,
780    Buffer               *mBuf
781 ));
782
783 S16 cmPkRguCDatReqInfo ARGS((
784    RguCDatReqInfo       *param,
785    Buffer               *mBuf
786 ));
787 S16 cmUnpkRguCDatReqInfo ARGS((
788    RguCDatReqInfo       *param,
789    Buffer               *mBuf
790 ));
791 S16 cmPkRguLchDatReq ARGS((
792    RguLchDatReq         *param,
793    Buffer               *mBuf
794 ));
795 S16 cmUnpkRguLchDatReq ARGS((
796    RguLchDatReq         *param,
797    Buffer               *mBuf
798 ));
799 S16 cmPkRguDatReqTb ARGS((
800    RguDatReqTb          *param,
801    Buffer               *mBuf
802 ));
803 S16 cmPkRguStaIndTb ARGS((
804    RguStaIndTb          *param,
805    Buffer               *mBuf
806 ));
807 S16 cmUnpkRguStaIndTb ARGS((
808    RguStaIndTb          *param,
809    Buffer               *mBuf
810 ));
811 /* rgu_x_001.main_3 - ADD - L2M Support */
812 #ifdef LTE_L2_MEAS
813 S16 cmPkRguDDatReqInfo ARGS((
814    Pst                  *pst,
815    RguDDatReqInfo       *param,
816    Buffer               *mBuf
817 ));
818 S16 cmUnpkRguDDatReqInfo ARGS((
819    Pst                  *pst,
820    RguDDatReqInfo       *param,
821    Buffer               *mBuf
822 ));
823 S16 cmUnpkRguDatReqTb ARGS((
824    Pst                  *pst,
825    RguDatReqTb          *param,
826    Buffer               *mBuf
827 ));
828 #else
829 S16 cmPkRguDDatReqInfo ARGS((
830    RguDDatReqInfo       *param,
831    Buffer               *mBuf
832 ));
833 S16 cmUnpkRguDDatReqInfo ARGS((
834    RguDDatReqInfo       *param,
835    Buffer               *mBuf
836 ));
837 S16 cmUnpkRguDatReqTb ARGS((
838    RguDatReqTb          *param,
839    Buffer               *mBuf
840 ));
841 #endif
842 S16 cmPkRguCDatIndInfo ARGS((
843    RguCDatIndInfo       *param,
844    Buffer               *mBuf
845 ));
846 S16 cmUnpkRguCDatIndInfo ARGS((
847    RguCDatIndInfo       *param,
848    Buffer               *mBuf
849 ));
850 S16 cmPkRguLchDatInd ARGS((
851    RguLchDatInd         *param,
852    Buffer               *mBuf
853 ));
854 S16 cmUnpkRguLchDatInd ARGS((
855    RguLchDatInd         *param,
856    Buffer               *mBuf
857 ));
858
859 S16 cmPkRguCStaRspInfo ARGS((
860    RguCStaRspInfo       *param,
861    Buffer               *mBuf
862 ));
863 S16 cmUnpkRguCStaRspInfo ARGS((
864    RguCStaRspInfo       *param,
865    Buffer               *mBuf
866 ));
867
868 S16 cmPkRguCStaIndInfo ARGS((
869    RguCStaIndInfo       *param,
870    Buffer               *mBuf
871 ));
872 S16 cmUnpkRguCStaIndInfo ARGS((
873    RguCStaIndInfo       *param,
874    Buffer               *mBuf
875 ));
876 S16 cmPkRguLchStaInd ARGS((
877    RguLchStaInd         *param,
878    Buffer               *mBuf
879 ));
880 S16 cmUnpkRguLchStaInd ARGS((
881    RguLchStaInd         *param,
882    Buffer               *mBuf
883 ));
884
885 /*rgu_x_001.main_3 - ADD - L2M  & R9 Support */
886 #ifdef LTE_L2_MEAS
887 /** @brief Request from MAC to RLC for forwarding HARQ Status */
888
889 S16 cmPkRguHqStaInd ARGS((
890    Pst*                 pst,
891    SpId                 spId,
892    RguHarqStatusInd     *harqStatusInd));
893
894 /** @brief Request from MAC to RLC forwarding HARQ status  */
895 S16 cmUnpkRguHqStaInd ARGS((
896    RguHqStaInd          func,
897    Pst*                 pst,
898    Buffer               *mBuf
899 ));
900
901 /** @brief Primitive invoked from RLC to MAC to 
902  *  * inform the On/Off Status of LC Id*/
903 S16 cmPkRguL2MUlThrpMeasReq ARGS((
904    Pst*                 pst,
905    SpId                 spId,
906    RguL2MUlThrpMeasReqInfo*    measReq
907 ));
908
909 /** @brief Primitive invoked from RLC to MAC to 
910  *  * inform the On/Off Status of LC Id*/
911 S16 cmUnpkRguL2MUlThrpMeasReq ARGS((
912    RguL2MUlThrpMeasReq  func,
913    Pst*                 pst,
914    Buffer               *mBuf
915 ));
916
917 S16 cmPkRguL2MUlThrpMeasReqInfo ARGS((
918    RguL2MUlThrpMeasReqInfo *param,
919    Buffer               *mBuf
920 ));
921
922 S16 cmUnpkRguL2MUlThrpMeasReqInfo ARGS((
923    RguL2MUlThrpMeasReqInfo       *param,
924    Buffer               *mBuf
925 ));
926
927 #endif /* LTE_L2_MEAS */
928 S16 cmUnpkRguFlowCntrlInd ARGS((
929    RguFlowCntrlIndInfo  func,
930    Pst                  *pst,
931    Buffer               *mBuf
932  ));
933
934 S16 cmPkRguFlowCntrlInd ARGS((
935    Pst* pst,
936    SuId suId,
937    RguFlowCntrlInd  *flowCntrlInd
938  ));
939 #endif
940
941 #ifdef __cplusplus
942 }
943 #endif
944 #endif /* __RGUX__ */
945
946 /********************************************************************30**
947
948          End of file
949 **********************************************************************/