Initial commit
[o-du/l2.git] / src / cm / rgr.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
21   Name:     LTE-MAC layer 
22   
23   Type:     C Include File 
24   
25   Desc:     Structures, variables, and typedefs required by the LTE MAC-RRM
26             Control (RGR) interface.
27
28   File:     rgr.x 
29
30 **********************************************************************/
31
32 #ifndef __RGR_X__ 
33 #define __RGR_X__
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 #define MAX_5GTF_SUBFRAME_INFO 10
39 /** 
40   @file rgr.x 
41   @brief Structure declarations and definitions for RGR interface.
42   */
43 /** Group power formats */
44 typedef enum rgrGrpPwrFormat
45 {
46    RGR_PWR_FORMAT_3, /**< Power Format 3 */
47    RGR_PWR_FORMAT_3A /**< Power Format 3A */
48 } RgrGrpPwrFormat;
49
50 /** @name  LTE_TDD */
51 /** @{ */
52 #ifdef LTE_TDD
53 /** Indicates one of the two TDD ACK/NACK feedback modes */
54 typedef enum rgrTddAckNackMode
55 {
56    /* rgr_x_001.main_10. Added changes of TFU_UPGRADE */
57    RGR_TDD_ACKNACK_MODE_BUNDL, /**< TDD Ack/Nack Mode Bundle */
58    RGR_TDD_ACKNACK_MODE_MULT   /**< TDD Ack/Nack Mode Multiplex */
59 } RgrTddAckNackMode;
60 #endif /* LTE_TDD */
61 /** @} */
62
63 /**  Periodicity of Downlink CQI Transmission per UE */
64 typedef enum rgrCqiPrdicity
65 {
66    RGR_CQI_PRD_MS2 = 2,   /**< CQI Periodicity of 2ms */
67    RGR_CQI_PRD_MS5 = 5,   /**< CQI Periodicity of 5ms */ 
68    RGR_CQI_PRD_MS10 = 10, /**< CQI Periodicity of 10ms */
69    RGR_CQI_PRD_MS20 = 20, /**< CQI Periodicity of 20ms */
70    RGR_CQI_PRD_MS32 = 32, /**< CQI Periodicity of 32ms */
71    RGR_CQI_PRD_MS40 = 40, /**< CQI Periodicity of 40ms */
72    RGR_CQI_PRD_MS64 = 64, /**< CQI Periodicity of 64ms */
73    RGR_CQI_PRD_MS80 = 80, /**< CQI Periodicity of 80ms */
74    RGR_CQI_PRD_MS128 = 128, /**< CQI Periodicity of 128ms */
75    RGR_CQI_PRD_MS160 = 160, /**< CQI Periodicity of 160ms */
76    RGR_CQI_PRD_MS256 = 256, /**< CQI Periodicity of 256ms */
77    RGR_CQI_PRD_MSOff /**< CQI Periodicity OFF */
78 } RgrCqiPrdicity;
79
80 /** 
81  * Periodic CQI Transmission Modes */
82 typedef enum rgrPrdCqiMode
83 {
84    RGR_PRD_CQI_MOD10,/**< Periodic CQI Mode 1-0 */
85    RGR_PRD_CQI_MOD11,/**< Periodic CQI Mode 1-1 */ 
86    RGR_PRD_CQI_MOD20,/**< Periodic CQI Mode 2-0 */
87    RGR_PRD_CQI_MOD21 /**< Periodic CQI Mode 2-1 */
88 } RgrPrdCqiMode;
89
90 /** Different values for Power Aplha parameter. Divide it by 10 to get
91  * the actual value of the enum that is 0, 0.4, 0.5, 0.6 etc...*/
92 typedef enum rgrPwrAlpha
93 {
94    RGR_PWR_ALPHA0 = 0,   /**< Power Aplha Value 0*/
95    RGR_PWR_ALPHA4 = 4,   /**< Power Aplha Value 0.4*/
96    RGR_PWR_ALPHA5 = 5,   /**< Power Aplha Value 0.5*/
97    RGR_PWR_ALPHA6 = 6,   /**< Power Aplha Value 0.6*/
98    RGR_PWR_ALPHA7 = 7,   /**< Power Aplha Value 0.7*/
99    RGR_PWR_ALPHA8 = 8,   /**< Power Aplha Value 0.8*/
100    RGR_PWR_ALPHA9 = 9,   /**< Power Aplha Value 0.9*/
101    RGR_PWR_ALPHAALL = 10 /**< Power Aplha Value 1*/
102 } RgrPwrAlpha;
103
104 /** Different Values for ACK/NACK Repetition Factor*/
105 typedef enum rgrAckNackRepFactor
106 {
107    RGR_ACKNACK_REPFACT_N2 = 2,  /**< ACK/NACK Repetition Factor value 2 */
108    RGR_ACKNACK_REPFACT_N4 = 4,  /**< ACK/NACK Repetition Factor value 4 */
109    RGR_ACKNACK_REPFACT_N6 = 6   /**< ACK/NACK Repetition Factor value 6 */
110 } RgrAckNackRepFactor;
111
112 /* rgr_x_001.main_8 - Changes for MIMO feature addition */
113 /** @{ */
114 /** 
115  * UE Transmission Modes state transition in case of recfg */
116 typedef enum rgrTxModeTrnstn
117 {
118    RGR_TXMODE_RECFG_CMPLT = 0,
119    RGR_TXMODE_RECFG_START
120 }RgrTxModeTrnstn;
121
122 /** @} */
123 /** 
124  * UE Transmission Modes */
125 typedef enum rgrTxMode
126 {
127    RGR_UE_TM_1 = 1,    /**< Transmission Mode 1 */
128    RGR_UE_TM_2,        /**< Transmission Mode 2 */
129    RGR_UE_TM_3,        /**< Transmission Mode 3 */
130    RGR_UE_TM_4,        /**< Transmission Mode 4 */
131    RGR_UE_TM_5,        /**< Transmission Mode 5 */
132    RGR_UE_TM_6,        /**< Transmission Mode 6 */
133    RGR_UE_TM_7,        /**< Transmission Mode 7 */
134    RGR_UE_TM_8         /**< Transmission Mode 8 */
135 #ifdef LTE_ADV
136    ,        
137    RGR_UE_TM_9         /**< Transmission Mode 9 */
138 #endif
139 } RgrTxMode;
140 /** 
141  * Random access system frame number */
142 typedef enum rgrRaSfn
143 {
144    RGR_SFN_EVEN, /**< Even Sub Frame */
145    RGR_SFN_ANY,  /**< Any Sub Frame */
146 /** @name LTE_TDD */
147 /** @{ */
148 #ifdef LTE_TDD 
149    RGR_SFN_ODD, /**< Odd Sub Frame */
150 #endif /*LTE_TDD */
151 /** @} */
152    RGR_SFN_NA /**< Sub Frame Not Available */
153 } RgrRaSfn;
154 /** 
155  * Configuration period per Cell for SRS */
156 typedef enum rgrSrsCfgPrd
157 {
158    RGR_SRS_CFG_PRD_1 = 1, /**< Sounding Reference signal periodicity 1ms */
159    RGR_SRS_CFG_PRD_2 = 2, /**< Sounding Reference signal periodicity 2ms */
160    RGR_SRS_CFG_PRD_5 = 5, /**< Sounding Reference signal periodicity 5ms */
161    RGR_SRS_CFG_PRD_10 = 10, /**< Sounding Reference signal periodicity 10ms */
162    RGR_SRS_CFG_PRD_INF  /**< Sounding Reference signal periodicity Infinite  */
163 } RgrSrsCfgPrd;
164
165 /** 
166  * SRS Bandwidth Configuration per cell for SRS */
167 typedef enum rgrSrsBwCfg
168 {
169    RGR_SRS_BWCFG_0 = 0, /**< Sounding Reference Signal BW CFG 0 */ 
170    RGR_SRS_BWCFG_1 = 1, /**< Sounding Reference Signal BW CFG 1 */ 
171    RGR_SRS_BWCFG_2 = 2, /**< Sounding Reference Signal BW CFG 2 */ 
172    RGR_SRS_BWCFG_3 = 3, /**< Sounding Reference Signal BW CFG 3 */ 
173    RGR_SRS_BWCFG_4 = 4, /**< Sounding Reference Signal BW CFG 4 */ 
174    RGR_SRS_BWCFG_5 = 5, /**< Sounding Reference Signal BW CFG 5 */ 
175    RGR_SRS_BWCFG_6 = 6, /**< Sounding Reference Signal BW CFG 6 */
176    RGR_SRS_BWCFG_7 = 7  /**< Sounding Reference Signal BW CFG 7 */
177 } RgrSrsBwCfg;
178
179
180 /** 
181  * Ng values for PHICH For more details refer to 36.211 Sec 6.9*/
182 typedef enum rgrPhichNg
183 {
184    RGR_NG_ONESIXTH, /**< PHICH Ng Values 1/6 */
185    RGR_NG_HALF,     /**< PHICH Ng Values 1/2 */
186    RGR_NG_ONE,      /**< PHICH Ng Values 1 */
187    RGR_NG_TWO       /**< PHICH Ng Values 2 */
188 } RgrPhichNg;
189 /** 
190  * Aperiodic CQI Transmission Modes */
191 typedef enum rgrAprdCqiMode
192 {
193    RGR_APRD_CQI_MOD12,  /**< Aperiodic CQI Mode 1-2 */
194    RGR_APRD_CQI_MOD20,  /**< Aperiodic CQI Mode 2-0 */
195    RGR_APRD_CQI_MOD22,  /**< Aperiodic CQI Mode 2-2 */
196    RGR_APRD_CQI_MOD30, /**< Aperiodic CQI Mode 3-0 */
197    RGR_APRD_CQI_MOD31  /**< Aperiodic CQI Mode 3-1 */
198 } RgrAprdCqiMode;
199 /*rgr_x_001.main_9 - Added support for SPS*/
200 /**
201 * Number of empty transmissions for Implicit Release */
202 /*rgr_x_001.main_11 MOD added comments*/
203 typedef enum rgrSpsImplRelCnt
204 {
205    RGR_SPS_E2 = 2,  /**< SPS Implicit release count 2 */
206    RGR_SPS_E3 = 3,  /**< SPS Implicit release count 3 */
207    RGR_SPS_E4 = 4,  /**< SPS Implicit release count 4 */
208    RGR_SPS_E8 = 8   /**< SPS Implicit release count 8 */
209 } RgrSpsImplRelCnt;
210
211 /** 
212  * TODO: Check if needed this way
213  * SPS Periodicty values */
214 /*rgr_x_001.main_11 MOD added comments*/
215 typedef enum rgrSpsPrd
216 {
217    RGR_SPS_PRD_10SF = 10,  /**< SPS peridicity 10 */
218    RGR_SPS_PRD_20SF = 20,  /**< SPS peridicity 20 */
219    RGR_SPS_PRD_32SF = 32,  /**< SPS peridicity 32 */
220    RGR_SPS_PRD_40SF = 40,  /**< SPS peridicity 40 */
221    RGR_SPS_PRD_64SF = 64,  /**< SPS peridicity 64 */
222    RGR_SPS_PRD_80SF = 80,  /**< SPS peridicity 80 */
223    RGR_SPS_PRD_128SF = 128,  /**< SPS peridicity 128 */
224    RGR_SPS_PRD_160SF = 160,  /**< SPS peridicity 160 */
225    RGR_SPS_PRD_320SF = 320,  /**< SPS peridicity 320 */
226    RGR_SPS_PRD_640SF = 640,  /**< SPS peridicity 640 */
227    RGR_SPS_PRD_INVALID       /**< SPS peridicity invalid */  
228 } RgrSpsPrd;
229
230
231
232 /* rgr_x_001.main_5:ADD-Added for SI Enhancement. */
233
234 /**@name RGR_SI_SCH */
235 /**@{ */
236 #ifdef RGR_SI_SCH
237 /**
238  * SIs Periodicity */ 
239 typedef enum _rgrSiPerd
240 {
241    RGR_SI_PERD_8   = 8,    /**< SI Periodicity 8 RF */
242    RGR_SI_PERD_16  = 16,   /**< SI Periodicity 16 RF */
243    RGR_SI_PERD_32  = 32,   /**< SI Periodicity 32 RF */
244    RGR_SI_PERD_64  = 64,   /**< SI Periodicity 64 RF */
245    RGR_SI_PERD_128 = 128,  /**< SI Periodicity 128 RF */
246    RGR_SI_PERD_256 = 256,  /**< SI Periodicity 256 RF */
247    RGR_SI_PERD_512 = 512   /**< SI Periodicity 512 RF */
248 } RgrSiPeriodicity;
249
250 /*rgr_x_001.main_11 ccpu00115364 ADD changed U8 to enum for modPrd*/
251 /*modification period = (modificationPeriodCoeff * defaultPagingCycle)%m*/
252 /*where modificationPeriodCoeff={2,4,8,16} defaultPagingCycle={32,64,128,256}*/
253 /**
254   @brief Modification period Periodicity */ 
255 typedef enum _rgrModPerd
256 {
257    RGR_MOD_PERD_64   = 64,    /**< modification period 64 RF */
258    RGR_MOD_PERD_128  = 128,   /**< modification period 128 RF */
259    RGR_MOD_PERD_256  = 256,   /**< modification period 256 RF */
260    RGR_MOD_PERD_512  = 512,   /**< modification period 512 RF */
261    RGR_MOD_PERD_1024 = 1024  /**< modification period 1024 RF */
262 } RgrModPeriodicity;
263
264 /** SI Configuration Type */
265 typedef enum  rgrSiCfgType
266 {
267    RGR_SI_CFG_TYPE_MIB = 0,   /**< SI CFG Type MIB */
268    RGR_SI_CFG_TYPE_SIB1,      /**< SI CFG TYPE SIB1 */
269    RGR_SI_CFG_TYPE_SI,         /**< SI CFG TYPE SI */
270    RGR_SI_CFG_TYPE_SIB1_PWS,    /**< SI CFG TYPE SIB1 PWS */
271    RGR_SI_CFG_TYPE_SIB8_CDMA,      /**< SI CFG TYPE SIB8 */
272    RGR_SI_STOP
273 #ifdef EMTC_ENABLE
274    ,
275    RGR_SI_CFG_EMTC_TYPE_SIB1_BR,
276    RGR_SI_CFG_EMTC_TYPE_SIB1_BR_PER,
277    RGR_SI_CFG_EMTC_TYPE_SI,
278    RGR_SI_CFG_EMTC_TYPE_SI_PER
279 #endif
280 } RgrSiCfgType;
281 #endif /*RGR_SI_SCH*/
282 /**@} */
283
284 /*rgr_x_001.main_11 ADD added changes for DRX*/
285 /**
286  * @brief DRX Timer Period */ 
287 typedef enum _rgrDrxTmrPerd
288 {
289    RGR_DRX_PRD_0PSF    = 0, /**< DRX timer period 0 PDCCH sf */
290    RGR_DRX_PRD_1PSF    = 1, /**< DRX timer period 1 PDCCH sf */
291    RGR_DRX_PRD_2PSF    = 2, /**< DRX timer period 2 PDCCH sf */
292    RGR_DRX_PRD_3PSF    = 3, /**< DRX timer period 3 PDCCH sf */
293    RGR_DRX_PRD_4PSF    = 4, /**< DRX timer period 4 PDCCH sf */
294    RGR_DRX_PRD_5PSF    = 5, /**< DRX timer period 5 PDCCH sf */
295    RGR_DRX_PRD_6PSF    = 6, /**< DRX timer period 6 PDCCH sf */
296    RGR_DRX_PRD_8PSF    = 8, /**< DRX timer period 8 PDCCH sf */
297    RGR_DRX_PRD_10PSF   = 10, /**< DRX timer period 10 PDCCH sf */
298    RGR_DRX_PRD_16PSF   = 16, /**< DRX timer period 16 PDCCH sf */
299    RGR_DRX_PRD_20PSF   = 20, /**< DRX timer period 20 PDCCH sf */
300    RGR_DRX_PRD_24PSF   = 24, /**< DRX timer period 24 PDCCH sf */
301    RGR_DRX_PRD_30PSF   = 30, /**< DRX timer period 30 PDCCH sf */
302    RGR_DRX_PRD_33PSF   = 33, /**< DRX timer period 33 PDCCH sf */
303    RGR_DRX_PRD_40PSF   = 40, /**< DRX timer period 40 PDCCH sf */
304    RGR_DRX_PRD_50PSF   = 50, /**< DRX timer period 50 PDCCH sf */
305    RGR_DRX_PRD_60PSF   = 60, /**< DRX timer period 60 PDCCH sf */
306    RGR_DRX_PRD_64PSF   = 64, /**< DRX timer period 64 PDCCH sf */
307    RGR_DRX_PRD_80PSF   = 80, /**< DRX timer period 80 PDCCH sf */
308    RGR_DRX_PRD_96PSF   = 96, /**< DRX timer period 96 PDCCH sf */
309    RGR_DRX_PRD_100PSF  = 100, /**< DRX timer period 100 PDCCH sf */
310    RGR_DRX_PRD_112PSF  = 112, /**< DRX timer period 112 PDCCH sf */
311    RGR_DRX_PRD_128PSF  = 128, /**< DRX timer period 128 PDCCH sf */
312    RGR_DRX_PRD_160PSF  = 160, /**< DRX timer period 160 PDCCH sf */
313    RGR_DRX_PRD_200PSF  = 200, /**< DRX timer period 200 PDCCH sf */
314    RGR_DRX_PRD_300PSF  = 300, /**< DRX timer period 300 PDCCH sf */
315    RGR_DRX_PRD_320PSF  = 320, /**< DRX timer period 320 PDCCH sf */
316    RGR_DRX_PRD_400PSF  = 400, /**< DRX timer period 300 PDCCH sf */
317    RGR_DRX_PRD_500PSF  = 500, /**< DRX timer period 500 PDCCH sf */
318    RGR_DRX_PRD_600PSF  = 600, /**< DRX timer period 600 PDCCH sf */
319    RGR_DRX_PRD_750PSF  = 750, /**< DRX timer period 750 PDCCH sf */
320    RGR_DRX_PRD_800PSF  = 800, /**< DRX timer period 800 PDCCH sf */
321    RGR_DRX_PRD_1000PSF = 1000, /**< DRX timer period 1000 PDCCH sf */
322    RGR_DRX_PRD_1200PSF = 1200, /**< DRX timer period 1200 PDCCH sf */
323    RGR_DRX_PRD_1280PSF = 1280, /**< DRX timer period 1280 PDCCH sf */
324    RGR_DRX_PRD_1600PSF = 1600, /**< DRX timer period 1600 PDCCH sf */
325    RGR_DRX_PRD_1920PSF = 1920, /**< DRX timer period 1920 PDCCH sf */
326    RGR_DRX_PRD_2560PSF = 2560 /**< DRX timer period 2560 PDCCH sf */
327 }RgrDrxTmrPrd;
328
329
330 /*rgr_x_001.main_11 ADD added changes for DRX*/
331 /**
332  * @brief DRX Cycle Period */ 
333 typedef enum _rgrDrxCyclePerd
334 {
335    RGR_DRX_PRD_2SF     = 2,  /**< DRX cycle period 2 sf */ 
336    RGR_DRX_PRD_5SF     = 5,  /**< DRX cycle period 5 sf */
337    RGR_DRX_PRD_8SF     = 8,  /**< DRX cycle period 8 sf */
338    RGR_DRX_PRD_10SF    = 10, /**< DRX cycle period 10 sf */
339    RGR_DRX_PRD_16SF    = 16, /**< DRX cycle period 16 sf */
340    RGR_DRX_PRD_20SF    = 20, /**< DRX cycle period 20 sf */
341    RGR_DRX_PRD_32SF    = 32, /**< DRX cycle period 32 sf */
342    RGR_DRX_PRD_40SF    = 40, /**< DRX cycle period 40 sf */
343    RGR_DRX_PRD_64SF    = 64, /**< DRX cycle period 64 sf */
344    RGR_DRX_PRD_80SF    = 80, /**< DRX cycle period 80 sf */
345    RGR_DRX_PRD_128SF   = 128, /**< DRX cycle period 128 sf */
346    RGR_DRX_PRD_160SF   = 160, /**< DRX cycle period 160 sf */
347    RGR_DRX_PRD_256SF   = 256, /**< DRX cycle period 256 sf */
348    RGR_DRX_PRD_320SF   = 320, /**< DRX cycle period 320 sf */
349    RGR_DRX_PRD_512SF   = 512, /**< DRX cycle period 512 sf */
350    RGR_DRX_PRD_640SF   = 640, /**< DRX cycle period 640 sf */
351    RGR_DRX_PRD_1024SF  = 1024, /**< DRX cycle period 1024 sf */
352    RGR_DRX_PRD_1280SF  = 1280, /**< DRX cycle period 1280 sf */
353    RGR_DRX_PRD_2048SF  = 2048, /**< DRX cycle period 2048 sf */
354    RGR_DRX_PRD_2560SF  = 2560 /**< DRX cycle period 2560 sf */
355 }RgrDrxCyclePrd;
356
357 /*rgr_x_001.main_11 ADD added changes for DRX*/
358 /**
359  * @brief DRX Short Cycle Timer values */ 
360 typedef enum _rgrDrxShortCycleTmr
361 {
362    RGR_DRX_SHRTCYCLE_MIN = 1,  /**< min DRX short cycle timer val */
363    RGR_DRX_SHRTCYCLE_MAX = 16  /**< max DRX short cycle timer val */
364 }RgrDrxShrtCycleTmr;
365
366 /*rgr_x_001.main_11 ADD added changes for R9*/
367 /**@name LTEMAC_R9 */
368 /**@{ */
369 #ifdef LTEMAC_R9
370 /**
371  * @brief DRX CQI Mask */ 
372 typedef enum _rgrDrxCqiMask
373 {
374    RGR_DRX_SETUP = 0  /**< DRX CQI mask value */
375 }RgrDrxCqiMask;
376 #endif
377 /**@} */
378       
379 /*rgr_x_001.main_11 ADD added changes for CQI management*/
380 /** 
381   @brief Enumerated P_A Values */
382 typedef enum 
383 {
384    RGRUE_DLPWRCNTRL_PA_DB_6 = 0,
385    RGRUE_DLPWRCNTRL_PA_DB_4DOT77,
386    RGRUE_DLPWRCNTRL_PA_DB_3,
387    RGRUE_DLPWRCNTRL_PA_DB_1DOT77,
388    RGRUE_DLPWRCNTRL_PA_DB0,
389    RGRUE_DLPWRCNTRL_PA_DB1,
390    RGRUE_DLPWRCNTRL_PA_DB2,
391    RGRUE_DLPWRCNTRL_PA_DB3
392 } RgrUeDlPwrCntrlPaCfg;
393
394 /*f1b_Sprint3*/
395 typedef enum rgrSchFrmt1b3TypEnum
396 {
397    RG_SCH_UCI_FORMAT1A_1B,
398    RG_SCH_UCI_FORMAT1B_CS,
399    RG_SCH_UCI_FORMAT3,
400    RG_SCH_UCI_FORMAT_NON_CA
401 }RgrSchFrmt1b3TypEnum;
402 /*f1b_Sprint3*/
403
404 /** @brief Transaction ID between MAC and RRM */
405 typedef struct rgrCfgTransId
406 {
407    U8 trans[RGR_CFG_TRANSID_SIZE]; /*!< RRM Transaction ID */
408 } RgrCfgTransId;
409
410 /** @brief  Downlink HARQ configuration per Cell */
411 typedef struct rgrDlHqCfg
412 {
413    U8  maxDlHqTx;            /*!< Maximum number of DL HARQ Transmissions.
414                                   Minimum value is 1, maximum can be defined
415                                   by the user */    
416    U8  maxMsg4HqTx;          /*!< Maximum msg4(Random Access) HARQ Transmissions
417                                   Minimum value is 1, Maximum can be defined by
418                                   the user */
419 } RgrDlHqCfg;
420
421 /** @brief Range of RNTIs managed by MAC */
422 typedef struct rgrRntiCfg
423 {
424    CmLteRnti startRnti;      /*!< Start RNTI for the range managed by MAC */
425    U16       size;           /*!< Indicates contiguous range of RNTI managed by
426                                   MAC */
427 } RgrRntiCfg;
428
429 /** @brief Downlink common channel code rate configuration per cell */
430 typedef struct rgrDlCmnCodeRateCfg
431 {
432    U16 bcchPchRaCodeRate;    /*!< BCCH on DLSCH, PCH and RARsp coding rate.
433                               * This defines the actual number of bits per 1024
434                               * physical layer bits  */
435    U16 pdcchCodeRate;        /*!< PDCCH code rate defines actual number of bits
436                               * per 1024 physical layer bits. This is used to
437                               * calculate aggregation level for PDCCH meant 
438                               * for broadcasting RNTIs  */
439    U8  ccchCqi;              /*!< Default CQI to be used for Msg4 in case where 
440                               * no CQI is available for the UE. ccchCqi ranges
441                               * from 1 to 15.*/
442 } RgrDlCmnCodeRateCfg;
443
444 /** @brief Control Format Indicator (CFI) configuration per cell */
445 typedef struct rgrCfiCfg
446 {
447    U8 cfi;                   /*!< CFI for PDCCH: a value in set {1,2,3} */
448 } RgrCfiCfg;
449
450 /** @brief PUSCH sub-band configuration per cell */
451 typedef struct rgrPuschSubBandCfg
452 {
453   U8 subbandStart;           /*!< Sub-band start */
454   U8 numSubbands;            /*!< Number of equal sized sub-bands */
455   U8 size;                   /*!< Size of a sub-band */ 
456   U8 dmrs[RGR_MAX_SUBBANDS]; /*!< DMRS information per sub-band */
457 } RgrPuschSubBandCfg;
458
459 /** @brief Uplink common channel code rate configuration per cell */
460 typedef struct rgrUlCmnCodeRateCfg
461 {
462    U8 ccchCqi;              /*!< CCCH CQI index, also used as default
463                              *  initial CQI for UEs */
464 } RgrUlCmnCodeRateCfg;
465
466 /* rgr_x_001.main_1: Removing unwanted srMcs Configuration structure */
467
468 /** @brief Target Uplink CQI to achieve through group power control configured per cell */
469 typedef struct rgrUlTrgCqiCfg
470 {
471    U8 trgCqi;                /*!< Target UL CQI to be achieved through power 
472                                control.Range is defined is between 1 to 15 */
473 } RgrUlTrgCqiCfg;
474 /** 
475   @brief Bandwidth configuration per cell */
476 typedef struct rgrBwCfg
477 {
478    U8 dlTotalBw;            /*!< Total Dowlink Bandwidth */
479    U8 ulTotalBw;            /*!< Total Uplink Bandwidth  */
480 } RgrBwCfg;
481
482 /** 
483   @brief PHICH configuration per cell */
484 typedef struct rgrPhichCfg
485 {
486    RgrPhichNg ngEnum;        /*!< Ng value for PHICH */
487    Bool       isDurExtend;   /*!< PHICH Duration: TRUE-extended/FALSE-normal */
488 } RgrPhichCfg;
489
490 /** 
491   @brief PUCCH configuration per cell */
492 typedef struct rgrPucchCfg
493 {
494    U8  resourceSize;       /*!< PUCCH resource-size or N^(2)_RB (in RBs) */
495    U16 n1PucchAn;          /*!< N^(1)_PUCCH */
496    U8  deltaShift;         /*!< Delta Shift for PUCCH: a value in set {1,2,3} */ 
497    U8  cyclicShift;        /*!< Cyclic Shift for PUCCH (N^(1)_CS): a value in
498                              range [0-7] */ 
499    U8  maxPucchRb;         /*!< The max number of RBs for PUCCH. This will be
500                                 used to limit the max CFI value when dynamic
501                                 CFI feature is enabled. If there is no 
502                                 limitation on the max PUCCH RBs, this variable
503                                 should be set to 0 */                             
504 } RgrPucchCfg;
505 /** 
506   @brief SRS configuration per cell */
507 typedef struct rgrSrsCfg
508 {
509    /*ccpu00130768 - ADD - SRS CFG Present flag to enable/disable cell specific SRS*/
510    Bool         isSrsCfgSetup;  /*!< cell specific SRS CFG enable/disable flag */
511    RgrSrsCfgPrd srsCfgPrdEnum; /*!< SRS configuration period (in subframes).*/
512    RgrSrsBwCfg  srsBwEnum;     /*!< SRS Bandwidth configuration per cell.
513                                  Range - [0-7] */
514    U8           srsSubFrameCfg;/*!< SRS subframe configuration index per cell.
515                                  Range - [0-15] */
516 } RgrSrsCfg;
517 /** 
518   @brief RACH configuration per cell */
519 typedef struct rgrRachCfg
520 {
521    U8  preambleFormat;        /*!< RACH Preamble format: a value in set {0,1,2,3} */
522    U8  raWinSize;             /*!< RA Window size */
523   /** @brief Ocassion at Which Random Access Is Expected */
524    struct raOccasionS
525    {
526       U8       size;         /*!< Number of subframe numbers */
527       RgrRaSfn sfnEnum;      /*!< System Frame Number */
528       U8       subFrameNum[RGR_MAX_SUBFRAME_NUM]; /*!< Subframe numbers */
529    } raOccasion;             /*!< Random access occasions */
530    U8  maxMsg3Tx;            /*!< Maximum number of message 3 transmissions */
531    U8  numRaPreamble;        /*!< Number of RA Preambles */
532    U8  sizeRaPreambleGrpA;   /*!< Size of RA Preamble in Group A */
533    U16 msgSizeGrpA;          /*!< MESSAGE_SIZE_GROUP_A */ 
534    U8  prachResource;        /*!< N^RA_PRB: PRACH resource for random access */
535 /**@name RGR_V1 */
536 /**@{ */
537 #ifdef RGR_V1
538    /* rgr_x_001.main_7: [ccpu00112372] Added contention resolution timer */
539    U8  contResTmr;           /*!< Contention resolution timer */
540 #endif
541 /**@} */
542 } RgrRachCfg;
543
544 /**
545   @brief SI Configuration per cell 
546 */
547 typedef struct rgrSiCfg
548 {
549    U8  siWinSize;  /*!< SI window size */
550    U8  retxCnt;    /*!< Retransmission count */
551    /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
552 /**@name RGR_SI_SCH */
553 /**@{ */
554 #ifdef RGR_SI_SCH
555 /*rgr_x_001.main_11 ccpu00115364 MOD changed U8 to enum for modPrd*/
556    RgrModPeriodicity  modPrd;     /*!< Modificiation Period for SI */  
557    U8  numSi;      /*!<Number of SIs, SI Id starts from 1 */
558    RgrSiPeriodicity siPeriodicity[RGR_MAX_NUM_SI]; /*!<Periodicities of SIs */
559    U16              minPeriodicity;  /*!< Minimum Periodicity Configured */
560 #endif/*RGR_SI_SCH*/
561 /**@} */
562 } RgrSiCfg;
563
564 /**
565  * @brief TPC RNTI Range */
566 typedef struct rgrTpcRntiCfg
567 {
568    CmLteRnti startTpcRnti;   /*!< Start RNTI for TPC */
569    U16       size;           /*!< Indicates contiguous range of RNTI */
570 } RgrTpcRntiCfg;
571
572 /* rgr_x_001.main_6 : documentation update. */
573 /**
574  * @brief Cell-specific power configuration */
575 typedef struct rgrUlPwrCfg
576 {
577    S8            p0NominalPusch;    /*!< P0_NOMINAL_PUSCH Currently this is
578                                          unused parameter */
579    RgrPwrAlpha   alpha;             /*!< Aplha, 3-bit cell-specific parameter
580                                         Currently this is unused parameter*/
581    S8            p0NominalPucch;    /*!< P0_NOMINAL_PUCCH 
582                                         Currently this is unused parameter */
583    S8            deltaPreambleMsg3; /*!< Delta_PREAMBLE_MSG3
584                                        Currently this is unused parameter */
585    RgrTpcRntiCfg pucchPwrFmt3;
586    RgrTpcRntiCfg pucchPwrFmt3a;
587    RgrTpcRntiCfg puschPwrFmt3;
588    RgrTpcRntiCfg puschPwrFmt3a;
589 } RgrUlPwrCfg;
590
591 /**
592  * @brief Cell-specific hopping configuration */
593 typedef struct rgrPuschCfg
594 {
595    U8       numSubBands; /*!< Number of sub-bands 
596                             Currently this is unused parameter */
597    Bool     isIntraHop;  /*!< Hopping mode inter/intra subframe
598                              Currently this is unused parameter */
599    U8       hopOffst;    /*!< Hopping offset {0 ... 98} 
600                               Currently this is unused parameter*/
601 } RgrPuschCfg;
602
603 /**
604  * @brief Number of bits in Code Book for different transmission modes */
605 typedef struct rgrCodeBookRstCfg
606 {
607    Bool   pres;          /*!< Code Book restriction present ?*/
608    U32    pmiBitMap[2];  /*!< Array for number of Bits for ports and TX Mode*/
609 } RgrCodeBookRstCfg;
610 /**
611  *  @brief Range of PDCCH Order Preamble Set managed by MAC */
612 typedef struct rgrPreambleSetCfg
613 {
614    Bool    pres;      /*!< Indicates if other configuration fields are valid */
615    U8      start;     /*!< Start Preamble ID for the range managed by MAC */
616    U8      size;      /*!< Indicates contiguous range of premables managaed by
617                         MAC */
618 } RgrPreambleSetCfg; 
619
620 /** 
621   @brief Logical channel configuration information for common channels */
622 typedef struct rgrCmnLchCfg
623 {
624    CmLteLcId     lcId;       /*!< Logical channel ID */
625    CmLteLcType   lcType;     /*!< Identifies the Logical channel type.lcType
626                                can take the following values:
627                                CM_LTE_LCH_BCCH
628                                CM_LTE_LCH_PCCH
629                                CM_LTE_LCH_CCCH
630                                CM_LTE_LCH_DCCH
631                                CM_LTE_LCH_DTCH */  
632    U8            dir;        /*!< Indicates Direction. Direction can take following 
633                                   values:
634                                   RGR_DIR_TX
635                                   RGR_DIR_RX
636                                   RGR_DIR_TX_RX */  
637    CmLteTrchType dlTrchType; /*!< Indicates type of DL transport channel:
638                                    Validated only for BCCH at MAC. DL Transport
639                                    channel type can take following values:
640                                    CM_LTE_TRCH_BCH 
641                                    CM_LTE_TRCH_PCH
642                                    CM_LTE_TRCH_DL_SCH  */ 
643    CmLteTrchType  ulTrchType; /*!< Indicates type of UL transport channel:
644                                    Validated only for CCCH at MAC 
645                                    UL Transport channel type can take following values:
646                                    CM_LTE_TRCH_RACH
647                                    CM_LTE_TRCH_UL_SCH */  
648 } RgrCmnLchCfg;
649
650 /** 
651   @brief RGR configuration for DLFS scheduler */ 
652 typedef struct rgrDlfsCfg
653 {
654   U8 isDlFreqSel;            /*!< Indicates if resource allocation is frequency
655                                   selective or not */
656   U8 thresholdCqi;           /*!< This value is used by the DL frequency 
657                                selective   scheduler. This is the threshold
658                                value below which the sub-band is not
659                                considered for allocation for a frequency
660                                selective cell. This value is utilized only if
661                                DL frequency selective scheduler is configured 
662                                Range is defined from 1 to 15 */
663 } RgrDlfsCfg;
664
665 /* LTE_ADV_FLAG_REMOVED_START */
666
667 /**
668  * @brief LTE Adv feature status */
669 typedef enum _rgrFeature
670 {
671    RGR_ABS  = 1 << 0, /**< ABS Present */
672    RGR_SFR  = 1 << 1, /**< SFR Present */
673    RGR_DSFR = 1 << 2, /**< DSFR Present */
674    RGR_RE   = 1 << 3  /**< RE Present */
675 #ifdef LTE_ADV
676    ,
677    RGR_SCELLRELEASE = 1 << 4,/**< Trigger Scell Release*/
678    RGR_SCELLADD     = 1 << 5,/**< Trigger Scell ADD*/
679    RGR_SCELLACT     = 1 << 6,/**< Trigger Scell Activate*/
680    RGR_SCELLDEACT   = 1 << 7 /**< Trigger Scell Deactivate*/
681 #endif
682 } RgrFeature;
683
684 /**
685  * @brief LTE Adv feature is enable/disable */
686 typedef enum _rgrFeaturestatus
687 {
688    RGR_DISABLE  = 0, /**< Feature disabled */
689    RGR_ENABLE   = 1 /**< Feature Enabled */ 
690 } RgrFeatureStatus;
691
692 /**
693  * @brief Pattern type for ABS */
694 typedef enum _rgrAbsPatternType
695 {
696    RGR_ABS_MUTE     = 1 << 0, /**< Cell will Mute in configured ABS pattern */
697    RGR_ABS_TRANSMIT = 1 << 1  /**< Cell will Transmit in configured ABS pattern */
698 } RgrAbsPatternType;
699
700 /**
701   @brief RGR RB range for SFR */
702 typedef struct rgrSfrRbRange
703 {
704    U8   startRb;  /*<! Start RB for cell edge user */
705    U8   endRb;    /*<! End RB for cell edge user */
706 } RgrSfrRbRange;
707
708 #ifdef TFU_UPGRADE
709 /**
710   @brief RGR Power threshold for SFR */
711 typedef struct rgrPwrThreshold
712 {
713    RgrUeDlPwrCntrlPaCfg            pLow;  /*<! Power level for cell center UE */
714    RgrUeDlPwrCntrlPaCfg            pHigh; /*<! Power level for cell edge UE */
715 } RgrPwrThreshold;
716 #endif
717
718 /**
719   @brief RGR configuration for SFR feature */
720 typedef struct rgrSfrConfig
721 {
722    RgrFeatureStatus   status; /*!< Indicate feature is enabled or disabled */
723    RgrSfrRbRange      cellEdgeRbRange; /*<! Range of RBS for cell edge UEs */
724 #ifdef TFU_UPGRADE
725    RgrPwrThreshold    pwrThreshold;    /*<! Power threshold for cell edge and cell center UE */
726 #endif   
727 } RgrSfrConfig;
728
729 /** This structure holds DSFR Config params **/
730 typedef struct rgrDsfrConfig
731 {
732    RgrFeatureStatus   status; /*!< Indicate feature is enabled or disabled */
733 } RgrDsfrConfig;
734
735 /**
736   @brief RGR configuration for LTE Advanced feature */
737 typedef struct rgrAbsConfig
738 {
739    RgrFeatureStatus status; /*!< Indicate feature is enabled or disabled */            
740    U32  absPatternType; /*!< Indicate it as Mute and/or Transmit type */
741    U8   absPattern[RGR_ABS_PATTERN_LEN]; /*!< ABS pattern */
742    U32  absLoadPeriodicity; /*!< ABS Load Ind periodicity in msec */ 
743 } RgrAbsConfig;
744
745 /**
746   @brief RGR configuration for LTE Advanced feature */
747 typedef struct rgrLteAdvancedCellConfig
748 {
749    U32                        pres;   /*!< To indicate presence of feature config */
750    RgrAbsConfig               absCfg; /*!< Configuration of ABS feature */
751    RgrSfrConfig               sfrCfg; /*!< Configuration of SFR feature */
752    RgrDsfrConfig              dsfrCfg;/*!< Configuration of DSFR feature */
753 } RgrLteAdvancedCellConfig;
754 /* LTE_ADV_FLAG_REMOVED_END */
755
756 /** @name LTE_TDD */
757 /** @{ */
758 #ifdef LTE_TDD
759 /** @brief PRACH resource information for TDD */
760 typedef struct rgrTddPrachInfo
761 {
762    U8        freqIdx;          /*!< Frequency Index */
763    RgrRaSfn  sfn;              /*!< Even/Odd/All Radio Frames */
764    U8        halfFrm;          /*!< First/Second Half Frame */
765    U8        ulStartSfIdx;     /*!< Uplink Start Subframe Index;
766                                     RGR_TDD_SPL_UL_IDX must be used
767                                     to configure special subframes */
768 } RgrTddPrachInfo;
769
770 /** @brief Set of PRACH information for TDD */
771 typedef struct rgrTddPrachRscInfo
772 {
773    U8               numRsc;           /*!< Number of PRACH resources*/
774    RgrTddPrachInfo  prachInfo[RGR_TDD_MAX_FREQ_RSRC];     /*!< PRACH information */
775 } RgrTddPrachRscInfo;
776 #endif /* LTE_TDD */
777 /** @} */
778
779 /** @brief set of PF Scheduler Parameters */ 
780 typedef struct rgrEnbPfs
781 {
782    U8           tptCoeffi;    /*!< Downlink Throughput Coeffiecient
783                                           Range 0 -10 */
784    U8           fairCoeffi;   /*!< Downlink Fairness Coeffiecient
785                                          Range 0 -10 */
786    U32          qciWgt[RGR_MAX_NUM_QCI];   /*!< Downlink Qci Weights */
787 } RgrEnbPfs;
788
789 /** 
790   @brief OPEN/CSG/HCSG Access Mode CELL 
791  */
792 typedef enum rgrCellAccsMode
793 {
794    RGR_CELL_ACCS_OPEN = 1,   /*!< Open Access Mode */
795    RGR_CELL_ACCS_CLOSED, /*!< Closed Mode */
796    RGR_CELL_ACCS_HYBRID  /*!< Hybrid Mode */
797 } RgrCellAccsMode;
798
799 /**
800 @brief Control Command Type
801 */
802 typedef enum rgrCellCntrlCmdType
803 {
804    RGR_CNTRL_CMD_RACH_OVRLD=1,
805    RGR_CNTRL_CMD_CPU_OVRLD
806 }RgrCellCntrlCmdType;
807
808 /** 
809   @brief Control Commands to alter CELL performance  
810  */
811 typedef struct rgrCellCntrlCmdCfg
812 {
813    RgrCellCntrlCmdType cmdType;
814    /** @brief Cntrl Cmd Description */
815    union rgrCellCmdDesc 
816    {
817       /** @brief RACH OverLoad Cntrl Cmd Description */
818       struct rachOvrLd
819       {
820          Bool backOffEnb; /*!< backoff RACH during overlaod */
821          U8   backOffVal; /*!< backoff value during overload */
822       }rachOvrLd;
823
824       /** @brief CPU OverLoad Cntrl Cmd Description */
825       struct cpuOvrLd
826       {
827          U8 instruction;  /*!< CPU Over Load Cntrl Instruction */
828       }cpuOvrLd;
829    }cmdDesc;
830 } RgrCellCntrlCmdCfg;
831
832
833 /**
834   * @brief
835   * eNB level Scheduler Configurations
836   * along with other PFS config Parameters
837   */
838 typedef struct rgrSchedEnbCfg
839 {
840    U8         numTxAntPorts;    /*!< Number of Tx antenna ports */
841    U8         dlSchdType;     /*!< Indicates which DL scheduler to use, range
842                                * is 0..(number of schedulers - 1) */
843    union       rgrDlSchInfoS
844    {
845       RgrEnbPfs     dlPfs;      /*!< Information related to DL PFS 
846                                   Scheduler */
847    } dlSchInfo;
848    U8         ulSchdType;     /*!< Indicates which UL scheduler to use, range
849                                 is 0..(number of schedulers - 1) */
850    union       rgrUlSchInfoS
851    {
852       RgrEnbPfs     ulPfs;      /*!< This structure holds the parameters   
853                                   to be configured for PFS scheduler.
854                                   These values are utilized only when
855                                   if PFS scheduler is being configured  
856                                   There is no range defined for the  
857                                   values, However the product of all
858                                   three priorities must not exceed the
859                                   range of U32 */
860    } ulSchInfo;
861    RgrCellAccsMode     accsMode;       /*!< Cell Access Mode */ 
862 #ifdef RG_5GTF
863    Bool                isDynTddEnbld;  /*!< Dynamic TDD config */
864 #endif
865 } RgrSchedEnbCfg;
866
867 /*rgr_x_001.main_9 - Added support for SPS*/
868 /*rgr_x_001.main_11 MOD added comments for doxygen*/
869 /** @name LTEMAC_SPS */
870 /** @{ */
871 /** 
872   @brief DL SPS configuration parameters per UE 
873 TODO: Check if this is to be added to re-configuration as well
874  */
875 /* SPS_DEV */
876 typedef struct rgrSpsCellCfg
877 {
878    U8        maxSpsDlBw; /*!< BW used of SPS Scheduling */ 
879                                                             
880    U16       maxSpsUePerDlSf; /*!< Maximum DL SPS UEs that can be 
881                                                            scheduled in a TTI */
882    U16       maxSpsUePerUlSf; /*!< Maximum UL SPS UEs that can be scheduled
883                                 in a TTI */
884 } RgrSpsCellCfg;
885
886 /** 
887   @brief OPEN/CSG/HCSG Access Mode Configuration parameters for CELL 
888  */
889 typedef struct rgrCellCsgParamCfg
890 {
891    U8   minDlResNonCsg;  /*!< Min PDSCH Resources for Non-CSG Members */
892    U8   minUlResNonCsg;  /*!< Min PUSCH Resources for Non-CSG Members */
893 } RgrCellCsgParamCfg;
894
895 /** @brief LAA Cell Configuration */
896 typedef struct rgrLteUCfg
897 {
898    Bool    isLaaCell;     /*<! To distinguish between LAA and LTE-U cell*/
899 }RgrLteUCfg;
900 #ifdef EMTC_ENABLE
901 /* emtc */
902 typedef struct rgrEmtcSiSchedInfo
903 {
904    U8   emtcSiNarrowBand; /*!< narrowband assigned to SI */
905    U16  emtcSiTbs;         /*!< tbs value for SI */
906 }RgrEmtcSiSchedInfo;
907
908 typedef struct rgrEmtcPrmbleMap
909 {
910      U8  firstPreamble;       /*!< for each CE mode, starting preamble */
911      U8  lastPreamble;        /*!< for each CE mode, starting preamble */
912 }RgrEmtcPrmbleMap;
913
914 typedef struct rgrEmtcRachCElevelInfoLst
915 {
916    U8                emtcRarHopping;         /*!< by defualt off */
917    U16               raEmtcWinSize;          /*!< RA Window size */
918    U16               raEmtcContResTmr;       /*!< Contension Resolution */
919    U16               emtcPreambleTransMax;   /*!< PreambleTransMax  */
920    RgrEmtcPrmbleMap  emtcPreambleMap;           /*!< preamble mapping Info */ 
921 }RgrEmtcRachCElevelInfoLst;
922
923 typedef struct rgrEmtcRachCfg
924 {
925    U8 emtcCeLvlSupported;
926    RgrEmtcRachCElevelInfoLst ceLevelInfo[RGR_MAX_CE_LEVEL]; /* for all CE levels 0,1,2,3*/
927 }RgrEmtcRachCfg;
928
929 typedef struct rgrEmtcPdschCfg
930 {
931    U16 emtcMaxRepCeModeA;   /*!< max repetition for CE ModeA */ 
932    U16 emtcMaxRepCeModeB;   /*!< max repetition for CE ModeB */ 
933 }RgrEmtcPdschCfg;
934
935 typedef struct rgrEmtcPuschCfg
936 {
937    U16 emtcMaxRepCeModeA;  /*!< max repetition for CE ModeA */ 
938    U16 emtcMaxRepCeModeB;  /*!< max repetition for CE ModeB */
939    U8  emtcHoppingOffset;  /*!< Hopping offset */
940 }RgrEmtcPuschCfg;
941
942 typedef struct rgrEmtcPrachCEParamLst
943 {
944    U8   emtcPrachCfgIdx;         /*!< Prach config index */
945    U8   emtcPrachFreqOffset;     /*!< Prach Frequency Offset */
946    U16  emtcPrachStartSubFrame;  /*!< Starting sub frame */
947    U8   emtcMaxPremAttemptCE;    /*!< max preamble attempt  CE */
948    U8   emtcNumRepPerPreambleAtt;/*!< num of repetition per preamble attempt*/
949    U8   emtcNumMpdcchNBtoMonitor;/*!< num of Mpddch NB to monitor */
950    U8   emtcMpdcchNBtoMonitor[RGR_MAX_NUM_MPDCCH_MONITOR];/*!<  Mpddch NB to monitor */
951    U16  emtcMpdcchNumRep;        /*!< num of Mpddch Number of repetition */
952    U8   emtcPrachHoppingCfg;     /*!< num of Prach Hopping config */
953 }RgrEmtcPrachCEParamLst;
954
955 typedef struct rgrEmtcPrachCfg
956 {
957    U8           emtcMpdcchStartSFCssRaFdd;  /*!< mdpcch start SubFrame Ra type2 */
958    U8           emtcPrachHopingOffset;      /*!< prach hopping offset value */
959    U8           emtcInitialCElevel;         /*!< Initial CE level to start with */
960    RgrEmtcPrachCEParamLst emtcPrachCEparmLst[RGR_MAX_CE_LEVEL];
961 }RgrEmtcPrachCfg;
962
963
964 /*Changes by Simran*/
965 typedef struct rgrFddDownlinkOrTddSubframeBitmapLC
966 {
967    U8 sfnPtnChoice;
968    union
969    {
970       U16 ptn10;
971       U32 ptn40[2];
972    }u;
973 }RgrFddDownlinkOrTddSubframeBitmapLC;
974
975
976 typedef struct rgrEmtcSiCfg
977 {
978    Bool             siHoppingEnable;      /*!< SI Hopping enabled or not */
979    RgrModPeriodicity  modPrd;     /*!< Modificiation Period for SI */  
980    U8               siWinSizeBr;          /*!< SI window size */
981    U8               sib1Repetition;       /*!< sib1-br repetition */
982    U8               siRepetition;         /*!< SI repetition pattern
983                                                everyRF,every2ndRF,every4thRF,every8thRF*/
984    U16              startSymbolLc;
985    /*Changes by Simran*/
986    RgrFddDownlinkOrTddSubframeBitmapLC    fddDLOrTddSfBitmapLC;
987    //U16              fddDlOrTddSfBitmapBR; /*!< 10 bit value for sending SI*/
988    RgrEmtcSiSchedInfo schdInfo[RGR_MAX_NUM_SI];
989    U8               numSi;      /*!<Number of SIs, SI Id starts from 1 */
990    RgrSiPeriodicity siPeriodicity[RGR_MAX_NUM_SI]; /*!<Periodicities of SIs */
991 } RgrEmtcSiCfg;
992
993 typedef struct rgrEmtcPucchCfg
994 {
995    U16       emtcN1pucchAnInfoLst[RGR_MAX_CE_LEVEL];  /*!< Max CE level is 4 */
996    U8        emtcPucchNumRepCEMsg4Lvl0;           /*!< update the level 0 */
997    U8        emtcPucchNumRepCEMsg4Lvl1;           /*!< update the level 1 */
998    U8        emtcPucchNumRepCEMsg4Lvl2;           /*!< update the level 2 */
999    U8        emtcPucchNumRepCEMsg4Lvl3;           /*!< update the level 3 */
1000 }RgrEmtcPucchCfg;
1001
1002 typedef struct rgrEmtcRntiCfg
1003 {
1004    CmLteRnti rntiCeModeAStart;      /*!< EMTC Start RNTI for the range managed by MAC */
1005    CmLteRnti rntiCeModeARange;      /*!< EMTC Range of RNTI for the CEMODE A */
1006    U16       rntiCeModeBStart;      /*!< EMTC Start RNTI for the range managed by MAC */
1007    CmLteRnti rntiCeModeBRange;      /*!< EMTC Range of RNTI for the CEMODE B */
1008    U16       size;           /*!< Indicates contiguous range of RNTI managed by EMTC
1009                                   MAC */
1010 } RgrEmtcRntiCfg;
1011
1012 typedef struct rgrEmtcCellCfg
1013 {
1014    U16               pci;            /*!< Physical Cell ID */
1015    U32               emtcT300Tmr;    /*!< T300 timer as per Rel13 */
1016    U32               emtcT301Tmr;    /*!< T301 timer as per Rel13 */
1017    RgrEmtcSiCfg      emtcSiCfg;      /*!< SI configuration */
1018    RgrEmtcRachCfg    emtcRachCfg;    /*!< Rach config as per Rel13*/
1019    RgrEmtcPdschCfg   emtcPdschCfg;   /*!< Pdsch config as per Rel13*/
1020    RgrEmtcPuschCfg   emtcPuschCfg;   /*!< Pusch config as per Rel13*/
1021    RgrEmtcPrachCfg   emtcPrachCfg;   /*!< Prach config as per Rel13*/
1022    RgrEmtcPucchCfg   emtcPucchCfg;   /*!< Pucch config as per Rel13*/
1023    RgrEmtcRntiCfg    emtcMacRnti;
1024    U8                emtcPdschNbIdx;
1025    U8                emtcMpdcchNbIdx;
1026    U8                emtcPuschNbIdx;
1027 }RgrEmtcCellCfg;
1028
1029 #endif
1030
1031 #ifdef RG_5GTF
1032 typedef enum rgSchSfType
1033 {
1034    RG_SCH_SF_DLCNTRL_DLDATA = 0,
1035    RG_SCH_SF_DLCNTRL_DLDATA_ULCNTRL,
1036    RG_SCH_SF_DLCNTRL_ULDATA,
1037    RG_SCH_SF_DLCNTRL_ULDATA_ULCNTRL
1038 }RgSchSfType;
1039
1040 typedef struct rgr5gtfCellCfg
1041 {
1042    RgSchSfType     dynConfig[MAX_5GTF_SUBFRAME_INFO];
1043    U8              uePerGrp;
1044    U8              ueGrpPerTti;
1045    U8              numUes;
1046    U8              numOfCC;
1047    U8              bwPerCC;
1048    U8              cfi;
1049 }Rgr5gtfCellCfg;
1050 #endif
1051
1052 /** @} */
1053 /** @brief Cell Configuration at RRM */
1054 typedef struct rgrCellCfg
1055 {
1056    CmLteCellId         cellId;         /*!< Cell ID */
1057    Inst                macInst;        /*!< MAC instance that is serving the cell */
1058    /**@name RGR_V1 */
1059    /**@{ */
1060 #ifdef RGR_V1
1061    /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
1062       of  MSG3s */
1063    U8                  maxMsg3PerUlSf; /*!< Maximum MSG3 that may be scheduled
1064                                          per uplink subframe */
1065 #endif /* RGR_V1 */
1066    /** @} */
1067    U8                  maxUePerUlSf;   /*!< Maximum UEs that may be scheduled
1068                                          per uplink subframe. Currently this is
1069                                          unused parameter */
1070    U8                  maxUePerDlSf;   /*!< Maximum UE to be considered for DL 
1071                                          scheduling in a TTI.Currently this is
1072                                          unused parameter */
1073    /*[ccpu00138609]-ADD- Max limit for Msg4/DL CCCH Ues */
1074    U8                  maxCcchPerDlSf; /*!< Max num of Msg4/DL CCCH SDU UEs that
1075                                          can be scheduled per TTI. It cannot 
1076                                          exceed max UE per Dl sf. If set as
1077                                          0, this will be a don't care 
1078                                          parameter */ 
1079    U8                  maxUlBwPerUe;   /*!< Maximum number of RBs that can be  
1080                                          allocated to an UE in an UL subframe
1081                                          Maximum value is defined by 
1082                                          RG_SCH_CMN_MAX_UL_BW_PER_UE in   
1083                                          rg_env.h. This can be modified as
1084                                          per need basis */
1085    U8                  maxDlBwPerUe;   /*!< Maximum number of RBs that can be    
1086                                          allocated to an UE in an DL subframe  
1087                                          Maximum value is defined by     
1088                                          RG_SCH_CMN_MAX_DL_BW_PER_UE in
1089                                          rg_env.h. This can be modified as 
1090                                          per need basis */
1091    U8                  maxDlRetxBw;    /*!< Maximum number of RBs that can be     
1092                                          allocated for retransmission in DL
1093                                          Maximum value is defined by 
1094                                          RG_SCH_CMN_MAX_DL_RETX_BW in   
1095                                          rg_env.h. This can be modified as   
1096                                          per need basis */
1097    U8                  maxDlUeNewTxPerTti; /*!< Maximum number of UEs that can  
1098                                              be scheduled for a new DL    
1099                                              transmission in a TTI. Value should
1100                                              be configured by the user as per  
1101                                              specific needs */ 
1102    U8                  maxUlUeNewTxPerTti;  /*!< Maximum number of UEs that can 
1103                                               be scheduled for a new UL 
1104                                               transmission in a TTI. Value should 
1105                                               be configured by the user as per  
1106                                               specific needs */
1107    Bool                isCpUlExtend;   /*!< Cyclic prefix: TRUE-extended, 
1108                                          FALSE-normal for UL */
1109    Bool                isCpDlExtend;   /*!< Cyclic prefix: TRUE-extended, 
1110                                          FALSE-normal for DL*/
1111    Bool                cellModSchm;    /*!< TRUE indicates 64QAM
1112                                          allowed while FALSE indicates 64QAM 
1113                                          is not allowed. Currently this is unused 
1114                                          parameter */
1115    S8                  pMax;           /*!< To limit the Cell Uplink 
1116                                          transmission power */
1117
1118    U8                  dlfsSchdType;   /*!< Indicates which DLFS scheduler to use, range
1119                                         * is 0..(number of schedulers - 1) */
1120    RgrDlHqCfg          dlHqCfg;        /*!< HARQ related configuration */ 
1121    RgrRntiCfg          macRnti;        /*!< Range of RNTIs to be managed by MAC */   
1122    RgrCfiCfg           cfiCfg;         /*!< CFI for PDCCH */
1123    RgrUlTrgCqiCfg      trgUlCqi;       /*!< Target UL CQI */
1124    RgrDlCmnCodeRateCfg dlCmnCodeRate;  /*!< Coding rate for common DL channels: 
1125                                          Expressed in multiples of 1024 */
1126    RgrPuschSubBandCfg  puschSubBand;   /*!< UL sub-band information */
1127    RgrUlCmnCodeRateCfg ulCmnCodeRate;  /*!< Coding rate for common UL channels: 
1128                                          Expressed as index into CQI table */
1129    RgrDlfsCfg          dlfsCfg;        /*!< Configuration for DLFS scheduler */
1130    RgrBwCfg            bwCfg;          /*!< Bandwidth configuration */
1131    RgrPhichCfg         phichCfg;       /*!< PHICH configuration information */
1132    RgrPucchCfg         pucchCfg;       /*!< PUCCH configuration information */
1133    RgrSrsCfg           srsCfg;         /*!< SRS configuration information. Currently 
1134                                          this is unused */ 
1135    RgrRachCfg          rachCfg;        /*!< RACH configuration */
1136    RgrSiCfg            siCfg;          /*!< SI configuration */
1137    RgrUlPwrCfg         pwrCfg;         /*!< Cell-specific power configuration */
1138    RgrPuschCfg         puschCfg;       /*!< Cell-specific hopping configuration */
1139    RgrPreambleSetCfg   macPreambleSet; /*!< Range of PDCCH Order Preamble IDs
1140                                          to be managed by MAC */
1141    U8                  numCmnLcs;      /*!< Number of common logical channels*/
1142    RgrCmnLchCfg        cmnLcCfg[RGR_MAX_CMN_LC_PER_CELL];  /*!< Configuration for 
1143                                                              common logical channels */
1144    RgrCellCsgParamCfg  csgParamCfg;    /* Cell-specific configuration for CSG */
1145    /** @name LTE_TDD */
1146    /** @{ */
1147 #ifdef LTE_TDD
1148    U8                  ulDlCfgIdx;     /*!< UL-DL configuration index*/
1149    U8                  spclSfCfgIdx;   /*!< Special Subframe configuration index*/
1150    RgrTddPrachRscInfo  prachRscInfo;   /*!< PRACH information */
1151 #endif /* LTE_TDD */
1152    /** @} */
1153    /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
1154    /* rgr_x_001.main_4: Added 0 as valid value to shut off RGR TICKs. */
1155    /** @name RGR_RRM_TICK */
1156    /** @{ */
1157    U8                  rrmTtiIndPrd;   /*!< Periodicity of TTI indication from
1158                                          MAC towards RGR user. Range [0-255]. A
1159                                          value of 1 means one tick per System
1160                                          Frame and 2 means one tick per 2 System
1161                                          Frame, and so on.
1162                                          A value of 0 implies no ticks. */
1163    /** @} */
1164    /*rgr_x_001.main_9 - Added support for SPS*/
1165    /** @name LTEMAC_SPS */
1166    /** @{ */
1167    RgrSpsCellCfg    spsCfg;  /* Cell-specific configuration for DL SPS */
1168    /* LTE_ADV_FLAG_REMOVED_START */
1169    RgrLteAdvancedCellConfig  rgrLteAdvCfg; /*!< RGR Configuration of LTE Adv */
1170    /* LTE_ADV_FLAG_REMOVED_END */
1171 #ifdef AIRSPAN
1172    U8                dlCqiOverrideFloor;
1173    U8                dlCqiOverrideCeil;
1174    U8                ulCqiOverrideFloor;
1175    U8                ulCqiOverrideCeil;
1176 #endif  
1177    /** @} */
1178    U16 t300TmrVal;               /*!< t300Timer value configured in Frames */
1179
1180    /* ccpu00132314-ADD-Tx power offsets for Common PDSCH transmissions */                                   
1181    U16                bcchTxPwrOffset; /*!< Tx Pwr Offset for BCCH tx on PDSCH.
1182                                          Offset to the reference signal 
1183                                          power. Value: 0 -> 10000, 
1184                                          representing -6 dB to 4 dB in 0.001
1185                                          dB steps */                                    
1186    U16                pcchTxPwrOffset; /*!< Tx Pwr Offset for PCCH tx.
1187                                          Offset to the reference signal 
1188                                          power. Value: 0 -> 10000, 
1189                                          representing -6 dB to 4 dB in 0.001
1190                                          dB steps */                                    
1191    U16                rarTxPwrOffset; /*!< Tx Pwr Offset for RAR tx.
1192                                         Offset to the reference signal 
1193                                         power. Value: 0 -> 10000, 
1194                                         representing -6 dB to 4 dB in 0.001
1195                                         dB steps */          
1196    /* ccpu00138898 - Added Tx pwr offset for PHICH Tx*/
1197    U16                phichTxPwrOffset; /*!< Tx Pwr Offset for PHICH tx.
1198                                           Offset to the reference signal 
1199                                           power. Value: 0 -> 10000, 
1200                                           representing -6 dB to 4 dB in 0.001
1201                                           dB steps */                                    
1202    Bool               isDynCfiEnb;   /*!< To indicate whether Dynamic CFI is enabled 
1203                                        or not */ 
1204    Bool               isAutoCfgModeEnb;   /*!< To indicate whether AutoCfg Mode
1205                                             change is enabled or not */ 
1206    RgrUeDlPwrCntrlPaCfg msg4pAVal;      /*!< Default value (Enum) of PA that is 
1207                                           used by Scheduler for msg4 */        
1208    RgrLteUCfg    lteUCfg;               /*!< Flag to identify LAA or LTE-U*/
1209 #ifdef LTE_ADV
1210    Bool          isPucchFormat3Sptd;    /*!< Flag for Format 3 Support */
1211 #endif
1212 #ifdef EMTC_ENABLE
1213    Bool               emtcEnable;
1214    RgrEmtcCellCfg     emtcCellCfg;   
1215 #endif
1216 #ifdef RG_5GTF
1217    Rgr5gtfCellCfg     Cell5gtfCfg;
1218 #endif
1219 } RgrCellCfg;
1220 /** 
1221   @brief Downlink Aperiodic CQI reporting related configuration per UE */
1222 typedef struct rgrUeAprdDlCqiCfg
1223 {
1224    Bool                pres;          /*!< Indicates presence of aperiodic 
1225                                            DL CQI configuration */
1226    RgrAprdCqiMode     aprdModeEnum;   /*!< Aperiodic CQI reporting mode */
1227    /* These two fields are only valid for Pcell*/
1228 #ifdef LTE_ADV
1229    U8                 triggerSet1;    /*!< Trigger set one*/
1230    U8                 triggerSet2;    /*!< Trigger set two*/
1231 #endif
1232 } RgrUeAprdDlCqiCfg;
1233
1234 /* rgr_x_001.main_10. Added changes of TFU_UPGRADE */
1235 #ifndef TFU_UPGRADE
1236 /** 
1237   @brief Downlink Periodic CQI reporting related configuration per UE */
1238 typedef struct rgrUePrdDlCqiCfg 
1239 {
1240    Bool                pres;          /*!< Indicates presence of periodic 
1241                                            DL CQI configuration. */
1242    RgrPrdCqiMode       prdModeEnum;   /*!< Peiodic CQI reporting mode. */
1243    RgrCqiPrdicity      prdicityEnum;  /*!< Periodicity values for CQI. 
1244                                            Currently, this is unused parameter. */
1245    U8                  subframeOffst; /*!< Subframe offset. 
1246                                            Currently, this is unused parameter. */
1247    S8                  cqiOffst;      /*!< Delta^cqi_offset: (actual_value*10).
1248                                            Currently, this is unused parameter. */ 
1249    U8                  k;             /*!< k value: range [1-4] */
1250    U16                 cqiPmiCfgIdx;  /*!< CQI-PMI configuration index. */
1251 } RgrUePrdDlCqiCfg;
1252
1253 #else /* TFU_UPGRADE */
1254
1255 /**
1256 * @brief Periodic CQI Setup configuration parameters information 
1257 */
1258 /* Reference: 36.313: CQI-ReportPeriodic */
1259 typedef struct rgrUeDlPCqiSetup
1260 {
1261       U16  cqiPResIdx;  /*!< cqi-PUCCH-ResourceIndex (0.. 1185) */
1262       U16  cqiPCfgIdx;  /*!< cqi-pmi-ConfigIndex (0..1023) */
1263       U8   cqiRepType;  /*!< Wideband CQI = 1  Subband CQI =2 */
1264       U8   k;           /*!< Ref: 36.213 [23, 7.2.2] (1..4). 
1265                              Valid only for Subband CQI */
1266       U8   riEna;       /*!< Rand Indicator is Enabled TRUE(1) FALSE(0) */
1267       U16  riCfgIdx;    /*!< ri-ConfigIndex    (0..1023)  */
1268       Bool sANCQI;      /*!< simultaneousAckNackAndCQI TRUE(1) FALSE(0) */
1269       RgrPrdCqiMode prdModeEnum;   /*!< Peiodic CQI reporting mode */
1270 }RgrUeDlPCqiSetup;
1271
1272
1273 /**
1274 * @brief Periodic CQI/PMI/RI configuration parameters information 
1275 */
1276 typedef struct  rgrUeDlPCqiCfg
1277 {
1278    U8                 type;               /*!< Setup(1) or Release(0) */    
1279    RgrUeDlPCqiSetup   cqiSetup;           /*!< Periodic CQI Setup */
1280 } RgrUePrdDlCqiCfg;
1281
1282
1283
1284 /*rgr_x_001.main_11 MOD added comments*/
1285 /** 
1286 * @ brief Different values for UL SRS BW information 
1287 */
1288 typedef enum rgrUlSrsBwInfo
1289 {
1290    RGR_ULSRS_BW_0 = 0, /**< UL SRS BW info 0 */  
1291    RGR_ULSRS_BW_1 = 1, /**< UL SRS BW info 1 */  
1292    RGR_ULSRS_BW_2 = 2, /**< UL SRS BW info 2 */
1293    RGR_ULSRS_BW_3 = 3  /**< UL SRS BW info 3 */
1294 } RgrUlSrsBwInfo;
1295
1296
1297 /*rgr_x_001.main_11 MOD added comments*/
1298 /** 
1299 * @brief Different values for UL SRS Hoping BW information 
1300 */
1301 typedef enum rgrUlSrsHoBwInfo
1302 {
1303    RGR_ULSRS_HOP_BW_0 = 0,  /**< UL SRS Hopping BW info 0 */ 
1304    RGR_ULSRS_HOP_BW_1 = 1,  /**< UL SRS Hopping BW info 1 */
1305    RGR_ULSRS_HOP_BW_2 = 2,  /**< UL SRS Hopping BW info 2 */
1306    RGR_ULSRS_HOP_BW_3 = 3   /**< UL SRS Hopping BW info 3 */
1307 } RgrUlSrsHoBwInfo;
1308
1309 /*rgr_x_001.main_11 MOD added comments*/
1310 /** 
1311 * @brief Different values for UL SRS Cyclic Shift information 
1312 */
1313 typedef enum rgrUlSrsCycShiftInfo
1314 {
1315    RGR_ULSRS_CYSHIFT_0 = 0,   /**< UL SRS Cyclic shift info 0 */
1316    RGR_ULSRS_CYSHIFT_1 = 1,   /**< UL SRS Cyclic shift info 1 */
1317    RGR_ULSRS_CYSHIFT_2 = 2,   /**< UL SRS Cyclic shift info 2 */
1318    RGR_ULSRS_CYSHIFT_3 = 3,   /**< UL SRS Cyclic shift info 3 */
1319    RGR_ULSRS_CYSHIFT_4 = 4,   /**< UL SRS Cyclic shift info 4 */
1320    RGR_ULSRS_CYSHIFT_5 = 5,   /**< UL SRS Cyclic shift info 5 */
1321    RGR_ULSRS_CYSHIFT_6 = 6,   /**< UL SRS Cyclic shift info 6 */
1322    RGR_ULSRS_CYSHIFT_7 = 7   /**< UL SRS Cyclic shift info 7 */
1323 } RgrUlSrsCycShiftInfo;
1324
1325
1326 /*rgr_x_001.main_11 MOD added comments*/
1327 /**
1328 * @brief SRS configuration setup parameters information. 
1329    Reference 36.313 SoundingRS-UL-Config
1330 */
1331 typedef struct rgrUeUlSrsSetupCfg 
1332 {
1333    U16               srsCfgIdx;         /*!< SRS Configuration Index ISRS   
1334                                             Ref:  36.213: Table 8.2-1; Range: 0-636*/
1335    RgrUlSrsBwInfo    srsBw;        /*!< SRS Bandwidth */
1336    RgrUlSrsHoBwInfo  srsHopBw;     /*!< SRS Hoping Bandwidth */
1337    RgrUlSrsCycShiftInfo   cycShift;     /*!< Cyclic Shift */  
1338    Bool              duration;     /*!< Single(0) Infinite(1) */ 
1339 /*rgr_x_001.main_11 MOD added comments for doxygen*/
1340    Bool              sANSrs;       /*!< Simultaneous ACK/NACK and SRS. Note:
1341                                      This param is specified as a UE specific
1342                                      parameter though 3GPP TS36.331 specifies
1343                                      this as a cell-specific parameter. RRM
1344                                      should configure this parameter with the
1345                                      same value for all the UEs configured for
1346                                      the same  cell. */
1347 /* rgr_x_001.main_13 - DEL - Removed the redeclaration of sANSrs and added the proper comment termination  above  */
1348    U8                txComb;       /*!< Tranmission Comb: 0..1 */
1349    U8                fDomPosi;     /*!< Frequency Domain Position */
1350 }RgrUeUlSrsSetupCfg;
1351
1352
1353 /*rgr_x_001.main_11 MOD added comments*/
1354 /**
1355  *@brief Dsr Trans maximum  
1356 */
1357 typedef enum rgrUeDsrTransMax 
1358 {
1359    RGR_DSR_TXMAX_4=4,  /**< Dsr Trans maximum 4 */
1360    RGR_DSR_TXMAX_16=16, /**< Dsr Trans maximum 16 */
1361    RGR_DSR_TXMAX_32=32, /**< Dsr Trans maximum 32 */
1362    RGR_DSR_TXMAX_64=64 /**< Dsr Trans maximum 64 */
1363 }RgrUeDsrTransMax; 
1364
1365
1366 /**
1367 * @brief SR Setup configuration parameters information 
1368 */
1369 typedef struct rgrUeSrSetupCfg
1370 {
1371    U16              srResIdx;       /*!< Range: 0-2047; Reference: SchedulingRequestConfig  */
1372    U8               srCfgIdx;       /*!< Range: 0 -155; Reference: SchedulingRequestConfig */
1373    /*ccpu00131601:DEL - dTMax will not be required by scheduler */
1374 }RgrUeSrSetupCfg;
1375
1376 /**
1377 * @brief SR configuration parameters information 
1378 */
1379 typedef struct rgrUeSrCfg
1380 {
1381    Bool             type;            /*!< Release(0)/Setup(1) */
1382    RgrUeSrSetupCfg  srSetup;         /*!< SR Setup Configuration */
1383 }RgrUeSrCfg;
1384
1385 /** @brief SRS configuration parameters information.  
1386   Reference 36.313 SoundingRS-UL-Config 
1387 */
1388 typedef struct  rgrUeUlSrsCfg
1389 {
1390    U8                      type;      /*!< Release=0 Setup =1 */
1391    RgrUeUlSrsSetupCfg      srsSetup;  /*!< SRS Setup Configuration */
1392
1393 }RgrUeUlSrsCfg;
1394
1395 #endif /*TFU_UPGRADE */
1396
1397 #ifdef LTE_ADV/* Sprint 3*/
1398 typedef struct rgrUePucchFormat3Cfg
1399 {
1400    U8  sCellAckN3ResAntP0Count;
1401    U8  sCellAckN3ResAntP1Count;
1402    U16 sCellAckN3ResAntP0[4];
1403    U16 sCellAckN3ResAntP1[4];
1404 }RgrUePucchFormat3Cfg;
1405 typedef struct rgrUePucchFormat1BCSCfg
1406 {
1407    U8  sCellAckN1ResTb1Count; /* !< num of N1 res for TB1 */
1408    U8  sCellAckN1ResTb2Count; /* !< num of N1 res for TB2 */
1409    U16 sCellAckN1ResTb1[4];   /*!< TB1 N1 resources */
1410    U16 sCellAckN1ResTb2[4];   /* !< TB2 N1 resources */
1411 }RgrUePucchFormat1BCSCfg;
1412 typedef struct rgrUeSCellAckPucchCfg
1413 {
1414    RgrSchFrmt1b3TypEnum pucchFormatType;       /* !< 1B Channel selection or format 3*/
1415    union
1416    {
1417       RgrUePucchFormat1BCSCfg format1Bcs;
1418       RgrUePucchFormat3Cfg    format3;
1419    }u;
1420 }RgrUeSCellAckPucchCfg;
1421 #endif
1422 /* rgr_x_001.main_10. Added changes of TFU_UPGRADE 
1423  This structure was earlier included under MIMO flag. But it was not part 
1424  of any structure. Now after TFU_UPGRADE inclusion this shall be used for 
1425  for PUSCH Reception Request. */
1426 /**
1427 * @brief PUSCH dedicated configuration parameters information.  
1428 */
1429 typedef struct rgrUePuschDedCfg 
1430 {
1431    Bool   pres;       /*! Prsent TRUE(1)/FALSE(0) */ 
1432    U8     bACKIdx;    /*! betaOffset-ACK-Index (0..15) */
1433    U8     bRIIdx;     /*! betaOffset-RI-Index (0..15) */  
1434    U8     bCQIIdx;    /*! betaOffset-CQI-Index (0..15) */
1435 }RgrUePuschDedCfg;
1436 /** 
1437 * @brief Downlink CQI reporting related configuration per UE
1438 */
1439 typedef struct rgrUeDlCqiCfg
1440 {
1441    RgrUeAprdDlCqiCfg aprdCqiCfg;  /*!< Aperiodic CQI-related information */
1442    RgrUePrdDlCqiCfg  prdCqiCfg;   /*!< Periodic CQI-related configuration */
1443 } RgrUeDlCqiCfg;
1444 /**
1445 * @brief Measurement Gap configuration for UE 
1446 */
1447 typedef struct rgrUeMeasGapCfg
1448 {
1449    Bool isMesGapEnabled;    /*!< Is Measuremnet Gap enabled or disabled */
1450    U8   gapPrd;             /*!< Gap period 40ms/80ms */
1451    U8   gapOffst;           /*!< Gap offset - Vaue is 0 to 1*/
1452 } RgrUeMeasGapCfg;
1453 /**
1454  @brief DRX Long Cycle Offset */
1455 typedef struct rgrDrxLongCycleOffst
1456 {
1457    U16      longDrxCycle;   /*!< DRX Long Cycle value in subframes*/
1458    U16      drxStartOffst;  /*!< DRX Long Cycle offset value in subframes*/ 
1459 } RgrDrxLongCycleOffst;
1460
1461 /**
1462  *  @brief DRX Short Cycle Offset */
1463 typedef struct rgrDrxShortDrx
1464 {
1465    Bool    pres;             /*!< Short cycle is configured or not */
1466    U16     shortDrxCycle;    /*!< DRX Short Cycle value in sub-frames*/
1467    U8      drxShortCycleTmr; /*!< Value in multiples of Short DRX Cycles*/
1468 } RgrDrxShortDrx;
1469
1470 /**
1471  * @brief DRX configuration for UE */
1472 typedef struct rgrUeDrxCfg
1473 {
1474    Bool                  isDrxEnabled;      /*!< To indicate if DRX enabled or
1475                                               not, this can be used in reconfiguration
1476                                              to release/stop the DRX (TRUE = Enabled)*/
1477 /*rgr_x_001.main_11 ADD added changes for R9*/
1478 /** @name LTEMAC_R9 */
1479 /** @{ */
1480 #ifdef LTEMAC_R9
1481    TknS32                cqiMask;          /*!< To indicate if cqi-Mask is setup
1482                                                 by higher layers. Currently supports
1483                                                 only a enum SETUP*/
1484 #endif
1485 /** @} */
1486    U16                    drxOnDurTmr;       /*!< DRX On-duration Timer value in
1487                                              PDCCH subframes */
1488    U16                   drxInactvTmr;      /*!< DRX Inactivity Timer value in
1489                                               PDCCH subframes */
1490    U16                    drxRetxTmr;        /*!< DRX Retransmission Timer value in PDCCH
1491                                               subframes */
1492    RgrDrxLongCycleOffst  drxLongCycleOffst; /*!< DRX Long cycle and offset, values in subframes */
1493    RgrDrxShortDrx        drxShortDrx;       /*!< DRX Short cycle value and offset */
1494 #ifdef EMTC_ENABLE
1495    U16                   emtcDrxUlRetxTmr;  /*Rel13 Drx Ul Retx Timer */
1496    Bool                  isEmtcUe;
1497    Bool                  drxOnDurTmrR13Pres;
1498    Bool                  drxRetxTmrR13Pres;
1499 #endif
1500 } RgrUeDrxCfg;
1501
1502 /**
1503  * @brief UE capability Configuration */
1504 typedef struct rgrUeCapCfg
1505 {
1506    U8   pwrClass;        /*!< Power class per UE */
1507    Bool intraSfFeqHop;   /*!< Intra subframe frequency hopping for PUSCH */
1508    Bool resAloocType1;   /*!< Resource allocation type 1 for PDSCH */
1509    Bool simCqiAckNack;   /*!< Simultaneous CQI and ACK/NACK on PUCCH */
1510    Bool txAntSel;        /*!< TRUE if UE capable of doing TX Antenna selection */
1511 /** @} */
1512 } RgrUeCapCfg;
1513
1514 /**
1515  *  @brief UE ACK/NACK configuration */
1516 typedef struct rgrUeAckNackRepCfg
1517 {
1518    Bool                 isAckNackEnabled;  /*!< Is ACK/NACK enabled? This
1519                                              variable can be used in reconfiguration
1520                                              also to stop/release the ACK/NACK
1521                                              Repetition */
1522    U16                  pucchAckNackRep;   /*!< n1PUCCH-AN-Rep */
1523    RgrAckNackRepFactor  ackNackRepFactor;  /*!< ACK/NACK Repetition factor */
1524 } RgrUeAckNackRepCfg;
1525
1526 /** 
1527   @brief Transmission mode configuration per UE */
1528 typedef struct rgrUeTxModeCfg
1529 {
1530    Bool            pres;           /*!< Indicates presence of transmission mode for UE */
1531    RgrTxModeTrnstn tmTrnstnState;  /*!< State of Transmission Mode transition */
1532 /* rgr_x_001.main_9 - Added support for UE Reconfiguration */
1533    RgrTxMode       txModeEnum;     /*!< UE transmission mode */
1534 } RgrUeTxModeCfg;
1535 /** 
1536   @brief Uplink HARQ configuration per UE */
1537 typedef struct rgrUeUlHqCfg
1538 {
1539    U8 maxUlHqTx;           /*!< Maximum number of UL HARQ transmissions */
1540    U8 deltaHqOffst;        /*!< Delta HARQ offset 
1541                                 Currently this is unused parameter */
1542 } RgrUeUlHqCfg;
1543 /** 
1544   @brief Group power configuration per UE for PUCCH and PUSCH group power control */
1545 typedef struct rgrUeGrpPwrCfg
1546 {
1547    Bool            pres;            /*!< Indicates presence of UE PUCCH/PUSCH group power configuration */  
1548    CmLteRnti       tpcRnti;         /*!< TPC PUCCH/PUSCH RNTI for UE */
1549    U8              idx;             /*!< Index for format 3/3A */
1550 } RgrUeGrpPwrCfg;
1551 /** 
1552   @brief Uplink power configuration per UE */
1553 typedef struct rgrUeUlPwrCfg
1554 {
1555    RgrUeGrpPwrCfg uePuschPwr;        /*!< PUSCH group power configuration per UE */
1556    RgrUeGrpPwrCfg uePucchPwr;        /*!< PUCCH group power configuration per UE */
1557    Bool           isAccumulated;     /*!< To indicate if accumulation is enabled */
1558    Bool           isDeltaMCSEnabled; /*!< To indicate Delta MCS Enabled */
1559    S8             p0UePusch;         /*!< P_0UE_PUSCH*/
1560    S8             p0UePucch;         /*!< P_0_PUCCH*/
1561    U8             pSRSOffset;        /*!< P_SRS_OFFSET 
1562                                           Currently this is unused parameter */
1563    U8             trgCqi;            /*!< CQI to aim for during PUSCH power
1564                                       *  control. Zero indicates absence, where
1565                                       *  cell-wide trgCqi is used */
1566 } RgrUeUlPwrCfg;
1567 /** 
1568   @brief Downlink/Uplink QoS configuration per UE */
1569 typedef struct rgrUeQosCfg
1570 {
1571    Bool ambrPres;   /*!< Indicates presence of AMBR */  
1572    U32  dlAmbr;     /*!< DL AMBR value for UE (bytes/sec): Optional */
1573    U32  ueBr;       /*!< UL Byte Rate value for UE (bytes/sec): Optional */
1574 } RgrUeQosCfg;
1575 /** 
1576   @brief Time Alignment timer configuration per UE */
1577 typedef struct rgrUeTaTmrCfg
1578 {
1579    Bool       pres;          /*!< rgr_x_001.main_7: Pres=NOTPRSNT indicates taTmr INFINITY */
1580    U16        taTmr;         /*!< Timer configuration (in subframes) */
1581 } RgrUeTaTmrCfg;
1582 /** @name RGR_V1 */
1583 /** @{ */
1584 #ifdef RGR_V1
1585 /* rgr_x_001.main_7: [ccpu00112398] Added periodicBSR-Timer and 
1586    retxBSR-Timer */
1587 /** 
1588   @brief BSR timer configuration per UE */
1589 typedef struct rgrUeBsrTmrCfg
1590 {
1591    Bool      isPrdBsrTmrPres; /*!< Indicates if periodic BSR timer is present
1592                               */
1593    U16       prdBsrTmr;       /*!< periodicBSR-Timer configuration
1594                                    (in subframes): Value 0xFFFF indicates
1595                                    'Infinity' */
1596    U16       retxBsrTmr;      /*!< retxBSR-Timer configuration (in subframes)
1597                                    : Mandatory parameter */
1598 } RgrUeBsrTmrCfg;
1599 #endif
1600 /** @{ */
1601
1602 /*rgr_x_001.main_9 - Added support for SPS*/
1603 /** 
1604   @brief DL SPS configuration parameters per UE */
1605 typedef struct rgrUeSpsDlCfg
1606 {
1607    Bool        isDlSpsEnabled;   /*!< Bool indicating if DL SPS is enabled */
1608    U8          numSpsHqProc;      /*!< Number of SPS harq Proc: Value in set
1609                                    [1..8] */
1610    U8          numPucchVal;      /*!< Count for configured PUCCH values */
1611    U32         n1PucchVal[4];    /*!< Array of n1Pucch values */
1612    RgrSpsPrd   dlSpsPrdctyEnum;  /*!< Periodicity for DL SPS */
1613    U16         explicitRelCnt;   /*!< Number of SPS ocassions with BO = 0 after 
1614                                which SPS is released */
1615 } RgrUeSpsDlCfg;
1616
1617 typedef struct rgrUlSpsLcInfo
1618 {
1619    Bool  isSpsEnabled;
1620    U8    lcId;
1621 }RgrUlSpsLcInfo;
1622
1623 /** 
1624   @brief UL SPS configuration parameters per UE */
1625 typedef struct rgrUeSpsUlCfg
1626 {
1627    Bool              isUlSpsEnabled;   /*!< Bool indicating if UL SPS is 
1628                                             enabled */
1629    RgrSpsImplRelCnt  implicitRelCnt;   /*!< Number of SPS ocassions after which
1630                                             implicit release happens */
1631 #ifdef LTE_TDD
1632    Bool              twoIntervalCfg;   /*!< Bool indicating if two interval
1633                                             config is enabled */
1634 #endif
1635    Bool              pwrCfgPres;       /*!< Indicates if Power related 
1636                                             configuration is present */
1637    struct 
1638    {
1639       S8             p0NominalPuschVal;/*!< Value in range [-126...24] */ 
1640       S8             p0UePuschVal;     /*!< Value in range [-8....7] */
1641    } pwrCfg;
1642    RgrSpsPrd         ulSpsPrdctyEnum;  /*!< Periodicity for UL SPS */
1643    U8                lcCnt;            /*!< Number of logical channels */
1644    RgrUlSpsLcInfo    spsLcInfo[RGR_MAX_SPS_LC];/*!< Array of SPS logical channels -
1645                                                All these are assumed to be 
1646                                                mapped onto SPS lcg with ID=1 */
1647
1648    Bool              isLcSRMaskEnab ;  /*!< Logical Channel SR Mask Enable Flag*/
1649
1650
1651 } RgrUeSpsUlCfg;
1652
1653 /** 
1654   @brief SPS configuration parameters per UE */
1655 typedef struct rgrUeSpsCfg
1656 {
1657    CmLteRnti      spsRnti;          /*!< SPS-RNTI value */ 
1658    RgrUeSpsDlCfg  dlSpsCfg;         /*!< DL SPS configuration information */  
1659    RgrUeSpsUlCfg  ulSpsCfg;         /*!< UL SPS configuration information */  
1660    
1661 } RgrUeSpsCfg;
1662 /** @brief Transmit Antenna selection types 
1663 */
1664 typedef enum rgrUeTxAntSelType
1665 {
1666    RGR_UE_TX_ANT_OPENLOOP,
1667    RGR_UE_TX_ANT_CLOSEDLOOP
1668 } RgrUeTxAntSelType;
1669 /**
1670   @brief UE Transmit Antenna selection related configuration */
1671 typedef struct rgrUeTxAntSelCfg
1672 {
1673    Bool               pres;    /*!< Configuration present */
1674    RgrUeTxAntSelType  selType; /*!< Transmit Antenna selection type */
1675 } RgrUeTxAntSelCfg;
1676 /** @} */
1677
1678 /*rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
1679    RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
1680 #ifdef RGR_CQI_REPT
1681 /* DL Power control related structures */
1682
1683 /** 
1684   @brief PUSH n CQI Reporting related configuration for an UE*/
1685 typedef struct rgrUeCqiReptCfg
1686 {
1687    U8   numColltdCqiRept;      /*!< Number of CQI reports to be sent in PUSH n
1688                                  Reporting */
1689 }RgrUeCqiReptCfg;
1690
1691 /** 
1692   @brief CQI for subband number subBandIdx */
1693 typedef struct rgrSubBandCqiInfo
1694 {
1695    U8 cqi[2];     /*!< Subband CQI for two codewords */
1696    U8 subBandIdx; /*!< Index of the subband starting from 0, 
1697                        in ascending order of frequency */
1698 } RgrSubBandCqiInfo;
1699
1700 /*rgr_x_001.main_11 ADD added changes for CQI management*/
1701 /** 
1702   @brief A CQI Report used in PUSH n Reporting*/
1703 typedef struct rgrUeCqiRept
1704 {
1705    U8                  cqi[2];    /*!< Wideband CQI Value for two codewords*/
1706    U8                  cqiMode;   /*!< Reporting mode by which CQI was reported */
1707    RgrSubBandCqiInfo   sbCqiInfo[RGR_MAX_DL_CQI_SUBBAND];
1708    U8                  numSubBand;/*!< Number of Subbands for which CQI is 
1709                                        being reported */
1710 } RgrUeCqiRept;
1711
1712 /*rgr_x_001.main_11 ADD added changes for CQI management*/
1713 /** 
1714   @brief Collated CQI reports */
1715 typedef struct RgrUeCqiInfo
1716 {
1717    RgrUeCqiRept cqiRept[RGR_CQIRPTS_MAXN];    /*!< CQI reports */
1718    U8 numCqiRept;       /*!< Number of CQI reports present */
1719 } RgrUeCqiInfo;
1720
1721 /*rgr_x_001.main_11 ADD added changes for CQI management*/
1722 /**
1723   @brief Status Indication structure passed in RgUiRgrStaInd primitive */
1724 typedef struct rgrStaIndInfo
1725 {
1726    CmLteCellId       cellId;       /*!< Cell ID */
1727    CmLteRnti         crnti;        /*!< UE identifier UE ID: CRNTI */
1728    RgrUeCqiInfo      ueCqiInfo;        /*!< CQI reports*/
1729 }RgrStaIndInfo;
1730 #endif
1731
1732 /* LTE_ADV_FLAG_REMOVED_START */
1733 /**
1734   @brief LOAD INF Indication structure passed in RgUiRgrLoadInfInd primitive */
1735 typedef struct rgrLoadInfIndInfo
1736 {
1737    CmLteCellId       cellId;             /*!< Cell ID   */
1738    U16               bw;                 /*!< Bandwidth */
1739    U32               type;
1740    union
1741    {
1742       TknStrOSXL     rntpInfo;           /*!< RNTP Info */
1743       U32            absLoadInfo[RGR_ABS_PATTERN_LEN]; 
1744    } u;
1745 }RgrLoadInfIndInfo;
1746 /* LTE_ADV_FLAG_REMOVED_END */
1747
1748 #ifdef TFU_UPGRADE 
1749 /*rgr_x_001.main_11 ADD added changes for CQI management*/
1750 /**
1751   @brief Struct for P_A configuration per UE */
1752 typedef struct rgrUepACfg
1753 {
1754    /* PA value in db */
1755    RgrUeDlPwrCntrlPaCfg   pA;   /*!< P_A Value which as used in equation pa =\
1756                                    delta_PowerOffset + P_A
1757                                    Ref: RRC 36.331, 6.3.2, PDSCH-Config*/
1758    Bool    pAPrsnt;            /*!< Indicates if pA has valid information */
1759 }RgrUepACfg;
1760
1761 /*rgr_x_001.main_11 ADD added changes for CQI management*/
1762 typedef struct rgrUePdschDedCfg
1763 {
1764    RgrUepACfg         uepACfg;    /*!< P_A Configuration,
1765                                      Ref: RRC 36.331, 6.3.2, PDSCH-Config*/
1766 }RgrUePdschDedCfg;
1767
1768 #endif
1769
1770 /* LTE_ADV_FLAG_REMOVED_START */
1771 /* @brief UE Configuration for LTE Adv feature */
1772 typedef struct rgrLteAdvancedUeConfig
1773 {
1774    U32      pres;
1775    Bool     isUeCellEdge;  /*! Flag to indicate UE is cell edge or cell center */
1776    Bool     isAbsUe;       /*! Flag to indicate ABS UE or Not */
1777 } RgrLteAdvancedUeConfig;
1778 /* LTE_ADV_FLAG_REMOVED_END */
1779
1780 typedef enum RgrAccessStratumRls
1781 {
1782         RGR_REL_8,
1783         RGR_REL_9,
1784         RGR_REL_10,
1785         RGR_REL_11,
1786         RGR_REL_12,
1787         RGR_REL_SPARE_4,
1788         RGR_REL_SPARE_3,
1789         RGR_REL_SPARE_2,
1790         RGR_REL_SPARE_1,
1791 } RgrAccessStratumRls;
1792
1793 #ifdef EMTC_ENABLE
1794 #define RGR_MAX_EPDCCH_SET 2
1795 typedef struct rgrExtaddgrp2
1796 {
1797    Bool pres;
1798    U8  csiNumRep;// MAPPING
1799    U8  mpddchPdschHop;
1800    U8  mpdcchStartUESSFDD;// MAPPING
1801    U16  mpdcchNumRep;// MAPPING
1802    U32  mpddchNB;//1.. maxAvailNarrowBands-r13
1803 }RgrExtaddgrp2;
1804
1805 typedef struct rgrRbAssignment
1806 {
1807  U8 numPRBpairs; // MAPPING
1808  U8 rbAssignment[5];
1809 }RgrRbAssignment;
1810 typedef  struct rgrEpdcchAddModLst
1811 {
1812    U8 setConfigId;
1813    U8   transmissionType;
1814    RgrRbAssignment   resBlkAssignment;
1815    U32 dmrsScrambSeq;
1816    U32 pucchResStartoffset;
1817    TknU32   pdschRemapQLcfgId;
1818    TknU8  mpdcchNumPRBpair; // MAPPING
1819    RgrExtaddgrp2 extaddgrp2;
1820 }RgrEpdcchAddModLst;
1821
1822 typedef struct rgrSubFrmPatCfg
1823 {
1824    Bool pres;
1825    U8 measSfPatFDD[5];
1826 }RgrSubFrmPatCfg;
1827 typedef struct rgrEpdcchConfigRel11
1828 {  
1829    Bool pres;
1830    RgrSubFrmPatCfg sfPtn;
1831    TknU32 startSymbolr11;
1832    RgrEpdcchAddModLst  epdcchAddModLst[RGR_MAX_EPDCCH_SET];
1833 }RgrEpdcchConfigRel11;
1834
1835 typedef struct rgrUeEmtcRecfg
1836 {
1837    Bool isHdFddEnbld; /*!< Half Duplex FDD is configured: TRUE=1/FALSE=0 */
1838 }RgrUeEmtcRecfg;
1839 typedef struct rgrPucchRepCfgRel13
1840 {
1841         Bool isPucchRepPres;
1842         U8 modeANumPucchRepFormat1;
1843         U8 modeANumPucchRepFormat2;
1844
1845 }RgrPucchRepCfgRel13;
1846
1847 typedef struct rgrUeEmtcCfg
1848 {
1849    Bool isHdFddEnbld; /*!< Half Duplex FDD is configured: TRUE=1/FALSE=0 */
1850    Bool pres;
1851    RgrEpdcchConfigRel11 emtcEpdcchCfg;
1852    RgrPucchRepCfgRel13 emtcPucchRepCfg;
1853    U8                  pdschReptLevModeA;
1854 }RgrUeEmtcCfg;
1855 #endif
1856
1857 #ifdef RG_5GTF
1858 typedef struct rgrUe5gtfCfg
1859 {
1860    U8              grpId;
1861    U8              BeamId;
1862    U8              numCC;
1863    U8              mcs;
1864    U8              maxPrb;
1865 }RgrUe5gtfCfg;
1866 #endif
1867
1868
1869 /** 
1870   @brief UE configuration */
1871 typedef struct rgrUeCfg
1872 {
1873    CmLteCellId        cellId;           /*!< Cell ID */
1874    CmLteRnti          crnti;            /*!< UE ID: CRNTI */ 
1875    RgrUeTxModeCfg     txMode;           /*!< UE Transmission mode: Optional */
1876    RgrUeDlCqiCfg      ueDlCqiCfg;       /*!< UE DL CQI configuration */
1877    RgrUeUlHqCfg       ueUlHqCfg;        /*!< UE-related UL HARQ configuration */
1878    RgrUeUlPwrCfg      ueUlPwrCfg;       /*!< UE UL power configuration: Optional */
1879    RgrUeQosCfg        ueQosCfg;         /*!< UE-related Dl/UL QoS configuration: AMBR */
1880    RgrUeTaTmrCfg      ueTaTmrCfg;       /*!< UE TA timer configuration: Optional */
1881 /** @name RGR_V1 */
1882 /** @{ */
1883 #ifdef RGR_V1
1884    /* rgr_x_001.main_7: [ccpu00112398] Added periodicBSR-Timer and 
1885    retxBSR-Timer */
1886    RgrUeBsrTmrCfg     ueBsrTmrCfg;      /*!< UE BSR timer configuration: 
1887                                              Mandatory */
1888 #endif
1889 /** @} */
1890    CmLteUeCategory    ueCatEnum;        /*!< UE category */
1891 /*rgr_x_001.main_11 ADD added changes for DRX*/
1892 /**@{ */
1893    RgrUeDrxCfg        ueDrxCfg;         /*!< UE-specific DRX configuration */
1894 /** @} */
1895    Bool               isTtiBundlEnabled;/*!< TtiBundling Enabled/Disabled for UE */
1896    RgrUeAckNackRepCfg ueAckNackCfg;     /*!< ACK/NACK configuration for UE */
1897    RgrUeMeasGapCfg    ueMesGapCfg;      /*!< Measurement Gap configuration for UE */
1898    RgrUeCapCfg        ueCapCfg;         /*!< UE Capabilty reconfiguration */
1899    RgrCodeBookRstCfg  ueCodeBookRstCfg; /*!< Number of bits in code book for
1900                                             transmission modes */
1901    TknU8              dedPreambleId;    /*!< If present, then mapping exists at
1902                                           RGR user with CRNTI */
1903 /** @name LTE_TDD */
1904 /** @{ */
1905 #ifdef LTE_TDD
1906    RgrTddAckNackMode   ackNackModeEnum;  /*!< ACK/NACK Mode Bundling or
1907                                            Multiplexing */
1908 #endif /* LTE_TDD */
1909 /** @} */
1910    /*rgr_x_001.main_9 - Added support for SPS*/
1911 /** @name LTEMAC_SPS */
1912 /** @{ */
1913    RgrUeSpsCfg        ueSpsCfg;          /*!< SPS related configuration
1914                                            parameters for UE */
1915 /** @} */
1916 /* rgr_x_001.main_10. Added changes of TFU_UPGRADE */
1917 /** @name TFU_UPGRADE */
1918 /** @{ */
1919 #ifdef TFU_UPGRADE
1920    /* Periodic CQI, SRS, SR  and HD-FDD Configuration  */
1921    RgrUeUlSrsCfg     srsCfg;       /*!< SRS  configuration information */
1922    RgrUeSrCfg        srCfg;        /*!< SR configuration information */
1923 #endif 
1924 /** @} */
1925 /*rgr_x_001.main_11 ADD added changes for HDFDD*/
1926 /** @name LTEMAC_HDFDD */
1927 /** @{ */
1928 #ifdef LTEMAC_HDFDD
1929    Bool              isHdFddEnbld;        /*!< Half Duplex FDD is configured: TRUE=1/FALSE=0 */
1930 #endif /* LTEMAC_HDFDD */
1931 /** @} */
1932 /* rgr_x_001.main_8 - Changes for MIMO feature addition */
1933 /* rgr_x_001.main_9 - Removed dependency on MIMO compile-time flag */
1934
1935    /* rgr_x_001.main_10. Added changes of TFU_UPGRADE */
1936    RgrUePuschDedCfg  puschDedCfg;           /*!< PUSCH -Configuration that is dedicated. Refer 
1937                                              to 36.331 for more information */
1938    RgrUeTxAntSelCfg    ulTxAntSel;          /*!< UL Transmit antenna selection configuration */
1939    
1940 /** @name RGR_CQI_REPT */
1941 /** @{ */
1942 /* rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
1943    RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
1944 #ifdef RGR_CQI_REPT
1945    RgrUeCqiReptCfg    ueCqiReptCfg;    /*!< PUSH n CQI Reporting
1946                                          configuration */
1947 #endif
1948 /** @} */
1949 #ifdef TFU_UPGRADE 
1950    RgrUePdschDedCfg   uePdschDedCfg; /*!< PDSCH related dedicated configuration per UE */
1951 #endif
1952    /* LTE_ADV_FLAG_REMOVED_START */
1953    RgrLteAdvancedUeConfig ueLteAdvCfg; /*!< LTE Adv configuration per UE */
1954    /* LTE_ADV_FLAG_REMOVED_END */
1955    RgrAccessStratumRls accessStratumRls; /*!< UE Access Stratum Release */
1956    U8        csgMmbrSta;     /* CSG Membership status, refer RgrUeCsgMbrStatus */
1957 #ifdef EMTC_ENABLE
1958    RgrUeEmtcCfg emtcUeCfg;
1959 #endif
1960 #ifdef RG_5GTF
1961    RgrUe5gtfCfg ue5gtfCfg;
1962 #endif
1963 } RgrUeCfg;
1964 /** 
1965   @brief QCI, GBR, and MBR configuration for dedicated logical channels */
1966 typedef struct rgrLchQosCfg
1967 {
1968    U8 qci;                   /*!< QCI for the logical channel. 
1969                                   Valid Range:[0-255] (Actual QCI - 1). */
1970    U32 gbr;                  /*!< GBR value for a logical channel (bytes/sec). */
1971    U32 mbr;                  /*!< MBR value for a logical channel (bytes/sec). */
1972 } RgrLchQosCfg;
1973 /*rgr_x_001.main_9 - Added support for SPS*/
1974 /**    
1975   @brief SPS related configuration for logical channels */
1976 typedef struct rgrLchSpsCfg
1977 {
1978    Bool isSpsEnabled;        /*!< Bool indicating if SPS is enabled for
1979                                   the service */
1980 } RgrLchSpsCfg;
1981 /** 
1982   @brief Logical channel configuration information for downlink logical channels */
1983 typedef struct rgrDlLchCfg 
1984 {
1985    CmLteTrchType dlTrchType; /*!< Indicates type of DL transport channel:
1986                                    Validated only for BCCH at MAC 
1987                                    DL Transport channel type can take following values:
1988                                    CM_LTE_TRCH_BCH 
1989                                    CM_LTE_TRCH_PCH
1990                                    CM_LTE_TRCH_DL_SCH*/
1991    RgrLchQosCfg   dlQos;      /*!< DL QoS parameters: Only for dedicated channels */
1992    /*rgr_x_001.main_9 - Added support for SPS*/
1993    RgrLchSpsCfg   dlSpsCfg;   /*!< SPS configuration for DL logical channel */
1994    U8 rlcReorderTmr;          /*!< RLC reordering timer required for LAA*/
1995 } RgrDlLchCfg;
1996
1997 /** 
1998   @brief Logical channel configuration information for uplink logical channels */
1999 typedef struct rgrUlLchCfg
2000 {
2001   CmLteLcId   lcId;    /*!< LC ID for uplink logical channel*/
2002   U8          qci;     /*!< QCI associated with LC ID */
2003 } RgrUlLchCfg;
2004 /** 
2005   @brief Logical channel group configuration information for uplink logical channels */
2006 typedef struct rgrUlLcgCfg
2007 {
2008    U8             lcgId;      /*!< Logical channel group ID */
2009 /*rgr_x_001.main_11 ADD added changes for L2 measurements*/
2010 #ifdef LTE_L2_MEAS
2011    U8             numLch;      /*!< Number of LC's for this group in Uplink */
2012    RgrUlLchCfg    lchUlCfg[RGR_MAX_LC_PER_LCG]; /*!< Logical Channel details for
2013                                                  this LCG*/
2014 #endif /*LTE_L2_MEAS */
2015    U32            gbr;      /*!< Commulative UL GBR of all LC mapping to this LCG */
2016    U32            mbr;      /*!< Commulative UL MBR of all LC mapping to this LCG */
2017 } RgrUlLcgCfg;
2018
2019 /** 
2020   @brief Logical channel Uplink configuration information for dedicated channels */
2021 typedef struct rgrUlLchQciCfg
2022 {
2023    CmLteLcId lcId;           /*!< Logical channel ID */
2024    U8        qci;            /*!< Qci */
2025    U8        lcgId;          /*!< Logical channel group ID */
2026 }RgrUlLchQciCfg;
2027
2028 /** 
2029   @brief Logical channel configuration information for dedicated channels */
2030 typedef struct rgrLchCfg
2031 {
2032    CmLteCellId   cellId;     /*!< Cell ID */
2033    CmLteRnti     crnti;      /*!< CRNTI for DTCH and DCCH */
2034    CmLteLcId     lcId;       /*!< Logical channel ID */
2035    CmLteLcType   lcType;     /*!< Identifies the Logical channel type.lcType
2036                                can take the following values:
2037                                       CM_LTE_LCH_BCCH
2038                                       CM_LTE_LCH_PCCH
2039                                       CM_LTE_LCH_CCCH
2040                                       CM_LTE_LCH_DCCH
2041                                       CM_LTE_LCH_DTCH */  
2042    RgrDlLchCfg   dlInfo;     /*!< Downlink logical channel configuration information */
2043    RgrUlLchQciCfg    ulLchQciInfo;  /*!< Uplink logical channel configuration information */
2044    U8             lcgId;      /*!< Logical channel group ID */
2045 } RgrLchCfg;
2046
2047 /** @brief Set of parameters for logical channelgroup Configuration */
2048 typedef struct rgrLcgCfg
2049 {
2050    CmLteCellId   cellId;     /*!< Cell ID */
2051    CmLteRnti     crnti;      /*!< CRNTI for DTCH and DCCH */
2052    RgrUlLcgCfg   ulInfo;     /*!< Uplink logical channel configuration information */
2053 } RgrLcgCfg;
2054
2055
2056 /** @brief Basic configuration structure at RRM */
2057 typedef struct rgrCfg
2058 {
2059    U8 cfgType;                /*!< Indicates configuration type */
2060    union                      /*!< cfgType is selector */ 
2061    { 
2062       RgrCellCfg      cellCfg;   /*!< Cell configuration */
2063       RgrUeCfg        ueCfg;     /*!< UE configuration */ 
2064       RgrLchCfg       lchCfg;    /*!< Dedicated logical channel configuration */
2065       RgrLcgCfg       lcgCfg;    /*!< Dedicated logical channel Group configuration */
2066       RgrSchedEnbCfg  schedEnbCfg; /*!< EnodeB Sched Configurations */
2067    } u;
2068 } RgrCfg;
2069
2070 /** 
2071  * @brief Activation time information */
2072 typedef struct rgrActvTime
2073 {
2074    Bool            pres;      /*!< Indicates the presence of activation time */
2075    CmLteTimingInfo actvTime;  /*!< Activation time information */ 
2076 } RgrActvTime;
2077
2078
2079 /** @brief Cell reconfiguration structure at RRM */
2080 typedef struct rgrCellRecfg
2081 {
2082    CmLteCellId         cellId;        /*!< Cell ID */
2083    U32                 recfgTypes;    /*!< Bitmask indicating reconfiguration types */
2084    RgrActvTime         recfgActvTime; /*!< Activation Time for cell reconfiguration */
2085    RgrDlHqCfg          dlHqRecfg;     /*!< DL HARQ related reconfiguration */ 
2086    RgrCfiCfg           cfiRecfg;      /*!< CFI reconfiguration for PDCCH */
2087 /* rgr_x_001.main_1: Removing unwanted srMcs Configuration structure */
2088    RgrUlTrgCqiCfg      trgUlCqi;      /*!< Target UL CQI */
2089    RgrDlCmnCodeRateCfg dlCmnCodeRate; /*!< Coding rate for common DL channels: 
2090                                            Expressed in multiples of 1024 */
2091    RgrPuschSubBandCfg  puschSubBand;  /*!< UL sub-band information */
2092    RgrUlCmnCodeRateCfg ulCmnCodeRate; /*!< Coding rate for common UL channels: 
2093                                          Expressed in multiples of 1024 */
2094    RgrPucchCfg         pucchRecfg;    /*!< PUCCH configuration information */
2095    RgrSrsCfg           srsRecfg;      /*!< SRS configuration information */ 
2096    RgrRachCfg          rachRecfg;     /*!< RACH configuration */
2097    RgrDlfsCfg          dlfsRecfg;     /*!< Reconfiguration for DLFS scheduler */
2098    /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
2099 /** @name RGR_SI_SCH */
2100 /** @{ */
2101 #ifdef RGR_SI_SCH
2102    RgrSiCfg            siReCfg;       /*!<SI Re-Configuration structure */
2103 #endif
2104    U16                 t300TmrVal;    /*!< t300Timer value configured in Frames */
2105    /* LTE_ADV_FLAG_REMOVED_START */
2106    RgrLteAdvancedCellConfig rgrLteAdvCfg; /*!< RGR Configuration of LTE Adv for a cell */
2107    /* LTE_ADV_FLAG_REMOVED_END */
2108    Bool               isDynCfiEnb;   /*!< To indicate whether Dynamic CFI is enabled 
2109                                           or not */ 
2110    Bool               isAutoCfgModeEnb;   /*!< To indicate whether AutoCfg mode is enabled 
2111                                           or not */ 
2112    RgrCellCsgParamCfg  csgParamCfg;   /*!< Cell-specific configuration for CSG */
2113    RgrCellCntrlCmdCfg  cntrlCmdCfg;      /*!< control cmds to alter this cell's performance */ 
2114 /** @} */
2115 #ifdef EMTC_ENABLE
2116    Bool               emtcEnable;
2117    RgrEmtcCellCfg     emtcCellReCfg;   
2118 #endif
2119 } RgrCellRecfg;
2120
2121 #ifdef LTE_ADV
2122 /**
2123  * @brief Structure to store SCell Index for activation
2124  *
2125  * @details
2126  *    - sCellIdx     : sCell Index in in list of Secondary cells
2127  */
2128 typedef struct rgrSCellActDeactInfo 
2129 {
2130    U8          sCellIdx;    /*!< sCell Index to be activated */
2131 }RgrSCellActDeactInfo;
2132
2133 /**
2134  * @brief Structure to store details for activation/deactivation event
2135  *
2136  * @details
2137  *    - crnti              : Ue identifier used to get UE control block
2138  *    - numOfSCells        : Number of SCells to be Activated/Deactivated
2139  *    - sCellActDeactInfo  : Array of SCellsIdx
2140  */
2141 typedef struct rgrSCellActDeactEvnt 
2142 {
2143    CmLteRnti          crnti;       /*!< UE ID: To fetch UeCb in a cell*/
2144    U8                 numOfSCells;    /* !<No of SCells to be Activated */
2145    RgrSCellActDeactInfo    sCellActDeactInfo[RGR_MAX_SCELL_PER_UE]; 
2146                       /* !<SCH SCell Activation Deactivation Information */
2147 } RgrSCellActDeactEvnt;
2148
2149
2150 /**
2151  * @brief Structure to store details for SCell UL PC Config
2152  *
2153  * @details
2154  *    - isAccumulated      : If TRUE Accumulation is ocnfigured
2155  *    - isDeltaMCSEnabled  : If TRUE DELTA MCS is enabled
2156  *    - p0UePusch          : P0 Nominal value
2157  *    - pSRSOffset         : SRS OFFSET value for SCELL
2158  */
2159 typedef struct rgrUeUlPwrDedSCellCfg
2160 {
2161    Bool           isAccumulated;     /*!< To indicate if accumulation is enabled */
2162    Bool           isDeltaMCSEnabled; /*!< To indicate Delta MCS Enabled */
2163    S8             p0UePusch;         /*!< P_0UE_PUSCH*/
2164    U8             pSRSOffset;        /*!< P_SRS_OFFSET 
2165                                        Currently this is unused parameter */
2166
2167 } RgrUeUlPwrDedSCellCfg;
2168
2169
2170 /** @brief UE Downlink secondary cell config params */
2171 typedef struct rgrUeSecCellCfg 
2172 {
2173   U8                   sCellIdx;
2174   U16                  sCellId;         /*!< This will be secondary cellId */
2175   TknU32               sCellDeActTmr;     /*!< for Activating the sCell for UE */
2176   RgrUeDlCqiCfg        ueSCellDlCqiCfg; /*!< Secondary cell dedicated configuration */
2177 #ifdef TFU_UPGRADE 
2178   RgrUePdschDedCfg     uePdschDedCfg;   /*!< Secondary cell dedicated configuration */
2179 #endif
2180   RgrUeTxModeCfg       txMode;          /*!< UE transmission mode in Secondary
2181                                           cell*/
2182   Bool                 isUlCaEnabled;  /*!<If TRUE ULCA is also enabled along with DL CA for 
2183                                            this SCELL */
2184   RgrUeUlPwrDedSCellCfg ueSCellUlDedPwrCfg; /*!< UE UL DED ULPC Cfg */
2185 }RgrUeSecCellCfg;
2186
2187 /** @brief Configuration information of Secondary cells for a UE*/
2188 typedef struct rgrUeSecCellInfo 
2189 {
2190   Bool                useExtBSRSizes; /*!< If TRUE used R10 Extended BSR Size Table*/
2191   U8                  numSCells;
2192   RgrUeSecCellCfg     ueSCellDedCfg[RGR_MAX_SCELL_PER_UE]; /*!< Secondary cell configuration per
2193 UE */
2194 }RgrUeSecCellInfo;
2195
2196 /** @brief Configuration of every SCell for a UE*/
2197 typedef struct rgrUeDlSecCellRelInfo 
2198 {
2199   U8                   sCellIdx;  /*!< This will be secondary cell Idx */
2200   U16                  sCellId;   /*!< This will be secondary cellId */
2201 }RgrUeDlSecCellRelInfo;
2202
2203 /** @brief Configuration for SCell Release for a UE*/
2204 typedef struct rgrUeSecCellRelInfo 
2205 {
2206   U8                   numSCells; /*!< This will be the number of secondary cells*/
2207   RgrUeDlSecCellRelInfo   ueSCellRelDedCfg[RGR_MAX_SCELL_PER_UE]; /*!< Secondary cell configuration per
2208 UE */
2209 }RgrUeSecCellRelInfo;
2210       
2211 #endif /* LTE_ADV */
2212 /** 
2213   @brief UE reconfiguration information */
2214 typedef struct rgrUeRecfg
2215 {
2216    CmLteCellId        cellId;            /*!< Cell ID */
2217    CmLteRnti          oldCrnti;          /*!< Old UE ID */
2218    CmLteRnti          newCrnti;          /*!< New UE ID: This value must match
2219                                          'oldCrnti', if no CRNTI change during reconfiguration */ 
2220    /*rgr_x_001.main_11 : changing RecfgTypes to U32 
2221     * as all 16 bits are exhausted*/
2222    /* LTE_ADV_FLAG_REMOVED_START */
2223    /* KW fix for LTE_ADV */
2224    U32                ueRecfgTypes;      /*!< Bitmask indicating UE reconfiguration items */
2225    /* LTE_ADV_FLAG_REMOVED_END */
2226    RgrUeTxModeCfg     txMode;            /*!< UE transmission mode */
2227    RgrUeAprdDlCqiCfg  aprdDlCqiRecfg;    /*!< Aperiodic CQI-related information */
2228 #ifndef TFU_UPGRADE
2229    RgrUePrdDlCqiCfg   prdDlCqiRecfg;     /*!< Periodic CQI-related configuration */
2230 #endif
2231    RgrUeUlHqCfg       ueUlHqRecfg;       /*!< UE UL HARQ information */
2232    RgrUeQosCfg        ueQosRecfg;        /*!< UE-related Dl/UL QoS configuration: AMBR */
2233    RgrUeTaTmrCfg      ueTaTmrRecfg;      /*!< UE TA timer information */
2234 /** @name RGR_V1 */
2235 /** @{ */   
2236 #ifdef RGR_V1
2237    /* rgr_x_001.main_7: [ccpu00112398] Added periodicBSR-Timer and 
2238    retxBSR-Timer */
2239    RgrUeBsrTmrCfg     ueBsrTmrRecfg;     /*!< UE BSR timer reconfiguration */
2240 #endif
2241 /** @} */
2242    RgrUeUlPwrCfg      ueUlPwrRecfg;      /*!< UE UL power configuration */
2243 /*rgr_x_001.main_11 ADD added changes for DRX*/
2244 /**@{ */
2245    RgrUeDrxCfg        ueDrxRecfg;        /*!< UE-specific DRX configuration 
2246                                               Currently this is unused */
2247    /*rgr_x_001.main_12 - REM - isTtiBundlEnabled redundant field*/
2248 /** @} */
2249    Bool               isTtiBundlEnabled; /*!< TTI Bundling Enabled/Disabled for UE 
2250                                               Currently this is unused */
2251    RgrUeAckNackRepCfg ueAckNackRecfg;    /*!< ACK/NACK configuration for UE */
2252    RgrUeCapCfg        ueCapRecfg;        /*!< UE Capabilty reconfiguration*/
2253    RgrUeMeasGapCfg    ueMeasGapRecfg;    /*!< Measurement Gap configuration for UE */
2254    RgrCodeBookRstCfg  ueCodeBookRstRecfg;/*!< Number of bits in code book for
2255                                              transmission modes */
2256 /* rgr_x_001.main_9 - Added support for UE Reconfiguration */
2257    CmLteUeCategory     ueCatEnum;           /*!< UE category */ 
2258    RgrUeTxAntSelCfg    ulTxAntSel;          /*!< UL Transmit antenna selection configuration */
2259 /** @} */
2260    /*rgr_x_001.main_9 - Added support for SPS*/
2261 /** @name LTEMAC_SPS */
2262 /** @{ */   
2263    RgrUeSpsCfg        ueSpsRecfg;        /*!< UE SPS reconfiguration */
2264 /** @} */
2265 /* rgr_x_001.main_10. Added changes of TFU_UPGRADE */
2266 /** @name TFU_UPGRADE */
2267 /** @{ */   
2268 #ifdef TFU_UPGRADE
2269
2270    /* Periodic CQI, SRS, SR  and HD-FDD Reconfiguration  */
2271
2272    RgrUePrdDlCqiCfg  cqiCfg;       /*!< Periodic CQI PMI RI reconfiguration information */
2273    RgrUeUlSrsCfg     srsCfg;       /*!< SRS  reconfiguration information */
2274    RgrUeSrCfg        srCfg;        /*!< SR reconfiguration information */
2275 #endif
2276 /** @} */
2277 /*rgr_x_001.main_11 ADD added changes for HDFDD*/
2278 /** @name LTEMAC_HDFDD */
2279 /** @{ */   
2280 #ifdef LTEMAC_HDFDD
2281    Bool              isHdFddEnbld;        /*!< Half Duplex FDD is configured: TRUE=1/FALSE=0 */
2282 #endif /* LTEMAC_HDFDD */
2283 /** @} */
2284 /* rgr_x_001.main_10. Added changes of TFU_UPGRADE */
2285    RgrUePuschDedCfg  puschDedCfg;   /*!< PUSCH Configuration that is dedicated.
2286                                     Refer to 36.331 for more information */
2287 /** @name RGR_CQI_REPT */
2288 /** @{ */   
2289 /* rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
2290    RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
2291 #ifdef RGR_CQI_REPT
2292    RgrUeCqiReptCfg    ueCqiReptCfg;   /*!< PUSH n CQI Reporting configuration */
2293 #endif
2294 /** @} */
2295 #ifdef TFU_UPGRADE 
2296    RgrUePdschDedCfg   uePdschDedCfg; /*!< PDSCH related dedicated configuration per UE */
2297 #endif
2298    /* LTE_ADV_FLAG_REMOVED_START */
2299    RgrLteAdvancedUeConfig ueLteAdvCfg; /*!< LTE Adv configuration per UE */
2300    /* LTE_ADV_FLAG_REMOVED_END */
2301
2302 #ifdef LTE_ADV
2303    RgrUeSecCellInfo     ueSCellCfgInfo;/*!< Secondary cell dedicated informaton
2304                                          per UE */
2305    RgrUeSCellAckPucchCfg        sCellAckN1ResCfg; /*!< N1ResCfg for SCell ack feedback */
2306    U8                 simulAckNackCQIFormat3;
2307 #endif /* LTE_ADV */
2308    RgrAccessStratumRls    accessStratumRls; /*!< UE Access Stratum Release */
2309    U8        csgMmbrSta;     /* CSG Membership status, refer RgrUeCsgMbrStatus */
2310 #ifdef EMTC_ENABLE
2311    RgrUeEmtcRecfg emtcUeRecfg;
2312 #endif
2313 } RgrUeRecfg;
2314 /** 
2315   @brief Logical channel reconfiguration information for dedicated channels only */
2316 typedef struct rgrLchRecfg
2317 {
2318    CmLteCellId cellId;       /*!< Cell ID */
2319    CmLteRnti   crnti;        /*!< CRNTI for DTCH and DCCH */
2320    CmLteLcId   lcId;         /*!< Logical channel ID */
2321    /*rgr_x_001.main_9 - Added support for SPS*/
2322    U8          recfgTypes;   /*!< Reconfiguration type for DL LC */
2323    
2324 /** @brief Reconfiguration Parameters during the DownLink */
2325 struct dlRecfgS 
2326    {
2327       RgrLchQosCfg dlQos;    /*!< DL QoS parameters */
2328       /*rgr_x_001.main_9 - Added support for SPS*/
2329       RgrLchSpsCfg dlSpsRecfg; /*!< SPS re-configuration for DL logical channel */
2330    } dlRecfg;                /*!< Downlink logical channel reconfiguration information */
2331    
2332    RgrUlLchQciCfg ulLchQciInfo;
2333    U8             lcgId;      /*!< Logical channel group ID */
2334 } RgrLchRecfg;
2335
2336 /** @brief Set of parameters Corresponding To Logical channel group Reconfiguration */
2337 typedef struct rgrLcgRecfg 
2338 {
2339    CmLteCellId cellId;       /*!< Cell ID */
2340    CmLteRnti   crnti;        /*!< CRNTI for DTCH and DCCH */
2341    /** @brief Uplink Reconfiguration Parameters for logical channel Groups */   
2342    struct ullcgRecfgS
2343    {
2344       U8             lcgId;     /*!< Logical channel group ID */
2345 #ifdef RG_UNUSED
2346       U8             numLch;      /*!< Number of LC's for this group in Uplink */
2347       RgrUlLchCfg    lchUlCfg[RGR_MAX_LC_PER_LCG]; /*!< Logical Channel details for
2348                                                         this LCG*/
2349 #endif /*LTE_L2_MEAS */
2350       U32            gbr;     /*!< Commulative UL GBR of all LC mapping to this LCG */
2351       U32            mbr;     /*!< Commulative UL MBR of all LC mapping to this LCG */
2352    } ulRecfg;
2353 }RgrLcgRecfg;
2354
2355 /** @brief Basic reconfiguration structure at RRM */
2356 typedef struct rgrRecfg
2357 {
2358    U8 recfgType;             /*!< Indicates reconfiguration type */
2359    union                     /*!< Reconfiguration type is selector */
2360    {
2361       RgrCellRecfg  cellRecfg; /*!< Cell reconfiguration */
2362       RgrUeRecfg    ueRecfg;    /*!< UE reconfiguration information */ 
2363       RgrLchRecfg   lchRecfg;   /*!< Logical channel reconfiguration information */
2364       RgrLcgRecfg   lcgRecfg;   /*!< Logical group reconfiguration information */
2365    } u;
2366 } RgrRecfg;
2367 /** 
2368   @brief Basic Delete information for MAC */
2369 typedef struct rgrDel
2370 {
2371    U8 delType;               /*!< Indicates configuration item to be deleted */
2372    /** @brief Indicates The Cell/UE/Logical Channel Group to be deleted  */ 
2373    union rgrDelU
2374    {
2375       /** @brief Delete The Cell ID */
2376       struct rgrCellDelS 
2377       {
2378          CmLteCellId cellId; /*!< Cell ID */
2379       } cellDel;             /*!< Cell Delete information */
2380
2381       /** @brief Delete The Ue From The Cell */
2382       struct rgrUeDelS 
2383       {
2384          CmLteCellId cellId; /*!< Cell ID */
2385          CmLteRnti   crnti;  /*!< UE ID: CRNTI */
2386       } ueDel;               /*!< UE Delete information */
2387       
2388        /** @brief Delete The Logical Channels */
2389       struct rgrLchDelS
2390       {
2391          CmLteCellId cellId; /*!< Cell ID */
2392          CmLteRnti   crnti;  /*!< CRNTI for DTCH and DCCH */
2393          CmLteLcId   lcId;   /*!< Logical channel ID */
2394          U8          lcgId;  /*!< Logical channel group ID */
2395       } lchDel;              /*!< Logical channel delete information */
2396       
2397       /** @brief Delete The Logical channel groups */
2398       struct rgrLcgDelS
2399       {
2400          CmLteCellId cellId; /*!< Cell ID */
2401          CmLteRnti   crnti;  /*!< CRNTI for DTCH and DCCH */
2402          U8          lcgId;  /*!< Logical channel group ID */
2403       } lcgDel;
2404 #ifdef LTE_ADV
2405       /** @brief Delete Secondary cell for a UE */
2406       struct rgrUeScellRel
2407       {
2408          CmLteCellId          cellId;           /*!< Cell ID */
2409          CmLteRnti            crnti;            /*!< UE ID: CRNTI */
2410          U32                  ueDelTypes;       /*!< Bitmask indicating UE reconfiguration items */
2411          RgrUeSecCellRelInfo  ueSCellRelCfgInfo;/*!< Secondary cell dedicated informaton*/
2412       } ueScellRel;
2413 #endif   
2414    } u;                      /*!< Union of Cell/UE/Lch delete information */
2415 } RgrDel;
2416 /** 
2417   @brief UE RESET info for MAC */
2418 typedef struct rgrRst
2419 {
2420    CmLteCellId cellId; /*!< Cell ID */
2421    CmLteRnti   crnti;  /*!< UE ID: CRNTI tobe RESET */
2422 } RgrRst;
2423
2424 typedef enum rgrSonCfgType
2425 {
2426    RGR_SON_PRB_CFG
2427 }RgrSonCfgType;
2428
2429 /* Pa enum -6, -4.77, -3, -1.77, 0, 1, 2, 3 dB and -INF */
2430 typedef enum rgrPaVal
2431 {
2432    RGR_PA_DB_NEG_6,
2433    RGR_PA_DB_NEG_4_77,
2434    RGR_PA_DB_NEG_3,
2435    RGR_PA_DB_NEG_1_77,
2436    RGR_PA_DB_0,
2437    RGR_PA_DB_1,
2438    RGR_PA_DB_2,
2439    RGR_PA_DB_3,
2440    RGR_PA_NEGTIVE_INF
2441 }RgrPaVal;
2442
2443 /* Pa level enum High, Normal, Low */
2444 typedef enum rgrPaLevel
2445 {
2446    RGR_PA_LVL_NORMAL,
2447    RGR_PA_LVL_LOW,
2448    RGR_PA_LVL_HIGH
2449 }RgrPaLevel;
2450
2451
2452 /** 
2453   @brief PRB configuration received from SON for MAC */
2454
2455 typedef struct rgrPrbCfg
2456 {
2457    U8                isSonIcicEnable;
2458    U8                numCellEdgeUEs;
2459    U8                numCellCentreUEs;
2460    CmLteRnti         cellEdgeUe[RG_SCH_MAX_UE];      /*!< List of cell Edge UE's */
2461    CmLteRnti         cellCentreUe[RG_SCH_MAX_UE];   /*!< List of cell centre UE's */
2462    RgrPaLevel        paLevelPerPrb[RGR_SCH_MAX_PA_PER_PRB]; /*!< Mapping of PRB to Pa Values */
2463 }RgrPrbCfg; 
2464
2465 /** 
2466   @brief configuration received from SON for MAC */
2467 typedef struct rgrSonCfg
2468 {
2469    RgrSonCfgType   cfgType;
2470    union
2471    {
2472       RgrPrbCfg   prbCfg;
2473    }u; 
2474 }RgrSonCfg;
2475
2476  /** @brief Basic RGR configuration/reconfiguration info at RRM */
2477 typedef struct rgrCfgReqInfo
2478 {
2479
2480    U8  action;               /*!< Determines configuration/reconfiguration */
2481    union                     /*!< Action is selector */
2482    {
2483       RgrCfg   cfgInfo;      /*!< Configuration information at RRM */
2484       RgrRecfg recfgInfo;    /*!< Reconfiguration information at RRM */
2485       RgrDel   delInfo;      /*!< Deletion related information */
2486       RgrRst   rstInfo;      /*!< UE information to be REST */
2487       RgrSonCfg   sonCfg;    /*!< PA and PRB configuration received from SON*/
2488 #ifdef LTE_ADV
2489       RgrSCellActDeactEvnt  sCellActDeactEvnt;  /*!< SCell Activation Information */
2490 #endif /* LTE_ADV */
2491    } u;
2492 } RgrCfgReqInfo;
2493
2494 /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
2495 /** @name RGR_RRM_TICK */
2496 /** @{ */
2497 /** @brief This structure contains information that is passed as part of the TTI
2498  * indication sent from PHY to MAC.
2499  */
2500 typedef struct rgrTtiIndInfo
2501 {
2502    CmLteCellId       cellId;       /*!< Cell ID */
2503    U16               hSfn;          /*!< Hyper System Frame Number */
2504    U16               sfn;          /*!< System Frame Number */
2505 } RgrTtiIndInfo;
2506 /** @} */
2507
2508 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
2509 /** @name RGR_SI_SCH */
2510 /** @{ */
2511 #ifdef RGR_SI_SCH
2512 /** @brief This structure contains parameters used for specifying SI 
2513  *  configuration to MAC-Scheduler by RRM as a part of primitive
2514  *  RgUiRgrSiCfgReq.
2515  */
2516 typedef struct rgrSiCfgReqInfo
2517 {
2518    CmLteCellId    cellId;  /*! Cell Id */
2519    RgrSiCfgType   cfgType; /*! MIB/SIB1/SI */
2520    U8             siId; /*! SI ID, if cfgType is SI. 
2521                              SI ID starts from 1  */
2522    Buffer         *pdu; /*! PDU, one of MIB/SIB1/SI */
2523 }RgrSiCfgReqInfo;
2524
2525 /** @brief This structure contains parameters used for specifying SI
2526  *  configuration to MAC-Scheduler by RRM as a part of primitive
2527  *  RgUiRgrWarningSiCfgReq.
2528  */
2529 typedef struct rgrWarningSiCfgReqInfo
2530 {
2531    U8             emtcEnable; /*! indicates EMTC enabled or not */
2532    CmLteCellId    cellId;  /*! Cell Id */
2533    U8             siId; /*! SI ID */
2534    CmLListCp      siPduLst; /*! list of PDUs,each corresponding to one segment*/
2535 }RgrWarningSiCfgReqInfo;
2536
2537 typedef struct rgrSegmentInfo
2538 {
2539    CmLList     cmasSegPduLstLnk;
2540    Buffer*     pdu;
2541 }RgrSegmentInfo;
2542
2543
2544 #endif /*RGR_SI_SCH*/
2545
2546 #define RGR_UESTA_MAC_CRNTI_CE_RECVD   0x01
2547 #define RGR_UESTA_MAC_CRNTI_CE_RECVD_IN_SPS_ACTIVE   0x02
2548 /**
2549   @brief Status Indication structure passed in RgUiRgrUeStaInd primitive */
2550 typedef struct rgrUeStaIndInfo
2551 {
2552    CmLteCellId       cellId;       /*!< Cell ID */
2553    CmLteRnti         crnti;        /*!< UE identifier UE ID: CRNTI */
2554    U8                status;       /*!< Status */
2555 }RgrUeStaIndInfo;
2556 /** @} */
2557
2558 /** @{ */
2559 /* LTE_ADV_FLAG_REMOVED_START */
2560 /** @brief This structure contains parameters used for specifying Load Inf 
2561  *  i.e RNTP, ABS etc configuration to MAC-Scheduler by RRM as a part of primitive
2562  *  RgUiRgrLoadInfReq.
2563  */
2564 typedef struct rgrLoadInfReqInfo
2565 {
2566    CmLteCellId    cellId;             /*! Cell Id */
2567    U8             rgrCcPHighStartRb;  /*! Start RB for power high cell centre user */
2568    U8             rgrCcPHighEndRb;    /*! End RB for power high cell centre use */
2569 }RgrLoadInfReqInfo;
2570 /* LTE_ADV_FLAG_REMOVED_END */
2571 /** @} */
2572
2573 /* 
2574    Function Prototypes 
2575  */
2576
2577 /** @brief Request from RRM to MAC to bind the interface SAPs .
2578  *
2579  * @details This Primitive is used to bind The SAPs between RRM and the MAC.
2580  * The API validates the Sap Ids , contents of the pst Structure .
2581  *
2582  * @param[in] pst  Pointer To the Post Structure.
2583  * @param[in] suId SAP Id of the Service User.
2584  * @param[in] spId SAP Id of the Service Provider
2585  * @return ROK/RFAILED
2586  */
2587
2588 typedef S16 (*RgrBndReq) ARGS((
2589    Pst*                 pst,
2590    SuId                 suId,
2591    SpId                 spId));
2592
2593 /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
2594 /** @name RGR_RRM_TICK */
2595 /** @{ */
2596
2597 /** @brief Indication from MAC to a RGR User about the Transmit Time Interval. 
2598  *
2599  * @details This Primitive is used to indicate RRM after every TTI.
2600  * API validates the  post Structure and TTI Timing .
2601  *
2602  * @param[in] pst    Pointer To the Post Structure.
2603  * @param[in] suId   SAP Id of the Service User.
2604  * @param[in] ttiInd Pointer To a structure containing additional Information that is passed 
2605  * as a part of TTI Indication. 
2606  * @return ROK/RFAILED
2607  */
2608
2609 typedef S16 (*RgrTtiInd) ARGS((
2610    Pst*                 pst,
2611    SuId                 suId,
2612    RgrTtiIndInfo        *ttiInd));
2613 /** @} */
2614
2615 /** @brief Confirmation from MAC to RRM for the bind request for the interface SAPs.
2616  *
2617  * @details This Primitive is used To confirm the binding between the MAC and The RRM.
2618  *
2619  * @param[in] pst    Pointer To the Post Structure.
2620  * @param[in] suId   SAP Id of the Service User.
2621  * @param[in] status Binding Status.
2622  * @return ROK/RFAILED
2623  */
2624 typedef S16 (*RgrBndCfm) ARGS((
2625    Pst*                 pst,
2626    SuId                 suId,
2627    U8                   status));
2628
2629 /** @brief Request from RRM to MAC to unbind the interface SAPs.
2630  *
2631  * @details This Primitive is used to unbind MAC and The RRM.It validates on the SAP If its already Bound 
2632  * and unbinds the SAP.
2633  *
2634  * @param[in] pst    Pointer to the Post Structure.
2635  * @param[in] spId   SAP Id of the Service Provider.
2636  * @param[in] reason Cause for unbinding.
2637  * @return ROK/RFAILED
2638  */
2639 typedef S16 (*RgrUbndReq) ARGS((
2640    Pst*                 pst,
2641    SpId                 spId,
2642    Reason               reason));
2643
2644 /** @brief Configuration request from RRM to MAC for configuring Cell/UE/LC. 
2645  *
2646  * @details This API is used to configure a scheduler for a UE/Cell/Logical Channels 
2647  *
2648  * @param[in] pst        Pointer to the Post Structure.
2649  * @param[in] spId       SAP Id of the Service Provider.
2650  * @param[in] transId    Reason for unbinding.
2651  * @param[in] cfgReqInfo A Pointer to Configuration/Reconfiguration Structure. 
2652  * @return ROK/RFAILED
2653  */
2654 typedef S16 (*RgrCfgReq) ARGS((
2655    Pst*                 pst,
2656    SpId                 spId,
2657    RgrCfgTransId        transId,
2658    RgrCfgReqInfo *      cfgReqInfo));
2659 /** @brief Configuration confirm from MAC to RRM. 
2660  * 
2661  * @details This API confirms the RGR User about the status of the Configuration.
2662  * 
2663  * @param[in] pst      Pointer to the Post Structure.
2664  * @param[in] spId     SAP Id of the Service User.
2665  * @param[in] transId  Transaction Id for the transaction between RRM and MAC
2666  * @param[in] status   Configuration confirmation status Information.
2667  * @return ROK/RFAILED
2668  */
2669 typedef S16 (*RgrCfgCfm) ARGS((
2670    Pst*                 pst,
2671    SuId                 suId,
2672    RgrCfgTransId        transId,
2673    U8                   status));
2674 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
2675
2676 /** @name RGR_SI_SCH */
2677 /** @{ */
2678 #ifdef RGR_SI_SCH
2679 /** @brief SI Configuration Request primitive for SI configuration
2680  *  
2681  * @details This API is used to configure the System Information from RRM to a MAC scheduler.
2682  * 
2683  * @param[in] pst      Pointer to the Post Structure.
2684  * @param[in] spId     SAP Id of the Service Provider.
2685  * @param[in] transId  Transaction Id for the transaction between RRM and MAC.
2686  * @param[in] siCfgReq Parameters for the configuration.
2687  * @return ROK/RFAILED
2688  */
2689 typedef S16 (*RgrSiCfgReq) ARGS((
2690    Pst               *pst,
2691    SpId              spId,
2692    RgrCfgTransId     transId,
2693    RgrSiCfgReqInfo   *siCfgReq));
2694
2695 /** @brief SI Configuration Confirm Primitive for configuring Cell/UE/LC  
2696  *
2697  * @details This API confirms the SI configuration confirm in the status indication.  
2698  * 
2699  * @param[in] pst     Pointer to a post structure.
2700  * @param[in] suId    SAP Id of the Service User.
2701  * @param[in] transId Transaction Id between the MAC and The RRM.
2702  * @param[in] status  Confirmation status information from the MAC to the user.
2703  * @return ROK/RFAILED.
2704  */
2705 typedef S16 (*RgrSiCfgCfm) ARGS((
2706    Pst*                 pst,
2707    SuId                 suId,
2708    RgrCfgTransId        transId,
2709    U8                   status));
2710
2711 /** @brief SI Configuration Request primitive for warning SI configuration
2712  *  
2713  *  @details This API is used to configure the System Info (SIB10,SIB11,SIB12) 
2714  *           from RRM to a MAC scheduler.
2715  *    
2716  *  @param[in] pst      Pointer to the Post Structure.
2717  *  @param[in] spId     SAP Id of the Service Provider.
2718  *  @param[in] transId Transaction Id between the MAC and The RRM.
2719  *  @param[in] WarningsiCfgReq Parameters for the configuration.
2720  *  @return ROK/RFAILED
2721  */
2722 typedef S16 (*RgrWarningSiCfgReq) ARGS((
2723    Pst                     *pst,
2724    SpId                    spId,
2725    RgrCfgTransId           transId,
2726    RgrWarningSiCfgReqInfo  *warningSiCfgReq));
2727
2728
2729 /** @brief Warning SI Configuration Confirm Primitive    
2730  *
2731  * @details This API confirms the Warning SI configuration confirm in the
2732  *           status indication.  
2733  * 
2734  * @param[in] pst     Pointer to a post structure.
2735  * @param[in] suId    SAP Id of the Service User.
2736  * @param[in] transId Transaction Id between the MAC and The RRM.
2737  * @param[in] siId   SI ID
2738  * @param[in] status  Confirmation status information from the MAC to the user.
2739  * @return ROK/RFAILED.
2740  */
2741 typedef S16 (*RgrWarningSiCfgCfm) ARGS((
2742    Pst*                 pst,
2743    SuId                 suId,
2744    RgrCfgTransId        transId,
2745    U8                   siId,
2746    U8                   status));
2747
2748 /** @brief SI Configuration stop Request primitive for warning SI configuration
2749  *
2750  *  @details Used to stop the System Information(SIB10, SIB11, SIB12) from RRM 
2751  *           to a MAC schedule
2752  *
2753  *  @param[in] pst      Pointer to the Post Structure.
2754  *  @param[in] spId     SAP Id of the Service Provider.
2755  *  @param[in] siId     siId to be stopped.
2756  *  @return ROK/RFAILED
2757  */ 
2758 typedef S16 (*RgrWarningSiStopReq) ARGS((
2759    Pst               *pst,
2760    SpId              spId,
2761    RgrCfgTransId     transId,
2762    U8                siId ));
2763
2764 #endif /*RGR_SI_SCH*/
2765
2766 /** @{ */
2767 /* LTE_ADV_FLAG_REMOVED_START */
2768 /** @brief LOAD INF Configuration Request primitive for RNTP, ABS etc Configuration
2769  *  
2770  * @details This API is used to configure the LOAD INF parameters from RRM to a MAC scheduler.
2771  * 
2772  * @param[in] pst        Pointer to the Post Structure.
2773  * @param[in] spId       SAP Id of the Service Provider.
2774  * @param[in] transId    Transaction Id for the transaction between RRM and MAC.
2775  * @param[in] loadInfReq Parameters for the configuration.
2776  * @return ROK/RFAILED
2777  */
2778 typedef S16 (*RgrLoadInfReq) ARGS((
2779          Pst                 *pst,
2780          SpId                spId,
2781          RgrCfgTransId       transId,
2782          RgrLoadInfReqInfo   *loadInfReq));
2783 /* LTE_ADV_FLAG_REMOVED_END */
2784 /** @} */
2785
2786 /* rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
2787    RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
2788 #ifdef RGR_CQI_REPT
2789 typedef S16 (*RgrStaInd) ARGS((
2790    Pst*                 pst,
2791    SuId                 suId,
2792    RgrStaIndInfo        *staInd));
2793 #endif
2794
2795 /* LTE_ADV_FLAG_REMOVED_START */
2796 typedef S16 (*RgrLoadInfInd) ARGS((
2797    Pst*                 pst,
2798    SuId                 suId,
2799    RgrLoadInfIndInfo    *loadInfInd));
2800 /* LTE_ADV_FLAG_REMOVED_END */
2801
2802 typedef S16 (*RgrUeStaInd) ARGS((
2803    Pst*                 pst,
2804    SuId                 suId,
2805    RgrUeStaIndInfo        *staInd));
2806 #ifdef RG
2807
2808 /** @brief Request from RRM to MAC to bind the interface SAPs. 
2809  * 
2810  * @details This API is invoked by RRM towards MAC to bind RGR SAP. 
2811  * This API validates the Pst, spId, suId and sends the bind confirm to
2812  * RRM.
2813  *
2814  *@param[in] pst   Pointer to a post structure.
2815  *@param[in] suId  SAP Id of the Service User.
2816  *@param[in] spId  SAP Id of the Service Provider.
2817  *@return  ROK/RFAILED
2818 */
2819 EXTERN S16 RgUiRgrBndReq ARGS((
2820    Pst*                 pst,
2821    SuId                 suId,
2822    SpId                 spId
2823 ));
2824 /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
2825 /** @name RGR_RRM_TICK */
2826 /** @{ */
2827 /** @brief TTI Indication from Scheduler to RRM.  
2828
2829 *  @details TTI Indication from MAC to RGR User.
2830 *
2831 * @param[in] pst    Pointer to a post structure.
2832 * @param[in] suId   SAP Id of the Service User.
2833 * @param[in] ttiInd Parameters containing the information on TTI Indication.
2834 * @return ROK/RFAILED
2835 */
2836 EXTERN S16 RgUiRgrTtiInd ARGS((
2837    Pst*                 pst,
2838    SuId                 suId,
2839    RgrTtiIndInfo        *ttiInd
2840 ));
2841 #endif
2842 /** @} */
2843 /*rgr_x_001.main_9 - Added support for SPS*/
2844 EXTERN S16 cmPkRgrSpsCellCfg ARGS((
2845    RgrSpsCellCfg *param,
2846    Buffer *mBuf
2847 ));
2848 EXTERN S16 cmUnpkRgrSpsDlCellCfg ARGS((
2849    RgrSpsCellCfg *param,
2850    Buffer *mBuf
2851 ));
2852 EXTERN S16 cmPkRgrUeSpsDlCfg ARGS((
2853    RgrUeSpsDlCfg *param,
2854    Buffer *mBuf
2855 ));
2856 EXTERN S16 cmUnpkRgrUeSpsDlCfg ARGS((
2857    RgrUeSpsDlCfg *param,
2858    Buffer *mBuf
2859 ));
2860 EXTERN S16 cmPkRgrUeSpsUlCfg ARGS((
2861    RgrUeSpsUlCfg *param,
2862    Buffer *mBuf
2863 ));
2864 EXTERN S16 cmUnpkRgrUeSpsUlCfg ARGS((
2865    RgrUeSpsUlCfg *param,
2866    Buffer *mBuf
2867 ));
2868 EXTERN S16 cmPkRgrUeSpsCfg ARGS((
2869    RgrUeSpsCfg *param,
2870    Buffer *mBuf
2871 ));
2872 EXTERN S16 cmUnpkRgrUeSpsCfg ARGS((
2873    RgrUeSpsCfg *param,
2874    Buffer *mBuf
2875 ));
2876 EXTERN S16 cmPkRgrLchSpsCfg ARGS((
2877    RgrLchSpsCfg *param,
2878    Buffer *mBuf
2879 ));
2880 EXTERN S16 cmUnpkRgrLchSpsCfg ARGS((
2881    RgrLchSpsCfg *param,
2882    Buffer *mBuf
2883 ));
2884
2885 /*rgr_x_001.main_11 ADD added changes for L2 measurements*/
2886 EXTERN S16 cmPkRgrUlLchCfg ARGS((
2887    RgrUlLchCfg *param,
2888    Buffer *mBuf
2889 ));
2890 EXTERN S16 cmUnpkRgrUlLchCfg ARGS((
2891   RgrUlLchCfg *param,
2892   Buffer *mBuf
2893 ));
2894 EXTERN S16 cmPkRgrUlLchQciCfg ARGS((
2895    RgrUlLchQciCfg *param,
2896    Buffer *mBuf
2897 ));
2898 EXTERN S16 cmUnpkRgrUlLchQciCfg ARGS((
2899   RgrUlLchQciCfg *param,
2900   Buffer *mBuf
2901 ));
2902
2903
2904 /*rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
2905    RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
2906 #ifdef RGR_CQI_REPT
2907 EXTERN S16 cmPkRgrUeCqiReptCfg ARGS((
2908 RgrUeCqiReptCfg *param,
2909 Buffer *mBuf
2910 ));
2911
2912 EXTERN S16 cmUnpkRgrUeCqiReptCfg ARGS((
2913 RgrUeCqiReptCfg *param,
2914 Buffer *mBuf
2915 ));
2916
2917 EXTERN S16 cmUnpkRgrSubBandCqiInfo ARGS((
2918 RgrSubBandCqiInfo *param,
2919 Buffer *mBuf
2920 ));
2921
2922 EXTERN S16 cmPkRgrStaInd ARGS((
2923 Pst* pst,
2924 SuId suId,
2925 RgrStaIndInfo* staInd
2926 ));
2927
2928 EXTERN S16 cmUnpkRgrStaInd ARGS((
2929 RgrStaInd func,
2930 Pst *pst,
2931 Buffer *mBuf
2932 ));
2933
2934 EXTERN S16 cmPkRgrStaIndInfo ARGS((
2935 RgrStaIndInfo *param,
2936 Buffer *mBuf
2937 ));
2938
2939 EXTERN S16 cmUnpkRgrStaIndInfo ARGS((
2940 RgrStaIndInfo *param,
2941 Buffer *mBuf
2942 ));
2943
2944 EXTERN S16 cmPkRgrUeCqiInfo ARGS((
2945 RgrUeCqiInfo *param,
2946 Buffer *mBuf
2947 ));
2948
2949 EXTERN S16 cmUnpkRgrUeCqiInfo ARGS((
2950 RgrUeCqiInfo *param,
2951 Buffer *mBuf
2952 ));
2953
2954 EXTERN S16 cmPkRgrUeCqiRept ARGS((
2955 RgrUeCqiRept *param,
2956 Buffer *mBuf
2957 ));
2958
2959 EXTERN S16 cmPkRgrSubBandCqiInfo ARGS((
2960 RgrSubBandCqiInfo *param,
2961 Buffer *mBuf
2962 ));
2963
2964 EXTERN S16 cmUnpkRgrUeCqiRept ARGS((
2965 RgrUeCqiRept *param,
2966 Buffer *mBuf
2967 ));
2968 #endif
2969
2970 /* LTE_ADV_FLAG_REMOVED_START */
2971 EXTERN S16 cmPkRgrLoadInfInd ARGS((
2972 Pst* pst,
2973 SuId suId,
2974 RgrLoadInfIndInfo* loadInfInd
2975 ));
2976
2977 EXTERN S16 cmUnpkRgrLoadInfInd ARGS((
2978 RgrLoadInfInd func,
2979 Pst *pst,
2980 Buffer *mBuf
2981 ));
2982
2983 EXTERN S16 cmPkRgrLoadInfIndInfo ARGS((
2984 RgrLoadInfIndInfo *param,
2985 Buffer *mBuf
2986 ));
2987
2988 EXTERN S16 cmUnpkRgrLoadInfIndInfo ARGS((
2989 RgrLoadInfIndInfo *param,
2990 Pst *pst, /* dsfr_pal_fixes ** 21-March-2013 ** SKS */
2991 Buffer *mBuf
2992 ));
2993 /* LTE_ADV_FLAG_REMOVED_END */
2994
2995 #ifdef TFU_UPGRADE 
2996 EXTERN S16 cmPkRgrUePdschDedCfg ARGS((
2997 RgrUePdschDedCfg  *param,
2998 Buffer *mBuf
2999 ));
3000
3001 EXTERN S16 cmUnpkRgrUePdschDedCfg ARGS((
3002 RgrUePdschDedCfg *param,
3003 Buffer *mBuf
3004 ));
3005
3006 EXTERN S16 cmPkRgrUepACfg ARGS((
3007 RgrUepACfg *param,
3008 Buffer *mBuf
3009 ));
3010
3011 EXTERN S16 cmUnpkRgrUepACfg ARGS((
3012 RgrUepACfg *param,
3013 Buffer *mBuf
3014 ));
3015 #endif
3016
3017 #ifdef LTE_ADV
3018 EXTERN S16 cmPkRgrUeSecCellInfo ARGS((
3019 RgrUeSecCellInfo *param,
3020 Buffer *mBuf
3021 ));
3022
3023 EXTERN S16 cmUnpkRgrUeSecCellInfo ARGS((
3024 RgrUeSecCellInfo *param,
3025 Buffer *mBuf
3026 ));
3027
3028 EXTERN S16 cmPkRgrUeDlSecCellRelInfo ARGS((
3029 RgrUeDlSecCellRelInfo *param,
3030 Buffer *mBuf
3031 ));
3032
3033 EXTERN S16 cmUnpkRgrUeDlSecCellRelInfo ARGS((
3034 RgrUeDlSecCellRelInfo *param,
3035 Buffer *mBuf
3036 ));
3037
3038 EXTERN S16 cmPkRgrUeSecCellRelInfo ARGS((
3039 RgrUeSecCellRelInfo *param,
3040 Buffer *mBuf
3041 ));
3042
3043 EXTERN S16 cmUnpkRgrUeSecCellRelInfo ARGS((
3044 RgrUeSecCellRelInfo *param,
3045 Buffer *mBuf
3046 ));
3047
3048 /* Sprint 3 */
3049 EXTERN S16 cmPkRgrUeSCellAckPucchCfg ARGS((
3050 RgrUeSCellAckPucchCfg *param,
3051 Buffer *mBuf
3052 ));
3053
3054 EXTERN S16 cmUnpkRgrUeSCellAckPucchCfg ARGS((
3055 RgrUeSCellAckPucchCfg *param,
3056 Buffer *mBuf
3057 ));
3058 #endif /* LTE_ADV */
3059 #ifdef RG
3060 /** @brief Confirmation from MAC to RRM for the bind request. 
3061 *
3062 * @details Confirmation from MAC to RRM for the bind
3063 * request for the interface saps. This function indicates it through the status To the User.
3064 *
3065 *  @param[in] pst     Pointer to a post structure.
3066 *  @param[in] suId    SAP Id of the Service User.
3067 *  @param[in] status  Confirmation status for the RGR User.
3068 *  @return ROK/RFAILED  
3069 */
3070 EXTERN S16 RgUiRgrBndCfm ARGS((
3071    Pst*                 pst,
3072    SuId                 suId,
3073    U8                   status
3074 ));
3075
3076 /** @brief Request from RRM to MAC to unbind the interface SAPs. 
3077  *
3078  * @details This API is invoked by RRM towards MAC to unbind RGR SAP. 
3079  * This API validates the Pst, spId, suId and sends the unbdind confirm to
3080  * 
3081  * @param[in] pst    Pointer To a post structure.
3082  * @param[in] spId   Service provider SAP Id.
3083  * @param[in] reason Cause for the Unbinding.
3084  * @return ROK/RFAILED.
3085  */
3086 EXTERN S16 RgUiRgrUbndReq ARGS((
3087    Pst*                 pst,
3088    SpId                 spId,
3089    Reason               reason
3090 ));
3091
3092 /** @brief Configuration request from RRM to MAC for configuring Cell/UE/LC.
3093  *
3094  * @details This API is invoked by RRM towards MAC to configure MAC. 
3095  *     These API validates the Pst, spId, suId and transfers the config request 
3096  *     specific information to corresponding ownership module (GOM) API. 
3097  *  
3098  *  @param[in] pst        Pointer to a post structure.
3099  *  @param[in] spId       SAP Id of the Service Provider.
3100  *  @param[in] transId    MAC to RRM Transaction Id.
3101  *  @param[in] cfgReqInfo Basic RGR configuration/reconfiguration info at RRM. 
3102  *  @return  ROK/RFAILED
3103  */
3104 EXTERN S16 RgUiRgrCfgReq ARGS((
3105    Pst*                 pst,
3106    SpId                 spId,
3107    RgrCfgTransId        transId,
3108    RgrCfgReqInfo *      cfgReqInfo
3109 ));
3110
3111 /** @brief Configuration Confirm from MAC to RRM.  
3112  *
3113  * @details In this API crnti, preambleId, and
3114  * maskId are returned to RRM if request does not contain crnti (For Handover purpose)
3115  *
3116  *  @param[in] pst     A pointer to post Structure.
3117  *  @param[in] suId    SAP Id for a service Provider.
3118  *  @param[in] transId MAC to RRM User transaction Id. 
3119  *  @param[in] status  Status indication from the MAC.  
3120  *  @return ROK/RFAILED
3121  */
3122 EXTERN S16 RgUiRgrCfgCfm ARGS((
3123    Pst*                 pst,
3124    SuId                 suId,
3125    RgrCfgTransId        transId,
3126    U8                   status
3127 ));
3128 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
3129 /** @name RGR_SI_SCH */
3130 /** @{ */
3131 #ifdef RGR_SI_SCH
3132 /** @brief SI Configuration Request primitive used for SI configuration
3133  *  from RRM to MAC-Scheduler.
3134  *
3135  * @details  This primitive specifies the PDU
3136  *  (MIB/SIB1/SIs) and the associated parameters in the structure
3137  *  RgrSiCfgReqInfo.
3138  * 
3139  * @param[in] pst      Pointer to a post Structure.
3140  * @param[in] spId     SAP Id of the Service provider.
3141  * @param[in] transId  RRM to MAC transaction Id.
3142  * @param[in] siCfgReq Parameters used for specifying SI.
3143  * @return ROK/RFAILED 
3144  */
3145 EXTERN S16 RgUiRgrSiCfgReq ARGS((
3146    Pst           *pst,
3147    SpId          spId,
3148    RgrCfgTransId transId,
3149    RgrSiCfgReqInfo   *siCfgReq
3150 ));
3151
3152 /** @brief SI Configuration Confirm from MAC to RRM.
3153  *
3154  * @details This primitive is used to confirm the SI configuration to RRM from MAC. 
3155  * 
3156  * @param[in] pst     Pointer to a post structure
3157  * @param[in] suId    Service User SAP Id
3158  * @param[in] transId Transaction id between RRM and MAC
3159  * @param[in] status  Confirmation status .
3160  * @return ROK/RFAILED
3161  */
3162 EXTERN S16 RgUiRgrSiCfgCfm ARGS((
3163    Pst*                 pst,
3164    SuId                 suId,
3165    RgrCfgTransId        transId,
3166    U8                   status
3167 ));
3168
3169 /** @brief SI Configuration Confirm from MAC to RRM.
3170  *
3171  * @details This primitive is used to confirm the SI configuration to RRM 
3172  *          from MAC. 
3173  * 
3174  * @param[in] pst     Pointer to a post structure
3175  * @param[in] suId    Service User SAP Id
3176  * @param[in] transId Transaction id between RRM and MAC
3177  * @param[in] status  Confirmation status .
3178  * @return ROK/RFAILED
3179  */
3180 EXTERN S16 RgUiRgrWarningSiCfgReq ARGS((
3181    Pst                    *pst,
3182    SpId                   spId,
3183    RgrCfgTransId          transId,
3184    RgrWarningSiCfgReqInfo *WarningSiCfgReqInfo
3185 ));
3186
3187
3188 /** @brief Warning SI Configuration Confirm from MAC to RRM.
3189  *
3190  * @details This primitive is used to confirm the Warning SI configuration 
3191  *          to RRM from MAC. 
3192  * 
3193  * @param[in] pst     Pointer to a post structure
3194  * @param[in] suId    Service User SAP Id
3195  * @param[in] transId Transaction id between RRM and MAC
3196  * @param[in] siId    SI ID.
3197  * @param[in] status  Confirmation status .
3198  * @return ROK/RFAILED
3199  */
3200 EXTERN S16 RgUiRgrWarningSiCfgCfm ARGS((
3201    Pst*              pst,
3202    SuId              suId,
3203    RgrCfgTransId     transId,
3204    U8                siId,
3205    U8                status
3206 ));
3207
3208 /** @brief SI Configuration Confirm from MAC to RRM.
3209  *
3210  * @details This primitive is used to confirm the SI configuration to RRM
3211  *          from MAC. 
3212  * 
3213  * @param[in] pst     Pointer to a post structure
3214  * @param[in] spId    Service Provider SAP Id
3215  * @param[in] siId    SI Index
3216  * @return ROK/RFAILED
3217  */
3218 EXTERN S16 RgUiRgrWarningSiStopReq ARGS((
3219    Pst           *pst,
3220    SpId          spId,
3221    RgrCfgTransId transId,
3222    U8            siId
3223 ));
3224
3225 #endif /*RGR_SI_SCH*/
3226 /** @} */
3227
3228 /** @{ */
3229 /* LTE_ADV_FLAG_REMOVED_START */
3230 /** @brief LOAD INF Configuration Request primitive used for RNTP, ABS configuration
3231  *  from RRM to MAC-Scheduler.
3232  *
3233  * @details  This primitive specifies the startRb and endRb of CC sub-band for which
3234  *  we have to increase power at schedular
3235  *
3236  *
3237  * @param[in] pst        Pointer to a post Structure.
3238  * @param[in] spId       SAP Id of the Service provider.
3239  * @param[in] transId    RRM to MAC transaction Id.
3240  * @param[in] loadInfReq Parameters used for specifying LOAD INF.
3241  * @return ROK/RFAILED
3242  */
3243 EXTERN S16 RgUiRgrLoadInfReq ARGS((
3244    Pst                 *pst,
3245    SpId                spId,
3246    RgrCfgTransId       transId,
3247    RgrLoadInfReqInfo   *loadInfReq
3248 ));
3249 /* LTE_ADV_FLAG_REMOVED_END */
3250 /** @} */
3251
3252 /** @name RGR_CQI_REPT */
3253 /** @{ */
3254 /* rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
3255    RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
3256 #ifdef RGR_CQI_REPT
3257 /** @brief Sta Indication from Scheduler to RRM 
3258  *
3259  * @details This primitive is used to send status indication from scheduler
3260  *          to RRM. 
3261  * 
3262  * @param[in] pst     Pointer to a post structure
3263  * @param[in] suId    Service User SAP Id
3264  * @param[in] staInd  Status Indication .
3265  * @return ROK/RFAILED
3266  */
3267 EXTERN S16 RgUiRgrStaInd ARGS((
3268    Pst*                 pst,
3269    SuId                 suId,
3270    RgrStaIndInfo        *staInd
3271 ));
3272 #endif
3273 EXTERN S16 RgUiRgrUeStaInd ARGS((
3274 Pst             *pst,
3275 SuId            suId,
3276 RgrUeStaIndInfo *ueStaInd
3277 ));
3278
3279
3280 /** @} */
3281 /** @{ */
3282 /* LTE_ADV_FLAG_REMOVED_START */
3283 /** @brief LoadInf Indication from Scheduler to RRM
3284  *
3285  * @details This primitive is used to send LOAD INF indication from scheduler
3286  *          to RRM.
3287  *
3288  * @param[in] pst         Pointer to a post structure
3289  * @param[in] suId        Service User SAP Id
3290  * @param[in] loadInfInd  LOAD INF Indication .
3291  * @return ROK/RFAILED
3292  */
3293 EXTERN S16 RgUiRgrLoadInfInd ARGS((
3294    Pst*                 pst,
3295    SuId                 suId,
3296    RgrLoadInfIndInfo    *loadInfInd
3297 ));
3298 /* LTE_ADV_FLAG_REMOVED_END */
3299 /** @} */
3300
3301 #endif
3302
3303 #ifdef NX
3304 /** @brief Request from RRM to MAC to bind the interface SAPs.
3305  *
3306  *  @details This API validats the SAP Id and binds the interface SAPs  
3307  *
3308  *  @param[in] pst    Pointer to a post structure
3309  *  @param[in] suId   Service User SAP Id
3310  *  @param[in] spId   Service Provider SAP Id
3311  *  @return ROK/RFAILED  
3312  */
3313 EXTERN S16 NxLiRgrBndReq ARGS((
3314    Pst*                 pst,
3315    SuId                 suId,
3316    SpId                 spId
3317 ));
3318
3319 /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
3320 /** @name RGR_RRM_TICK */
3321 /** @{ */
3322 /** @brief TTI indication from scheduler to RRM. 
3323 *
3324 * @details This primitive handles TTI Indication. It essentially validates
3325 * the post structure and Transmit Time timing .
3326 *
3327 * @param[in] Pst*     pst          Pointer To a post Structure
3328 * @param[in] SuId     suId         Service user SAP Id
3329 * @param[in] RgrTtiIndInfo* ttiInd Information passed as a part of TTI indication from PHY to MAC. 
3330 * @return ROK/RFAILED 
3331 */
3332 EXTERN S16 NxLiRgrTtiInd ARGS((
3333    Pst*                 pst,
3334    SuId                 suId,
3335    RgrTtiIndInfo        *ttiInd
3336 ));
3337 /** @} */
3338
3339 /** @brief Confirmation from MAC to RRM for the bind request for the interface SAPs.
3340  *
3341  * @details This Primitive handles the call for bind confirmation.
3342  * 
3343  * @param[in] Pst*  pst    A pointer to post structure.
3344  * @param[in] SuId  suId   Service User SAP Id.
3345  * @param[in] U8    status An information on status confirmation.
3346  * @return S16
3347  */
3348 EXTERN S16 NxLiRgrBndCfm ARGS((
3349    Pst*                 pst,
3350    SuId                 suId,
3351    U8                   status
3352 ));
3353
3354 /** @brief Request from RRM to MAC to unbind the interface SAPs 
3355  *
3356  * @details This primitive unbinds the interface SAPs.It validates if the SAP is really bound.
3357  * 
3358  * @param[in] Pst*      pst    A pointer to post structure. 
3359  * @param[in] SpId      spId   Service Provider SAP Id.
3360  * @param[in] Reason    reason A cause for unbinding the SAPs.
3361  * @return S16
3362  */
3363 EXTERN S16 NxLiRgrUbndReq ARGS((
3364    Pst*                 pst,
3365    SpId                 spId,
3366    Reason               reason
3367 ));
3368 /** @brief Configuration request from RRM to MAC for 
3369  * configuring Cell/UE/LC 
3370  *
3371  * @details The RRM configures the Cell/UE/LC using this primitive.
3372  *
3373  * @param[in]   Pst*  pst      A pointer to post structure.
3374  * @param[in]   SpId  spId     Service Provider SAP Id.
3375  * @param[in]   RgrCfgTransId  transId Transaction Id between RRM and MAC. 
3376  * @param[in]   RgrCfgReqInfo* cfgReqInfo A structure containing the configuration information.
3377  * @return   S16 
3378  */
3379 EXTERN S16 NxLiRgrCfgReq ARGS((
3380    Pst*                 pst,
3381    SpId                 spId,
3382    RgrCfgTransId        transId,
3383    RgrCfgReqInfo *      cfgReqInfo
3384 ));
3385
3386 /** @brief Configuration confirm from MAC to RRM 
3387  *
3388  * @details This primitive confirms the RRM about the configuration reception request.
3389  * 
3390  * @param[in] Pst*      pst    A pointer to post structure. 
3391  * @param[in] SuId      suId   Service Provider SAP Id.
3392  * @param[in] RgrCfgTransId transId RRM to MAC transaction Id. 
3393  * @return S16
3394  */
3395 EXTERN S16 NxLiRgrCfgCfm ARGS((
3396    Pst*                 pst,
3397    SuId                 suId,
3398    RgrCfgTransId        transId,
3399    U8                   status
3400 ));
3401 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
3402 /** @name RGR_SI_SCH */
3403 /* @{ */
3404 #ifdef RGR_SI_SCH
3405
3406 /** @brief SI Configuration confirm from MAC to RRM 
3407 *
3408 * @details  This primitive confirms the SI configuration to the RRM.
3409
3410 * @param[in]  Pst*      pst        A pointer to post structure.
3411 * @param[in]  SuId      suId       Service User SAP Id.
3412 * @param[in]  RgrCfgTransId transId RRM to MAC transaction Id
3413 * @param[in]  U8        status      An information on confirmation status.
3414 * @return S16
3415 */
3416 EXTERN S16 NxLiRgrSiCfgCfm ARGS((
3417    Pst*                 pst,
3418    SuId                 suId,
3419    RgrCfgTransId        transId,
3420    U8                   status
3421 ));
3422
3423
3424 /* PH04_CMAS */
3425 EXTERN S16 NxLiRgrWrngSiCfgCfm ARGS((
3426 Pst*                 pst,
3427 SuId                 suId,
3428 RgrCfgTransId        transId,
3429 U8                   siId,
3430 U8                   status
3431 ));
3432
3433
3434
3435 EXTERN S16 NxLiRgrStopWrngSiCfgCfm ARGS((
3436    Pst*                 pst,
3437    SuId                 suId,
3438    RgrCfgTransId        transId,
3439    U8                   status
3440 ));
3441
3442 /* PH04_CMAS : end */
3443
3444  
3445 /** @brief Warning SI Configuration confirm from MAC to RRM 
3446 *
3447 * @details  This primitive confirms the Warning SI configuration to the RRM.
3448
3449 * @param[in]  Pst*      pst        A pointer to post structure.
3450 * @param[in]  SuId      suId       Service User SAP Id.
3451 * @param[in]  U8        siId       SI Index
3452 * @param[in]  RgrCfgTransId transId RRM to MAC transaction Id
3453 * @param[in]  U8        status      An information on confirmation status.
3454 * @return S16
3455 */
3456 EXTERN S16 NxLiRgrWarningSiCfgCfm ARGS((
3457    Pst*                 pst,
3458    SuId                 suId,
3459    RgrCfgTransId        transId,
3460    U8                   siId,
3461    U8                   status
3462 ));
3463
3464 /** @brief SI Configuration request from RRM to MAC for 
3465  * configuring SI 
3466  *
3467  * @details  This primitive is used for the configuration of the SI information in the MAC scheduler.
3468  *
3469  * @param[in] Pst*             pst      A pointer to post structure.
3470  * @param[in] SpId             spId     Service Provider SAP Id.
3471  * @param[in] RgrCfgTransId    transId, RRM to MAC transaction Id
3472  * @param[in] RgrSiCfgReqInfo* cfgReqInfo Parameters corresponding to the SI Configuration .
3473  * @return S16
3474  */
3475 EXTERN S16 NxLiRgrSiCfgReq ARGS((
3476    Pst*                 pst,
3477    SpId                 spId,
3478    RgrCfgTransId        transId,
3479    RgrSiCfgReqInfo * cfgReqInfo
3480 ));
3481
3482  
3483 /** @brief Warning SI Configuration request from RRM to MAC for 
3484  * configuring SI 
3485  *
3486  * @details  This primitive is used for the configuration of the SI 
3487  *           information in the MAC scheduler.
3488  *
3489  * @param[in] Pst*             pst      A pointer to post structure.
3490  * @param[in] SpId             spId     Service Provider SAP Id.
3491  * @param[in] RgrCfgTransId    transId, RRM to MAC transaction Id
3492  * @param[in] RgrWarningSiCfgReqInfo  *warningSiCfgReq SI Configuration
3493  * @return S16
3494  */
3495 EXTERN S16 NxLiRgrWarningSiCfgReq ARGS((
3496    Pst*                       pst,
3497    SpId                      spId,
3498    RgrCfgTransId             transId,
3499    RgrWarningSiCfgReqInfo  *warningSiCfgReq
3500 )); 
3501
3502   
3503 /** @brief Warning SI Stop request from RRM to MAC for 
3504  * configuring SI 
3505  *
3506  * @details  This primitive is used to stop the SI for a 
3507  *           perticular siId.
3508  *
3509  * @param[in] Pst*             pst      A pointer to post structure.
3510  * @param[in] SpId             spId     Service Provider SAP Id.
3511  * @param[in] U8               siId     SI Index
3512  */
3513 EXTERN S16 NxLiRgrWarningSiStopReq ARGS((
3514    Pst*                       pst,
3515    SpId                       spId,
3516    RgrCfgTransId              transId,
3517    U8                         siId
3518 )); 
3519  
3520 #endif/*RGR_SI_SCH */
3521 /** @} */
3522
3523 /** @{ */
3524 /* LTE_ADV_FLAG_REMOVED_START */
3525 /** @brief LOAD INF Configuration request from RRM to MAC for
3526  *         configuring rntp, abs etc
3527  *
3528  * @details  This primitive is used for the configuration of the LOAD INF parameters
3529  *           in the MAC scheduler.
3530  *
3531  * @param[in] Pst*               pst        A pointer to post structure.
3532  * @param[in] SpId               spId       Service Provider SAP Id.
3533  * @param[in] RgrCfgTransId      transId,   RRM to MAC transaction Id
3534  * @param[in] RgrLoadInfReqInfo* loadInfReq Parameters corresponding to the LOAD INF Config.
3535  * @return S16
3536  */
3537 EXTERN S16 NxLiRgrLoadInfReq ARGS((
3538    Pst*                 pst,
3539    SpId                 spId,
3540    RgrCfgTransId        transId,
3541    RgrLoadInfReqInfo*   loadInfReq
3542 ));
3543 /* LTE_ADV_FLAG_REMOVED_END */
3544 /** @} */
3545
3546 /** @name RGR_CQI_REPT */
3547 /** @{ */
3548 /* rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
3549    RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
3550 #ifdef RGR_CQI_REPT
3551 /** @brief Sta Indication from Scheduler to RRM 
3552  *
3553  * @details This primitive is used to send status indication
3554  *          from scheduler to RRM. 
3555  * 
3556  * @param[in] pst     Pointer to a post structure
3557  * @param[in] suId    Service User SAP Id
3558  * @param[in] staInd  Status Indication .
3559 */
3560 EXTERN S16 NxLiRgrStaInd ARGS((
3561    Pst*                 pst,
3562    SuId                 suId,
3563    RgrStaIndInfo        *staInd
3564 ));
3565 #endif
3566 /** @} */
3567 /** @{ */
3568 /* LTE_ADV_FLAG_REMOVED_START */
3569 /** @brief LOAD INF Indication from Scheduler to RRM
3570  *
3571  * @details This primitive is used to send loadInf indication
3572  *          from scheduler to RRM.
3573  *
3574  * @param[in] pst         Pointer to a post structure
3575  * @param[in] suId        Service User SAP Id
3576  * @param[in] loadInfInd  LOAD INF Indication .
3577 */
3578 EXTERN S16 NxLiRgrLoadInfInd ARGS((
3579    Pst*                  pst,
3580    SuId                  suId,
3581    RgrLoadInfIndInfo     *loadInfInd
3582 ));
3583 /* LTE_ADV_FLAG_REMOVED_END */
3584 /** @} */
3585
3586 #endif
3587 #if defined(LCRGR)
3588 /** @brief Request from RRM to MAC to bind the interface SAPs */
3589 EXTERN S16 cmPkRgrBndReq ARGS((
3590    Pst*                 pst,
3591    SuId                 suId,
3592    SpId                 spId
3593 ));
3594 /** @brief Request from RRM to MAC to bind the interface SAPs */
3595 EXTERN S16 cmUnpkRgrBndReq ARGS((
3596    RgrBndReq            func,
3597    Pst*                 pst,
3598    Buffer               *mBuf
3599 ));
3600 /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
3601 /** @name RGR_RRM_TICK */
3602 /** @{ */
3603 /** @brief Pack function for TTI indication from scheduler to RRM */
3604 EXTERN S16 cmPkRgrTtiInd ARGS((
3605          Pst*                 pst,
3606          SuId                 suId,
3607          RgrTtiIndInfo        *ttiInd
3608          ));
3609 EXTERN S16 cmPkRgrTtiIndInfo ARGS((
3610          RgrTtiIndInfo  *ttiInd,
3611          Buffer         *mBuf));
3612 /** @brief Unpack function for TTI indication from scheduler to RRM */
3613 EXTERN S16 cmUnpkRgrTtiInd   ARGS((
3614          RgrTtiInd            func,
3615          Pst*                 pst,
3616          Buffer               *mBuf
3617          ));
3618 EXTERN S16 cmUnpkRgrTtiIndInfo ARGS((
3619          RgrTtiIndInfo *param,
3620          Buffer        *mBuf
3621          ));
3622 /** @} */
3623 EXTERN S16 cmPkRgrBndCfm ARGS((
3624    Pst*                 pst,
3625    SuId                 suId,
3626    U8                   status
3627 ));
3628
3629 EXTERN S16 cmUnpkRgrBndCfm ARGS((
3630    RgrBndCfm            func,
3631    Pst*                 pst,
3632    Buffer               *mBuf
3633 ));
3634
3635 EXTERN S16 cmPkRgrUbndReq ARGS((
3636    Pst*                 pst,
3637    SpId                 spId,
3638    Reason               reason
3639 ));
3640
3641 EXTERN S16 cmUnpkRgrUbndReq ARGS((
3642    RgrUbndReq           func,
3643    Pst*                 pst,
3644    Buffer               *mBuf
3645 ));
3646
3647 EXTERN S16 cmPkRgrCfgReq ARGS((
3648    Pst*                 pst,
3649    SpId                 spId,
3650    RgrCfgTransId        transId,
3651    RgrCfgReqInfo *      cfgReqInfo
3652 ));
3653
3654 EXTERN S16 cmUnpkRgrCfgReq ARGS((
3655    RgrCfgReq            func,
3656    Pst*                 pst,
3657    Buffer               *mBuf
3658 ));
3659
3660 EXTERN S16 cmPkRgrCfgCfm ARGS((
3661    Pst*                 pst,
3662    SuId                 suId,
3663    RgrCfgTransId        transId,
3664    U8                   status
3665 ));
3666
3667 EXTERN S16 cmUnpkRgrCfgCfm ARGS((
3668    RgrCfgCfm            func,
3669    Pst*                 pst,
3670    Buffer               *mBuf
3671 ));
3672
3673 EXTERN S16 cmPkRgrCfgTransId ARGS((
3674    RgrCfgTransId        *param,
3675    Buffer               *mBuf
3676 ));
3677 EXTERN S16 cmUnpkRgrCfgTransId ARGS((
3678    RgrCfgTransId        *param,
3679    Buffer               *mBuf
3680 ));
3681 EXTERN S16 cmPkRgrDlHqCfg ARGS((
3682    RgrDlHqCfg           *param,
3683    Buffer               *mBuf
3684 ));
3685 EXTERN S16 cmUnpkRgrDlHqCfg ARGS((
3686    RgrDlHqCfg           *param,
3687    Buffer               *mBuf
3688 ));
3689 EXTERN S16 cmPkRgrRntiCfg ARGS((
3690    RgrRntiCfg           *param,
3691    Buffer               *mBuf
3692 ));
3693 EXTERN S16 cmUnpkRgrRntiCfg ARGS((
3694    RgrRntiCfg           *param,
3695    Buffer               *mBuf
3696 ));
3697 EXTERN S16 cmPkRgrDlCmnCodeRateCfg ARGS((
3698    RgrDlCmnCodeRateCfg  *param,
3699    Buffer               *mBuf
3700 ));
3701 EXTERN S16 cmUnpkRgrDlCmnCodeRateCfg ARGS((
3702    RgrDlCmnCodeRateCfg  *param,
3703    Buffer               *mBuf
3704 ));
3705 EXTERN S16 cmPkRgrCfiCfg ARGS((
3706    RgrCfiCfg            *param,
3707    Buffer               *mBuf
3708 ));
3709 EXTERN S16 cmUnpkRgrCfiCfg ARGS((
3710    RgrCfiCfg            *param,
3711    Buffer               *mBuf
3712 ));
3713 EXTERN S16 cmPkRgrPuschSubBandCfg ARGS((
3714    RgrPuschSubBandCfg   *param,
3715    Buffer               *mBuf
3716 ));
3717 EXTERN S16 cmUnpkRgrPuschSubBandCfg ARGS((
3718    RgrPuschSubBandCfg   *param,
3719    Buffer               *mBuf
3720 ));
3721 EXTERN S16 cmPkRgrUlCmnCodeRateCfg ARGS((
3722    RgrUlCmnCodeRateCfg  *param,
3723    Buffer               *mBuf
3724 ));
3725 EXTERN S16 cmUnpkRgrUlCmnCodeRateCfg ARGS((
3726    RgrUlCmnCodeRateCfg  *param,
3727    Buffer               *mBuf
3728 ));
3729 EXTERN S16 cmPkRgrUlTrgCqiCfg ARGS((
3730    RgrUlTrgCqiCfg       *param,
3731    Buffer               *mBuf
3732 ));
3733 EXTERN S16 cmUnpkRgrUlTrgCqiCfg ARGS((
3734    RgrUlTrgCqiCfg       *param,
3735    Buffer               *mBuf
3736 ));
3737 EXTERN S16 cmPkRgrBwCfg ARGS((
3738    RgrBwCfg             *param,
3739    Buffer               *mBuf
3740 ));
3741 EXTERN S16 cmUnpkRgrBwCfg ARGS((
3742    RgrBwCfg             *param,
3743    Buffer               *mBuf
3744 ));
3745 EXTERN S16 cmPkRgrPhichCfg ARGS((
3746    RgrPhichCfg          *param,
3747    Buffer               *mBuf
3748 ));
3749 EXTERN S16 cmUnpkRgrPhichCfg ARGS((
3750    RgrPhichCfg          *param,
3751    Buffer               *mBuf
3752 ));
3753 EXTERN S16 cmPkRgrPucchCfg ARGS((
3754    RgrPucchCfg          *param,
3755    Buffer               *mBuf
3756 ));
3757 EXTERN S16 cmUnpkRgrPucchCfg ARGS((
3758    RgrPucchCfg          *param,
3759    Buffer               *mBuf
3760 ));
3761 EXTERN S16 cmPkRgrSrsCfg ARGS((
3762    RgrSrsCfg            *param,
3763    Buffer               *mBuf
3764 ));
3765 EXTERN S16 cmUnpkRgrSrsCfg ARGS((
3766    RgrSrsCfg            *param,
3767    Buffer               *mBuf
3768 ));
3769 EXTERN S16 cmPkRgrRachCfg ARGS((
3770    RgrRachCfg           *param,
3771    Buffer               *mBuf
3772 ));
3773 EXTERN S16 cmUnpkRgrRachCfg ARGS((
3774    RgrRachCfg           *param,
3775    Buffer               *mBuf
3776 ));
3777 EXTERN S16 cmPkRgrSiCfg ARGS((
3778    RgrSiCfg             *param,
3779    Buffer               *mBuf
3780 ));
3781 EXTERN S16 cmUnpkRgrSiCfg ARGS((
3782    RgrSiCfg             *param,
3783    Buffer               *mBuf
3784 ));
3785 EXTERN S16 cmPkRgrTpcRntiCfg ARGS((
3786    RgrTpcRntiCfg        *param,
3787    Buffer               *mBuf
3788 ));
3789 EXTERN S16 cmUnpkRgrTpcRntiCfg ARGS((
3790    RgrTpcRntiCfg        *param,
3791    Buffer               *mBuf
3792 ));
3793 EXTERN S16 cmPkRgrUlPwrCfg ARGS((
3794    RgrUlPwrCfg          *param,
3795    Buffer               *mBuf
3796 ));
3797 EXTERN S16 cmUnpkRgrUlPwrCfg ARGS((
3798    RgrUlPwrCfg          *param,
3799    Buffer               *mBuf
3800 ));
3801 EXTERN S16 cmPkRgrPuschCfg ARGS((
3802    RgrPuschCfg          *param,
3803    Buffer               *mBuf
3804 ));
3805 EXTERN S16 cmUnpkRgrPuschCfg ARGS((
3806    RgrPuschCfg          *param,
3807    Buffer               *mBuf
3808 ));
3809 EXTERN S16 cmPkRgrCodeBookRstCfg ARGS((
3810    RgrCodeBookRstCfg    *param,
3811    Buffer               *mBuf
3812 ));
3813 EXTERN S16 cmUnpkRgrCodeBookRstCfg ARGS((
3814    RgrCodeBookRstCfg    *param,
3815    Buffer               *mBuf
3816 ));
3817 EXTERN S16 cmPkRgrPreambleSetCfg ARGS((
3818    RgrPreambleSetCfg    *param,
3819    Buffer               *mBuf
3820 ));
3821 EXTERN S16 cmUnpkRgrPreambleSetCfg ARGS((
3822    RgrPreambleSetCfg    *param,
3823    Buffer               *mBuf
3824 ));
3825 EXTERN S16 cmPkRgrCmnLchCfg ARGS((
3826    RgrCmnLchCfg         *param,
3827    Buffer               *mBuf
3828 ));
3829 EXTERN S16 cmUnpkRgrCmnLchCfg ARGS((
3830    RgrCmnLchCfg         *param,
3831    Buffer               *mBuf
3832 ));
3833 EXTERN S16 cmPkRgrDlfsCfg ARGS((
3834    RgrDlfsCfg           *param,
3835    Buffer               *mBuf
3836 ));
3837 EXTERN S16 cmUnpkRgrDlfsCfg ARGS((
3838    RgrDlfsCfg           *param,
3839    Buffer               *mBuf
3840 ));
3841
3842 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
3843 /** @name RGR_SI_SCH */
3844 /** @{ */
3845 #ifdef RGR_SI_SCH
3846 EXTERN S16 cmPkRgrWarningSiCfgReq ARGS((
3847    Pst*                     pst,
3848    SpId                     spId,
3849    RgrCfgTransId            transId,
3850    RgrWarningSiCfgReqInfo   *warningSiCfgReqInfo
3851 ));
3852
3853 EXTERN S16 cmUnpkRgrWarningSiCfgReq ARGS((
3854    RgrWarningSiCfgReq  func,
3855    Pst                 *pst,
3856    Buffer              *mBuf
3857 ));
3858
3859 EXTERN S16 cmPkRgrWarningSiCfgReqInfo ARGS((
3860    Pst                    *pst,
3861    RgrWarningSiCfgReqInfo *param,
3862    Buffer                 *mBuf
3863 ));
3864
3865 EXTERN S16 cmUnpkRgrWarningSiCfgReqInfo ARGS((
3866    Pst                    *pst,
3867    RgrWarningSiCfgReqInfo *param,
3868    Buffer                 *mBuf
3869 ));
3870
3871 EXTERN S16 cmPkRgrWarningSiStopReq ARGS((
3872    Pst                 *pst,
3873    SpId                spId,
3874    RgrCfgTransId       transId,
3875    U8                  siId
3876 ));
3877
3878 EXTERN S16 cmUnpkRgrWarningSiStopReq ARGS((
3879    RgrWarningSiStopReq func,
3880    Pst                 *pst,
3881    Buffer              *mBuf
3882 ));
3883
3884
3885 EXTERN S16 cmPkRgrWarningSiCfgCfm ARGS((
3886    Pst*                 pst,
3887    SuId                 suId,
3888    RgrCfgTransId        transId,
3889    U8                   siId,
3890    U8                   status
3891 ));
3892
3893 EXTERN S16 cmUnpkRgrWarningSiCfgCfm ARGS((
3894    RgrWarningSiCfgCfm          func,
3895    Pst*                 pst,
3896    Buffer               *mBuf
3897 ));
3898
3899
3900 EXTERN S16 cmPkRgrSiCfgReq ARGS((
3901    Pst*                 pst,
3902    SpId                 spId,
3903    RgrCfgTransId        transId,
3904    RgrSiCfgReqInfo *    cfgReqInfo
3905 ));
3906
3907 EXTERN S16 cmUnpkRgrSiCfgReq ARGS((
3908    RgrSiCfgReq            func,
3909    Pst*                 pst,
3910    Buffer               *mBuf
3911 ));
3912
3913 EXTERN S16 cmPkRgrSiCfgReqInfo ARGS((
3914    RgrSiCfgReqInfo        *param,
3915    Buffer               *mBuf
3916 ));
3917
3918 EXTERN S16 cmUnpkRgrSiCfgReqInfo ARGS((
3919    RgrSiCfgReqInfo        *param,
3920    Buffer               *mBuf
3921 ));
3922
3923 EXTERN S16 cmPkRgrSiCfgCfm ARGS((
3924    Pst*                 pst,
3925    SuId                 suId,
3926    RgrCfgTransId        transId,
3927    U8                   status
3928 ));
3929
3930 EXTERN S16 cmUnpkRgrSiCfgCfm ARGS((
3931    RgrSiCfgCfm            func,
3932    Pst*                 pst,
3933    Buffer               *mBuf
3934 ));
3935 #endif /*RGR_SI_SCH*/
3936 /** @} */
3937
3938 /** @{ */
3939 /* LTE_ADV_FLAG_REMOVED_START */
3940 EXTERN S16 cmPkRgrLoadInfReq ARGS((
3941    Pst*                 pst,
3942    SpId                 spId,
3943    RgrCfgTransId        transId,
3944    RgrLoadInfReqInfo *  loadInfReq
3945 ));
3946
3947 EXTERN S16 cmUnpkRgrLoadInfReq ARGS((
3948    RgrLoadInfReq        func,
3949    Pst*                 pst,
3950    Buffer               *mBuf
3951 ));
3952
3953 EXTERN S16 cmPkRgrLoadInfReqInfo ARGS((
3954    RgrLoadInfReqInfo    *param,
3955    Buffer               *mBuf
3956 ));
3957
3958 EXTERN S16 cmUnpkRgrLoadInfReqInfo ARGS((
3959    RgrLoadInfReqInfo    *param,
3960    Buffer               *mBuf
3961 ));
3962 /* LTE_ADV_FLAG_REMOVED_END */
3963 /** @} */
3964
3965 /** @name LTE_TDD */
3966 /** @{ */
3967 #ifdef LTE_TDD
3968 EXTERN S16 cmPkRgrTddPrachInfo ARGS((
3969    RgrTddPrachInfo      *param,
3970    Buffer               *mBuf
3971 ));
3972 EXTERN S16 cmUnpkRgrTddPrachInfo ARGS((
3973    RgrTddPrachInfo      *param,
3974    Buffer               *mBuf
3975 ));
3976 EXTERN S16 cmPkRgrTddPrachRscInfo ARGS((
3977    RgrTddPrachRscInfo   *param,
3978    Buffer               *mBuf
3979 ));
3980 EXTERN S16 cmUnpkRgrTddPrachRscInfo ARGS((
3981    RgrTddPrachRscInfo   *param,
3982    Buffer               *mBuf
3983 ));
3984 #endif /* LTE_TDD*/
3985 /** @} */
3986 EXTERN S16 cmPkRgrEnbPfs ARGS((
3987    RgrEnbPfs         *param,
3988    Buffer               *mBuf
3989 ));
3990 EXTERN S16 cmUnpkRgrEnbPfs ARGS((
3991    RgrEnbPfs         *param,
3992    Buffer               *mBuf
3993 ));
3994 EXTERN S16 cmPkRgrCellCfg ARGS((
3995    RgrCellCfg           *param,
3996    Buffer               *mBuf
3997 ));
3998 EXTERN S16 cmUnpkRgrCellCfg ARGS((
3999    RgrCellCfg           *param,
4000    Buffer               *mBuf
4001 ));
4002 EXTERN S16 cmPkRgrUeAprdDlCqiCfg ARGS((
4003    RgrUeAprdDlCqiCfg    *param,
4004    Buffer               *mBuf
4005 ));
4006 EXTERN S16 cmUnpkRgrUeAprdDlCqiCfg ARGS((
4007    RgrUeAprdDlCqiCfg    *param,
4008    Buffer               *mBuf
4009 ));
4010 EXTERN S16 cmPkRgrSchedEnbCfg ARGS((
4011    RgrSchedEnbCfg       *param,
4012    Buffer               *mBuf
4013 ));
4014 EXTERN S16 cmUnpkRgrSchedEnbCfg ARGS((
4015    RgrSchedEnbCfg       *param,
4016    Buffer               *mBuf
4017 ));
4018 EXTERN S16 cmPkRgrUePrdDlCqiCfg ARGS((
4019    RgrUePrdDlCqiCfg     *param,
4020    Buffer               *mBuf
4021 ));
4022 EXTERN S16 cmUnpkRgrUePrdDlCqiCfg ARGS((
4023    RgrUePrdDlCqiCfg     *param,
4024    Buffer               *mBuf
4025 ));
4026 EXTERN S16 cmPkRgrUeDlCqiCfg ARGS((
4027    RgrUeDlCqiCfg        *param,
4028    Buffer               *mBuf
4029 ));
4030 EXTERN S16 cmUnpkRgrUeDlCqiCfg ARGS((
4031    RgrUeDlCqiCfg        *param,
4032    Buffer               *mBuf
4033 ));
4034 EXTERN S16 cmPkRgrUeMeasGapCfg ARGS((
4035    RgrUeMeasGapCfg      *param,
4036    Buffer               *mBuf
4037 ));
4038 EXTERN S16 cmUnpkRgrUeMeasGapCfg ARGS((
4039    RgrUeMeasGapCfg      *param,
4040    Buffer               *mBuf
4041 ));
4042 /*rgr_x_001.main_11 ADD added changes for DRX*/
4043 EXTERN S16 cmPkRgrDrxLongCycleOffst ARGS((
4044    RgrDrxLongCycleOffst *param,
4045    Buffer               *mBuf
4046 ));
4047 EXTERN S16 cmUnpkRgrDrxLongCycleOffst ARGS((
4048    RgrDrxLongCycleOffst *param,
4049    Buffer               *mBuf
4050 ));
4051 EXTERN S16 cmPkRgrDrxShortDrx ARGS((
4052    RgrDrxShortDrx       *param,
4053    Buffer               *mBuf
4054 ));
4055 EXTERN S16 cmUnpkRgrDrxShortDrx ARGS((
4056    RgrDrxShortDrx       *param,
4057    Buffer               *mBuf
4058 ));
4059 EXTERN S16 cmPkRgrUeDrxCfg ARGS((
4060    RgrUeDrxCfg          *param,
4061    Buffer               *mBuf
4062 ));
4063 EXTERN S16 cmUnpkRgrUeDrxCfg ARGS((
4064    RgrUeDrxCfg          *param,
4065    Buffer               *mBuf
4066 ));
4067 EXTERN S16 cmPkRgrUeCapCfg ARGS((
4068    RgrUeCapCfg          *param,
4069    Buffer               *mBuf
4070 ));
4071 EXTERN S16 cmUnpkRgrUeCapCfg ARGS((
4072    RgrUeCapCfg          *param,
4073    Buffer               *mBuf
4074 ));
4075 EXTERN S16 cmPkRgrUeAckNackRepCfg ARGS((
4076    RgrUeAckNackRepCfg   *param,
4077    Buffer               *mBuf
4078 ));
4079 EXTERN S16 cmUnpkRgrUeAckNackRepCfg ARGS((
4080    RgrUeAckNackRepCfg   *param,
4081    Buffer               *mBuf
4082 ));
4083 EXTERN S16 cmPkRgrUeTxModeCfg ARGS((
4084    RgrUeTxModeCfg       *param,
4085    Buffer               *mBuf
4086 ));
4087 EXTERN S16 cmUnpkRgrUeTxModeCfg ARGS((
4088    RgrUeTxModeCfg       *param,
4089    Buffer               *mBuf
4090 ));
4091 EXTERN S16 cmPkRgrUeUlHqCfg ARGS((
4092    RgrUeUlHqCfg         *param,
4093    Buffer               *mBuf
4094 ));
4095 EXTERN S16 cmUnpkRgrUeUlHqCfg ARGS((
4096    RgrUeUlHqCfg         *param,
4097    Buffer               *mBuf
4098 ));
4099 EXTERN S16 cmPkRgrUeGrpPwrCfg ARGS((
4100    RgrUeGrpPwrCfg       *param,
4101    Buffer               *mBuf
4102 ));
4103 EXTERN S16 cmUnpkRgrUeGrpPwrCfg ARGS((
4104    RgrUeGrpPwrCfg       *param,
4105    Buffer               *mBuf
4106 ));
4107 EXTERN S16 cmPkRgrUeUlPwrCfg ARGS((
4108    RgrUeUlPwrCfg        *param,
4109    Buffer               *mBuf
4110 ));
4111 EXTERN S16 cmUnpkRgrUeUlPwrCfg ARGS((
4112    RgrUeUlPwrCfg        *param,
4113    Buffer               *mBuf
4114 ));
4115 EXTERN S16 cmPkRgrUeQosCfg ARGS((
4116    RgrUeQosCfg          *param,
4117    Buffer               *mBuf
4118 ));
4119 EXTERN S16 cmUnpkRgrUeQosCfg ARGS((
4120    RgrUeQosCfg          *param,
4121    Buffer               *mBuf
4122 ));
4123 EXTERN S16 cmPkRgrUeTaTmrCfg ARGS((
4124    RgrUeTaTmrCfg        *param,
4125    Buffer               *mBuf
4126 ));
4127 EXTERN S16 cmUnpkRgrUeTaTmrCfg ARGS((
4128    RgrUeTaTmrCfg        *param,
4129    Buffer               *mBuf
4130 ));
4131 /** @name RGR_V1 */
4132 /** @{ */
4133 #ifdef RGR_V1
4134 /* rgr_x_001.main_7: [ccpu00112398] Added periodicBSR-Timer and 
4135    retxBSR-Timer */
4136 EXTERN S16 cmPkRgrUeBsrTmrCfg ARGS((
4137    RgrUeBsrTmrCfg       *param,
4138    Buffer               *mBuf
4139 ));
4140 EXTERN S16 cmUnpkRgrUeBsrTmrCfg ARGS((
4141    RgrUeBsrTmrCfg       *param,
4142    Buffer               *mBuf
4143 ));
4144 #endif
4145 /** @} */
4146 EXTERN S16 cmPkRgrUeCfg ARGS((
4147    RgrUeCfg             *param,
4148    Buffer               *mBuf
4149 ));
4150 EXTERN S16 cmUnpkRgrUeCfg ARGS((
4151    RgrUeCfg             *param,
4152    Buffer               *mBuf
4153 ));
4154 EXTERN S16 cmPkRgrLchQosCfg ARGS((
4155    RgrLchQosCfg         *param,
4156    Buffer               *mBuf
4157 ));
4158 EXTERN S16 cmUnpkRgrLchQosCfg ARGS((
4159    RgrLchQosCfg         *param,
4160    Buffer               *mBuf
4161 ));
4162 EXTERN S16 cmPkRgrDlLchCfg ARGS((
4163    RgrDlLchCfg          *param,
4164    Buffer               *mBuf
4165 ));
4166 EXTERN S16 cmUnpkRgrDlLchCfg ARGS((
4167    RgrDlLchCfg          *param,
4168    Buffer               *mBuf
4169 ));
4170 EXTERN S16 cmPkRgrUlLcgCfg ARGS((
4171    RgrUlLcgCfg          *param,
4172    Buffer               *mBuf
4173 ));
4174 EXTERN S16 cmUnpkRgrUlLcgCfg ARGS((
4175    RgrUlLcgCfg          *param,
4176    Buffer               *mBuf
4177 ));
4178 EXTERN S16 cmPkRgrLchCfg ARGS((
4179    RgrLchCfg            *param,
4180    Buffer               *mBuf
4181 ));
4182 EXTERN S16 cmUnpkRgrLchCfg ARGS((
4183    RgrLchCfg            *param,
4184    Buffer               *mBuf
4185 ));
4186 EXTERN S16 cmPkRgrLcgCfg ARGS((
4187    RgrLcgCfg            *param,
4188    Buffer               *mBuf
4189 ));
4190 EXTERN S16 cmUnpkRgrLcgCfg ARGS((
4191    RgrLcgCfg            *param,
4192    Buffer               *mBuf
4193 ));
4194 EXTERN S16 cmPkRgrCfg ARGS((
4195    RgrCfg               *param,
4196    Buffer               *mBuf
4197 ));
4198 EXTERN S16 cmUnpkRgrCfg ARGS((
4199    RgrCfg               *param,
4200    Buffer               *mBuf
4201 ));
4202 EXTERN S16 cmPkRgrActvTime ARGS((
4203    RgrActvTime          *param,
4204    Buffer               *mBuf
4205 ));
4206 EXTERN S16 cmUnpkRgrActvTime ARGS((
4207    RgrActvTime          *param,
4208    Buffer               *mBuf
4209 ));
4210 EXTERN S16 cmPkRgrCellRecfg ARGS((
4211    RgrCellRecfg         *param,
4212    Buffer               *mBuf
4213 ));
4214 EXTERN S16 cmUnpkRgrCellRecfg ARGS((
4215    RgrCellRecfg         *param,
4216    Buffer               *mBuf
4217 ));
4218 EXTERN S16 cmPkRgrUeRecfg ARGS((
4219    RgrUeRecfg           *param,
4220    Buffer               *mBuf
4221 ));
4222 EXTERN S16 cmUnpkRgrUeRecfg ARGS((
4223    RgrUeRecfg           *param,
4224    Buffer               *mBuf
4225 ));
4226 EXTERN S16 cmPkRgrLchRecfg ARGS((
4227    RgrLchRecfg          *param,
4228    Buffer               *mBuf
4229 ));
4230 EXTERN S16 cmUnpkRgrLchRecfg ARGS((
4231    RgrLchRecfg          *param,
4232    Buffer               *mBuf
4233 ));
4234 EXTERN S16 cmPkRgrLcgRecfg ARGS((
4235    RgrLcgRecfg          *param,
4236    Buffer               *mBuf
4237 ));
4238 EXTERN S16 cmUnpkRgrLcgRecfg ARGS((
4239    RgrLcgRecfg          *param,
4240    Buffer               *mBuf
4241 ));
4242 EXTERN S16 cmPkRgrRecfg ARGS((
4243    RgrRecfg             *param,
4244    Buffer               *mBuf
4245 ));
4246 EXTERN S16 cmUnpkRgrRecfg ARGS((
4247    RgrRecfg             *param,
4248    Buffer               *mBuf
4249 ));
4250 EXTERN S16 cmPkRgrDel ARGS((
4251    RgrDel               *param,
4252    Buffer               *mBuf
4253 ));
4254 EXTERN S16 cmUnpkRgrDel ARGS((
4255    RgrDel               *param,
4256    Buffer               *mBuf
4257 ));
4258 EXTERN S16 cmPkRgrRst ARGS((
4259    RgrRst               *param,
4260    Buffer               *mBuf
4261 ));
4262 EXTERN S16 cmUnpkRgrRst ARGS((
4263    RgrRst               *param,
4264    Buffer               *mBuf
4265 ));
4266
4267 EXTERN S16 cmPkRgrSonCfg   ARGS((
4268 RgrSonCfg *param,
4269 Buffer *mBuf
4270 ));
4271 EXTERN S16 cmUnpkRgrSonCfg   ARGS((
4272 RgrSonCfg   *param,
4273 Buffer      *mBuf
4274 ));
4275 EXTERN S16 cmPkRgrSonPrbCfg   ARGS((
4276 RgrPrbCfg *param,
4277 Buffer *mBuf
4278 ));
4279 EXTERN S16 cmUnpkRgrSonPrbCfg   ARGS((
4280 RgrPrbCfg   *param,
4281 Buffer      *mBuf
4282 ));
4283 EXTERN S16 cmPkRgrCfgReqInfo ARGS((
4284    RgrCfgReqInfo        *param,
4285    Buffer               *mBuf
4286 ));
4287 EXTERN S16 cmUnpkRgrCfgReqInfo ARGS((
4288    RgrCfgReqInfo        *param,
4289    Buffer               *mBuf
4290 ));
4291
4292 #ifdef LTE_ADV 
4293 EXTERN S16 cmUnPkRgrSCellActDeactEvnt ARGS((
4294    RgrSCellActDeactEvnt *param,
4295    Buffer *mBuf
4296 ));
4297
4298 EXTERN S16 cmPkRgrSCellActDeactEvnt ARGS((
4299    RgrSCellActDeactEvnt *param,
4300    Buffer *mBuf
4301 ));
4302 #endif /* LTE_ADV */
4303
4304 EXTERN S16 cmPkRgrUeTxAntSelCfg ARGS((
4305    RgrUeTxAntSelCfg     *param,
4306    Buffer               *mBuf
4307 ));
4308 EXTERN S16 cmUnpkRgrUeTxAntSelCfg ARGS((
4309    RgrUeTxAntSelCfg     *param,
4310    Buffer               *mBuf
4311 ));
4312 EXTERN S16 cmPkRgrUePuschDedCfg ARGS((
4313    RgrUePuschDedCfg     *param,
4314    Buffer               *mBuf
4315 ));
4316 EXTERN S16 cmUnpkRgrUePuschDedCfg ARGS((
4317    RgrUePuschDedCfg     *param,
4318    Buffer               *mBuf
4319 ));
4320
4321 #ifdef TFU_UPGRADE
4322 EXTERN S16 cmPkRgrUeDlPCqiSetup ARGS
4323 ((
4324 RgrUeDlPCqiSetup *param,
4325 Buffer *mBuf
4326 ));
4327
4328 EXTERN S16 cmUnpkRgrUeDlPCqiSetup ARGS
4329 ((
4330 RgrUeDlPCqiSetup *param,
4331 Buffer *mBuf
4332 ));
4333
4334 EXTERN S16 cmPkRgrUeUlSrsSetupCfg ARGS
4335 ((
4336 RgrUeUlSrsSetupCfg *param,
4337 Buffer *mBuf
4338 ));
4339
4340 EXTERN S16 cmUnpkRgrUeUlSrsSetupCfg ARGS
4341 ((
4342 RgrUeUlSrsSetupCfg *param,
4343 Buffer *mBuf
4344 ));
4345
4346 EXTERN S16 cmPkRgrUeSrSetupCfg ARGS
4347 ((
4348 RgrUeSrSetupCfg *param,
4349 Buffer *mBuf
4350 ));
4351
4352 EXTERN S16 cmUnpkRgrUeSrSetupCfg ARGS
4353 ((
4354 RgrUeSrSetupCfg *param,
4355 Buffer *mBuf
4356 ));
4357
4358 EXTERN  S16 cmPkRgrUeSrCfg ARGS
4359 ((
4360 RgrUeSrCfg *param,
4361 Buffer *mBuf
4362 ));
4363
4364 EXTERN S16 cmUnpkRgrUeSrCfg ARGS
4365 ((
4366 RgrUeSrCfg *param,
4367 Buffer *mBuf
4368 ));
4369
4370 EXTERN S16 cmPkRgrUeUlSrsCfg ARGS
4371 ((
4372 RgrUeUlSrsCfg *param,
4373 Buffer *mBuf
4374 ));
4375
4376 EXTERN S16 cmUnpkRgrUeUlSrsCfg ARGS
4377 ((
4378 RgrUeUlSrsCfg *param,
4379 Buffer *mBuf
4380 ));
4381
4382 #endif
4383 #endif
4384
4385 #ifdef DM
4386 /** @brief Request from RRM to MAC to bind the interface SAPs */
4387 EXTERN S16 DmUiRgrBndReq ARGS((
4388    Pst*                 pst,
4389    SuId                 suId,
4390    SpId                 spId
4391 ));
4392 /** @brief Confirmation from MAC to RRM for the bind/unbind 
4393  * request for the interface SAPs */
4394 EXTERN S16 DmUiRgrBndCfm ARGS((
4395    Pst*                 pst,
4396    SuId                 suId,
4397    U8                   status
4398 ));
4399 /** @brief Request from RRM to MAC to unbind the interface SAPs */
4400 EXTERN S16 DmUiRgrUbndReq ARGS((
4401    Pst*                 pst,
4402    SpId                 spId,
4403    Reason               reason
4404 ));
4405 /** @brief Configuration request from RRM to MAC for 
4406  * configuring Cell/UE/LC */
4407 EXTERN S16 DmUiRgrCfgReq ARGS((
4408    Pst*                 pst,
4409    SpId                 spId,
4410    RgrCfgTransId        transId,
4411    RgrCfgReqInfo *      cfgReqInfo
4412 ));
4413 /** @brief Configuration confirm from MAC to RRM */
4414 EXTERN S16 DmUiRgrCfgCfm ARGS((
4415    Pst*                 pst,
4416    SuId                 suId,
4417    RgrCfgTransId        transId,
4418    U8                   status
4419 ));
4420 #endif
4421 /** @brief Sta Indication from Scheduler to RRM 
4422  *
4423  * @details This primitive is used to send status indication
4424  *          from scheduler to RRM. 
4425  * 
4426  * @param[in] pst     Pointer to a post structure
4427  * @param[in] suId    Service User SAP Id
4428  * @param[in] staInd  Status Indication .
4429 */
4430 EXTERN S16 NxLiRgrUeStaInd ARGS((
4431    Pst*                 pst,
4432    SuId                 suId,
4433    RgrUeStaIndInfo      *ueStaInd
4434 ));
4435
4436 EXTERN S16 cmPkRgrUeStaInd ARGS
4437 ((
4438 Pst* pst,
4439 SuId suId,
4440 RgrUeStaIndInfo* ueStaInd
4441 ));
4442
4443 EXTERN S16 cmUnpkRgrUeStaInd ARGS
4444 ((
4445 RgrUeStaInd  func,
4446 Pst *pst,
4447 Buffer *mBuf
4448 ));
4449
4450 EXTERN S16 cmPkRgrUeStaIndInfo ARGS
4451 ((
4452 RgrUeStaIndInfo *param,
4453 Buffer *mBuf
4454 ));
4455
4456
4457 EXTERN S16 cmUnpkRgrUeStaIndInfo ARGS
4458 ((
4459 RgrUeStaIndInfo *param,
4460 Buffer *mBuf
4461 ));
4462
4463
4464 /* LTE_ADV_FLAG_REMOVED_START */
4465 EXTERN S16 cmPkRgrLteAdvancedUeConfig ARGS((
4466             RgrLteAdvancedUeConfig *param,
4467             Buffer *mBuf
4468             ));
4469
4470 EXTERN S16 cmUnpkRgrLteAdvancedUeConfig ARGS((
4471             RgrLteAdvancedUeConfig *param,
4472             Buffer *mBuf
4473             ));
4474
4475 EXTERN S16 cmPkRgrAbsConfig ARGS((
4476             RgrAbsConfig *param,
4477             Buffer *mBuf
4478             ));
4479
4480 EXTERN S16 cmUnpkRgrAbsConfig ARGS((
4481             RgrAbsConfig *param,
4482             Buffer *mBuf
4483             ));
4484
4485 EXTERN S16 cmPkRgrSfrConfig ARGS((
4486             RgrSfrConfig *param,
4487             Buffer *mBuf
4488             ));
4489
4490 EXTERN S16 cmUnpkRgrSfrConfig ARGS((
4491             RgrSfrConfig *param,
4492             Buffer *mBuf
4493             ));
4494
4495 EXTERN S16 cmPkRgrCellLteAdvancedFeatureCfg ARGS((
4496             RgrLteAdvancedCellConfig *param,
4497             Buffer *mBuf
4498             ));
4499
4500 EXTERN S16 cmUnpkRgrCellLteAdvancedFeatureCfg ARGS((
4501             RgrLteAdvancedCellConfig *param,
4502             Buffer *mBuf
4503             ));
4504
4505 EXTERN S16 cmPkRgrDsfrConfig ARGS((
4506          RgrDsfrConfig *param,
4507          Buffer *mBuf
4508          ));
4509
4510 EXTERN S16 cmUnpkRgrDsfrConfig ARGS((
4511          RgrDsfrConfig *param,
4512          Buffer *mBuf
4513          ));
4514 /* LTE_ADV_FLAG_REMOVED_END */
4515
4516 EXTERN S16 cmPkRgrCellCsgParamCfg ARGS((
4517 RgrCellCsgParamCfg *param,
4518 Buffer *mBuf
4519 ));
4520 EXTERN S16 cmUnpkRgrCellCsgParamCfg ARGS((
4521 RgrCellCsgParamCfg *param,
4522 Buffer *mBuf
4523 ));
4524 EXTERN S16 cmPkRgrCellCntrlCmdCfg ARGS((
4525 RgrCellCntrlCmdCfg *param,
4526 Buffer *mBuf
4527 ));
4528 EXTERN S16 cmUnpkRgrCellCntrlCmdCfg ARGS((
4529 RgrCellCntrlCmdCfg *param,
4530 Buffer *mBuf
4531 ));
4532
4533 #ifdef RLC_MAC_DAT_REQ_RBUF
4534 EXTERN S16 rgDlDatReqBatchProc ARGS((
4535 Void));
4536 #endif
4537 #ifdef RLC_MAC_STA_RSP_RBUF
4538 EXTERN S16 rgDlStaRspBatchProc ARGS((
4539 Void));
4540 #endif
4541 #ifdef __cplusplus
4542 }
4543 #endif
4544 #endif /* __RGR_X__*/
4545
4546 /**********************************************************************
4547
4548          End of file
4549 **********************************************************************/