1 /*******************************************************************************
2 ################################################################################
3 # Copyright (c) [2017-2019] [Radisys] #
5 # Licensed under the Apache License, Version 2.0 (the "License"); #
6 # you may not use this file except in compliance with the License. #
7 # You may obtain a copy of the License at #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
11 # Unless required by applicable law or agreed to in writing, software #
12 # distributed under the License is distributed on an "AS IS" BASIS, #
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
14 # See the License for the specific language governing permissions and #
15 # limitations under the License. #
16 ################################################################################
17 *******************************************************************************/
19 /**********************************************************************
25 Desc: Structures, variables, and typedefs required by the LTE MAC-RRM
26 Control (RGR) interface.
30 **********************************************************************/
38 #define MAX_5GTF_SUBFRAME_INFO 10
41 @brief Structure declarations and definitions for RGR interface.
43 /** Group power formats */
44 typedef enum rgrGrpPwrFormat
46 RGR_PWR_FORMAT_3, /**< Power Format 3 */
47 RGR_PWR_FORMAT_3A /**< Power Format 3A */
53 /** Indicates one of the two TDD ACK/NACK feedback modes */
54 typedef enum rgrTddAckNackMode
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 */
63 /** Periodicity of Downlink CQI Transmission per UE */
64 typedef enum rgrCqiPrdicity
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 */
81 * Periodic CQI Transmission Modes */
82 typedef enum rgrPrdCqiMode
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 */
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
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*/
104 /** Different Values for ACK/NACK Repetition Factor*/
105 typedef enum rgrAckNackRepFactor
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;
112 /* rgr_x_001.main_8 - Changes for MIMO feature addition */
115 * UE Transmission Modes state transition in case of recfg */
116 typedef enum rgrTxModeTrnstn
118 RGR_TXMODE_RECFG_CMPLT = 0,
119 RGR_TXMODE_RECFG_START
124 * UE Transmission Modes */
125 typedef enum rgrTxMode
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 */
137 RGR_UE_TM_9 /**< Transmission Mode 9 */
141 * Random access system frame number */
142 typedef enum rgrRaSfn
144 RGR_SFN_EVEN, /**< Even Sub Frame */
145 RGR_SFN_ANY, /**< Any Sub Frame */
149 RGR_SFN_ODD, /**< Odd Sub Frame */
152 RGR_SFN_NA /**< Sub Frame Not Available */
155 * Configuration period per Cell for SRS */
156 typedef enum rgrSrsCfgPrd
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 */
166 * SRS Bandwidth Configuration per cell for SRS */
167 typedef enum rgrSrsBwCfg
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 */
181 * Ng values for PHICH For more details refer to 36.211 Sec 6.9*/
182 typedef enum rgrPhichNg
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 */
190 * Aperiodic CQI Transmission Modes */
191 typedef enum rgrAprdCqiMode
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 */
199 /*rgr_x_001.main_9 - Added support for SPS*/
201 * Number of empty transmissions for Implicit Release */
202 /*rgr_x_001.main_11 MOD added comments*/
203 typedef enum rgrSpsImplRelCnt
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 */
212 * TODO: Check if needed this way
213 * SPS Periodicty values */
214 /*rgr_x_001.main_11 MOD added comments*/
215 typedef enum rgrSpsPrd
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 */
232 /* rgr_x_001.main_5:ADD-Added for SI Enhancement. */
234 /**@name RGR_SI_SCH */
239 typedef enum _rgrSiPerd
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 */
250 /*rgr_x_001.main_11 ccpu00115364 ADD changed uint8_t to enum for modPrd*/
251 /*modification period = (modificationPeriodCoeff * defaultPagingCycle)%m*/
252 /*where modificationPeriodCoeff={2,4,8,16} defaultPagingCycle={32,64,128,256}*/
254 @brief Modification period Periodicity */
255 typedef enum _rgrModPerd
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 */
264 /** SI Configuration Type */
265 typedef enum rgrSiCfgType
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 */
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
281 #endif /*RGR_SI_SCH*/
284 /*rgr_x_001.main_11 ADD added changes for DRX*/
286 * @brief DRX Timer Period */
287 typedef enum _rgrDrxTmrPerd
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 */
330 /*rgr_x_001.main_11 ADD added changes for DRX*/
332 * @brief DRX Cycle Period */
333 typedef enum _rgrDrxCyclePerd
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 */
357 /*rgr_x_001.main_11 ADD added changes for DRX*/
359 * @brief DRX Short Cycle Timer values */
360 typedef enum _rgrDrxShortCycleTmr
362 RGR_DRX_SHRTCYCLE_MIN = 1, /**< min DRX short cycle timer val */
363 RGR_DRX_SHRTCYCLE_MAX = 16 /**< max DRX short cycle timer val */
366 /*rgr_x_001.main_11 ADD added changes for R9*/
367 /**@name LTEMAC_R9 */
371 * @brief DRX CQI Mask */
372 typedef enum _rgrDrxCqiMask
374 RGR_DRX_SETUP = 0 /**< DRX CQI mask value */
379 /*rgr_x_001.main_11 ADD added changes for CQI management*/
381 @brief Enumerated P_A Values */
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;
395 typedef enum rgrSchFrmt1b3TypEnum
397 RG_SCH_UCI_FORMAT1A_1B,
398 RG_SCH_UCI_FORMAT1B_CS,
400 RG_SCH_UCI_FORMAT_NON_CA
401 }RgrSchFrmt1b3TypEnum;
404 /** @brief Transaction ID between MAC and RRM */
405 typedef struct rgrCfgTransId
407 uint8_t trans[RGR_CFG_TRANSID_SIZE]; /*!< RRM Transaction ID */
410 /** @brief Downlink HARQ configuration per Cell */
411 typedef struct rgrDlHqCfg
413 uint8_t maxDlHqTx; /*!< Maximum number of DL HARQ Transmissions.
414 Minimum value is 1, maximum can be defined
416 uint8_t maxMsg4HqTx; /*!< Maximum msg4(Random Access) HARQ Transmissions
417 Minimum value is 1, Maximum can be defined by
421 /** @brief Range of RNTIs managed by MAC */
422 typedef struct rgrRntiCfg
424 CmLteRnti startRnti; /*!< Start RNTI for the range managed by MAC */
425 uint16_t size; /*!< Indicates contiguous range of RNTI managed by
429 /** @brief Downlink common channel code rate configuration per cell */
430 typedef struct rgrDlCmnCodeRateCfg
432 uint16_t bcchPchRaCodeRate; /*!< BCCH on DLSCH, PCH and RARsp coding rate.
433 * This defines the actual number of bits per 1024
434 * physical layer bits */
435 uint16_t 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 uint8_t ccchCqi; /*!< Default CQI to be used for Msg4 in case where
440 * no CQI is available for the UE. ccchCqi ranges
442 } RgrDlCmnCodeRateCfg;
444 /** @brief Control Format Indicator (CFI) configuration per cell */
445 typedef struct rgrCfiCfg
447 uint8_t cfi; /*!< CFI for PDCCH: a value in set {1,2,3} */
450 /** @brief PUSCH sub-band configuration per cell */
451 typedef struct rgrPuschSubBandCfg
453 uint8_t subbandStart; /*!< Sub-band start */
454 uint8_t numSubbands; /*!< Number of equal sized sub-bands */
455 uint8_t size; /*!< Size of a sub-band */
456 uint8_t dmrs[RGR_MAX_SUBBANDS]; /*!< DMRS information per sub-band */
457 } RgrPuschSubBandCfg;
459 /** @brief Uplink common channel code rate configuration per cell */
460 typedef struct rgrUlCmnCodeRateCfg
462 uint8_t ccchCqi; /*!< CCCH CQI index, also used as default
463 * initial CQI for UEs */
464 } RgrUlCmnCodeRateCfg;
466 /* rgr_x_001.main_1: Removing unwanted srMcs Configuration structure */
468 /** @brief Target Uplink CQI to achieve through group power control configured per cell */
469 typedef struct rgrUlTrgCqiCfg
471 uint8_t trgCqi; /*!< Target UL CQI to be achieved through power
472 control.Range is defined is between 1 to 15 */
475 @brief Bandwidth configuration per cell */
476 typedef struct rgrBwCfg
478 uint8_t dlTotalBw; /*!< Total Dowlink Bandwidth */
479 uint8_t ulTotalBw; /*!< Total Uplink Bandwidth */
483 @brief PHICH configuration per cell */
484 typedef struct rgrPhichCfg
486 RgrPhichNg ngEnum; /*!< Ng value for PHICH */
487 Bool isDurExtend; /*!< PHICH Duration: TRUE-extended/FALSE-normal */
491 @brief PUCCH configuration per cell */
492 typedef struct rgrPucchCfg
494 uint8_t resourceSize; /*!< PUCCH resource-size or N^(2)_RB (in RBs) */
495 uint16_t n1PucchAn; /*!< N^(1)_PUCCH */
496 uint8_t deltaShift; /*!< Delta Shift for PUCCH: a value in set {1,2,3} */
497 uint8_t cyclicShift; /*!< Cyclic Shift for PUCCH (N^(1)_CS): a value in
499 uint8_t 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 */
506 @brief SRS configuration per cell */
507 typedef struct rgrSrsCfg
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.
514 uint8_t srsSubFrameCfg;/*!< SRS subframe configuration index per cell.
518 @brief RACH configuration per cell */
519 typedef struct rgrRachCfg
521 uint8_t preambleFormat; /*!< RACH Preamble format: a value in set {0,1,2,3} */
522 uint8_t raWinSize; /*!< RA Window size */
523 /** @brief Ocassion at Which Random Access Is Expected */
526 uint8_t size; /*!< Number of subframe numbers */
527 RgrRaSfn sfnEnum; /*!< System Frame Number */
528 uint8_t subFrameNum[RGR_MAX_SUBFRAME_NUM]; /*!< Subframe numbers */
529 } raOccasion; /*!< Random access occasions */
530 uint8_t maxMsg3Tx; /*!< Maximum number of message 3 transmissions */
531 uint8_t numRaPreamble; /*!< Number of RA Preambles */
532 uint8_t sizeRaPreambleGrpA; /*!< Size of RA Preamble in Group A */
533 uint16_t msgSizeGrpA; /*!< MESSAGE_SIZE_GROUP_A */
534 uint8_t prachResource; /*!< N^RA_PRB: PRACH resource for random access */
538 /* rgr_x_001.main_7: [ccpu00112372] Added contention resolution timer */
539 uint8_t contResTmr; /*!< Contention resolution timer */
545 @brief SI Configuration per cell
547 typedef struct rgrSiCfg
549 uint8_t siWinSize; /*!< SI window size */
550 uint8_t retxCnt; /*!< Retransmission count */
551 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
552 /**@name RGR_SI_SCH */
555 /*rgr_x_001.main_11 ccpu00115364 MOD changed uint8_t to enum for modPrd*/
556 RgrModPeriodicity modPrd; /*!< Modificiation Period for SI */
557 uint8_t numSi; /*!<Number of SIs, SI Id starts from 1 */
558 RgrSiPeriodicity siPeriodicity[RGR_MAX_NUM_SI]; /*!<Periodicities of SIs */
559 uint16_t minPeriodicity; /*!< Minimum Periodicity Configured */
565 * @brief TPC RNTI Range */
566 typedef struct rgrTpcRntiCfg
568 CmLteRnti startTpcRnti; /*!< Start RNTI for TPC */
569 uint16_t size; /*!< Indicates contiguous range of RNTI */
572 /* rgr_x_001.main_6 : documentation update. */
574 * @brief Cell-specific power configuration */
575 typedef struct rgrUlPwrCfg
577 S8 p0NominalPusch; /*!< P0_NOMINAL_PUSCH Currently this is
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;
592 * @brief Cell-specific hopping configuration */
593 typedef struct rgrPuschCfg
595 uint8_t 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 uint8_t hopOffst; /*!< Hopping offset {0 ... 98}
600 Currently this is unused parameter*/
604 * @brief Number of bits in Code Book for different transmission modes */
605 typedef struct rgrCodeBookRstCfg
607 Bool pres; /*!< Code Book restriction present ?*/
608 uint32_t pmiBitMap[2]; /*!< Array for number of Bits for ports and TX Mode*/
611 * @brief Range of PDCCH Order Preamble Set managed by MAC */
612 typedef struct rgrPreambleSetCfg
614 Bool pres; /*!< Indicates if other configuration fields are valid */
615 uint8_t start; /*!< Start Preamble ID for the range managed by MAC */
616 uint8_t size; /*!< Indicates contiguous range of premables managaed by
621 @brief Logical channel configuration information for common channels */
622 typedef struct rgrCmnLchCfg
624 CmLteLcId lcId; /*!< Logical channel ID */
625 CmLteLcType lcType; /*!< Identifies the Logical channel type.lcType
626 can take the following values:
632 uint8_t dir; /*!< Indicates Direction. Direction can take following
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:
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:
647 CM_LTE_TRCH_UL_SCH */
651 @brief RGR configuration for DLFS scheduler */
652 typedef struct rgrDlfsCfg
654 uint8_t isDlFreqSel; /*!< Indicates if resource allocation is frequency
656 uint8_t 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 */
665 /* LTE_ADV_FLAG_REMOVED_START */
668 * @brief LTE Adv feature status */
669 typedef enum _rgrFeature
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 */
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*/
685 * @brief LTE Adv feature is enable/disable */
686 typedef enum _rgrFeaturestatus
688 RGR_DISABLE = 0, /**< Feature disabled */
689 RGR_ENABLE = 1 /**< Feature Enabled */
693 * @brief Pattern type for ABS */
694 typedef enum _rgrAbsPatternType
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 */
701 @brief RGR RB range for SFR */
702 typedef struct rgrSfrRbRange
704 uint8_t startRb; /*<! Start RB for cell edge user */
705 uint8_t endRb; /*<! End RB for cell edge user */
710 @brief RGR Power threshold for SFR */
711 typedef struct rgrPwrThreshold
713 RgrUeDlPwrCntrlPaCfg pLow; /*<! Power level for cell center UE */
714 RgrUeDlPwrCntrlPaCfg pHigh; /*<! Power level for cell edge UE */
719 @brief RGR configuration for SFR feature */
720 typedef struct rgrSfrConfig
722 RgrFeatureStatus status; /*!< Indicate feature is enabled or disabled */
723 RgrSfrRbRange cellEdgeRbRange; /*<! Range of RBS for cell edge UEs */
725 RgrPwrThreshold pwrThreshold; /*<! Power threshold for cell edge and cell center UE */
729 /** This structure holds DSFR Config params **/
730 typedef struct rgrDsfrConfig
732 RgrFeatureStatus status; /*!< Indicate feature is enabled or disabled */
736 @brief RGR configuration for LTE Advanced feature */
737 typedef struct rgrAbsConfig
739 RgrFeatureStatus status; /*!< Indicate feature is enabled or disabled */
740 uint32_t absPatternType; /*!< Indicate it as Mute and/or Transmit type */
741 uint8_t absPattern[RGR_ABS_PATTERN_LEN]; /*!< ABS pattern */
742 uint32_t absLoadPeriodicity; /*!< ABS Load Ind periodicity in msec */
746 @brief RGR configuration for LTE Advanced feature */
747 typedef struct rgrLteAdvancedCellConfig
749 uint32_t 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 */
759 /** @brief PRACH resource information for TDD */
760 typedef struct rgrTddPrachInfo
762 uint8_t freqIdx; /*!< Frequency Index */
763 RgrRaSfn sfn; /*!< Even/Odd/All Radio Frames */
764 uint8_t halfFrm; /*!< First/Second Half Frame */
765 uint8_t ulStartSfIdx; /*!< Uplink Start Subframe Index;
766 RGR_TDD_SPL_UL_IDX must be used
767 to configure special subframes */
770 /** @brief Set of PRACH information for TDD */
771 typedef struct rgrTddPrachRscInfo
773 uint8_t numRsc; /*!< Number of PRACH resources*/
774 RgrTddPrachInfo prachInfo[RGR_TDD_MAX_FREQ_RSRC]; /*!< PRACH information */
775 } RgrTddPrachRscInfo;
779 /** @brief set of PF Scheduler Parameters */
780 typedef struct rgrEnbPfs
782 uint8_t tptCoeffi; /*!< Downlink Throughput Coeffiecient
784 uint8_t fairCoeffi; /*!< Downlink Fairness Coeffiecient
786 uint32_t qciWgt[RGR_MAX_NUM_QCI]; /*!< Downlink Qci Weights */
790 @brief OPEN/CSG/HCSG Access Mode CELL
792 typedef enum rgrCellAccsMode
794 RGR_CELL_ACCS_OPEN = 1, /*!< Open Access Mode */
795 RGR_CELL_ACCS_CLOSED, /*!< Closed Mode */
796 RGR_CELL_ACCS_HYBRID /*!< Hybrid Mode */
800 @brief Control Command Type
802 typedef enum rgrCellCntrlCmdType
804 RGR_CNTRL_CMD_RACH_OVRLD=1,
805 RGR_CNTRL_CMD_CPU_OVRLD
806 }RgrCellCntrlCmdType;
809 @brief Control Commands to alter CELL performance
811 typedef struct rgrCellCntrlCmdCfg
813 RgrCellCntrlCmdType cmdType;
814 /** @brief Cntrl Cmd Description */
817 /** @brief RACH OverLoad Cntrl Cmd Description */
820 Bool backOffEnb; /*!< backoff RACH during overlaod */
821 uint8_t backOffVal; /*!< backoff value during overload */
824 /** @brief CPU OverLoad Cntrl Cmd Description */
827 uint8_t instruction; /*!< CPU Over Load Cntrl Instruction */
830 } RgrCellCntrlCmdCfg;
835 * eNB level Scheduler Configurations
836 * along with other PFS config Parameters
838 typedef struct macSchedGnbCfg
840 uint8_t numTxAntPorts; /*!< Number of Tx antenna ports */
841 uint8_t ulSchdType; /*!< Indicates which UL scheduler to use, range
842 * is 0..(number of schedulers - 1) */
843 uint8_t dlSchdType; /*!< Indicates which DL scheduler to use, range
844 * is 0..(number of schedulers - 1) */
845 uint8_t numCells; /*!< Max number of cells */
846 uint8_t maxUlUePerTti; /*!< Max number of UE in UL per TTI */
847 uint8_t maxDlUePerTti; /*!< Max number of UE in DL per TTI */
851 * eNB level Scheduler Configurations
852 * along with other PFS config Parameters
854 typedef struct rgrSchedEnbCfg
856 uint8_t numTxAntPorts; /*!< Number of Tx antenna ports */
857 uint8_t dlSchdType; /*!< Indicates which DL scheduler to use, range
858 * is 0..(number of schedulers - 1) */
861 RgrEnbPfs dlPfs; /*!< Information related to DL PFS
864 uint8_t ulSchdType; /*!< Indicates which UL scheduler to use, range
865 is 0..(number of schedulers - 1) */
868 RgrEnbPfs ulPfs; /*!< This structure holds the parameters
869 to be configured for PFS scheduler.
870 These values are utilized only when
871 if PFS scheduler is being configured
872 There is no range defined for the
873 values, However the product of all
874 three priorities must not exceed the
877 RgrCellAccsMode accsMode; /*!< Cell Access Mode */
879 Bool isDynTddEnbld; /*!< Dynamic TDD config */
883 /*rgr_x_001.main_9 - Added support for SPS*/
884 /*rgr_x_001.main_11 MOD added comments for doxygen*/
885 /** @name LTEMAC_SPS */
888 @brief DL SPS configuration parameters per UE
889 TODO: Check if this is to be added to re-configuration as well
892 typedef struct rgrSpsCellCfg
894 uint8_t maxSpsDlBw; /*!< BW used of SPS Scheduling */
896 uint16_t maxSpsUePerDlSf; /*!< Maximum DL SPS UEs that can be
897 scheduled in a TTI */
898 uint16_t maxSpsUePerUlSf; /*!< Maximum UL SPS UEs that can be scheduled
903 @brief OPEN/CSG/HCSG Access Mode Configuration parameters for CELL
905 typedef struct rgrCellCsgParamCfg
907 uint8_t minDlResNonCsg; /*!< Min PDSCH Resources for Non-CSG Members */
908 uint8_t minUlResNonCsg; /*!< Min PUSCH Resources for Non-CSG Members */
909 } RgrCellCsgParamCfg;
911 /** @brief LAA Cell Configuration */
912 typedef struct rgrLteUCfg
914 Bool isLaaCell; /*<! To distinguish between LAA and LTE-U cell*/
918 typedef struct rgrEmtcSiSchedInfo
920 uint8_t emtcSiNarrowBand; /*!< narrowband assigned to SI */
921 uint16_t emtcSiTbs; /*!< tbs value for SI */
924 typedef struct rgrEmtcPrmbleMap
926 uint8_t firstPreamble; /*!< for each CE mode, starting preamble */
927 uint8_t lastPreamble; /*!< for each CE mode, starting preamble */
930 typedef struct rgrEmtcRachCElevelInfoLst
932 uint8_t emtcRarHopping; /*!< by defualt off */
933 uint16_t raEmtcWinSize; /*!< RA Window size */
934 uint16_t raEmtcContResTmr; /*!< Contension Resolution */
935 uint16_t emtcPreambleTransMax; /*!< PreambleTransMax */
936 RgrEmtcPrmbleMap emtcPreambleMap; /*!< preamble mapping Info */
937 }RgrEmtcRachCElevelInfoLst;
939 typedef struct rgrEmtcRachCfg
941 uint8_t emtcCeLvlSupported;
942 RgrEmtcRachCElevelInfoLst ceLevelInfo[RGR_MAX_CE_LEVEL]; /* for all CE levels 0,1,2,3*/
945 typedef struct rgrEmtcPdschCfg
947 uint16_t emtcMaxRepCeModeA; /*!< max repetition for CE ModeA */
948 uint16_t emtcMaxRepCeModeB; /*!< max repetition for CE ModeB */
951 typedef struct rgrEmtcPuschCfg
953 uint16_t emtcMaxRepCeModeA; /*!< max repetition for CE ModeA */
954 uint16_t emtcMaxRepCeModeB; /*!< max repetition for CE ModeB */
955 uint8_t emtcHoppingOffset; /*!< Hopping offset */
958 typedef struct rgrEmtcPrachCEParamLst
960 uint8_t emtcPrachCfgIdx; /*!< Prach config index */
961 uint8_t emtcPrachFreqOffset; /*!< Prach Frequency Offset */
962 uint16_t emtcPrachStartSubFrame; /*!< Starting sub frame */
963 uint8_t emtcMaxPremAttemptCE; /*!< max preamble attempt CE */
964 uint8_t emtcNumRepPerPreambleAtt;/*!< num of repetition per preamble attempt*/
965 uint8_t emtcNumMpdcchNBtoMonitor;/*!< num of Mpddch NB to monitor */
966 uint8_t emtcMpdcchNBtoMonitor[RGR_MAX_NUM_MPDCCH_MONITOR];/*!< Mpddch NB to monitor */
967 uint16_t emtcMpdcchNumRep; /*!< num of Mpddch Number of repetition */
968 uint8_t emtcPrachHoppingCfg; /*!< num of Prach Hopping config */
969 }RgrEmtcPrachCEParamLst;
971 typedef struct rgrEmtcPrachCfg
973 uint8_t emtcMpdcchStartSFCssRaFdd; /*!< mdpcch start SubFrame Ra type2 */
974 uint8_t emtcPrachHopingOffset; /*!< prach hopping offset value */
975 uint8_t emtcInitialCElevel; /*!< Initial CE level to start with */
976 RgrEmtcPrachCEParamLst emtcPrachCEparmLst[RGR_MAX_CE_LEVEL];
980 /*Changes by Simran*/
981 typedef struct rgrFddDownlinkOrTddSubframeBitmapLC
983 uint8_t sfnPtnChoice;
989 }RgrFddDownlinkOrTddSubframeBitmapLC;
992 typedef struct rgrEmtcSiCfg
994 Bool siHoppingEnable; /*!< SI Hopping enabled or not */
995 RgrModPeriodicity modPrd; /*!< Modificiation Period for SI */
996 uint8_t siWinSizeBr; /*!< SI window size */
997 uint8_t sib1Repetition; /*!< sib1-br repetition */
998 uint8_t siRepetition; /*!< SI repetition pattern
999 everyRF,every2ndRF,every4thRF,every8thRF*/
1000 uint16_t startSymbolLc;
1001 /*Changes by Simran*/
1002 RgrFddDownlinkOrTddSubframeBitmapLC fddDLOrTddSfBitmapLC;
1003 //uint16_t fddDlOrTddSfBitmapBR; /*!< 10 bit value for sending SI*/
1004 RgrEmtcSiSchedInfo schdInfo[RGR_MAX_NUM_SI];
1005 uint8_t numSi; /*!<Number of SIs, SI Id starts from 1 */
1006 RgrSiPeriodicity siPeriodicity[RGR_MAX_NUM_SI]; /*!<Periodicities of SIs */
1009 typedef struct rgrEmtcPucchCfg
1011 uint16_t emtcN1pucchAnInfoLst[RGR_MAX_CE_LEVEL]; /*!< Max CE level is 4 */
1012 uint8_t emtcPucchNumRepCEMsg4Lvl0; /*!< update the level 0 */
1013 uint8_t emtcPucchNumRepCEMsg4Lvl1; /*!< update the level 1 */
1014 uint8_t emtcPucchNumRepCEMsg4Lvl2; /*!< update the level 2 */
1015 uint8_t emtcPucchNumRepCEMsg4Lvl3; /*!< update the level 3 */
1018 typedef struct rgrEmtcRntiCfg
1020 CmLteRnti rntiCeModeAStart; /*!< EMTC Start RNTI for the range managed by MAC */
1021 CmLteRnti rntiCeModeARange; /*!< EMTC Range of RNTI for the CEMODE A */
1022 uint16_t rntiCeModeBStart; /*!< EMTC Start RNTI for the range managed by MAC */
1023 CmLteRnti rntiCeModeBRange; /*!< EMTC Range of RNTI for the CEMODE B */
1024 uint16_t size; /*!< Indicates contiguous range of RNTI managed by EMTC
1028 typedef struct rgrEmtcCellCfg
1030 uint16_t pci; /*!< Physical Cell ID */
1031 uint32_t emtcT300Tmr; /*!< T300 timer as per Rel13 */
1032 uint32_t emtcT301Tmr; /*!< T301 timer as per Rel13 */
1033 RgrEmtcSiCfg emtcSiCfg; /*!< SI configuration */
1034 RgrEmtcRachCfg emtcRachCfg; /*!< Rach config as per Rel13*/
1035 RgrEmtcPdschCfg emtcPdschCfg; /*!< Pdsch config as per Rel13*/
1036 RgrEmtcPuschCfg emtcPuschCfg; /*!< Pusch config as per Rel13*/
1037 RgrEmtcPrachCfg emtcPrachCfg; /*!< Prach config as per Rel13*/
1038 RgrEmtcPucchCfg emtcPucchCfg; /*!< Pucch config as per Rel13*/
1039 RgrEmtcRntiCfg emtcMacRnti;
1040 uint8_t emtcPdschNbIdx;
1041 uint8_t emtcMpdcchNbIdx;
1042 uint8_t emtcPuschNbIdx;
1048 typedef enum rgSchSfType
1050 RG_SCH_SF_DLCNTRL_DLDATA = 0,
1051 RG_SCH_SF_DLCNTRL_DLDATA_ULCNTRL,
1052 RG_SCH_SF_DLCNTRL_ULDATA,
1053 RG_SCH_SF_DLCNTRL_ULDATA_ULCNTRL
1056 typedef struct rgr5gtfCellCfg
1058 RgSchSfType dynConfig[MAX_5GTF_SUBFRAME_INFO];
1060 uint8_t ueGrpPerTti;
1068 /** @brief This enum defines dl ul transmission periodicity as per spec 38.331
1069 * servingCellConfigCommon */
1070 typedef enum rgrDlUlTxPrdcty
1072 RGR_DLULTXPRDCTY_MS0DOT5 = 0, /*!<Periodicity of 0.5 ms*/
1073 RGR_DLULTXPRDCTY_MS0DOT625, /*!<Periodicity of 0.625 ms*/
1074 RGR_DLULTXPRDCTY_MS1, /*!<Periodicity of 1 ms */
1075 RGR_DLULTXPRDCTY_MS1DOT25, /*!<Periodicity of 1.25 ms */
1076 RGR_DLULTXPRDCTY_MS2, /*!<Periodicity of 2 ms */
1077 RGR_DLULTXPRDCTY_MS2DOT5, /*!<Periodicity of 2.5 ms */
1078 RGR_DLULTXPRDCTY_MS5, /*!<Periodicity of 5 ms */
1079 RGR_DLULTXPRDCTY_MS10 /*!<Periodicity of 10 ms */
1083 typedef struct rgrSlotCfg
1085 Bool duplexMode; /*!< FDD:0, TDD:1 */
1086 uint32_t slotFrmt[RGR_MAX_SLOTS_IN_10MS]; /*!< Least significant 2 bits indicates:
1087 00-DL, 01-UL, 10-Flexi, 11-Mixed
1088 Rest 28 bits indicates 14 symbols
1089 types(DL/UL/Flexi) 2 bits for
1091 RgrDlUlTxPrdcty dlUlTxPrdcty; /*!< dl-ul-Transmission periodicity
1092 as per 38.331 in servingCellConfigCommon*/
1097 /** @brief Cell Configuration at RRM */
1098 typedef struct rgrCellCfg
1102 CmLteCellId cellId; /*!< Cell ID */
1103 uint16_t pci; /*!< Physical Cell ID */
1104 uint8_t maxMsg3PerUlSlot; /*!< Maximum MSG3 that may be scheduled
1106 uint8_t maxUePerUlSlot; /*!<Maximum UE scheduled per UL slot */
1107 uint8_t maxUePerDlSlot; /*!<Maximum UE scheduled per DL in a TTI */
1108 Bool isCpUlExtend; /*!< Cyclic prefix: TRUE-extended,
1109 FALSE-normal for UL */
1110 Bool isCpDlExtend; /*!< Cyclic prefix: TRUE-extended,
1111 FALSE-normal for DL*/
1112 RgrDlHqCfg dlHqCfg; /*!< HARQ related configuration */
1113 RgrCfiCfg cfiCfg; /*!< CFI for PDCCH */
1114 RgrUlTrgCqiCfg trgUlCqi; /*!< Target UL CQI */
1115 RgrDlCmnCodeRateCfg dlCmnCodeRate; /*!< Coding rate for common DL channels:
1116 Expressed in multiples of 1024 */
1117 RgrUlCmnCodeRateCfg ulCmnCodeRate; /*!< Coding rate for common UL channels:
1118 Expressed as index into CQI table */
1119 RgrBwCfg bwCfg; /*!< Bandwidth configuration */
1120 RgrUlPwrCfg pwrCfg; /*!< Cell-specific power configuration */
1121 RgrPuschCfg puschCfg; /*!< Cell-specific hopping configuration */
1122 RgrPreambleSetCfg macPreambleSet; /*!< Range of PDCCH Order Preamble IDs
1123 to be managed by MAC */
1125 uint16_t bcchTxPwrOffset; /*!< Tx Pwr Offset for BCCH tx on PDSCH.
1126 Offset to the reference signal
1127 power. Value: 0 -> 10000,
1128 representing -6 dB to 4 dB in 0.001
1130 uint16_t pcchTxPwrOffset; /*!< Tx Pwr Offset for PCCH tx.
1131 Offset to the reference signal
1132 power. Value: 0 -> 10000,
1133 representing -6 dB to 4 dB in 0.001
1135 uint16_t rarTxPwrOffset; /*!< Tx Pwr Offset for RAR tx.
1136 Offset to the reference signal
1137 power. Value: 0 -> 10000,
1138 representing -6 dB to 4 dB in 0.001
1140 uint8_t nrMu; /*!<Indicates the number of Slot for a radio frame*/
1141 uint8_t tbScalingField;/*!< TB Scaling Factor used while
1142 calucating TBS for P-RNTI, or
1144 RgrSlotCfg slotCfg; /*!< Slot config as per 38.211, sec
1147 tdd-UL-DL-configcommon */
1148 #if 0 //TODO: uncomment after study
1149 RgrDataDmrsTypAPosEnum dmrsTypAPos; /*!< Position of (first) DL DM-RS is
1150 included in NR-PBCH payload. value is 2 or 3 */
1152 RgrSsPbchBlockCfg ssPbchCfg; /*!< SS PBCH Block configuration */
1153 RgrFreqRangeType freqRangeType; /*!<Cell Frequency Range type (<=
1154 3Ghz, 3 < x <= 6Ghz, > 6Ghz)*/
1155 RgrType0PdcchCSSCfg type0PdcchCSSCfg; /*!< Type 0 CSS Config params */
1156 RgrFreqInfoDlCfg freqInfoDlCfg; /*!< DL Frequency information
1158 RgrSulCellCfg sulCellCfg; /*!< SUL Cell config */
1159 RgrUlCfgCmn ulCmnCfg; /*!< initial UL Bwp and Ul freq
1162 Bool initDlBwpPres; /*!< intial common
1163 DL BWP is present or not */
1164 RgrBwpDlCmn initDlBwp; /*!<Initial Dl BWP*/
1165 RgrAddlBwpCfg addlBwpCfg; /*!<Additional BWP Configuration apart from
1168 RgrCellNsCfgInfo nsCfg; /*!< NSI Cfg */
1170 RgrCellPfsCfgInfo pfsCfg; /*!< Pfs Config */
1171 Bool isRateMatchSsPbchEnbld; /*!<PDSCH rate match enabled for SS PBCH */
1172 Bool isRateMatchCsetEnbld; /*!<PDSCH rate match enabled */
1175 CmLteCellId cellId; /*!< Cell ID */
1176 Inst macInst; /*!< MAC instance that is serving the cell */
1180 /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
1182 uint8_t maxMsg3PerUlSf; /*!< Maximum MSG3 that may be scheduled
1183 per uplink subframe */
1186 uint8_t maxUePerUlSf; /*!< Maximum UEs that may be scheduled
1187 per uplink subframe. Currently this is
1189 uint8_t maxUePerDlSf; /*!< Maximum UE to be considered for DL
1190 scheduling in a TTI.Currently this is
1192 /*[ccpu00138609]-ADD- Max limit for Msg4/DL CCCH Ues */
1193 uint8_t maxCcchPerDlSf; /*!< Max num of Msg4/DL CCCH SDU UEs that
1194 can be scheduled per TTI. It cannot
1195 exceed max UE per Dl sf. If set as
1196 0, this will be a don't care
1198 uint8_t maxUlBwPerUe; /*!< Maximum number of RBs that can be
1199 allocated to an UE in an UL subframe
1200 Maximum value is defined by
1201 RG_SCH_CMN_MAX_UL_BW_PER_UE in
1202 rg_env.h. This can be modified as
1204 uint8_t maxDlBwPerUe; /*!< Maximum number of RBs that can be
1205 allocated to an UE in an DL subframe
1206 Maximum value is defined by
1207 RG_SCH_CMN_MAX_DL_BW_PER_UE in
1208 rg_env.h. This can be modified as
1210 uint8_t maxDlRetxBw; /*!< Maximum number of RBs that can be
1211 allocated for retransmission in DL
1212 Maximum value is defined by
1213 RG_SCH_CMN_MAX_DL_RETX_BW in
1214 rg_env.h. This can be modified as
1216 uint8_t maxDlUeNewTxPerTti; /*!< Maximum number of UEs that can
1217 be scheduled for a new DL
1218 transmission in a TTI. Value should
1219 be configured by the user as per
1221 uint8_t maxUlUeNewTxPerTti; /*!< Maximum number of UEs that can
1222 be scheduled for a new UL
1223 transmission in a TTI. Value should
1224 be configured by the user as per
1226 Bool isCpUlExtend; /*!< Cyclic prefix: TRUE-extended,
1227 FALSE-normal for UL */
1228 Bool isCpDlExtend; /*!< Cyclic prefix: TRUE-extended,
1229 FALSE-normal for DL*/
1230 Bool cellModSchm; /*!< TRUE indicates 64QAM
1231 allowed while FALSE indicates 64QAM
1232 is not allowed. Currently this is unused
1234 S8 pMax; /*!< To limit the Cell Uplink
1235 transmission power */
1237 uint8_t dlfsSchdType; /*!< Indicates which DLFS scheduler to use, range
1238 * is 0..(number of schedulers - 1) */
1239 RgrDlHqCfg dlHqCfg; /*!< HARQ related configuration */
1240 RgrRntiCfg macRnti; /*!< Range of RNTIs to be managed by MAC */
1241 RgrCfiCfg cfiCfg; /*!< CFI for PDCCH */
1242 RgrUlTrgCqiCfg trgUlCqi; /*!< Target UL CQI */
1243 RgrDlCmnCodeRateCfg dlCmnCodeRate; /*!< Coding rate for common DL channels:
1244 Expressed in multiples of 1024 */
1245 RgrPuschSubBandCfg puschSubBand; /*!< UL sub-band information */
1246 RgrUlCmnCodeRateCfg ulCmnCodeRate; /*!< Coding rate for common UL channels:
1247 Expressed as index into CQI table */
1248 RgrDlfsCfg dlfsCfg; /*!< Configuration for DLFS scheduler */
1249 RgrBwCfg bwCfg; /*!< Bandwidth configuration */
1250 RgrPhichCfg phichCfg; /*!< PHICH configuration information */
1251 RgrPucchCfg pucchCfg; /*!< PUCCH configuration information */
1252 RgrSrsCfg srsCfg; /*!< SRS configuration information. Currently
1254 RgrRachCfg rachCfg; /*!< RACH configuration */
1255 RgrSiCfg siCfg; /*!< SI configuration */
1256 RgrUlPwrCfg pwrCfg; /*!< Cell-specific power configuration */
1257 RgrPuschCfg puschCfg; /*!< Cell-specific hopping configuration */
1258 RgrPreambleSetCfg macPreambleSet; /*!< Range of PDCCH Order Preamble IDs
1259 to be managed by MAC */
1260 uint8_t numCmnLcs; /*!< Number of common logical channels*/
1261 RgrCmnLchCfg cmnLcCfg[RGR_MAX_CMN_LC_PER_CELL]; /*!< Configuration for
1262 common logical channels */
1263 RgrCellCsgParamCfg csgParamCfg; /* Cell-specific configuration for CSG */
1264 /** @name LTE_TDD */
1267 uint8_t ulDlCfgIdx; /*!< UL-DL configuration index*/
1268 uint8_t spclSfCfgIdx; /*!< Special Subframe configuration index*/
1269 RgrTddPrachRscInfo prachRscInfo; /*!< PRACH information */
1270 #endif /* LTE_TDD */
1272 /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
1273 /* rgr_x_001.main_4: Added 0 as valid value to shut off RGR TICKs. */
1274 /** @name RGR_RRM_TICK */
1276 uint8_t rrmTtiIndPrd; /*!< Periodicity of TTI indication from
1277 MAC towards RGR user. Range [0-255]. A
1278 value of 1 means one tick per System
1279 Frame and 2 means one tick per 2 System
1281 A value of 0 implies no ticks. */
1283 /*rgr_x_001.main_9 - Added support for SPS*/
1284 /** @name LTEMAC_SPS */
1286 RgrSpsCellCfg spsCfg; /* Cell-specific configuration for DL SPS */
1287 /* LTE_ADV_FLAG_REMOVED_START */
1288 RgrLteAdvancedCellConfig rgrLteAdvCfg; /*!< RGR Configuration of LTE Adv */
1289 /* LTE_ADV_FLAG_REMOVED_END */
1291 uint8_t dlCqiOverrideFloor;
1292 uint8_t dlCqiOverrideCeil;
1293 uint8_t ulCqiOverrideFloor;
1294 uint8_t ulCqiOverrideCeil;
1297 uint16_t t300TmrVal; /*!< t300Timer value configured in Frames */
1299 /* ccpu00132314-ADD-Tx power offsets for Common PDSCH transmissions */
1300 uint16_t bcchTxPwrOffset; /*!< Tx Pwr Offset for BCCH tx on PDSCH.
1301 Offset to the reference signal
1302 power. Value: 0 -> 10000,
1303 representing -6 dB to 4 dB in 0.001
1305 uint16_t pcchTxPwrOffset; /*!< Tx Pwr Offset for PCCH tx.
1306 Offset to the reference signal
1307 power. Value: 0 -> 10000,
1308 representing -6 dB to 4 dB in 0.001
1310 uint16_t rarTxPwrOffset; /*!< Tx Pwr Offset for RAR tx.
1311 Offset to the reference signal
1312 power. Value: 0 -> 10000,
1313 representing -6 dB to 4 dB in 0.001
1315 /* ccpu00138898 - Added Tx pwr offset for PHICH Tx*/
1316 uint16_t phichTxPwrOffset; /*!< Tx Pwr Offset for PHICH tx.
1317 Offset to the reference signal
1318 power. Value: 0 -> 10000,
1319 representing -6 dB to 4 dB in 0.001
1321 Bool isDynCfiEnb; /*!< To indicate whether Dynamic CFI is enabled
1323 Bool isAutoCfgModeEnb; /*!< To indicate whether AutoCfg Mode
1324 change is enabled or not */
1325 RgrUeDlPwrCntrlPaCfg msg4pAVal; /*!< Default value (Enum) of PA that is
1326 used by Scheduler for msg4 */
1327 RgrLteUCfg lteUCfg; /*!< Flag to identify LAA or LTE-U*/
1329 Bool isPucchFormat3Sptd; /*!< Flag for Format 3 Support */
1333 RgrEmtcCellCfg emtcCellCfg;
1336 Rgr5gtfCellCfg Cell5gtfCfg;
1341 @brief Downlink Aperiodic CQI reporting related configuration per UE */
1342 typedef struct rgrUeAprdDlCqiCfg
1344 Bool pres; /*!< Indicates presence of aperiodic
1345 DL CQI configuration */
1346 RgrAprdCqiMode aprdModeEnum; /*!< Aperiodic CQI reporting mode */
1347 /* These two fields are only valid for Pcell*/
1349 uint8_t triggerSet1; /*!< Trigger set one*/
1350 uint8_t triggerSet2; /*!< Trigger set two*/
1352 } RgrUeAprdDlCqiCfg;
1354 /* rgr_x_001.main_10. Added changes of TFU_UPGRADE */
1357 @brief Downlink Periodic CQI reporting related configuration per UE */
1358 typedef struct rgrUePrdDlCqiCfg
1360 Bool pres; /*!< Indicates presence of periodic
1361 DL CQI configuration. */
1362 RgrPrdCqiMode prdModeEnum; /*!< Peiodic CQI reporting mode. */
1363 RgrCqiPrdicity prdicityEnum; /*!< Periodicity values for CQI.
1364 Currently, this is unused parameter. */
1365 uint8_t subframeOffst; /*!< Subframe offset.
1366 Currently, this is unused parameter. */
1367 S8 cqiOffst; /*!< Delta^cqi_offset: (actual_value*10).
1368 Currently, this is unused parameter. */
1369 uint8_t k; /*!< k value: range [1-4] */
1370 uint16_t cqiPmiCfgIdx; /*!< CQI-PMI configuration index. */
1373 #else /* TFU_UPGRADE */
1376 * @brief Periodic CQI Setup configuration parameters information
1378 /* Reference: 36.313: CQI-ReportPeriodic */
1379 typedef struct rgrUeDlPCqiSetup
1381 uint16_t cqiPResIdx; /*!< cqi-PUCCH-ResourceIndex (0.. 1185) */
1382 uint16_t cqiPCfgIdx; /*!< cqi-pmi-ConfigIndex (0..1023) */
1383 uint8_t cqiRepType; /*!< Wideband CQI = 1 Subband CQI =2 */
1384 uint8_t k; /*!< Ref: 36.213 [23, 7.2.2] (1..4).
1385 Valid only for Subband CQI */
1386 uint8_t riEna; /*!< Rand Indicator is Enabled TRUE(1) FALSE(0) */
1387 uint16_t riCfgIdx; /*!< ri-ConfigIndex (0..1023) */
1388 Bool sANCQI; /*!< simultaneousAckNackAndCQI TRUE(1) FALSE(0) */
1389 RgrPrdCqiMode prdModeEnum; /*!< Peiodic CQI reporting mode */
1394 * @brief Periodic CQI/PMI/RI configuration parameters information
1396 typedef struct rgrUeDlPCqiCfg
1398 uint8_t type; /*!< Setup(1) or Release(0) */
1399 RgrUeDlPCqiSetup cqiSetup; /*!< Periodic CQI Setup */
1404 /*rgr_x_001.main_11 MOD added comments*/
1406 * @ brief Different values for UL SRS BW information
1408 typedef enum rgrUlSrsBwInfo
1410 RGR_ULSRS_BW_0 = 0, /**< UL SRS BW info 0 */
1411 RGR_ULSRS_BW_1 = 1, /**< UL SRS BW info 1 */
1412 RGR_ULSRS_BW_2 = 2, /**< UL SRS BW info 2 */
1413 RGR_ULSRS_BW_3 = 3 /**< UL SRS BW info 3 */
1417 /*rgr_x_001.main_11 MOD added comments*/
1419 * @brief Different values for UL SRS Hoping BW information
1421 typedef enum rgrUlSrsHoBwInfo
1423 RGR_ULSRS_HOP_BW_0 = 0, /**< UL SRS Hopping BW info 0 */
1424 RGR_ULSRS_HOP_BW_1 = 1, /**< UL SRS Hopping BW info 1 */
1425 RGR_ULSRS_HOP_BW_2 = 2, /**< UL SRS Hopping BW info 2 */
1426 RGR_ULSRS_HOP_BW_3 = 3 /**< UL SRS Hopping BW info 3 */
1429 /*rgr_x_001.main_11 MOD added comments*/
1431 * @brief Different values for UL SRS Cyclic Shift information
1433 typedef enum rgrUlSrsCycShiftInfo
1435 RGR_ULSRS_CYSHIFT_0 = 0, /**< UL SRS Cyclic shift info 0 */
1436 RGR_ULSRS_CYSHIFT_1 = 1, /**< UL SRS Cyclic shift info 1 */
1437 RGR_ULSRS_CYSHIFT_2 = 2, /**< UL SRS Cyclic shift info 2 */
1438 RGR_ULSRS_CYSHIFT_3 = 3, /**< UL SRS Cyclic shift info 3 */
1439 RGR_ULSRS_CYSHIFT_4 = 4, /**< UL SRS Cyclic shift info 4 */
1440 RGR_ULSRS_CYSHIFT_5 = 5, /**< UL SRS Cyclic shift info 5 */
1441 RGR_ULSRS_CYSHIFT_6 = 6, /**< UL SRS Cyclic shift info 6 */
1442 RGR_ULSRS_CYSHIFT_7 = 7 /**< UL SRS Cyclic shift info 7 */
1443 } RgrUlSrsCycShiftInfo;
1446 /*rgr_x_001.main_11 MOD added comments*/
1448 * @brief SRS configuration setup parameters information.
1449 Reference 36.313 SoundingRS-UL-Config
1451 typedef struct rgrUeUlSrsSetupCfg
1453 uint16_t srsCfgIdx; /*!< SRS Configuration Index ISRS
1454 Ref: 36.213: Table 8.2-1; Range: 0-636*/
1455 RgrUlSrsBwInfo srsBw; /*!< SRS Bandwidth */
1456 RgrUlSrsHoBwInfo srsHopBw; /*!< SRS Hoping Bandwidth */
1457 RgrUlSrsCycShiftInfo cycShift; /*!< Cyclic Shift */
1458 Bool duration; /*!< Single(0) Infinite(1) */
1459 /*rgr_x_001.main_11 MOD added comments for doxygen*/
1460 Bool sANSrs; /*!< Simultaneous ACK/NACK and SRS. Note:
1461 This param is specified as a UE specific
1462 parameter though 3GPP TS36.331 specifies
1463 this as a cell-specific parameter. RRM
1464 should configure this parameter with the
1465 same value for all the UEs configured for
1467 /* rgr_x_001.main_13 - DEL - Removed the redeclaration of sANSrs and added the proper comment termination above */
1468 uint8_t txComb; /*!< Tranmission Comb: 0..1 */
1469 uint8_t fDomPosi; /*!< Frequency Domain Position */
1470 }RgrUeUlSrsSetupCfg;
1473 /*rgr_x_001.main_11 MOD added comments*/
1475 *@brief Dsr Trans maximum
1477 typedef enum rgrUeDsrTransMax
1479 RGR_DSR_TXMAX_4=4, /**< Dsr Trans maximum 4 */
1480 RGR_DSR_TXMAX_16=16, /**< Dsr Trans maximum 16 */
1481 RGR_DSR_TXMAX_32=32, /**< Dsr Trans maximum 32 */
1482 RGR_DSR_TXMAX_64=64 /**< Dsr Trans maximum 64 */
1487 * @brief SR Setup configuration parameters information
1489 typedef struct rgrUeSrSetupCfg
1491 uint16_t srResIdx; /*!< Range: 0-2047; Reference: SchedulingRequestConfig */
1492 uint8_t srCfgIdx; /*!< Range: 0 -155; Reference: SchedulingRequestConfig */
1493 /*ccpu00131601:DEL - dTMax will not be required by scheduler */
1497 * @brief SR configuration parameters information
1499 typedef struct rgrUeSrCfg
1501 Bool type; /*!< Release(0)/Setup(1) */
1502 RgrUeSrSetupCfg srSetup; /*!< SR Setup Configuration */
1505 /** @brief SRS configuration parameters information.
1506 Reference 36.313 SoundingRS-UL-Config
1508 typedef struct rgrUeUlSrsCfg
1510 uint8_t type; /*!< Release=0 Setup =1 */
1511 RgrUeUlSrsSetupCfg srsSetup; /*!< SRS Setup Configuration */
1515 #endif /*TFU_UPGRADE */
1517 #ifdef LTE_ADV/* Sprint 3*/
1518 typedef struct rgrUePucchFormat3Cfg
1520 uint8_t sCellAckN3ResAntP0Count;
1521 uint8_t sCellAckN3ResAntP1Count;
1522 uint16_t sCellAckN3ResAntP0[4];
1523 uint16_t sCellAckN3ResAntP1[4];
1524 }RgrUePucchFormat3Cfg;
1525 typedef struct rgrUePucchFormat1BCSCfg
1527 uint8_t sCellAckN1ResTb1Count; /* !< num of N1 res for TB1 */
1528 uint8_t sCellAckN1ResTb2Count; /* !< num of N1 res for TB2 */
1529 uint16_t sCellAckN1ResTb1[4]; /*!< TB1 N1 resources */
1530 uint16_t sCellAckN1ResTb2[4]; /* !< TB2 N1 resources */
1531 }RgrUePucchFormat1BCSCfg;
1532 typedef struct rgrUeSCellAckPucchCfg
1534 RgrSchFrmt1b3TypEnum pucchFormatType; /* !< 1B Channel selection or format 3*/
1537 RgrUePucchFormat1BCSCfg format1Bcs;
1538 RgrUePucchFormat3Cfg format3;
1540 }RgrUeSCellAckPucchCfg;
1542 /* rgr_x_001.main_10. Added changes of TFU_UPGRADE
1543 This structure was earlier included under MIMO flag. But it was not part
1544 of any structure. Now after TFU_UPGRADE inclusion this shall be used for
1545 for PUSCH Reception Request. */
1547 * @brief PUSCH dedicated configuration parameters information.
1549 typedef struct rgrUePuschDedCfg
1551 Bool pres; /*! Prsent TRUE(1)/FALSE(0) */
1552 uint8_t bACKIdx; /*! betaOffset-ACK-Index (0..15) */
1553 uint8_t bRIIdx; /*! betaOffset-RI-Index (0..15) */
1554 uint8_t bCQIIdx; /*! betaOffset-CQI-Index (0..15) */
1557 * @brief Downlink CQI reporting related configuration per UE
1559 typedef struct rgrUeDlCqiCfg
1561 RgrUeAprdDlCqiCfg aprdCqiCfg; /*!< Aperiodic CQI-related information */
1562 RgrUePrdDlCqiCfg prdCqiCfg; /*!< Periodic CQI-related configuration */
1565 * @brief Measurement Gap configuration for UE
1567 typedef struct rgrUeMeasGapCfg
1569 Bool isMesGapEnabled; /*!< Is Measuremnet Gap enabled or disabled */
1570 uint8_t gapPrd; /*!< Gap period 40ms/80ms */
1571 uint8_t gapOffst; /*!< Gap offset - Vaue is 0 to 1*/
1574 @brief DRX Long Cycle Offset */
1575 typedef struct rgrDrxLongCycleOffst
1577 uint16_t longDrxCycle; /*!< DRX Long Cycle value in subframes*/
1578 uint16_t drxStartOffst; /*!< DRX Long Cycle offset value in subframes*/
1579 } RgrDrxLongCycleOffst;
1582 * @brief DRX Short Cycle Offset */
1583 typedef struct rgrDrxShortDrx
1585 Bool pres; /*!< Short cycle is configured or not */
1586 uint16_t shortDrxCycle; /*!< DRX Short Cycle value in sub-frames*/
1587 uint8_t drxShortCycleTmr; /*!< Value in multiples of Short DRX Cycles*/
1591 * @brief DRX configuration for UE */
1592 typedef struct rgrUeDrxCfg
1594 Bool isDrxEnabled; /*!< To indicate if DRX enabled or
1595 not, this can be used in reconfiguration
1596 to release/stop the DRX (TRUE = Enabled)*/
1597 /*rgr_x_001.main_11 ADD added changes for R9*/
1598 /** @name LTEMAC_R9 */
1601 TknS32 cqiMask; /*!< To indicate if cqi-Mask is setup
1602 by higher layers. Currently supports
1606 uint16_t drxOnDurTmr; /*!< DRX On-duration Timer value in
1608 uint16_t drxInactvTmr; /*!< DRX Inactivity Timer value in
1610 uint16_t drxRetxTmr; /*!< DRX Retransmission Timer value in PDCCH
1612 RgrDrxLongCycleOffst drxLongCycleOffst; /*!< DRX Long cycle and offset, values in subframes */
1613 RgrDrxShortDrx drxShortDrx; /*!< DRX Short cycle value and offset */
1615 uint16_t emtcDrxUlRetxTmr; /*Rel13 Drx Ul Retx Timer */
1617 Bool drxOnDurTmrR13Pres;
1618 Bool drxRetxTmrR13Pres;
1623 * @brief UE capability Configuration */
1624 typedef struct rgrUeCapCfg
1626 uint8_t pwrClass; /*!< Power class per UE */
1627 Bool intraSfFeqHop; /*!< Intra subframe frequency hopping for PUSCH */
1628 Bool resAloocType1; /*!< Resource allocation type 1 for PDSCH */
1629 Bool simCqiAckNack; /*!< Simultaneous CQI and ACK/NACK on PUCCH */
1630 Bool txAntSel; /*!< TRUE if UE capable of doing TX Antenna selection */
1635 * @brief UE ACK/NACK configuration */
1636 typedef struct rgrUeAckNackRepCfg
1638 Bool isAckNackEnabled; /*!< Is ACK/NACK enabled? This
1639 variable can be used in reconfiguration
1640 also to stop/release the ACK/NACK
1642 uint16_t pucchAckNackRep; /*!< n1PUCCH-AN-Rep */
1643 RgrAckNackRepFactor ackNackRepFactor; /*!< ACK/NACK Repetition factor */
1644 } RgrUeAckNackRepCfg;
1647 @brief Transmission mode configuration per UE */
1648 typedef struct rgrUeTxModeCfg
1650 Bool pres; /*!< Indicates presence of transmission mode for UE */
1651 RgrTxModeTrnstn tmTrnstnState; /*!< State of Transmission Mode transition */
1652 /* rgr_x_001.main_9 - Added support for UE Reconfiguration */
1653 RgrTxMode txModeEnum; /*!< UE transmission mode */
1656 @brief Uplink HARQ configuration per UE */
1657 typedef struct rgrUeUlHqCfg
1659 uint8_t maxUlHqTx; /*!< Maximum number of UL HARQ transmissions */
1660 uint8_t deltaHqOffst; /*!< Delta HARQ offset
1661 Currently this is unused parameter */
1664 @brief Group power configuration per UE for PUCCH and PUSCH group power control */
1665 typedef struct rgrUeGrpPwrCfg
1667 Bool pres; /*!< Indicates presence of UE PUCCH/PUSCH group power configuration */
1668 CmLteRnti tpcRnti; /*!< TPC PUCCH/PUSCH RNTI for UE */
1669 uint8_t idx; /*!< Index for format 3/3A */
1672 @brief Uplink power configuration per UE */
1673 typedef struct rgrUeUlPwrCfg
1675 RgrUeGrpPwrCfg uePuschPwr; /*!< PUSCH group power configuration per UE */
1676 RgrUeGrpPwrCfg uePucchPwr; /*!< PUCCH group power configuration per UE */
1677 Bool isAccumulated; /*!< To indicate if accumulation is enabled */
1678 Bool isDeltaMCSEnabled; /*!< To indicate Delta MCS Enabled */
1679 S8 p0UePusch; /*!< P_0UE_PUSCH*/
1680 S8 p0UePucch; /*!< P_0_PUCCH*/
1681 uint8_t pSRSOffset; /*!< P_SRS_OFFSET
1682 Currently this is unused parameter */
1683 uint8_t trgCqi; /*!< CQI to aim for during PUSCH power
1684 * control. Zero indicates absence, where
1685 * cell-wide trgCqi is used */
1688 @brief Downlink/Uplink QoS configuration per UE */
1689 typedef struct rgrUeQosCfg
1691 Bool ambrPres; /*!< Indicates presence of AMBR */
1692 uint32_t dlAmbr; /*!< DL AMBR value for UE (bytes/sec): Optional */
1693 uint32_t ueBr; /*!< UL Byte Rate value for UE (bytes/sec): Optional */
1696 @brief Time Alignment timer configuration per UE */
1697 typedef struct rgrUeTaTmrCfg
1699 Bool pres; /*!< rgr_x_001.main_7: Pres=NOTPRSNT indicates taTmr INFINITY */
1700 uint16_t taTmr; /*!< Timer configuration (in subframes) */
1705 /* rgr_x_001.main_7: [ccpu00112398] Added periodicBSR-Timer and
1708 @brief BSR timer configuration per UE */
1709 typedef struct rgrUeBsrTmrCfg
1711 Bool isPrdBsrTmrPres; /*!< Indicates if periodic BSR timer is present
1713 uint16_t prdBsrTmr; /*!< periodicBSR-Timer configuration
1714 (in subframes): Value 0xFFFF indicates
1716 uint16_t retxBsrTmr; /*!< retxBSR-Timer configuration (in subframes)
1717 : Mandatory parameter */
1722 /*rgr_x_001.main_9 - Added support for SPS*/
1724 @brief DL SPS configuration parameters per UE */
1725 typedef struct rgrUeSpsDlCfg
1727 Bool isDlSpsEnabled; /*!< Bool indicating if DL SPS is enabled */
1728 uint8_t numSpsHqProc; /*!< Number of SPS harq Proc: Value in set
1730 uint8_t numPucchVal; /*!< Count for configured PUCCH values */
1731 uint32_t n1PucchVal[4]; /*!< Array of n1Pucch values */
1732 RgrSpsPrd dlSpsPrdctyEnum; /*!< Periodicity for DL SPS */
1733 uint16_t explicitRelCnt; /*!< Number of SPS ocassions with BO = 0 after
1734 which SPS is released */
1737 typedef struct rgrUlSpsLcInfo
1744 @brief UL SPS configuration parameters per UE */
1745 typedef struct rgrUeSpsUlCfg
1747 Bool isUlSpsEnabled; /*!< Bool indicating if UL SPS is
1749 RgrSpsImplRelCnt implicitRelCnt; /*!< Number of SPS ocassions after which
1750 implicit release happens */
1752 Bool twoIntervalCfg; /*!< Bool indicating if two interval
1753 config is enabled */
1755 Bool pwrCfgPres; /*!< Indicates if Power related
1756 configuration is present */
1759 S8 p0NominalPuschVal;/*!< Value in range [-126...24] */
1760 S8 p0UePuschVal; /*!< Value in range [-8....7] */
1762 RgrSpsPrd ulSpsPrdctyEnum; /*!< Periodicity for UL SPS */
1763 uint8_t lcCnt; /*!< Number of logical channels */
1764 RgrUlSpsLcInfo spsLcInfo[RGR_MAX_SPS_LC];/*!< Array of SPS logical channels -
1765 All these are assumed to be
1766 mapped onto SPS lcg with ID=1 */
1768 Bool isLcSRMaskEnab ; /*!< Logical Channel SR Mask Enable Flag*/
1774 @brief SPS configuration parameters per UE */
1775 typedef struct rgrUeSpsCfg
1777 CmLteRnti spsRnti; /*!< SPS-RNTI value */
1778 RgrUeSpsDlCfg dlSpsCfg; /*!< DL SPS configuration information */
1779 RgrUeSpsUlCfg ulSpsCfg; /*!< UL SPS configuration information */
1782 /** @brief Transmit Antenna selection types
1784 typedef enum rgrUeTxAntSelType
1786 RGR_UE_TX_ANT_OPENLOOP,
1787 RGR_UE_TX_ANT_CLOSEDLOOP
1788 } RgrUeTxAntSelType;
1790 @brief UE Transmit Antenna selection related configuration */
1791 typedef struct rgrUeTxAntSelCfg
1793 Bool pres; /*!< Configuration present */
1794 RgrUeTxAntSelType selType; /*!< Transmit Antenna selection type */
1798 /*rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
1799 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
1801 /* DL Power control related structures */
1804 @brief PUSH n CQI Reporting related configuration for an UE*/
1805 typedef struct rgrUeCqiReptCfg
1807 uint8_t numColltdCqiRept; /*!< Number of CQI reports to be sent in PUSH n
1812 @brief CQI for subband number subBandIdx */
1813 typedef struct rgrSubBandCqiInfo
1815 uint8_t cqi[2]; /*!< Subband CQI for two codewords */
1816 uint8_t subBandIdx; /*!< Index of the subband starting from 0,
1817 in ascending order of frequency */
1818 } RgrSubBandCqiInfo;
1820 /*rgr_x_001.main_11 ADD added changes for CQI management*/
1822 @brief A CQI Report used in PUSH n Reporting*/
1823 typedef struct rgrUeCqiRept
1825 uint8_t cqi[2]; /*!< Wideband CQI Value for two codewords*/
1826 uint8_t cqiMode; /*!< Reporting mode by which CQI was reported */
1827 RgrSubBandCqiInfo sbCqiInfo[RGR_MAX_DL_CQI_SUBBAND];
1828 uint8_t numSubBand;/*!< Number of Subbands for which CQI is
1832 /*rgr_x_001.main_11 ADD added changes for CQI management*/
1834 @brief Collated CQI reports */
1835 typedef struct RgrUeCqiInfo
1837 RgrUeCqiRept cqiRept[RGR_CQIRPTS_MAXN]; /*!< CQI reports */
1838 uint8_t numCqiRept; /*!< Number of CQI reports present */
1841 /*rgr_x_001.main_11 ADD added changes for CQI management*/
1843 @brief Status Indication structure passed in RgUiRgrStaInd primitive */
1844 typedef struct rgrStaIndInfo
1846 CmLteCellId cellId; /*!< Cell ID */
1847 CmLteRnti crnti; /*!< UE identifier UE ID: CRNTI */
1848 RgrUeCqiInfo ueCqiInfo; /*!< CQI reports*/
1852 /* LTE_ADV_FLAG_REMOVED_START */
1854 @brief LOAD INF Indication structure passed in RgUiRgrLoadInfInd primitive */
1855 typedef struct rgrLoadInfIndInfo
1857 CmLteCellId cellId; /*!< Cell ID */
1858 uint16_t bw; /*!< Bandwidth */
1862 TknStrOSXL rntpInfo; /*!< RNTP Info */
1863 uint32_t absLoadInfo[RGR_ABS_PATTERN_LEN];
1866 /* LTE_ADV_FLAG_REMOVED_END */
1869 /*rgr_x_001.main_11 ADD added changes for CQI management*/
1871 @brief Struct for P_A configuration per UE */
1872 typedef struct rgrUepACfg
1874 /* PA value in db */
1875 RgrUeDlPwrCntrlPaCfg pA; /*!< P_A Value which as used in equation pa =\
1876 delta_PowerOffset + P_A
1877 Ref: RRC 36.331, 6.3.2, PDSCH-Config*/
1878 Bool pAPrsnt; /*!< Indicates if pA has valid information */
1881 /*rgr_x_001.main_11 ADD added changes for CQI management*/
1882 typedef struct rgrUePdschDedCfg
1884 RgrUepACfg uepACfg; /*!< P_A Configuration,
1885 Ref: RRC 36.331, 6.3.2, PDSCH-Config*/
1890 /* LTE_ADV_FLAG_REMOVED_START */
1891 /* @brief UE Configuration for LTE Adv feature */
1892 typedef struct rgrLteAdvancedUeConfig
1895 Bool isUeCellEdge; /*! Flag to indicate UE is cell edge or cell center */
1896 Bool isAbsUe; /*! Flag to indicate ABS UE or Not */
1897 } RgrLteAdvancedUeConfig;
1898 /* LTE_ADV_FLAG_REMOVED_END */
1900 typedef enum RgrAccessStratumRls
1911 } RgrAccessStratumRls;
1914 #define RGR_MAX_EPDCCH_SET 2
1915 typedef struct rgrExtaddgrp2
1918 uint8_t csiNumRep;// MAPPING
1919 uint8_t mpddchPdschHop;
1920 uint8_t mpdcchStartUESSFDD;// MAPPING
1921 uint16_t mpdcchNumRep;// MAPPING
1922 uint32_t mpddchNB;//1.. maxAvailNarrowBands-r13
1925 typedef struct rgrRbAssignment
1927 uint8_t numPRBpairs; // MAPPING
1928 uint8_t rbAssignment[5];
1930 typedef struct rgrEpdcchAddModLst
1932 uint8_t setConfigId;
1933 uint8_t transmissionType;
1934 RgrRbAssignment resBlkAssignment;
1935 uint32_t dmrsScrambSeq;
1936 uint32_t pucchResStartoffset;
1937 TknUInt32 pdschRemapQLcfgId;
1938 TknUInt8 mpdcchNumPRBpair; // MAPPING
1939 RgrExtaddgrp2 extaddgrp2;
1940 }RgrEpdcchAddModLst;
1942 typedef struct rgrSubFrmPatCfg
1945 uint8_t measSfPatFDD[5];
1947 typedef struct rgrEpdcchConfigRel11
1950 RgrSubFrmPatCfg sfPtn;
1951 TknUInt32 startSymbolr11;
1952 RgrEpdcchAddModLst epdcchAddModLst[RGR_MAX_EPDCCH_SET];
1953 }RgrEpdcchConfigRel11;
1955 typedef struct rgrUeEmtcRecfg
1957 Bool isHdFddEnbld; /*!< Half Duplex FDD is configured: TRUE=1/FALSE=0 */
1959 typedef struct rgrPucchRepCfgRel13
1961 Bool isPucchRepPres;
1962 uint8_t modeANumPucchRepFormat1;
1963 uint8_t modeANumPucchRepFormat2;
1965 }RgrPucchRepCfgRel13;
1967 typedef struct rgrUeEmtcCfg
1969 Bool isHdFddEnbld; /*!< Half Duplex FDD is configured: TRUE=1/FALSE=0 */
1971 RgrEpdcchConfigRel11 emtcEpdcchCfg;
1972 RgrPucchRepCfgRel13 emtcPucchRepCfg;
1973 uint8_t pdschReptLevModeA;
1978 typedef struct rgrUe5gtfCfg
1990 @brief UE configuration */
1991 typedef struct rgrUeCfg
1993 CmLteCellId cellId; /*!< Cell ID */
1994 CmLteRnti crnti; /*!< UE ID: CRNTI */
1995 RgrUeTxModeCfg txMode; /*!< UE Transmission mode: Optional */
1996 RgrUeDlCqiCfg ueDlCqiCfg; /*!< UE DL CQI configuration */
1997 RgrUeUlHqCfg ueUlHqCfg; /*!< UE-related UL HARQ configuration */
1998 RgrUeUlPwrCfg ueUlPwrCfg; /*!< UE UL power configuration: Optional */
1999 RgrUeQosCfg ueQosCfg; /*!< UE-related Dl/UL QoS configuration: AMBR */
2000 RgrUeTaTmrCfg ueTaTmrCfg; /*!< UE TA timer configuration: Optional */
2004 /* rgr_x_001.main_7: [ccpu00112398] Added periodicBSR-Timer and
2006 RgrUeBsrTmrCfg ueBsrTmrCfg; /*!< UE BSR timer configuration:
2010 CmLteUeCategory ueCatEnum; /*!< UE category */
2011 /*rgr_x_001.main_11 ADD added changes for DRX*/
2013 RgrUeDrxCfg ueDrxCfg; /*!< UE-specific DRX configuration */
2015 Bool isTtiBundlEnabled;/*!< TtiBundling Enabled/Disabled for UE */
2016 RgrUeAckNackRepCfg ueAckNackCfg; /*!< ACK/NACK configuration for UE */
2017 RgrUeMeasGapCfg ueMesGapCfg; /*!< Measurement Gap configuration for UE */
2018 RgrUeCapCfg ueCapCfg; /*!< UE Capabilty reconfiguration */
2019 RgrCodeBookRstCfg ueCodeBookRstCfg; /*!< Number of bits in code book for
2020 transmission modes */
2021 TknUInt8 dedPreambleId; /*!< If present, then mapping exists at
2022 RGR user with CRNTI */
2023 /** @name LTE_TDD */
2026 RgrTddAckNackMode ackNackModeEnum; /*!< ACK/NACK Mode Bundling or
2028 #endif /* LTE_TDD */
2030 /*rgr_x_001.main_9 - Added support for SPS*/
2031 /** @name LTEMAC_SPS */
2033 RgrUeSpsCfg ueSpsCfg; /*!< SPS related configuration
2034 parameters for UE */
2036 /* rgr_x_001.main_10. Added changes of TFU_UPGRADE */
2037 /** @name TFU_UPGRADE */
2040 /* Periodic CQI, SRS, SR and HD-FDD Configuration */
2041 RgrUeUlSrsCfg srsCfg; /*!< SRS configuration information */
2042 RgrUeSrCfg srCfg; /*!< SR configuration information */
2045 /*rgr_x_001.main_11 ADD added changes for HDFDD*/
2046 /** @name LTEMAC_HDFDD */
2049 Bool isHdFddEnbld; /*!< Half Duplex FDD is configured: TRUE=1/FALSE=0 */
2050 #endif /* LTEMAC_HDFDD */
2052 /* rgr_x_001.main_8 - Changes for MIMO feature addition */
2053 /* rgr_x_001.main_9 - Removed dependency on MIMO compile-time flag */
2055 /* rgr_x_001.main_10. Added changes of TFU_UPGRADE */
2056 RgrUePuschDedCfg puschDedCfg; /*!< PUSCH -Configuration that is dedicated. Refer
2057 to 36.331 for more information */
2058 RgrUeTxAntSelCfg ulTxAntSel; /*!< UL Transmit antenna selection configuration */
2060 /** @name RGR_CQI_REPT */
2062 /* rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
2063 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
2065 RgrUeCqiReptCfg ueCqiReptCfg; /*!< PUSH n CQI Reporting
2070 RgrUePdschDedCfg uePdschDedCfg; /*!< PDSCH related dedicated configuration per UE */
2072 /* LTE_ADV_FLAG_REMOVED_START */
2073 RgrLteAdvancedUeConfig ueLteAdvCfg; /*!< LTE Adv configuration per UE */
2074 /* LTE_ADV_FLAG_REMOVED_END */
2075 RgrAccessStratumRls accessStratumRls; /*!< UE Access Stratum Release */
2076 uint8_t csgMmbrSta; /* CSG Membership status, refer RgrUeCsgMbrStatus */
2078 RgrUeEmtcCfg emtcUeCfg;
2081 RgrUe5gtfCfg ue5gtfCfg;
2085 @brief QCI, GBR, and MBR configuration for dedicated logical channels */
2086 typedef struct rgrLchQosCfg
2088 uint8_t qci; /*!< QCI for the logical channel.
2089 Valid Range:[0-255] (Actual QCI - 1). */
2090 uint32_t gbr; /*!< GBR value for a logical channel (bytes/sec). */
2091 uint32_t mbr; /*!< MBR value for a logical channel (bytes/sec). */
2093 /*rgr_x_001.main_9 - Added support for SPS*/
2095 @brief SPS related configuration for logical channels */
2096 typedef struct rgrLchSpsCfg
2098 Bool isSpsEnabled; /*!< Bool indicating if SPS is enabled for
2102 @brief Logical channel configuration information for downlink logical channels */
2103 typedef struct rgrDlLchCfg
2105 CmLteTrchType dlTrchType; /*!< Indicates type of DL transport channel:
2106 Validated only for BCCH at MAC
2107 DL Transport channel type can take following values:
2110 CM_LTE_TRCH_DL_SCH*/
2111 RgrLchQosCfg dlQos; /*!< DL QoS parameters: Only for dedicated channels */
2112 /*rgr_x_001.main_9 - Added support for SPS*/
2113 RgrLchSpsCfg dlSpsCfg; /*!< SPS configuration for DL logical channel */
2114 uint8_t rlcReorderTmr; /*!< RLC reordering timer required for LAA*/
2118 @brief Logical channel configuration information for uplink logical channels */
2119 typedef struct rgrUlLchCfg
2121 CmLteLcId lcId; /*!< LC ID for uplink logical channel*/
2122 uint8_t qci; /*!< QCI associated with LC ID */
2125 @brief Logical channel group configuration information for uplink logical channels */
2126 typedef struct rgrUlLcgCfg
2128 uint8_t lcgId; /*!< Logical channel group ID */
2129 /*rgr_x_001.main_11 ADD added changes for L2 measurements*/
2131 uint8_t numLch; /*!< Number of LC's for this group in Uplink */
2132 RgrUlLchCfg lchUlCfg[RGR_MAX_LC_PER_LCG]; /*!< Logical Channel details for
2134 #endif /*LTE_L2_MEAS */
2135 uint32_t gbr; /*!< Commulative UL GBR of all LC mapping to this LCG */
2136 uint32_t mbr; /*!< Commulative UL MBR of all LC mapping to this LCG */
2140 @brief Logical channel Uplink configuration information for dedicated channels */
2141 typedef struct rgrUlLchQciCfg
2143 CmLteLcId lcId; /*!< Logical channel ID */
2144 uint8_t qci; /*!< Qci */
2145 uint8_t lcgId; /*!< Logical channel group ID */
2149 @brief Logical channel configuration information for dedicated channels */
2150 typedef struct rgrLchCfg
2152 CmLteCellId cellId; /*!< Cell ID */
2153 CmLteRnti crnti; /*!< CRNTI for DTCH and DCCH */
2154 CmLteLcId lcId; /*!< Logical channel ID */
2155 CmLteLcType lcType; /*!< Identifies the Logical channel type.lcType
2156 can take the following values:
2162 RgrDlLchCfg dlInfo; /*!< Downlink logical channel configuration information */
2163 RgrUlLchQciCfg ulLchQciInfo; /*!< Uplink logical channel configuration information */
2164 uint8_t lcgId; /*!< Logical channel group ID */
2167 /** @brief Set of parameters for logical channelgroup Configuration */
2168 typedef struct rgrLcgCfg
2170 CmLteCellId cellId; /*!< Cell ID */
2171 CmLteRnti crnti; /*!< CRNTI for DTCH and DCCH */
2172 RgrUlLcgCfg ulInfo; /*!< Uplink logical channel configuration information */
2176 /** @brief Basic configuration structure at RRM */
2177 typedef struct rgrCfg
2179 uint8_t cfgType; /*!< Indicates configuration type */
2180 union /*!< cfgType is selector */
2182 RgrCellCfg cellCfg; /*!< Cell configuration */
2183 RgrUeCfg ueCfg; /*!< UE configuration */
2184 RgrLchCfg lchCfg; /*!< Dedicated logical channel configuration */
2185 RgrLcgCfg lcgCfg; /*!< Dedicated logical channel Group configuration */
2186 RgrSchedEnbCfg schedEnbCfg; /*!< EnodeB Sched Configurations */ //TODO:remove this
2187 MacSchedGnbCfg schedGnbCfg; /*!< gNB Sched Configurations */
2192 * @brief Activation time information */
2193 typedef struct rgrActvTime
2195 Bool pres; /*!< Indicates the presence of activation time */
2196 CmLteTimingInfo actvTime; /*!< Activation time information */
2200 /** @brief Cell reconfiguration structure at RRM */
2201 typedef struct rgrCellRecfg
2203 CmLteCellId cellId; /*!< Cell ID */
2204 uint32_t recfgTypes; /*!< Bitmask indicating reconfiguration types */
2205 RgrActvTime recfgActvTime; /*!< Activation Time for cell reconfiguration */
2206 RgrDlHqCfg dlHqRecfg; /*!< DL HARQ related reconfiguration */
2207 RgrCfiCfg cfiRecfg; /*!< CFI reconfiguration for PDCCH */
2208 /* rgr_x_001.main_1: Removing unwanted srMcs Configuration structure */
2209 RgrUlTrgCqiCfg trgUlCqi; /*!< Target UL CQI */
2210 RgrDlCmnCodeRateCfg dlCmnCodeRate; /*!< Coding rate for common DL channels:
2211 Expressed in multiples of 1024 */
2212 RgrPuschSubBandCfg puschSubBand; /*!< UL sub-band information */
2213 RgrUlCmnCodeRateCfg ulCmnCodeRate; /*!< Coding rate for common UL channels:
2214 Expressed in multiples of 1024 */
2215 RgrPucchCfg pucchRecfg; /*!< PUCCH configuration information */
2216 RgrSrsCfg srsRecfg; /*!< SRS configuration information */
2217 RgrRachCfg rachRecfg; /*!< RACH configuration */
2218 RgrDlfsCfg dlfsRecfg; /*!< Reconfiguration for DLFS scheduler */
2219 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
2220 /** @name RGR_SI_SCH */
2223 RgrSiCfg siReCfg; /*!<SI Re-Configuration structure */
2225 uint16_t t300TmrVal; /*!< t300Timer value configured in Frames */
2226 /* LTE_ADV_FLAG_REMOVED_START */
2227 RgrLteAdvancedCellConfig rgrLteAdvCfg; /*!< RGR Configuration of LTE Adv for a cell */
2228 /* LTE_ADV_FLAG_REMOVED_END */
2229 Bool isDynCfiEnb; /*!< To indicate whether Dynamic CFI is enabled
2231 Bool isAutoCfgModeEnb; /*!< To indicate whether AutoCfg mode is enabled
2233 RgrCellCsgParamCfg csgParamCfg; /*!< Cell-specific configuration for CSG */
2234 RgrCellCntrlCmdCfg cntrlCmdCfg; /*!< control cmds to alter this cell's performance */
2238 RgrEmtcCellCfg emtcCellReCfg;
2244 * @brief Structure to store SCell Index for activation
2247 * - sCellIdx : sCell Index in in list of Secondary cells
2249 typedef struct rgrSCellActDeactInfo
2251 uint8_t sCellIdx; /*!< sCell Index to be activated */
2252 }RgrSCellActDeactInfo;
2255 * @brief Structure to store details for activation/deactivation event
2258 * - crnti : Ue identifier used to get UE control block
2259 * - numOfSCells : Number of SCells to be Activated/Deactivated
2260 * - sCellActDeactInfo : Array of SCellsIdx
2262 typedef struct rgrSCellActDeactEvnt
2264 CmLteRnti crnti; /*!< UE ID: To fetch UeCb in a cell*/
2265 uint8_t numOfSCells; /* !<No of SCells to be Activated */
2266 RgrSCellActDeactInfo sCellActDeactInfo[RGR_MAX_SCELL_PER_UE];
2267 /* !<SCH SCell Activation Deactivation Information */
2268 } RgrSCellActDeactEvnt;
2272 * @brief Structure to store details for SCell UL PC Config
2275 * - isAccumulated : If TRUE Accumulation is ocnfigured
2276 * - isDeltaMCSEnabled : If TRUE DELTA MCS is enabled
2277 * - p0UePusch : P0 Nominal value
2278 * - pSRSOffset : SRS OFFSET value for SCELL
2280 typedef struct rgrUeUlPwrDedSCellCfg
2282 Bool isAccumulated; /*!< To indicate if accumulation is enabled */
2283 Bool isDeltaMCSEnabled; /*!< To indicate Delta MCS Enabled */
2284 S8 p0UePusch; /*!< P_0UE_PUSCH*/
2285 uint8_t pSRSOffset; /*!< P_SRS_OFFSET
2286 Currently this is unused parameter */
2288 } RgrUeUlPwrDedSCellCfg;
2291 /** @brief UE Downlink secondary cell config params */
2292 typedef struct rgrUeSecCellCfg
2295 uint16_t sCellId; /*!< This will be secondary cellId */
2296 TknUInt32 sCellDeActTmr; /*!< for Activating the sCell for UE */
2297 RgrUeDlCqiCfg ueSCellDlCqiCfg; /*!< Secondary cell dedicated configuration */
2299 RgrUePdschDedCfg uePdschDedCfg; /*!< Secondary cell dedicated configuration */
2301 RgrUeTxModeCfg txMode; /*!< UE transmission mode in Secondary
2303 Bool isUlCaEnabled; /*!<If TRUE ULCA is also enabled along with DL CA for
2305 RgrUeUlPwrDedSCellCfg ueSCellUlDedPwrCfg; /*!< UE UL DED ULPC Cfg */
2308 /** @brief Configuration information of Secondary cells for a UE*/
2309 typedef struct rgrUeSecCellInfo
2311 Bool useExtBSRSizes; /*!< If TRUE used R10 Extended BSR Size Table*/
2313 RgrUeSecCellCfg ueSCellDedCfg[RGR_MAX_SCELL_PER_UE]; /*!< Secondary cell configuration per
2317 /** @brief Configuration of every SCell for a UE*/
2318 typedef struct rgrUeDlSecCellRelInfo
2320 uint8_t sCellIdx; /*!< This will be secondary cell Idx */
2321 uint16_t sCellId; /*!< This will be secondary cellId */
2322 }RgrUeDlSecCellRelInfo;
2324 /** @brief Configuration for SCell Release for a UE*/
2325 typedef struct rgrUeSecCellRelInfo
2327 uint8_t numSCells; /*!< This will be the number of secondary cells*/
2328 RgrUeDlSecCellRelInfo ueSCellRelDedCfg[RGR_MAX_SCELL_PER_UE]; /*!< Secondary cell configuration per
2330 }RgrUeSecCellRelInfo;
2332 #endif /* LTE_ADV */
2334 @brief UE reconfiguration information */
2335 typedef struct rgrUeRecfg
2337 CmLteCellId cellId; /*!< Cell ID */
2338 CmLteRnti oldCrnti; /*!< Old UE ID */
2339 CmLteRnti newCrnti; /*!< New UE ID: This value must match
2340 'oldCrnti', if no CRNTI change during reconfiguration */
2341 /*rgr_x_001.main_11 : changing RecfgTypes to uint32_t
2342 * as all 16 bits are exhausted*/
2343 /* LTE_ADV_FLAG_REMOVED_START */
2344 /* KW fix for LTE_ADV */
2345 uint32_t ueRecfgTypes; /*!< Bitmask indicating UE reconfiguration items */
2346 /* LTE_ADV_FLAG_REMOVED_END */
2347 RgrUeTxModeCfg txMode; /*!< UE transmission mode */
2348 RgrUeAprdDlCqiCfg aprdDlCqiRecfg; /*!< Aperiodic CQI-related information */
2350 RgrUePrdDlCqiCfg prdDlCqiRecfg; /*!< Periodic CQI-related configuration */
2352 RgrUeUlHqCfg ueUlHqRecfg; /*!< UE UL HARQ information */
2353 RgrUeQosCfg ueQosRecfg; /*!< UE-related Dl/UL QoS configuration: AMBR */
2354 RgrUeTaTmrCfg ueTaTmrRecfg; /*!< UE TA timer information */
2358 /* rgr_x_001.main_7: [ccpu00112398] Added periodicBSR-Timer and
2360 RgrUeBsrTmrCfg ueBsrTmrRecfg; /*!< UE BSR timer reconfiguration */
2363 RgrUeUlPwrCfg ueUlPwrRecfg; /*!< UE UL power configuration */
2364 /*rgr_x_001.main_11 ADD added changes for DRX*/
2366 RgrUeDrxCfg ueDrxRecfg; /*!< UE-specific DRX configuration
2367 Currently this is unused */
2368 /*rgr_x_001.main_12 - REM - isTtiBundlEnabled redundant field*/
2370 Bool isTtiBundlEnabled; /*!< TTI Bundling Enabled/Disabled for UE
2371 Currently this is unused */
2372 RgrUeAckNackRepCfg ueAckNackRecfg; /*!< ACK/NACK configuration for UE */
2373 RgrUeCapCfg ueCapRecfg; /*!< UE Capabilty reconfiguration*/
2374 RgrUeMeasGapCfg ueMeasGapRecfg; /*!< Measurement Gap configuration for UE */
2375 RgrCodeBookRstCfg ueCodeBookRstRecfg;/*!< Number of bits in code book for
2376 transmission modes */
2377 /* rgr_x_001.main_9 - Added support for UE Reconfiguration */
2378 CmLteUeCategory ueCatEnum; /*!< UE category */
2379 RgrUeTxAntSelCfg ulTxAntSel; /*!< UL Transmit antenna selection configuration */
2381 /*rgr_x_001.main_9 - Added support for SPS*/
2382 /** @name LTEMAC_SPS */
2384 RgrUeSpsCfg ueSpsRecfg; /*!< UE SPS reconfiguration */
2386 /* rgr_x_001.main_10. Added changes of TFU_UPGRADE */
2387 /** @name TFU_UPGRADE */
2391 /* Periodic CQI, SRS, SR and HD-FDD Reconfiguration */
2393 RgrUePrdDlCqiCfg cqiCfg; /*!< Periodic CQI PMI RI reconfiguration information */
2394 RgrUeUlSrsCfg srsCfg; /*!< SRS reconfiguration information */
2395 RgrUeSrCfg srCfg; /*!< SR reconfiguration information */
2398 /*rgr_x_001.main_11 ADD added changes for HDFDD*/
2399 /** @name LTEMAC_HDFDD */
2402 Bool isHdFddEnbld; /*!< Half Duplex FDD is configured: TRUE=1/FALSE=0 */
2403 #endif /* LTEMAC_HDFDD */
2405 /* rgr_x_001.main_10. Added changes of TFU_UPGRADE */
2406 RgrUePuschDedCfg puschDedCfg; /*!< PUSCH Configuration that is dedicated.
2407 Refer to 36.331 for more information */
2408 /** @name RGR_CQI_REPT */
2410 /* rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
2411 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
2413 RgrUeCqiReptCfg ueCqiReptCfg; /*!< PUSH n CQI Reporting configuration */
2417 RgrUePdschDedCfg uePdschDedCfg; /*!< PDSCH related dedicated configuration per UE */
2419 /* LTE_ADV_FLAG_REMOVED_START */
2420 RgrLteAdvancedUeConfig ueLteAdvCfg; /*!< LTE Adv configuration per UE */
2421 /* LTE_ADV_FLAG_REMOVED_END */
2424 RgrUeSecCellInfo ueSCellCfgInfo;/*!< Secondary cell dedicated informaton
2426 RgrUeSCellAckPucchCfg sCellAckN1ResCfg; /*!< N1ResCfg for SCell ack feedback */
2427 uint8_t simulAckNackCQIFormat3;
2428 #endif /* LTE_ADV */
2429 RgrAccessStratumRls accessStratumRls; /*!< UE Access Stratum Release */
2430 uint8_t csgMmbrSta; /* CSG Membership status, refer RgrUeCsgMbrStatus */
2432 RgrUeEmtcRecfg emtcUeRecfg;
2436 @brief Logical channel reconfiguration information for dedicated channels only */
2437 typedef struct rgrLchRecfg
2439 CmLteCellId cellId; /*!< Cell ID */
2440 CmLteRnti crnti; /*!< CRNTI for DTCH and DCCH */
2441 CmLteLcId lcId; /*!< Logical channel ID */
2442 /*rgr_x_001.main_9 - Added support for SPS*/
2443 uint8_t recfgTypes; /*!< Reconfiguration type for DL LC */
2445 /** @brief Reconfiguration Parameters during the DownLink */
2448 RgrLchQosCfg dlQos; /*!< DL QoS parameters */
2449 /*rgr_x_001.main_9 - Added support for SPS*/
2450 RgrLchSpsCfg dlSpsRecfg; /*!< SPS re-configuration for DL logical channel */
2451 } dlRecfg; /*!< Downlink logical channel reconfiguration information */
2453 RgrUlLchQciCfg ulLchQciInfo;
2454 uint8_t lcgId; /*!< Logical channel group ID */
2457 /** @brief Set of parameters Corresponding To Logical channel group Reconfiguration */
2458 typedef struct rgrLcgRecfg
2460 CmLteCellId cellId; /*!< Cell ID */
2461 CmLteRnti crnti; /*!< CRNTI for DTCH and DCCH */
2462 /** @brief Uplink Reconfiguration Parameters for logical channel Groups */
2465 uint8_t lcgId; /*!< Logical channel group ID */
2467 uint8_t numLch; /*!< Number of LC's for this group in Uplink */
2468 RgrUlLchCfg lchUlCfg[RGR_MAX_LC_PER_LCG]; /*!< Logical Channel details for
2470 #endif /*LTE_L2_MEAS */
2471 uint32_t gbr; /*!< Commulative UL GBR of all LC mapping to this LCG */
2472 uint32_t mbr; /*!< Commulative UL MBR of all LC mapping to this LCG */
2476 /** @brief Basic reconfiguration structure at RRM */
2477 typedef struct rgrRecfg
2479 uint8_t recfgType; /*!< Indicates reconfiguration type */
2480 union /*!< Reconfiguration type is selector */
2482 RgrCellRecfg cellRecfg; /*!< Cell reconfiguration */
2483 RgrUeRecfg ueRecfg; /*!< UE reconfiguration information */
2484 RgrLchRecfg lchRecfg; /*!< Logical channel reconfiguration information */
2485 RgrLcgRecfg lcgRecfg; /*!< Logical group reconfiguration information */
2489 @brief Basic Delete information for MAC */
2490 typedef struct rgrDel
2492 uint8_t delType; /*!< Indicates configuration item to be deleted */
2493 /** @brief Indicates The Cell/UE/Logical Channel Group to be deleted */
2496 /** @brief Delete The Cell ID */
2499 CmLteCellId cellId; /*!< Cell ID */
2500 } cellDel; /*!< Cell Delete information */
2502 /** @brief Delete The Ue From The Cell */
2505 CmLteCellId cellId; /*!< Cell ID */
2506 CmLteRnti crnti; /*!< UE ID: CRNTI */
2507 } ueDel; /*!< UE Delete information */
2509 /** @brief Delete The Logical Channels */
2512 CmLteCellId cellId; /*!< Cell ID */
2513 CmLteRnti crnti; /*!< CRNTI for DTCH and DCCH */
2514 CmLteLcId lcId; /*!< Logical channel ID */
2515 uint8_t lcgId; /*!< Logical channel group ID */
2516 } lchDel; /*!< Logical channel delete information */
2518 /** @brief Delete The Logical channel groups */
2521 CmLteCellId cellId; /*!< Cell ID */
2522 CmLteRnti crnti; /*!< CRNTI for DTCH and DCCH */
2523 uint8_t lcgId; /*!< Logical channel group ID */
2526 /** @brief Delete Secondary cell for a UE */
2527 struct rgrUeScellRel
2529 CmLteCellId cellId; /*!< Cell ID */
2530 CmLteRnti crnti; /*!< UE ID: CRNTI */
2531 uint32_t ueDelTypes; /*!< Bitmask indicating UE reconfiguration items */
2532 RgrUeSecCellRelInfo ueSCellRelCfgInfo;/*!< Secondary cell dedicated informaton*/
2535 } u; /*!< Union of Cell/UE/Lch delete information */
2538 @brief UE RESET info for MAC */
2539 typedef struct rgrRst
2541 CmLteCellId cellId; /*!< Cell ID */
2542 CmLteRnti crnti; /*!< UE ID: CRNTI tobe RESET */
2545 typedef enum rgrSonCfgType
2550 /* Pa enum -6, -4.77, -3, -1.77, 0, 1, 2, 3 dB and -INF */
2551 typedef enum rgrPaVal
2564 /* Pa level enum High, Normal, Low */
2565 typedef enum rgrPaLevel
2574 @brief PRB configuration received from SON for MAC */
2576 typedef struct rgrPrbCfg
2578 uint8_t isSonIcicEnable;
2579 uint8_t numCellEdgeUEs;
2580 uint8_t numCellCentreUEs;
2581 CmLteRnti cellEdgeUe[RG_SCH_MAX_UE]; /*!< List of cell Edge UE's */
2582 CmLteRnti cellCentreUe[RG_SCH_MAX_UE]; /*!< List of cell centre UE's */
2583 RgrPaLevel paLevelPerPrb[RGR_SCH_MAX_PA_PER_PRB]; /*!< Mapping of PRB to Pa Values */
2587 @brief configuration received from SON for MAC */
2588 typedef struct rgrSonCfg
2590 RgrSonCfgType cfgType;
2597 /** @brief Basic RGR configuration/reconfiguration info at RRM */
2598 typedef struct rgrCfgReqInfo
2601 uint8_t action; /*!< Determines configuration/reconfiguration */
2602 union /*!< Action is selector */
2604 RgrCfg cfgInfo; /*!< Configuration information at RRM */
2605 RgrRecfg recfgInfo; /*!< Reconfiguration information at RRM */
2606 RgrDel delInfo; /*!< Deletion related information */
2607 RgrRst rstInfo; /*!< UE information to be REST */
2608 RgrSonCfg sonCfg; /*!< PA and PRB configuration received from SON*/
2610 RgrSCellActDeactEvnt sCellActDeactEvnt; /*!< SCell Activation Information */
2611 #endif /* LTE_ADV */
2615 /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
2616 /** @name RGR_RRM_TICK */
2618 /** @brief This structure contains information that is passed as part of the TTI
2619 * indication sent from PHY to MAC.
2621 typedef struct rgrTtiIndInfo
2623 CmLteCellId cellId; /*!< Cell ID */
2624 uint16_t hSfn; /*!< Hyper System Frame Number */
2625 uint16_t sfn; /*!< System Frame Number */
2629 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
2630 /** @name RGR_SI_SCH */
2633 /** @brief This structure contains parameters used for specifying SI
2634 * configuration to MAC-Scheduler by RRM as a part of primitive
2637 typedef struct rgrSiCfgReqInfo
2639 CmLteCellId cellId; /*! Cell Id */
2640 RgrSiCfgType cfgType; /*! MIB/SIB1/SI */
2641 uint8_t siId; /*! SI ID, if cfgType is SI.
2642 SI ID starts from 1 */
2643 Buffer *pdu; /*! PDU, one of MIB/SIB1/SI */
2646 /** @brief This structure contains parameters used for specifying SI
2647 * configuration to MAC-Scheduler by RRM as a part of primitive
2648 * RgUiRgrWarningSiCfgReq.
2650 typedef struct rgrWarningSiCfgReqInfo
2652 uint8_t emtcEnable; /*! indicates EMTC enabled or not */
2653 CmLteCellId cellId; /*! Cell Id */
2654 uint8_t siId; /*! SI ID */
2655 CmLListCp siPduLst; /*! list of PDUs,each corresponding to one segment*/
2656 }RgrWarningSiCfgReqInfo;
2658 typedef struct rgrSegmentInfo
2660 CmLList cmasSegPduLstLnk;
2665 #endif /*RGR_SI_SCH*/
2667 #define RGR_UESTA_MAC_CRNTI_CE_RECVD 0x01
2668 #define RGR_UESTA_MAC_CRNTI_CE_RECVD_IN_SPS_ACTIVE 0x02
2670 @brief Status Indication structure passed in RgUiRgrUeStaInd primitive */
2671 typedef struct rgrUeStaIndInfo
2673 CmLteCellId cellId; /*!< Cell ID */
2674 CmLteRnti crnti; /*!< UE identifier UE ID: CRNTI */
2675 uint8_t status; /*!< Status */
2680 /* LTE_ADV_FLAG_REMOVED_START */
2681 /** @brief This structure contains parameters used for specifying Load Inf
2682 * i.e RNTP, ABS etc configuration to MAC-Scheduler by RRM as a part of primitive
2683 * RgUiRgrLoadInfReq.
2685 typedef struct rgrLoadInfReqInfo
2687 CmLteCellId cellId; /*! Cell Id */
2688 uint8_t rgrCcPHighStartRb; /*! Start RB for power high cell centre user */
2689 uint8_t rgrCcPHighEndRb; /*! End RB for power high cell centre use */
2691 /* LTE_ADV_FLAG_REMOVED_END */
2698 /** @brief Request from RRM to MAC to bind the interface SAPs .
2700 * @details This Primitive is used to bind The SAPs between RRM and the MAC.
2701 * The API validates the Sap Ids , contents of the pst Structure .
2703 * @param[in] pst Pointer To the Post Structure.
2704 * @param[in] suId SAP Id of the Service User.
2705 * @param[in] spId SAP Id of the Service Provider
2706 * @return ROK/RFAILED
2709 typedef S16 (*RgrBndReq) ARGS((
2714 /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
2715 /** @name RGR_RRM_TICK */
2718 /** @brief Indication from MAC to a RGR User about the Transmit Time Interval.
2720 * @details This Primitive is used to indicate RRM after every TTI.
2721 * API validates the post Structure and TTI Timing .
2723 * @param[in] pst Pointer To the Post Structure.
2724 * @param[in] suId SAP Id of the Service User.
2725 * @param[in] ttiInd Pointer To a structure containing additional Information that is passed
2726 * as a part of TTI Indication.
2727 * @return ROK/RFAILED
2730 typedef S16 (*RgrTtiInd) ARGS((
2733 RgrTtiIndInfo *ttiInd));
2736 /** @brief Confirmation from MAC to RRM for the bind request for the interface SAPs.
2738 * @details This Primitive is used To confirm the binding between the MAC and The RRM.
2740 * @param[in] pst Pointer To the Post Structure.
2741 * @param[in] suId SAP Id of the Service User.
2742 * @param[in] status Binding Status.
2743 * @return ROK/RFAILED
2745 typedef S16 (*RgrBndCfm) ARGS((
2750 /** @brief Request from RRM to MAC to unbind the interface SAPs.
2752 * @details This Primitive is used to unbind MAC and The RRM.It validates on the SAP If its already Bound
2753 * and unbinds the SAP.
2755 * @param[in] pst Pointer to the Post Structure.
2756 * @param[in] spId SAP Id of the Service Provider.
2757 * @param[in] reason Cause for unbinding.
2758 * @return ROK/RFAILED
2760 typedef S16 (*RgrUbndReq) ARGS((
2765 /** @brief Configuration request from RRM to MAC for configuring Cell/UE/LC.
2767 * @details This API is used to configure a scheduler for a UE/Cell/Logical Channels
2769 * @param[in] pst Pointer to the Post Structure.
2770 * @param[in] spId SAP Id of the Service Provider.
2771 * @param[in] transId Reason for unbinding.
2772 * @param[in] cfgReqInfo A Pointer to Configuration/Reconfiguration Structure.
2773 * @return ROK/RFAILED
2775 typedef S16 (*RgrCfgReq) ARGS((
2777 RgrCfgTransId transId,
2778 RgrCfgReqInfo * cfgReqInfo));
2780 S16 cmPkRgrCfgCfm ARGS((
2782 RgrCfgTransId transId,
2786 /** @brief Configuration confirm from MAC to RRM.
2788 * @details This API confirms the RGR User about the status of the Configuration.
2790 * @param[in] pst Pointer to the Post Structure.
2791 * @param[in] spId SAP Id of the Service User.
2792 * @param[in] transId Transaction Id for the transaction between RRM and MAC
2793 * @param[in] status Configuration confirmation status Information.
2794 * @return ROK/RFAILED
2796 typedef S16 (*RgrCfgCfm) ARGS((
2798 RgrCfgTransId transId,
2800 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
2802 /** @name RGR_SI_SCH */
2805 /** @brief SI Configuration Request primitive for SI configuration
2807 * @details This API is used to configure the System Information from RRM to a MAC scheduler.
2809 * @param[in] pst Pointer to the Post Structure.
2810 * @param[in] spId SAP Id of the Service Provider.
2811 * @param[in] transId Transaction Id for the transaction between RRM and MAC.
2812 * @param[in] siCfgReq Parameters for the configuration.
2813 * @return ROK/RFAILED
2815 typedef S16 (*RgrSiCfgReq) ARGS((
2818 RgrCfgTransId transId,
2819 RgrSiCfgReqInfo *siCfgReq));
2821 /** @brief SI Configuration Confirm Primitive for configuring Cell/UE/LC
2823 * @details This API confirms the SI configuration confirm in the status indication.
2825 * @param[in] pst Pointer to a post structure.
2826 * @param[in] suId SAP Id of the Service User.
2827 * @param[in] transId Transaction Id between the MAC and The RRM.
2828 * @param[in] status Confirmation status information from the MAC to the user.
2829 * @return ROK/RFAILED.
2831 typedef S16 (*RgrSiCfgCfm) ARGS((
2834 RgrCfgTransId transId,
2837 /** @brief SI Configuration Request primitive for warning SI configuration
2839 * @details This API is used to configure the System Info (SIB10,SIB11,SIB12)
2840 * from RRM to a MAC scheduler.
2842 * @param[in] pst Pointer to the Post Structure.
2843 * @param[in] spId SAP Id of the Service Provider.
2844 * @param[in] transId Transaction Id between the MAC and The RRM.
2845 * @param[in] WarningsiCfgReq Parameters for the configuration.
2846 * @return ROK/RFAILED
2848 typedef S16 (*RgrWarningSiCfgReq) ARGS((
2851 RgrCfgTransId transId,
2852 RgrWarningSiCfgReqInfo *warningSiCfgReq));
2855 /** @brief Warning SI Configuration Confirm Primitive
2857 * @details This API confirms the Warning SI configuration confirm in the
2858 * status indication.
2860 * @param[in] pst Pointer to a post structure.
2861 * @param[in] suId SAP Id of the Service User.
2862 * @param[in] transId Transaction Id between the MAC and The RRM.
2863 * @param[in] siId SI ID
2864 * @param[in] status Confirmation status information from the MAC to the user.
2865 * @return ROK/RFAILED.
2867 typedef S16 (*RgrWarningSiCfgCfm) ARGS((
2870 RgrCfgTransId transId,
2874 /** @brief SI Configuration stop Request primitive for warning SI configuration
2876 * @details Used to stop the System Information(SIB10, SIB11, SIB12) from RRM
2879 * @param[in] pst Pointer to the Post Structure.
2880 * @param[in] spId SAP Id of the Service Provider.
2881 * @param[in] siId siId to be stopped.
2882 * @return ROK/RFAILED
2884 typedef S16 (*RgrWarningSiStopReq) ARGS((
2887 RgrCfgTransId transId,
2890 #endif /*RGR_SI_SCH*/
2893 /* LTE_ADV_FLAG_REMOVED_START */
2894 /** @brief LOAD INF Configuration Request primitive for RNTP, ABS etc Configuration
2896 * @details This API is used to configure the LOAD INF parameters from RRM to a MAC scheduler.
2898 * @param[in] pst Pointer to the Post Structure.
2899 * @param[in] spId SAP Id of the Service Provider.
2900 * @param[in] transId Transaction Id for the transaction between RRM and MAC.
2901 * @param[in] loadInfReq Parameters for the configuration.
2902 * @return ROK/RFAILED
2904 typedef S16 (*RgrLoadInfReq) ARGS((
2907 RgrCfgTransId transId,
2908 RgrLoadInfReqInfo *loadInfReq));
2909 /* LTE_ADV_FLAG_REMOVED_END */
2912 /* rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
2913 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
2915 typedef S16 (*RgrStaInd) ARGS((
2918 RgrStaIndInfo *staInd));
2921 /* LTE_ADV_FLAG_REMOVED_START */
2922 typedef S16 (*RgrLoadInfInd) ARGS((
2925 RgrLoadInfIndInfo *loadInfInd));
2926 /* LTE_ADV_FLAG_REMOVED_END */
2928 typedef S16 (*RgrUeStaInd) ARGS((
2931 RgrUeStaIndInfo *staInd));
2934 /** @brief Request from RRM to MAC to bind the interface SAPs.
2936 * @details This API is invoked by RRM towards MAC to bind RGR SAP.
2937 * This API validates the Pst, spId, suId and sends the bind confirm to
2940 *@param[in] pst Pointer to a post structure.
2941 *@param[in] suId SAP Id of the Service User.
2942 *@param[in] spId SAP Id of the Service Provider.
2943 *@return ROK/RFAILED
2945 S16 RgUiRgrBndReq ARGS((
2950 /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
2951 /** @name RGR_RRM_TICK */
2953 /** @brief TTI Indication from Scheduler to RRM.
2955 * @details TTI Indication from MAC to RGR User.
2957 * @param[in] pst Pointer to a post structure.
2958 * @param[in] suId SAP Id of the Service User.
2959 * @param[in] ttiInd Parameters containing the information on TTI Indication.
2960 * @return ROK/RFAILED
2962 S16 RgUiRgrTtiInd ARGS((
2965 RgrTtiIndInfo *ttiInd
2969 /*rgr_x_001.main_9 - Added support for SPS*/
2970 S16 cmPkRgrSpsCellCfg ARGS((
2971 RgrSpsCellCfg *param,
2974 S16 cmUnpkRgrSpsDlCellCfg ARGS((
2975 RgrSpsCellCfg *param,
2978 S16 cmPkRgrUeSpsDlCfg ARGS((
2979 RgrUeSpsDlCfg *param,
2982 S16 cmUnpkRgrUeSpsDlCfg ARGS((
2983 RgrUeSpsDlCfg *param,
2986 S16 cmPkRgrUeSpsUlCfg ARGS((
2987 RgrUeSpsUlCfg *param,
2990 S16 cmUnpkRgrUeSpsUlCfg ARGS((
2991 RgrUeSpsUlCfg *param,
2994 S16 cmPkRgrUeSpsCfg ARGS((
2998 S16 cmUnpkRgrUeSpsCfg ARGS((
3002 S16 cmPkRgrLchSpsCfg ARGS((
3003 RgrLchSpsCfg *param,
3006 S16 cmUnpkRgrLchSpsCfg ARGS((
3007 RgrLchSpsCfg *param,
3011 /*rgr_x_001.main_11 ADD added changes for L2 measurements*/
3012 S16 cmPkRgrUlLchCfg ARGS((
3016 S16 cmUnpkRgrUlLchCfg ARGS((
3020 S16 cmPkRgrUlLchQciCfg ARGS((
3021 RgrUlLchQciCfg *param,
3024 S16 cmUnpkRgrUlLchQciCfg ARGS((
3025 RgrUlLchQciCfg *param,
3030 /*rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
3031 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
3033 S16 cmPkRgrUeCqiReptCfg ARGS((
3034 RgrUeCqiReptCfg *param,
3038 S16 cmUnpkRgrUeCqiReptCfg ARGS((
3039 RgrUeCqiReptCfg *param,
3043 S16 cmUnpkRgrSubBandCqiInfo ARGS((
3044 RgrSubBandCqiInfo *param,
3048 S16 cmPkRgrStaInd ARGS((
3051 RgrStaIndInfo* staInd
3054 S16 cmUnpkRgrStaInd ARGS((
3060 S16 cmPkRgrStaIndInfo ARGS((
3061 RgrStaIndInfo *param,
3065 S16 cmUnpkRgrStaIndInfo ARGS((
3066 RgrStaIndInfo *param,
3070 S16 cmPkRgrUeCqiInfo ARGS((
3071 RgrUeCqiInfo *param,
3075 S16 cmUnpkRgrUeCqiInfo ARGS((
3076 RgrUeCqiInfo *param,
3080 S16 cmPkRgrUeCqiRept ARGS((
3081 RgrUeCqiRept *param,
3085 S16 cmPkRgrSubBandCqiInfo ARGS((
3086 RgrSubBandCqiInfo *param,
3090 S16 cmUnpkRgrUeCqiRept ARGS((
3091 RgrUeCqiRept *param,
3096 /* LTE_ADV_FLAG_REMOVED_START */
3097 S16 cmPkRgrLoadInfInd ARGS((
3100 RgrLoadInfIndInfo* loadInfInd
3103 S16 cmUnpkRgrLoadInfInd ARGS((
3109 S16 cmPkRgrLoadInfIndInfo ARGS((
3110 RgrLoadInfIndInfo *param,
3114 S16 cmUnpkRgrLoadInfIndInfo ARGS((
3115 RgrLoadInfIndInfo *param,
3116 Pst *pst, /* dsfr_pal_fixes ** 21-March-2013 ** SKS */
3119 /* LTE_ADV_FLAG_REMOVED_END */
3122 S16 cmPkRgrUePdschDedCfg ARGS((
3123 RgrUePdschDedCfg *param,
3127 S16 cmUnpkRgrUePdschDedCfg ARGS((
3128 RgrUePdschDedCfg *param,
3132 S16 cmPkRgrUepACfg ARGS((
3137 S16 cmUnpkRgrUepACfg ARGS((
3144 S16 cmPkRgrUeSecCellInfo ARGS((
3145 RgrUeSecCellInfo *param,
3149 S16 cmUnpkRgrUeSecCellInfo ARGS((
3150 RgrUeSecCellInfo *param,
3154 S16 cmPkRgrUeDlSecCellRelInfo ARGS((
3155 RgrUeDlSecCellRelInfo *param,
3159 S16 cmUnpkRgrUeDlSecCellRelInfo ARGS((
3160 RgrUeDlSecCellRelInfo *param,
3164 S16 cmPkRgrUeSecCellRelInfo ARGS((
3165 RgrUeSecCellRelInfo *param,
3169 S16 cmUnpkRgrUeSecCellRelInfo ARGS((
3170 RgrUeSecCellRelInfo *param,
3175 S16 cmPkRgrUeSCellAckPucchCfg ARGS((
3176 RgrUeSCellAckPucchCfg *param,
3180 S16 cmUnpkRgrUeSCellAckPucchCfg ARGS((
3181 RgrUeSCellAckPucchCfg *param,
3184 #endif /* LTE_ADV */
3186 /** @brief Confirmation from MAC to RRM for the bind request.
3188 * @details Confirmation from MAC to RRM for the bind
3189 * request for the interface saps. This function indicates it through the status To the User.
3191 * @param[in] pst Pointer to a post structure.
3192 * @param[in] suId SAP Id of the Service User.
3193 * @param[in] status Confirmation status for the RGR User.
3194 * @return ROK/RFAILED
3196 S16 RgUiRgrBndCfm ARGS((
3202 /** @brief Request from RRM to MAC to unbind the interface SAPs.
3204 * @details This API is invoked by RRM towards MAC to unbind RGR SAP.
3205 * This API validates the Pst, spId, suId and sends the unbdind confirm to
3207 * @param[in] pst Pointer To a post structure.
3208 * @param[in] spId Service provider SAP Id.
3209 * @param[in] reason Cause for the Unbinding.
3210 * @return ROK/RFAILED.
3212 S16 RgUiRgrUbndReq ARGS((
3218 /** @brief Configuration Confirm from MAC to RRM.
3220 * @details In this API crnti, preambleId, and
3221 * maskId are returned to RRM if request does not contain crnti (For Handover purpose)
3223 * @param[in] pst A pointer to post Structure.
3224 * @param[in] transId MAC to RRM User transaction Id.
3225 * @param[in] status Status indication from the MAC.
3226 * @return ROK/RFAILED
3228 S16 RgUiRgrCfgCfm ARGS((
3230 RgrCfgTransId transId,
3233 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
3234 /** @name RGR_SI_SCH */
3237 /** @brief SI Configuration Request primitive used for SI configuration
3238 * from RRM to MAC-Scheduler.
3240 * @details This primitive specifies the PDU
3241 * (MIB/SIB1/SIs) and the associated parameters in the structure
3244 * @param[in] pst Pointer to a post Structure.
3245 * @param[in] spId SAP Id of the Service provider.
3246 * @param[in] transId RRM to MAC transaction Id.
3247 * @param[in] siCfgReq Parameters used for specifying SI.
3248 * @return ROK/RFAILED
3250 S16 RgUiRgrSiCfgReq ARGS((
3253 RgrCfgTransId transId,
3254 RgrSiCfgReqInfo *siCfgReq
3257 /** @brief SI Configuration Confirm from MAC to RRM.
3259 * @details This primitive is used to confirm the SI configuration to RRM from MAC.
3261 * @param[in] pst Pointer to a post structure
3262 * @param[in] suId Service User SAP Id
3263 * @param[in] transId Transaction id between RRM and MAC
3264 * @param[in] status Confirmation status .
3265 * @return ROK/RFAILED
3267 S16 RgUiRgrSiCfgCfm ARGS((
3270 RgrCfgTransId transId,
3274 /** @brief SI Configuration Confirm from MAC to RRM.
3276 * @details This primitive is used to confirm the SI configuration to RRM
3279 * @param[in] pst Pointer to a post structure
3280 * @param[in] suId Service User SAP Id
3281 * @param[in] transId Transaction id between RRM and MAC
3282 * @param[in] status Confirmation status .
3283 * @return ROK/RFAILED
3285 S16 RgUiRgrWarningSiCfgReq ARGS((
3288 RgrCfgTransId transId,
3289 RgrWarningSiCfgReqInfo *WarningSiCfgReqInfo
3293 /** @brief Warning SI Configuration Confirm from MAC to RRM.
3295 * @details This primitive is used to confirm the Warning SI configuration
3298 * @param[in] pst Pointer to a post structure
3299 * @param[in] suId Service User SAP Id
3300 * @param[in] transId Transaction id between RRM and MAC
3301 * @param[in] siId SI ID.
3302 * @param[in] status Confirmation status .
3303 * @return ROK/RFAILED
3305 S16 RgUiRgrWarningSiCfgCfm ARGS((
3308 RgrCfgTransId transId,
3313 /** @brief SI Configuration Confirm from MAC to RRM.
3315 * @details This primitive is used to confirm the SI configuration to RRM
3318 * @param[in] pst Pointer to a post structure
3319 * @param[in] spId Service Provider SAP Id
3320 * @param[in] siId SI Index
3321 * @return ROK/RFAILED
3323 S16 RgUiRgrWarningSiStopReq ARGS((
3326 RgrCfgTransId transId,
3330 #endif /*RGR_SI_SCH*/
3334 /* LTE_ADV_FLAG_REMOVED_START */
3335 /** @brief LOAD INF Configuration Request primitive used for RNTP, ABS configuration
3336 * from RRM to MAC-Scheduler.
3338 * @details This primitive specifies the startRb and endRb of CC sub-band for which
3339 * we have to increase power at schedular
3342 * @param[in] pst Pointer to a post Structure.
3343 * @param[in] spId SAP Id of the Service provider.
3344 * @param[in] transId RRM to MAC transaction Id.
3345 * @param[in] loadInfReq Parameters used for specifying LOAD INF.
3346 * @return ROK/RFAILED
3348 S16 RgUiRgrLoadInfReq ARGS((
3351 RgrCfgTransId transId,
3352 RgrLoadInfReqInfo *loadInfReq
3354 /* LTE_ADV_FLAG_REMOVED_END */
3357 /** @name RGR_CQI_REPT */
3359 /* rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
3360 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
3362 /** @brief Sta Indication from Scheduler to RRM
3364 * @details This primitive is used to send status indication from scheduler
3367 * @param[in] pst Pointer to a post structure
3368 * @param[in] suId Service User SAP Id
3369 * @param[in] staInd Status Indication .
3370 * @return ROK/RFAILED
3372 S16 RgUiRgrStaInd ARGS((
3375 RgrStaIndInfo *staInd
3378 S16 RgUiRgrUeStaInd ARGS((
3381 RgrUeStaIndInfo *ueStaInd
3387 /* LTE_ADV_FLAG_REMOVED_START */
3388 /** @brief LoadInf Indication from Scheduler to RRM
3390 * @details This primitive is used to send LOAD INF indication from scheduler
3393 * @param[in] pst Pointer to a post structure
3394 * @param[in] suId Service User SAP Id
3395 * @param[in] loadInfInd LOAD INF Indication .
3396 * @return ROK/RFAILED
3398 S16 RgUiRgrLoadInfInd ARGS((
3401 RgrLoadInfIndInfo *loadInfInd
3403 /* LTE_ADV_FLAG_REMOVED_END */
3409 /** @brief Request from RRM to MAC to bind the interface SAPs.
3411 * @details This API validats the SAP Id and binds the interface SAPs
3413 * @param[in] pst Pointer to a post structure
3414 * @param[in] suId Service User SAP Id
3415 * @param[in] spId Service Provider SAP Id
3416 * @return ROK/RFAILED
3418 S16 NxLiRgrBndReq ARGS((
3424 /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
3425 /** @name RGR_RRM_TICK */
3427 /** @brief TTI indication from scheduler to RRM.
3429 * @details This primitive handles TTI Indication. It essentially validates
3430 * the post structure and Transmit Time timing .
3432 * @param[in] Pst* pst Pointer To a post Structure
3433 * @param[in] SuId suId Service user SAP Id
3434 * @param[in] RgrTtiIndInfo* ttiInd Information passed as a part of TTI indication from PHY to MAC.
3435 * @return ROK/RFAILED
3437 S16 NxLiRgrTtiInd ARGS((
3440 RgrTtiIndInfo *ttiInd
3444 /** @brief Confirmation from MAC to RRM for the bind request for the interface SAPs.
3446 * @details This Primitive handles the call for bind confirmation.
3448 * @param[in] Pst* pst A pointer to post structure.
3449 * @param[in] SuId suId Service User SAP Id.
3450 * @param[in] uint8_t status An information on status confirmation.
3453 S16 NxLiRgrBndCfm ARGS((
3459 /** @brief Request from RRM to MAC to unbind the interface SAPs
3461 * @details This primitive unbinds the interface SAPs.It validates if the SAP is really bound.
3463 * @param[in] Pst* pst A pointer to post structure.
3464 * @param[in] SpId spId Service Provider SAP Id.
3465 * @param[in] Reason reason A cause for unbinding the SAPs.
3468 S16 NxLiRgrUbndReq ARGS((
3473 /** @brief Configuration request from RRM to MAC for
3474 * configuring Cell/UE/LC
3476 * @details The RRM configures the Cell/UE/LC using this primitive.
3478 * @param[in] Pst* pst A pointer to post structure.
3479 * @param[in] SpId spId Service Provider SAP Id.
3480 * @param[in] RgrCfgTransId transId Transaction Id between RRM and MAC.
3481 * @param[in] RgrCfgReqInfo* cfgReqInfo A structure containing the configuration information.
3484 S16 NxLiRgrCfgReq ARGS((
3487 RgrCfgTransId transId,
3488 RgrCfgReqInfo * cfgReqInfo
3491 /** @brief Configuration confirm from MAC to RRM
3493 * @details This primitive confirms the RRM about the configuration reception request.
3495 * @param[in] Pst* pst A pointer to post structure.
3496 * @param[in] SuId suId Service Provider SAP Id.
3497 * @param[in] RgrCfgTransId transId RRM to MAC transaction Id.
3500 S16 NxLiRgrCfgCfm ARGS((
3503 RgrCfgTransId transId,
3506 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
3507 /** @name RGR_SI_SCH */
3511 /** @brief SI Configuration confirm from MAC to RRM
3513 * @details This primitive confirms the SI configuration to the RRM.
3515 * @param[in] Pst* pst A pointer to post structure.
3516 * @param[in] SuId suId Service User SAP Id.
3517 * @param[in] RgrCfgTransId transId RRM to MAC transaction Id
3518 * @param[in] uint8_t status An information on confirmation status.
3521 S16 NxLiRgrSiCfgCfm ARGS((
3524 RgrCfgTransId transId,
3530 S16 NxLiRgrWrngSiCfgCfm ARGS((
3533 RgrCfgTransId transId,
3540 S16 NxLiRgrStopWrngSiCfgCfm ARGS((
3543 RgrCfgTransId transId,
3547 /* PH04_CMAS : end */
3550 /** @brief Warning SI Configuration confirm from MAC to RRM
3552 * @details This primitive confirms the Warning SI configuration to the RRM.
3554 * @param[in] Pst* pst A pointer to post structure.
3555 * @param[in] SuId suId Service User SAP Id.
3556 * @param[in] uint8_t siId SI Index
3557 * @param[in] RgrCfgTransId transId RRM to MAC transaction Id
3558 * @param[in] uint8_t status An information on confirmation status.
3561 S16 NxLiRgrWarningSiCfgCfm ARGS((
3564 RgrCfgTransId transId,
3569 /** @brief SI Configuration request from RRM to MAC for
3572 * @details This primitive is used for the configuration of the SI information in the MAC scheduler.
3574 * @param[in] Pst* pst A pointer to post structure.
3575 * @param[in] SpId spId Service Provider SAP Id.
3576 * @param[in] RgrCfgTransId transId, RRM to MAC transaction Id
3577 * @param[in] RgrSiCfgReqInfo* cfgReqInfo Parameters corresponding to the SI Configuration .
3580 S16 NxLiRgrSiCfgReq ARGS((
3583 RgrCfgTransId transId,
3584 RgrSiCfgReqInfo * cfgReqInfo
3588 /** @brief Warning SI Configuration request from RRM to MAC for
3591 * @details This primitive is used for the configuration of the SI
3592 * information in the MAC scheduler.
3594 * @param[in] Pst* pst A pointer to post structure.
3595 * @param[in] SpId spId Service Provider SAP Id.
3596 * @param[in] RgrCfgTransId transId, RRM to MAC transaction Id
3597 * @param[in] RgrWarningSiCfgReqInfo *warningSiCfgReq SI Configuration
3600 S16 NxLiRgrWarningSiCfgReq ARGS((
3603 RgrCfgTransId transId,
3604 RgrWarningSiCfgReqInfo *warningSiCfgReq
3608 /** @brief Warning SI Stop request from RRM to MAC for
3611 * @details This primitive is used to stop the SI for a
3614 * @param[in] Pst* pst A pointer to post structure.
3615 * @param[in] SpId spId Service Provider SAP Id.
3616 * @param[in] uint8_t siId SI Index
3618 S16 NxLiRgrWarningSiStopReq ARGS((
3621 RgrCfgTransId transId,
3625 #endif/*RGR_SI_SCH */
3629 /* LTE_ADV_FLAG_REMOVED_START */
3630 /** @brief LOAD INF Configuration request from RRM to MAC for
3631 * configuring rntp, abs etc
3633 * @details This primitive is used for the configuration of the LOAD INF parameters
3634 * in the MAC scheduler.
3636 * @param[in] Pst* pst A pointer to post structure.
3637 * @param[in] SpId spId Service Provider SAP Id.
3638 * @param[in] RgrCfgTransId transId, RRM to MAC transaction Id
3639 * @param[in] RgrLoadInfReqInfo* loadInfReq Parameters corresponding to the LOAD INF Config.
3642 S16 NxLiRgrLoadInfReq ARGS((
3645 RgrCfgTransId transId,
3646 RgrLoadInfReqInfo* loadInfReq
3648 /* LTE_ADV_FLAG_REMOVED_END */
3651 /** @name RGR_CQI_REPT */
3653 /* rgr_x_001.main_11 ccpu00117452 - MOD - Changed macro name from
3654 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
3656 /** @brief Sta Indication from Scheduler to RRM
3658 * @details This primitive is used to send status indication
3659 * from scheduler to RRM.
3661 * @param[in] pst Pointer to a post structure
3662 * @param[in] suId Service User SAP Id
3663 * @param[in] staInd Status Indication .
3665 S16 NxLiRgrStaInd ARGS((
3668 RgrStaIndInfo *staInd
3673 /* LTE_ADV_FLAG_REMOVED_START */
3674 /** @brief LOAD INF Indication from Scheduler to RRM
3676 * @details This primitive is used to send loadInf indication
3677 * from scheduler to RRM.
3679 * @param[in] pst Pointer to a post structure
3680 * @param[in] suId Service User SAP Id
3681 * @param[in] loadInfInd LOAD INF Indication .
3683 S16 NxLiRgrLoadInfInd ARGS((
3686 RgrLoadInfIndInfo *loadInfInd
3688 /* LTE_ADV_FLAG_REMOVED_END */
3693 /** @brief Request from RRM to MAC to bind the interface SAPs */
3694 S16 cmPkRgrBndReq ARGS((
3699 /** @brief Request from RRM to MAC to bind the interface SAPs */
3700 S16 cmUnpkRgrBndReq ARGS((
3705 /* rgr_x_001.main_3: Added TTI indication from MAC to RGR user */
3706 /** @name RGR_RRM_TICK */
3708 /** @brief Pack function for TTI indication from scheduler to RRM */
3709 S16 cmPkRgrTtiInd ARGS((
3712 RgrTtiIndInfo *ttiInd
3714 S16 cmPkRgrTtiIndInfo ARGS((
3715 RgrTtiIndInfo *ttiInd,
3717 /** @brief Unpack function for TTI indication from scheduler to RRM */
3718 S16 cmUnpkRgrTtiInd ARGS((
3723 S16 cmUnpkRgrTtiIndInfo ARGS((
3724 RgrTtiIndInfo *param,
3728 S16 cmPkRgrBndCfm ARGS((
3734 S16 cmUnpkRgrBndCfm ARGS((
3740 S16 cmPkRgrUbndReq ARGS((
3746 S16 cmUnpkRgrUbndReq ARGS((
3752 S16 cmPkRgrCfgReq ARGS((
3754 RgrCfgTransId transId,
3755 RgrCfgReqInfo * cfgReqInfo
3758 S16 cmUnpkRgrCfgReq ARGS((
3764 S16 cmUnpkRgrCfgCfm ARGS((
3770 S16 cmPkRgrCfgTransId ARGS((
3771 RgrCfgTransId *param,
3774 S16 cmUnpkRgrCfgTransId ARGS((
3775 RgrCfgTransId *param,
3778 S16 cmPkRgrDlHqCfg ARGS((
3782 S16 cmUnpkRgrDlHqCfg ARGS((
3786 S16 cmPkRgrRntiCfg ARGS((
3790 S16 cmUnpkRgrRntiCfg ARGS((
3794 S16 cmPkRgrDlCmnCodeRateCfg ARGS((
3795 RgrDlCmnCodeRateCfg *param,
3798 S16 cmUnpkRgrDlCmnCodeRateCfg ARGS((
3799 RgrDlCmnCodeRateCfg *param,
3802 S16 cmPkRgrCfiCfg ARGS((
3806 S16 cmUnpkRgrCfiCfg ARGS((
3810 S16 cmPkRgrPuschSubBandCfg ARGS((
3811 RgrPuschSubBandCfg *param,
3814 S16 cmUnpkRgrPuschSubBandCfg ARGS((
3815 RgrPuschSubBandCfg *param,
3818 S16 cmPkRgrUlCmnCodeRateCfg ARGS((
3819 RgrUlCmnCodeRateCfg *param,
3822 S16 cmUnpkRgrUlCmnCodeRateCfg ARGS((
3823 RgrUlCmnCodeRateCfg *param,
3826 S16 cmPkRgrUlTrgCqiCfg ARGS((
3827 RgrUlTrgCqiCfg *param,
3830 S16 cmUnpkRgrUlTrgCqiCfg ARGS((
3831 RgrUlTrgCqiCfg *param,
3834 S16 cmPkRgrBwCfg ARGS((
3838 S16 cmUnpkRgrBwCfg ARGS((
3842 S16 cmPkRgrPhichCfg ARGS((
3846 S16 cmUnpkRgrPhichCfg ARGS((
3850 S16 cmPkRgrPucchCfg ARGS((
3854 S16 cmUnpkRgrPucchCfg ARGS((
3858 S16 cmPkRgrSrsCfg ARGS((
3862 S16 cmUnpkRgrSrsCfg ARGS((
3866 S16 cmPkRgrRachCfg ARGS((
3870 S16 cmUnpkRgrRachCfg ARGS((
3874 S16 cmPkRgrSiCfg ARGS((
3878 S16 cmUnpkRgrSiCfg ARGS((
3882 S16 cmPkRgrTpcRntiCfg ARGS((
3883 RgrTpcRntiCfg *param,
3886 S16 cmUnpkRgrTpcRntiCfg ARGS((
3887 RgrTpcRntiCfg *param,
3890 S16 cmPkRgrUlPwrCfg ARGS((
3894 S16 cmUnpkRgrUlPwrCfg ARGS((
3898 S16 cmPkRgrPuschCfg ARGS((
3902 S16 cmUnpkRgrPuschCfg ARGS((
3906 S16 cmPkRgrCodeBookRstCfg ARGS((
3907 RgrCodeBookRstCfg *param,
3910 S16 cmUnpkRgrCodeBookRstCfg ARGS((
3911 RgrCodeBookRstCfg *param,
3914 S16 cmPkRgrPreambleSetCfg ARGS((
3915 RgrPreambleSetCfg *param,
3918 S16 cmUnpkRgrPreambleSetCfg ARGS((
3919 RgrPreambleSetCfg *param,
3922 S16 cmPkRgrCmnLchCfg ARGS((
3923 RgrCmnLchCfg *param,
3926 S16 cmUnpkRgrCmnLchCfg ARGS((
3927 RgrCmnLchCfg *param,
3930 S16 cmPkRgrDlfsCfg ARGS((
3934 S16 cmUnpkRgrDlfsCfg ARGS((
3939 /* rgr_x_001.main_5-ADD-Added for SI Enhancement. */
3940 /** @name RGR_SI_SCH */
3943 S16 cmPkRgrWarningSiCfgReq ARGS((
3946 RgrCfgTransId transId,
3947 RgrWarningSiCfgReqInfo *warningSiCfgReqInfo
3950 S16 cmUnpkRgrWarningSiCfgReq ARGS((
3951 RgrWarningSiCfgReq func,
3956 S16 cmPkRgrWarningSiCfgReqInfo ARGS((
3958 RgrWarningSiCfgReqInfo *param,
3962 S16 cmUnpkRgrWarningSiCfgReqInfo ARGS((
3964 RgrWarningSiCfgReqInfo *param,
3968 S16 cmPkRgrWarningSiStopReq ARGS((
3971 RgrCfgTransId transId,
3975 S16 cmUnpkRgrWarningSiStopReq ARGS((
3976 RgrWarningSiStopReq func,
3982 S16 cmPkRgrWarningSiCfgCfm ARGS((
3985 RgrCfgTransId transId,
3990 S16 cmUnpkRgrWarningSiCfgCfm ARGS((
3991 RgrWarningSiCfgCfm func,
3997 S16 cmPkRgrSiCfgReq ARGS((
4000 RgrCfgTransId transId,
4001 RgrSiCfgReqInfo * cfgReqInfo
4004 S16 cmUnpkRgrSiCfgReq ARGS((
4010 S16 cmPkRgrSiCfgReqInfo ARGS((
4011 RgrSiCfgReqInfo *param,
4015 S16 cmUnpkRgrSiCfgReqInfo ARGS((
4016 RgrSiCfgReqInfo *param,
4020 S16 cmPkRgrSiCfgCfm ARGS((
4023 RgrCfgTransId transId,
4027 S16 cmUnpkRgrSiCfgCfm ARGS((
4032 #endif /*RGR_SI_SCH*/
4036 /* LTE_ADV_FLAG_REMOVED_START */
4037 S16 cmPkRgrLoadInfReq ARGS((
4040 RgrCfgTransId transId,
4041 RgrLoadInfReqInfo * loadInfReq
4044 S16 cmUnpkRgrLoadInfReq ARGS((
4050 S16 cmPkRgrLoadInfReqInfo ARGS((
4051 RgrLoadInfReqInfo *param,
4055 S16 cmUnpkRgrLoadInfReqInfo ARGS((
4056 RgrLoadInfReqInfo *param,
4059 /* LTE_ADV_FLAG_REMOVED_END */
4062 /** @name LTE_TDD */
4065 S16 cmPkRgrTddPrachInfo ARGS((
4066 RgrTddPrachInfo *param,
4069 S16 cmUnpkRgrTddPrachInfo ARGS((
4070 RgrTddPrachInfo *param,
4073 S16 cmPkRgrTddPrachRscInfo ARGS((
4074 RgrTddPrachRscInfo *param,
4077 S16 cmUnpkRgrTddPrachRscInfo ARGS((
4078 RgrTddPrachRscInfo *param,
4083 S16 cmPkRgrEnbPfs ARGS((
4087 S16 cmUnpkRgrEnbPfs ARGS((
4091 S16 cmPkRgrCellCfg ARGS((
4095 S16 cmUnpkRgrCellCfg ARGS((
4099 S16 cmPkRgrUeAprdDlCqiCfg ARGS((
4100 RgrUeAprdDlCqiCfg *param,
4103 S16 cmUnpkRgrUeAprdDlCqiCfg ARGS((
4104 RgrUeAprdDlCqiCfg *param,
4107 S16 cmPkRgrSchedGnbCfg ARGS((
4108 RgrSchedEnbCfg *param,
4111 S16 cmUnpkRgrSchedGnbCfg ARGS((
4112 RgrSchedEnbCfg *param,
4115 S16 cmPkRgrUePrdDlCqiCfg ARGS((
4116 RgrUePrdDlCqiCfg *param,
4119 S16 cmUnpkRgrUePrdDlCqiCfg ARGS((
4120 RgrUePrdDlCqiCfg *param,
4123 S16 cmPkRgrUeDlCqiCfg ARGS((
4124 RgrUeDlCqiCfg *param,
4127 S16 cmUnpkRgrUeDlCqiCfg ARGS((
4128 RgrUeDlCqiCfg *param,
4131 S16 cmPkRgrUeMeasGapCfg ARGS((
4132 RgrUeMeasGapCfg *param,
4135 S16 cmUnpkRgrUeMeasGapCfg ARGS((
4136 RgrUeMeasGapCfg *param,
4139 /*rgr_x_001.main_11 ADD added changes for DRX*/
4140 S16 cmPkRgrDrxLongCycleOffst ARGS((
4141 RgrDrxLongCycleOffst *param,
4144 S16 cmUnpkRgrDrxLongCycleOffst ARGS((
4145 RgrDrxLongCycleOffst *param,
4148 S16 cmPkRgrDrxShortDrx ARGS((
4149 RgrDrxShortDrx *param,
4152 S16 cmUnpkRgrDrxShortDrx ARGS((
4153 RgrDrxShortDrx *param,
4156 S16 cmPkRgrUeDrxCfg ARGS((
4160 S16 cmUnpkRgrUeDrxCfg ARGS((
4164 S16 cmPkRgrUeCapCfg ARGS((
4168 S16 cmUnpkRgrUeCapCfg ARGS((
4172 S16 cmPkRgrUeAckNackRepCfg ARGS((
4173 RgrUeAckNackRepCfg *param,
4176 S16 cmUnpkRgrUeAckNackRepCfg ARGS((
4177 RgrUeAckNackRepCfg *param,
4180 S16 cmPkRgrUeTxModeCfg ARGS((
4181 RgrUeTxModeCfg *param,
4184 S16 cmUnpkRgrUeTxModeCfg ARGS((
4185 RgrUeTxModeCfg *param,
4188 S16 cmPkRgrUeUlHqCfg ARGS((
4189 RgrUeUlHqCfg *param,
4192 S16 cmUnpkRgrUeUlHqCfg ARGS((
4193 RgrUeUlHqCfg *param,
4196 S16 cmPkRgrUeGrpPwrCfg ARGS((
4197 RgrUeGrpPwrCfg *param,
4200 S16 cmUnpkRgrUeGrpPwrCfg ARGS((
4201 RgrUeGrpPwrCfg *param,
4204 S16 cmPkRgrUeUlPwrCfg ARGS((
4205 RgrUeUlPwrCfg *param,
4208 S16 cmUnpkRgrUeUlPwrCfg ARGS((
4209 RgrUeUlPwrCfg *param,
4212 S16 cmPkRgrUeQosCfg ARGS((
4216 S16 cmUnpkRgrUeQosCfg ARGS((
4220 S16 cmPkRgrUeTaTmrCfg ARGS((
4221 RgrUeTaTmrCfg *param,
4224 S16 cmUnpkRgrUeTaTmrCfg ARGS((
4225 RgrUeTaTmrCfg *param,
4231 /* rgr_x_001.main_7: [ccpu00112398] Added periodicBSR-Timer and
4233 S16 cmPkRgrUeBsrTmrCfg ARGS((
4234 RgrUeBsrTmrCfg *param,
4237 S16 cmUnpkRgrUeBsrTmrCfg ARGS((
4238 RgrUeBsrTmrCfg *param,
4243 S16 cmPkRgrUeCfg ARGS((
4247 S16 cmUnpkRgrUeCfg ARGS((
4251 S16 cmPkRgrLchQosCfg ARGS((
4252 RgrLchQosCfg *param,
4255 S16 cmUnpkRgrLchQosCfg ARGS((
4256 RgrLchQosCfg *param,
4259 S16 cmPkRgrDlLchCfg ARGS((
4263 S16 cmUnpkRgrDlLchCfg ARGS((
4267 S16 cmPkRgrUlLcgCfg ARGS((
4271 S16 cmUnpkRgrUlLcgCfg ARGS((
4275 S16 cmPkRgrLchCfg ARGS((
4279 S16 cmUnpkRgrLchCfg ARGS((
4283 S16 cmPkRgrLcgCfg ARGS((
4287 S16 cmUnpkRgrLcgCfg ARGS((
4291 S16 cmPkRgrCfg ARGS((
4295 S16 cmUnpkRgrCfg ARGS((
4299 S16 cmPkRgrActvTime ARGS((
4303 S16 cmUnpkRgrActvTime ARGS((
4307 S16 cmPkRgrCellRecfg ARGS((
4308 RgrCellRecfg *param,
4311 S16 cmUnpkRgrCellRecfg ARGS((
4312 RgrCellRecfg *param,
4315 S16 cmPkRgrUeRecfg ARGS((
4319 S16 cmUnpkRgrUeRecfg ARGS((
4323 S16 cmPkRgrLchRecfg ARGS((
4327 S16 cmUnpkRgrLchRecfg ARGS((
4331 S16 cmPkRgrLcgRecfg ARGS((
4335 S16 cmUnpkRgrLcgRecfg ARGS((
4339 S16 cmPkRgrRecfg ARGS((
4343 S16 cmUnpkRgrRecfg ARGS((
4347 S16 cmPkRgrDel ARGS((
4351 S16 cmUnpkRgrDel ARGS((
4355 S16 cmPkRgrRst ARGS((
4359 S16 cmUnpkRgrRst ARGS((
4364 S16 cmPkRgrSonCfg ARGS((
4368 S16 cmUnpkRgrSonCfg ARGS((
4372 S16 cmPkRgrSonPrbCfg ARGS((
4376 S16 cmUnpkRgrSonPrbCfg ARGS((
4380 S16 cmPkRgrCfgReqInfo ARGS((
4381 RgrCfgReqInfo *param,
4384 S16 cmUnpkRgrCfgReqInfo ARGS((
4385 RgrCfgReqInfo *param,
4390 S16 cmUnPkRgrSCellActDeactEvnt ARGS((
4391 RgrSCellActDeactEvnt *param,
4395 S16 cmPkRgrSCellActDeactEvnt ARGS((
4396 RgrSCellActDeactEvnt *param,
4399 #endif /* LTE_ADV */
4401 S16 cmPkRgrUeTxAntSelCfg ARGS((
4402 RgrUeTxAntSelCfg *param,
4405 S16 cmUnpkRgrUeTxAntSelCfg ARGS((
4406 RgrUeTxAntSelCfg *param,
4409 S16 cmPkRgrUePuschDedCfg ARGS((
4410 RgrUePuschDedCfg *param,
4413 S16 cmUnpkRgrUePuschDedCfg ARGS((
4414 RgrUePuschDedCfg *param,
4419 S16 cmPkRgrUeDlPCqiSetup ARGS
4421 RgrUeDlPCqiSetup *param,
4425 S16 cmUnpkRgrUeDlPCqiSetup ARGS
4427 RgrUeDlPCqiSetup *param,
4431 S16 cmPkRgrUeUlSrsSetupCfg ARGS
4433 RgrUeUlSrsSetupCfg *param,
4437 S16 cmUnpkRgrUeUlSrsSetupCfg ARGS
4439 RgrUeUlSrsSetupCfg *param,
4443 S16 cmPkRgrUeSrSetupCfg ARGS
4445 RgrUeSrSetupCfg *param,
4449 S16 cmUnpkRgrUeSrSetupCfg ARGS
4451 RgrUeSrSetupCfg *param,
4455 S16 cmPkRgrUeSrCfg ARGS
4461 S16 cmUnpkRgrUeSrCfg ARGS
4467 S16 cmPkRgrUeUlSrsCfg ARGS
4469 RgrUeUlSrsCfg *param,
4473 S16 cmUnpkRgrUeUlSrsCfg ARGS
4475 RgrUeUlSrsCfg *param,
4483 /** @brief Request from RRM to MAC to bind the interface SAPs */
4484 S16 DmUiRgrBndReq ARGS((
4489 /** @brief Confirmation from MAC to RRM for the bind/unbind
4490 * request for the interface SAPs */
4491 S16 DmUiRgrBndCfm ARGS((
4496 /** @brief Request from RRM to MAC to unbind the interface SAPs */
4497 S16 DmUiRgrUbndReq ARGS((
4502 /** @brief Configuration request from RRM to MAC for
4503 * configuring Cell/UE/LC */
4504 S16 DmUiRgrCfgReq ARGS((
4507 RgrCfgTransId transId,
4508 RgrCfgReqInfo * cfgReqInfo
4510 /** @brief Configuration confirm from MAC to RRM */
4511 S16 DmUiRgrCfgCfm ARGS((
4514 RgrCfgTransId transId,
4518 /** @brief Sta Indication from Scheduler to RRM
4520 * @details This primitive is used to send status indication
4521 * from scheduler to RRM.
4523 * @param[in] pst Pointer to a post structure
4524 * @param[in] suId Service User SAP Id
4525 * @param[in] staInd Status Indication .
4527 S16 NxLiRgrUeStaInd ARGS((
4530 RgrUeStaIndInfo *ueStaInd
4533 S16 cmPkRgrUeStaInd ARGS
4537 RgrUeStaIndInfo* ueStaInd
4540 S16 cmUnpkRgrUeStaInd ARGS
4547 S16 cmPkRgrUeStaIndInfo ARGS
4549 RgrUeStaIndInfo *param,
4554 S16 cmUnpkRgrUeStaIndInfo ARGS
4556 RgrUeStaIndInfo *param,
4561 /* LTE_ADV_FLAG_REMOVED_START */
4562 S16 cmPkRgrLteAdvancedUeConfig ARGS((
4563 RgrLteAdvancedUeConfig *param,
4567 S16 cmUnpkRgrLteAdvancedUeConfig ARGS((
4568 RgrLteAdvancedUeConfig *param,
4572 S16 cmPkRgrAbsConfig ARGS((
4573 RgrAbsConfig *param,
4577 S16 cmUnpkRgrAbsConfig ARGS((
4578 RgrAbsConfig *param,
4582 S16 cmPkRgrSfrConfig ARGS((
4583 RgrSfrConfig *param,
4587 S16 cmUnpkRgrSfrConfig ARGS((
4588 RgrSfrConfig *param,
4592 S16 cmPkRgrCellLteAdvancedFeatureCfg ARGS((
4593 RgrLteAdvancedCellConfig *param,
4597 S16 cmUnpkRgrCellLteAdvancedFeatureCfg ARGS((
4598 RgrLteAdvancedCellConfig *param,
4602 S16 cmPkRgrDsfrConfig ARGS((
4603 RgrDsfrConfig *param,
4607 S16 cmUnpkRgrDsfrConfig ARGS((
4608 RgrDsfrConfig *param,
4611 /* LTE_ADV_FLAG_REMOVED_END */
4613 S16 cmPkRgrCellCsgParamCfg ARGS((
4614 RgrCellCsgParamCfg *param,
4617 S16 cmUnpkRgrCellCsgParamCfg ARGS((
4618 RgrCellCsgParamCfg *param,
4621 S16 cmPkRgrCellCntrlCmdCfg ARGS((
4622 RgrCellCntrlCmdCfg *param,
4625 S16 cmUnpkRgrCellCntrlCmdCfg ARGS((
4626 RgrCellCntrlCmdCfg *param,
4630 #ifdef RLC_MAC_DAT_REQ_RBUF
4631 S16 rgDlDatReqBatchProc ARGS((
4634 #ifdef RLC_MAC_STA_RSP_RBUF
4635 S16 rgDlStaRspBatchProc ARGS((
4641 #endif /* __RGR_X__*/
4643 /**********************************************************************
4646 **********************************************************************/