13e63041d3bf14c4bd6d487e301f8d7ab2b0ce59
[o-du/l2.git] / src / 5gnrmac / rg_ptli.c
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  
21      Name:     LTE-MAC layer
22   
23      Type:     C source file
24   
25      Desc:     C source code for Entry point fucntions
26   
27      File:     rg_ptli.c
28   
29 **********************************************************************/
30
31 /** @file rg_dhm.c
32 @brief APIs related to Downlink HARQ.
33 */
34
35 /* header include files (.h) */
36 #include "envopt.h"        /* environment options */
37 #include "envdep.h"        /* environment dependent */
38 #include "envind.h"        /* environment independent */
39 #include "gen.h"           /* general */
40 #include "ssi.h"           /* system services */
41 #include "cm_tkns.h"       /* Common Token Defines */
42 #include "cm_llist.h"      /* Common Link List Defines */
43 #include "cm_hash.h"       /* Common Hash List Defines */
44 #include "cm_mblk.h"
45 #include "cm_lte.h"        /* Common LTE Defines */
46 #include "tfu.h"           /* RGU Interface defines */
47
48 /* header/extern include files (.x) */
49 #include "gen.x"           /* general */
50 #include "ssi.x"           /* system services */
51 #include "cm_tkns.x"       /* Common Token Definitions */
52 #include "cm_llist.x"      /* Common Link List Definitions */
53 #include "cm_lib.x"        /* Common Library Definitions */
54 #include "cm_hash.x"       /* Common Hash List Definitions */
55 #include "cm_mblk.x"
56 #include "cm_lte.x"        /* Common LTE Defines */
57 #include "tfu.x"           /* RGU Interface includes */
58
59
60 #ifdef __cplusplus
61 extern "C" {
62 #endif /* __cplusplus */
63
64 #if !(defined(LCRGLITFU)  && defined(TF) && defined(LWLCRGLITFU))
65 #define PTRGLITFU
66 #endif
67
68
69 /* MAX Number of Service Providers of RG */
70 #define RG_MAX_TFU_PROV   3
71
72 #ifdef PTRGLITFU
73 /** @brief This API is used to send a Bind Request from MAC to PHY.
74  * @param pst Pointer to the post structure.
75  * @param suId SAP ID of the service user.
76  * @param spId SAP ID of the service provider.
77  * @return ROK/RFAILED
78  */
79 EXTERN S16 PtLiTfuBndReq ARGS((Pst * pst, SuId suId, SpId spId));
80 /** @brief This API is used to send a Bind Request from Scheduler to PHY.
81  * @param pst Pointer to the post structure.
82  * @param suId SAP ID of the service user.
83  * @param spId SAP ID of the service provider.
84  * @return ROK/RFAILED
85  */
86 EXTERN S16 PtLiTfuSchBndReq ARGS((Pst * pst, SuId suId, SpId spId));
87 /** @brief This API is used to send an Unbind Request from MAC to PHY.
88  * @param pst Pointer to the post structure.
89  * @param suId SAP ID of the service provider.
90  * @param reason Reason for Unbind request.
91  * @return ROK/RFAILED
92  */
93 EXTERN S16 PtLiTfuUbndReq ARGS((Pst * pst, SpId spId, Reason reason));
94 /** @brief This API is used to send an Unbind Request from Scheduler to PHY.
95  * @param pst Pointer to the post structure.
96  * @param suId SAP ID of the service provider.
97  * @param reason Reason for Unbind request.
98  * @return ROK/RFAILED
99  */
100 EXTERN S16 PtLiTfuSchUbndReq ARGS((Pst * pst, SpId spId, Reason reason));
101 /** @brief This primitive is sent from Scheduler to PHY.
102  * @details This primitive provides PHY with all the information required by 
103  * PHY to decode transmissions from the UE on either PUCCH or PUSCH.
104  * -# On PUCCH UE can transmit the following
105  *    -# SR
106  *    -# HARQ feedback
107  *    -# CQI report
108  *    -# HARQ + CQI
109  *    -# HARQ + SR
110  * -# On PUSCH UE can transmit the following
111  *    -# Data
112  *    -# Data + CQI
113  *    -# Data + HARQ Feedback
114  * This primitive carries all the information for the expected subframe for all
115  * the UEs that have been scheduled to transmit.
116  * @param pst Pointer to the post structure.
117  * @param spId SAP ID of the service provider.
118  * @param recpReq Pointer to the TfuRecpReqInfo structure.
119  * @return ROK/RFAILED
120  */
121 EXTERN S16 PtLiTfuRecpReq ARGS((Pst * pst, SpId spId, TfuRecpReqInfo * recpReq));
122 /** @brief This Primitive is sent from Scheduler to PHY. It provides PHY with
123   * all the control information
124   * @details This primitive carries the information sent on the following
125   * channels - 
126   * -# PDCCH
127   * -# PHICH
128   * -# PCFICH
129   * 
130   * @param pst
131   * @param spId
132   * @param cntrlReq pointer to TfuCntrlReqInfo
133   * @return ROK/RFAILED
134   */
135 EXTERN S16 PtLiTfuCntrlReq ARGS((Pst * pst, SpId spId, TfuCntrlReqInfo * cntrlReq));
136 /** @brief This Primitive carries the Data PDUs from MAC to PHY for
137   * transmission. 
138   * @details The data being sent in this primitive is meant to be transmitted on
139   * the downlink channel PDSCH and PBCH (if present). To facilitate physical
140   * layer processing, requisite control information is also sent along with the
141   * data. 
142   * @sa TfUiTfuCntrlReq
143   * @param pst 
144   * @param spId
145   * @param tfuDatReq pointer to TfuDatReqInfo
146   * @return 
147   */
148 EXTERN S16 PtLiTfuDatReq ARGS((Pst * pst, SpId spId, TfuDatReqInfo * datReq));
149 #ifdef L2_OPTMZ
150 /** @brief This Primitive carries cellId and UeId for which datReq need to be deleted.
151   * @details This primitive is used to send delDatReq to CL to delete the PDUs of
152   * UE which has been deleted in MAC due to ueId change or anyother scenario
153   * @details The data being sent in this primitive is meant to be transmitted on
154   * @sa TfUiTfuDelDatReq
155   * @param pst
156   * @param spId
157   * @param tfuDelDatReq pointer to TfuDelDatReqInfo
158   * @return
159  */
160 EXTERN S16 PtLiTfuDelDatReq ARGS((Pst * pst, SpId spId, TfuDelDatReqInfo * datReq));
161 #endif /*L2_OPTMZ*/
162 #endif /*--#ifdef PTRGLITFU--*/
163
164 /** @brief This API is used to send a Bind Request from MAC to PHY.
165  * @param pst Pointer to the post structure.
166  * @param suId SAP ID of the service user.
167  * @param spId SAP ID of the service provider.
168  * @return ROK/RFAILED
169  */
170 PRIVATE CONSTANT TfuBndReq RgLiTfuBndReqMt[RG_MAX_TFU_PROV] =
171 {
172 #ifdef LCRGLITFU
173    cmPkTfuBndReq,
174 #else
175    PtLiTfuBndReq,
176 #endif
177 #ifdef TF
178    TfUiTfuBndReq,
179 #else
180    PtLiTfuBndReq,
181 #endif
182 #ifdef LWLCRGLITFU
183    cmPkTfuBndReq
184 #else
185    PtLiTfuBndReq
186 #endif
187 };
188
189 /** @brief This API is used to send a Bind Request from Scheduler to PHY.
190  * @param pst Pointer to the post structure.
191  * @param suId SAP ID of the service user.
192  * @param spId SAP ID of the service provider.
193  * @return ROK/RFAILED
194  */
195 PRIVATE CONSTANT TfuSchBndReq RgLiTfuSchBndReqMt[RG_MAX_TFU_PROV] =
196 {
197 #ifdef LCRGLITFU
198    cmPkTfuSchBndReq,
199 #else
200    PtLiTfuSchBndReq,
201 #endif
202 #ifdef TF
203    TfUiTfuSchBndReq,
204 #else
205    PtLiTfuSchBndReq,
206 #endif
207 #ifdef LWLCRGLITFU
208    cmPkTfuSchBndReq
209 #else
210    PtLiTfuSchBndReq
211 #endif
212 };
213
214 /** @brief This API is used to send an Unbind Request from MAC to PHY.
215  * @param pst Pointer to the post structure.
216  * @param suId SAP ID of the service provider.
217  * @param reason Reason for Unbind request.
218  * @return ROK/RFAILED
219  */
220 PRIVATE CONSTANT TfuUbndReq RgLiTfuUbndReqMt[RG_MAX_TFU_PROV] =
221 {
222 #ifdef LCRGLITFU
223    cmPkTfuUbndReq,
224 #else
225    PtLiTfuUbndReq,
226 #endif
227 #ifdef TF
228    TfUiTfuUbndReq,
229 #else
230    PtLiTfuUbndReq,
231 #endif
232 #ifdef LWLCRGLITFU
233    cmPkTfuUbndReq
234 #else
235    PtLiTfuUbndReq
236 #endif
237 };
238
239 /** @brief This API is used to send an Unbind Request from Scheduler to PHY.
240  * @param pst Pointer to the post structure.
241  * @param suId SAP ID of the service provider.
242  * @param reason Reason for Unbind request.
243  * @return ROK/RFAILED
244  */
245 PRIVATE CONSTANT TfuSchUbndReq RgLiTfuSchUbndReqMt[RG_MAX_TFU_PROV] =
246 {
247 #ifdef LCRGLITFU
248    cmPkTfuSchUbndReq,
249 #else
250    PtLiTfuSchUbndReq,
251 #endif
252 #ifdef TF
253    TfUiTfuSchUbndReq,
254 #else
255    PtLiTfuSchUbndReq,
256 #endif
257 #ifdef LWLCRGLITFU
258    cmPkTfuSchUbndReq
259 #else
260    PtLiTfuSchUbndReq
261 #endif
262 };
263
264 /** @brief This primitive is sent from Scheduler to PHY.
265  * @details This primitive provides PHY with all the information required by 
266  * PHY to decode transmissions from the UE on either PUCCH or PUSCH.
267  * -# On PUCCH UE can transmit the following
268  *    -# SR
269  *    -# HARQ feedback
270  *    -# CQI report
271  *    -# HARQ + CQI
272  *    -# HARQ + SR
273  * -# On PUSCH UE can transmit the following
274  *    -# Data
275  *    -# Data + CQI
276  *    -# Data + HARQ Feedback
277  * This primitive carries all the information for the expected subframe for all
278  * the UEs that have been scheduled to transmit.
279  * @param pst Pointer to the post structure.
280  * @param spId SAP ID of the service provider.
281  * @param recpReq Pointer to the TfuRecpReqInfo structure.
282  * @return ROK/RFAILED
283  */
284 PRIVATE CONSTANT TfuRecpReq RgLiTfuRecpReqMt[RG_MAX_TFU_PROV] =
285 {
286 #ifdef LCRGLITFU
287    cmPkTfuRecpReq,
288 #else
289    PtLiTfuRecpReq,
290 #endif
291 #ifdef TF
292    TfUiTfuRecpReq,
293 #else
294    PtLiTfuRecpReq,
295 #endif
296 #ifdef LWLCRGLITFU
297    cmPkTfuRecpReq
298 #else
299    PtLiTfuRecpReq
300 #endif
301 };
302
303 /** @brief This Primitive is sent from Scheduler to PHY. It provides PHY with
304   * all the control information
305   * @details This primitive carries the information sent on the following
306   * channels - 
307   * -# PDCCH
308   * -# PHICH
309   * -# PCFICH
310   * 
311   * @param pst
312   * @param spId
313   * @param cntrlReq pointer to TfuCntrlReqInfo
314   * @return ROK/RFAILED
315   */
316 PRIVATE CONSTANT TfuCntrlReq RgLiTfuCntrlReqMt[RG_MAX_TFU_PROV] =
317 {
318 #ifdef LCRGLITFU
319    cmPkTfuCntrlReq,
320 #else
321    PtLiTfuCntrlReq,
322 #endif
323 #ifdef TF
324    TfUiTfuCntrlReq,
325 #else
326    PtLiTfuCntrlReq,
327 #endif
328 #ifdef LWLCRGLITFU
329    cmPkTfuCntrlReq
330 #else
331    PtLiTfuCntrlReq
332 #endif
333 };
334
335 /** @brief This Primitive carries the Data PDUs from MAC to PHY for
336   * transmission. 
337   * @details The data being sent in this primitive is meant to be transmitted on
338   * the downlink channel PDSCH and PBCH (if present). To facilitate physical
339   * layer processing, requisite control information is also sent along with the
340   * data. 
341   * @sa TfUiTfuCntrlReq
342   * @param pst 
343   * @param spId
344   * @param tfuDatReq pointer to TfuDatReqInfo
345   * @return 
346   */
347 PRIVATE CONSTANT TfuDatReq RgLiTfuDatReqMt[RG_MAX_TFU_PROV] =
348 {
349 #ifdef LCRGLITFU
350    cmPkTfuDatReq,
351 #else
352    PtLiTfuDatReq,
353 #endif
354 #ifdef TF
355    TfUiTfuDatReq,
356 #else
357    PtLiTfuDatReq,
358 #endif
359 #ifdef LWLCRGLITFU
360    cmPkTfuDatReq
361 #else
362    PtLiTfuDatReq
363 #endif
364 };
365
366 #ifdef L2_OPTMZ
367 /** @brief This Primitive carries cellId and UeId for which datReq need to be deleted. 
368   * @details This primitive is used to send delDatReq to CL to delete the PDUs of 
369   * UE which has been deleted in MAC due to ueId change or anyother scenario
370   * NOTE:: This API is only supported for TC because race condition issue
371   *        happens only in case of TC
372   * @sa TfUiTfuDelDatReq
373   * @param pst 
374   * @param spId
375   * @param tfuDelDatReq pointer to TfuDelDatReqInfo
376   * @return 
377   */
378 PRIVATE CONSTANT TfuDelDatReq RgLiTfuDelDatReqMt[RG_MAX_TFU_PROV] =
379 {
380 #ifdef LCRGLITFU
381    PtLiTfuDelDatReq, /*calling dummy api as LC not required for this privitive*/
382 #else
383    PtLiTfuDelDatReq,
384 #endif
385 #ifdef TF
386    TfUiTfuDelDatReq,
387 #else
388    PtLiTfuDelDatReq,
389 #endif
390 #ifdef LWLCRGLITFU
391    PtLiTfuDelDatReq, /*calling dummy api as LWLC not required for this privitive*/
392 #else
393    PtLiTfuDelDatReq
394 #endif
395 };
396 #endif /* L2_OPTMZ*/
397
398 #ifdef RG
399
400
401 \f
402 /***********************************************************
403 *
404 *     Func : RgLiTfuBndReq
405 *
406 *
407 *     Desc : This API is used to send a Bind Request from MAC to PHY.
408  * @param pst Pointer to the post structure.
409  * @param suId SAP ID of the service user.
410  * @param spId SAP ID of the service provider.
411  * @return ROK/RFAILED
412 *
413 *
414 *     Ret  : S16
415 *
416 *     Notes:
417 *
418 *     File  : 
419 *
420 **********************************************************/
421 #ifdef ANSI
422 PUBLIC S16 RgLiTfuBndReq
423 (
424 Pst * pst,
425 SuId suId,
426 SpId spId
427 )
428 #else
429 PUBLIC S16 RgLiTfuBndReq(pst, suId, spId)
430 Pst * pst;
431 SuId suId;
432 SpId spId;
433 #endif
434 {
435
436    TRC3(RgLiTfuBndReq)
437
438    RETVALUE((*RgLiTfuBndReqMt[pst->selector])(pst, suId, spId));
439
440 }
441
442
443 \f
444 /***********************************************************
445 *
446 *     Func : RgLiTfuSchBndReq
447 *
448 *
449 *     Desc : This API is used to send a Bind Request from Scheduler to PHY.
450  * @param pst Pointer to the post structure.
451  * @param suId SAP ID of the service user.
452  * @param spId SAP ID of the service provider.
453  * @return ROK/RFAILED
454 *
455 *
456 *     Ret  : S16
457 *
458 *     Notes:
459 *
460 *     File  : 
461 *
462 **********************************************************/
463 #ifdef ANSI
464 PUBLIC S16 RgLiTfuSchBndReq
465 (
466 Pst * pst,
467 SuId suId,
468 SpId spId
469 )
470 #else
471 PUBLIC S16 RgLiTfuSchBndReq(pst, suId, spId)
472 Pst * pst;
473 SuId suId;
474 SpId spId;
475 #endif
476 {
477
478    TRC3(RgLiTfuSchBndReq)
479
480    RETVALUE((*RgLiTfuSchBndReqMt[pst->selector])(pst, suId, spId));
481
482 }
483
484
485 \f
486 /***********************************************************
487 *
488 *     Func : RgLiTfuUbndReq
489 *
490 *
491 *     Desc : This API is used to send an Unbind Request from MAC to PHY.
492  * @param pst Pointer to the post structure.
493  * @param suId SAP ID of the service provider.
494  * @param reason Reason for Unbind request.
495  * @return ROK/RFAILED
496 *
497 *
498 *     Ret  : S16
499 *
500 *     Notes:
501 *
502 *     File  : 
503 *
504 **********************************************************/
505 #ifdef ANSI
506 PUBLIC S16 RgLiTfuUbndReq
507 (
508 Pst * pst,
509 SpId spId,
510 Reason reason
511 )
512 #else
513 PUBLIC S16 RgLiTfuUbndReq(pst, spId, reason)
514 Pst * pst;
515 SpId spId;
516 Reason reason;
517 #endif
518 {
519
520    TRC3(RgLiTfuUbndReq)
521
522    RETVALUE((*RgLiTfuUbndReqMt[pst->selector])(pst, spId, reason));
523
524 }
525
526
527 \f
528 /***********************************************************
529 *
530 *     Func : RgLiTfuSchUbndReq
531 *
532 *
533 *     Desc : This API is used to send an Unbind Request from Scheduler to PHY.
534  * @param pst Pointer to the post structure.
535  * @param suId SAP ID of the service provider.
536  * @param reason Reason for Unbind request.
537  * @return ROK/RFAILED
538 *
539 *
540 *     Ret  : S16
541 *
542 *     Notes:
543 *
544 *     File  : 
545 *
546 **********************************************************/
547 #ifdef ANSI
548 PUBLIC S16 RgLiTfuSchUbndReq
549 (
550 Pst * pst,
551 SpId spId,
552 Reason reason
553 )
554 #else
555 PUBLIC S16 RgLiTfuSchUbndReq(pst, spId, reason)
556 Pst * pst;
557 SpId spId;
558 Reason reason;
559 #endif
560 {
561
562    TRC3(RgLiTfuSchUbndReq)
563
564    RETVALUE((*RgLiTfuSchUbndReqMt[pst->selector])(pst, spId, reason));
565
566 }
567
568
569 \f
570 /***********************************************************
571 *
572 *     Func : RgLiTfuRecpReq
573 *
574 *
575 *     Desc : This primitive is sent from Scheduler to PHY.
576  * @details This primitive provides PHY with all the information required by 
577  * PHY to decode transmissions from the UE on either PUCCH or PUSCH.
578  * -# On PUCCH UE can transmit the following
579  *    -# SR
580  *    -# HARQ feedback
581  *    -# CQI report
582  *    -# HARQ + CQI
583  *    -# HARQ + SR
584  * -# On PUSCH UE can transmit the following
585  *    -# Data
586  *    -# Data + CQI
587  *    -# Data + HARQ Feedback
588  * This primitive carries all the information for the expected subframe for all
589  * the UEs that have been scheduled to transmit.
590  * @param pst Pointer to the post structure.
591  * @param spId SAP ID of the service provider.
592  * @param recpReq Pointer to the TfuRecpReqInfo structure.
593  * @return ROK/RFAILED
594 *
595 *
596 *     Ret  : S16
597 *
598 *     Notes:
599 *
600 *     File  : 
601 *
602 **********************************************************/
603 #ifdef ANSI
604 PUBLIC S16 RgLiTfuRecpReq
605 (
606 Pst * pst,
607 SpId spId,
608 TfuRecpReqInfo * recpReq
609 )
610 #else
611 PUBLIC S16 RgLiTfuRecpReq(pst, spId, recpReq)
612 Pst * pst;
613 SpId spId;
614 TfuRecpReqInfo * recpReq;
615 #endif
616 {
617
618    TRC3(RgLiTfuRecpReq)
619
620    RETVALUE((*RgLiTfuRecpReqMt[pst->selector])(pst, spId, recpReq));
621
622 }
623
624
625 \f
626 /***********************************************************
627 *
628 *     Func : RgLiTfuCntrlReq
629 *
630 *
631 *     Desc : This Primitive is sent from Scheduler to PHY. It provides PHY with
632   * all the control information
633   * @details This primitive carries the information sent on the following
634   * channels - 
635   * -# PDCCH
636   * -# PHICH
637   * -# PCFICH
638   * 
639   * @param pst
640   * @param spId
641   * @param cntrlReq pointer to TfuCntrlReqInfo
642   * @return ROK/RFAILED
643 *
644 *
645 *     Ret  : S16
646 *
647 *     Notes:
648 *
649 *     File  : 
650 *
651 **********************************************************/
652 #ifdef ANSI
653 PUBLIC S16 RgLiTfuCntrlReq
654 (
655 Pst * pst,
656 SpId spId,
657 TfuCntrlReqInfo * cntrlReq
658 )
659 #else
660 PUBLIC S16 RgLiTfuCntrlReq(pst, spId, cntrlReq)
661 Pst * pst;
662 SpId spId;
663 TfuCntrlReqInfo * cntrlReq;
664 #endif
665 {
666
667    TRC3(RgLiTfuCntrlReq)
668
669    RETVALUE((*RgLiTfuCntrlReqMt[pst->selector])(pst, spId, cntrlReq));
670
671 }
672
673
674 \f
675 /***********************************************************
676 *
677 *     Func : RgLiTfuDatReq
678 *
679 *
680 *     Desc : This Primitive carries the Data PDUs from MAC to PHY for
681   * transmission. 
682   * @details The data being sent in this primitive is meant to be transmitted on
683   * the downlink channel PDSCH and PBCH (if present). To facilitate physical
684   * layer processing, requisite control information is also sent along with the
685   * data. 
686   * @sa TfUiTfuCntrlReq
687   * @param pst 
688   * @param spId
689   * @param tfuDatReq pointer to TfuDatReqInfo
690   * @return
691 *
692 *
693 *     Ret  : S16
694 *
695 *     Notes:
696 *
697 *     File  : 
698 *
699 **********************************************************/
700 #ifdef ANSI
701 PUBLIC S16 RgLiTfuDatReq
702 (
703 Pst * pst,
704 SpId spId,
705 TfuDatReqInfo * datReq
706 )
707 #else
708 PUBLIC S16 RgLiTfuDatReq(pst, spId, datReq)
709 Pst * pst;
710 SpId spId;
711 TfuDatReqInfo * datReq;
712 #endif
713 {
714
715    TRC3(RgLiTfuDatReq)
716
717    RETVALUE((*RgLiTfuDatReqMt[pst->selector])(pst, spId, datReq));
718
719 }
720
721 #ifdef L2_OPTMZ
722 \f
723 /***********************************************************
724 *
725 *     Func : RgLiTfuDelDatReq
726 *
727 *
728 *     Desc : This Primitive is used to delete datReq in CL when there is ueId change. 
729   * @details: This primitive is required when L2_OPMZ flag is elabed. this is required
730   *           To delete datRq PDUs from CL for the Ue for which Ue Id got changed or
731   *           anyother similar scenario
732   * @sa TfUiTfuDelDatReq
733   * @param pst 
734   * @param spId
735   * @param tfuDelDatReq pointer to TfuDelDatReqInfo
736   * @return
737 *
738 *
739 *     Ret  : S16
740 *
741 *     Notes:
742 *
743 *     File  : 
744 *
745 **********************************************************/
746 #ifdef ANSI
747 PUBLIC S16 RgLiTfuDelDatReq
748 (
749 Pst * pst,
750 SpId spId,
751 TfuDelDatReqInfo * delDatReq
752 )
753 #else
754 PUBLIC S16 RgLiTfuDelDatReq(pst, spId, delDatReq)
755 Pst * pst;
756 SpId spId;
757 TfuDelDatReqInfo * delDatReq;
758 #endif
759 {
760
761    TRC3(RgLiTfuDelDatReq)
762
763    RETVALUE((*RgLiTfuDelDatReqMt[pst->selector])(pst, spId, delDatReq));
764
765 }
766 #endif /* L2_OPTMZ*/
767
768 #endif /*--ifdef RG--*/
769
770 #ifdef PTRGLITFU
771
772
773 \f
774 /***********************************************************
775 *
776 *     Func : PtLiTfuBndReq
777 *
778 *
779 *     Desc : This API is used to send a Bind Request from MAC to PHY.
780  * @param pst Pointer to the post structure.
781  * @param suId SAP ID of the service user.
782  * @param spId SAP ID of the service provider.
783  * @return ROK/RFAILED
784 *
785 *
786 *     Ret  : S16
787 *
788 *     Notes:
789 *
790 *     File  : 
791 *
792 **********************************************************/
793 #ifdef ANSI
794 PUBLIC S16 PtLiTfuBndReq
795 (
796 Pst * pst,
797 SuId suId,
798 SpId spId
799 )
800 #else
801 PUBLIC S16 PtLiTfuBndReq(pst, suId, spId)
802 Pst * pst;
803 SuId suId;
804 SpId spId;
805 #endif
806 {
807
808    TRC3(PtLiTfuBndReq)
809
810    UNUSED(pst);
811    UNUSED(suId);
812    UNUSED(spId);
813
814    RETVALUE(ROK);
815
816 }
817
818
819 \f
820 /***********************************************************
821 *
822 *     Func : PtLiTfuSchBndReq
823 *
824 *
825 *     Desc : This API is used to send a Bind Request from Scheduler to PHY.
826  * @param pst Pointer to the post structure.
827  * @param suId SAP ID of the service user.
828  * @param spId SAP ID of the service provider.
829  * @return ROK/RFAILED
830 *
831 *
832 *     Ret  : S16
833 *
834 *     Notes:
835 *
836 *     File  : 
837 *
838 **********************************************************/
839 #ifdef ANSI
840 PUBLIC S16 PtLiTfuSchBndReq
841 (
842 Pst * pst,
843 SuId suId,
844 SpId spId
845 )
846 #else
847 PUBLIC S16 PtLiTfuSchBndReq(pst, suId, spId)
848 Pst * pst;
849 SuId suId;
850 SpId spId;
851 #endif
852 {
853
854    TRC3(PtLiTfuSchBndReq)
855
856    UNUSED(pst);
857    UNUSED(suId);
858    UNUSED(spId);
859
860    RETVALUE(ROK);
861
862 }
863
864
865 \f
866 /***********************************************************
867 *
868 *     Func : PtLiTfuUbndReq
869 *
870 *
871 *     Desc : This API is used to send an Unbind Request from MAC to PHY.
872  * @param pst Pointer to the post structure.
873  * @param suId SAP ID of the service provider.
874  * @param reason Reason for Unbind request.
875  * @return ROK/RFAILED
876 *
877 *
878 *     Ret  : S16
879 *
880 *     Notes:
881 *
882 *     File  : 
883 *
884 **********************************************************/
885 #ifdef ANSI
886 PUBLIC S16 PtLiTfuUbndReq
887 (
888 Pst * pst,
889 SpId spId,
890 Reason reason
891 )
892 #else
893 PUBLIC S16 PtLiTfuUbndReq(pst, spId, reason)
894 Pst * pst;
895 SpId spId;
896 Reason reason;
897 #endif
898 {
899
900    TRC3(PtLiTfuUbndReq)
901
902    UNUSED(pst);
903    UNUSED(spId);
904    UNUSED(reason);
905
906    RETVALUE(ROK);
907
908 }
909
910
911 \f
912 /***********************************************************
913 *
914 *     Func : PtLiTfuSchUbndReq
915 *
916 *
917 *     Desc : This API is used to send an Unbind Request from Scheduler to PHY.
918  * @param pst Pointer to the post structure.
919  * @param suId SAP ID of the service provider.
920  * @param reason Reason for Unbind request.
921  * @return ROK/RFAILED
922 *
923 *
924 *     Ret  : S16
925 *
926 *     Notes:
927 *
928 *     File  : 
929 *
930 **********************************************************/
931 #ifdef ANSI
932 PUBLIC S16 PtLiTfuSchUbndReq
933 (
934 Pst * pst,
935 SpId spId,
936 Reason reason
937 )
938 #else
939 PUBLIC S16 PtLiTfuSchUbndReq(pst, spId, reason)
940 Pst * pst;
941 SpId spId;
942 Reason reason;
943 #endif
944 {
945
946    TRC3(PtLiTfuSchUbndReq)
947
948    UNUSED(pst);
949    UNUSED(spId);
950    UNUSED(reason);
951
952    RETVALUE(ROK);
953
954 }
955
956
957 \f
958 /***********************************************************
959 *
960 *     Func : PtLiTfuRecpReq
961 *
962 *
963 *     Desc : This primitive is sent from Scheduler to PHY.
964  * @details This primitive provides PHY with all the information required by 
965  * PHY to decode transmissions from the UE on either PUCCH or PUSCH.
966  * -# On PUCCH UE can transmit the following
967  *    -# SR
968  *    -# HARQ feedback
969  *    -# CQI report
970  *    -# HARQ + CQI
971  *    -# HARQ + SR
972  * -# On PUSCH UE can transmit the following
973  *    -# Data
974  *    -# Data + CQI
975  *    -# Data + HARQ Feedback
976  * This primitive carries all the information for the expected subframe for all
977  * the UEs that have been scheduled to transmit.
978  * @param pst Pointer to the post structure.
979  * @param spId SAP ID of the service provider.
980  * @param recpReq Pointer to the TfuRecpReqInfo structure.
981  * @return ROK/RFAILED
982 *
983 *
984 *     Ret  : S16
985 *
986 *     Notes:
987 *
988 *     File  : 
989 *
990 **********************************************************/
991 #ifdef ANSI
992 PUBLIC S16 PtLiTfuRecpReq
993 (
994 Pst * pst,
995 SpId spId,
996 TfuRecpReqInfo * recpReq
997 )
998 #else
999 PUBLIC S16 PtLiTfuRecpReq(pst, spId, recpReq)
1000 Pst * pst;
1001 SpId spId;
1002 TfuRecpReqInfo * recpReq;
1003 #endif
1004 {
1005
1006    TRC3(PtLiTfuRecpReq)
1007
1008    UNUSED(pst);
1009    UNUSED(spId);
1010    UNUSED(recpReq);
1011
1012    RETVALUE(ROK);
1013
1014 }
1015
1016
1017 \f
1018 /***********************************************************
1019 *
1020 *     Func : PtLiTfuCntrlReq
1021 *
1022 *
1023 *     Desc : This Primitive is sent from Scheduler to PHY. It provides PHY with
1024   * all the control information
1025   * @details This primitive carries the information sent on the following
1026   * channels - 
1027   * -# PDCCH
1028   * -# PHICH
1029   * -# PCFICH
1030   * 
1031   * @param pst
1032   * @param spId
1033   * @param cntrlReq pointer to TfuCntrlReqInfo
1034   * @return ROK/RFAILED
1035 *
1036 *
1037 *     Ret  : S16
1038 *
1039 *     Notes:
1040 *
1041 *     File  : 
1042 *
1043 **********************************************************/
1044 #ifdef ANSI
1045 PUBLIC S16 PtLiTfuCntrlReq
1046 (
1047 Pst * pst,
1048 SpId spId,
1049 TfuCntrlReqInfo * cntrlReq
1050 )
1051 #else
1052 PUBLIC S16 PtLiTfuCntrlReq(pst, spId, cntrlReq)
1053 Pst * pst;
1054 SpId spId;
1055 TfuCntrlReqInfo * cntrlReq;
1056 #endif
1057 {
1058
1059    TRC3(PtLiTfuCntrlReq)
1060
1061    UNUSED(pst);
1062    UNUSED(spId);
1063    UNUSED(cntrlReq);
1064
1065    RETVALUE(ROK);
1066
1067 }
1068
1069
1070 \f
1071 /***********************************************************
1072 *
1073 *     Func : PtLiTfuDatReq
1074 *
1075 *
1076 *     Desc : This Primitive carries the Data PDUs from MAC to PHY for
1077   * transmission. 
1078   * @details The data being sent in this primitive is meant to be transmitted on
1079   * the downlink channel PDSCH and PBCH (if present). To facilitate physical
1080   * layer processing, requisite control information is also sent along with the
1081   * data. 
1082   * @sa TfUiTfuCntrlReq
1083   * @param pst 
1084   * @param spId
1085   * @param tfuDatReq pointer to TfuDatReqInfo
1086   * @return
1087 *
1088 *
1089 *     Ret  : S16
1090 *
1091 *     Notes:
1092 *
1093 *     File  : 
1094 *
1095 **********************************************************/
1096 #ifdef ANSI
1097 PUBLIC S16 PtLiTfuDatReq
1098 (
1099 Pst * pst,
1100 SpId spId,
1101 TfuDatReqInfo * datReq
1102 )
1103 #else
1104 PUBLIC S16 PtLiTfuDatReq(pst, spId, datReq)
1105 Pst * pst;
1106 SpId spId;
1107 TfuDatReqInfo * datReq;
1108 #endif
1109 {
1110
1111    TRC3(PtLiTfuDatReq)
1112
1113    UNUSED(pst);
1114    UNUSED(spId);
1115    UNUSED(datReq);
1116
1117    RETVALUE(ROK);
1118
1119 }
1120
1121 \f
1122 #ifdef L2_OPTMZ
1123 /***********************************************************
1124 *
1125 *     Func : PtLiTfuDelDatReq
1126 *
1127 *
1128 *   @brief This Primitive carries cellId and UeId for which datReq need to be deleted.
1129   * @details This primitive is used to send delDatReq to CL to delete the PDUs of
1130     * UE which has been deleted in MAC due to ueId change or anyother scenario
1131     
1132   * @details The data being sent in this primitive is meant to be transmitted on
1133   * @sa TfUiTfuDelDatReq
1134   * @param pst 
1135   * @param spId
1136   * @param tfuDelDatReq pointer to TfuDelDatReqInfo
1137   * @return
1138 *
1139 *
1140 *     Ret  : S16
1141 *
1142 *     Notes:
1143 *
1144 *     File  : 
1145 *
1146 **********************************************************/
1147 #ifdef ANSI
1148 PUBLIC S16 PtLiTfuDelDatReq
1149 (
1150 Pst * pst,
1151 SpId spId,
1152 TfuDelDatReqInfo * delDatReq
1153 )
1154 #else
1155 PUBLIC S16 PtLiTfuDelDatReq(pst, spId, delDatReq)
1156 Pst * pst;
1157 SpId spId;
1158 TfuDelDatReqInfo * DelDatReq;
1159 #endif
1160 {
1161
1162    TRC3(PtLiTfuDelDatReq)
1163
1164    UNUSED(pst);
1165    UNUSED(spId);
1166    UNUSED(delDatReq);
1167
1168    RETVALUE(ROK);
1169
1170 }
1171 #endif /*L2_OPTMZ*/
1172
1173 #endif /*--ifdef PTRGLITFU--*/
1174
1175 #ifdef __cplusplus
1176 }
1177 #endif /* __cplusplus */
1178 \f
1179 /**********************************************************************
1180  
1181          End of file
1182 **********************************************************************/