1 /*******************************************************************************
2 ################################################################################
3 # Copyright (c) [2017-2019] [Radisys] #
5 # Licensed under the Apache License, Version 2.0 (the "License"); #
6 # you may not use this file except in compliance with the License. #
7 # You may obtain a copy of the License at #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
11 # Unless required by applicable law or agreed to in writing, software #
12 # distributed under the License is distributed on an "AS IS" BASIS, #
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
14 # See the License for the specific language governing permissions and #
15 # limitations under the License. #
16 ################################################################################
17 *******************************************************************************/
19 /**********************************************************************
25 Desc: Structures, variables, and typedefs required by the interface between
30 **********************************************************************/
33 @brief Structure declarations and definitions for MAC-SCH interface.
44 * @brief This structure contains the uplink grant information that is sent in
45 response to the random access request from the UE for CEmodeA.
47 typedef struct rgInfEmtcCEmodeARarUlGrt
49 U8 msg3PUSCHNbIdx; /*!< Indicates the Msg3 PUSCH narrowband index. */
50 U8 rbStart; /*!< Start Resource block of allocation. */
51 U8 numRb; /*!< Number of resource blocks allocated. */
52 U8 msg3PUSCHNumRep; /*!< Number of repetitions for Msg3 PUSCH. */
53 U8 iMcsCrnt; /*!< Current MCS index of the grant. */
54 U8 tpc; /*!< TPC command for the uplink grant. */
55 U8 cqiBit; /*!< Indicates the CQI is enabled or not. */
56 U8 delayBit; /*!< Indicates the Delay bit. */
57 U8 msg34MPDCCHNbIdx; /*!< Indicates Msg3/4 MPDCCH narrowband index. */
58 } RgInfEmtcCEmodeARarUlGrnt;
61 * @brief This structure contains the uplink grant information that is sent in
62 response to the random access request from the UE for CEmodeB.
64 typedef struct rgInfEmtcCEmodeBRarUlGrnt
66 U8 msg3PUSCHNbIdx; /*!< Indicates the Msg3 PUSCH narrowband index. */
67 U8 rbStart; /*!< Start Resource block of allocation. */
68 U8 numRb; /*!< Number of resource blocks allocated. */
69 U8 msg3PUSCHNumRep; /*!< Number of repetitions for Msg3 PUSCH. */
70 U8 iTbsCrnt; /*!< Current TBS index of the grant. */
71 U8 msg34MPDCCHNbIdx; /*!< Indicates Msg3/4 MPDCCH narrowband index. */
72 }RgInfEmtcCEmodeBRarUlGrnt;
74 typedef enum rgEmtcCEmodeType
82 * @brief This structure contains the uplink grant information that is sent in
83 response to the random access request from the UE for EMTC.
85 typedef struct rgInfEmtcRarUlGrnt
90 RgInfEmtcCEmodeARarUlGrnt emtcCEmodeARarUlGrnt;
91 RgInfEmtcCEmodeBRarUlGrnt emtcCEmodeBRarUlGrnt;
95 #endif /* EMTC_ENABLE */
97 * @brief This structure contains common channel buffer occupancy report information.
99 typedef struct rgInfCmnBoRpt
102 CmLteCellId cellId; /*!< Identifies the cell. CellId value must be within the set of configured cell IDs. */
103 CmLteLcId lcId; /*!< Identifies the logical channel. lcId value range is defined in
104 Section 6.2.1 in 36.321 specification. */
105 CmLteLcType lcType; /*!< Identifies the Logical channel type.lcType can take the following values:
111 S32 bo; /*!< Buffer occupancy reported by RLC in bytes. */
113 U8 emtcDIReason; /*!< Reason for DI message to send. */
114 U8 pnb; /*!< Pagging narrowBand on which Ue perfom paging reception*/
116 union /*!< lcType in the primitive is the union selector. */
118 CmLteTimingInfo timeToTx; /*!< Timing info for the BO, applicable for BCCH and PCCH. */
119 CmLteRnti rnti; /*!< Temporary C-RNTI, only for CCCH. RNTI range is specified
120 in Section 7.1 in 36.321 specification. */
124 * @brief This structure contains dedicated channel buffer occupancy report
127 typedef struct rgInfDedBoRpt
129 S16 cellSapId; /*!< Identifies the cell SAP. cellSapId value must be within the set of configured cell SAP IDs. */
130 CmLteCellId cellId; /*!< Identifies the cell. CellId value must be within the set of configured cellIds. */
131 CmLteRnti rnti; /*!< Identifies the UE. RNTI value range is specified in Section 7.1 in 25.321 specification. */
132 CmLteLcId lcId; /*!< Identifies the logical channel. lcId value range is defined in Section 6.2.1 in 36.321 specification. */
133 S32 bo; /*!< Number of bytes reported as Buffer occupancy by RLC. */
135 Bool staPduPrsnt; /*!< Is status PDU present reported by RLC. */
136 U16 estRlcHdrSz;/*!< Estimated hader size reported by RLC */
138 U32 staPduBo; /*!< Number of bytes reported as Buffer occupancy for status PDU by RLC.
139 This is already included in BO.*/
140 U32 oldestSduArrTime; /*!< Oldest SDU Arrival Time from Upper Layer */
141 Bool setMaxUlPrio; /*!< set when Pollbit is set from RLC in PDU */
142 Bool setMaxDlPrio; /*!< Set when there is a status PDU in the DL*/
145 /*Fix: start: Indicate UE deletion from MAC to Scheduler*/
147 * @brief This structure contains the RNTI which is deleted at MAC
150 typedef struct rgInfUeDelInd
152 S16 cellSapId; /*!< Identifies the cell SAP. cellSapId value must be within the set of configured cell SAP IDs. */
153 CmLteCellId cellId; /*!< Identifies the cell. CellId value must be within the set of configured cellIds. */
154 CmLteRnti rnti; /*!< Identifies the UE. RNTI value range is specified in Section 7.1 in 25.321 specification. */
157 /*Fix: end: Indicate UE deletion from MAC to Scheduler*/
162 * @brief This structure contains the uplink grant information that is sent in
163 response to the random access request from the UE.
165 typedef struct rgInfRarUlGrnt
167 #ifndef MAC_5GTF_UPDATE
168 U8 hop; /*!< Indicates the hopping flag. */
170 U8 xPuschRange; /*!< xPUSCH range */
172 U8 rbStart; /*!< Start Resource block of allocation. */
173 U8 numRb; /*!< Number of resource blocks allocated. */
174 U8 tpc; /*!< TPC command for the uplink grant. */
175 U8 iMcsCrnt; /*!< Current MCS index of the grant. */
176 U8 delayBit; /*!< Indicates the Delay bit. */
177 #ifndef MAC_5GTF_UPDATE
178 U8 cqiBit; /*!< Indicates the CQI is enabled or not. */
180 U8 numBsiRep; /*!< Number of BSI reports. */
181 U8 bsiBetaOffIdx; /*!< Index of BSI beta offset used in Msg3 */
182 U8 pcrs; /*!< UL dual PCRS */
187 * @brief This structure carries timing adjustment, uplink grant information for the specific temporary C-RNTI.
189 typedef struct rgInfCrntiInfo
191 CmLteRnti tmpCrnti; /*!< Temporary C-RNTI. RNTI range is specified in Section 7.1 in 36.321 specification. */
192 U8 rapId; /*!< rapId identifies the index of the Random Access Preamble. rapId ranges from 0 to 63.*/
193 TknU16 ta; /*!< Timing Adjustment. Timing Adjustment Value range is defined in Section 6.1.3.5 in 36.321 specification. */
194 RgInfRarUlGrnt grnt; /*!< Uplink Grant to go in RAR. */
195 Bool isContFree; /*!< Indicates whether the procedure is contention-free or not. */
197 RgInfEmtcRarUlGrnt emtcGrnt; /*!< Uplink grant for EMTC UE to go in RAR. */
202 * @brief This structure carries information about downlink control format, scheduled TB size,
203 backoff indicator value, and the set of Random Access Responses within this RA-RNTI.
205 typedef struct rgInfRaRntiInfo
207 U16 raRnti; /*!< RA-RNTI. RNTI range is specified in Section 7.1 in 36.321 specification. */
208 TfuPdschDciInfo dciInfo; /*!< PDCCH allocated for RA-RNTI. For more information
209 refer to <i>TFU Interface Service Definition</i> (p/n 1100091). */
210 U32 schdTbSz; /*!< Scheduled TB size. schdTbSz value range is defined in Section 7.1.7.2.1 in 36.213
212 TknU8 backOffInd; /*!< Indicates the Backoff Indicator value. backOffInd value range
213 is defined in Section 7.2 in 36.321 specification. */
214 U8 numCrnti; /*!< Number of valid RARs in the array. */
215 RgInfCrntiInfo *crntiInfo; /*!< RAR information. */
219 * @brief This structure contains information about the RA-RNTIs for which
220 * random access responses are generated.
222 typedef struct rgInfRarInfo
224 U8 numRaRntis; /*!< Indicates the number of valid RA-RNTIs present. */
225 RgInfRaRntiInfo *raRntiInfo; /*!< Contains allocation information per RA-RNTI. */
226 U16 txPwrOffset; /*!< PDSCH tx power offset for RAR transmission */
230 * @brief Logical channel allocation information.
232 typedef struct rgInfLcDatInfo
234 CmLList lchLstEnt; /*!< Is not used when part of resource allocation. */
235 U8 lcId; /*!< Identifies the logical channel. lcId value range is defined
236 in Section 6.2.1 in 36.321 specification. */
237 U32 numBytes; /*!< Number of bytes allocated/received to logical channel. */
241 * @brief This structure contains control element information received from a
242 * particular UE.Extended PHR information
244 typedef struct rgInfExtPhrSCellInfo
246 U8 sCellIdx; /*!< SCELL index for which PHR is reported */
247 U8 phr; /*!< PHR value. PHR value is defined in Section 6.1.3.6a in 36.321 specification. */
248 U8 pCmax; /*!< PCMAX value. PCMAX value is defined in Table 6.1.3.6a-1 in 36.321 specification. */
249 U8 pBackOff; /*!< If UE applied back off due to P-MPRc in 36.321 specification. */
250 }RgInfExtPhrSCellInfo;
251 typedef struct rgInfExtPhrCEInfo
253 U8 type2Phr; /*!< PHR value. PHR value is defined in Section 6.1.3.6a in 36.321 specification. */
254 U8 type2PCMax; /*!< PCMAX value. PCMAX value is defined in Table 6.1.3.6a-1 in 36.321 specification. */
255 U8 numServCells; /*!< Number of serving cells for which PHR is reported */
256 RgInfExtPhrSCellInfo servCellPhr[CM_LTE_MAX_CELLS];
257 }RgInfExtPhrCEInfo; /*!< EXT PHR value. EXT PHR value is defined in Section 6.1.3.6a in 36.321 R10 specification. */
260 * @brief This structure contains control element information received from a
263 typedef struct rgInfCeInfo
265 U16 bitMask; /*!< Bitmask for the MAC Control elements present. */
268 U16 cRnti; /*!< C-RNTI value. RNTI range is specified in Section 7.1 in 36.321 specification. */
269 U8 phr; /*!< PHR value. PHR value is defined in Section 6.1.3.6 in 36.321 specification. */
272 U8 truncBsr; /*!< Truncated BSR value. BSR value is defined in
273 Section 6.1.3.1 in 36.321 specification. */
274 U8 shortBsr; /*!< Short BSR value.BSR value is defined in
275 Section 6.1.3.1 in 36.321 specification. */
278 U8 bs1; /*!< Buffer size 1 of long BSR. */
279 U8 bs2; /*!< Buffer size 2 of long BSR. */
280 U8 bs3; /*!< Buffer size 3 of long BSR. */
281 U8 bs4; /*!< Buffer size 4 of long BSR. */
282 }longBsr; /*!< BSR value is defined in Section 6.1.3.1 in 36.321 specification. */
284 RgInfExtPhrCEInfo extPhr; /*!< EXT PHR value. EXT PHR value is defined in Section 6.1.3.6a in 36.321 R10 specification. */
285 #ifdef MAC_5GTF_UPDATE
288 U8 bar; /*!< Beam Adjusment Request */
289 U8 numBsiFields; /*!< Number of BSI fields UE sent in BSI Feedback */
292 U16 bi; /*!< BSI Feedback : 9 bits Beam Index */
293 U8 brsrp; /*!< BSI Feedback :7 bits BRSRP */
300 U8 ulActLCs[RGINF_MAX_NUM_DED_LC];
301 /*!< List of LCs for which Data is received in UL */
311 typedef struct rgInfLcgInfo
313 U8 lcgId; /*!< LCGID. GBR DRB LCG */
314 U32 bytesRcvd; /*!< Contains bytes received for LCG */
318 * @brief This structure contains control element information received from a
319 * particular UE identified by the RNTI.
321 typedef struct rgInfUeDatInd
323 CmLteRnti rnti; /*!< RNTI. RNTI range is specified in Section 7.1 in 36.321 specification. */
324 CmLList ueLstEnt; /*!< UE linked list entry. */
325 RgInfCeInfo ceInfo; /*!< Contains the control elements received from the UE. */
326 RgInfLcgInfo lcgInfo[RGINF_MAX_LCG_PER_UE - 1]; /*!< Contains the bytes received per DRB LCG. */
330 * @brief This structure carries the control element information received for a
331 set of UEs along with timing information.
333 typedef struct rgInfSfDatInd
335 CmMemListCp memCp; /*!< Memory control point. */
336 CmLListCp ueLst; /*!< Pointer to the UE linked list. */
338 U32 qcisUlPrbCnt[RGINF_MAX_GBR_QCI_REPORTS];/*!< UL gbr LC's PRB count*/
340 S16 cellSapId; /*!< Cell SAP Identifier. CellSAP ID value must be within the set of configured cell SAP IDs. */
341 CmLteCellId cellId; /*!< Identifies the cell. CellId must be within the set of configured cell IDs. */
342 CmLteTimingInfo timingInfo; /*!< Contains information about SFN and subframe. SFN ranges from 0 to 1023 whereas subframe ranges from 0 to 9. */
346 * @brief This structure carries the information about scheduled logical
347 * channels within this transport block along with timing adjustment
350 typedef struct rgInfUeTbInfo
352 Bool disTb; /*!< Currently, not used, but is
353 applicable in MIMO case. */
354 Bool isReTx; /*!< Indicates the TB transmission type. */
355 TknU8 ta; /*!< Timing Adjustment. */
357 TknU8 sCellActCe; /* !< SCell Act values and whether
361 /* Changed as a result of CR timer implementation*/
362 U8 contResCe; /*!< Indicating presence of Contention Resolution CE across MAC-SCH
364 * identify CCCH SDU transmissions which need to
365 * be done without the
366 * contention resolution CE.*/
368 U8 numSchLch; /*!< Indicates the number of logical
369 channels scheduled. */
371 RgInfLcDatInfo schdDat[RGINF_MAX_NUM_DED_LC]; /*!< Contains
372 information about scheduled logical
377 @brief This structure carries the information reagarding secondary MAC like its
378 instance Id and HARQ process's Id
380 typedef struct rgLaaTbReqInfo
389 * @brief This structure carries the UE-specific Resource allocation
390 * information like RNTI, downlink control format, HARQ process Identifier,
391 * scheduled TB size, and Transport Block information.
393 typedef struct rgInfUeAlloc
395 CmLteRnti rnti; /*!< RNTI. RNTI range is specified in Section 7.1 in 36.321 specification. */
397 /* Added support for SPS*/
399 CmLteRnti pdcchRnti; /*!< RNTI used for PDCCH scrambling */
404 TfuPdschDciInfo dciInfo; /*!< Contains Downlink Control Information. For more information,
405 refer to <i>TFU Interface Service Definition</i> (p/n 1100091). */
406 U8 hqProcId; /*!< HARQ process Identifier. hqProcId ranges between 1 and 8 for FDD mode and 1 and 15 for TDD mode */
410 Bool puschRptUsd;/*!< True, if Precoding Information in PDCCH has to be
411 in-accordance with the latest PUSCH report */
412 TfuDlCqiPuschInfo puschPmiInfo;/*!< PUSCH report details for explicit PMI
413 * information to PHY during a PDSCH */
416 U8 nmbOfTBs; /*!< Indicates the number of TBs. Currently this is set to 1. */
417 RgInfUeTbInfo tbInfo[RGINF_MAX_TB_PER_UE]; /*!< Contains TB identifier. */
418 /* LTE_ADV_FLAG_REMOVED_START */
420 U8 pa; /*!< DL Power control paramter P_A
421 configured by higher layers
422 Ref: RRC 36.331, 6.3.2, PDSCH-Config */
424 U8 isEnbSFR; /*To check if SFR is enabled*/
425 /* LTE_ADV_FLAG_REMOVED_END */
427 Bool fillCtrlPdu; /*!< Based upon this flag RLC will fill RLC Control PDU
428 In a tti if P-cell is present then control PDU
429 should be kept in P-cell otherwise S-cell*/
431 RgLaaTbReqInfo tbReqInfo; /*!< LAA: TB information for the TBs which
432 need to be fetched from the SCell*/
436 * @brief This structure carries the Resource allocation information for the
437 * set of scheduled UEs.
439 typedef struct rgInfUeInfo
441 U8 numUes; /*!< Number of UEs allocated. */
442 RgInfUeAlloc *allocInfo; /*!< Allocation information per UE. */
446 * @brief This structure contains the RNTI and downlink control format
447 * information for the scheduled BCCH logical channel.
449 typedef struct rgInfBcchInfo
451 CmLteRnti rnti; /*!< RNTI range is specified in Section 7.1 in 36.321 specification. */
452 TfuPdschDciInfo dciInfo; /*!< Downlink Control Information. For more information,
453 refer to <i>TFU Interface Service Definition</i> (p/n 1100091).*/
454 /* Modified for SI Enhancement*/
456 CmLteLcId lcId; /*!< Logical Channel Identifier.lcId value range is defined in
457 Section 6.2.1 in 36.321 specification. */
458 Bool sndStatInd; /*!< Currently this is set to 1 for fresh transmission of BCCH data. */
460 Buffer *pdu; /*!< PDU being specified for BCCH. */
462 U16 txPwrOffset; /*!< PDSCH tx power offset for BCCH
467 * @brief This structure contains the RNTI and the downlink control information for the scheduled PCCH logical channel.
469 typedef struct rgInfPcchInfo
471 CmLteRnti rnti; /*!< RNTI range is specified in Section 7.1 in 36.321 specification. */
472 TfuPdschDciInfo dciInfo; /*!< Downlink Control Information.
473 For more information, refer to <i>TFU Interface Service Definition</i> (p/n 1100091). */
474 CmLteLcId lcId; /*!< Logical Channel Identifier. lcId value range is defined in
475 Section 6.2.1 in 36.321 specification. */
477 U16 txPwrOffset; /*!< PDSCH tx power offset for PCCH
482 * @brief This structure contains the scheduled logical channel information
483 * mapped onto the BCH transport channel.
485 typedef struct rgInfBchInfo
487 /* Modified for SI Enhancement*/
489 CmLteLcId lcId; /*!< Logical Channel Identifier. lcId value range is defined in Section 6.2.1 in 36.321 specification. */
491 Buffer *pdu; /*!< PDU being specified for BCH */
496 * @brief This structure contains the scheduling information of BCH, PCCH, and
497 * BCCH channel information.
499 typedef struct rgInfCmnLcInfo
501 U16 bitMask; /*!< Bitmask representing all the common channels present. */
502 RgInfBchInfo bchInfo; /*!< BCH channel Information. */
503 RgInfPcchInfo pcchInfo; /*!< Paging Logical Channel Information. */
504 RgInfBcchInfo bcchInfo; /*!< Broadcast Logical Channel Information. */
509 * @brief This structure contains the scheduled logical channel information
510 * mapped onto the BCH transport channel.
512 typedef struct rgInfEmtcBcchInfo
514 CmLteRnti rnti; /*!< RNTI range is specified in Section 7.1 in 36.321 specification. */
515 TfuPdschDciInfo dciInfo; /*!< Downlink Control Information. For more information */
516 Buffer *pdu; /*!< PDU being specified for BCH */
520 * @brief This structure contains the scheduling information of BCH, PCCH, and
521 * BCCH channel information.
523 typedef struct rgInfEmtcCmnLcInfo
525 U16 bitMask; /*!< Bitmask representing all the common channels present. */
526 RgInfBchInfo bchInfo; /*!< BCH channel Information. */
527 RgInfPcchInfo pcchInfo; /*!< Paging Logical Channel Information. */
528 RgInfEmtcBcchInfo emtcBcchInfo; /*!< Broadcast Logical Channel Information. */
534 * @brief UE-specific allocation information needed for measurements.
536 typedef struct rgInfUeUlAlloc
538 CmLteRnti rnti; /*!< UE ID */
539 U8 numPrb; /*!< Number of total PRB's allocated for this UE */
543 * @brief Allocation information of all UEs in this subframe.
545 typedef struct rgInfUlUeInfo
547 U8 numUes; /*!< Number of UE's*/
548 CmLteTimingInfo timingInfo; /*!< Uplink timing information */
549 RgInfUeUlAlloc *ulAllocInfo;/*!< Uplink Allocations information */
551 #endif /*LTE_L2_MEAS */
554 *@brief this structure contains the lcId on which flow control need to be performed and the number of packets allowed for admission */
555 typedef struct rgInfLcInfo
557 CmLteLcId lcId; /*!< lcId for flow control*/
558 U32 pktAdmitCnt; /*!<Pkts allowed for the LC */
559 U32 maxBo4FlowCtrl; /*!< MAX BO of Queued SDUs at RLC beyond which Flow is Controlled */
560 }RgInfLcFlowCntrlInfo;
564 * @brief This structure contains the flow control information per UE */
565 typedef struct rgInfUeFlowCntrlInfo
567 CmLteRnti ueId; /*!<ueId for flow control*/
568 U32 numLcs;/*!<numLcs in the UE*/
569 RgInfLcFlowCntrlInfo lcInfo[RGINF_MAX_NUM_DED_LC]; /*!<LC list*/
570 }RgInfUeFlowCntrlInfo;
572 * @brief This structure contains the flow control information to be sent to MAC */
573 typedef struct rgInfFlowCntrlInfo
575 U32 numUes;/*!<Num UEs for flow control */
576 RgInfUeFlowCntrlInfo ueFlowCntrlInfo[RGINF_MAX_NUM_UE_PER_TTI]; /*!<Ue Info for flow control */
579 typedef struct rgInfEmtcInfo
581 RgInfEmtcCmnLcInfo cmnLcInfo; /*!< Contains Information about commmon channels. */
582 RgInfRarInfo rarInfo; /*!< Contains Information about EMTC Random Access Responses. */
583 RgInfUeInfo ueInfo; /*!< Contains UE specific allocation
584 information for EMTC UEs. */
588 * @brief This structure contains the scheduling information of common channels, random access responses and UE specific allocations along with timing information.
590 typedef struct rgInfSfAlloc
592 CmLteCellId cellId; /*!< Identifies the cell. CellId value should be within the set of configured
594 CmLteTimingInfo timingInfo; /*!< Contains Information about SFN and subframe. SFN ranges from 0 to 1023 where as subframe is from 0 to 9. */
595 RgInfCmnLcInfo cmnLcInfo; /*!< Contains Information about commmon channels. */
597 RgInfEmtcInfo emtcInfo;
599 RgInfRarInfo rarInfo; /*!< Contains Information about Random Access Responses. */
600 RgInfUeInfo ueInfo; /*!< Contains UE specific allocation information. */
602 RgInfUlUeInfo ulUeInfo; /*!< Uplink allocation information needed at MAC */
603 #endif /* LTE_L2_MEAS */
604 RgInfFlowCntrlInfo flowCntrlInfo; /*!<Flow Control information */
608 * @brief This structure contains regarding the ue for
609 * resettng the harqentiry of a scell
611 typedef struct rgInfResetHqEnt
613 CmLteCellId cellId; /*!< Identifies the sec cell for which harq entity reset
615 CmLteRnti crnti; /*!< RNTI for which harq entity needs to be
620 * @brief This structure contains the UE specific HARQ and Transport Block
621 * information to be released.
623 typedef struct rgInfUeHqInfo
625 CmLteRnti rnti; /*!< RNTI which uniquely identifies the UE. RNTI value range is
626 specified in Section 7.1 in 25.321 */
627 U8 hqProcId; /*!< HARQ Process Identifier.
628 hqProcId ranges between 1 and 8 for FDD mode and 1 and 15 for TDD mode. */
629 U8 numOfTBs; /*!< Identifies the number of TBs. Currently this is set to 1. */
630 U8 tbId[RGINF_MAX_TB_PER_UE]; /*!< Indicates the TB Identifier. */
631 /* MS_WORKAROUND: to increase Harq Fail Counter .
632 The status field is required for tracking the number of harq faliures at MAC.
633 As this is already present under L2_MEAS flag, we have replaced it with platform flag */
634 U8 status[RGINF_MAX_TB_PER_UE]; /*!< Indicates HARQ ACK or NACK */
635 U8 rlsOperationType; /*!< Decides action to be taken in MAC
636 0x00 RGINF_RLS_HQ_NO_ACTION - Free Hq Procs and TBs
637 0x01 RGINF_RLS_HQ_SAVE_TB - Free Hq Proc but save the TBs
638 0x02 RGINF_RLS_HQ_DEL_TB - Del already saved TBs */
639 U16 saveId; /*!< Uniquely identify an particular HqP save */
643 * @brief This structure contains HARQ process information and buffer
644 * information for a set of UEs to be released in a cell identified by the
647 typedef struct rgInfRlsHqInfo
649 CmLteCellId cellId; /*!< Identifies Cell. CellId should be within
650 the set of configured cell IDs. */
651 U8 numUes; /*!< Indicates number of UEs present. */
652 RgInfUeHqInfo *ueHqInfo; /*!< Contains UE specific HARQ information. */
656 * @brief This structure contains the released RNTI in a particular cell
657 * identified by a cellId.
659 typedef struct rgInfRlsRnti
661 CmLteCellId cellId; /*!< cellId uniquely identifies the
662 cell. cellId value should be within the set of configured cell IDs. */
663 CmLteRnti rnti; /*!< RNTI which uniquely identifies the UE.
664 RNTI range is specified in Section 7.1 in 25.321 specification. */
665 /* Fix : syed ueId change as part of reestablishment.
666 * Now SCH to trigger this. CRG ueRecfg for ueId change
668 Bool ueIdChng; /*!< Indicates if there is a ueId change as part
669 of reestablishment */
670 CmLteRnti newRnti; /*!< new RNTI changed as part of reestablishment */
672 Bool isUeSCellDel; /*!< TRUE means UeSCellDel*/
677 * @brief This structure contains the cell information along with the
678 * maximum number of downlink HARQ processes configured per UE in the cell.
680 typedef struct rgInfCellReg
682 CmLteCellId cellId; /*!< Identifies the cell. cellId value should be within the set of configured cell IDs. */
683 S16 cellSapId; /*!< Identifies the cell SAP. cellSapId value should be within the set of configured cell SAP IDs. */
684 U8 maxDlHqProcPerUe; /*!< Indicates Maximum number of downlink HARQ processes per UE. */
689 * @brief struture to hold measurement request for Uplink Average PRB usage per
692 typedef struct rgInfPrbReq
694 U8 numQci; /*!< Number fo QCI's in Request */
695 U8 qci[LRG_MAX_QCI_PER_REQ]; /*!< QCI for which PRB has
700 typedef struct prbUsage
702 U8 qciValue; /*!< Qci Value */
703 U32 prbUsage; /*!<Prb Usage for this Qci */
706 * @brief struture to hold measurement confirm for Uplink Average PRB usage per
709 typedef struct rgInfPrbCfm
711 U8 numQci; /*!< Number fo QCI's in Request */
712 PrbUsage prbUsage[LRG_MAX_QCI_PER_REQ]; /*!< Average PRB usage
717 * @brief Structure used by Scheduler to send the measurement request to MAC
719 typedef struct RgInfL2MeasReq
721 U32 transId; /*!< TransId to uniquely identify request */
722 U16 measType; /*!< For action type Avegare PRB usage
724 U16 timePrd; /*!< Time Period for which measurement
726 CmLteCellId cellId; /*!< CellId for which measurement done*/
728 RgInfPrbReq prbReq; /*!< Avgerage PRB usage per QCI*/
733 * @brief Structure used by Scheduler to send the measurement stop request to MAC
735 typedef struct RgInfL2MeasStopReq
737 U32 transId; /*!< TransId to uniquely identify request */
738 U8 measType; /*!< For action type Avegare PRB usage
740 CmLteCellId cellId; /*!< CellId for which measurement done*/
741 } RgInfL2MeasStopReq;
745 * @brief Structure used by Scheduler to send the measurement send request to MAC
747 typedef struct RgInfL2MeasSndReq
749 U32 transId; /*!< TransId to uniquely identify request */
750 U8 measType; /*!< For action type Avegare PRB usage
752 U16 timePrd; /*!< Time Period for which measurement
754 CmLteCellId cellId; /*!< CellId for which measurement done*/
758 * @brief Structure used MAC to send the confirm back to scheduler
760 typedef struct rgInfL2MeasCfm
762 U16 transId; /*!< transId to map to request */
763 U8 measType; /*!< Action for which measurement done */
764 CmLteCellId cellId; /*!< CellId for which measurement done*/
765 CmStatus cfm; /*!< Confirmation possible Values when measType
766 is invalid status -> NOK and reason -> INVALID */
768 RgInfPrbCfm prbCfm; /*!< Avgerage PRB usage per QCI*/
773 * @brief This API is invoked from l2 Measurements module at scheduler.
774 * When Scheduler receives a measurement request from stack manager for Average
775 * PRB usage Per QCI in Uplink, Scheduler invokes this API towards LTE MAC
776 * for the calculations. LTE MAC utilizes the uplink allocations information provided
777 * by scheduler for every subframe and data indications received for this calculation.
778 * This API carries a transId to uniquely identify the confirm received for
779 * this request from LTEMAC.
781 EXTERN S16 RgSchMacL2MeasReq ARGS((
783 RgInfL2MeasReq* l2MeasReq
786 * @brief This API is invoked from l2 Measurements module at scheduler.
787 * When Scheduler receives a measurement send request from stack manager,
788 * it sends L2 measurement to layer manager.
791 EXTERN S16 RgSchMacL2MeasSendReq ARGS((
793 RgInfL2MeasSndReq* l2MeasReq
796 * @brief This API is invoked from l2 Measurements module at scheduler.
797 * When Scheduler receives a measurement stop request from stack manager,
798 * it stops L2 Measurement
800 EXTERN S16 RgSchMacL2MeasStopReq ARGS((
802 RgInfL2MeasStopReq* l2MeasReq
806 * @brief This API is invoked from L2 Measurement module at LTE MAC. When LTE MAC
807 * completes calculation of Avergae PRB usage per QCI in Uplink for a given time
808 * period, It invokes this API to indicate result back to scheduler. LTE
809 * MAC sends the same transId received in measurement request from Scheduler.
811 EXTERN S16 RgMacSchL2MeasCfm ARGS((
813 RgInfL2MeasCfm* l2MeasCfm
816 * @brief This API is invoked from L2 Measurement module at LTE MAC. When LTE MAC
817 * stops L2 measurement, it sends L2 measurement cfm.
820 EXTERN S16 RgMacSchL2MeasStopCfm ARGS((
822 RgInfL2MeasCfm* l2MeasCfm
825 EXTERN S16 RgMacSchL2MeasStop ARGS
828 RgInfL2MeasCfm *measInfo
830 #endif /* LTE_L2_MEAS */
832 typedef struct rgInfLcgRegReq
834 CmLteCellId cellId; /*!< Cell Identifier */
835 CmLteRnti crnti; /*!< RNTI which uniquely identifies the UE
836 RNTI range is specified in Section
837 7.1 in 25.321 Specification. */
839 Bool isGbr; /* Indicate if the LCG is Gbr */
843 /* Added support for SPS*/
846 * @brief This structure contains the logical channel information related to
847 * uplink SPS for a particular UE identified by the CRNTI.
849 typedef struct rgInfSpsLcInfo
851 CmLteCellId cellId; /*!< Cell Identifier */
852 CmLteRnti crnti; /*!< RNTI which uniquely identifies the UE
853 RNTI range is specified in Section
854 7.1 in 25.321 Specification. */
855 CmLteRnti spsRnti; /*!< SPS RNTI. RNTI range is specified in
856 Section 7.1 in 25.321 Specification. */
857 U8 spsLcCnt; /*!< identifies the number of SPS
858 configured logical channels */
859 U8 spsLcId[RGINF_MAX_NUM_DED_LC]; /*!< Logical Channel
860 Identifier. lcId value range is
861 defined in Section 6.2.1
862 in 36.321 Specification. */
863 U8 implRelCnt; /*!< "implicitRelAfter" vallue */
864 U16 spsPrd; /*!< SPS periodicity of the UE */
868 * @brief This structure contains UL SPS param Reset related to
869 * uplink SPS for a particular UE identified by the CRNTI.
871 typedef struct rgInfUlSpsReset
873 CmLteCellId cellId; /*!< Cell Identifier */
874 CmLteRnti crnti; /*!< RNTI which uniquely identifies the UE
875 RNTI range is specified in Section
876 7.1 in 25.321 Specification. */
881 * @brief This structure contains the information to release UL SPS for a UE */
882 typedef struct rgInfSpsRelInfo
884 S16 cellSapId; /*!< identifies the cell SAP. Value range
885 should be within the set of
886 configured cell SAP(s).*/
887 CmLteRnti cRnti; /*!< RNTI of the UE */
888 Bool isExplRel; /*!< TRUE if explicit release needs to be
891 #endif /* LTEMAC_SPS */
894 * Function Prototypes
897 * @brief Request from Scheduler to MAC to register a cell.
898 * @details This primitive is used for light-weight loose coupling.
900 EXTERN S16 cmPkSchMacCellRegReq ARGS((
905 typedef S16 (*CellRegReq) ARGS((
911 * @brief Request from Scheduler to MAC to register a cell.
912 * @details The scheduler invokes this primitive after the scheduler cell
913 * configuration is completed. Before calling this primitive, the scheduler
914 * creates a mapping of the cell which is uniquely idetified by cell ID and
915 * scheduler instance that is serving the cell.
917 EXTERN S16 RgSchMacCellRegReq ARGS((
922 * @brief Request from Scheduler to MAC to register a cell.
923 * @details This primitive is used for light-weight loose coupling.
925 EXTERN S16 cmUnpkSchMacCellRegReq ARGS((
931 * @brief Request from MAC to scheduler to update dedicated BO.
932 * @details This primitive is used for light-weight loose coupling.
934 EXTERN S16 cmPkMacSchDedBoUpdtReq ARGS((
939 typedef S16 (*DedBoUpdtReq) ARGS((
945 * @brief Request from MAC to scheduler to update dedicated BO.
946 * @details MAC layer invokes this primitive towards scheduler when it
947 * receives status response from the RLC for dedicated channels. Scheduler
948 * takes the buffer occupancy information into consideration while taking
949 * scheduling decisons.
951 EXTERN S16 RgMacSchDedBoUpdtReq ARGS((
956 * @brief Request from MAC to scheduler to update dedicated BO.
957 * @details This primitive is used for light-weight loose coupling.
959 EXTERN S16 cmUnpkMacSchDedBoUpdtReq ARGS((
965 * @brief Request from MAC to scheduler to update common channel BO.
966 * @details This primitive is used for light-weight loose coupling.
968 EXTERN S16 cmPkMacSchCmnBoUpdtReq ARGS((
973 typedef S16 (*CmnBoUpdtReq) ARGS((
979 * @brief Request from MAC to scheduler to update common channel BO.
980 * @details MAC layer invokes this primitive towards scheduler when it
981 * receives status response from the RLC for common channels. Scheduler
982 * takes the buffer occupancy information into consideration while taking
983 * scheduling decisons.
985 EXTERN S16 RgMacSchCmnBoUpdtReq ARGS((
990 * @brief Request from MAC to scheduler to update common channel BO.
991 * @details This primitive is used for light-weight loose coupling.
993 EXTERN S16 cmUnpkMacSchCmnBoUpdtReq ARGS((
999 /*Fix: start:Indicate UE deletion at MAC to scheduler*/
1001 * @brief UE delete indication from MAC to scheduler.
1002 * @details This primitive is used for light-weight loose coupling.
1004 EXTERN S16 cmPkMacSchUeDelInd ARGS((
1006 RgInfUeDelInd* ueDelInd
1009 typedef S16 (*UeDelInd) ARGS((
1011 RgInfUeDelInd* ueDelInd
1015 * @brief UE deletion indication from MAC to scheduler.
1016 * @details MAC layer invokes this primitive towards scheduler when it
1017 * receives UE delete Request. As the UE is now deleted at MAC, it should
1020 EXTERN S16 RgMacSchUeDelInd ARGS((
1022 RgInfUeDelInd* ueDelInd
1025 * @brief UE delete Indication Request from MAC to scheduler.
1026 * @details This primitive is used for light-weight loose coupling.
1028 EXTERN S16 cmUnpkMacSchUeDelInd ARGS((
1033 /*Fix: end:Indicate UE deletion at MAC to scheduler*/
1035 * @brief Data Indication Request from MAC to scheduler.
1036 * @details This primitive is used for light-weight loose coupling.
1038 EXTERN S16 cmPkMacSchSfRecpInd ARGS((
1040 RgInfSfDatInd* datInd
1043 typedef S16 (*SfRecpInd) ARGS((
1045 RgInfSfDatInd* datInd
1049 * @brief Data Indication Request from MAC to scheduler.
1050 * @details MAC layer invokes this primitive towards scheduler when it
1051 * receives MAC Control Elements from the data received from the UE. Scheduler
1052 * takes these control elements into consideration while taking scheduling
1053 * decisons for the uplink.
1055 EXTERN S16 RgMacSchSfRecpInd ARGS((
1057 RgInfSfDatInd* datInd
1060 * @brief Data Indication Request from MAC to scheduler.
1061 * @details This primitive is used for light-weight loose coupling.
1063 EXTERN S16 cmUnpkMacSchSfRecpInd ARGS((
1069 * @brief Resource Allocation Request from Scheduler to MAC.
1070 * @details This primitive is used for light-weight loose coupling.
1072 EXTERN S16 cmPkSchMacSfAllocReq ARGS((
1074 RgInfSfAlloc* resAllocReq
1077 typedef S16 (*SfAllocReq) ARGS((
1079 RgInfSfAlloc* resAllocReq
1083 * @brief Resource Allocation Request from Scheduler to MAC.
1084 * @details Scheduler invokes this primitive for every TTI towards MAC to
1085 * inform the scheduling decisions taken for uplink grants, common channels
1086 * and list of UEs to be scheduling during this TTI.
1088 EXTERN S16 RgSchMacSfAllocReq ARGS((
1090 RgInfSfAlloc* resAllocReq
1093 * @brief Resource Allocation Request from Scheduler to MAC.
1094 * @details This primitive is used for light-weight loose coupling.
1096 EXTERN S16 cmUnpkSchMacSfAllocReq ARGS((
1102 * @brief Request from Scheduler to release HARQ processes at MAC.
1103 * @details This primitive is used for light-weight loose coupling.
1105 EXTERN S16 cmPkSchMacRlsHqReq ARGS((
1107 RgInfRlsHqInfo* sfHqInfo
1110 typedef S16 (*RlsHqReq) ARGS((
1112 RgInfRlsHqInfo* sfHqInfo
1116 * @brief Request from Scheduler to release HARQ processes at MAC.
1117 * @details Scheduler calls this primitive to send the list of UEs for
1118 * which the HARQ buffers are released to MAC. The Scheduler invokes this
1119 * primitive when a positive acknowledgement is received for the TB transmitted
1120 * or a TB is retransmitted for the allowed maximum number of retransmissions.
1122 EXTERN S16 RgSchMacRlsHqReq ARGS((
1124 RgInfRlsHqInfo* sfHqInfo
1127 * @brief Request from Scheduler to release HARQ processes at MAC.
1128 * @details This primitive is used for light-weight loose coupling.
1131 EXTERN S16 cmUnpkSchMacRlsHqReq ARGS((
1138 * @brief Request from Scheduler to reset HARQ Entity at MAC.
1139 * @details This primitive is used for light-weight loose coupling.
1141 EXTERN S16 cmPkSchMacRstHqEntReq ARGS((
1143 RgInfResetHqEnt* hqEntInfo
1146 typedef S16 (*RstHqEntReq) ARGS((
1148 RgInfResetHqEnt* hqEntInfo
1152 * @brief Request from Scheduler to reset HARQ entity at MAC for a scell of an ue.
1153 * This is triggered upon deactivation of a scell
1155 EXTERN S16 RgSchMacRstHqEntReq ARGS((
1157 RgInfResetHqEnt* hqEntInfo
1160 * @brief Request from Scheduler to release HARQ processes at MAC.
1161 * @details This primitive is used for light-weight loose coupling.
1164 EXTERN S16 cmUnpkSchMacRstHqEntReq ARGS((
1170 * @brief Request from Scheduler to release RNTI at MAC.
1171 * @details This primitive is used for light-weight loose coupling.
1173 EXTERN S16 cmPkSchMacRlsRntiReq ARGS((
1175 RgInfRlsRnti* rlsRnti
1178 typedef S16 (*RlsRntiReq) ARGS((
1180 RgInfRlsRnti* rlsRnti
1184 * @brief Request from Scheduler to release RNTI at MAC.
1185 * @details The Scheduler calls this primitive to send the list of RNTIs for
1186 * which the RRC Connection is being rejected.
1188 EXTERN S16 RgSchMacRlsRntiReq ARGS((
1190 RgInfRlsRnti* rlsRnt
1193 * @brief Request from Scheduler to release RNTI at MAC.
1194 * @details This primitive is used for light-weight loose coupling.
1196 EXTERN S16 cmUnpkSchMacRlsRntiReq ARGS((
1201 /* Added support for SPS*/
1203 typedef S16 (*LcgReg) ARGS((
1205 RgInfLcgRegReq *lcgRegReq
1208 EXTERN S16 cmPkSchMacLcgRegReq ARGS((
1210 RgInfLcgRegReq *lcgRegReq
1213 EXTERN S16 RgSchMacLcgRegReq ARGS((Pst *pst, RgInfLcgRegReq *lcgRegReq));
1215 EXTERN S16 cmUnpkSchMacLcgRegReq ARGS((
1221 EXTERN S16 RgSchMacLcgReg ARGS((Pst* pst, RgInfLcgRegReq *lcgRegReq));
1225 * @brief Primitive from Scheduler to MAC to register the logical channels of
1227 * @details This primitive is used for light-weight loose coupling.
1229 EXTERN S16 cmPkSchMacSpsLcRegReq ARGS((
1231 RgInfSpsLcInfo *lcInfo
1234 typedef S16 (*SpsLcReg) ARGS((
1236 RgInfSpsLcInfo *lcInfo
1240 * @brief Request from Scheduler to register the SPS related logical channels.
1241 * @details Scheduler calls this primitive to send the list of logical channels
1242 * that belong to the SPS logical channel group.
1244 EXTERN S16 RgSchMacSpsLcRegReq ARGS((Pst *pst, RgInfSpsLcInfo *lcInfo));
1246 EXTERN S16 cmUnpkSchMacSpsLcRegReq ARGS((
1254 * @brief Primitive from Scheduler to MAC to Reset UL SPS related Params
1255 * @details This primitive is used for light-weight loose coupling.
1257 EXTERN S16 cmPkSchMacUlSpsResetReq ARGS((
1259 RgInfUlSpsReset *ulSpsResetInfo
1262 typedef S16 (*UlSpsReset) ARGS((
1264 RgInfUlSpsReset *ulSpsResetInfo
1268 * @brief Request from Scheduler to reset UL SPS Params
1269 * @details Scheduler calls this primitive to reset implicit and explicit
1270 * release counters for the UE
1272 EXTERN S16 RgSchMacUlSpsResetReq ARGS((Pst *pst, RgInfUlSpsReset *ulSpsResetInfo));
1274 EXTERN S16 cmUnpkSchMacUlSpsResetReq ARGS((
1283 * @brief Primitive from Scheduler to MAC to deregister the logical channels of
1285 * @details This primitive is used for light-weight loose coupling.
1287 EXTERN S16 cmPkSchMacSpsLcDeregReq ARGS((
1293 typedef S16 (*SpsLcDereg) ARGS((
1300 * @brief Request from Scheduler to deregister the SPS related logical channels.
1301 * @details Scheduler calls this primitive to send the deregistration request
1302 * for a UE once SPS is released for it
1304 EXTERN S16 RgSchMacSpsLcDeregReq ARGS((Pst *pst, CmLteCellId cellId, CmLteRnti
1307 EXTERN S16 cmUnpkSchMacSpsLcDeregReq ARGS((
1314 * @brief Primitive from MAC to Scheduler to indicate release of UL SPS for a UE
1315 * @details This primitive is used for light-weight loose coupling.
1317 EXTERN S16 cmPkMacSchSpsRelInd ARGS((
1319 RgInfSpsRelInfo* relInfo
1322 typedef S16 (*SpsRelInd) ARGS((
1324 RgInfSpsRelInfo* relInfo
1328 * @brief Indication from MAC to Scheduler to release UL SPS for a UE
1329 * @details MAC calls this primitive to inform the scheduler that UL SPS needs
1330 * to be released for a UE
1332 EXTERN S16 RgMacSchSpsRelInd ARGS((Pst *pst, RgInfSpsRelInfo *relInfo));
1334 EXTERN S16 cmUnpkMacSchSpsRelInd ARGS((
1342 EXTERN S16 cmPkMacSchL2MeasCfm ARGS((
1344 RgInfL2MeasCfm *measCfm
1347 EXTERN S16 cmPkMacSchL2MeasStopCfm ARGS((
1349 RgInfL2MeasCfm *measCfm
1353 EXTERN S16 cmPkSchMacL2MeasReq ARGS((
1355 RgInfL2MeasReq *measInfo
1358 EXTERN S16 cmPkSchMacL2MeasStopReq ARGS((
1360 RgInfL2MeasStopReq *measInfo
1363 EXTERN S16 cmPkSchMacL2MeasSendReq ARGS((
1365 RgInfL2MeasSndReq *measInfo
1367 typedef S16 (*L2MeasReq) ARGS((
1369 RgInfL2MeasReq *measInfo
1372 typedef S16 (*L2MeasStopReq) ARGS((
1374 RgInfL2MeasStopReq *measInfo
1377 typedef S16 (*L2MeasSendReq) ARGS((
1379 RgInfL2MeasSndReq *measInfo
1381 typedef S16 (*L2MeasStopCfm) ARGS((
1383 RgInfL2MeasCfm *measCfm
1386 typedef S16 (*L2MeasCfm) ARGS((
1388 RgInfL2MeasCfm *measCfm
1390 EXTERN S16 cmUnpkMacSchL2MeasCfm ARGS
1396 EXTERN S16 cmUnpkSchMacL2MeasReq ARGS((
1401 EXTERN S16 cmUnpkSchMacL2MeasSendReq ARGS((
1406 EXTERN S16 cmUnpkSchMacL2MeasStopReq ARGS((
1412 EXTERN S16 cmUnpkMacSchL2MeasStopCfm ARGS((
1418 EXTERN S16 RgSchMacRlsRnti ARGS((Pst* pst, RgInfRlsRnti* rlsRnti));
1419 EXTERN S16 RgSchMacRlsHq ARGS((Pst* pst, RgInfRlsHqInfo* sfHqInfo));
1420 EXTERN S16 RgSchMacSfAlloc ARGS((Pst* pst, RgInfSfAlloc* resAllocReq));
1421 EXTERN S16 RgSchMacRstHqEnt ARGS((Pst* pst, RgInfResetHqEnt* hqEntInfo));
1422 EXTERN S16 RgMacSchSfRecp ARGS((Pst* pst, RgInfSfDatInd* datInd));
1423 EXTERN S16 RgMacSchCmnBoUpdt ARGS(( Pst* pst, RgInfCmnBoRpt* boRpt));
1424 EXTERN S16 RgMacSchDedBoUpdt ARGS(( Pst* pst, RgInfDedBoRpt* boRpt));
1425 EXTERN S16 RgSchMacCellReg ARGS((Pst* pst,RgInfCellReg* regReq));
1427 EXTERN S16 RgSchMacL2Meas ARGS((Pst* pst, RgInfL2MeasReq* l2MeasReq));
1428 EXTERN S16 RgMacSchL2Meas ARGS((Pst* pst, RgInfL2MeasCfm* l2MeasCfm));
1429 EXTERN S16 RgSchMacL2MeasStop ARGS((Pst* pst, RgInfL2MeasStopReq *measInfo));
1430 EXTERN S16 RgSchMacL2MeasSend ARGS((Pst* pst, RgInfL2MeasSndReq *measInfo));
1431 #endif /* LTE_L2_MEAS */
1432 /* Added support for SPS*/
1434 EXTERN S16 RgSchMacSpsLcReg ARGS((Pst *pst, RgInfSpsLcInfo *lcInfo));
1435 EXTERN S16 RgSchMacUlSpsReset ARGS((Pst *pst, RgInfUlSpsReset *lcInfo));
1436 EXTERN S16 RgSchMacSpsLcDereg ARGS((Pst *pst, CmLteCellId cellId, CmLteRnti
1438 EXTERN S16 RgMacSchSpsRel ARGS((Pst *pst, RgInfSpsRelInfo* relInfo));
1440 EXTERN S16 RgMacSchUeDel ARGS((Pst* pst, RgInfUeDelInd* ueDelInd));
1445 #endif /* __GKSCH_X__*/
1447 /**********************************************************************
1450 **********************************************************************/