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: Defines required by LTE MAC
29 **********************************************************************/
32 @brief Structure declarations and definitions for LRG interface.
39 /* ccpu00121930 : ADD: c++ support*/
42 #endif /* __cplusplus */
46 This structure holds configuration parameters for MAC General Configuration. */
47 typedef struct rgGenCfg
49 Pst lmPst; /*!< Layer manager post structure */
50 MemoryId mem; /*!< Region and pool ID */
51 U8 tmrRes; /*!< Timer resolution for Low SAP Bind Timer */
52 U8 numRguSaps; /*!< Number of RGU SAP's */
53 U8 startCellId; /*!< Start cell id value */
55 Bool forceCntrlSrbBoOnPCel; /*!< value 1 means scheduler will schedule
56 RLC control BO and SRBs only on PCEll
57 else it will schedule on both PCell
59 Bool isSCellActDeactAlgoEnable; /*!< TRUE will enable activation/deactivation algo at Schd */
65 This structure holds configuration parameters for MAC Upper SAP Configuration. */
66 typedef struct rgUpSapCfg
68 Selector selector; /*!< Selector */
69 MemoryId mem; /*!< Region and pool ID */
70 Priority prior; /*!< Priority */
71 ProcId procId; /*!< Processor ID */
72 Ent ent; /*!< Entity ID */
73 Inst inst; /*!< Instance ID */
74 Route route; /*!< Route */
75 SpId spId; /*!< Service provider ID */
76 SuId suId; /*!< Service user ID */
81 This structure holds configuration parameters for MAC Lower SAP Configuration. */
82 typedef struct rgLowSapCfg
84 Selector selector; /*!< Selector */
85 MemoryId mem; /*!< Region and pool ID */
86 Priority prior; /*!< Priority */
87 ProcId procId; /*!< Processor ID */
88 Ent ent; /*!< Entity ID */
89 Inst inst; /*!< Instance ID */
90 Route route; /*!< Route */
91 SpId spId; /*!< Service provider ID */
92 SuId suId; /*!< Service user ID */
93 TmrCfg bndTmr; /*!< Bind Timer Value */
98 typedef struct rgAckNack
105 typedef struct rgSchNackAckStats
107 RgAckNack dlCqiStat[15]; /*!< DL Stats */
108 RgAckNack ulCqiStat[15]; /*!< UL stats */
111 typedef struct rgSchHqNumRetx
121 typedef struct rgSchHqRetxStats
123 RgSchHqNumRetx dlCqiStat[15]; /*!< DL Stats */
124 RgSchHqNumRetx ulCqiStat[15]; /*!< UL stats */
127 EXTERN RgSchNackAckStats hqFailStats;
128 EXTERN RgSchHqRetxStats hqRetxStats;
129 #endif /* MAC_SCH_STATS */
133 This structure holds General statistical information of MAC. */
134 typedef struct rgGenSts
136 U32 numHarqFail; /*!< Number of HARQ failures */
137 U32 numUeCfg; /*!< Number of UEs configured */
138 U16 numCellCfg; /*!< Number of Cells configured */
140 RgSchNackAckStats nackAckStats;
141 RgSchHqRetxStats hqRetxStats;
142 #endif /* MAC_SCH_STATS */
147 This structure holds statistical information of a SAP in MAC. */
148 typedef struct rgSapSts
150 U32 numPduRcvd; /*!< Number of PDUs received. At TFU, PDU refers to TB,
151 and at RGU it is SDU. */
152 U32 numPduTxmit; /*!< Number of PDUs transmitted. This field is
153 applicable to TFU. */
154 U32 numPduDrop; /*!< Number of PDUs dropped. At TFU, PDU refers to TB,
155 and at RGU it is SDU. */
158 typedef struct rgSchInstCfg
160 U8 instId; /*!< Sheduler instance ID */
161 RgGenCfg genCfg; /*!< General Configuration for the scheduler instance */
162 U8 numSaps; /*!< Number of RGR and TFU SAPs must be same */
163 RgUpSapCfg rgrSap[LRG_MAX_SAPS_PER_INST]; /*!< RGR interface SAPS */
164 RgUpSapCfg rgmSap[LRG_MAX_SAPS_PER_INST]; /*!< RGR interface SAPS */
165 RgLowSapCfg tfuSap[LRG_MAX_SAPS_PER_INST]; /*!< TFU interface SAPS */
170 This structure holds configuration parameters for MAC. */
175 RgGenCfg genCfg; /*!< General Configuration */
176 /* SAPs for the MAC layer */
177 RgUpSapCfg rguSap; /*!< RGU interface SAP */
178 RgUpSapCfg crgSap; /*!< CRG interface SAP */
179 RgLowSapCfg tfuSap; /*!< TFU interface SAP */
180 RgSchInstCfg schInstCfg;/*!< General Configuration for scheduler instances */
187 This structure holds a SAP's status information. */
188 typedef struct rgSapSta
190 U8 sapState; /*!< SAP state */
195 This structure holds MAC's statistical information. */
198 DateTime dt; /*!< Date and Time. */
199 U8 sapInst; /*!< SAP instance. */
200 Action action; /*!< Action on Trafffic load related statistic values.
201 ARST: To reset the statistic values. */
204 RgGenSts genSts; /*!< General statistics. */
205 RgSapSts rguSts; /*!< RGU SAP statistics. */
206 RgSapSts crgSts; /*!< CRG SAP statistics. */
207 RgSapSts rgrSts; /*!< RGR SAP statistics. */
208 RgSapSts tfuSts; /*!< TFU SAP statistics. */
214 This structure holds MAC's solicited status information. */
215 typedef struct rgSsta
217 DateTime dt; /*!< Date and time */
218 U8 sapInst; /*!< SAP instance */
221 SystemId sysId; /*!< System information */
222 RgSapSta rguSapSta; /*!< RGU SAP state */
223 RgSapSta crgSapSta; /*!< CRG SAP state */
224 RgSapSta rgrSapSta; /*!< RGR SAP state */
225 RgSapSta rgmSapSta; /*!< RGM SAP state */
226 RgSapSta tfuSapSta; /*!< TFU SAP state */
232 Alarm diagnostics structure. */
233 typedef struct rgUstaDgn
235 U8 type; /*!< Diagnostics Type */
238 /*lrg_x_001.main_3 - Changed for documentation*/
239 MemoryId mem; /*!< Memory pool and region <BR>
240 LRG_USTA_DGNVAL_MEM Dynamic memory allocation failure. <BR>
241 LRG_USTS_DGNVAL_HARQ Harq Process is busy.
248 This structure holds MAC's Unsolicited Status information. */
249 typedef struct rgUsta
251 CmAlarm cmAlarm; /*!< Alarms */
252 RgUstaDgn dgn; /*!< Alarm diagnostics */
257 This structure holds MAC's Trace Indication information. */
260 DateTime dt; /*!< Date and time */
261 /*lrg_x_001.main_3 - changed for documentation*/
262 U8 evnt; /*!< Event <BR>
263 EVTRGUDATREQ Trace for Dedicated channel Data Request. <BR>
264 EVTRGUCDATREQ Trace for common channel data request.<BR>
270 This structure holds MAC's Debug Control information. */
271 typedef struct rgDbgCntrl
273 U32 dbgMask; /*!< iThe Layer Manager electively enables or disables various levels of Debug printing <BR>
274 Following are the values: <BR>
275 DBGMASK_PRM Enable/Disable function parameter debug prints <BR>
276 DBGMASK_ERR Enable/Disable error prints <BR>
277 DBGMASK_INFO Enable/Disable informational prints.
283 This structure holds MAC's SAP Control information. */
284 typedef struct rgSapCntrl
286 SuId suId; /*!< Service user ID */
287 SpId spId; /*!< Service provider ID */
290 #ifdef PHY_ERROR_LOGING
291 typedef struct rgSchUlAllocCntrl
304 This structure holds MAC's Control information. */
305 typedef struct rgCntrl
307 DateTime dt; /*!< Date and Time */
308 U8 action; /*!< Action */
309 U8 subAction; /*!< Sub-action */
310 U8 instId; /*!< Scheduler instance ID */
313 RgDbgCntrl rgDbgCntrl; /*!< Debug Control */
314 /*lrg_x_001.main_3 - Changed for documentation.*/
315 S16 trcLen; /*!< Trace Length <BR>
316 i)LRG_FULL_TRACE Give full message <BR>
317 ii)LRG_NO_TRACE Disable Trace<BR>
318 iii)Or any valid S16 value in case where only the specified number
319 of bytes, as indicated by trcLen, are to be sent.*/
320 RgSapCntrl rgSapCntrl; /*!< SAP Control */
321 U32 logMask; /*!< Logging control Mask */
322 #ifdef PHY_ERROR_LOGING
323 RgSchUlAllocCntrl rgSchUlAllocCntrl; /* For setting MCS,Number of RB and RB start */
330 This structure holds MAC's Configuration and Control Management Information. */
331 typedef struct rgMngmt
333 Header hdr; /*!< Header */
334 CmStatus cfm; /*!< Confirmation */
337 RgCfg cfg; /*!< Configuration */
338 RgSts sts; /*!< Statistics */
339 RgSsta ssta; /*!< Solicited Status */
340 RgUsta usta; /*!< Unsolicited Status */
341 RgTrc trc; /*!< Trace */
342 RgCntrl cntrl; /*!< Control */
346 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
350 To measure Average Number of PRB's used per QCI for a time period
353 typedef struct lrgAvgPrbQCI
355 U8 numQci; /*!< Numner of QCI's in requests */
356 U8 qci[LRG_MAX_QCI_PER_REQ]; /*!< QCI for which PRB has to be measured */
361 To measure number of Active UE's per QCI for the given time period
364 typedef struct lrgNmbActvUeQCI
366 U8 sampPrd; /*!< sampling prd for which active UE's measured
367 Where sampling period is in milli seconds
368 value can be at most 100ms */
369 U8 numQci; /*!< Numner of QCI's in requests */
370 U8 qci[LRG_MAX_QCI_PER_REQ]; /*!< QCI for which UE has to be considered */
375 This structure will be used by Layer Manager to L2 Measurement Request
378 typedef struct lrgSchMeasReqInfo
380 Header hdr; /*!< Header */
381 U16 measType; /*!< For type of measurement Following are the */
382 /*!< allowed values */
383 /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
384 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL */
385 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
386 /*!< LRG_L2MEAS_RA_PREAMBLE */
387 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
388 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
389 /*!< LRG_L2MEAS_TB_TRANS_DL_COUNT */
390 /*!< LRG_L2MEAS_TB_TRANS_DL_FAULTY_COUNT */
391 /*!< LRG_L2MEAS_TB_TRANS_UL_COUNT */
392 /*!< LRG_L2MEAS_TB_TRANS_UL_FAULTY_COUNT */
393 U32 timePrd; /*!< Time period UNITS and value will differ depending
394 on the action. Might be milli seconds/seconds. */
395 CmLteCellId cellId; /*!< CELL Id for which measurement is Done */
396 LrgAvgPrbQCI avgPrbQciUl; /*!< Average PRB usage per QCI in UL */
397 LrgAvgPrbQCI avgPrbQciDl; /*!< Average PRB usage per QCI in DL */
398 LrgNmbActvUeQCI nmbActvUeQciUl; /*!< Number of active UE's per QCI in UL */
399 LrgNmbActvUeQCI nmbActvUeQciDl; /*!< Number of active UE's per QCI in DL */
402 typedef struct lrgSchMeasSndReqInfo
404 Header hdr; /*!< Header */
405 U16 measType; /*!< For type of measurement Following are the */
406 /*!< allowed values */
407 /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
408 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL */
409 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
410 /*!< LRG_L2MEAS_RA_PREAMBLE */
411 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
412 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
413 U32 timePrd; /*!< Time period UNITS and value will differ depending
414 on the action. Might be milli seconds/seconds. */
415 CmLteCellId cellId; /*!< CELL Id for which measurement is Done */
416 // LrgAvgPrbQCI avgPrbQciUl; /*!< Average PRB usage per QCI in UL */
417 // LrgAvgPrbQCI avgPrbQciDl; /*!< Average PRB usage per QCI in DL */
418 // LrgNmbActvUeQCI nmbActvUeQciUl; /*!< Number of active UE's per QCI in UL */
419 // LrgNmbActvUeQCI nmbActvUeQciDl; /*!< Number of active UE's per QCI in DL */
420 } LrgSchMeasSndReqInfo;
422 typedef struct lrgSchMeasStopReqInfo
424 Header hdr; /*!< Header */
425 U16 measType; /*!< For type of measurement Following are the */
426 /*!< allowed values */
427 /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
428 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL */
429 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
430 /*!< LRG_L2MEAS_RA_PREAMBLE */
431 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
432 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
433 /* U16 timePrd; */ /*!< Time period UNITS and value will differ depending
434 on the action. Might be milli seconds/seconds. */
435 CmLteCellId cellId; /*!< CELL Id for which measurement is Done */
436 /* LrgAvgPrbQCI avgPrbQciUl; */ /*!< Average PRB usage per QCI in UL */
437 // LrgAvgPrbQCI avgPrbQciDl; /*!< Average PRB usage per QCI in DL */
438 // LrgNmbActvUeQCI nmbActvUeQciUl; /*!< Number of active UE's per QCI in UL */
439 // LrgNmbActvUeQCI nmbActvUeQciDl; /*!< Number of active UE's per QCI in DL */
440 } LrgSchMeasStopReqInfo;
444 Structure to hold Received Random Access Preambles.
446 typedef struct lrgRaPreambles
448 U16 dedPreambles; /*!< Dedicated RA Preamble received */
449 U16 randSelPreLowRange; /*!< Randomly selected preambles in low range */
450 U16 randSelPreHighRange; /*!< Randomly selected preambles in high range */
455 * Staructure to send Avg PRB for a given Time Period
457 typedef struct lrgAvgPrbcfm
459 U8 prbPerc; /*!< PRB usage in percentage for UL */
463 typedef struct prbPercQci
469 typedef struct numActvUeQci
477 * Structure to send Avg PRB for a given period per QCI
479 typedef struct lrgAvgPrbQCICfm
481 U8 numQci; /*!< number of QCI */
483 PrbPercQci prbPercQci[LRG_MAX_QCI_PER_REQ]; /*!< PRB usage in percentage per QCI for UL/DL */
489 Structure to send number of Active UE's per QCI
491 typedef struct lrgNumActvUeQCICfm
493 U8 numQci; /*!< Numner of QCI's in requests */
495 NumActvUeQci numActvUeQci[LRG_MAX_QCI_PER_REQ]; /*!< Number of Active UE's in UL/DL per QCI */
497 } LrgNumActvUeQCICfm;
500 Structure to send L2 Measurement confirm
502 typedef struct lrgSchMeasCfmInfo
504 Header hdr; /*!< Header information */
505 U16 measType; /*!< Type of measurement */
506 CmStatus cfm; /*!< Confirmation possible Values when measType
507 is invalid status -> NOK and reason -> INVALID
509 CmLteCellId cellId; /*!< Cell for which measurement is done */
510 LrgAvgPrbCfm avgPrbUl; /*!< PRB usage in percentage per QCI for UL */
511 LrgAvgPrbCfm avgPrbDl; /*!< PRB usage in percentage per QCI for DL */
512 LrgAvgPrbQCICfm avgPrbQciUlCfm; /*!< PRB usage in percentage per QCI for UL */
513 LrgAvgPrbQCICfm avgPrbQciDlCfm; /*!< PRB usage in percentage per QCI for DL */
514 LrgRaPreamblesCfm raPrmbsCfm; /*!< Different received RA preambles */
515 LrgNumActvUeQCICfm numUeQciUlCfm; /*!< Number of Active UE's in UL per QCI */
516 LrgNumActvUeQCICfm numUeQciDlCfm; /*!< Number of Active UE's in DL per QCI */
517 U32 tbTransDlTotalCnt; /*!< Count of DL TB transmitteed */
518 U32 tbTransDlFaulty; /*!< Count of DL TB for wich NACK not recieved from UE */
519 U32 tbTransUlTotalCnt; /*!< Count of UL TB received successfully */
520 U32 tbTransUlFaulty; /*!< Count of UL TB not recieved successfully */
523 #endif /* LTE_L2_MEAS */
526 Function Prototype Typedefs
528 typedef S16 (*LrgCfgReq) ARGS((
529 Pst *pst, /* Post Structure */
530 RgMngmt *cfg /* Management Structure */
533 typedef S16 (*LrgSchCfgReq) ARGS((
534 Pst *pst, /* Post Structure */
535 RgMngmt *cfg /* Management Structure */
538 typedef S16 (*LrgCfgCfm) ARGS((
539 Pst *pst, /* Post Structure */
540 RgMngmt *cfg /* Management Structure */
543 typedef S16 (*LrgSchCfgCfm) ARGS((
544 Pst *pst, /* Post Structure */
545 RgMngmt *cfg /* Management Structure */
548 typedef S16 (*LrgCntrlReq) ARGS((
549 Pst *pst, /* Post Structure */
550 RgMngmt *cntrl /* Management Structure */
553 typedef S16 (*LrgSchCntrlReq) ARGS((
554 Pst *pst, /* Post Structure */
555 RgMngmt *cntrl /* Management Structure */
558 typedef S16 (*LrgCntrlCfm) ARGS((
559 Pst *pst, /* Post Structure */
560 RgMngmt *cntrl /* Management Structure */
563 typedef S16 (*LrgSchCntrlCfm) ARGS((
564 Pst *pst, /* Post Structure */
565 RgMngmt *cntrl /* Management Structure */
568 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
570 typedef S16 (*LrgSchL2MeasReq) ARGS((
571 Pst *pst, /* Post Structure */
572 LrgSchMeasReqInfo *meas /* L2 Measurement structure */
574 typedef S16 (*LrgSchL2MeasStopReq) ARGS((
575 Pst *pst, /* Post Structure */
576 LrgSchMeasStopReqInfo *meas /* L2 Measurement structure */
578 typedef S16 (*LrgSchL2MeasSendReq) ARGS((
579 Pst *pst, /* Post Structure */
580 LrgSchMeasSndReqInfo *meas /* L2 Measurement structure */
583 typedef S16 (*LrgStaReq) ARGS((
584 Pst *pst, /* Post Structure */
585 RgMngmt *sta /* Management Structure */
588 typedef S16 (*LrgStaCfm) ARGS((
589 Pst *pst, /* Post Structure */
590 RgMngmt *sta /* Management Structure */
593 typedef S16 (*LrgStaInd) ARGS((
594 Pst *pst, /* Post Structure */
595 RgMngmt *sta /* Management Structure */
598 typedef S16 (*LrgSchStaInd) ARGS((
599 Pst *pst, /* Post Structure */
600 RgMngmt *sta /* Management Structure */
603 typedef S16 (*LrgStsReq) ARGS((
604 Pst *pst, /* Post Structure */
605 RgMngmt *sts /* Management Structure */
608 typedef S16 (*LrgStsCfm) ARGS((
609 Pst *pst, /* Post Structure */
610 RgMngmt *sts /* Management Structure */
613 typedef S16 (*LrgTrcInd) ARGS((
614 Pst *pst, /* Post Structure */
615 RgMngmt *trc, /* Management Structure */
616 Buffer *mBuf /* Message Buffer */
619 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
621 typedef S16 (*LrgSchL2MeasCfm) ARGS((
622 Pst *pst, /* Post Structure */
623 LrgSchMeasCfmInfo *schL2MeasCfm /* Measurement Info */
625 typedef S16 (*LrgSchL2MeasStopCfm) ARGS((
626 Pst *pst, /* Post Structure */
627 LrgSchMeasCfmInfo *schL2MeasCfm /* Measurement Info */
629 #endif /* LTE_L2_MEAS */
634 /* lrg_x_001.main_3 - ADD - Added the comments for the following function */
635 /** @brief This primitive is sent from Layer manager to MAC. It carries
636 * configuration information towards MAC.
637 * @details This primitive can be used by layer manager to configure the
638 * following entities at MAC.
639 * -# General configuration
640 * -# RGU SAP i.e. SAP towards RLC
641 * -# CRG SAP i.e. SAP towards RRC
642 * -# TFU SAP i.e. SAP towards Physical layer
644 * @param pst pointer to Pst
645 * @param cfg pointer to RgMngmt
646 * @return ROK/RFAILED
648 EXTERN S16 RgMiLrgCfgReq ARGS((Pst *pst, RgMngmt *cfg));
650 /** @brief This primitive carries the Confirmation for a Configuration Request
651 * sent from the layer manager to MAC.
652 * @details This primitive is used by MAC to inform Layer manager about the
653 * status of a Configuration Request.
654 * @param pst Pointer to the post structure.
655 * @param cfm pointer to RgMngmt
656 * @return ROK/RFAILED
658 EXTERN S16 RgMiLrgCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
660 /** @brief This primitive is sent from Layer manager to Scheduler. It carries
661 * configuration information towards MAC.
662 * @details This primitive can be used by layer manager to configure the
663 * following entities at Scheduler.
664 * -# General configuration
665 * -# RGR SAP i.e. SAP towards RRM
666 * -# TFU SAP i.e. SAP towards Physical layer
668 * @param pst pointer to Pst
669 * @param cfg pointer to RgMngmt
670 * @return ROK/RFAILED
672 EXTERN S16 RgMiLrgSchCfgReq ARGS((Pst *pst, RgMngmt *cfg));
674 /** @brief This primitive carries the Confirmation for a Configuration Request
675 * sent from the layer manager to Scheduler.
676 * @details This primitive is used by Scheduler to inform Layer manager about the
677 * status of a Configuration Request.
678 * @param pst Pointer to the post structure.
679 * @param cfm pointer to RgMngmt
680 * @return ROK/RFAILED
682 EXTERN S16 RgMiLrgSchCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
684 /** @brief This primitive carries the Request for statistics from MAC layer
685 * sent from the layer manager.
686 * @details This primitive is used by layer manager to request for statistics
688 * -# General statistics
689 * -# RGU SAP statistics
690 * -# CRG SAP statistics
691 * -# TFU SAP statistics
692 * @param pst Pointer to the post structure.
693 * @param sts pointer to RgMngmt
694 * @return ROK/RFAILED
696 EXTERN S16 RgMiLrgStsReq ARGS((Pst *pst, RgMngmt *sts));
698 /** @brief This primitive carries the Statistics for a Statistics Request
699 * sent from the layer manager to MAC.
700 * @details This primitive is used by MAC to inform Layer manager about the
701 * Statistics requested earlier.
702 * @param pst Pointer to the post structure.
703 * @param cfm pointer to RgMngmt
704 * @return ROK/RFAILED
706 EXTERN S16 RgMiLrgStsCfm ARGS((Pst *pst, RgMngmt *cfm));
708 /** @brief This primitive carries the Status request
709 * sent from the layer manager to MAC.
710 * @details This primitive is used by the layer manager to request
711 * status from the MAC layer.
712 * @param pst Pointer to the post structure.
713 * @param cfm pointer to RgMngmt
714 * @return ROK/RFAILED
716 EXTERN S16 RgMiLrgStaReq ARGS((Pst *pst, RgMngmt *sta));
718 /** @brief This primitive carries the Confirmation for a Status Request
719 * sent from the layer manager to MAC.
720 * @details This primitive is used by MAC to send a response for the status
721 * Request sent by the layer manager.
722 * @param pst Pointer to the post structure.
723 * @param cfm pointer to RgMngmt
724 * @return ROK/RFAILED
726 EXTERN S16 RgMiLrgStaCfm ARGS((Pst *pst, RgMngmt *cfm));
728 /** @brief This primitive carries the Unsolicited status indications from MAC
729 * to the layer manager i.e. Alarms.
730 * @details This primitive is used by MAC to inform Layer manager about some
731 * error conditions or bind confirmations.
732 * @param pst Pointer to the post structure.
733 * @param usta pointer to RgMngmt
734 * @return ROK/RFAILED
736 EXTERN S16 RgMiLrgStaInd ARGS((Pst *pst, RgMngmt *usta));
737 /** @brief This primitive carries the Unsolicited status indications from
738 * scheduler to the layer manager i.e. Alarms.
739 * @details This primitive is used by Scheduler to inform Layer manager about some
740 * error conditions or bind confirmations.
741 * @param pst Pointer to the post structure.
742 * @param usta pointer to RgMngmt
743 * @return ROK/RFAILED
745 EXTERN S16 RgMiLrgSchStaInd ARGS((Pst *pst, RgMngmt *usta));
747 /** @brief This primitive carries the control request sent from the layer
748 * manager to MAC layer.
749 * @details This primitive is sent from the layer manager to control the MAC
750 * layer. The following entities could be controlled using this primitive.
752 * -# TRACE functionality
753 * -# Binding of lower SAPs
754 * @param pst Pointer to the post structure.
755 * @param cfm pointer to RgMngmt
756 * @return ROK/RFAILED
758 EXTERN S16 RgMiLrgCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
759 /** @brief This primitive carries the Confirmation for a Control Request
760 * sent from the layer manager to MAC.
761 * @details This primitive is used by MAC to inform Layer manager about the
762 * status of a Control Request.
763 * @param pst Pointer to the post structure.
764 * @param cfm pointer to RgMngmt
765 * @return ROK/RFAILED
767 EXTERN S16 RgMiLrgCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
768 /** @brief This primitive carries the control request sent from the layer
769 * manager to MAC layer.
770 * @details This primitive is sent from the layer manager to control the MAC
771 * layer. The following entities could be controlled using this primitive.
773 * -# TRACE functionality
774 * -# Binding of lower SAPs
775 * @param pst Pointer to the post structure.
776 * @param cfm pointer to RgMngmt
777 * @return ROK/RFAILED
779 EXTERN S16 RgMiLrgSchCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
780 /** @brief This primitive carries the Confirmation for a Control Request
781 * sent from the layer manager to MAC.
782 * @details This primitive is used by MAC to inform Layer manager about the
783 * status of a Control Request.
784 * @param pst Pointer to the post structure.
785 * @param cfm pointer to RgMngmt
786 * @return ROK/RFAILED
788 EXTERN S16 RgMiLrgSchCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
789 /** @brief This primitive carries the a copy of the received buffer from MAC to
790 * the layer manager. This is called the Tracing functionality of the layer.
791 * @details This primitive is used by MAC to send a copy of the received buffer
792 * to the layer manager, if Tracing is enabled via a control request.
793 * @param pst Pointer to the post structure.
794 * @param trc pointer to RgMngmt
795 * @param mBuf pointer to Buffer contains the portion of the received message.
796 * @return ROK/RFAILED
798 EXTERN S16 RgMiLrgTrcInd ARGS((Pst *pst, RgMngmt *trc, Buffer *mBuf));
800 /** @brief This primitive is to enable L2 (layer 2) measurements at the MAC
803 * @details Enables the L2 Measurements.
805 * @param pst Pointer to the post structure.
806 * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
807 * @return ROK/RFAILED
809 EXTERN S16 RgMiLrgSchL2MeasReq ARGS((Pst *pst, LrgSchMeasReqInfo *schL2MeasInfo));
810 /** @brief This primitive carries the results of the L2 Measurements gathered
811 * by MAC to the layer manager.
813 * @details Carries the Measurements gathered by MAC.
815 * @param pst Pointer to the post structure.
816 * @param schL2MeasCfm pointer to LrgSchMeasCfmInfo
817 * @return ROK/RFAILED
819 EXTERN S16 RgMiLrgSchL2MeasCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
820 /** @brief This primitive is to Stop L2 (layer 2) measurements at the MAC
823 * @details Enables the L2 Measurements.
825 * @param pst Pointer to the post structure.
826 * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
827 * @return ROK/RFAILED
830 EXTERN S16 RgMiLrgSchL2MeasStopReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *schL2MeasInfo));
831 /** @brief This primitive is to used to send L2 (layer 2) measurements at the MAC
834 * @details Enables the L2 Measurements.
836 * @param pst Pointer to the post structure.
837 * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
838 * @return ROK/RFAILED
841 EXTERN S16 RgMiLrgSchL2MeasSendReq ARGS((Pst *pst,LrgSchMeasSndReqInfo *schL2MeasInfo));
842 /** @brief This primitive carries the confrmratoin of the L2 Measurements gathered
843 * by MAC to the layer manager.
845 * @details Carries the Measurements gathered by MAC.
847 * @param pst Pointer to the post structure.
848 * @param schL2MeasCfm pointer to LrgSchMeasCfmInfo
849 * @return ROK/RFAILED
852 EXTERN S16 RgMiLrgSchL2MeasStopCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
853 #endif /* LTE_L2_MEAS */
857 EXTERN S16 smRgActvInit ARGS((Ent ent,Inst inst, Region region,Reason reason));
858 EXTERN S16 smRgActvTsk ARGS((Pst *pst, Buffer *mBuf));
859 EXTERN S16 SmMiLrgCfgReq ARGS((Pst *pst, RgMngmt *cfg));
860 EXTERN S16 SmMiLrgCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
861 EXTERN S16 SmMiLrgSchCfgReq ARGS((Pst *pst, RgMngmt *cfg));
862 EXTERN S16 SmMiLrgSchCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
863 EXTERN S16 SmMiLrgStsReq ARGS((Pst *pst, RgMngmt *sts));
864 EXTERN S16 SmMiLrgStsCfm ARGS((Pst *pst, RgMngmt *cfm));
865 EXTERN S16 SmMiLrgStaReq ARGS((Pst *pst, RgMngmt *sta));
866 EXTERN S16 SmMiLrgStaCfm ARGS((Pst *pst, RgMngmt *cfm));
867 EXTERN S16 SmMiLrgStaInd ARGS((Pst *pst, RgMngmt *usta));
868 EXTERN S16 SmMiLrgCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
869 EXTERN S16 SmMiLrgSchStaInd ARGS((Pst *pst, RgMngmt *usta));
870 EXTERN S16 SmMiLrgCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
871 EXTERN S16 SmMiLrgSchCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
872 EXTERN S16 SmMiLrgSchCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
873 EXTERN S16 SmMiLrgTrcInd ARGS((Pst *pst, RgMngmt *trc, Buffer *mBuf));
874 /* lrg_x_001.main_3 - ADD - Added the following functions for LTE_L2_MEAS */
876 EXTERN S16 SmMiLrgSchL2MeasStartReq ARGS((Pst *pst, LrgSchMeasReqInfo *schL2MeasReq));
877 EXTERN S16 SmMiLrgSchL2MeasCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
878 EXTERN S16 SmMiLrgSchL2MeasStopReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *schL2MeasReq));
879 EXTERN S16 SmMiLrgSchL2MeasSendReq ARGS((Pst *pst, LrgSchMeasSndReqInfo *schL2MeasReq));
880 EXTERN S16 SmMiLrgSchL2MeasStopCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
881 EXTERN S16 SmMiLrgSchL2MeasReq ARGS((Pst *pst, LrgSchMeasReqInfo *meas));
882 EXTERN S16 SmMiLrgSchL2SendMeasReq ARGS((Pst *pst, LrgSchMeasSndReqInfo *meas));
883 EXTERN S16 SmMiLrgSchL2StopMeasReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *meas));
884 #endif /* LTE_L2_MEAS */
888 Function Prototypes for Packing and Unpacking the primitives.
891 /** @brief This API is used to send a
892 Config Request from LM to MAC.*/
893 EXTERN S16 cmPkLrgCfgReq ARGS((
897 /** @brief This API is used to send a
898 Configuration Request from LM to MAC. */
899 EXTERN S16 cmUnpkLrgCfgReq ARGS((
904 /** @brief This API is used to send a
905 Configuration Request from LM to SCH. */
906 EXTERN S16 cmPkLrgSchCfgReq ARGS((
910 /** @brief This API is used to send a
911 Configuration Request from LM to SCH. */
912 EXTERN S16 cmUnpkLrgSchCfgReq ARGS((
917 /* lrg_x_001.main_3 - ADD - Added the following pack/unpack functions for LTE_L2_MEAS */
919 /** @brief This API is used to send a
920 L2 Measurement Request from LM to SCH. */
921 EXTERN S16 cmPkLrgSchL2MeasReq ARGS((
923 LrgSchMeasReqInfo * meas
925 /** @brief This API is used to send a
926 L2 Measurement Request from LM to SCH. */
927 EXTERN S16 cmUnpkLrgSchL2MeasReq ARGS((
928 LrgSchL2MeasReq func,
932 EXTERN S16 cmPkLrgSchL2MeasCfm ARGS((
934 LrgSchMeasCfmInfo *measInfo
936 EXTERN S16 cmUnpkLrgSchL2MeasCfm ARGS((
937 LrgSchL2MeasCfm func,
941 EXTERN S16 cmPkLrgSchL2MeasReq ARGS((
943 LrgSchMeasReqInfo * meas
945 /** @brief This API is used to send a
946 L2 Measurement Request from LM to SCH. */
947 EXTERN S16 cmUnpkLrgSchL2MeasReq ARGS((
948 LrgSchL2MeasReq func,
952 /** @brief This API is used to send a
953 L2 Measurement Stop Request from LM to SCH. */
954 EXTERN S16 cmPkLrgSchL2MeasSendReq ARGS((
956 LrgSchMeasSndReqInfo * meas
958 /** @brief This API is used to send a
959 L2 Measurement Request from LM to SCH. */
960 EXTERN S16 cmUnpkLrgSchL2MeasSendReq ARGS((
961 LrgSchL2MeasSendReq func,
965 /** @brief This API is used to send a
966 L2 Measurement Stop Request from LM to SCH. */
967 EXTERN S16 cmPkLrgSchL2MeasStopReq ARGS((
969 LrgSchMeasStopReqInfo * meas
971 /** @brief This API is used to send a
972 L2 Measurement Request from LM to SCH. */
973 EXTERN S16 cmUnpkLrgSchL2MeasStopReq ARGS((
974 LrgSchL2MeasStopReq func,
978 /** @brief This API is used to carry
979 L2 Measurement Cfm from SCH. */
980 EXTERN S16 cmPkLrgSchL2MeasStopCfm ARGS((
982 LrgSchMeasCfmInfo *measInfo
984 /** @brief This API is used to carrya
985 L2 Measurement Cfm from SCH. */
986 EXTERN S16 cmUnpkLrgSchL2MeasStopCfm ARGS((
987 LrgSchL2MeasStopCfm func,
992 /** @brief This API is used to send a
993 Configuration Confirm from MAC to LM. */
994 EXTERN S16 cmPkLrgCfgCfm ARGS((
998 /** @brief This API is used to send a
999 Configuration Confirm from MAC to LM. */
1000 EXTERN S16 cmUnpkLrgCfgCfm ARGS((
1005 /** @brief This API is used to send a
1006 Configuration Confirm from SCH to LM. */
1007 EXTERN S16 cmPkLrgSchCfgCfm ARGS((
1011 /** @brief This API is used to send a
1012 Configuration Confirm from SCH to LM. */
1013 EXTERN S16 cmUnpkLrgSchCfgCfm ARGS((
1018 /** @brief This API is used to send a
1019 Statistics Request from LM to MAC. */
1020 EXTERN S16 cmPkLrgStsReq ARGS((
1024 /** @brief This API is used to send a
1025 Statistics Request from LM to MAC. */
1026 EXTERN S16 cmUnpkLrgStsReq ARGS((
1031 /** @brief This API is used to send a
1032 Statistics Confirm from MAC to LM. */
1033 EXTERN S16 cmPkLrgStsCfm ARGS((
1037 /** @brief This API is used to send a
1038 Statistics Confirm from MAC to LM. */
1039 EXTERN S16 cmUnpkLrgStsCfm ARGS((
1044 /** @brief This API is used to send a
1045 Status Request from LM to MAC. */
1046 EXTERN S16 cmPkLrgStaReq ARGS((
1050 /** @brief This API is used to send a
1051 Status Request from LM to MAC. */
1052 EXTERN S16 cmUnpkLrgStaReq ARGS((
1057 /** @brief This API is used to send a
1058 Status Confirm from MAC to LM. */
1059 EXTERN S16 cmPkLrgStaCfm ARGS((
1063 /** @brief This API is used to send a
1064 Status Confirm from MAC to LM. */
1065 EXTERN S16 cmUnpkLrgStaCfm ARGS((
1070 /** @brief This API is used to send a
1071 Status Indication from MAC to LM. */
1072 EXTERN S16 cmPkLrgStaInd ARGS((
1076 /** @brief This API is used to send a
1077 Status Indication from MAC to LM. */
1078 EXTERN S16 cmUnpkLrgStaInd ARGS((
1083 /** @brief This API is used to send a
1084 Status Indication from SCH to LM. */
1085 EXTERN S16 cmPkLrgSchStaInd ARGS((
1089 /** @brief This API is used to send a
1090 Status Indication from SCH to LM. */
1091 EXTERN S16 cmUnpkLrgSchStaInd ARGS((
1096 /** @brief This API is used to send a
1097 Control Request from LM to MAC. */
1098 EXTERN S16 cmPkLrgCntrlReq ARGS((
1102 /** @brief This API is used to send a
1103 Control Request from LM to MAC. */
1104 EXTERN S16 cmUnpkLrgCntrlReq ARGS((
1109 /** @brief This API is used to send a
1110 Control Request from LM to SCH. */
1111 EXTERN S16 cmPkLrgSchCntrlReq ARGS((
1115 /** @brief This API is used to send a
1116 Control Request from LM to SCH. */
1117 EXTERN S16 cmUnpkLrgSchCntrlReq ARGS((
1118 LrgSchCntrlReq func,
1122 /** @brief This API is used to send a
1123 Control Confirm from MAC to LM.*/
1124 EXTERN S16 cmPkLrgCntrlCfm ARGS((
1128 /** @brief This API is used to send a
1129 Control Confirm from MAC to LM. */
1130 EXTERN S16 cmUnpkLrgCntrlCfm ARGS((
1135 /** @brief This API is used to send a
1136 Control Confirm from SCH to LM. */
1137 EXTERN S16 cmPkLrgSchCntrlCfm ARGS((
1141 /** @brief This API is used to send a
1142 Control Confirm from SCH to LM. */
1143 EXTERN S16 cmUnpkLrgSchCntrlCfm ARGS((
1144 LrgSchCntrlCfm func,
1148 /** @brief This API is used to send a
1149 Trace Indication from MAC to LM. */
1150 EXTERN S16 cmPkLrgTrcInd ARGS((
1155 /** @brief This API is used to send a
1156 Trace Indication from MAC to LM. */
1157 EXTERN S16 cmUnpkLrgTrcInd ARGS((
1162 EXTERN S16 cmPkRgGenCfg ARGS((
1166 EXTERN S16 cmUnpkRgGenCfg ARGS((
1170 EXTERN S16 cmPkRgUpSapCfg ARGS((
1174 EXTERN S16 cmUnpkRgUpSapCfg ARGS((
1178 EXTERN S16 cmPkRgLowSapCfg ARGS((
1182 EXTERN S16 cmUnpkRgLowSapCfg ARGS((
1186 EXTERN S16 cmPkRgGenSts ARGS((
1191 #ifdef MAC_SCH_STATS
1192 EXTERN S16 cmPkRgSchHqRetxStats ARGS((
1193 RgSchHqRetxStats *param,
1196 EXTERN S16 cmPkRgSchNackAckStats ARGS((
1197 RgSchNackAckStats *param,
1200 EXTERN S16 cmPkRgHqNumRetx ARGS((
1201 RgSchHqNumRetx *param,
1204 EXTERN S16 cmPkRgAckNack ARGS((
1209 EXTERN S16 cmUnpkRgSchHqRetxStats ARGS((
1210 RgSchHqRetxStats *param,
1213 EXTERN S16 cmUnpkRgSchNackAckStats ARGS((
1214 RgSchNackAckStats *param,
1217 EXTERN S16 cmUnpkRgHqNumRetx ARGS((
1218 RgSchHqNumRetx *param,
1221 EXTERN S16 cmUnpkRgAckNack ARGS((
1225 #endif /* MAC_SCH_STATS */
1227 EXTERN S16 cmUnpkRgGenSts ARGS((
1231 EXTERN S16 cmPkRgSapSts ARGS((
1235 EXTERN S16 cmUnpkRgSapSts ARGS((
1239 EXTERN S16 cmPkRgSchInstCfg ARGS((
1240 RgSchInstCfg *param,
1243 EXTERN S16 cmUnpkRgSchInstCfg ARGS((
1244 RgSchInstCfg *param,
1247 EXTERN S16 cmPkRgCfg ARGS((
1252 EXTERN S16 cmUnpkRgCfg ARGS((
1257 EXTERN S16 cmPkRgSapSta ARGS((
1261 EXTERN S16 cmUnpkRgSapSta ARGS((
1265 EXTERN S16 cmPkRgSts ARGS((
1270 EXTERN S16 cmUnpkRgSts ARGS((
1275 /* lrg_x_001.main_3 - MODIFY - Modified the below function to hold the event type */
1277 EXTERN S16 cmPkRgSsta ARGS((
1281 /*ccpu00118255 - ADD - eventType param */
1285 #else /*LRG_V1 not defined */
1286 EXTERN S16 cmPkRgSsta ARGS((
1292 #endif /* LRG_V1 endif */
1293 EXTERN S16 cmUnpkRgSsta ARGS((
1299 EXTERN S16 cmPkRgUstaDgn ARGS((
1303 EXTERN S16 cmUnpkRgUstaDgn ARGS((
1307 EXTERN S16 cmPkRgUsta ARGS((
1311 EXTERN S16 cmUnpkRgUsta ARGS((
1315 EXTERN S16 cmPkRgTrc ARGS((
1319 EXTERN S16 cmUnpkRgTrc ARGS((
1323 EXTERN S16 cmPkRgDbgCntrl ARGS((
1327 EXTERN S16 cmUnpkRgDbgCntrl ARGS((
1331 EXTERN S16 cmPkRgSapCntrl ARGS((
1335 EXTERN S16 cmUnpkRgSapCntrl ARGS((
1339 EXTERN S16 cmPkRgCntrl ARGS((
1344 EXTERN S16 cmUnpkRgCntrl ARGS((
1349 EXTERN S16 cmPkRgMngmt ARGS((
1355 EXTERN S16 cmUnpkRgMngmt ARGS((
1362 #ifdef PHY_ERROR_LOGING
1363 EXTERN S16 cmPkRgSchUlAllocCntrl ARGS((
1364 RgSchUlAllocCntrl *param,
1368 EXTERN S16 cmUnpkRgSchUlAllocCntrl ARGS((
1369 RgSchUlAllocCntrl *param,
1373 /* lrg_x_001.main_4 ccpu00117036 - C++ support */
1379 #endif /* __LRGX__. */
1382 /**********************************************************************
1384 **********************************************************************/