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 /************************************************************************
25 Desc: C source code for Upper Interface Module
29 **********************************************************************/
32 @brief This file contains the definitions for Upper Interface(RGR/CRG/RGU)
33 primitives that are invoked from MAC to its service users.
34 Portable functions corresponding to these primitives are also defined.
36 /* header include files (.h) */
37 #include "common_def.h"
38 #include "rg_env.h" /* MAC Environment Defines */
39 #include "crg.h" /* CRG Interface defines */
40 #include "rgr.h" /* RGR Interface defines */
41 #include "rgu.h" /* RGU Interface defines */
42 #include "rgm.h" /* RGM Interface defines*/
44 /* header/extern include files (.x) */
45 #include "crg.x" /* CRG Interface includes */
46 #include "rgr.x" /* RGR Interface includes */
47 #include "rgu.x" /* RGU Interface includes */
48 #include "rgm.x" /* RGM Interface includes*/
54 #endif /* __cplusplus */
56 #if !(defined(LCRGUIRGU) && defined(LWLCRGUIRGU) && defined(KW))
60 #if !(defined(LCRGUICRG) && defined(NH))
64 #if !(defined(LCRGUIRGR) && defined(NX))
68 #if !(defined(LCRGUIRGM) && defined(RM))
72 /* MAX Number of Service Users of RG */
73 #define RG_MAX_RGU_USR 3
75 /* MAX Number of Service Users of RG */
76 #define RG_MAX_CRG_USR 2
78 /* MAX Number of Service Users of RG */
79 #define RG_MAX_RGR_USR 2
81 /* MAX Number of Service Users of RG */
82 #define RG_MAX_RGM_USR 2
84 /** @brief Confirmation from MAC to RLC for the bind/Unbind
85 * request for the interface saps */
86 S16 PtUiRguBndCfm ARGS((Pst* pst, SuId suId, uint8_t status));
87 /** @brief Data Indication from MAC to RLC to
88 * forward the data received for common channels*/
89 S16 PtUiRguCDatInd ARGS((Pst* pst, SuId suId, RguCDatIndInfo * datInd));
90 /** @brief Data Indication from MAC to RLC to
91 * forward the data received for dedicated channels*/
92 S16 PtUiRguDDatInd ARGS((Pst* pst, SuId suId, RguDDatIndInfo * datInd));
93 /** @brief Status Indication from MAC to RLC
94 * as a response to the staRsp primitive from RLC.
95 * Informs RLC of the totalBufferSize and Timing Info
96 * for the transmission on common channels. */
97 S16 PtUiRguCStaInd ARGS((Pst* pst, SuId suId, RguCStaIndInfo * staInd));
98 /** @brief Status Indication from MAC to RLC
99 * as a response to the staRsp primitive from RLC.
100 * Informs RLC of the totalBufferSize and Timing Info
101 * for the transmission on dedicated channels. */
102 S16 PtUiRguDStaInd ARGS((Pst* pst, SuId suId, RguDStaIndInfo * staInd));
104 /**@brief HARQ Status Indication from MAC to RLC */
105 S16 PtUiRguHqStaInd ARGS((Pst* pst,SuId suId,
106 RguHarqStatusInd *harqStatusInd));
108 /**@brief PDB FLow Control Indication from MAC to RLC */
109 S16 PtUiRguFlowCntrlInd ARGS((Pst* pst,SuId suId,
110 RguFlowCntrlInd *flowCntrlInd));
111 #endif /*--#ifdef PTRGUIRGU--*/
112 S16 RgUiRguFlowCntrlInd(Pst* pst, SuId suId, RguFlowCntrlInd *flowCntrlInd);
114 #ifdef MAC_RLC_HARQ_STA_RBUF
115 S16 RgUiRguHqStaIndRbuf ARGS((Pst* pst,SuId suId,RguHarqStatusInd *harqStatusInd));
119 #if defined(MAC_RLC_UL_RBUF) && !defined(SS_RBUF)
120 static S16 RgUiRguDDatIndRbuf ARGS((RguDDatIndInfo *datInd));
122 Void rgFreeSharableSBuf ARGS((Data **data, Size size));
125 S16 PtUiRgrStaInd ARGS(( Pst* pst, SuId suId, RgrStaIndInfo *staInd));
127 /* LTE_ADV_FLAG_REMOVED_START */
128 S16 PtUiRgrLoadInfInd ARGS(( Pst* pst, SuId suId, RgrLoadInfIndInfo *loadInfInd));
129 /* LTE_ADV_FLAG_REMOVED_END */
130 S16 PtUiRgrUeStaInd ARGS
134 RgrUeStaIndInfo *staInd
137 /** @brief Confirmation from MAC to RRC for the bind/Unbind
138 * request for the interface saps */
139 S16 PtUiCrgBndCfm ARGS((Pst* pst, SuId suId, uint8_t status));
140 /** @brief Configuration Confirm from MAC to RRC */
141 S16 PtUiCrgCfgCfm ARGS((Pst* pst, SuId suId, CrgCfgTransId transId, uint8_t status));
142 #endif /*--#ifdef PTRGUICRG--*/
145 /** @brief Confirmation from MAC to RRM for the bind/Unbind
146 * request for the interface saps */
147 S16 PtUiRgrBndCfm ARGS((Pst* pst, SuId suId, uint8_t status));
148 /** @brief Configuration Confirm from MAC to RRM */
149 S16 PtUiRgrCfgCfm ARGS((Pst* pst, SuId suId, RgrCfgTransId transId, uint8_t status));
150 S16 PtUiRgrTtiInd ARGS((Pst* pst, SuId suId, RgrTtiIndInfo *ttiInd));
151 /* Added for SI Enhancement*/
152 #endif /*--#ifdef PTRGUIRGR--*/
155 S16 PtUiRgmPrbRprtInd ARGS((Pst* pst, SuId suId, RgmPrbRprtInd *prbRprtInd));
156 S16 PtUiRgmTransModeInd ARGS((Pst* pst, SuId suId, RgmTransModeInd *transModeInd));
158 S16 RgUiRgmSendPrbRprtInd ARGS((Pst* pst, SuId suId, RgmPrbRprtInd *prbRprtInd));
159 S16 RgUiRgmChangeTransModeInd ARGS((Pst* pst, SuId suId, RgmTransModeInd *transModeInd));
161 S16 RgUiRguFlowCntrlInd ARGS((Pst* pst, SuId suId, RguFlowCntrlInd *flowCntrlInd));
162 /* Added for sending TTI tick to RRM */
163 /** @brief TTI indication from MAC to RRM */
164 static const RgrTtiInd RgUiRgrTtiIndMt[RG_MAX_RGR_USR] =
178 /** @brief Configuration Confirm from MAC to RRM */
179 static const RgrCfgCfm RgUiRgrCfgCfmMt[RG_MAX_RGR_USR] =
191 /* Added for SI Enhancement*/
192 /** @brief Confirmation from MAC to RRC for the bind/Unbind
193 * request for the interface saps */
194 static const CrgBndCfm RgUiCrgBndCfmMt[RG_MAX_CRG_USR] =
208 /** @brief Configuration Confirm from MAC to RRC */
209 static const CrgCfgCfm RgUiCrgCfgCfmMt[RG_MAX_CRG_USR] =
224 /** @brief Confirmation from MAC to RLC for the bind/Unbind
225 * request for the interface saps */
226 static const RguBndCfm RgUiRguBndCfmMt[RG_MAX_RGU_USR] =
245 /** @brief Data Indication from MAC to RLC to
246 * forward the data received for common channels*/
247 static const RguCDatInd RgUiRguCDatIndMt[RG_MAX_RGU_USR] =
250 // cmPkRguCDatInd, /* TODO : Call packRcvdUlData instead */
255 //RlcProcCommLcUlData,
260 // cmPkRguCDatInd, /* TODO:Call packRcvdUlData instead */
266 /** @brief Data Indication from MAC to RLC to
267 * forward the data received for dedicated channels*/
268 static const RguDDatInd RgUiRguDDatIndMt[RG_MAX_RGU_USR] =
271 // cmPkRguDDatInd, /* TODO: Call packRcvdUlData instead */
276 //RlcProcDedLcUlData,
281 // cmPkRguDDatInd, /* TODO: Call packRcvdUlData instead */
287 /** @brief Status Indication from MAC to RLC
288 * as a response to the staRsp primitive from RLC.
289 * Informs RLC of the totalBufferSize and Timing Info
290 * for the transmission on common channels. */
291 static const RguCStaInd RgUiRguCStaIndMt[RG_MAX_RGU_USR] =
294 //cmPkRguCStaInd, /* TODO: Call packSchedRep instead of cmPkRguCStaInd */
299 //RlcMacProcSchedRep,
304 //cmPkRguCStaInd, /* TODO: Call packSchedRep instead of cmPkRguCStaInd */
310 /** @brief Status Indication from MAC to RLC
311 * as a response to the staRsp primitive from RLC.
312 * Informs RLC of the totalBufferSize and Timing Info
313 * for the transmission on dedicated channels. */
314 static const RguDStaInd RgUiRguDStaIndMt[RG_MAX_RGU_USR] =
317 //cmPkRguDStaInd, /* TODO: Call packSchedRep instead of cmPkRguDStaInd */
322 //RlcMacProcSchedRep,
327 //cmPkRguDStaInd, /* TODO: Call packSchedRep instead of cmPkRguDStaInd */
334 /** @brief HARQ Status Indication from MAC to RLC
335 * as a response to the DdatReq primitive from RLC.
336 * Informs RLC of the successful transmission of TB's
337 * (ACK/NACK) along with Mapping Info. */
338 static const RguHqStaInd RgUiRguHqStaIndMt[RG_MAX_RGU_USR] =
356 #endif /* LTE_L2_MEAS */
358 /* ccpu00117452 - MOD - Changed macro name from
359 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
361 /** @brief TTI indication from MAC to RRM */
362 static const RgrStaInd RgUiRgrStaIndMt[RG_MAX_RGR_USR] =
375 #endif /* RGR_CQI_REPT */
377 /* LTE_ADV_FLAG_REMOVED_START */
378 /** @brief LOAD INF indication from MAC to RRM */
379 static const RgrLoadInfInd RgUiRgrLoadInfIndMt[RG_MAX_RGR_USR] =
392 /* LTE_ADV_FLAG_REMOVED_END */
394 /** @brief TTI indication from MAC to RRM */
395 static const RgrUeStaInd RgUiRgrUeStaIndMt[RG_MAX_RGR_USR] =
409 /** @brief Average PRB usage indication from MAC to RRM */
410 static const RgmPrbRprtIndFptr RgUiRgmSendPrbRprtIndMt[RG_MAX_RGM_USR] =
425 /** @brief Transmission Mode Change indication from MAC to RRM */
426 static const RgmTransModeIndFptr RgUiRgmChangeTransModeIndMt[RG_MAX_RGM_USR] =
440 static const RguFlowCntrlIndInfo RgUiRguFlowCntrlIndMt[RG_MAX_RGU_USR] =
448 RlcLiRguFlowCntrlInd,
460 #endif /* __cplusplus */
464 /* Added for sending TTI tick to RRM */
467 * @brief TTI indication from MAC to RGR user.
471 * Function : RgUiRgrTtiInd
473 * @param[in] Pst* pst
474 * @param[in] SuId suId
475 * @param[in] RgrTtiIndInfo ttiInd
479 S16 RgUiRgrTtiInd(Pst* pst,SuId suId,RgrTtiIndInfo *ttiInd)
482 return ((*RgUiRgrTtiIndMt[pst->selector])(pst, suId, ttiInd));
489 * @brief Configuration Confirm from MAC to RRM
493 * Function : RgUiRgrCfgCfm
495 * @param[in] Pst* pst
496 * @param[in] SuId suId
497 * @param[in] RgrCfgTransId transId
498 * @param[in] uint8_t status
502 S16 RgUiRgrCfgCfm(Pst* pst,RgrCfgTransId transId,uint8_t status)
505 return ((*RgUiRgrCfgCfmMt[pst->selector])(pst, transId, status));
511 * @brief Confirmation from MAC to RRC for the bind/Unbind
512 * request for the interface saps
516 * Function : RgUiCrgBndCfm
518 * @param[in] Pst* pst
519 * @param[in] SuId suId
520 * @param[in] uint8_t status
524 S16 RgUiCrgBndCfm(Pst* pst,SuId suId,uint8_t status)
527 return ((*RgUiCrgBndCfmMt[pst->selector])(pst, suId, status));
534 * @brief Configuration Confirm from MAC to RRC
538 * Function : RgUiCrgCfgCfm
540 * @param[in] Pst* pst
541 * @param[in] SuId suId
542 * @param[in] CrgCfgTransId transId
543 * @param[in] uint8_t status
547 S16 RgUiCrgCfgCfm(Pst* pst,SuId suId,CrgCfgTransId transId,uint8_t status)
550 return ((*RgUiCrgCfgCfmMt[pst->selector])(pst, suId, transId, status));
556 * @brief Confirmation from MAC to RLC for the bind/Unbind
557 * request for the interface saps
561 * Function : RgUiRguBndCfm
563 * @param[in] Pst* pst
564 * @param[in] SuId suId
565 * @param[in] uint8_t status
569 S16 RgUiRguBndCfm(Pst* pst,SuId suId,uint8_t status)
572 return ((*RgUiRguBndCfmMt[pst->selector])(pst, suId, status));
581 * @brief Data Indication from MAC to RLC to
582 * forward the data received for common channels
586 * Function : RgUiRguCDatInd
588 * @param[in] Pst* pst
589 * @param[in] SuId suId
590 * @param[in] RguCDatIndInfo * datInd
594 S16 RgUiRguCDatInd(Pst* pst,SuId suId,RguCDatIndInfo *datInd)
598 return ((*RgUiRguCDatIndMt[pst->selector])(pst, suId, datInd));
604 * @brief Data Indication from MAC to RLC to
605 * forward the data received for dedicated channels
609 * Function : RgUiRguDDatInd
611 * @param[in] Pst* pst
612 * @param[in] SuId suId
613 * @param[in] RguDDatIndInfo * datInd
617 S16 RgUiRguDDatInd(Pst* pst,SuId suId,RguDDatIndInfo *datInd)
621 #if defined(MAC_RLC_UL_RBUF) && !defined(SS_RBUF)
622 return (RgUiRguDDatIndRbuf(datInd));
624 return ((*RgUiRguDDatIndMt[pst->selector])(pst, suId, datInd));
631 * @brief Status Indication from MAC to RLC
632 * as a response to the staRsp primitive from RLC.
633 * Informs RLC of the totalBufferSize and Timing Info
634 * for the transmission on common channels.
638 * Function : RgUiRguCStaInd
640 * @param[in] Pst* pst
641 * @param[in] SuId suId
642 * @param[in] RguCStaIndInfo * staInd
646 S16 RgUiRguCStaInd(Pst* pst,SuId suId,RguCStaIndInfo *staInd)
649 return ((*RgUiRguCStaIndMt[pst->selector])(pst, suId, staInd));
656 * @brief Status Indication from MAC to RLC
657 * as a response to the staRsp primitive from RLC.
658 * Informs RLC of the totalBufferSize and Timing Info
659 * for the transmission on dedicated channels.
663 * Function : RgUiRguDStaInd
665 * @param[in] Pst* pst
666 * @param[in] SuId suId
667 * @param[in] RguDStaIndInfo * staInd
671 S16 RgUiRguDStaInd(Pst* pst,SuId suId,RguDStaIndInfo *staInd)
674 return ((*RgUiRguDStaIndMt[pst->selector])(pst, suId, staInd));
678 /* TODO: Function header */
679 S16 RgUiRguHqStaInd(Pst* pst,SuId suId,RguHarqStatusInd *harqStatusInd)
682 #if defined(SPLIT_RLC_DL_TASK) && defined(MAC_RLC_HARQ_STA_RBUF)
684 ret = RgUiRguHqStaIndRbuf(pst,suId,harqStatusInd);
687 return ((*RgUiRguHqStaIndMt[pst->selector])(pst, suId, harqStatusInd));
690 } /* RgUiRguHqStaInd */
691 #endif /* LTE_L2_MEAS */
693 S16 RgUiRguFlowCntrlInd(Pst* pst,SuId suId,RguFlowCntrlInd *flowCntrlInd)
695 return ((*RgUiRguFlowCntrlIndMt[pst->selector])(pst, suId, flowCntrlInd));
697 /* Added for SI Enhancement*/
700 /* ccpu00117452 - MOD - Changed macro name from
701 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
704 * @brief STA indication from MAC to RGR user.
708 * Function : RgUiRgrStaInd
710 * @param[in] Pst* pst
711 * @param[in] SuId suId
712 * @param[in] RgrStaIndInfo *staInd
716 S16 RgUiRgrStaInd(Pst* pst,SuId suId,RgrStaIndInfo *staInd)
719 return ((*RgUiRgrStaIndMt[pst->selector])(pst, suId, staInd));
722 #endif /* End of RGR_CQI_REPT */
724 /* LTE_ADV_FLAG_REMOVED_START */
726 * @brief LOAD INF indication from MAC to RGR user.
730 * Function : RgUiRgrLoadInfInd
732 * @param[in] Pst* pst
733 * @param[in] SuId suId
734 * @param[in] RgrLoadInfIndInfo *loadInfInd
738 S16 RgUiRgrLoadInfInd( Pst* pst, SuId suId,RgrLoadInfIndInfo *loadInfInd )
741 return ((*RgUiRgrLoadInfIndMt[pst->selector])(pst, suId, loadInfInd));
744 /* LTE_ADV_FLAG_REMOVED_END */
747 * @brief UESTA indication from MAC to RGR user.
751 * Function : RgUiRgrUeStaInd
753 * @param[in] Pst* pst
754 * @param[in] SuId suId
755 * @param[in] RgrStaIndInfo *staInd
759 S16 RgUiRgrUeStaInd(Pst *pst,SuId suId,RgrUeStaIndInfo *ueStaInd)
762 return ((*RgUiRgrUeStaIndMt[pst->selector])(pst, suId, ueStaInd));
765 #endif /*--ifdef RG--*/
770 * @brief Confirmation from MAC to RRC for the bind/Unbind
771 * request for the interface saps
775 * Function : PtUiCrgBndCfm
777 * @param[in] Pst* pst
778 * @param[in] SuId suId
779 * @param[in] uint8_t status
783 S16 PtUiCrgBndCfm(Pst* pst,SuId suId,uint8_t status)
797 * @brief Configuration Confirm from MAC to RRC
801 * Function : PtUiCrgCfgCfm
803 * @param[in] Pst* pst
804 * @param[in] SuId suId
805 * @param[in] CrgCfgTransId transId
806 * @param[in] uint8_t status
810 S16 PtUiCrgCfgCfm(Pst* pst,SuId suId,CrgCfgTransId transId,uint8_t status)
821 #endif /*--ifdef PTRGUICRG--*/
826 * @brief Confirmation from MAC to RLC for the bind/Unbind
827 * request for the interface saps
831 * Function : PtUiRguBndCfm
833 * @param[in] Pst* pst
834 * @param[in] SuId suId
835 * @param[in] uint8_t status
839 S16 PtUiRguBndCfm(Pst* pst,SuId suId,uint8_t status)
853 * @brief Data Indication from MAC to RLC to
854 * forward the data received for common channels
858 * Function : PtUiRguCDatInd
860 * @param[in] Pst* pst
861 * @param[in] SuId suId
862 * @param[in] RguCDatIndInfo * datInd
866 S16 PtUiRguCDatInd(Pst* pst,SuId suId,RguCDatIndInfo *datInd)
880 * @brief Data Indication from MAC to RLC to
881 * forward the data received for dedicated channels
885 * Function : PtUiRguDDatInd
887 * @param[in] Pst* pst
888 * @param[in] SuId suId
889 * @param[in] RguDDatIndInfo * datInd
893 S16 PtUiRguDDatInd(Pst* pst,SuId suId,RguDDatIndInfo *datInd)
907 * @brief Status Indication from MAC to RLC
908 * as a response to the staRsp primitive from RLC.
909 * Informs RLC of the totalBufferSize and Timing Info
910 * for the transmission on common channels.
914 * Function : PtUiRguCStaInd
916 * @param[in] Pst* pst
917 * @param[in] SuId suId
918 * @param[in] RguCStaIndInfo * staInd
922 S16 PtUiRguCStaInd(Pst* pst,SuId suId,RguCStaIndInfo *staInd)
936 * @brief Status Indication from MAC to RLC
937 * as a response to the staRsp primitive from RLC.
938 * Informs RLC of the totalBufferSize and Timing Info
939 * for the transmission on dedicated channels.
943 * Function : PtUiRguDStaInd
945 * @param[in] Pst* pst
946 * @param[in] SuId suId
947 * @param[in] RguDStaIndInfo * staInd
951 S16 PtUiRguDStaInd(Pst* pst,SuId suId,RguDStaIndInfo *staInd)
962 /* TODO: Function Header */
963 S16 PtUiRguHqStaInd(Pst* pst,SuId suId,RguHarqStatusInd *harqStatusInd)
968 UNUSED(harqStatusInd);
973 #endif /* LTE_L2_MEAS */
975 S16 PtUiRguFlowCntrlInd(Pst* pst,SuId suId,RguFlowCntrlInd *flowCntrlInd)
980 UNUSED(flowCntrlInd);
986 #endif /*--ifdef PTRGUIRGU--*/
991 * @brief Confirmation from MAC to RRM for the bind/Unbind
992 * request for the interface saps
996 * Function : PtUiRgrBndCfm
998 * @param[in] Pst* pst
999 * @param[in] SuId suId
1000 * @param[in] uint8_t status
1004 S16 PtUiRgrBndCfm(Pst* pst,SuId suId,uint8_t status)
1015 /* Added for sending TTI tick to RRM */
1018 * @brief TTI indication from MAC to RGR user.
1022 * Function : PtUiRgrTtiInd
1024 * @param[in] Pst* pst
1025 * @param[in] SuId suId
1026 * @param[in] RgrTtiIndInfo *ttiInd
1030 S16 PtUiRgrTtiInd(Pst* pst,SuId suId,RgrTtiIndInfo *ttiInd)
1044 * @brief Configuration Confirm from MAC to RRM
1048 * Function : PtUiRgrCfgCfm
1050 * @param[in] Pst* pst
1051 * @param[in] SuId suId
1052 * @param[in] RgrCfgTransId transId
1053 * @param[in] uint8_t status
1057 S16 PtUiRgrCfgCfm(Pst* pst,SuId suId,RgrCfgTransId transId,uint8_t status)
1069 /* Added for SI Enhancement*/
1071 /* ccpu00117452 - MOD - Changed macro name from
1072 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
1075 * @brief STA indication from MAC to RGR user.
1079 * Function : PtUiRgrStaInd
1081 * @param[in] Pst* pst
1082 * @param[in] SuId suId
1083 * @param[in] RgrStaIndInfo *staInd
1087 S16 PtUiRgrStaInd(Pst* pst,SuId suId,RgrStaIndInfo *staInd)
1097 #endif /* End of RGR_CQI_REPT */
1098 /* LTE_ADV_FLAG_REMOVED_START */
1100 * @brief LOAD INF indication from MAC to RGR user.
1104 * Function : PtUiRgrLoadInfInd
1106 * @param[in] Pst* pst
1107 * @param[in] SuId suId
1108 * @param[in] RgrLoadInfIndInfo *loadInfInd
1112 S16 PtUiRgrLoadInfInd( Pst* pst, SuId suId, RgrLoadInfIndInfo *loadInfInd )
1122 /* LTE_ADV_FLAG_REMOVED_END */
1125 * @brief STA indication from MAC to RGR user.
1129 * Function : PtUiRgrUeStaInd
1131 * @param[in] Pst* pst
1132 * @param[in] SuId suId
1133 * @param[in] RgrUeStaIndInfo *ueStaInd
1137 S16 PtUiRgrUeStaInd(Pst* pst,SuId suId,RgrUeStaIndInfo *ueStaInd)
1147 #endif /*--ifdef PTRGUIRGR--*/
1153 * @brief Average PRB indication from MAC to RRM
1157 * Function : PtUiRgmPrbRprtInd
1159 * @param[in] Pst* pst
1160 * @param[in] SuId suId
1161 * @param[in] RgrUeStaIndInfo *ueStaInd
1165 S16 PtUiRgmPrbRprtInd(Pst* pst,SuId suId,RgmPrbRprtInd *prbRprtInd)
1177 * @brief Transmission Mode Change indication from MAC to RRM
1181 * Function : PtUiRgmTransModeInd
1183 * @param[in] Pst* pst
1184 * @param[in] SuId suId
1185 * @param[in] RgmTransModeInd *transModeInd
1189 S16 PtUiRgmTransModeInd(Pst* pst,SuId suId,RgmTransModeInd *transModeInd)
1194 UNUSED(transModeInd);
1202 * @brief Average PRB indication from MAC to RRM
1206 * Function : RgUiRgmSendPrbRprtInd
1208 * @param[in] Pst* pst
1209 * @param[in] SuId suId
1210 * @param[in] RgmPrbRprtInd prbRprtInd
1214 S16 RgUiRgmSendPrbRprtInd(Pst* pst,SuId suId,RgmPrbRprtInd *prbRprtInd)
1216 return ((*RgUiRgmSendPrbRprtIndMt[pst->selector])(pst, suId, prbRprtInd));
1220 * @brief Transmission Mode change indication from MAC to RRM
1224 * Function : RgUiRgmChangeTransModeInd
1226 * @param[in] Pst* pst
1227 * @param[in] SuId suId
1228 * @param[in] RgmTransModeInd transModeInd
1232 S16 RgUiRgmChangeTransModeInd(Pst* pst,SuId suId,RgmTransModeInd *transModeInd)
1234 return ((*RgUiRgmChangeTransModeIndMt[pst->selector])(pst, suId, transModeInd));
1237 #if defined(MAC_RLC_UL_RBUF) && !defined(SS_RBUF)
1238 static S16 RgUiRguDDatIndRbuf(RguDDatIndInfo *datInd)
1242 RguDedDatInd1 *rguDatIndl = NULLP;
1243 elem = SRngGetWIndx(SS_RNG_BUF_ULMAC_TO_ULRLC);
1244 rguDatIndl = (RguDedDatInd1 *) elem;
1247 SsRngInfoTbl[SS_RNG_BUF_ULMAC_TO_ULRLC].pktDrop++;
1249 for(i = 0; i< datInd->numLch; i++)
1251 for(j = 0; j < datInd->lchData[i].pdu.numPdu; j++)
1253 if(datInd->lchData[i].pdu.mBuf[j])
1255 ODU_PUT_MSG_BUF(datInd->lchData[i].pdu.mBuf[j]);
1259 rgFreeSharableSBuf((Data **)&datInd,sizeof(RguDDatIndInfo));
1264 rguDatIndl->msg = datInd;
1265 SRngIncrWIndx(SS_RNG_BUF_ULMAC_TO_ULRLC);
1266 SsRngInfoTbl[SS_RNG_BUF_ULMAC_TO_ULRLC].pktRate++;
1273 #ifdef MAC_RLC_HARQ_STA_RBUF
1274 S16 RgUiRguHqStaIndRbuf (Pst* pst,SuId suId,RguHarqStatusInd *harqStatusInd)
1278 RguHarqStaInd *harqStaInd = NULLP;
1279 elem = SRngGetWIndx(SS_RNG_BUF_MAC_HARQ);
1280 harqStaInd = (RguHarqStaInd*) elem;
1283 SsRngInfoTbl[SS_RNG_BUF_MAC_HARQ].pktDrop++;
1288 memcpy(&(harqStaInd->hqStatusInd), harqStatusInd, sizeof(RguHarqStatusInd));
1289 memcpy(&(harqStaInd->pst), pst, sizeof(Pst));
1290 SRngIncrWIndx(SS_RNG_BUF_MAC_HARQ);
1291 SsRngInfoTbl[SS_RNG_BUF_MAC_HARQ].pktRate++;
1299 /**********************************************************************
1302 **********************************************************************/