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 U8 tmrRes; /*!< Timer resolution for Low SAP Bind Timer */
51 U8 numRguSaps; /*!< Number of RGU SAP's */
52 U8 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 EXTERN RgSchNackAckStats hqFailStats;
127 EXTERN RgSchHqRetxStats hqRetxStats;
128 #endif /* MAC_SCH_STATS */
132 This structure holds General statistical information of MAC. */
133 typedef struct rgGenSts
135 U32 numHarqFail; /*!< Number of HARQ failures */
136 U32 numUeCfg; /*!< Number of UEs configured */
137 U16 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 U32 numPduRcvd; /*!< Number of PDUs received. At TFU, PDU refers to TB,
150 and at RGU it is SDU. */
151 U32 numPduTxmit; /*!< Number of PDUs transmitted. This field is
152 applicable to TFU. */
153 U32 numPduDrop; /*!< Number of PDUs dropped. At TFU, PDU refers to TB,
154 and at RGU it is SDU. */
157 typedef struct rgSchInstCfg
159 U8 instId; /*!< Sheduler instance ID */
160 RgGenCfg genCfg; /*!< General Configuration for the scheduler instance */
161 U8 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 U8 sapState; /*!< SAP state */
193 This structure holds MAC's statistical information. */
196 DateTime dt; /*!< Date and Time. */
197 U8 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 U8 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 U8 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 U8 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 U32 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 U8 action; /*!< Action */
307 U8 subAction; /*!< Sub-action */
308 U8 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 U32 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 U8 numQci; /*!< Numner of QCI's in requests */
354 U8 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 U8 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 U8 numQci; /*!< Numner of QCI's in requests */
368 U8 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 U16 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 U32 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 U16 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 U32 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 U16 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 /* U16 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 U16 dedPreambles; /*!< Dedicated RA Preamble received */
447 U16 randSelPreLowRange; /*!< Randomly selected preambles in low range */
448 U16 randSelPreHighRange; /*!< Randomly selected preambles in high range */
453 * Staructure to send Avg PRB for a given Time Period
455 typedef struct lrgAvgPrbcfm
457 U8 prbPerc; /*!< PRB usage in percentage for UL */
461 typedef struct prbPercQci
467 typedef struct numActvUeQci
475 * Structure to send Avg PRB for a given period per QCI
477 typedef struct lrgAvgPrbQCICfm
479 U8 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 U8 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 U16 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 U32 tbTransDlTotalCnt; /*!< Count of DL TB transmitteed */
516 U32 tbTransDlFaulty; /*!< Count of DL TB for wich NACK not recieved from UE */
517 U32 tbTransUlTotalCnt; /*!< Count of UL TB received successfully */
518 U32 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 int (*LrgSchCfgReq) ARGS((
532 Pst *pst, /* Post Structure */
533 RgMngmt *cfg /* Management Structure */
536 typedef S16 (*LrgCfgCfm) ARGS((
537 Pst *pst, /* Post Structure */
538 RgMngmt *cfg /* Management Structure */
541 typedef S16 (*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 typedef S16 (*LrgTrcInd) ARGS((
612 Pst *pst, /* Post Structure */
613 RgMngmt *trc, /* Management Structure */
614 Buffer *mBuf /* Message Buffer */
617 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
619 typedef S16 (*LrgSchL2MeasCfm) ARGS((
620 Pst *pst, /* Post Structure */
621 LrgSchMeasCfmInfo *schL2MeasCfm /* Measurement Info */
623 typedef S16 (*LrgSchL2MeasStopCfm) ARGS((
624 Pst *pst, /* Post Structure */
625 LrgSchMeasCfmInfo *schL2MeasCfm /* Measurement Info */
627 #endif /* LTE_L2_MEAS */
632 /* lrg_x_001.main_3 - ADD - Added the comments for the following function */
633 /** @brief This primitive is sent from Layer manager to MAC. It carries
634 * configuration information towards MAC.
635 * @details This primitive can be used by layer manager to configure the
636 * following entities at MAC.
637 * -# General configuration
638 * -# RGU SAP i.e. SAP towards RLC
639 * -# CRG SAP i.e. SAP towards RRC
640 * -# TFU SAP i.e. SAP towards Physical layer
642 * @param pst pointer to Pst
643 * @param cfg pointer to RgMngmt
644 * @return ROK/RFAILED
646 EXTERN S16 RgMiLrgCfgReq ARGS((Pst *pst, RgMngmt *cfg));
648 /** @brief This primitive carries the Configuration Request
649 * for Scheduler sent from the DU APP to MAC.
650 * @details This primitive is used by MAC to sned the configuration
652 * @param pst Pointer to the post structure.
653 * @param cfm pointer to RgMngmt
654 * @return ROK/RFAILED
656 EXTERN int MacSchGenCfgReq ARGS((Pst *pst, RgMngmt *cfg));
658 /** @brief This primitive carries the Confirmation for a Configuration Request
659 * sent from the layer manager to MAC.
660 * @details This primitive is used by MAC to inform Layer manager about the
661 * status of a Configuration Request.
662 * @param pst Pointer to the post structure.
663 * @param cfm pointer to RgMngmt
664 * @return ROK/RFAILED
666 EXTERN S16 RgMiLrgCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
668 /** @brief This primitive is sent from Layer manager to Scheduler. It carries
669 * configuration information towards MAC.
670 * @details This primitive can be used by layer manager to configure the
671 * following entities at Scheduler.
672 * -# General configuration
673 * -# RGR SAP i.e. SAP towards RRM
674 * -# TFU SAP i.e. SAP towards Physical layer
676 * @param pst pointer to Pst
677 * @param cfg pointer to RgMngmt
678 * @return ROK/RFAILED
680 EXTERN int HandleSchGenCfgReq ARGS((Pst *pst, RgMngmt *cfg));
682 /** @brief This primitive carries the Confirmation for a Configuration Request
683 * sent from the layer manager to Scheduler.
684 * @details This primitive is used by Scheduler to inform Layer manager about the
685 * status of a Configuration Request.
686 * @param pst Pointer to the post structure.
687 * @param cfm pointer to RgMngmt
688 * @return ROK/RFAILED
690 EXTERN S16 RgMiLrgSchCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
692 /** @brief This primitive carries the Request for statistics from MAC layer
693 * sent from the layer manager.
694 * @details This primitive is used by layer manager to request for statistics
696 * -# General statistics
697 * -# RGU SAP statistics
698 * -# CRG SAP statistics
699 * -# TFU SAP statistics
700 * @param pst Pointer to the post structure.
701 * @param sts pointer to RgMngmt
702 * @return ROK/RFAILED
704 EXTERN S16 RgMiLrgStsReq ARGS((Pst *pst, RgMngmt *sts));
706 /** @brief This primitive carries the Statistics for a Statistics Request
707 * sent from the layer manager to MAC.
708 * @details This primitive is used by MAC to inform Layer manager about the
709 * Statistics requested earlier.
710 * @param pst Pointer to the post structure.
711 * @param cfm pointer to RgMngmt
712 * @return ROK/RFAILED
714 EXTERN S16 RgMiLrgStsCfm ARGS((Pst *pst, RgMngmt *cfm));
716 /** @brief This primitive carries the Status request
717 * sent from the layer manager to MAC.
718 * @details This primitive is used by the layer manager to request
719 * status from the MAC layer.
720 * @param pst Pointer to the post structure.
721 * @param cfm pointer to RgMngmt
722 * @return ROK/RFAILED
724 EXTERN S16 RgMiLrgStaReq ARGS((Pst *pst, RgMngmt *sta));
726 /** @brief This primitive carries the Confirmation for a Status Request
727 * sent from the layer manager to MAC.
728 * @details This primitive is used by MAC to send a response for the status
729 * Request sent by the layer manager.
730 * @param pst Pointer to the post structure.
731 * @param cfm pointer to RgMngmt
732 * @return ROK/RFAILED
734 EXTERN S16 RgMiLrgStaCfm ARGS((Pst *pst, RgMngmt *cfm));
736 /** @brief This primitive carries the Unsolicited status indications from MAC
737 * to the layer manager i.e. Alarms.
738 * @details This primitive is used by MAC to inform Layer manager about some
739 * error conditions or bind confirmations.
740 * @param pst Pointer to the post structure.
741 * @param usta pointer to RgMngmt
742 * @return ROK/RFAILED
744 EXTERN S16 RgMiLrgStaInd ARGS((Pst *pst, RgMngmt *usta));
745 /** @brief This primitive carries the Unsolicited status indications from
746 * scheduler to the layer manager i.e. Alarms.
747 * @details This primitive is used by Scheduler to inform Layer manager about some
748 * error conditions or bind confirmations.
749 * @param pst Pointer to the post structure.
750 * @param usta pointer to RgMngmt
751 * @return ROK/RFAILED
753 EXTERN S16 RgMiLrgSchStaInd ARGS((Pst *pst, RgMngmt *usta));
755 /** @brief This primitive carries the control request sent from the layer
756 * manager to MAC layer.
757 * @details This primitive is sent from the layer manager to control the MAC
758 * layer. The following entities could be controlled using this primitive.
760 * -# TRACE functionality
761 * -# Binding of lower SAPs
762 * @param pst Pointer to the post structure.
763 * @param cfm pointer to RgMngmt
764 * @return ROK/RFAILED
766 EXTERN S16 RgMiLrgCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
767 /** @brief This primitive carries the Confirmation for a Control Request
768 * sent from the layer manager to MAC.
769 * @details This primitive is used by MAC to inform Layer manager about the
770 * status of a Control Request.
771 * @param pst Pointer to the post structure.
772 * @param cfm pointer to RgMngmt
773 * @return ROK/RFAILED
775 EXTERN S16 RgMiLrgCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
776 /** @brief This primitive carries the control request sent from the layer
777 * manager to MAC layer.
778 * @details This primitive is sent from the layer manager to control the MAC
779 * layer. The following entities could be controlled using this primitive.
781 * -# TRACE functionality
782 * -# Binding of lower SAPs
783 * @param pst Pointer to the post structure.
784 * @param cfm pointer to RgMngmt
785 * @return ROK/RFAILED
787 EXTERN S16 RgMiLrgSchCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
788 /** @brief This primitive carries the Confirmation for a Control Request
789 * sent from the layer manager to MAC.
790 * @details This primitive is used by MAC to inform Layer manager about the
791 * status of a Control Request.
792 * @param pst Pointer to the post structure.
793 * @param cfm pointer to RgMngmt
794 * @return ROK/RFAILED
796 EXTERN S16 RgMiLrgSchCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
797 /** @brief This primitive carries the a copy of the received buffer from MAC to
798 * the layer manager. This is called the Tracing functionality of the layer.
799 * @details This primitive is used by MAC to send a copy of the received buffer
800 * to the layer manager, if Tracing is enabled via a control request.
801 * @param pst Pointer to the post structure.
802 * @param trc pointer to RgMngmt
803 * @param mBuf pointer to Buffer contains the portion of the received message.
804 * @return ROK/RFAILED
806 EXTERN S16 RgMiLrgTrcInd ARGS((Pst *pst, RgMngmt *trc, Buffer *mBuf));
808 /** @brief This primitive is to enable L2 (layer 2) measurements at the MAC
811 * @details Enables the L2 Measurements.
813 * @param pst Pointer to the post structure.
814 * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
815 * @return ROK/RFAILED
817 EXTERN S16 RgMiLrgSchL2MeasReq ARGS((Pst *pst, LrgSchMeasReqInfo *schL2MeasInfo));
818 /** @brief This primitive carries the results of the L2 Measurements gathered
819 * by MAC to the layer manager.
821 * @details Carries the Measurements gathered by MAC.
823 * @param pst Pointer to the post structure.
824 * @param schL2MeasCfm pointer to LrgSchMeasCfmInfo
825 * @return ROK/RFAILED
827 EXTERN S16 RgMiLrgSchL2MeasCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
828 /** @brief This primitive is to Stop 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 RgMiLrgSchL2MeasStopReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *schL2MeasInfo));
839 /** @brief This primitive is to used to send L2 (layer 2) measurements at the MAC
842 * @details Enables the L2 Measurements.
844 * @param pst Pointer to the post structure.
845 * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
846 * @return ROK/RFAILED
849 EXTERN S16 RgMiLrgSchL2MeasSendReq ARGS((Pst *pst,LrgSchMeasSndReqInfo *schL2MeasInfo));
850 /** @brief This primitive carries the confrmratoin of the L2 Measurements gathered
851 * by MAC to the layer manager.
853 * @details Carries the Measurements gathered by MAC.
855 * @param pst Pointer to the post structure.
856 * @param schL2MeasCfm pointer to LrgSchMeasCfmInfo
857 * @return ROK/RFAILED
860 EXTERN S16 RgMiLrgSchL2MeasStopCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
861 #endif /* LTE_L2_MEAS */
865 EXTERN S16 smRgActvInit ARGS((Ent ent,Inst inst, Region region,Reason reason));
866 EXTERN S16 smRgActvTsk ARGS((Pst *pst, Buffer *mBuf));
867 EXTERN S16 SmMiLrgCfgReq ARGS((Pst *pst, RgMngmt *cfg));
868 EXTERN S16 SmMiLrgCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
869 EXTERN S16 SmMiLrgSchCfgReq ARGS((Pst *pst, RgMngmt *cfg));
870 EXTERN S16 SmMiLrgSchCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
871 EXTERN S16 SmMiLrgStsReq ARGS((Pst *pst, RgMngmt *sts));
872 EXTERN S16 SmMiLrgStsCfm ARGS((Pst *pst, RgMngmt *cfm));
873 EXTERN S16 SmMiLrgStaReq ARGS((Pst *pst, RgMngmt *sta));
874 EXTERN S16 SmMiLrgStaCfm ARGS((Pst *pst, RgMngmt *cfm));
875 EXTERN S16 SmMiLrgStaInd ARGS((Pst *pst, RgMngmt *usta));
876 EXTERN S16 SmMiLrgCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
877 EXTERN S16 SmMiLrgSchStaInd ARGS((Pst *pst, RgMngmt *usta));
878 EXTERN S16 SmMiLrgCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
879 EXTERN S16 SmMiLrgSchCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
880 EXTERN S16 SmMiLrgSchCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
881 EXTERN S16 SmMiLrgTrcInd ARGS((Pst *pst, RgMngmt *trc, Buffer *mBuf));
882 /* lrg_x_001.main_3 - ADD - Added the following functions for LTE_L2_MEAS */
884 EXTERN S16 SmMiLrgSchL2MeasStartReq ARGS((Pst *pst, LrgSchMeasReqInfo *schL2MeasReq));
885 EXTERN S16 SmMiLrgSchL2MeasCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
886 EXTERN S16 SmMiLrgSchL2MeasStopReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *schL2MeasReq));
887 EXTERN S16 SmMiLrgSchL2MeasSendReq ARGS((Pst *pst, LrgSchMeasSndReqInfo *schL2MeasReq));
888 EXTERN S16 SmMiLrgSchL2MeasStopCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
889 EXTERN S16 SmMiLrgSchL2MeasReq ARGS((Pst *pst, LrgSchMeasReqInfo *meas));
890 EXTERN S16 SmMiLrgSchL2SendMeasReq ARGS((Pst *pst, LrgSchMeasSndReqInfo *meas));
891 EXTERN S16 SmMiLrgSchL2StopMeasReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *meas));
892 #endif /* LTE_L2_MEAS */
896 Function Prototypes for Packing and Unpacking the primitives.
899 /** @brief This API is used to send a
900 Config Request from LM to MAC.*/
901 EXTERN S16 cmPkLrgCfgReq ARGS((
905 /** @brief This API is used to send a
906 Configuration Request from LM to MAC. */
907 EXTERN S16 cmUnpkLrgCfgReq ARGS((
912 /** @brief This API is used to send a
913 Configuration Request from LM to SCH. */
914 EXTERN S16 cmPkLrgSchCfgReq ARGS((
918 /** @brief This API is used to send a
919 Configuration Request from LM to SCH. */
920 EXTERN S16 cmUnpkLrgSchCfgReq ARGS((
925 /* lrg_x_001.main_3 - ADD - Added the following pack/unpack functions for LTE_L2_MEAS */
927 /** @brief This API is used to send a
928 L2 Measurement Request from LM to SCH. */
929 EXTERN S16 cmPkLrgSchL2MeasReq ARGS((
931 LrgSchMeasReqInfo * meas
933 /** @brief This API is used to send a
934 L2 Measurement Request from LM to SCH. */
935 EXTERN S16 cmUnpkLrgSchL2MeasReq ARGS((
936 LrgSchL2MeasReq func,
940 EXTERN S16 cmPkLrgSchL2MeasCfm ARGS((
942 LrgSchMeasCfmInfo *measInfo
944 EXTERN S16 cmUnpkLrgSchL2MeasCfm ARGS((
945 LrgSchL2MeasCfm func,
949 EXTERN S16 cmPkLrgSchL2MeasReq ARGS((
951 LrgSchMeasReqInfo * meas
953 /** @brief This API is used to send a
954 L2 Measurement Request from LM to SCH. */
955 EXTERN S16 cmUnpkLrgSchL2MeasReq ARGS((
956 LrgSchL2MeasReq func,
960 /** @brief This API is used to send a
961 L2 Measurement Stop Request from LM to SCH. */
962 EXTERN S16 cmPkLrgSchL2MeasSendReq ARGS((
964 LrgSchMeasSndReqInfo * meas
966 /** @brief This API is used to send a
967 L2 Measurement Request from LM to SCH. */
968 EXTERN S16 cmUnpkLrgSchL2MeasSendReq ARGS((
969 LrgSchL2MeasSendReq func,
973 /** @brief This API is used to send a
974 L2 Measurement Stop Request from LM to SCH. */
975 EXTERN S16 cmPkLrgSchL2MeasStopReq ARGS((
977 LrgSchMeasStopReqInfo * meas
979 /** @brief This API is used to send a
980 L2 Measurement Request from LM to SCH. */
981 EXTERN S16 cmUnpkLrgSchL2MeasStopReq ARGS((
982 LrgSchL2MeasStopReq func,
986 /** @brief This API is used to carry
987 L2 Measurement Cfm from SCH. */
988 EXTERN S16 cmPkLrgSchL2MeasStopCfm ARGS((
990 LrgSchMeasCfmInfo *measInfo
992 /** @brief This API is used to carrya
993 L2 Measurement Cfm from SCH. */
994 EXTERN S16 cmUnpkLrgSchL2MeasStopCfm ARGS((
995 LrgSchL2MeasStopCfm func,
1000 /** @brief This API is used to send a
1001 Configuration Confirm from MAC to LM. */
1002 EXTERN S16 cmPkLrgCfgCfm ARGS((
1006 /** @brief This API is used to send a
1007 Configuration Confirm from MAC to LM. */
1008 EXTERN S16 cmUnpkLrgCfgCfm ARGS((
1013 /** @brief This API is used to send a
1014 Configuration Confirm from SCH to LM. */
1015 EXTERN S16 cmPkLrgSchCfgCfm ARGS((
1019 /** @brief This API is used to send a
1020 Configuration Confirm from SCH to LM. */
1021 EXTERN S16 cmUnpkLrgSchCfgCfm ARGS((
1026 /** @brief This API is used to send a
1027 Statistics Request from LM to MAC. */
1028 EXTERN S16 cmPkLrgStsReq ARGS((
1032 /** @brief This API is used to send a
1033 Statistics Request from LM to MAC. */
1034 EXTERN S16 cmUnpkLrgStsReq ARGS((
1039 /** @brief This API is used to send a
1040 Statistics Confirm from MAC to LM. */
1041 EXTERN S16 cmPkLrgStsCfm ARGS((
1045 /** @brief This API is used to send a
1046 Statistics Confirm from MAC to LM. */
1047 EXTERN S16 cmUnpkLrgStsCfm ARGS((
1052 /** @brief This API is used to send a
1053 Status Request from LM to MAC. */
1054 EXTERN S16 cmPkLrgStaReq ARGS((
1058 /** @brief This API is used to send a
1059 Status Request from LM to MAC. */
1060 EXTERN S16 cmUnpkLrgStaReq ARGS((
1065 /** @brief This API is used to send a
1066 Status Confirm from MAC to LM. */
1067 EXTERN S16 cmPkLrgStaCfm ARGS((
1071 /** @brief This API is used to send a
1072 Status Confirm from MAC to LM. */
1073 EXTERN S16 cmUnpkLrgStaCfm ARGS((
1078 /** @brief This API is used to send a
1079 Status Indication from MAC to LM. */
1080 EXTERN S16 cmPkLrgStaInd ARGS((
1084 /** @brief This API is used to send a
1085 Status Indication from MAC to LM. */
1086 EXTERN S16 cmUnpkLrgStaInd ARGS((
1091 /** @brief This API is used to send a
1092 Status Indication from SCH to LM. */
1093 EXTERN S16 cmPkLrgSchStaInd ARGS((
1097 /** @brief This API is used to send a
1098 Status Indication from SCH to LM. */
1099 EXTERN S16 cmUnpkLrgSchStaInd ARGS((
1104 /** @brief This API is used to send a
1105 Control Request from LM to MAC. */
1106 EXTERN S16 cmPkLrgCntrlReq ARGS((
1110 /** @brief This API is used to send a
1111 Control Request from LM to MAC. */
1112 EXTERN S16 cmUnpkLrgCntrlReq ARGS((
1117 /** @brief This API is used to send a
1118 Control Request from LM to SCH. */
1119 EXTERN S16 cmPkLrgSchCntrlReq ARGS((
1123 /** @brief This API is used to send a
1124 Control Request from LM to SCH. */
1125 EXTERN S16 cmUnpkLrgSchCntrlReq ARGS((
1126 LrgSchCntrlReq func,
1130 /** @brief This API is used to send a
1131 Control Confirm from MAC to LM.*/
1132 EXTERN S16 cmPkLrgCntrlCfm ARGS((
1136 /** @brief This API is used to send a
1137 Control Confirm from MAC to LM. */
1138 EXTERN S16 cmUnpkLrgCntrlCfm ARGS((
1143 /** @brief This API is used to send a
1144 Control Confirm from SCH to LM. */
1145 EXTERN S16 cmPkLrgSchCntrlCfm ARGS((
1149 /** @brief This API is used to send a
1150 Control Confirm from SCH to LM. */
1151 EXTERN S16 cmUnpkLrgSchCntrlCfm ARGS((
1152 LrgSchCntrlCfm func,
1156 /** @brief This API is used to send a
1157 Trace Indication from MAC to LM. */
1158 EXTERN S16 cmPkLrgTrcInd ARGS((
1163 /** @brief This API is used to send a
1164 Trace Indication from MAC to LM. */
1165 EXTERN S16 cmUnpkLrgTrcInd ARGS((
1170 EXTERN S16 cmPkRgGenCfg ARGS((
1174 EXTERN S16 cmUnpkRgGenCfg ARGS((
1178 EXTERN S16 cmPkRgUpSapCfg ARGS((
1182 EXTERN S16 cmUnpkRgUpSapCfg ARGS((
1186 EXTERN S16 cmPkRgLowSapCfg ARGS((
1190 EXTERN S16 cmUnpkRgLowSapCfg ARGS((
1194 EXTERN S16 cmPkRgGenSts ARGS((
1199 #ifdef MAC_SCH_STATS
1200 EXTERN S16 cmPkRgSchHqRetxStats ARGS((
1201 RgSchHqRetxStats *param,
1204 EXTERN S16 cmPkRgSchNackAckStats ARGS((
1205 RgSchNackAckStats *param,
1208 EXTERN S16 cmPkRgHqNumRetx ARGS((
1209 RgSchHqNumRetx *param,
1212 EXTERN S16 cmPkRgAckNack ARGS((
1217 EXTERN S16 cmUnpkRgSchHqRetxStats ARGS((
1218 RgSchHqRetxStats *param,
1221 EXTERN S16 cmUnpkRgSchNackAckStats ARGS((
1222 RgSchNackAckStats *param,
1225 EXTERN S16 cmUnpkRgHqNumRetx ARGS((
1226 RgSchHqNumRetx *param,
1229 EXTERN S16 cmUnpkRgAckNack ARGS((
1233 #endif /* MAC_SCH_STATS */
1235 EXTERN S16 cmUnpkRgGenSts ARGS((
1239 EXTERN S16 cmPkRgSapSts ARGS((
1243 EXTERN S16 cmUnpkRgSapSts ARGS((
1247 EXTERN S16 cmPkRgSchInstCfg ARGS((
1248 RgSchInstCfg *param,
1251 EXTERN S16 cmUnpkRgSchInstCfg ARGS((
1252 RgSchInstCfg *param,
1255 EXTERN S16 cmPkRgCfg ARGS((
1260 EXTERN S16 cmUnpkRgCfg ARGS((
1265 EXTERN S16 cmPkRgSapSta ARGS((
1269 EXTERN S16 cmUnpkRgSapSta ARGS((
1273 EXTERN S16 cmPkRgSts ARGS((
1278 EXTERN S16 cmUnpkRgSts ARGS((
1283 /* lrg_x_001.main_3 - MODIFY - Modified the below function to hold the event type */
1285 EXTERN S16 cmPkRgSsta ARGS((
1289 /*ccpu00118255 - ADD - eventType param */
1293 #else /*LRG_V1 not defined */
1294 EXTERN S16 cmPkRgSsta ARGS((
1300 #endif /* LRG_V1 endif */
1301 EXTERN S16 cmUnpkRgSsta ARGS((
1307 EXTERN S16 cmPkRgUstaDgn ARGS((
1311 EXTERN S16 cmUnpkRgUstaDgn ARGS((
1315 EXTERN S16 cmPkRgUsta ARGS((
1319 EXTERN S16 cmUnpkRgUsta ARGS((
1323 EXTERN S16 cmPkRgTrc ARGS((
1327 EXTERN S16 cmUnpkRgTrc ARGS((
1331 EXTERN S16 cmPkRgDbgCntrl ARGS((
1335 EXTERN S16 cmUnpkRgDbgCntrl ARGS((
1339 EXTERN S16 cmPkRgSapCntrl ARGS((
1343 EXTERN S16 cmUnpkRgSapCntrl ARGS((
1347 EXTERN S16 cmPkRgCntrl ARGS((
1352 EXTERN S16 cmUnpkRgCntrl ARGS((
1357 EXTERN S16 cmPkRgMngmt ARGS((
1363 EXTERN S16 cmUnpkRgMngmt ARGS((
1370 #ifdef PHY_ERROR_LOGING
1371 EXTERN S16 cmPkRgSchUlAllocCntrl ARGS((
1372 RgSchUlAllocCntrl *param,
1376 EXTERN S16 cmUnpkRgSchUlAllocCntrl ARGS((
1377 RgSchUlAllocCntrl *param,
1381 /* lrg_x_001.main_4 ccpu00117036 - C++ support */
1387 #endif /* __LRGX__. */
1390 /**********************************************************************
1392 **********************************************************************/