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.
38 /* ccpu00121930 : ADD: c++ support*/
41 #endif /* __cplusplus */
45 This structure holds configuration parameters for MAC General Configuration. */
46 typedef struct rgGenCfg
48 Pst lmPst; /*!< Layer manager post structure */
49 MemoryId mem; /*!< Region and pool ID */
50 uint8_t tmrRes; /*!< Timer resolution for Low SAP Bind Timer */
51 uint8_t numRguSaps; /*!< Number of RGU SAP's */
52 uint8_t startCellId; /*!< Start cell id value */
54 Bool forceCntrlSrbBoOnPCel; /*!< value 1 means scheduler will schedule
55 RLC control BO and SRBs only on PCEll
56 else it will schedule on both PCell
58 Bool isSCellActDeactAlgoEnable; /*!< TRUE will enable activation/deactivation algo at Schd */
64 This structure holds configuration parameters for MAC Upper SAP Configuration. */
65 typedef struct rgUpSapCfg
67 Selector selector; /*!< Selector */
68 MemoryId mem; /*!< Region and pool ID */
69 Priority prior; /*!< Priority */
70 ProcId procId; /*!< Processor ID */
71 Ent ent; /*!< Entity ID */
72 Inst inst; /*!< Instance ID */
73 Route route; /*!< Route */
74 SpId spId; /*!< Service provider ID */
75 SuId suId; /*!< Service user ID */
80 This structure holds configuration parameters for MAC Lower SAP Configuration. */
81 typedef struct rgLowSapCfg
83 Selector selector; /*!< Selector */
84 MemoryId mem; /*!< Region and pool ID */
85 Priority prior; /*!< Priority */
86 ProcId procId; /*!< Processor ID */
87 Ent ent; /*!< Entity ID */
88 Inst inst; /*!< Instance ID */
89 Route route; /*!< Route */
90 SpId spId; /*!< Service provider ID */
91 SuId suId; /*!< Service user ID */
92 TmrCfg bndTmr; /*!< Bind Timer Value */
97 typedef struct rgAckNack
104 typedef struct rgSchNackAckStats
106 RgAckNack dlCqiStat[15]; /*!< DL Stats */
107 RgAckNack ulCqiStat[15]; /*!< UL stats */
110 typedef struct rgSchHqNumRetx
120 typedef struct rgSchHqRetxStats
122 RgSchHqNumRetx dlCqiStat[15]; /*!< DL Stats */
123 RgSchHqNumRetx ulCqiStat[15]; /*!< UL stats */
126 RgSchNackAckStats hqFailStats;
127 RgSchHqRetxStats hqRetxStats;
128 #endif /* MAC_SCH_STATS */
132 This structure holds General statistical information of MAC. */
133 typedef struct rgGenSts
135 uint32_t numHarqFail; /*!< Number of HARQ failures */
136 uint32_t numUeCfg; /*!< Number of UEs configured */
137 uint16_t numCellCfg; /*!< Number of Cells configured */
139 RgSchNackAckStats nackAckStats;
140 RgSchHqRetxStats hqRetxStats;
141 #endif /* MAC_SCH_STATS */
146 This structure holds statistical information of a SAP in MAC. */
147 typedef struct rgSapSts
149 uint32_t numPduRcvd; /*!< Number of PDUs received. At TFU, PDU refers to TB,
150 and at RGU it is SDU. */
151 uint32_t numPduTxmit; /*!< Number of PDUs transmitted. This field is
152 applicable to TFU. */
153 uint32_t numPduDrop; /*!< Number of PDUs dropped. At TFU, PDU refers to TB,
154 and at RGU it is SDU. */
157 typedef struct rgSchInstCfg
159 uint8_t instId; /*!< Sheduler instance ID */
160 RgGenCfg genCfg; /*!< General Configuration for the scheduler instance */
161 uint8_t numSaps; /*!< Number of RGR and TFU SAPs must be same */
162 RgUpSapCfg rgrSap[LRG_MAX_SAPS_PER_INST]; /*!< RGR interface SAPS */
163 RgUpSapCfg rgmSap[LRG_MAX_SAPS_PER_INST]; /*!< RGR interface SAPS */
164 RgLowSapCfg tfuSap[LRG_MAX_SAPS_PER_INST]; /*!< TFU interface SAPS */
169 This structure holds configuration parameters for MAC. */
174 RgGenCfg genCfg; /*!< General Configuration */
175 /* SAPs for the MAC layer */
176 RgUpSapCfg rguSap; /*!< RGU interface SAP */
177 RgUpSapCfg crgSap; /*!< CRG interface SAP */
178 RgLowSapCfg tfuSap; /*!< TFU interface SAP */
179 RgSchInstCfg schInstCfg;/*!< General Configuration for scheduler instances */
185 This structure holds a SAP's status information. */
186 typedef struct rgSapSta
188 uint8_t sapState; /*!< SAP state */
193 This structure holds MAC's statistical information. */
196 DateTime dt; /*!< Date and Time. */
197 uint8_t sapInst; /*!< SAP instance. */
198 Action action; /*!< Action on Trafffic load related statistic values.
199 ARST: To reset the statistic values. */
202 RgGenSts genSts; /*!< General statistics. */
203 RgSapSts rguSts; /*!< RGU SAP statistics. */
204 RgSapSts crgSts; /*!< CRG SAP statistics. */
205 RgSapSts rgrSts; /*!< RGR SAP statistics. */
206 RgSapSts tfuSts; /*!< TFU SAP statistics. */
212 This structure holds MAC's solicited status information. */
213 typedef struct rgSsta
215 DateTime dt; /*!< Date and time */
216 uint8_t sapInst; /*!< SAP instance */
219 SystemId sysId; /*!< System information */
220 RgSapSta rguSapSta; /*!< RGU SAP state */
221 RgSapSta crgSapSta; /*!< CRG SAP state */
222 RgSapSta rgrSapSta; /*!< RGR SAP state */
223 RgSapSta rgmSapSta; /*!< RGM SAP state */
224 RgSapSta tfuSapSta; /*!< TFU SAP state */
230 Alarm diagnostics structure. */
231 typedef struct rgUstaDgn
233 uint8_t type; /*!< Diagnostics Type */
236 /*lrg_x_001.main_3 - Changed for documentation*/
237 MemoryId mem; /*!< Memory pool and region <BR>
238 LRG_USTA_DGNVAL_MEM Dynamic memory allocation failure. <BR>
239 LRG_USTS_DGNVAL_HARQ Harq Process is busy.
246 This structure holds MAC's Unsolicited Status information. */
247 typedef struct rgUsta
249 CmAlarm cmAlarm; /*!< Alarms */
250 RgUstaDgn dgn; /*!< Alarm diagnostics */
255 This structure holds MAC's Trace Indication information. */
258 DateTime dt; /*!< Date and time */
259 /*lrg_x_001.main_3 - changed for documentation*/
260 uint8_t evnt; /*!< Event <BR>
261 EVTRGUDATREQ Trace for Dedicated channel Data Request. <BR>
262 EVTRGUCDATREQ Trace for common channel data request.<BR>
268 This structure holds MAC's Debug Control information. */
269 typedef struct rgDbgCntrl
271 uint32_t dbgMask; /*!< iThe Layer Manager electively enables or disables various levels of Debug printing <BR>
272 Following are the values: <BR>
273 DBGMASK_PRM Enable/Disable function parameter debug prints <BR>
274 DBGMASK_ERR Enable/Disable error prints <BR>
275 DBGMASK_INFO Enable/Disable informational prints.
281 This structure holds MAC's SAP Control information. */
282 typedef struct rgSapCntrl
284 SuId suId; /*!< Service user ID */
285 SpId spId; /*!< Service provider ID */
288 #ifdef PHY_ERROR_LOGING
289 typedef struct rgSchUlAllocCntrl
302 This structure holds MAC's Control information. */
303 typedef struct rgCntrl
305 DateTime dt; /*!< Date and Time */
306 uint8_t action; /*!< Action */
307 uint8_t subAction; /*!< Sub-action */
308 uint8_t instId; /*!< Scheduler instance ID */
311 RgDbgCntrl rgDbgCntrl; /*!< Debug Control */
312 /*lrg_x_001.main_3 - Changed for documentation.*/
313 S16 trcLen; /*!< Trace Length <BR>
314 i)LRG_FULL_TRACE Give full message <BR>
315 ii)LRG_NO_TRACE Disable Trace<BR>
316 iii)Or any valid S16 value in case where only the specified number
317 of bytes, as indicated by trcLen, are to be sent.*/
318 RgSapCntrl rgSapCntrl; /*!< SAP Control */
319 uint32_t logMask; /*!< Logging control Mask */
320 #ifdef PHY_ERROR_LOGING
321 RgSchUlAllocCntrl rgSchUlAllocCntrl; /* For setting MCS,Number of RB and RB start */
328 This structure holds MAC's Configuration and Control Management Information. */
329 typedef struct rgMngmt
331 Header hdr; /*!< Header */
332 CmStatus cfm; /*!< Confirmation */
335 RgCfg cfg; /*!< Configuration */
336 RgSts sts; /*!< Statistics */
337 RgSsta ssta; /*!< Solicited Status */
338 RgUsta usta; /*!< Unsolicited Status */
339 RgTrc trc; /*!< Trace */
340 RgCntrl cntrl; /*!< Control */
344 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
348 To measure Average Number of PRB's used per QCI for a time period
351 typedef struct lrgAvgPrbQCI
353 uint8_t numQci; /*!< Numner of QCI's in requests */
354 uint8_t qci[LRG_MAX_QCI_PER_REQ]; /*!< QCI for which PRB has to be measured */
359 To measure number of Active UE's per QCI for the given time period
362 typedef struct lrgNmbActvUeQCI
364 uint8_t sampPrd; /*!< sampling prd for which active UE's measured
365 Where sampling period is in milli seconds
366 value can be at most 100ms */
367 uint8_t numQci; /*!< Numner of QCI's in requests */
368 uint8_t qci[LRG_MAX_QCI_PER_REQ]; /*!< QCI for which UE has to be considered */
373 This structure will be used by Layer Manager to L2 Measurement Request
376 typedef struct lrgSchMeasReqInfo
378 Header hdr; /*!< Header */
379 uint16_t measType; /*!< For type of measurement Following are the */
380 /*!< allowed values */
381 /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
382 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL */
383 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
384 /*!< LRG_L2MEAS_RA_PREAMBLE */
385 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
386 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
387 /*!< LRG_L2MEAS_TB_TRANS_DL_COUNT */
388 /*!< LRG_L2MEAS_TB_TRANS_DL_FAULTY_COUNT */
389 /*!< LRG_L2MEAS_TB_TRANS_UL_COUNT */
390 /*!< LRG_L2MEAS_TB_TRANS_UL_FAULTY_COUNT */
391 uint32_t timePrd; /*!< Time period UNITS and value will differ depending
392 on the action. Might be milli seconds/seconds. */
393 CmLteCellId cellId; /*!< CELL Id for which measurement is Done */
394 LrgAvgPrbQCI avgPrbQciUl; /*!< Average PRB usage per QCI in UL */
395 LrgAvgPrbQCI avgPrbQciDl; /*!< Average PRB usage per QCI in DL */
396 LrgNmbActvUeQCI nmbActvUeQciUl; /*!< Number of active UE's per QCI in UL */
397 LrgNmbActvUeQCI nmbActvUeQciDl; /*!< Number of active UE's per QCI in DL */
400 typedef struct lrgSchMeasSndReqInfo
402 Header hdr; /*!< Header */
403 uint16_t measType; /*!< For type of measurement Following are the */
404 /*!< allowed values */
405 /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
406 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL */
407 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
408 /*!< LRG_L2MEAS_RA_PREAMBLE */
409 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
410 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
411 uint32_t timePrd; /*!< Time period UNITS and value will differ depending
412 on the action. Might be milli seconds/seconds. */
413 CmLteCellId cellId; /*!< CELL Id for which measurement is Done */
414 // LrgAvgPrbQCI avgPrbQciUl; /*!< Average PRB usage per QCI in UL */
415 // LrgAvgPrbQCI avgPrbQciDl; /*!< Average PRB usage per QCI in DL */
416 // LrgNmbActvUeQCI nmbActvUeQciUl; /*!< Number of active UE's per QCI in UL */
417 // LrgNmbActvUeQCI nmbActvUeQciDl; /*!< Number of active UE's per QCI in DL */
418 } LrgSchMeasSndReqInfo;
420 typedef struct lrgSchMeasStopReqInfo
422 Header hdr; /*!< Header */
423 uint16_t measType; /*!< For type of measurement Following are the */
424 /*!< allowed values */
425 /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
426 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL */
427 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
428 /*!< LRG_L2MEAS_RA_PREAMBLE */
429 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
430 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
431 /* uint16_t timePrd; */ /*!< Time period UNITS and value will differ depending
432 on the action. Might be milli seconds/seconds. */
433 CmLteCellId cellId; /*!< CELL Id for which measurement is Done */
434 /* LrgAvgPrbQCI avgPrbQciUl; */ /*!< Average PRB usage per QCI in UL */
435 // LrgAvgPrbQCI avgPrbQciDl; /*!< Average PRB usage per QCI in DL */
436 // LrgNmbActvUeQCI nmbActvUeQciUl; /*!< Number of active UE's per QCI in UL */
437 // LrgNmbActvUeQCI nmbActvUeQciDl; /*!< Number of active UE's per QCI in DL */
438 } LrgSchMeasStopReqInfo;
442 Structure to hold Received Random Access Preambles.
444 typedef struct lrgRaPreambles
446 uint16_t dedPreambles; /*!< Dedicated RA Preamble received */
447 uint16_t randSelPreLowRange; /*!< Randomly selected preambles in low range */
448 uint16_t randSelPreHighRange; /*!< Randomly selected preambles in high range */
453 * Staructure to send Avg PRB for a given Time Period
455 typedef struct lrgAvgPrbcfm
457 uint8_t prbPerc; /*!< PRB usage in percentage for UL */
461 typedef struct prbPercQci
467 typedef struct numActvUeQci
470 uint8_t numActvUeQci;
475 * Structure to send Avg PRB for a given period per QCI
477 typedef struct lrgAvgPrbQCICfm
479 uint8_t numQci; /*!< number of QCI */
481 PrbPercQci prbPercQci[LRG_MAX_QCI_PER_REQ]; /*!< PRB usage in percentage per QCI for UL/DL */
487 Structure to send number of Active UE's per QCI
489 typedef struct lrgNumActvUeQCICfm
491 uint8_t numQci; /*!< Numner of QCI's in requests */
493 NumActvUeQci numActvUeQci[LRG_MAX_QCI_PER_REQ]; /*!< Number of Active UE's in UL/DL per QCI */
495 } LrgNumActvUeQCICfm;
498 Structure to send L2 Measurement confirm
500 typedef struct lrgSchMeasCfmInfo
502 Header hdr; /*!< Header information */
503 uint16_t measType; /*!< Type of measurement */
504 CmStatus cfm; /*!< Confirmation possible Values when measType
505 is invalid status -> NOK and reason -> INVALID
507 CmLteCellId cellId; /*!< Cell for which measurement is done */
508 LrgAvgPrbCfm avgPrbUl; /*!< PRB usage in percentage per QCI for UL */
509 LrgAvgPrbCfm avgPrbDl; /*!< PRB usage in percentage per QCI for DL */
510 LrgAvgPrbQCICfm avgPrbQciUlCfm; /*!< PRB usage in percentage per QCI for UL */
511 LrgAvgPrbQCICfm avgPrbQciDlCfm; /*!< PRB usage in percentage per QCI for DL */
512 LrgRaPreamblesCfm raPrmbsCfm; /*!< Different received RA preambles */
513 LrgNumActvUeQCICfm numUeQciUlCfm; /*!< Number of Active UE's in UL per QCI */
514 LrgNumActvUeQCICfm numUeQciDlCfm; /*!< Number of Active UE's in DL per QCI */
515 uint32_t tbTransDlTotalCnt; /*!< Count of DL TB transmitteed */
516 uint32_t tbTransDlFaulty; /*!< Count of DL TB for wich NACK not recieved from UE */
517 uint32_t tbTransUlTotalCnt; /*!< Count of UL TB received successfully */
518 uint32_t tbTransUlFaulty; /*!< Count of UL TB not recieved successfully */
521 #endif /* LTE_L2_MEAS */
524 Function Prototype Typedefs
526 typedef S16 (*LrgCfgReq) ARGS((
527 Pst *pst, /* Post Structure */
528 RgMngmt *cfg /* Management Structure */
531 typedef uint8_t (*LrgSchCfgReq) ARGS((
532 Pst *pst, /* Post Structure */
533 RgMngmt *cfg /* Management Structure */
536 typedef uint8_t (*LrgCfgCfm) ARGS((
537 Pst *pst, /* Post Structure */
538 RgMngmt *cfg /* Management Structure */
541 typedef uint8_t (*LrgSchCfgCfm) ARGS((
542 Pst *pst, /* Post Structure */
543 RgMngmt *cfg /* Management Structure */
546 typedef S16 (*LrgCntrlReq) ARGS((
547 Pst *pst, /* Post Structure */
548 RgMngmt *cntrl /* Management Structure */
551 typedef S16 (*LrgSchCntrlReq) ARGS((
552 Pst *pst, /* Post Structure */
553 RgMngmt *cntrl /* Management Structure */
556 typedef S16 (*LrgCntrlCfm) ARGS((
557 Pst *pst, /* Post Structure */
558 RgMngmt *cntrl /* Management Structure */
561 typedef S16 (*LrgSchCntrlCfm) ARGS((
562 Pst *pst, /* Post Structure */
563 RgMngmt *cntrl /* Management Structure */
566 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
568 typedef S16 (*LrgSchL2MeasReq) ARGS((
569 Pst *pst, /* Post Structure */
570 LrgSchMeasReqInfo *meas /* L2 Measurement structure */
572 typedef S16 (*LrgSchL2MeasStopReq) ARGS((
573 Pst *pst, /* Post Structure */
574 LrgSchMeasStopReqInfo *meas /* L2 Measurement structure */
576 typedef S16 (*LrgSchL2MeasSendReq) ARGS((
577 Pst *pst, /* Post Structure */
578 LrgSchMeasSndReqInfo *meas /* L2 Measurement structure */
581 typedef S16 (*LrgStaReq) ARGS((
582 Pst *pst, /* Post Structure */
583 RgMngmt *sta /* Management Structure */
586 typedef S16 (*LrgStaCfm) ARGS((
587 Pst *pst, /* Post Structure */
588 RgMngmt *sta /* Management Structure */
591 typedef S16 (*LrgStaInd) ARGS((
592 Pst *pst, /* Post Structure */
593 RgMngmt *sta /* Management Structure */
596 typedef S16 (*LrgSchStaInd) ARGS((
597 Pst *pst, /* Post Structure */
598 RgMngmt *sta /* Management Structure */
601 typedef S16 (*LrgStsReq) ARGS((
602 Pst *pst, /* Post Structure */
603 RgMngmt *sts /* Management Structure */
606 typedef S16 (*LrgStsCfm) ARGS((
607 Pst *pst, /* Post Structure */
608 RgMngmt *sts /* Management Structure */
611 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
613 typedef S16 (*LrgSchL2MeasCfm) ARGS((
614 Pst *pst, /* Post Structure */
615 LrgSchMeasCfmInfo *schL2MeasCfm /* Measurement Info */
617 typedef S16 (*LrgSchL2MeasStopCfm) ARGS((
618 Pst *pst, /* Post Structure */
619 LrgSchMeasCfmInfo *schL2MeasCfm /* Measurement Info */
621 #endif /* LTE_L2_MEAS */
626 /* lrg_x_001.main_3 - ADD - Added the comments for the following function */
627 /** @brief This primitive is sent from Layer manager to MAC. It carries
628 * configuration information towards MAC.
629 * @details This primitive can be used by layer manager to configure the
630 * following entities at MAC.
631 * -# General configuration
632 * -# RGU SAP i.e. SAP towards RLC
633 * -# CRG SAP i.e. SAP towards RRC
634 * -# TFU SAP i.e. SAP towards Physical layer
636 * @param pst pointer to Pst
637 * @param cfg pointer to RgMngmt
638 * @return ROK/RFAILED
640 S16 RgMiLrgCfgReq ARGS((Pst *pst, RgMngmt *cfg));
642 /** @brief This primitive carries the Configuration Request
643 * for Scheduler sent from the DU APP to MAC.
644 * @details This primitive is used by MAC to sned the configuration
646 * @param pst Pointer to the post structure.
647 * @param cfm pointer to RgMngmt
648 * @return ROK/RFAILED
650 uint8_t MacSchGenCfgReq ARGS((Pst *pst, RgMngmt *cfg));
652 /** @brief This primitive carries the Confirmation for a Configuration Request
653 * sent from the layer manager to MAC.
654 * @details This primitive is used by MAC to inform Layer manager about the
655 * status of a Configuration Request.
656 * @param pst Pointer to the post structure.
657 * @param cfm pointer to RgMngmt
658 * @return ROK/RFAILED
660 S16 RgMiLrgCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
662 /** @brief This primitive is sent from Layer manager to Scheduler. It carries
663 * configuration information towards MAC.
664 * @details This primitive can be used by layer manager to configure the
665 * following entities at Scheduler.
666 * -# General configuration
667 * -# RGR SAP i.e. SAP towards RRM
668 * -# TFU SAP i.e. SAP towards Physical layer
670 * @param pst pointer to Pst
671 * @param cfg pointer to RgMngmt
672 * @return ROK/RFAILED
674 uint8_t SchProcGenCfgReq ARGS((Pst *pst, RgMngmt *cfg));
676 /** @brief This primitive carries the Confirmation for a Configuration Request
677 * sent from the layer manager to Scheduler.
678 * @details This primitive is used by Scheduler to inform Layer manager about the
679 * status of a Configuration Request.
680 * @param pst Pointer to the post structure.
681 * @param cfm pointer to RgMngmt
682 * @return ROK/RFAILED
684 S16 RgMiLrgSchCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
686 /** @brief This primitive carries the Request for statistics from MAC layer
687 * sent from the layer manager.
688 * @details This primitive is used by layer manager to request for statistics
690 * -# General statistics
691 * -# RGU SAP statistics
692 * -# CRG SAP statistics
693 * -# TFU SAP statistics
694 * @param pst Pointer to the post structure.
695 * @param sts pointer to RgMngmt
696 * @return ROK/RFAILED
698 S16 RgMiLrgStsReq ARGS((Pst *pst, RgMngmt *sts));
700 /** @brief This primitive carries the Statistics for a Statistics Request
701 * sent from the layer manager to MAC.
702 * @details This primitive is used by MAC to inform Layer manager about the
703 * Statistics requested earlier.
704 * @param pst Pointer to the post structure.
705 * @param cfm pointer to RgMngmt
706 * @return ROK/RFAILED
708 S16 RgMiLrgStsCfm ARGS((Pst *pst, RgMngmt *cfm));
710 /** @brief This primitive carries the Unsolicited status indications from MAC
711 * to the layer manager i.e. Alarms.
712 * @details This primitive is used by MAC to inform Layer manager about some
713 * error conditions or bind confirmations.
714 * @param pst Pointer to the post structure.
715 * @param usta pointer to RgMngmt
716 * @return ROK/RFAILED
718 S16 RgMiLrgStaInd ARGS((Pst *pst, RgMngmt *usta));
719 /** @brief This primitive carries the Unsolicited status indications from
720 * scheduler to the layer manager i.e. Alarms.
721 * @details This primitive is used by Scheduler to inform Layer manager about some
722 * error conditions or bind confirmations.
723 * @param pst Pointer to the post structure.
724 * @param usta pointer to RgMngmt
725 * @return ROK/RFAILED
727 S16 RgMiLrgSchStaInd ARGS((Pst *pst, RgMngmt *usta));
730 /** @brief This primitive is to enable L2 (layer 2) measurements at the MAC
733 * @details Enables the L2 Measurements.
735 * @param pst Pointer to the post structure.
736 * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
737 * @return ROK/RFAILED
739 S16 RgMiLrgSchL2MeasReq ARGS((Pst *pst, LrgSchMeasReqInfo *schL2MeasInfo));
740 /** @brief This primitive carries the results of the L2 Measurements gathered
741 * by MAC to the layer manager.
743 * @details Carries the Measurements gathered by MAC.
745 * @param pst Pointer to the post structure.
746 * @param schL2MeasCfm pointer to LrgSchMeasCfmInfo
747 * @return ROK/RFAILED
749 S16 RgMiLrgSchL2MeasCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
750 /** @brief This primitive is to Stop L2 (layer 2) measurements at the MAC
753 * @details Enables the L2 Measurements.
755 * @param pst Pointer to the post structure.
756 * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
757 * @return ROK/RFAILED
760 S16 RgMiLrgSchL2MeasStopReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *schL2MeasInfo));
761 /** @brief This primitive is to used to send L2 (layer 2) measurements at the MAC
764 * @details Enables the L2 Measurements.
766 * @param pst Pointer to the post structure.
767 * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
768 * @return ROK/RFAILED
771 S16 RgMiLrgSchL2MeasSendReq ARGS((Pst *pst,LrgSchMeasSndReqInfo *schL2MeasInfo));
772 /** @brief This primitive carries the confrmratoin of the L2 Measurements gathered
773 * by MAC to the layer manager.
775 * @details Carries the Measurements gathered by MAC.
777 * @param pst Pointer to the post structure.
778 * @param schL2MeasCfm pointer to LrgSchMeasCfmInfo
779 * @return ROK/RFAILED
782 S16 RgMiLrgSchL2MeasStopCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
783 #endif /* LTE_L2_MEAS */
787 S16 smRgActvInit ARGS((Ent ent,Inst inst, Region region,Reason reason));
788 S16 smRgActvTsk ARGS((Pst *pst, Buffer *mBuf));
789 S16 SmMiLrgCfgReq ARGS((Pst *pst, RgMngmt *cfg));
790 S16 SmMiLrgCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
791 S16 SmMiLrgSchCfgReq ARGS((Pst *pst, RgMngmt *cfg));
792 S16 SmMiLrgSchCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
793 S16 SmMiLrgStsReq ARGS((Pst *pst, RgMngmt *sts));
794 S16 SmMiLrgStsCfm ARGS((Pst *pst, RgMngmt *cfm));
795 S16 SmMiLrgStaReq ARGS((Pst *pst, RgMngmt *sta));
796 S16 SmMiLrgStaInd ARGS((Pst *pst, RgMngmt *usta));
797 S16 SmMiLrgCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
798 S16 SmMiLrgSchStaInd ARGS((Pst *pst, RgMngmt *usta));
799 S16 SmMiLrgCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
800 S16 SmMiLrgSchCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
801 /* lrg_x_001.main_3 - ADD - Added the following functions for LTE_L2_MEAS */
803 S16 SmMiLrgSchL2MeasStartReq ARGS((Pst *pst, LrgSchMeasReqInfo *schL2MeasReq));
804 S16 SmMiLrgSchL2MeasCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
805 S16 SmMiLrgSchL2MeasStopReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *schL2MeasReq));
806 S16 SmMiLrgSchL2MeasSendReq ARGS((Pst *pst, LrgSchMeasSndReqInfo *schL2MeasReq));
807 S16 SmMiLrgSchL2MeasStopCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
808 S16 SmMiLrgSchL2MeasReq ARGS((Pst *pst, LrgSchMeasReqInfo *meas));
809 S16 SmMiLrgSchL2SendMeasReq ARGS((Pst *pst, LrgSchMeasSndReqInfo *meas));
810 S16 SmMiLrgSchL2StopMeasReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *meas));
811 #endif /* LTE_L2_MEAS */
815 Function Prototypes for Packing and Unpacking the primitives.
818 /** @brief This API is used to send a
819 Config Request from LM to MAC.*/
820 S16 cmPkLrgCfgReq ARGS((
824 /** @brief This API is used to send a
825 Configuration Request from LM to MAC. */
826 S16 cmUnpkLrgCfgReq ARGS((
831 /** @brief This API is used to send a
832 Configuration Request from LM to SCH. */
833 S16 cmPkLrgSchCfgReq ARGS((
837 /** @brief This API is used to send a
838 Configuration Request from LM to SCH. */
839 S16 cmUnpkLrgSchCfgReq ARGS((
844 /* lrg_x_001.main_3 - ADD - Added the following pack/unpack functions for LTE_L2_MEAS */
846 /** @brief This API is used to send a
847 L2 Measurement Request from LM to SCH. */
848 S16 cmPkLrgSchL2MeasReq ARGS((
850 LrgSchMeasReqInfo * meas
852 /** @brief This API is used to send a
853 L2 Measurement Request from LM to SCH. */
854 S16 cmUnpkLrgSchL2MeasReq ARGS((
855 LrgSchL2MeasReq func,
859 S16 cmPkLrgSchL2MeasCfm ARGS((
861 LrgSchMeasCfmInfo *measInfo
863 S16 cmUnpkLrgSchL2MeasCfm ARGS((
864 LrgSchL2MeasCfm func,
868 S16 cmPkLrgSchL2MeasReq ARGS((
870 LrgSchMeasReqInfo * meas
872 /** @brief This API is used to send a
873 L2 Measurement Request from LM to SCH. */
874 S16 cmUnpkLrgSchL2MeasReq ARGS((
875 LrgSchL2MeasReq func,
879 /** @brief This API is used to send a
880 L2 Measurement Stop Request from LM to SCH. */
881 S16 cmPkLrgSchL2MeasSendReq ARGS((
883 LrgSchMeasSndReqInfo * meas
885 /** @brief This API is used to send a
886 L2 Measurement Request from LM to SCH. */
887 S16 cmUnpkLrgSchL2MeasSendReq ARGS((
888 LrgSchL2MeasSendReq func,
892 /** @brief This API is used to send a
893 L2 Measurement Stop Request from LM to SCH. */
894 S16 cmPkLrgSchL2MeasStopReq ARGS((
896 LrgSchMeasStopReqInfo * meas
898 /** @brief This API is used to send a
899 L2 Measurement Request from LM to SCH. */
900 S16 cmUnpkLrgSchL2MeasStopReq ARGS((
901 LrgSchL2MeasStopReq func,
905 /** @brief This API is used to carry
906 L2 Measurement Cfm from SCH. */
907 S16 cmPkLrgSchL2MeasStopCfm ARGS((
909 LrgSchMeasCfmInfo *measInfo
911 /** @brief This API is used to carrya
912 L2 Measurement Cfm from SCH. */
913 S16 cmUnpkLrgSchL2MeasStopCfm ARGS((
914 LrgSchL2MeasStopCfm func,
919 /** @brief This API is used to send a
920 Configuration Confirm from MAC to LM. */
921 uint8_t cmPkLrgCfgCfm ARGS((
925 /** @brief This API is used to send a
926 Configuration Confirm from MAC to LM. */
927 S16 cmUnpkLrgCfgCfm ARGS((
932 /** @brief This API is used to send a
933 Configuration Confirm from SCH to LM. */
934 uint8_t cmPkLrgSchCfgCfm ARGS((
938 /** @brief This API is used to send a
939 Configuration Confirm from SCH to LM. */
940 S16 cmUnpkLrgSchCfgCfm ARGS((
945 /** @brief This API is used to send a
946 Statistics Request from LM to MAC. */
947 S16 cmPkLrgStsReq ARGS((
951 /** @brief This API is used to send a
952 Statistics Request from LM to MAC. */
953 S16 cmUnpkLrgStsReq ARGS((
958 /** @brief This API is used to send a
959 Statistics Confirm from MAC to LM. */
960 S16 cmPkLrgStsCfm ARGS((
964 /** @brief This API is used to send a
965 Statistics Confirm from MAC to LM. */
966 S16 cmUnpkLrgStsCfm ARGS((
971 /** @brief This API is used to send a
972 Status Indication from MAC to LM. */
973 S16 cmPkLrgStaInd ARGS((
977 /** @brief This API is used to send a
978 Status Indication from MAC to LM. */
979 S16 cmUnpkLrgStaInd ARGS((
984 /** @brief This API is used to send a
985 Status Indication from SCH to LM. */
986 S16 cmPkLrgSchStaInd ARGS((
990 /** @brief This API is used to send a
991 Status Indication from SCH to LM. */
992 S16 cmUnpkLrgSchStaInd ARGS((
997 S16 cmPkRgGenCfg ARGS((
1001 S16 cmUnpkRgGenCfg ARGS((
1005 S16 cmPkRgUpSapCfg ARGS((
1009 S16 cmUnpkRgUpSapCfg ARGS((
1013 S16 cmPkRgLowSapCfg ARGS((
1017 S16 cmUnpkRgLowSapCfg ARGS((
1021 S16 cmPkRgGenSts ARGS((
1026 #ifdef MAC_SCH_STATS
1027 S16 cmPkRgSchHqRetxStats ARGS((
1028 RgSchHqRetxStats *param,
1031 S16 cmPkRgSchNackAckStats ARGS((
1032 RgSchNackAckStats *param,
1035 S16 cmPkRgHqNumRetx ARGS((
1036 RgSchHqNumRetx *param,
1039 S16 cmPkRgAckNack ARGS((
1044 S16 cmUnpkRgSchHqRetxStats ARGS((
1045 RgSchHqRetxStats *param,
1048 S16 cmUnpkRgSchNackAckStats ARGS((
1049 RgSchNackAckStats *param,
1052 S16 cmUnpkRgHqNumRetx ARGS((
1053 RgSchHqNumRetx *param,
1056 S16 cmUnpkRgAckNack ARGS((
1060 #endif /* MAC_SCH_STATS */
1062 S16 cmUnpkRgGenSts ARGS((
1066 S16 cmPkRgSapSts ARGS((
1070 S16 cmUnpkRgSapSts ARGS((
1074 S16 cmPkRgSchInstCfg ARGS((
1075 RgSchInstCfg *param,
1078 S16 cmUnpkRgSchInstCfg ARGS((
1079 RgSchInstCfg *param,
1082 S16 cmPkRgCfg ARGS((
1087 S16 cmUnpkRgCfg ARGS((
1092 S16 cmPkRgSapSta ARGS((
1096 S16 cmUnpkRgSapSta ARGS((
1100 S16 cmPkRgSts ARGS((
1105 S16 cmUnpkRgSts ARGS((
1110 /* lrg_x_001.main_3 - MODIFY - Modified the below function to hold the event type */
1111 S16 cmPkRgUstaDgn ARGS((
1115 S16 cmUnpkRgUstaDgn ARGS((
1119 S16 cmPkRgUsta ARGS((
1123 S16 cmUnpkRgUsta ARGS((
1127 S16 cmPkRgMngmt ARGS((
1133 S16 cmUnpkRgMngmt ARGS((
1140 /* lrg_x_001.main_4 ccpu00117036 - C++ support */
1146 #endif /* __LRGX__. */
1149 /**********************************************************************
1151 **********************************************************************/