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.
37 /* ccpu00121930 : ADD: c++ support*/
40 #endif /* __cplusplus */
44 This structure holds configuration parameters for MAC General Configuration. */
45 typedef struct rgGenCfg
47 Pst lmPst; /*!< Layer manager post structure */
48 MemoryId mem; /*!< Region and pool ID */
49 U8 tmrRes; /*!< Timer resolution for Low SAP Bind Timer */
50 U8 numRguSaps; /*!< Number of RGU SAP's */
51 U8 startCellId; /*!< Start cell id value */
53 Bool forceCntrlSrbBoOnPCel; /*!< value 1 means scheduler will schedule
54 RLC control BO and SRBs only on PCEll
55 else it will schedule on both PCell
57 Bool isSCellActDeactAlgoEnable; /*!< TRUE will enable activation/deactivation algo at Schd */
63 This structure holds configuration parameters for MAC Upper SAP Configuration. */
64 typedef struct rgUpSapCfg
66 Selector selector; /*!< Selector */
67 MemoryId mem; /*!< Region and pool ID */
68 Priority prior; /*!< Priority */
69 ProcId procId; /*!< Processor ID */
70 Ent ent; /*!< Entity ID */
71 Inst inst; /*!< Instance ID */
72 Route route; /*!< Route */
73 SpId spId; /*!< Service provider ID */
74 SuId suId; /*!< Service user ID */
79 This structure holds configuration parameters for MAC Lower SAP Configuration. */
80 typedef struct rgLowSapCfg
82 Selector selector; /*!< Selector */
83 MemoryId mem; /*!< Region and pool ID */
84 Priority prior; /*!< Priority */
85 ProcId procId; /*!< Processor ID */
86 Ent ent; /*!< Entity ID */
87 Inst inst; /*!< Instance ID */
88 Route route; /*!< Route */
89 SpId spId; /*!< Service provider ID */
90 SuId suId; /*!< Service user ID */
91 TmrCfg bndTmr; /*!< Bind Timer Value */
96 typedef struct rgAckNack
103 typedef struct rgSchNackAckStats
105 RgAckNack dlCqiStat[15]; /*!< DL Stats */
106 RgAckNack ulCqiStat[15]; /*!< UL stats */
109 typedef struct rgSchHqNumRetx
119 typedef struct rgSchHqRetxStats
121 RgSchHqNumRetx dlCqiStat[15]; /*!< DL Stats */
122 RgSchHqNumRetx ulCqiStat[15]; /*!< UL stats */
125 EXTERN RgSchNackAckStats hqFailStats;
126 EXTERN RgSchHqRetxStats hqRetxStats;
127 #endif /* MAC_SCH_STATS */
131 This structure holds General statistical information of MAC. */
132 typedef struct rgGenSts
134 U32 numHarqFail; /*!< Number of HARQ failures */
135 U32 numUeCfg; /*!< Number of UEs configured */
136 U16 numCellCfg; /*!< Number of Cells configured */
138 RgSchNackAckStats nackAckStats;
139 RgSchHqRetxStats hqRetxStats;
140 #endif /* MAC_SCH_STATS */
145 This structure holds statistical information of a SAP in MAC. */
146 typedef struct rgSapSts
148 U32 numPduRcvd; /*!< Number of PDUs received. At TFU, PDU refers to TB,
149 and at RGU it is SDU. */
150 U32 numPduTxmit; /*!< Number of PDUs transmitted. This field is
151 applicable to TFU. */
152 U32 numPduDrop; /*!< Number of PDUs dropped. At TFU, PDU refers to TB,
153 and at RGU it is SDU. */
156 typedef struct rgSchInstCfg
158 U8 instId; /*!< Sheduler instance ID */
159 RgGenCfg genCfg; /*!< General Configuration for the scheduler instance */
160 U8 numSaps; /*!< Number of RGR and TFU SAPs must be same */
161 RgUpSapCfg rgrSap[LRG_MAX_SAPS_PER_INST]; /*!< RGR interface SAPS */
162 RgUpSapCfg rgmSap[LRG_MAX_SAPS_PER_INST]; /*!< RGR interface SAPS */
163 RgLowSapCfg tfuSap[LRG_MAX_SAPS_PER_INST]; /*!< TFU interface SAPS */
168 This structure holds configuration parameters for MAC. */
173 RgGenCfg genCfg; /*!< General Configuration */
174 /* SAPs for the MAC layer */
175 RgUpSapCfg rguSap; /*!< RGU interface SAP */
176 RgUpSapCfg crgSap; /*!< CRG interface SAP */
177 RgLowSapCfg tfuSap; /*!< TFU interface SAP */
178 RgSchInstCfg schInstCfg;/*!< General Configuration for scheduler instances */
184 This structure holds a SAP's status information. */
185 typedef struct rgSapSta
187 U8 sapState; /*!< SAP state */
192 This structure holds MAC's statistical information. */
195 DateTime dt; /*!< Date and Time. */
196 U8 sapInst; /*!< SAP instance. */
197 Action action; /*!< Action on Trafffic load related statistic values.
198 ARST: To reset the statistic values. */
201 RgGenSts genSts; /*!< General statistics. */
202 RgSapSts rguSts; /*!< RGU SAP statistics. */
203 RgSapSts crgSts; /*!< CRG SAP statistics. */
204 RgSapSts rgrSts; /*!< RGR SAP statistics. */
205 RgSapSts tfuSts; /*!< TFU SAP statistics. */
211 This structure holds MAC's solicited status information. */
212 typedef struct rgSsta
214 DateTime dt; /*!< Date and time */
215 U8 sapInst; /*!< SAP instance */
218 SystemId sysId; /*!< System information */
219 RgSapSta rguSapSta; /*!< RGU SAP state */
220 RgSapSta crgSapSta; /*!< CRG SAP state */
221 RgSapSta rgrSapSta; /*!< RGR SAP state */
222 RgSapSta rgmSapSta; /*!< RGM SAP state */
223 RgSapSta tfuSapSta; /*!< TFU SAP state */
229 Alarm diagnostics structure. */
230 typedef struct rgUstaDgn
232 U8 type; /*!< Diagnostics Type */
235 /*lrg_x_001.main_3 - Changed for documentation*/
236 MemoryId mem; /*!< Memory pool and region <BR>
237 LRG_USTA_DGNVAL_MEM Dynamic memory allocation failure. <BR>
238 LRG_USTS_DGNVAL_HARQ Harq Process is busy.
245 This structure holds MAC's Unsolicited Status information. */
246 typedef struct rgUsta
248 CmAlarm cmAlarm; /*!< Alarms */
249 RgUstaDgn dgn; /*!< Alarm diagnostics */
254 This structure holds MAC's Trace Indication information. */
257 DateTime dt; /*!< Date and time */
258 /*lrg_x_001.main_3 - changed for documentation*/
259 U8 evnt; /*!< Event <BR>
260 EVTRGUDATREQ Trace for Dedicated channel Data Request. <BR>
261 EVTRGUCDATREQ Trace for common channel data request.<BR>
267 This structure holds MAC's Debug Control information. */
268 typedef struct rgDbgCntrl
270 U32 dbgMask; /*!< iThe Layer Manager electively enables or disables various levels of Debug printing <BR>
271 Following are the values: <BR>
272 DBGMASK_PRM Enable/Disable function parameter debug prints <BR>
273 DBGMASK_ERR Enable/Disable error prints <BR>
274 DBGMASK_INFO Enable/Disable informational prints.
280 This structure holds MAC's SAP Control information. */
281 typedef struct rgSapCntrl
283 SuId suId; /*!< Service user ID */
284 SpId spId; /*!< Service provider ID */
287 #ifdef PHY_ERROR_LOGING
288 typedef struct rgSchUlAllocCntrl
301 This structure holds MAC's Control information. */
302 typedef struct rgCntrl
304 DateTime dt; /*!< Date and Time */
305 U8 action; /*!< Action */
306 U8 subAction; /*!< Sub-action */
307 U8 instId; /*!< Scheduler instance ID */
310 RgDbgCntrl rgDbgCntrl; /*!< Debug Control */
311 /*lrg_x_001.main_3 - Changed for documentation.*/
312 S16 trcLen; /*!< Trace Length <BR>
313 i)LRG_FULL_TRACE Give full message <BR>
314 ii)LRG_NO_TRACE Disable Trace<BR>
315 iii)Or any valid S16 value in case where only the specified number
316 of bytes, as indicated by trcLen, are to be sent.*/
317 RgSapCntrl rgSapCntrl; /*!< SAP Control */
318 U32 logMask; /*!< Logging control Mask */
319 #ifdef PHY_ERROR_LOGING
320 RgSchUlAllocCntrl rgSchUlAllocCntrl; /* For setting MCS,Number of RB and RB start */
327 This structure holds MAC's Configuration and Control Management Information. */
328 typedef struct rgMngmt
330 Header hdr; /*!< Header */
331 CmStatus cfm; /*!< Confirmation */
334 RgCfg cfg; /*!< Configuration */
335 RgSts sts; /*!< Statistics */
336 RgSsta ssta; /*!< Solicited Status */
337 RgUsta usta; /*!< Unsolicited Status */
338 RgTrc trc; /*!< Trace */
339 RgCntrl cntrl; /*!< Control */
343 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
347 To measure Average Number of PRB's used per QCI for a time period
350 typedef struct lrgAvgPrbQCI
352 U8 numQci; /*!< Numner of QCI's in requests */
353 U8 qci[LRG_MAX_QCI_PER_REQ]; /*!< QCI for which PRB has to be measured */
358 To measure number of Active UE's per QCI for the given time period
361 typedef struct lrgNmbActvUeQCI
363 U8 sampPrd; /*!< sampling prd for which active UE's measured
364 Where sampling period is in milli seconds
365 value can be at most 100ms */
366 U8 numQci; /*!< Numner of QCI's in requests */
367 U8 qci[LRG_MAX_QCI_PER_REQ]; /*!< QCI for which UE has to be considered */
372 This structure will be used by Layer Manager to L2 Measurement Request
375 typedef struct lrgSchMeasReqInfo
377 Header hdr; /*!< Header */
378 U16 measType; /*!< For type of measurement Following are the */
379 /*!< allowed values */
380 /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
381 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL */
382 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
383 /*!< LRG_L2MEAS_RA_PREAMBLE */
384 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
385 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
386 /*!< LRG_L2MEAS_TB_TRANS_DL_COUNT */
387 /*!< LRG_L2MEAS_TB_TRANS_DL_FAULTY_COUNT */
388 /*!< LRG_L2MEAS_TB_TRANS_UL_COUNT */
389 /*!< LRG_L2MEAS_TB_TRANS_UL_FAULTY_COUNT */
390 U32 timePrd; /*!< Time period UNITS and value will differ depending
391 on the action. Might be milli seconds/seconds. */
392 CmLteCellId cellId; /*!< CELL Id for which measurement is Done */
393 LrgAvgPrbQCI avgPrbQciUl; /*!< Average PRB usage per QCI in UL */
394 LrgAvgPrbQCI avgPrbQciDl; /*!< Average PRB usage per QCI in DL */
395 LrgNmbActvUeQCI nmbActvUeQciUl; /*!< Number of active UE's per QCI in UL */
396 LrgNmbActvUeQCI nmbActvUeQciDl; /*!< Number of active UE's per QCI in DL */
399 typedef struct lrgSchMeasSndReqInfo
401 Header hdr; /*!< Header */
402 U16 measType; /*!< For type of measurement Following are the */
403 /*!< allowed values */
404 /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
405 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL */
406 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
407 /*!< LRG_L2MEAS_RA_PREAMBLE */
408 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
409 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
410 U32 timePrd; /*!< Time period UNITS and value will differ depending
411 on the action. Might be milli seconds/seconds. */
412 CmLteCellId cellId; /*!< CELL Id for which measurement is Done */
413 // LrgAvgPrbQCI avgPrbQciUl; /*!< Average PRB usage per QCI in UL */
414 // LrgAvgPrbQCI avgPrbQciDl; /*!< Average PRB usage per QCI in DL */
415 // LrgNmbActvUeQCI nmbActvUeQciUl; /*!< Number of active UE's per QCI in UL */
416 // LrgNmbActvUeQCI nmbActvUeQciDl; /*!< Number of active UE's per QCI in DL */
417 } LrgSchMeasSndReqInfo;
419 typedef struct lrgSchMeasStopReqInfo
421 Header hdr; /*!< Header */
422 U16 measType; /*!< For type of measurement Following are the */
423 /*!< allowed values */
424 /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
425 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL */
426 /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
427 /*!< LRG_L2MEAS_RA_PREAMBLE */
428 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
429 /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
430 /* U16 timePrd; */ /*!< Time period UNITS and value will differ depending
431 on the action. Might be milli seconds/seconds. */
432 CmLteCellId cellId; /*!< CELL Id for which measurement is Done */
433 /* LrgAvgPrbQCI avgPrbQciUl; */ /*!< Average PRB usage per QCI in UL */
434 // LrgAvgPrbQCI avgPrbQciDl; /*!< Average PRB usage per QCI in DL */
435 // LrgNmbActvUeQCI nmbActvUeQciUl; /*!< Number of active UE's per QCI in UL */
436 // LrgNmbActvUeQCI nmbActvUeQciDl; /*!< Number of active UE's per QCI in DL */
437 } LrgSchMeasStopReqInfo;
441 Structure to hold Received Random Access Preambles.
443 typedef struct lrgRaPreambles
445 U16 dedPreambles; /*!< Dedicated RA Preamble received */
446 U16 randSelPreLowRange; /*!< Randomly selected preambles in low range */
447 U16 randSelPreHighRange; /*!< Randomly selected preambles in high range */
452 * Staructure to send Avg PRB for a given Time Period
454 typedef struct lrgAvgPrbcfm
456 U8 prbPerc; /*!< PRB usage in percentage for UL */
460 typedef struct prbPercQci
466 typedef struct numActvUeQci
474 * Structure to send Avg PRB for a given period per QCI
476 typedef struct lrgAvgPrbQCICfm
478 U8 numQci; /*!< number of QCI */
480 PrbPercQci prbPercQci[LRG_MAX_QCI_PER_REQ]; /*!< PRB usage in percentage per QCI for UL/DL */
486 Structure to send number of Active UE's per QCI
488 typedef struct lrgNumActvUeQCICfm
490 U8 numQci; /*!< Numner of QCI's in requests */
492 NumActvUeQci numActvUeQci[LRG_MAX_QCI_PER_REQ]; /*!< Number of Active UE's in UL/DL per QCI */
494 } LrgNumActvUeQCICfm;
497 Structure to send L2 Measurement confirm
499 typedef struct lrgSchMeasCfmInfo
501 Header hdr; /*!< Header information */
502 U16 measType; /*!< Type of measurement */
503 CmStatus cfm; /*!< Confirmation possible Values when measType
504 is invalid status -> NOK and reason -> INVALID
506 CmLteCellId cellId; /*!< Cell for which measurement is done */
507 LrgAvgPrbCfm avgPrbUl; /*!< PRB usage in percentage per QCI for UL */
508 LrgAvgPrbCfm avgPrbDl; /*!< PRB usage in percentage per QCI for DL */
509 LrgAvgPrbQCICfm avgPrbQciUlCfm; /*!< PRB usage in percentage per QCI for UL */
510 LrgAvgPrbQCICfm avgPrbQciDlCfm; /*!< PRB usage in percentage per QCI for DL */
511 LrgRaPreamblesCfm raPrmbsCfm; /*!< Different received RA preambles */
512 LrgNumActvUeQCICfm numUeQciUlCfm; /*!< Number of Active UE's in UL per QCI */
513 LrgNumActvUeQCICfm numUeQciDlCfm; /*!< Number of Active UE's in DL per QCI */
514 U32 tbTransDlTotalCnt; /*!< Count of DL TB transmitteed */
515 U32 tbTransDlFaulty; /*!< Count of DL TB for wich NACK not recieved from UE */
516 U32 tbTransUlTotalCnt; /*!< Count of UL TB received successfully */
517 U32 tbTransUlFaulty; /*!< Count of UL TB not recieved successfully */
520 #endif /* LTE_L2_MEAS */
523 Function Prototype Typedefs
525 typedef S16 (*LrgCfgReq) ARGS((
526 Pst *pst, /* Post Structure */
527 RgMngmt *cfg /* Management Structure */
530 typedef S16 (*LrgSchCfgReq) ARGS((
531 Pst *pst, /* Post Structure */
532 RgMngmt *cfg /* Management Structure */
535 typedef S16 (*LrgCfgCfm) ARGS((
536 Pst *pst, /* Post Structure */
537 RgMngmt *cfg /* Management Structure */
540 typedef S16 (*LrgSchCfgCfm) ARGS((
541 Pst *pst, /* Post Structure */
542 RgMngmt *cfg /* Management Structure */
545 typedef S16 (*LrgCntrlReq) ARGS((
546 Pst *pst, /* Post Structure */
547 RgMngmt *cntrl /* Management Structure */
550 typedef S16 (*LrgSchCntrlReq) ARGS((
551 Pst *pst, /* Post Structure */
552 RgMngmt *cntrl /* Management Structure */
555 typedef S16 (*LrgCntrlCfm) ARGS((
556 Pst *pst, /* Post Structure */
557 RgMngmt *cntrl /* Management Structure */
560 typedef S16 (*LrgSchCntrlCfm) ARGS((
561 Pst *pst, /* Post Structure */
562 RgMngmt *cntrl /* Management Structure */
565 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
567 typedef S16 (*LrgSchL2MeasReq) ARGS((
568 Pst *pst, /* Post Structure */
569 LrgSchMeasReqInfo *meas /* L2 Measurement structure */
571 typedef S16 (*LrgSchL2MeasStopReq) ARGS((
572 Pst *pst, /* Post Structure */
573 LrgSchMeasStopReqInfo *meas /* L2 Measurement structure */
575 typedef S16 (*LrgSchL2MeasSendReq) ARGS((
576 Pst *pst, /* Post Structure */
577 LrgSchMeasSndReqInfo *meas /* L2 Measurement structure */
580 typedef S16 (*LrgStaReq) ARGS((
581 Pst *pst, /* Post Structure */
582 RgMngmt *sta /* Management Structure */
585 typedef S16 (*LrgStaCfm) ARGS((
586 Pst *pst, /* Post Structure */
587 RgMngmt *sta /* Management Structure */
590 typedef S16 (*LrgStaInd) ARGS((
591 Pst *pst, /* Post Structure */
592 RgMngmt *sta /* Management Structure */
595 typedef S16 (*LrgSchStaInd) ARGS((
596 Pst *pst, /* Post Structure */
597 RgMngmt *sta /* Management Structure */
600 typedef S16 (*LrgStsReq) ARGS((
601 Pst *pst, /* Post Structure */
602 RgMngmt *sts /* Management Structure */
605 typedef S16 (*LrgStsCfm) ARGS((
606 Pst *pst, /* Post Structure */
607 RgMngmt *sts /* Management Structure */
610 typedef S16 (*LrgTrcInd) ARGS((
611 Pst *pst, /* Post Structure */
612 RgMngmt *trc, /* Management Structure */
613 Buffer *mBuf /* Message Buffer */
616 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
618 typedef S16 (*LrgSchL2MeasCfm) ARGS((
619 Pst *pst, /* Post Structure */
620 LrgSchMeasCfmInfo *schL2MeasCfm /* Measurement Info */
622 typedef S16 (*LrgSchL2MeasStopCfm) ARGS((
623 Pst *pst, /* Post Structure */
624 LrgSchMeasCfmInfo *schL2MeasCfm /* Measurement Info */
626 #endif /* LTE_L2_MEAS */
631 /* lrg_x_001.main_3 - ADD - Added the comments for the following function */
632 /** @brief This primitive is sent from Layer manager to MAC. It carries
633 * configuration information towards MAC.
634 * @details This primitive can be used by layer manager to configure the
635 * following entities at MAC.
636 * -# General configuration
637 * -# RGU SAP i.e. SAP towards RLC
638 * -# CRG SAP i.e. SAP towards RRC
639 * -# TFU SAP i.e. SAP towards Physical layer
641 * @param pst pointer to Pst
642 * @param cfg pointer to RgMngmt
643 * @return ROK/RFAILED
645 EXTERN S16 RgMiLrgCfgReq ARGS((Pst *pst, RgMngmt *cfg));
647 /** @brief This primitive carries the Confirmation for a Configuration Request
648 * sent from the layer manager to MAC.
649 * @details This primitive is used by MAC to inform Layer manager about the
650 * status of a Configuration Request.
651 * @param pst Pointer to the post structure.
652 * @param cfm pointer to RgMngmt
653 * @return ROK/RFAILED
655 EXTERN S16 RgMiLrgCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
657 /** @brief This primitive is sent from Layer manager to Scheduler. It carries
658 * configuration information towards MAC.
659 * @details This primitive can be used by layer manager to configure the
660 * following entities at Scheduler.
661 * -# General configuration
662 * -# RGR SAP i.e. SAP towards RRM
663 * -# TFU SAP i.e. SAP towards Physical layer
665 * @param pst pointer to Pst
666 * @param cfg pointer to RgMngmt
667 * @return ROK/RFAILED
669 EXTERN S16 RgMiLrgSchCfgReq ARGS((Pst *pst, RgMngmt *cfg));
671 /** @brief This primitive carries the Confirmation for a Configuration Request
672 * sent from the layer manager to Scheduler.
673 * @details This primitive is used by Scheduler to inform Layer manager about the
674 * status of a Configuration Request.
675 * @param pst Pointer to the post structure.
676 * @param cfm pointer to RgMngmt
677 * @return ROK/RFAILED
679 EXTERN S16 RgMiLrgSchCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
681 /** @brief This primitive carries the Request for statistics from MAC layer
682 * sent from the layer manager.
683 * @details This primitive is used by layer manager to request for statistics
685 * -# General statistics
686 * -# RGU SAP statistics
687 * -# CRG SAP statistics
688 * -# TFU SAP statistics
689 * @param pst Pointer to the post structure.
690 * @param sts pointer to RgMngmt
691 * @return ROK/RFAILED
693 EXTERN S16 RgMiLrgStsReq ARGS((Pst *pst, RgMngmt *sts));
695 /** @brief This primitive carries the Statistics for a Statistics Request
696 * sent from the layer manager to MAC.
697 * @details This primitive is used by MAC to inform Layer manager about the
698 * Statistics requested earlier.
699 * @param pst Pointer to the post structure.
700 * @param cfm pointer to RgMngmt
701 * @return ROK/RFAILED
703 EXTERN S16 RgMiLrgStsCfm ARGS((Pst *pst, RgMngmt *cfm));
705 /** @brief This primitive carries the Status request
706 * sent from the layer manager to MAC.
707 * @details This primitive is used by the layer manager to request
708 * status from the MAC layer.
709 * @param pst Pointer to the post structure.
710 * @param cfm pointer to RgMngmt
711 * @return ROK/RFAILED
713 EXTERN S16 RgMiLrgStaReq ARGS((Pst *pst, RgMngmt *sta));
715 /** @brief This primitive carries the Confirmation for a Status Request
716 * sent from the layer manager to MAC.
717 * @details This primitive is used by MAC to send a response for the status
718 * Request sent by the layer manager.
719 * @param pst Pointer to the post structure.
720 * @param cfm pointer to RgMngmt
721 * @return ROK/RFAILED
723 EXTERN S16 RgMiLrgStaCfm ARGS((Pst *pst, RgMngmt *cfm));
725 /** @brief This primitive carries the Unsolicited status indications from MAC
726 * to the layer manager i.e. Alarms.
727 * @details This primitive is used by MAC to inform Layer manager about some
728 * error conditions or bind confirmations.
729 * @param pst Pointer to the post structure.
730 * @param usta pointer to RgMngmt
731 * @return ROK/RFAILED
733 EXTERN S16 RgMiLrgStaInd ARGS((Pst *pst, RgMngmt *usta));
734 /** @brief This primitive carries the Unsolicited status indications from
735 * scheduler to the layer manager i.e. Alarms.
736 * @details This primitive is used by Scheduler to inform Layer manager about some
737 * error conditions or bind confirmations.
738 * @param pst Pointer to the post structure.
739 * @param usta pointer to RgMngmt
740 * @return ROK/RFAILED
742 EXTERN S16 RgMiLrgSchStaInd ARGS((Pst *pst, RgMngmt *usta));
744 /** @brief This primitive carries the control request sent from the layer
745 * manager to MAC layer.
746 * @details This primitive is sent from the layer manager to control the MAC
747 * layer. The following entities could be controlled using this primitive.
749 * -# TRACE functionality
750 * -# Binding of lower SAPs
751 * @param pst Pointer to the post structure.
752 * @param cfm pointer to RgMngmt
753 * @return ROK/RFAILED
755 EXTERN S16 RgMiLrgCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
756 /** @brief This primitive carries the Confirmation for a Control Request
757 * sent from the layer manager to MAC.
758 * @details This primitive is used by MAC to inform Layer manager about the
759 * status of a Control Request.
760 * @param pst Pointer to the post structure.
761 * @param cfm pointer to RgMngmt
762 * @return ROK/RFAILED
764 EXTERN S16 RgMiLrgCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
765 /** @brief This primitive carries the control request sent from the layer
766 * manager to MAC layer.
767 * @details This primitive is sent from the layer manager to control the MAC
768 * layer. The following entities could be controlled using this primitive.
770 * -# TRACE functionality
771 * -# Binding of lower SAPs
772 * @param pst Pointer to the post structure.
773 * @param cfm pointer to RgMngmt
774 * @return ROK/RFAILED
776 EXTERN S16 RgMiLrgSchCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
777 /** @brief This primitive carries the Confirmation for a Control Request
778 * sent from the layer manager to MAC.
779 * @details This primitive is used by MAC to inform Layer manager about the
780 * status of a Control Request.
781 * @param pst Pointer to the post structure.
782 * @param cfm pointer to RgMngmt
783 * @return ROK/RFAILED
785 EXTERN S16 RgMiLrgSchCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
786 /** @brief This primitive carries the a copy of the received buffer from MAC to
787 * the layer manager. This is called the Tracing functionality of the layer.
788 * @details This primitive is used by MAC to send a copy of the received buffer
789 * to the layer manager, if Tracing is enabled via a control request.
790 * @param pst Pointer to the post structure.
791 * @param trc pointer to RgMngmt
792 * @param mBuf pointer to Buffer contains the portion of the received message.
793 * @return ROK/RFAILED
795 EXTERN S16 RgMiLrgTrcInd ARGS((Pst *pst, RgMngmt *trc, Buffer *mBuf));
797 /** @brief This primitive is to enable L2 (layer 2) measurements at the MAC
800 * @details Enables the L2 Measurements.
802 * @param pst Pointer to the post structure.
803 * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
804 * @return ROK/RFAILED
806 EXTERN S16 RgMiLrgSchL2MeasReq ARGS((Pst *pst, LrgSchMeasReqInfo *schL2MeasInfo));
807 /** @brief This primitive carries the results of the L2 Measurements gathered
808 * by MAC to the layer manager.
810 * @details Carries the Measurements gathered by MAC.
812 * @param pst Pointer to the post structure.
813 * @param schL2MeasCfm pointer to LrgSchMeasCfmInfo
814 * @return ROK/RFAILED
816 EXTERN S16 RgMiLrgSchL2MeasCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
817 /** @brief This primitive is to Stop L2 (layer 2) measurements at the MAC
820 * @details Enables the L2 Measurements.
822 * @param pst Pointer to the post structure.
823 * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
824 * @return ROK/RFAILED
827 EXTERN S16 RgMiLrgSchL2MeasStopReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *schL2MeasInfo));
828 /** @brief This primitive is to used to send L2 (layer 2) measurements at the MAC
831 * @details Enables the L2 Measurements.
833 * @param pst Pointer to the post structure.
834 * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
835 * @return ROK/RFAILED
838 EXTERN S16 RgMiLrgSchL2MeasSendReq ARGS((Pst *pst,LrgSchMeasSndReqInfo *schL2MeasInfo));
839 /** @brief This primitive carries the confrmratoin of the L2 Measurements gathered
840 * by MAC to the layer manager.
842 * @details Carries the Measurements gathered by MAC.
844 * @param pst Pointer to the post structure.
845 * @param schL2MeasCfm pointer to LrgSchMeasCfmInfo
846 * @return ROK/RFAILED
849 EXTERN S16 RgMiLrgSchL2MeasStopCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
850 #endif /* LTE_L2_MEAS */
854 EXTERN S16 smRgActvInit ARGS((Ent ent,Inst inst, Region region,Reason reason));
855 EXTERN S16 smRgActvTsk ARGS((Pst *pst, Buffer *mBuf));
856 EXTERN S16 SmMiLrgCfgReq ARGS((Pst *pst, RgMngmt *cfg));
857 EXTERN S16 SmMiLrgCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
858 EXTERN S16 SmMiLrgSchCfgReq ARGS((Pst *pst, RgMngmt *cfg));
859 EXTERN S16 SmMiLrgSchCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
860 EXTERN S16 SmMiLrgStsReq ARGS((Pst *pst, RgMngmt *sts));
861 EXTERN S16 SmMiLrgStsCfm ARGS((Pst *pst, RgMngmt *cfm));
862 EXTERN S16 SmMiLrgStaReq ARGS((Pst *pst, RgMngmt *sta));
863 EXTERN S16 SmMiLrgStaCfm ARGS((Pst *pst, RgMngmt *cfm));
864 EXTERN S16 SmMiLrgStaInd ARGS((Pst *pst, RgMngmt *usta));
865 EXTERN S16 SmMiLrgCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
866 EXTERN S16 SmMiLrgSchStaInd ARGS((Pst *pst, RgMngmt *usta));
867 EXTERN S16 SmMiLrgCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
868 EXTERN S16 SmMiLrgSchCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
869 EXTERN S16 SmMiLrgSchCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
870 EXTERN S16 SmMiLrgTrcInd ARGS((Pst *pst, RgMngmt *trc, Buffer *mBuf));
871 /* lrg_x_001.main_3 - ADD - Added the following functions for LTE_L2_MEAS */
873 EXTERN S16 SmMiLrgSchL2MeasStartReq ARGS((Pst *pst, LrgSchMeasReqInfo *schL2MeasReq));
874 EXTERN S16 SmMiLrgSchL2MeasCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
875 EXTERN S16 SmMiLrgSchL2MeasStopReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *schL2MeasReq));
876 EXTERN S16 SmMiLrgSchL2MeasSendReq ARGS((Pst *pst, LrgSchMeasSndReqInfo *schL2MeasReq));
877 EXTERN S16 SmMiLrgSchL2MeasStopCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
878 EXTERN S16 SmMiLrgSchL2MeasReq ARGS((Pst *pst, LrgSchMeasReqInfo *meas));
879 EXTERN S16 SmMiLrgSchL2SendMeasReq ARGS((Pst *pst, LrgSchMeasSndReqInfo *meas));
880 EXTERN S16 SmMiLrgSchL2StopMeasReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *meas));
881 #endif /* LTE_L2_MEAS */
885 Function Prototypes for Packing and Unpacking the primitives.
888 /** @brief This API is used to send a
889 Config Request from LM to MAC.*/
890 EXTERN S16 cmPkLrgCfgReq ARGS((
894 /** @brief This API is used to send a
895 Configuration Request from LM to MAC. */
896 EXTERN S16 cmUnpkLrgCfgReq ARGS((
901 /** @brief This API is used to send a
902 Configuration Request from LM to SCH. */
903 EXTERN S16 cmPkLrgSchCfgReq ARGS((
907 /** @brief This API is used to send a
908 Configuration Request from LM to SCH. */
909 EXTERN S16 cmUnpkLrgSchCfgReq ARGS((
914 /* lrg_x_001.main_3 - ADD - Added the following pack/unpack functions for LTE_L2_MEAS */
916 /** @brief This API is used to send a
917 L2 Measurement Request from LM to SCH. */
918 EXTERN S16 cmPkLrgSchL2MeasReq ARGS((
920 LrgSchMeasReqInfo * meas
922 /** @brief This API is used to send a
923 L2 Measurement Request from LM to SCH. */
924 EXTERN S16 cmUnpkLrgSchL2MeasReq ARGS((
925 LrgSchL2MeasReq func,
929 EXTERN S16 cmPkLrgSchL2MeasCfm ARGS((
931 LrgSchMeasCfmInfo *measInfo
933 EXTERN S16 cmUnpkLrgSchL2MeasCfm ARGS((
934 LrgSchL2MeasCfm func,
938 EXTERN S16 cmPkLrgSchL2MeasReq ARGS((
940 LrgSchMeasReqInfo * meas
942 /** @brief This API is used to send a
943 L2 Measurement Request from LM to SCH. */
944 EXTERN S16 cmUnpkLrgSchL2MeasReq ARGS((
945 LrgSchL2MeasReq func,
949 /** @brief This API is used to send a
950 L2 Measurement Stop Request from LM to SCH. */
951 EXTERN S16 cmPkLrgSchL2MeasSendReq ARGS((
953 LrgSchMeasSndReqInfo * meas
955 /** @brief This API is used to send a
956 L2 Measurement Request from LM to SCH. */
957 EXTERN S16 cmUnpkLrgSchL2MeasSendReq ARGS((
958 LrgSchL2MeasSendReq func,
962 /** @brief This API is used to send a
963 L2 Measurement Stop Request from LM to SCH. */
964 EXTERN S16 cmPkLrgSchL2MeasStopReq ARGS((
966 LrgSchMeasStopReqInfo * meas
968 /** @brief This API is used to send a
969 L2 Measurement Request from LM to SCH. */
970 EXTERN S16 cmUnpkLrgSchL2MeasStopReq ARGS((
971 LrgSchL2MeasStopReq func,
975 /** @brief This API is used to carry
976 L2 Measurement Cfm from SCH. */
977 EXTERN S16 cmPkLrgSchL2MeasStopCfm ARGS((
979 LrgSchMeasCfmInfo *measInfo
981 /** @brief This API is used to carrya
982 L2 Measurement Cfm from SCH. */
983 EXTERN S16 cmUnpkLrgSchL2MeasStopCfm ARGS((
984 LrgSchL2MeasStopCfm func,
989 /** @brief This API is used to send a
990 Configuration Confirm from MAC to LM. */
991 EXTERN S16 cmPkLrgCfgCfm ARGS((
995 /** @brief This API is used to send a
996 Configuration Confirm from MAC to LM. */
997 EXTERN S16 cmUnpkLrgCfgCfm ARGS((
1002 /** @brief This API is used to send a
1003 Configuration Confirm from SCH to LM. */
1004 EXTERN S16 cmPkLrgSchCfgCfm ARGS((
1008 /** @brief This API is used to send a
1009 Configuration Confirm from SCH to LM. */
1010 EXTERN S16 cmUnpkLrgSchCfgCfm ARGS((
1015 /** @brief This API is used to send a
1016 Statistics Request from LM to MAC. */
1017 EXTERN S16 cmPkLrgStsReq ARGS((
1021 /** @brief This API is used to send a
1022 Statistics Request from LM to MAC. */
1023 EXTERN S16 cmUnpkLrgStsReq ARGS((
1028 /** @brief This API is used to send a
1029 Statistics Confirm from MAC to LM. */
1030 EXTERN S16 cmPkLrgStsCfm ARGS((
1034 /** @brief This API is used to send a
1035 Statistics Confirm from MAC to LM. */
1036 EXTERN S16 cmUnpkLrgStsCfm ARGS((
1041 /** @brief This API is used to send a
1042 Status Request from LM to MAC. */
1043 EXTERN S16 cmPkLrgStaReq ARGS((
1047 /** @brief This API is used to send a
1048 Status Request from LM to MAC. */
1049 EXTERN S16 cmUnpkLrgStaReq ARGS((
1054 /** @brief This API is used to send a
1055 Status Confirm from MAC to LM. */
1056 EXTERN S16 cmPkLrgStaCfm ARGS((
1060 /** @brief This API is used to send a
1061 Status Confirm from MAC to LM. */
1062 EXTERN S16 cmUnpkLrgStaCfm ARGS((
1067 /** @brief This API is used to send a
1068 Status Indication from MAC to LM. */
1069 EXTERN S16 cmPkLrgStaInd ARGS((
1073 /** @brief This API is used to send a
1074 Status Indication from MAC to LM. */
1075 EXTERN S16 cmUnpkLrgStaInd ARGS((
1080 /** @brief This API is used to send a
1081 Status Indication from SCH to LM. */
1082 EXTERN S16 cmPkLrgSchStaInd ARGS((
1086 /** @brief This API is used to send a
1087 Status Indication from SCH to LM. */
1088 EXTERN S16 cmUnpkLrgSchStaInd ARGS((
1093 /** @brief This API is used to send a
1094 Control Request from LM to MAC. */
1095 EXTERN S16 cmPkLrgCntrlReq ARGS((
1099 /** @brief This API is used to send a
1100 Control Request from LM to MAC. */
1101 EXTERN S16 cmUnpkLrgCntrlReq ARGS((
1106 /** @brief This API is used to send a
1107 Control Request from LM to SCH. */
1108 EXTERN S16 cmPkLrgSchCntrlReq ARGS((
1112 /** @brief This API is used to send a
1113 Control Request from LM to SCH. */
1114 EXTERN S16 cmUnpkLrgSchCntrlReq ARGS((
1115 LrgSchCntrlReq func,
1119 /** @brief This API is used to send a
1120 Control Confirm from MAC to LM.*/
1121 EXTERN S16 cmPkLrgCntrlCfm ARGS((
1125 /** @brief This API is used to send a
1126 Control Confirm from MAC to LM. */
1127 EXTERN S16 cmUnpkLrgCntrlCfm ARGS((
1132 /** @brief This API is used to send a
1133 Control Confirm from SCH to LM. */
1134 EXTERN S16 cmPkLrgSchCntrlCfm ARGS((
1138 /** @brief This API is used to send a
1139 Control Confirm from SCH to LM. */
1140 EXTERN S16 cmUnpkLrgSchCntrlCfm ARGS((
1141 LrgSchCntrlCfm func,
1145 /** @brief This API is used to send a
1146 Trace Indication from MAC to LM. */
1147 EXTERN S16 cmPkLrgTrcInd ARGS((
1152 /** @brief This API is used to send a
1153 Trace Indication from MAC to LM. */
1154 EXTERN S16 cmUnpkLrgTrcInd ARGS((
1159 EXTERN S16 cmPkRgGenCfg ARGS((
1163 EXTERN S16 cmUnpkRgGenCfg ARGS((
1167 EXTERN S16 cmPkRgUpSapCfg ARGS((
1171 EXTERN S16 cmUnpkRgUpSapCfg ARGS((
1175 EXTERN S16 cmPkRgLowSapCfg ARGS((
1179 EXTERN S16 cmUnpkRgLowSapCfg ARGS((
1183 EXTERN S16 cmPkRgGenSts ARGS((
1188 #ifdef MAC_SCH_STATS
1189 EXTERN S16 cmPkRgSchHqRetxStats ARGS((
1190 RgSchHqRetxStats *param,
1193 EXTERN S16 cmPkRgSchNackAckStats ARGS((
1194 RgSchNackAckStats *param,
1197 EXTERN S16 cmPkRgHqNumRetx ARGS((
1198 RgSchHqNumRetx *param,
1201 EXTERN S16 cmPkRgAckNack ARGS((
1206 EXTERN S16 cmUnpkRgSchHqRetxStats ARGS((
1207 RgSchHqRetxStats *param,
1210 EXTERN S16 cmUnpkRgSchNackAckStats ARGS((
1211 RgSchNackAckStats *param,
1214 EXTERN S16 cmUnpkRgHqNumRetx ARGS((
1215 RgSchHqNumRetx *param,
1218 EXTERN S16 cmUnpkRgAckNack ARGS((
1222 #endif /* MAC_SCH_STATS */
1224 EXTERN S16 cmUnpkRgGenSts ARGS((
1228 EXTERN S16 cmPkRgSapSts ARGS((
1232 EXTERN S16 cmUnpkRgSapSts ARGS((
1236 EXTERN S16 cmPkRgSchInstCfg ARGS((
1237 RgSchInstCfg *param,
1240 EXTERN S16 cmUnpkRgSchInstCfg ARGS((
1241 RgSchInstCfg *param,
1244 EXTERN S16 cmPkRgCfg ARGS((
1249 EXTERN S16 cmUnpkRgCfg ARGS((
1254 EXTERN S16 cmPkRgSapSta ARGS((
1258 EXTERN S16 cmUnpkRgSapSta ARGS((
1262 EXTERN S16 cmPkRgSts ARGS((
1267 EXTERN S16 cmUnpkRgSts ARGS((
1272 /* lrg_x_001.main_3 - MODIFY - Modified the below function to hold the event type */
1274 EXTERN S16 cmPkRgSsta ARGS((
1278 /*ccpu00118255 - ADD - eventType param */
1282 #else /*LRG_V1 not defined */
1283 EXTERN S16 cmPkRgSsta ARGS((
1289 #endif /* LRG_V1 endif */
1290 EXTERN S16 cmUnpkRgSsta ARGS((
1296 EXTERN S16 cmPkRgUstaDgn ARGS((
1300 EXTERN S16 cmUnpkRgUstaDgn ARGS((
1304 EXTERN S16 cmPkRgUsta ARGS((
1308 EXTERN S16 cmUnpkRgUsta ARGS((
1312 EXTERN S16 cmPkRgTrc ARGS((
1316 EXTERN S16 cmUnpkRgTrc ARGS((
1320 EXTERN S16 cmPkRgDbgCntrl ARGS((
1324 EXTERN S16 cmUnpkRgDbgCntrl ARGS((
1328 EXTERN S16 cmPkRgSapCntrl ARGS((
1332 EXTERN S16 cmUnpkRgSapCntrl ARGS((
1336 EXTERN S16 cmPkRgCntrl ARGS((
1341 EXTERN S16 cmUnpkRgCntrl ARGS((
1346 EXTERN S16 cmPkRgMngmt ARGS((
1352 EXTERN S16 cmUnpkRgMngmt ARGS((
1359 #ifdef PHY_ERROR_LOGING
1360 EXTERN S16 cmPkRgSchUlAllocCntrl ARGS((
1361 RgSchUlAllocCntrl *param,
1365 EXTERN S16 cmUnpkRgSchUlAllocCntrl ARGS((
1366 RgSchUlAllocCntrl *param,
1370 /* lrg_x_001.main_4 ccpu00117036 - C++ support */
1376 #endif /* __LRGX__. */
1379 /**********************************************************************
1381 **********************************************************************/