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 /**********************************************************************
20 Name: Lower layer interface - TFU
24 Desc: Structures, variables and typedefs required by
29 *********************************************************************21*/
33 @brief Structure declarations and definitions for TFU interface.
43 /***********************************************************************
44 typedefs and data structures
45 ***********************************************************************/
46 /** @enum TfuDciFormat
47 * This Enum has values for the DCI format types.
51 TFU_DCI_FORMAT_0, /*!< DCI format 0 */
52 TFU_DCI_FORMAT_1, /*!< DCI format 1 */
53 TFU_DCI_FORMAT_1A, /*!< DCI format 1A */
54 TFU_DCI_FORMAT_1B, /*!< DCI format 1B */
55 TFU_DCI_FORMAT_1C, /*!< DCI format 1C */
56 TFU_DCI_FORMAT_1D, /*!< DCI format 1D */
57 TFU_DCI_FORMAT_2, /*!< DCI format 2 */
58 TFU_DCI_FORMAT_2A, /*!< DCI format 2A */
59 TFU_DCI_FORMAT_3, /*!< DCI format 3 */
60 TFU_DCI_FORMAT_3A /*!< DCI format 3A */
62 ,TFU_DCI_FORMAT_A1, /*!< 5GTF: DCI format A1 */
63 TFU_DCI_FORMAT_A2, /*!< 5GTF: DCI format A2 */
64 TFU_DCI_FORMAT_B1, /*!< 5GTF: DCI format B1 */
65 TFU_DCI_FORMAT_B2 /*!< 5GTF: DCI format B2 */
68 ,TFU_DCI_FORMAT_6_0A, /*!< DCI format 6-0 A */
69 TFU_DCI_FORMAT_6_0B, /*!< DCI format 6-0 B */
70 TFU_DCI_FORMAT_6_1A, /*!< DCI format 6-1 A */
71 TFU_DCI_FORMAT_6_1B, /*!< DCI format 6-1 B */
72 TFU_DCI_FORMAT_6_2 /*!< DCI format 6-2 */
74 /*tfu_x_001.main_6 - Added support for SPS*/
76 ,TFU_DCI_FORMAT_INVALID /*!< Invalid DCI format value */
80 /** @enum TfuModScheme
81 * This enum contains the values for the modulation schemes possible.
92 /** @enum TfuDlCqiPucchMode
93 * This enum contains values for the CQI reporting modes.
104 * This enum contains values for Type of UEs CQI reporting.
113 #ifdef PHY_ERROR_LOGING
114 typedef struct _rgSchUlAllocCntr RgSchUlAllocCntr;
116 struct _rgSchUlAllocCntr
131 EXTERN RgSchUlAllocCntr rgSchUlAllocCntr;
136 typedef struct rgSchDlHqStats
155 typedef struct ysMsDlHqStats
159 U8 mode; /*1 = PUCCH 2= PUSCH*/
161 U8 o0; /*For PUCCH n1PUCCH*/
162 U8 o1; /*For PUCCH Invalid*/
174 #define MAX_STATS_CNT
178 /* Considers case where RIV is <= 324 for DCI format A1 */
179 typedef struct tfuRbAssignA1Val324
181 U8 hqProcId; /*!< HARQ process ID */
182 U8 mcs; /*!< 4 bits for MCS */
183 Bool ndi; /*!< 1 bit for new data indicator */
184 } TfuRbAssignA1Val324;
186 /* Considers case where RIV is <= 324 for DCI format B1 */
187 typedef struct tfuRbAssignB1Val324
189 U8 hqProcId; /*!< HARQ process ID */
190 U8 mcs; /*!< 4 bits for MCS */
191 Bool ndi; /*!< 1 bit for new data indicator */
192 U8 RV; /*!< 2 bits Redundancy version */
193 U8 bmiHqAckNack; /* BMI: Bit Mapping Index for Harq-Ack
194 Refer sec 8.5 of 213 spec */
195 } TfuRbAssignB1Val324;
197 /* Considers case where RIV is == 326 */
198 typedef struct tfuRbAssignVal326
200 U8 FreqBandIdx; /* nRACH: Frequency band index Value:0 -> 7 */
201 Bool OCCInd; /* nOCC: OCC indicator Value:0 -> 1 */
202 U8 CyclicShiftInd; /* nNcs: Cyclic shift indicator Value:0 -> 3 */
206 /* DCI format A1: UL xPDCCH */
207 typedef struct tfuDciFormatA1Info
209 Bool formatType; /* Format Descriminator 00: A1, 01:A2 */
210 U8 xPUSCHRange; /* 0 : the stopping of xPUSCH is the 12th symbol,
211 1 : the stopping of xPUSCH is the 13th symbol,
212 2 : the stopping of xPUSCH is the final (14th) symbol */
213 U8 xPUSCH_TxTiming; /* Transmission timing of xPUSCH Value: 0->7
215 U16 RBAssign; /*!< same as phy i/f RBAssign: RIV as defined in V5G.213
216 Value <= 324: this field assigns morethan zero RB.
217 Value ==325: this format assigns zero RB.
218 Value ==326: this format assigns zero RB and used
219 for Randon Access procedure initiated by xPDCCH order. */
220 U8 beamIndex; /*!< transmit beam index: Value: 0->7 */
221 U8 symbIdx; /*!< OFDM symbol index for the xPDCCH: Value: 0->1 */
222 U8 rv; /*!< HARQ redundancy version, Value: 0 -> 3 */
224 /* Based on RBAssign/RIV value*/
227 TfuRbAssignA1Val324 rbAssignA1Val324;
228 TfuRbAssignVal326 rbAssignVal326;
231 U8 CSI_BSI_BRI_Req; /* CSI / BSI / BRI request Value:0 -> 7 */
232 U8 CSIRS_BRRS_TxTiming; /* Transmission timing of CSI-RS / BRRS, Value:0 -> 3
234 #ifdef FIVEGTF_PHY_API
239 /* ToDo: following 4 fields can be made as union with an indicator type*/
240 U8 CSIRS_BRRS_SymbIdx; /* Indication of OFDM symbol index for CSI-RS / BRRS allocations
242 U8 CSI_BRRS_Indicator; /* If this DCI format allocates either of
243 CSI-RS or BRRS transmission Value:0 -> 3 */
244 U8 CSIRS_BRRS_ProcInd; /* Process indicator : Value:0 -> 3 */
245 U8 numBSI_Reports; /* Number of BSI reports Value:0 -> 3 */
247 Bool uciOnxPUSCH; /* "UCI on xPUSCH w/o xUL-SCH data" indicator. Value:0 -> 1 */
248 Bool beamSwitch; /* beam switch indication. Value:0 -> 1 */
250 U8 SRS_Config; /* Indication of SRS configurations Value:0 -> 3
251 00 : {No SRS request}, 01 : {Config. #0},
252 10 : {Config. #1}, 11 : {Config. #2} */
253 Bool SRS_Symbol; /* If SRS is requested, 0: SRS transmission on the 13th OFDM symbol
254 and 1: SRS transmission on the 14th OFDM symbol */
256 U8 REMapIdx_DMRS_PCRS_numLayers; /* RE Mapping index, Ki for DMRS/PCRS and number of layers
258 0: 1 Layer, k0 = 0, 1: 1 Layer, k0 = 1
259 2: 1 Layer, k0 = 2, 3: 1 Layer, k0 = 3
260 4: 2 Layers, k0 = 0 and k1 = 1
261 5: 2 Layers, k0 = 2 and k1 = 3
263 Bool SCID; /* nSCID is applied for both DMRS in subframe n and
264 CSI-RS in subframe n+m Value: 0 -> 1 */
265 U8 PMI; /* Precoding matrix indicator Value:0 -> 7 */
266 #ifdef FIVEGTF_PHY_API
267 U8 AntPorts_numLayers;
268 U8 TransmissionScheme;
270 Bool UL_PCRS; /* UL dual PCRS Value: 0 -> 1 */
271 U8 tpcCmd; /*!< 2 bits for TPC command for xPUSCH, Values: 0->3 */
272 } TfuDciFormatA1Info;
274 /* DCI format A2: UL xPDCCH */
275 typedef TfuDciFormatA1Info TfuDciFormatA2Info;
277 /* DCI format B1: DL xPDCCH */
278 typedef struct tfuDciFormatB1Info
280 Bool formatType; /* Format Descriminator 2: B1, 3:B2 */
281 U8 xPDSCHRange; /* MSB (starting of xPDSCH including DMRS symbol) :
282 0 is the second symbol, 1 is the third symbol.
283 LSB (stopping of xPDSCH): 0 is the 12th symbol,
284 1 is the 14th symbol */
285 U16 RBAssign; /*!< same as phy i/f RBAssign: RIV as defined in V5G.213
286 Value <= 324: this field assigns morethan zero RB.
287 Value ==325: this format assigns zero RB.
288 Value ==326: this format assigns zero RB and used
289 for Randon Access procedure initiated by xPDCCH order. */
290 U8 beamIndex; /*!< transmit beam index: Value: 0->7 */
291 U8 symbIdx; /*!< OFDM symbol index for the xPDCCH: Value: 0->1 */
292 /* Based on RBAssign/RIV value*/
295 TfuRbAssignB1Val324 rbAssignB1Val324;
296 TfuRbAssignVal326 rbAssignVal326;
299 U8 CSI_BSI_BRI_Req; /* CSI / BSI / BRI request Value:0 -> 7 */
300 U8 CSIRS_BRRS_TxTiming; /* Transmission timing of CSI-RS / BRRS, Value:0 -> 3
302 /* ToDo: following 4 fields can be made as union with an indicator type*/
303 U8 CSIRS_BRRS_SymbIdx; /* Indication of OFDM symbol index for CSI-RS / BRRS allocations
305 U8 CSI_BRRS_Indicator; /* If this DCI format allocates either of
306 CSI-RS or BRRS transmission Value:0 -> 3 */
307 U8 CSIRS_BRRS_ProcInd; /* Process indicator : Value:0 -> 3 */
308 U8 numBSI_Reports; /* Number of BSI reports Value:0 -> 3 */
310 Bool xPUCCH_TxTiming; /* field indicates transmission time offset value k.{0, 1, ., 7} */
311 U8 freqResIdx_xPUCCH; /* Frequency resource index of xPUCCH for UCI report */
312 Bool beamSwitch; /* beam switch indication. Value:0 -> 1 */
314 U8 SRS_Config; /* Indication of SRS configurations Value:0 -> 3
315 00 : {No SRS request}, 01 : {Config. #0},
316 10 : {Config. #1}, 11 : {Config. #2} */
317 Bool SRS_Symbol; /* If SRS is requested, 0: SRS transmission on the 13th OFDM symbol
318 and 1: SRS transmission on the 14th OFDM symbol */
320 U8 AntPorts_numLayers;
322 Bool SCID; /* nSCID is applied for both DMRS in subframe n and
323 CSI-RS in subframe n+m Value: 0 -> 1 */
324 U8 tpcCmd; /*!< 2 bits for TPC command for xPUCCH, Values: 0->3 */
325 Bool DL_PCRS; /* DL PCRS Value: 0 -> 3
326 00 : {No PCRS }, 01 : {PCRS on AP 60},
327 10 : {PCRS on AP 61}, 11 : {PCRS on AP 60 and 61}*/
329 } TfuDciFormatB1Info;
331 /* DCI format B2: DL xPDCCH */
332 typedef TfuDciFormatB1Info TfuDciFormatB2Info;
333 #endif /* TFU_5GTF */
335 /** @brief This structure contains the information needed to convey DCI format 0.
337 typedef struct tfuDciFormat0Info
339 Bool isSrGrant; /*!< This is to aid a counter which prints num successful SR Grants SR_RACH_STATS */
340 Bool isMsg4PdcchWithCrnti; /* This is to aid rgNumMsg4PdcchWithCrnti counter which counts
341 num of PDCCH scrambled with CRNTI for CRNTI Based contention resolution */
342 Bool hoppingEnbld; /*!< TRUE, if hopping is enabled */
343 U8 rbStart; /*!< Starting RB */
344 U8 numRb; /*!< Number of RBs */
346 U32 riv; /*!< RIV as defined in 213
347 section 7.1.6.3 - used only for
350 U8 hoppingBits; /*!< Hopping bits as mentioned in 213 section 8.4 */
351 U8 mcs; /*!< 5 bits for MCS and RV */
352 Bool ndi; /*!< 1 bit for new data indicator */
353 U8 tpcCmd; /*!< 2 bits for TPC command */
357 U8 ulIdx; /*!< UL index applicable only for TDD */
358 U8 dai; /*!< The downlink assignement index */
361 U8 nDmrs; /*!< 3 bits for DMRS cyclic shift */
362 U8 cqiReq; /*!< 1 bit for CQI non-CA while value 00, 01, 10 and 11 for CA */
363 U8 numCqiBit; /*!< Number of CsiReq Bit(s) Values : 1 or 2(CA)*/
364 U8 txAntenna; /*!< Antenna selection - 213 section 8.7 */
366 /* tfu_x_001.main_4: Adding hqProcId */
367 U8 hqProcId; /*!< HARQ process ID */
370 /** @enum TfuAllocType
371 * This enum contains the values for the allocation types.
375 TFU_ALLOC_TYPE_MAP= 1,
379 /** @brief This Structure contains either a resource allocation bit map OR a
380 * RIV Value as defined in 213 section 7.1.6.
382 typedef struct tfuAllocMapOrRiv
384 TfuAllocType type; /*!< Allocation type RIV or resAllocMap */
388 U32 riv; /*!< RIV as defined in 213 section 7.1.6.3. */
389 /*tfu_x_001.main_8 - ADD - TFU_RESMAP_CHANGE support */
390 #ifndef TFU_RESMAP_CHANGE
391 U8 resAllocMap[TFU_MAX_ALLOC_BYTES]; /*!< Resource
392 allocation bitmap. LSB aligns with the
393 LSB of the allocation bits.*/
394 #else /* TFU_RESMAP_CHANGE */
395 TfuAllocMap allocMap; /*!< Allocation Map. */
400 /** @enum TfuAllocSubType
401 * This enum contains the values for the allocation types.
411 /** @brief This Structure contains either a resource allocation bitmap for
412 * for resource allocation type 0/1.
413 * TODO: This structure can be made part of all DCI format having alloction
416 typedef struct tfuAllocMap
418 TfuAllocSubType type; /*!< Allocation type: 0/1 */
423 U32 allocMask; /*!< Allocation Mask for RBGs */
427 U8 rbgSubset; /*!< RBG Subset number: Value in set
429 U8 shift; /*!< Shift value for RBG mask: Value in
431 U32 allocMask; /*!< Allocation bitmask */
437 /** @brief This structure contains only the allocation information, that is part
439 * @details Allocation information also contains parameters necessary
440 * for Physical layer to process Downlink data. This structure accompanies the
441 * Data that is sent from MAC to PHY in the TfUiTfuDatReq primitive.
442 * @sa TfuDciFormat1Info
444 typedef struct tfuDciFormat1AllocInfo
446 Bool isAllocType0; /*!< TRUE, if allocation type is 0 */
447 U8 resAllocMap[TFU_MAX_ALLOC_BYTES]; /*!< Resource allocation bitmap.
448 LSB aligns with the LSB of the
450 U8 harqProcId; /*!< HARQ process ID */
451 Bool ndi; /*!< 1 bit for new data indicator */
452 U8 mcs; /*!< 5 bits for MCS */
453 U8 rv; /*!< Redundancy version */
454 } TfuDciFormat1AllocInfo;
456 /** @brief This structure contains the information needed to convey DCI format 1.
457 * @details Allocation information is separated from the other control
458 * information carried in this format. This separation is needed as Data must
459 * also carry some control information, essentially, allocation information
460 * along with it, in order to aid physical layer processing of the data.
462 typedef struct tfuDciFormat1Info
464 TfuDciFormat1AllocInfo allocInfo; /*!< Allocation Information to map data on PDSCH */
468 U8 dai; /*!< The downlink assignement index */
471 U8 tpcCmd; /*!< 2 bits for TPC command */
474 /** @brief This structure contains the TB level DCI signalling
475 * parameters in case of DCI formats 2 and 2A */
476 typedef struct tfuDciFormatTbInfo
478 Bool ndi; /*!< New data indicator */
479 U8 rv; /*!< Redundancy version Indicator */
480 U8 mcs; /*!< 5 bits for MCS */
483 /** @brief This structure contains only the allocation information, that is part
485 * @details Allocation information also contains parameters necessary
486 * for Physical layer to process Downlink data. This structure accompanies the
487 * Data that is sent from MAC to PHY in the TfUiTfuDatReq primitive.
488 * @sa TfuDciFormat2AInfo
490 typedef struct tfuDciFormat2AAllocInfo
492 Bool isAllocType0; /*!< TRUE, if allocation type is 0 */
493 /*tfu_x_001.main_8 - ADD - TFU_RESMAP_CHANGE support */
494 #ifndef TFU_RESMAP_CHANGE
495 U8 resAllocMap[TFU_MAX_ALLOC_BYTES]; /*!< Resource allocation bitmap.
496 LSB aligns with the LSB of the
499 TfuAllocMap allocMap; /*!< Allocation Map */
500 #endif /* TFU_RESMAP_CHANGE */
501 U8 harqProcId; /*!< HARQ process ID */
502 TfuDciFormatTbInfo tbInfo[2]; /*!< DCI Format 2/2A info per TB */
503 U8 precoding; /*!< Precoding information bit */
504 Bool transSwap; /*!< Transport block to codeword swap flag */
505 } TfuDciFormat2AAllocInfo;
508 /** @brief This structure contains the information carried by DCI format 2A.
509 * @details It carries the allocation information and other control information.
511 typedef struct tfuDciFormat2AInfo
513 TfuDciFormat2AAllocInfo allocInfo; /*!< Allocation Information to map data on PDSCH */
517 U8 dai; /*!< The downlink assignement index */
520 U8 tpcCmd; /*!< 2 bits for TPC command */
521 } TfuDciFormat2AInfo;
523 /** @brief This structure contains only the allocation information, that is part
525 * @details Allocation information also contains parameters necessary
526 * for Physical layer to process Downlink data. This structure accompanies the
527 * Data that is sent from MAC to PHY in the TfUiTfuDatReq primitive.
528 * @sa TfuDciFormat2Info
530 typedef struct tfuDciFormat2AllocInfo
532 Bool isAllocType0; /*!< TRUE, if allocation type is 0 */
533 #ifndef TFU_RESMAP_CHANGE
534 U8 resAllocMap[TFU_MAX_ALLOC_BYTES]; /*!< Resource
535 allocation bitmap. LSB aligns
536 with the LSB of the allocation
539 TfuAllocMap allocMap; /*!< Allocation Map.*/
545 U8 dai; /*!< The downlink assignement index */
548 Bool transSwap; /*!< Transport block to codeword swap
550 U8 precoding; /*!< Precoding information bit */
551 U8 harqProcId; /*!< HARQ process ID */
552 TfuDciFormatTbInfo tbInfo[2]; /*!< DCI Format 2/2A info per TB */
553 } TfuDciFormat2AllocInfo;
556 /** @brief This structure contains the information carried by DCI format 2.
557 * @details Allocation information is separated from the other control
558 * information carried in this format. This separation is needed as Data must
559 * also carry some control information, essentially, allocation information
560 * along with it, in order to aid physical layer processing of the data.
562 typedef struct tfuDciFormat2Info
564 TfuDciFormat2AllocInfo allocInfo; /*!< Allocation Information to map
566 U8 tpcCmd; /*!< 2 bits for TPC command */
571 U8 dai; /*!< The downlink assignment index */
577 /** @brief This structure contains the information carried in DCI format 3.
579 typedef struct tfuDciFormat3Info
581 U8 tpcCmd[TFU_MAX_2BIT_TPC]; /*!< 2 bits for TPC command.
582 LSB corresponds to the 1st bit of the 1st
584 U8 isPucch; /*!< 1 if the TPC meant for PUCCH, 0 if the TPC meant for PUSCH */
588 /** @brief This structure contains the information carried by DCI format 3A.
590 typedef struct tfuDciFormat3AInfo
592 U8 tpcCmd[TFU_MAX_1BIT_TPC]; /*!< 1 bit for TPC command.
593 LSB corresponds to the 1st bit of the
595 U8 isPucch; /*!< 1 if the TPC meant for PUCCH, 0 if the TPC meant for PUSCH */
596 } TfuDciFormat3AInfo;
600 /** @brief This structure contains only the allocation information that is part
602 * @details Allocation information also contains parameters necessary
603 * for Physical layer to process Downlink data. This structure accompanies the
604 * Data that is sent from MAC to PHY in the TfUiTfuDatReq primitive.
605 * @sa TfuDciFormat1dInfo
607 typedef struct tfuDciFormat1dAllocInfo
609 Bool isLocal; /*!< TRUE, if localised VRB */
610 TknU8 nGap2; /*!< 1 indicates Ngap=Ngap,1 and 2 indicates Ngap,2 */
611 TfuAllocMapOrRiv alloc; /*!< Allocation represented as a bit-map or RIV */
612 U8 mcs; /*!< 5 bits for MCS */
613 U8 rv; /*!< Redundancy version */
615 } TfuDciFormat1dAllocInfo;
617 /** @brief This structure contains the information carried by DCI format 1D.
618 * @details Allocation information is separated from the other control
619 * information carried in this format. This separation is needed as Data must
620 * also carry some control information, essentially, allocation information
621 * along with it, in order to aid physical layer processing of the data.
623 typedef struct tfuDciFormat1dInfo
625 TfuDciFormat1dAllocInfo allocInfo; /*!< Allocation information */
626 U8 harqProcId; /*!< HARQ process ID */
627 Bool ndi; /*!< 1 bit for new data indicator */
628 U8 tpcCmd; /*!< 2 bits for TPC command */
632 U8 dai; /*!< The downlink assignement index */
635 U8 dlPwrOffset; /*!< Downlink power offset */
636 } TfuDciFormat1dInfo;
639 /** @brief This structure contains only the allocation information, that is part
641 * @details Allocation information also contains parameters necessary
642 * for Physical layer to process Downlink data. This structure accompanies the
643 * Data that is sent from MAC to PHY in the TfUiTfuDatReq primitive.
644 * @sa TfuDciFormat1CInfo
646 typedef struct tfuDciFormat1cInfo
648 TknU8 nGap2; /*!< 1 indicates Ngap=Ngap,1 and 2 indicates Ngap,2 */
649 TfuAllocMapOrRiv alloc; /*!< Allocation represented as a bit-map or RIV */
650 U8 iTbs; /*!< 5 bits for I-tbs */
651 } TfuDciFormat1cInfo;
654 /** @brief This structure contains only the allocation information, that is part
656 * @details Allocation information also contains parameters necessary
657 * for Physical layer to process Downlink data. This structure accompanies the
658 * Data that is sent from MAC to PHY in the TfUiTfuDatReq primitive.
659 * @sa TfuDciFormat1BInfo
661 typedef struct tfuDciFormat1bAllocInfo
663 Bool isLocal; /*!< TRUE, if localised VRB */
664 TknU8 nGap2; /*!< 1 indicates Ngap=Ngap,1 and 2 indicates Ngap,2 */
665 TfuAllocMapOrRiv alloc; /*!< Allocation represented as a bit-map or RIV */
666 U8 mcs; /*!< 5 bits for MCS */
667 U8 rv; /*!< Redundancy version */
668 U8 harqProcId; /*!< HARQ process ID */
669 Bool ndi; /*!< 1 bit for new data indicator */
671 Bool pmiCfm; /*!< PMI confirmation bit */
672 } TfuDciFormat1bAllocInfo;
675 /** @brief This structure contains the information that is carried in DCI
676 * format 1A for a PDCCH order.
678 typedef struct tfuPdcchOrderInfo
680 U8 preambleIdx; /*!< Dedicated preamble index */
681 U8 prachMaskIdx; /*!< PRACH Mask index used to determine the
682 subframe to be used for RACH */
685 /** @brief This structure contains only the allocation information that is part
687 * @details Allocation information also contains parameters necessary
688 * for Physical layer to process Downlink data. This structure accompanies the
689 * Data that is sent from MAC to PHY in the TfUiTfuDatReq primitive.
690 * @sa TfuDciFormat1AInfo
692 typedef struct tfuDciFormat1aAllocInfo
694 Bool isLocal; /*!< TRUE, if localised VRB */
695 TknU8 nGap2; /*!< 1 indicates Ngap=Ngap,1 and 2 indicates Ngap,2 */
696 TfuAllocMapOrRiv alloc; /*!< Allocation carries RIV or a bitmap */
697 U8 mcs; /*!< 5 bits for MCS */
698 U8 rv; /*!< Redundancy version */
699 TknU8 harqProcId; /*!< HARQ process ID. Reserved
700 if RA-RNTI, P-RNTI, SI-RNTI is used */
701 Bool ndi; /*!< 1 bit for new data indicator */
702 } TfuDciFormat1aAllocInfo;
704 /** @brief This structure contains the information carried in DCI format 1A
705 * when it is NOT used for a PDCCH order.
707 typedef struct tfudciformat1aPdsch
709 TfuDciFormat1aAllocInfo allocInfo; /*!< Allocation information. */
713 TknU8 dai; /*!< The downlink assignement index. Reserved
714 if RA-RNTI, P-RNTI, SI-RNTI is used. */
717 U8 tpcCmd; /*!< 2 bits for TPC command. */
718 Bool isTBMsg4; /*!< This field is added to help counting num of Msg4 Tx failures */
719 } Tfudciformat1aPdsch;
720 /*tfu_x_001.main_6 - Added for SPS support*/
721 /** @brief This structure contains the information needed to convey DCI format 1A.
722 * @details Format can possibly carry PDSCH allocation or information needed for
723 * a PDCCH order, used to initiate a RACH procedure in cases where UE looses
724 * synchronization with eNodeB.
726 typedef struct tfuDciFormat1aInfo
728 /*tfu_x_001.main_6- Added for SPS support*/
732 TfuPdcchOrderInfo pdcchOrder; /*!< PDDCH order information */
733 Tfudciformat1aPdsch pdschInfo; /*!< PDSCH allocation information */
734 /*tfu_x_001.main_6 - Added for SPS support*/
736 } TfuDciFormat1aInfo;
738 /** @brief This structure contains the information needed to convey DCI format 1A.
739 * @details Allocation information is separated from the other control
740 * information carried in this format. This separation is needed as Data must
741 * also carry some control information, essentially, allocation information
742 * along with it, in order to aid physical layer processing of the data.
744 typedef struct tfuDciFormat1bInfo
746 TfuDciFormat1bAllocInfo allocInfo; /*!< Allocation information */
750 U8 dai; /*!< The downlink assignement index */
753 U8 tpcCmd; /*!< 2 bits for TPC command */
754 } TfuDciFormat1bInfo;
756 /** @brief This structure contains the information needed to convey DCI format 6-0A.
758 typedef struct tfuDciFormat60aInfo
760 Bool hoppingEnbld; /*!< TRUE, if hopping is enabled */
761 U32 riv; /*!<9 bits, type2 allocation, RIV as defined in 213 section 7.1.6.3. */
762 U8 mcs; /*!< 4 bits for MCS and RV */
763 U8 rep; /*!< 2 bits, repetion number */
764 U8 hqProcId; /*!< HARQ process ID */
765 Bool ndi; /*!< 1 bit for new data indicator */
766 U8 rv; /*!< 2 bits - Redundancy version */
767 U8 tpcCmd; /*!< 2 bits for TPC command */
769 /* TODO_Mavericks: Check if DAI is required for FDD also */
770 U8 ulIdx; /*!< UL index applicable only for TDD */
771 U8 dai; /*!< The downlink assignement index */
773 Bool cqiReq; /*!< 1 bit for CQI */
774 Bool isSrs; /*!< 1 bit for SRS */
775 U8 dciRep; /*!< 2 bits for DCI Subframe repetition */
776 } TfuDciFormat60aInfo;
777 /** @brief This structure contains only the allocation information, that is part
778 * of DCI format 6-1A.
779 * @details Allocation information also contains parameters necessary
780 * for Physical layer to process Downlink data. This structure accompanies the
781 * Data that is sent from MAC to PHY in the TfUiTfuDatReq primitive.
782 * @sa TfuDciFormat61AInfo
784 typedef struct tfuDciFormat61AllocInfo
786 U32 riv; /*!<9 bits, type2 allocation, RIV as defined in 213 section 7.1.6.3. */
787 /* TODO_EMTC: Add start RB, number of RB, Narrow band if required */
788 U8 harqProcId; /*!< HARQ process ID */
789 Bool ndi; /*!< 1 bit for new data indicator */
790 U8 mcs; /*!< 4 bits for MCS and RV */
791 U8 rv; /*!< 2 bits - Redundancy version */
792 U32 scramblerInitValue; /*!< Scrambler init(Cinit) value as per 36.211 */
793 } TfuDciFormat61AllocInfo;
795 /** @brief This structure contains the information carried in DCI format 6-1A
796 * when it is NOT used for a PDCCH order.
798 typedef struct tfudciformat61aPdsch
800 TfuDciFormat61AllocInfo allocInfo; /* Allocation info for 6-1A */
801 Bool hoppingEnbld; /*!< TRUE, if hopping is enabled */
802 U8 rep; /*!< 2 bits, repetion number */
803 U8 tpcCmd; /*!< 2 bits for TPC command */
805 /* TODO_Maveri: Check if DAI is required for FDD also */
806 U8 dai; /*!< The downlink assignement index */
808 U8 antPortAndScrId; /*!< 2 bits - Antenna port(s) and scrambling identity */
809 Bool isSrs; /*!< 1 bit for SRS */
810 U8 tPmi; /*!< 2 0r 4 bits: TPMI information for precoding */
811 U8 pmiCfm; /*!< 1 bit, PMI confirmation for precoding */
812 U8 harqAckOffst; /*!< 2 bits, HARQ-ACK resource offset */
813 U8 dciRep; /*!< 2 bits for DCI Subframe repetition */
814 Bool isTBMsg4; /*!< This field is added to help counting num of Msg4 Tx failures */
815 } Tfudciformat61aPdsch;
816 typedef struct tfuPdcchOrderInfoEmtc
818 U32 riv; /*!<9 bits, type2 allocation, RIV as defined in 213 section 7.1.6.3. */
819 U8 preambleIdx; /*!< Dedicated preamble index */
820 U8 prachMaskIdx; /*!< PRACH Mask index used to determine the
821 subframe to be used for RACH */
822 U8 ceLevel; /*!< 2 bits, Starting CE level */
823 } TfuPdcchOrderInfoEmtc;
825 /** @brief This structure contains the information needed to convey DCI format 6-1A.
826 * @details Format can possibly carry PDSCH allocation or information needed for
827 * a PDCCH order, used to initiate a RACH procedure in cases where UE looses
828 * synchronization with eNodeB.
830 typedef struct tfuDciFormat61aInfo
835 TfuPdcchOrderInfoEmtc pdcchOrder; /*!< PDDCH order information */
836 Tfudciformat61aPdsch pdschInfo; /*!< PDSCH allocation information */
837 /*tfu_x_001.main_6 - Added for SPS support*/
839 } TfuDciFormat61aInfo;
842 typedef struct tfuDciFormatForEmtcBcch
847 }TfuDciFormatForEmtcBcch;
849 typedef struct tfuDirectIndication
851 U8 directInd; /*!< 8 bit direct Indication Information*/
852 }TfuDirectIndication;
854 typedef struct tfuDciFormat62AllocInfo
856 U8 riv; /*!< Narrow Band Index*/
858 U32 scramblerInitValue; /*!< Scrambler init(Cinit) value as per 36.211 */
859 U8 rv; /*!<Redundancy version */
860 }TfuDciFormat62AllocInfo;
862 typedef struct tfudciformat62Pdsch
864 TfuDciFormat62AllocInfo format62AllocInfo;
865 U8 repNum; /*!< 3 bits, repetion number */
866 U8 dciSubRepNum; /*!< 2 bits for DCI Subframe repetition */
869 }Tfudciformat62Pdsch;
871 typedef struct tfuDciFormat62Info
876 TfuDirectIndication directIndication; /*!< Direct Indication information */
877 Tfudciformat62Pdsch pdschInfo; /*!< Paging information */
879 } TfuDciFormat62Info;
881 #endif /* EMTC_ENABLE */
886 /** @brief This structure contains the information needed to convey the possible DCI
887 * formats. The following are the supported formats:
888 * -# Format 0 - used for PUSCH scheduling
889 * -# Format 1 - used for PDSCH scheduling
890 * -# Format 1A - used for compact scheduling of PDSCH or RA procedure
891 * intitiated by a PDCCH order.
892 * -# Format 1B - used for compact scheduling of PDSCH with precoding
894 * -# Format 1C - used for very compact scheduling of PDSCH.
895 * -# Format 1D - used for compact scheduling for PDSCH with precoding
896 * information with power offset.
897 * -# Format 2 - used for PDSCH scheduling
898 * -# Format 2A - used for PDSCH scheduling
899 * -# Format 3 - used for power control
900 * -# Format 3A - used for power control
902 typedef struct tfuDciInfo
904 TfuDciFormat dciFormat; /*!< DCI format */
907 TfuDciFormat0Info format0Info; /*!< Format 0 information */
908 TfuDciFormat1Info format1Info; /*!< Format 1 information */
909 TfuDciFormat1aInfo format1aInfo; /*!< Format 1A information */
910 TfuDciFormat1bInfo format1bInfo; /*!< Format 1B information */
911 TfuDciFormat1cInfo format1cInfo; /*!< Format 1C information */
912 TfuDciFormat1dInfo format1dInfo; /*!< Format 1D information */
913 TfuDciFormat2Info format2Info; /*!< Format 2 information */
914 TfuDciFormat2AInfo format2AInfo; /*!< Format 2A information */
915 TfuDciFormat3Info format3Info; /*!< Format 3 information */
916 TfuDciFormat3AInfo format3AInfo; /*!< Format 3A information */
918 TfuDciFormat60aInfo format60aInfo; /*!< Format 60a Information */
919 TfuDciFormat61aInfo format61aInfo; /*!< Format 61a Information */
920 TfuDciFormat62Info format62Info; /*!< Formra 62 Information */
921 #endif /* EMTC_ENABLE */
923 TfuDciFormatA1Info formatA1Info; /*!< 5GTF: Format A1 information */
924 TfuDciFormatA2Info formatA2Info; /*!< 5GTF: Format A1 information */
925 TfuDciFormatB1Info formatB1Info; /*!< 5GTF: Format B1 information */
926 TfuDciFormatB2Info formatB2Info; /*!< 5GTF: Format B2 information */
931 /** @brief This structure contains the information needed to convey the start and size
932 * of the sub-band in the CQI report.
934 typedef struct tfuSubbandInfo
936 U8 rbStart; /*!< Starting RB */
937 U8 numRb; /*!< Number of RBs */
940 /** @brief This structure is used to convey the sub-band CQI reported.
942 typedef struct tfuSubbandDlCqiInfo
944 TfuSubbandInfo subband; /*!< Sub-band information */
945 U8 cqiIdx[TFU_MAX_TB]; /*!< Sub-band CQI index per CW */
946 } TfuSubbandDlCqiInfo;
950 /** @brief This structure is used to convey the subbannd CQI reported.
952 typedef struct tfuSubbandCqiInfo
954 TfuSubbandInfo subband; /*!< Sub-band information */
955 U8 cqiIdx; /*!< CQI index */
957 /** @brief This structure conveys the CCE information.
959 typedef struct tfuPdcchCceInfo
961 U8 cceIdx; /*!< CCE index */
962 CmLteAggrLvl aggrLvl; /*!< Aggregation level */
965 /** @brief This structure maps to the CQI mode 10. The report can either
966 * convey a Rank index or a wide-band CQI.
968 typedef struct tfuCqiPucchMode10
970 TfuRptType type; /*!< Either RI or CQI reported */
973 U8 ri; /*!< One RI assuming transmission on S sub-bands */
974 U8 cqi; /*!< Wide-band CQI assuming transmission on S sub-bands */
979 /** @brief This structure contains a wide-band CQI, PMI, and optionally a
980 * wide-band differential CQI.
982 typedef struct tfuCqiMode11Cqi
984 U8 cqi; /*!< Wide-band CQI */
986 TknU8 wideDiffCqi; /*!< Wide-band differential CQI */
989 /** @brief This structure maps to the CQI mode 11. The report can either
990 * convey a Rank index or a CQI report.
992 typedef struct tfuCqiPucchMode11
994 TfuRptType type; /*!< Either RI or CQI reported */
997 U8 ri; /*!< One RI assuming transmission on S sub-bands */
998 TfuCqiMode11Cqi cqi; /*!< CQI assuming transmission on S sub-bands */
1000 } TfuCqiPucchMode11;
1002 /** @brief This structure contains the sub-band CQI for mode 2-0.
1004 typedef struct tfuCqiMode20SubCqi
1006 U8 cqi; /*!< CQI value */
1007 U8 l; /*!< L bit sub-band label */
1008 } TfuCqiMode20SubCqi;
1010 /** @brief This structure contains Mode 20 CQI report. It can either be a
1011 * wide-band CQI or a sub-band CQI.
1013 typedef struct tfuCqiMode20Cqi
1015 Bool isWideband; /*!< TRUE, if wide-band CQI is reported */
1018 U8 wideCqi; /*!< Single Wide-band CQI */
1019 TfuCqiMode20SubCqi subCqi; /*!< Sub-band CQI */
1024 /** @brief This structure maps to CQI mode 20. The report either contains a
1025 * Rank Index or a CQI report.
1027 typedef struct tfuCqiPucchMode20
1029 TfuRptType type; /*!< Either RI or CQI reported */
1032 U8 ri; /*!< One RI assuming transmission on S sub-bands */
1033 TfuCqiMode20Cqi cqi; /*!< CQI assuming transmission on S sub-bands */
1035 } TfuCqiPucchMode20;
1037 /** @brief This structure contains the sub-band CQI report for mode 2-1.
1038 * It carries a CQI, 'L' bit sub-band label, and optionally a differential CQI.
1040 typedef struct tfuCqiMode21SubCqi
1043 U8 l; /*!< L bit sub-band label */
1044 TknU8 diffCqi; /*!< Optional Differential CQI */
1045 } TfuCqiMode21SubCqi;
1048 /** @brief This structure contains the wide-band CQI report for mode 2-1.
1049 * It carries a wide-band CQI, PMI and optionally a differential CQI.
1051 typedef struct tfuCqiMode21WideCqi
1055 TknU8 diffCqi; /*!< Optional Differential CQI */
1056 } TfuCqiMode21WideCqi;
1059 /** @brief This structure conveys CQI report for mode 2-1. The reported value
1060 * can either be wide-band or sub-band.
1062 typedef struct tfuCqiMode21Cqi
1064 Bool isWideband; /*!< TRUE, if wide-band CQI is reported. */
1067 TfuCqiMode21WideCqi wideCqi; /*!< Single Wide-band CQI */
1068 TfuCqiMode21SubCqi subCqi; /*!< Sub-band CQI. */
1073 /** @brief This structure maps to the CQI reporting mode 2-1. The report either
1074 * conveys a Rank Indicator or a CQI report.
1076 typedef struct tfuCqiPucchMode21
1078 TfuRptType type; /*!< Either RI or CQI reported */
1081 U8 ri; /*!< One RI assuming transmission on S sub-bands */
1082 TfuCqiMode21Cqi cqi; /*!< CQI assuming transmission on S sub-bands */
1084 } TfuCqiPucchMode21;
1087 /** @brief This structure conveys the Downlink CQI reported on PUCCH.
1089 typedef struct tfuDlCqiPucch
1092 TfuDlCqiPucchMode mode; /*!< PUSCH CQI mode */
1095 TfuCqiPucchMode10 mode10Info; /*!< Mode 1-0 information */
1096 TfuCqiPucchMode11 mode11Info; /*!< Mode 1-1 information */
1097 TfuCqiPucchMode20 mode20Info; /*!< Mode 2-0 information */
1098 TfuCqiPucchMode21 mode21Info; /*!< Mode 2-1 information */
1103 /** @brief This structure carries sub-band information and PMI, in the CQI
1104 * reporting format 1-2.
1106 typedef struct tfuSubbandMode12
1108 U8 pmi; /*!< PMI for this sub-band */
1109 TfuSubbandInfo subBand; /*!< Sub-band information start and length */
1112 /** @brief This structure conveys information present in CQI reporting mode 1-2 received
1115 typedef struct tfuCqiPuschMode12
1117 U8 numSubband; /*!< Number of sub-bands */
1118 U8 cqiIdx[TFU_MAX_TB]; /*!< Single Wide-band CQI per
1120 TfuSubbandMode12 subbandArr[TFU_MAX_DL_SUBBAND]; /*!< Sub-band information array */
1121 } TfuCqiPuschMode12;
1124 /** @brief This structure conveys information present in CQI reporting mode 2-0 received
1125 * over PUSCH. This mode is for UE selected sub-band feedback.
1127 typedef struct tfuCqiPuschMode20
1129 U8 cqiIdx; /*!< CQI index transmission
1131 U8 wideBandCqi; /*!< Wide-band CQI index, that is,
1132 transmission over S sub-bands */
1133 U8 numSubband; /*!< Number of sub-bands */
1134 TfuSubbandInfo subbandArr[TFU_MAX_DL_SUBBAND]; /*!< Sub-band information array */
1135 } TfuCqiPuschMode20;
1137 /** @brief This structure conveys information present in CQI reporting mode 2-2 received
1140 typedef struct tfuCqiPuschMode22
1142 U8 cqi[TFU_MAX_TB]; /*!< CQI index over M preferred
1144 U8 pmi; /*!< PMI preferred PMI over M
1146 U8 wideBandCqi[TFU_MAX_TB]; /*!< Wide-band CQI */
1147 U8 wideBandPmi; /*!< PMI */
1148 U8 numSubband; /*!< Number of sub-bands, that is, M mentioned in 213, each of size k */
1149 TfuSubbandInfo subbandArr[TFU_MAX_DL_SUBBAND]; /*!< Sub-band information array */
1150 } TfuCqiPuschMode22;
1153 /** @brief This structure holds CQI report information in mode 3-0
1155 typedef struct tfuSubbandMode30
1157 U8 cqi; /*!< CQI for this sub-band */
1158 TfuSubbandInfo subBand; /*!< Sub-band information start and length. */
1162 /** @brief This structure conveys information present in CQI reporting mode 3-0
1163 * received over PUSCH.
1165 typedef struct tfuCqiPuschMode30
1167 U8 wideBandCqi; /*!< Wide-band CQI */
1168 U8 numSubband; /*!< Number of sub-bands */
1169 TfuSubbandMode30 subbandArr[TFU_MAX_DL_SUBBAND]; /*!< Sub-band information array */
1170 } TfuCqiPuschMode30;
1172 /** @brief This structure holds CQI report information in mode 3-1
1174 typedef struct tfuSubbandMode31
1176 U8 cqi[TFU_MAX_TB]; /*!< CQI for this sub-band */
1177 TfuSubbandInfo subBand; /*!< Sub-band information start and length */
1181 /** @brief This structure conveys information present in CQI reporting mode 3-1
1182 * received over PUSCH.
1184 typedef struct tfuCqiPuschMode31
1187 U8 wideBandCqi[TFU_MAX_TB]; /*!< Wide-band CQI per CW */
1188 U8 numSubband; /*!< Number of sub-bands */
1189 TfuSubbandDlCqiInfo subbandCqiArr[TFU_MAX_DL_SUBBAND]; /*!< Array of
1190 sub-bands and CQI for
1192 } TfuCqiPuschMode31;
1194 /** @enum TfuDlCqiPuschMode
1195 * This enum contains values for the CQI reporting modes.
1199 TFU_PUSCH_CQI_MODE_12,
1200 TFU_PUSCH_CQI_MODE_20,
1201 TFU_PUSCH_CQI_MODE_22,
1202 TFU_PUSCH_CQI_MODE_30,
1203 TFU_PUSCH_CQI_MODE_31
1204 } TfuDlCqiPuschMode;
1207 /** @brief This structure conveys Downlink CQI information (mode and corresponding
1208 * CQI) received over PUSCH.
1210 typedef struct tfuDlCqiPusch
1213 TfuDlCqiPuschMode mode; /*!< PUSCH CQI mode */
1214 TknU8 ri; /*!< Rank Indicator for TM 3,4 */
1217 TfuCqiPuschMode12 mode12Info; /*!< Mode 1-2 information */
1218 TfuCqiPuschMode20 mode20Info; /*!< Mode 2-0 information */
1219 TfuCqiPuschMode22 mode22Info; /*!< Mode 2-2 information */
1220 TfuCqiPuschMode30 mode30Info; /*!< Mode 3-0 information */
1221 TfuCqiPuschMode31 mode31Info; /*!< Mode 3-1 information */
1225 /** @brief This structure conveys explicitly the PMI information in case
1226 * of PUSCH feedback usage in scheduling. Applicable for TM 4, 5, 6.
1228 typedef struct tfuDlCqiPuschInfo
1230 TfuDlCqiPuschMode mode; /*!< PUSCH CQI mode */
1233 TfuCqiPuschMode12 mode12Info; /*!< Mode 1-2 information */
1234 TfuCqiPuschMode22 mode22Info; /*!< Mode 2-2 information */
1235 TfuCqiPuschMode31 mode31Info; /*!< Mode 3-1 information */
1237 } TfuDlCqiPuschInfo;
1240 /** @enum TfuAckNackMode
1241 * This enum contains values for modes of HARQ feedback in TDD
1245 TFU_ACK_NACK_BUNDLING,
1246 TFU_ACK_NACK_MULTIPLEXING,
1247 TFU_ACK_NACK_SPECIAL_BUNDLING,
1248 TFU_ACK_NACK_CHANNEL_SELECTION =TFU_ACK_NACK_SPECIAL_BUNDLING,
1249 TFU_ACK_NACK_FORMAT_3
1252 #else /* else of TFU_TDD */
1253 /** @enum TfuAckNackMode
1254 * This enum contains values for modes of HARQ feedback in FDD
1258 TFU_UCI_FORMAT_1A_1B,
1259 TFU_UCI_FORMAT_1B_CS,
1266 /** @brief This structure conveys the Uplink SRS indication of an UE.
1267 * @details Uplink SRS from each UE is received by the physical layer and this
1268 * information is provided to the scheduler.
1270 typedef struct tfuSrsRpt
1272 CmLList lnk; /*!< Link to the list of rerports */
1273 CmLteRnti ueId; /*!< CRNTI */
1274 U16 dopEst; /*!< Doppler estimation [0-255] */
1275 U16 ta; /*!< Timing advance for the UE */
1276 U8 numRbs; /*!< Number of RBs to be reported for this UE */
1277 U8 rbStart; /*!< Starting RB to be reported */
1278 U8 snr[TFU_MAX_UL_RB]; /*!< snr for each RB */
1279 Bool wideCqiPres; /*!< Flag to indicate Wide-band CQI */
1280 U8 wideCqi; /*!< Wide-band CQI for an UL channel */
1284 /** @brief This structure conveys the Uplink SRS indication.
1285 * @details Uplink SRS is received by the physical layer and this
1286 * information is provided to the scheduler.
1287 * This data structure clubs together the UL SRS indications of all the UEs
1290 typedef struct tfuSrsIndInfo
1292 CmMemListCp memCp; /*!< Memory control point */
1293 CmLteCellId cellId; /*!< Cell ID */
1294 CmLteTimingInfo timingInfo; /*!< Timing information */
1295 CmLListCp srsRpt; /*!< List of SRS indications - TfuSrsRpt */
1298 /** @brief This structure contains the Raw CQI information, that is, the CQI report
1299 * as transmitted by the UE.
1300 * @details These bits are interpreted by MAC to derive the following:
1306 typedef struct tfuRawCqiRpt
1308 CmLList lnk; /*!< Link to the list of reports */
1309 CmLteRnti crnti; /*!< CRNTI of the UE */
1310 U8 numBits; /*!< Number of valid CQI bits */
1312 U32 uciPayload; /*!< Raw UCI bit payload */
1315 U8 cqiBits[TFU_MAX_CQI_BYTES]; /*!< An array of bits
1316 corresponding to the Raw CQI report */
1317 U8 ri[CM_LTE_MAX_CELLS]; /*!< Array of bits comprising of a Rank */
1321 /** @brief This structure contains the Raw CQI reports received for the
1322 * transmitting UEs in a single subframe.
1323 * @details Raw CQI corresponds to the actual bits transmitted by the UE, whose
1324 * interpretation is upto the MAC layer.
1326 typedef struct tfuRawCqiIndInfo
1328 CmMemListCp memCp; /*!< Memory control point */
1329 CmLteCellId cellId; /*!< Cell ID */
1330 CmLteTimingInfo timingInfo; /*!< Timing information */
1331 CmLListCp rawCqiRpt; /*!< List of HQ+CQI+RI indications - TfuRawUciRpt */
1333 /* 5GTF TODO: Change Interface Structure and API name accordingly */
1345 TFU_PUCCH_HARQ_SR_SRS,
1346 TFU_PUCCH_HARQ_SR_CQI,
1349 /*tfu_x_001.main_8 - ADD - New Pucch RR Info Combination support */
1350 /* ccpu00116923 - New Reception Request types for CQI and SRS with SR */
1351 TFU_PUCCH_HARQ_SR_CQI_SRS,
1352 TFU_PUCCH_SR_CQI_SRS
1355 /* 5GTF TODO: Order of encoding should be as per 212 5.2.3.6 */
1356 TFU_XPUCCH_UCI_INFO, /*!< HQ+CQI+RI */
1359 } TfuUePucchRecpType;
1361 /** @brief This structure is sent from scheduler to PHY in order to request the
1362 * reception of HARQ information on PUCCH.
1364 typedef struct tfuUePucchHqRecpInfo
1366 TfuAckNackMode hqFdbkMode; /*!< Feedback mode in TDD */
1367 U8 hqSz; /*!< Size of feedback in bits */
1368 U8 pucchResCnt; /*!< Number of ACK/NACK responses
1369 received in this subframe [0-4] */
1370 U16 hqRes[TFU_MAX_HQ_RES]; /*!< (n^1PUCCH(0-3))
1372 U8 a; /*!< A value to interpret Hq feedback */
1373 } TfuUePucchHqRecpInfo;
1375 /** @brief This structure is sent from scheduler to PHY in order to request the
1376 * reception of SR information on PUCCH.
1378 typedef struct tfuUePucchSrRecpInfo
1380 U16 n1PucchIdx; /*!< (n^1PUCCH) value [0-2047] */
1381 } TfuUePucchSrRecpInfo;
1383 /** @brief This structure is sent from scheduler to PHY in order to request the
1384 * reception of CQI information on PUCCH.
1386 typedef struct tfuUePucchCqiRecpInfo
1388 U16 n2PucchIdx; /*!< (n^2PUCCH) value[0-1185] */
1389 U8 cqiPmiSz; /*!< DL CQI/PMI size in bits [0-255] */
1390 } TfuUePucchCqiRecpInfo;
1392 /** Different values for UL SRS BW information */
1393 typedef enum tfuUlSrsBwInfo
1402 /** Different values for UL SRS Hoping BW information */
1403 typedef enum tfuUlSrsHoBwInfo
1405 TFU_ULSRS_HOP_BW_0 = 0,
1406 TFU_ULSRS_HOP_BW_1 = 1,
1407 TFU_ULSRS_HOP_BW_2 = 2,
1408 TFU_ULSRS_HOP_BW_3 = 3
1411 /** Different values for UL SRS Cyclic Shift information */
1412 typedef enum tfuUlSrsCycShiftInfo
1414 TFU_ULSRS_CYSHIFT_0 = 0,
1415 TFU_ULSRS_CYSHIFT_1 = 1,
1416 TFU_ULSRS_CYSHIFT_2 = 2,
1417 TFU_ULSRS_CYSHIFT_3 = 3,
1418 TFU_ULSRS_CYSHIFT_4 = 4,
1419 TFU_ULSRS_CYSHIFT_5 = 5,
1420 TFU_ULSRS_CYSHIFT_6 = 6,
1421 TFU_ULSRS_CYSHIFT_7 = 7
1422 } TfuUlSrsCycShiftInfo;
1425 /** @brief This structure is sent from scheduler to PHY in order to request the
1426 * reception of SRS information on PUCCH.
1428 typedef struct tfuUePucchSrsRecpInfo
1430 TfuUlSrsBwInfo srsBw; /*!< UE specific SRS Bandwidth (B,srs)
1431 parameter. Given by RRC[0-3] */
1432 U8 nRrc; /*!< Frequency Domain position given by
1434 TfuUlSrsHoBwInfo srsHopBw; /*!< SRS Hopping BW given by RRC per
1436 U8 transComb; /*!< Frequency location given by RRC
1437 per UE (k,TC) [0-1] */
1438 U16 srsCfgIdx; /*!< (Isrs) - defines SRS periodicity
1439 and subframe offset,given by RRC
1441 TfuUlSrsCycShiftInfo srsCyclicShft; /*!< (n^cs,srs) given by RRC [0-7] */
1442 /*Need to add U8 AntPort for Rel10 when SRS is supported */
1443 } TfuUePucchSrsRecpInfo;
1446 /** @brief This structure is sent from scheduler to PHY in order to request the
1447 * reception of BSI BRI information on PUCCH.
1449 typedef struct tfuUePucchBsiBriRecpInfo
1451 U8 puschFlag; /*!< UCI is carried in xPUSCH or not
1452 0 -> UCI is in xPUCCH,
1453 1 -> UCI is in xPUSCH */
1454 U8 pucchIndex; /*!< Frequency resource index of xPUCCH
1455 for UCI report. [0-15] */
1456 U8 SCID; /*!< SCID : 0 or 1 */
1457 U8 bsiRpt; /*!< total num of BSI report[0,1,2,4] */
1458 U8 briRpt; /*!< total num of BRI report[0,1,2,4] */
1459 } TfuUePucchBsiBriRecpInfo;
1461 /** @brief This structure is sent from scheduler to PHY in order to request the
1462 * reception of UCI (CQI, HQ, RI) information on PUCCH.
1464 typedef struct tfuUePucchUciRecpInfo
1466 U8 numBits; /*!< 1-22, 1-Only HQ, 5-Only CQI/RI, 6- both HQ CQI/RI */
1467 U8 pucchIndex; /*!< 0-15, PUCCH Freq Res Idx */
1468 U8 SCID; /*!< SCID : 0 or 1 */
1469 } TfuUePucchUciRecpInfo;
1472 /** @brief This structure is sent from scheduler to PHY in order to request the
1473 * reception of UCI on PUCCH. This may contain the following:
1486 typedef struct tfuUePucchRecpReq
1488 TfuUePucchRecpType uciInfo; /*!< Bitmask for the combination of UCI
1490 TfuUePucchCqiRecpInfo cqiInfo; /*!< Info needed to receive CQI. Valid
1491 if CQI is included in uciInfo */
1492 TfuUePucchSrRecpInfo srInfo; /*!< Info needed to receive SR. Valid
1493 if SR is included in uciInfo */
1494 TfuUePucchHqRecpInfo hqInfo; /*!< Info needed to receive Harq-Valid
1495 if HQ is included in uciInfo */
1496 TfuUePucchSrsRecpInfo srsInfo; /*!< Info needed to receive SRS. Valid
1497 if SRS is included in uciInfo */
1499 TfuUePucchBsiBriRecpInfo bsiBriInfo; /*!< Info needed to receive BSI_BRI. Valid
1500 if BSI_BRI is included in uciInfo */
1501 TfuUePucchUciRecpInfo uciPduInfo; /*!< Info needed to receive HQ/CQI/RI.*/
1504 U16 format1aRepNumber;
1505 U16 format2aRepNumber;
1506 U32 catMScramblerInitVal;
1508 } TfuUePucchRecpReq;
1514 TFU_PUSCH_DATA_HARQ,
1515 TFU_PUSCH_DATA_HARQ_SRS,
1517 TFU_PUSCH_DATA_CQI_SRS,
1518 TFU_PUSCH_DATA_CQI_HARQ,
1519 TFU_PUSCH_DATA_CQI_HARQ_SRS
1521 /* Message types possible on xPUCCH and xPUSCH : UL Data, UCIs: HARQ-ACK, SR, BSI, BRI, CQI/PMI/RI etc */
1522 /* for now only TFU_PUSCH_DATA can be considered */
1524 } TfuUePuschRecpType;
1526 /** @brief This structure is sent from scheduler to PHY in order to request the
1527 * reception of UEs data on ULSCH.
1529 typedef struct tfuUeUlSchRecpInfo
1531 U16 size; /*!< Length of the Data in bytes*/
1532 /* ToDo : rbStart and numRb is kept for legacy, need to remove later */
1533 U8 rbStart; /*!< Start of Resource Block of
1535 U8 numRb; /*!< Number of RBs allocated */
1536 TfuModScheme modType; /*!< Modulation order */
1537 U8 nDmrs; /*!< 3 bits for DMRS cyclic shift */
1538 Bool hoppingEnbld; /*!< TRUE, if hopping is enabled */
1539 U8 hoppingBits; /*!< Hopping bits as mentioned in
1541 Bool isRtx; /*!< TRUE, if this is a retx */
1542 Bool ndi; /*!< New Data Indication */
1543 U8 rv; /*!< Redundancy version */
1544 U8 harqProcId; /*!< HARQ process ID */
1545 U8 txMode; /*!< UE's UL transmission mode:
1546 0 = SISO/SIMO, 1 = MIMO */
1547 U8 crntTxNb; /*!< Current Harq Tx Cntr of this TB.
1548 Valid if frequency hopping is
1550 Bool nSrs; /*!< Indicates if RBs for this TB
1551 overlap with SRS configuration.
1552 FALSE = No overlap,TRUE=overlap */
1555 U32 repetitionNumber;
1556 U32 scramblerInitValue;
1559 U8 rbgStart; /* The starting resource block group for
1560 this xPUSCH allocation.*/
1561 U8 numRbg; /* The number of resource block groups
1562 allocated to this ULSCH grant.*/
1563 U8 xPUSCHRange; /* 0 : the stopping of xPUSCH is the 12th symbol,
1564 1 : the stopping of xPUSCH is the 13th symbol
1565 2 : the stopping of xPUSCH is the final (14th) symbol */
1566 U8 nAntPortLayer;/* 0:1 Layer, port 40 1:1 Layer, port 41 2:1 Layer, port 42
1567 3:1 Layer, port 43 4:2 Layers, ports {40, 41}
1568 5:2 Layers, ports {42, 43} */
1569 U8 SCID; /*SCID : 0 or 1 */
1570 U8 PMI; /* Precoding matrix indicator, see V5G.211 section Table 5.3.3A.2-1 */
1571 Bool uciWoTBFlag; /* 0: UCI without transmit block
1572 1: with transmit block */
1573 U8 beamIndex; /* Receiving beam index Value: 0->7 */
1575 } TfuUeUlSchRecpInfo;
1577 /** @brief This structure is sent from scheduler to PHY in order to request the
1578 * reception of CQI_RI information on PUSCH.
1580 typedef struct tfuUePuschCqiRecpInfo
1582 U8 reportType; /*! Type of CSI report.
1583 0 = periodic report.
1584 1 = aperiodic report */
1585 U8 cCNum; /*! The number of CC in the aperiodic report.
1587 U8 cqiPmiSzR1[CM_LTE_MAX_CELLS]; /*!< Size of DL CQI/PMI in bits for
1588 rank 1 report[0-255] */
1589 U8 cqiPmiSzRn1[CM_LTE_MAX_CELLS]; /*!< Size of DL CQI/PMI in bits for
1590 rank > 1 report[0-255] */
1591 TknU8 riSz[CM_LTE_MAX_CELLS]; /*!< Size of RI in bits[1-2]. Value will
1592 be 0 (present flag-false) in frames
1593 with no RI Occasion*/
1594 U8 cqiBetaOff; /*!< Beta offset for CQI[0-15]. Given
1596 U8 riBetaOff; /*!< Beta offset for RI[0-15]. Given
1598 } TfuUePuschCqiRecpInfo;
1600 /** @brief This structure is sent from scheduler to PHY in order to request the
1601 * reception of HARQ information on PUSCH.
1603 typedef struct tfuUePuschHqRecpInfo
1605 U8 hqSz; /*!< Number of feedback bits:
1606 FDD- 1 or 2 TDD- 1 to 4*/
1607 U8 hqBetaOff; /*!< Beta offset for Harq[0-15]. Given
1610 TfuAckNackMode hqFdbkMode; /*!< Feedback mode in TDD */
1611 U8 nBundled; /*!< nBundled value intended for PHY */
1612 U8 ulDai; /*!< Ul Dai */
1614 } TfuUePuschHqRecpInfo;
1616 typedef TfuUePucchSrsRecpInfo TfuUePuschSrsRecpInfo;
1617 /** @brief This structure is sent from scheduler to PHY in order to request the
1618 * reception of UEs data on PUSCH. This may contain the following:
1622 * -# Data + HARQ + SRS
1624 * -# Data + CQI/RI + SRS
1625 * -# Data + CQI/RI + HARQ
1626 * -# Data + CQI/RI + HARQ + SRS
1628 typedef struct tfuUePuschRecpReq
1630 TfuUePuschRecpType rcpInfo; /*!< Bitmask for the combination of
1631 information to be received */
1632 TfuUeUlSchRecpInfo ulSchInfo; /*!< Info needed to receive data pdu
1633 on PUSCH. Valid if data is included
1635 TfuUePuschCqiRecpInfo cqiRiInfo; /*!< Info needed to receive CQI/RI on
1636 PUSCH. Valid if CQI is included
1638 TfuUePuschHqRecpInfo hqInfo; /*!< Info needed to receive Harq on
1639 PUSCH. Valid if HARQ is included
1641 TfuUePuschSrsRecpInfo srsInfo; /*!< Info needed to receive SRS. Valid
1642 if SRS is included in rcpInfo */
1643 TknU8 initialNSrs; /*!< Not present in case of only data
1644 [0/1]. 0 = last OFDM symbol is
1645 not punctured. 1 = last OFDM
1646 symbol is punctured */
1647 TknU8 initialNumRbs; /*!< Number of RBs for initial
1648 transmission of this TB. Not
1649 present in case of only data */
1650 } TfuUePuschRecpReq;
1652 /** @enum TfuRecpReqType
1653 * This enum contains values for types of Reception Request.
1662 /** @brief This structure is a Per UE reception request for either PUCCH or PUSCH
1663 * data. This contains information needed by PHY to decode the data sent by the
1666 typedef struct tfuUeRecpReqInfo
1668 CmLList lnk; /*!< Link of Linked List */
1669 CmLteRnti rnti; /*!< RNTI of the scheduled UE */
1671 U8 groupId; /*!< UE Group ID */
1673 TfuRecpReqType type; /*!< Type indicating PUCCH or PUSCH */
1676 TfuUePucchRecpReq pucchRecpReq; /*!< Reception request for PUCCH */
1677 TfuUePuschRecpReq puschRecpReq; /*!< Reception request for PUSCH */
1681 #else /* TFU_UPGRADE */
1683 /** @enum TfuUciType
1684 * This enum has values for the various types of UCI information present.
1688 TFU_UCI_SR, /*!< Only a scheduling request */
1689 TFU_UCI_HARQ, /*!< Only HARQ-ACK feedback */
1690 TFU_UCI_CQI, /*!< Only CQI (periodic) report */
1691 TFU_UCI_HARQ_CQI, /*!< HARQ and CQI together */
1692 TFU_UCI_HARQ_SR /*!< HARQ and SR together */
1695 /** @enum TfuHqRecpReqType
1696 * This enum contains values for types of HARQ Reception Request.
1700 TFU_HQ_RECP_REQ_NORMAL,
1701 TFU_HQ_RECP_REQ_N1PUCCH
1706 /** @brief This structure is sent from Scheduler to PHY in order to request the
1707 * reception of an UE's data on PUCCH. This may contain the following:
1709 * -# Scheduling Request (SR)
1710 * -# HARQ-ACK and SR
1712 * -# CQI and HARQ-ACK
1714 typedef struct tfuUePucchRecpReq
1717 TfuHqRecpReqType hqType; /*!< Type of HARQ Reception Request */
1720 /** @name TFU_TDD */
1723 U16 nCce; /*!< Number of first CCE used for transmission of
1724 the corresponding DCI assignment. Used to decode
1727 U16 nCce[TFU_MAX_M]; /*!< nCCE is an array in the case of TDD
1728 HARQ ACK multiplexing. This value is
1729 needed for the calculation of
1730 (n^1 PUCCH,i) for i = {0,1,2,3} */
1733 U16 n1Pucch; /*!< n1 PUCCH for ACK NACK repetition.
1734 This is the resource that UE must
1735 transmit the HARQ Feedback except
1738 TfuUciType type; /*!< Type of Uplink control information - value
1739 must be one of the following:
1746 /** @name TFU_TDD */
1749 U8 multCnt; /*!< Number of ACK/NACK resources present */
1750 U8 M; /*!< Number of elements in the set K - tb.
1752 U8 m[TFU_MAX_M]; /*!< Values utilized for TDD HARQ-ACK bundling
1754 U8 p[TFU_MAX_M]; /*!< "p" from 10.1 in 213 */
1757 } TfuUePucchRecpReq;
1760 /** @enum TfuRecpReqType
1761 * This enum contains values for types of Reception Request.
1771 /** @brief This structure is sent from scheduler to PHY in order to request the
1772 * reception of UEs data sent as MSG3 for Random access.
1774 typedef struct tfuUeMsg3RecpReq
1776 Bool hoppingEnbld; /*!< TRUE, if hopping is enabled */
1777 U8 rbStart; /*!< Start of Resource Block of allocation */
1778 U8 numRb; /*!< Number of RBs allocated */
1779 U8 mcs; /*!< 3 bits for MCS */
1780 Bool expCqi; /*!< TRUE, if CQI report along
1781 with PUSCH data is expected */
1782 Bool ulDelay; /*!< UL Delay bit 6.2 of 213 */
1783 /* tfu_x_001.main_2: Presently not used, it is useful when
1784 * Non-adaptive retransmission is implemented */
1785 Bool isRtx; /*!< TRUE, if this is a Msg3 retransmission */
1786 /*ccpu00128993 - ADD - fix for msg3 softcombining bug*/
1787 U8 harqProcId; /*!< HARQ process ID */
1788 Bool ndi; /*!< 1 bit for new data indicator */
1789 U8 rv; /*!< Redundancy version */
1790 U8 nDmrs; /*!< 3 bits for DMRS cyclic shift */
1791 /* tfu_x_001.main_2:107387:To include the size and ModOrder in DataRecp Request */
1792 U16 size; /*!< Length of the Data in bytes */
1793 TfuModScheme modType; /*!< Modulation order */
1796 /** @brief This structure is sent from scheduler to PHY in order to request the
1797 * reception of UEs data on PUSCH. This may contain the following:
1799 * -# Data + CQI and RI
1800 * -# Data + CQI and HARQ
1802 typedef struct tfuUePuschRecpReq
1804 Bool hoppingEnbld; /*!< TRUE, if hopping is enabled */
1805 U8 hoppingBits; /*!< Hopping bits as mentioned in 213 8.4 */
1806 U8 rbStart; /*!< Start of Resource Block of allocation */
1807 U8 numRb; /*!< Number of RBs allocated */
1808 U8 mcs; /*!< 5 bits for MCS and RV */
1809 U8 harqProcId; /*!< HARQ process ID */
1810 Bool ndi; /*!< 1 bit for new data indicator */
1811 Bool isRtx; /*!< TRUE, if this is a retransmission */
1812 U8 rv; /*!< Redundancy version */
1813 U8 nDmrs; /*!< 3 bits for DMRS cyclic shift */
1814 Bool expCqi; /*!< TRUE, if CQI report along
1815 with PUSCH data is expected */
1816 Bool expHarq; /*!< TRUE, if HARQ feedback along
1817 with PUSCH data is expected */
1818 TfuDlCqiPuschMode mode; /*!< CQI reporting mode configured. Note
1819 this value is valid, only if expCqi is
1821 /* tfu_x_001.main_2:107387:To include the size and ModOrder in DataRecp Req.*/
1822 U16 size; /*!< Length of the Data in bytes*/
1823 TfuModScheme modType; /*!< Modulation order */
1824 } TfuUePuschRecpReq;
1826 /** @brief This structure is a Per UE reception request for either PUCCH or PUSCH
1827 * data. This contains information needed by PHY to decode the data sent by the
1830 typedef struct tfuUeRecpReqInfo
1832 CmLList lnk; /*!< Link of Linked List */
1833 CmLteRnti rnti; /*!< RNTI of the scheduled UE */
1834 TfuRecpReqType type; /*!< Type indicating PUCCH or MSG3 or PUSCH */
1837 TfuUePucchRecpReq pucchRecpReq; /*!< Reception request for PUCCH Data */
1838 TfuUeMsg3RecpReq msg3RecpReq; /*!< Reception request for PUCCH Data */
1839 TfuUePuschRecpReq puschRecpReq; /*!< Reception request for PUSCH Data */
1843 #endif /* TFU_UPGRADE */
1845 /** @brief This structure contains CQI information received over PUCCH or PUSCH.
1847 typedef union tfuDlCqiInfo
1849 TfuDlCqiPucch pucchCqi; /*!< PUCCH CQI information */
1852 TfuDlCqiPusch puschCqi[CM_LTE_MAX_CELLS]; /*!< PUSCH CQI information */
1856 /** @brief This structure is sent from Scheduler to PHY. This includes parameters
1857 * needed by PHY to decode the following:
1859 * -# HARQ Feedback on PUCCH
1863 * This structure carries the reception information for all the scheduled UEs.
1865 typedef struct tfuRecpReqInfo
1867 CmMemListCp memCp; /*!< Memory control point */
1868 CmLteCellId cellId; /*!< Cell ID */
1869 CmLteTimingInfo timingInfo; /*!< Timing information */
1870 CmLListCp ueRecpReqLst; /*!< Linked List of reception requests
1873 CmLListCp emtcUeRecpReqLst; /*!< Linked List of reception requests
1876 /*tfu_x_001.main_8 - ADD - New Pucch RR Info Combination support */
1877 /*ccpu00116923 - ADD - SRS present support*/
1879 Bool srsPres; /*!< SRS present information (For Cell
1880 Specific SRS notification)
1881 0: No SRS in this subframe
1882 1: SRS present in this subframe */
1886 /** @brief This structure contains the PDCCH to be sent on PHY, that is, DCI
1887 * formats. This information is associated with an RNTI.
1889 typedef struct tfuPdcchInfo
1891 CmLList lnk; /*!< Link of Linked List */
1892 CmLteRnti rnti; /*!< RNTI of the allocation */
1894 Bool isSpsRnti; /*!< TRUE if rnti is SPS RNTI */
1895 CmLteRnti crnti; /*!< crnti in case rnti is SPS RNTI */
1897 U16 nCce; /*!< CCE index */
1898 CmLteAggrLvl aggrLvl; /*!< Aggregation level possible values are
1900 U8 dciNumOfBits; /*!< The size of DCI in bits */
1901 TfuDciInfo dci; /*!< PDCCH DCI format */
1903 U8 distributedAlloc;
1904 U8 localizedAntPortIndex;
1905 U16 dmrs_txpowerControl;
1909 U32 demodRSInitValue;
1912 U8 sectorId; /* Sector index of the 5GNB. Value: 0->2 */
1913 U8 sccIdx; /* Serving Cell index in the given sector. Value: 0->7 */
1914 U8 grpId; /* Ue group Id */
1918 /** @brief This structure contains one PHICH information. In order to locate the
1919 * resources to be used for PHICH, the following information is provided along
1920 * with the feedback:
1926 typedef struct tfuPhichInfo
1928 CmLList lnk; /*!< Link of Linked List */
1929 U8 rbStart; /*!< Starting RB */
1930 U8 nDmrs; /*!< DMRS offset index */
1931 Bool isAck; /*!< TRUE, if ACK, else NACK */
1934 U8 iPhich; /*!< Needed to Calculate PHICH
1935 location. For TDD only */
1937 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
1939 U16 txPower; /*!< Offset to the ref. signal power */
1943 /** @brief This structure is sent from Scheduler to PHY. This includes all the
1944 * control information to be sent to the UE.
1945 * -# PDCCH Physical Downlink Control Channel
1946 * -# PHICH Physical HARQ Indicator Channel
1947 * -# PCFICH Physical Control Format Indicator Channel
1949 typedef struct tfuCntrlReqInfo
1951 CmMemListCp memCp; /*!< Memory control point */
1952 CmLteCellId cellId; /*!< Cell ID */
1953 CmLteTimingInfo ulTiming; /*!< Timing information for UL PDCCHs and PHICH */
1954 CmLteTimingInfo dlTiming; /*!< Timing information for DL PDCCHs and CFI */
1955 U8 cfi; /*!< CFI value that goes on the PCFICH control channel */
1956 U32 numDlActvUes; /*!< Active Ues reqrd for rgu dyna delta*/
1957 CmLListCp ulPdcchLst; /*!< List of Uplink PDCCHs (DCI format 0) for the TfuPdcchInfo subframe */
1958 CmLListCp dlPdcchLst; /*!< List of Downlink PDCCHs for the TfuPdcchInfo subframe */
1959 CmLListCp phichLst; /*!< List of PHICHs for the TfuPhichInfo subframe */
1960 #ifdef LTEMAC_SPS /* SPS_NEW_CHGS */
1961 Bool isSPSOcc; /*!< TRUE if this is an SPS Occasion */
1964 CmLListCp ulMpdcchLst; /*!< List of Uplink PDCCHs (DCI format 0) for the TfuPdcchInfo subframe */
1965 CmLListCp dlMpdcchLst; /*!< List of Downlink PDCCHs for the TfuPdcchInfo subframe */
1970 /** @brief This structure carries the control information that is needed
1971 * by the Physical layer to process the data to be sent on PDSCH.
1973 typedef struct tfuPdschDciInfo
1975 TfuDciFormat format; /*!< Selector for the union*/
1978 TfuDciFormat1AllocInfo format1AllocInfo; /*!< Format 1 allocation information.*/
1979 TfuDciFormat1aAllocInfo format1aAllocInfo; /*!< Format 1A allocation information.*/
1980 TfuDciFormat1bAllocInfo format1bAllocInfo; /*!< Format 1B allocation information.*/
1981 TfuDciFormat1cInfo format1cAllocInfo; /*!< Format 1C allocation information.*/
1982 TfuDciFormat1dAllocInfo format1dAllocInfo; /*!< Format 1D allocation information.*/
1983 TfuDciFormat2AllocInfo format2AllocInfo; /*!< Format 2A allocation information.*/
1984 TfuDciFormat2AAllocInfo format2AAllocInfo; /*!< Format 2AA allocation information.*/
1986 TfuDciFormat61AllocInfo format61AllocInfo; /*!< Format 6-1A allocation information.*/
1987 TfuDciFormat62AllocInfo format62AllocInfo; /*!< Formtat 6-2 allocation information */
1990 TfuDciFormatA1Info formatA1Info; /*!< 5GTF: Format A1 information */
1991 TfuDciFormatA2Info formatA2Info; /*!< 5GTF: Format A1 information */
1992 TfuDciFormatB1Info formatB1Info; /*!< 5GTF: Format B1 information */
1993 TfuDciFormatB2Info formatB2Info; /*!< 5GTF: Format B2 information */
1999 * UE Transmission Modes */
2000 typedef enum tfuTxMode
2002 TFU_UE_TM_1 = 1, /** Transmission Mode 1 */
2003 TFU_UE_TM_2, /** Transmission Mode 2 */
2004 TFU_UE_TM_3, /** Transmission Mode 3 */
2005 TFU_UE_TM_4, /** Transmission Mode 4 */
2006 TFU_UE_TM_5, /** Transmission Mode 5 */
2007 TFU_UE_TM_6, /** Transmission Mode 6 */
2008 TFU_UE_TM_7 /** Transmission Mode 7 */
2011 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
2013 /** @brief This structure carries the Beam Forming Vector Information
2014 * needed by the Physical layer to process the data to be sent on PDSCH.
2016 typedef struct tfuBfVectorInfo
2018 U8 sbIndex; /** Subband Index */
2019 U8 numPhyAnt; /** Number of Physical Antennas */
2020 U16 bfValue[TFU_MAX_PHY_ANTENNA]; /** Beam forming vector element for
2021 physical antenna #i real 8 bits followed by imaginary 8 bits */
2027 * @brief DatReq Information of a logical channel.
2029 typedef struct tfuDatReqLchInfo
2031 Bool freeBuff; /* !< If TRUE, the buffer is to be freed by MAC */
2032 U32 numPdu; /*!< No of PDUs */
2033 Buffer *mBuf[TFU_MAX_PDU]; /*!<SIncMsgRef in MAC.
2034 Freed by CL as well*/
2037 /** @brief This structure contains a single MAC TB Headers and RLC PDU
2038 * @details It contains preallocated MAC Header,MAC CEs,logical channel info
2039 * RLC PDU and pre-allocated padding
2041 typedef struct tfuDatReqTbInfo
2045 Buffer *macHdr; /*!< Pre allocated. CL shall not free this*/
2046 Buffer *macCes; /*!< Pre-allocated. CL shall not free this */
2048 U32 numLch; /*!< No of logical channels associated to TB*/
2049 TfuDatReqLchInfo lchInfo[TFU_MAX_LC]; /*!< Array of logical channels */
2053 /** @brief This structure contains a single MAC TB.
2054 * @details Data is accompanied with control information pertaining to the
2055 * allocation and what is required by physical layer for its processing.
2057 typedef struct tfuDatReqPduInfo
2059 CmLList lnk; /*!< Link of Linked List */
2060 CmLteRnti rnti; /*!< RNTI of the UE */
2061 TfuPdschDciInfo dciInfo; /*!< Carries the control data
2062 needed for processing PDSCH data */
2063 U8 nmbOfTBs; /*!< Number of TBs, in cases where
2064 one TB is disabled */
2065 #ifdef FIVEGTF_PHY_API
2069 Buffer *mBuf[TFU_MAX_TB]; /*!< MAC PDUs buffer */
2071 TfuDatReqTbInfo tbInfo[TFU_MAX_TB]; /*!< Array of TfuDatReqTbInfo*/
2073 Bool puschRptUsd; /*!< If PUSCH Rpt used for scheduling */
2074 TfuDlCqiPuschInfo puschPmiInfo; /*!< Explicitly inform PHY of the
2075 PMI details for the entire
2077 TfuTxMode transMode; /*!< Transmission Mode of this UE */
2078 TknU32 doa; /*!< DOA indicator for this UE */
2081 /*tfu_x_001.main_8 - ADD - Detailed comments for fields */
2082 U8 numLayers; /*!< Number of Layers. Note: Field
2083 specified at Interface. Value
2084 not set from LTE MAC */
2085 U8 deltaPowOffIdx; /*!< Delta power offset. Note:
2086 Field specified at Interface. Value
2087 not set from LTE MAC */
2088 U8 numBfPrbPerSb; /*!< Number of PRBs that are
2089 treated as one Subband. Note:
2090 Field specified at interface.
2091 Value not set from LTE MAC */
2092 U8 numBfVectors; /*!< Number of Beam Forming
2093 vectors. Note: Field specified at
2094 Interface. Value not set from LTE
2096 TfuBfVectorInfo bfVector[TFU_MAX_DL_SUBBAND]; /*!< BeamForming vector
2097 information. Note: Field
2098 specified at Interface.
2099 Value not set from LTE
2101 U16 txPwrOffset; /*!< Offset to the reference
2102 signal power. Value 0->10000,
2103 representing -6 dB to 4 dB in
2105 /* LTE_ADV_FLAG_REMOVED_START */
2106 U8 pa; /*!< ratio of PDSCH EPRE to cell-specific RS
2107 EPRE among PDSCH REs */
2109 U8 isEnbSFR; /*to tell if SFR is enabled*/
2113 /** @brief This structure contains the Data PDUs.
2114 * @details This structure contains Data meant to be sent on both PBCH and
2115 * PDSCH. Control information necessary for processing of the data is sent along
2118 typedef struct tfuDatReqInfo
2120 CmMemListCp memCp; /*!< Memory control point */
2121 CmLteCellId cellId; /*!< Cell ID */
2122 CmLteTimingInfo timingInfo; /*!< Timing information */
2123 TknBuf bchDat; /*!< BCCH mapped onto BCH Buffer, if
2126 TknBuf emtcBcchDat; /*!< BCCH mapped onto BCH Buffer, if
2129 CmLListCp pdus; /*!< Linked List of TfuDatReqPduInfo PDUs */
2132 /** @brief This structure contains the Data PDU and the RNTI of the UE.
2134 typedef struct tfuDatInfo
2136 CmLList lnk; /*!< Link of Linked List */
2137 CmLteRnti rnti; /*!< RNTI of the UE */
2138 #ifdef FIVEGTF_PHY_API
2139 TfuPdcchInfo *grantInfo; /*!< UL Grant Info */
2141 Buffer *mBuf; /*!< Data PDU */
2144 /** @brief This structure contains the Data PDUs received at Physical layer.
2145 * @details All the PDUs received by Physical layer in one subframe are clubbed
2146 * together into a single data structure and sent to MAC for processing.
2148 typedef struct tfuDatIndInfo
2150 CmMemListCp memCp; /*!< Memory control point */
2151 CmLteCellId cellId; /*!< Cell ID */
2152 CmLteTimingInfo timingInfo; /*!< Timing information */
2153 CmLListCp datIndLst; /*!< List of data PDUs - TfuDatInfo */
2155 U8 sectorId; /* Sector index of the 5GNB. Value: 0->2 */
2156 U8 sccIdx; /* Serving Cell index in the given sector. Value: 0->7 */
2160 /** @brief This structure contains the SR indication for an UE, identified by
2161 * the given RNTI. The structure also contains a PUCCH Delta power, that is
2162 * calculated by the physical layer, and is used by the scheduler for Power
2163 * control of the UE.
2165 typedef struct tfuSrInfo
2167 CmLList lnk; /*!< Link of Linked List */
2168 CmLteRnti rnti; /*!< UEs RNTI */
2171 /** @brief This structure contains all the Scheduling Requests (SR) indications
2172 * received in a subframe.
2174 typedef struct tfuSrIndInfo
2176 CmMemListCp memCp; /*!< Memory control point */
2177 CmLteCellId cellId; /*!< Cell ID */
2178 CmLteTimingInfo timingInfo; /*!< Timing information */
2179 CmLListCp srLst; /*!< List of SR indications - TfuSrInfo */
2182 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
2183 //#ifdef TFU_UPGRADE
2185 * This enum contains the possible values for the HARQ feedback.
2195 TFU_HQ_ACK_OR_NACK_OR_DTX,
2196 TFU_HQ_INVALID = 255
2200 /** @brief This structure contains the HARQ feedback for a single UE.
2201 * @details RNTI is present to identify the UE.
2202 * For FDD, a single feedback is present.
2203 * For TDD HARQ multiplexing, a list of HARQ feedbacks is present.
2205 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
2206 typedef struct tfuHqInfo
2208 CmLList lnk; /*!< Link of Linked List */
2209 CmLteRnti rnti; /*!< RNTI of the UE */
2210 TfuAckNackMode hqFdbkMode; /*!< Feedback mode */
2211 U8 noOfTbs; /*!< Number of TBs */
2213 U8 M; /*!< Number of feedbacks multiplexed */
2214 #endif /* TFU_TDD */
2215 TfuHqFdbk isAck[TFU_MAX_HARQ_FDBKS]; /*!< Harq feedbacks */
2216 Bool isPusch; /*!< Indicates if this HARQ feedback is
2217 received on PUSCH */
2218 /* Note: isPusch is not a field
2219 * specified by Femto Forum. */
2222 /** @brief This structure contains a list of HARQ feedbacks for a number of UEs.
2223 * @details All the HARQ feedback received in the subframe are clubbed together
2224 * in this data structure and given to the scheduler for processing.
2226 typedef struct tfuHqIndInfo
2228 CmMemListCp memCp; /*!< Memory control point */
2229 CmLteCellId cellId; /*!< Cell ID */
2230 CmLteTimingInfo timingInfo; /*!< Timing information */
2231 CmLListCp hqIndLst; /*!< List of HARQ feedback - TfuHqInfo */
2235 /** @brief This structure conveys the Uplink CQI information for a single sub-band.
2237 typedef struct tfuUlCqiInfo
2239 TfuSubbandCqiInfo subbandCqi; /*!< CQI associated with a sub-band */
2242 /** @brief This structure contains the UL CQI estimated by the physical layer.
2243 * @details The report can be wide-band CQI or sub-band CQI or both.
2245 typedef struct tfuUlCqiRpt
2247 CmLList lnk; /*!< Link of Linked List */
2248 CmLteRnti rnti; /*!< RNTI */
2249 Bool isTxPort0; /*!< TRUE, if TX port is
2250 0, else TX port is 1 */
2251 U8 wideCqi; /*!< Wide-band CQI*/
2252 U8 numSubband; /*!< Number of sub-bands */
2253 TfuUlCqiInfo ulCqiInfoArr[TFU_MAX_UL_SUBBAND]; /*!< UL CQI information array */
2256 /** @brief This structure conveys the Uplink CQI information.
2257 * @details Uplink CQI is calculated by the physical layer, and this
2258 * information is provided to the scheduler.
2259 * This data structure clubs together the UL CQI estimates for all the UEs that
2260 * are scheduled in the subframe for uplink transmission.
2262 typedef struct tfuUlCqiIndInfo
2264 CmMemListCp memCp; /*!< Memory control point */
2265 CmLteCellId cellId; /*!< Cell ID */
2266 CmLteTimingInfo timingInfo; /*!< Timing information */
2267 CmLListCp ulCqiRpt; /*!< List of UL CQI reports - TfuUlCqiRpt */
2270 /** @brief This structure contains the DOA estimated by the physical layer.
2271 * @details DOA for a given UE.
2273 typedef struct tfuDoaRpt
2275 CmLList lnk; /*!< Link of Linked List */
2276 CmLteRnti rnti; /*!< RNTI */
2277 U32 doa; /*!< DOA for rnti */
2280 /** @brief This structure conveys the DOA (Direction Of Arrival) indicator.
2281 * @details DOA is calculated by the physical layer, and this
2282 * information is provided to the scheduler.
2283 * This data structure clubs together the DOAs for all the UEs
2284 * calculated by PHY in this subframe.
2286 typedef struct tfuDoaIndInfo
2288 CmMemListCp memCp; /*!< Memory control point */
2289 CmLteCellId cellId; /*!< Cell ID */
2290 CmLListCp doaRpt; /*!< List of DOA reports - TfuDoaRpt */
2293 /** @brief This structure contains the DL CQI report for a single UE.
2294 * @details The report can either be described on PUCCH or PUSCH, a flag
2295 * conveys this information.
2297 typedef struct tfuDlCqiRpt
2299 CmLList lnk; /*!< Link of Linked List */
2300 CmLteRnti rnti; /*!< RNTI */
2301 Bool isPucchInfo; /*!< Indicates whether PUCCH or PUSCH information */
2302 TfuDlCqiInfo dlCqiInfo; /*!< DL CQI information */
2305 /** @brief This structure contains a list of Downlink CQI reports transmitted by
2307 * @details This structure clubs together DL CQI reports for a number of UEs.
2309 typedef struct tfuDlCqiIndInfo
2311 CmMemListCp memCp; /*!< Memory control point */
2312 CmLteCellId cellId; /*!< Cell ID */
2313 CmLteTimingInfo timingInfo; /*!< Timing information */
2314 CmLListCp dlCqiRptsLst; /*!< List of DL CQI reports TfuDlCqiRpt */
2317 /** @brief This structure contains the CRC indication for a single
2320 typedef struct tfuCrcInfo
2322 CmLList lnk; /*!< Link of Linked List */
2323 CmLteRnti rnti; /*!< RNTI of the UE */
2324 Bool isFailure; /*!< TRUE, if CRC check fails */
2325 TknU8 rv; /*!< Redundancy version provided by PHY */
2326 Bool isDtx; /*! If SNR < 0 , set to TRUE */
2329 /** @brief This structure contains information that is passed as a part of the
2330 * CRC Indication from PHY to MAC.
2331 * @details This structure clubs together all the CRC indications for
2332 * a single subframe and conveys this information to the scheduler.
2334 typedef struct tfuCrcIndInfo
2336 CmMemListCp memCp; /*!< Memory control point */
2337 CmLteCellId cellId; /*!< Cell ID */
2338 CmLteTimingInfo timingInfo; /*!< Timing information */
2339 CmLListCp crcLst; /*!< List of CRC indications - TfuCrcInfo */
2341 U8 sectorId; /* Sector index of the 5GNB. Value: 0->2 */
2342 U8 sccIdx; /* Serving Cell index in the given sector. Value: 0->7 */
2346 /** @brief This structure contains the timing advance information for a single
2349 typedef struct tfuTimingAdvInfo
2351 CmLList lnk; /*!< Link of Linked List */
2352 CmLteRnti rnti; /*!< RNTI */
2353 U8 timingAdv; /*!< Value of the Timing advance */
2357 /** @brief This structure contains information that is passed as part of the Timing
2358 * Advance indication from PHY to MAC.
2359 * @details This structure clubs together timing advances for a number of UEs.
2362 typedef struct tfuTimingAdvIndInfo
2364 CmMemListCp memCp; /*!< Memory control point */
2365 CmLteCellId cellId; /*!< Cell ID */
2366 CmLteTimingInfo timingInfo; /*!< Timing information */
2367 CmLListCp timingAdvLst; /*!< List of timing advances - TfuTimingAdvInfo */
2368 } TfuTimingAdvIndInfo;
2370 /** @brief This structure contains information that is passed as part of the TTI
2371 * indication sent from CL to MAC and SCH.
2373 typedef struct tfuTtiCellInfo
2375 CmLteCellId cellId; /*!< Cell ID */
2376 CmLteTimingInfo timingInfo; /*!< SFN, SF for each cell */
2377 Bool isDummyTti; /*!< Flag to indicate dummy TTI */
2379 U8 schTickDelta; /*!< Dynamic Delta for SCH. Value will vary
2380 according to num of active UEs */
2381 U8 dlBlankSf; /*!< TODO */
2382 U8 ulBlankSf; /*!< TODO */
2386 /** @brief This structure contains information that is passed as part of the TTI
2387 * indication sent from CL to MAC and SCH.
2389 typedef struct tfuTtiIndInfo
2391 U8 numCells; /*!< Num of Cells */
2392 TfuTtiCellInfo cells[CM_LTE_MAX_CELLS]; /*!< Array of Cell timing info */
2396 /** @brief This structure contains the information for a single Random Access Request.
2397 * @details The information present in this structure is for a single preamble.
2398 * Associated with each preamble are fields that the physical layer calculates
2399 * based on the reception of the Random Access Request. These are the following:
2404 typedef struct tfuRaReqInfo
2406 U8 rapId; /*!< ID of the preamble choosen by the UE for Random Acess.*/
2407 U16 ta; /*!< Amount of Timing advance needed by the UE for it
2408 to be uplink synchronized, this is calculated by Physical layer. */
2409 U8 tpc; /*!< Transmit power control command that the physical
2410 layer calculates from the RA request received.*/
2411 Bool cqiPres; /*!< TRUE, if CQI present. */
2412 U8 cqiIdx; /*!< This is the Channel Quality Index of the UL channel estimated by the
2413 physical layer. This aids MAC in the scheduling of this UE. */
2417 /** @brief This structure contains RACH request information for a single RA-RNTI.
2419 typedef struct tfuRachInfo
2421 CmLteRnti raRnti; /*!< RA-RNTI */
2422 U8 numRaReqInfo; /*!< Number of RA requests */
2425 U8 nPRACHConfiguration;
2432 TfuRaReqInfo *raReqInfoArr; /*!< RA requests */
2435 /** @brief This structure contains the list of Random Access Requests received in a single TTI.
2436 * @details Random Access Request is associated with a RA-RNTI, which remains
2437 * common for all the random access requests within a subframe. This structure
2438 * thus carries the RA-RNTI and a list of Random Access Request information.
2439 * This information consists of the following:
2440 * -# preamble-id - this corresponds to the Index of the Preamble choosen by the
2442 * -# Timing Advance - this corresponds to the timing adjustment that the UE
2443 * needs to be uplink synchronized. This value is calculated by physical layer.
2444 * -# tpc - this is the power control command that the physical layer calculates
2445 * from the received RA request. This value is transmitted in the RA Response
2447 * -# CQI - this is the Channel Quality Index of the UL channel estimated by the
2448 * physical layer. This aids MAC in the scheduling of this UE.
2450 typedef struct tfuRaReqIndInfo
2452 CmMemListCp memCp; /*!< Memory control point */
2453 CmLteCellId cellId; /*!< Cell ID */
2454 CmLteTimingInfo timingInfo; /*!< Timing information */
2455 U8 nmbOfRaRnti; /*!< Number of RA-RNTIs present for FDD this
2456 must be 1 for TDD, it can be a max of 6. */
2457 TfuRachInfo *rachInfoArr; /*!< Array of
2458 RACH information per
2462 /** @brief This structure contains PUCCH Delta power for a single UE.
2464 typedef struct tfuPucchDeltaPwr
2466 CmLList lnk; /*!< Link of Linked List */
2467 CmLteRnti rnti; /*!< Memory control */
2468 S8 pucchDeltaPwr; /*!< PUCCH delta power to be sent by PHY. */
2471 /** @brief This structure contains information that is passed as part of the
2472 * PUCCH Delta power indication from PHY to SCH.
2473 * @details This structure clubs together PUCCH Delta power values for a number
2476 typedef struct tfuPucchDeltaPwrIndInfo
2478 CmMemListCp memCp; /*!< Memory control point */
2479 CmLteCellId cellId; /*!< Cell ID */
2480 CmLteTimingInfo timingInfo; /*!< Timing information */
2481 CmLListCp pucchDeltaPwrLst; /*!< List of PUCCH Delta power
2483 } TfuPucchDeltaPwrIndInfo; /* TODO renamed this from Del -> Delta. not changed tfu.c */
2485 /** @brief LAA:This structure contains the cell Id and subframe information for
2486 * which the transmission failed.
2488 typedef struct tfuErrIndInfo
2490 CmLteCellId cellId; /*!< Cell ID */
2491 CmLteTimingInfo timingInfo; /*!< Timing information */
2495 /** @brief :This structure contains the cell Id and UeId to inform CL
2496 * to delete datReq if it exists in CL but UeId got changed or similar other
2497 * scenarios.These scenarios are possible only when L2_OPTMZ flag is enabled.
2499 typedef struct tfuDelDatReqInfo
2501 CmLteCellId cellId; /*!< Cell ID */
2502 CmLteRnti ueId; /*!< CRNTI of the UE */
2506 typedef struct slotIndInfo
2512 typedef struct rachPreamInfo
2518 typedef struct rachPduInfo
2525 RachPreamInfo preamInfo[MAX_PREAM_PER_SLOT];
2528 typedef struct rachInd
2530 SlotIndInfo timingInfo;
2532 RachPduInfo rachPdu[MAC_RACH_PDU_PER_SLOT];
2535 typedef S16 (*TfuBndReq) ARGS((
2539 typedef S16 (*TfuBndCfm) ARGS((
2543 typedef S16 (*TfuUbndReq) ARGS((
2548 typedef S16 (*TfuSchBndReq) ARGS((
2552 typedef S16 (*TfuSchBndCfm) ARGS((
2556 typedef S16 (*TfuSchUbndReq) ARGS((
2561 typedef S16 (*TfuRaReqInd) ARGS((
2564 TfuRaReqIndInfo *raReqInd));
2566 typedef S16 (*TfuRecpReq) ARGS((
2569 TfuRecpReqInfo *recpReq));
2571 typedef S16 (*TfuUlCqiInd) ARGS((
2574 TfuUlCqiIndInfo * ulCqiInd));
2576 typedef S16 (*TfuDoaInd) ARGS((
2579 TfuDoaIndInfo * doaInd));
2580 typedef S16 (*TfuHqInd) ARGS((
2583 TfuHqIndInfo * hqInd));
2585 typedef S16 (*TfuSrInd) ARGS((
2588 TfuSrIndInfo * srInd));
2590 typedef S16 (*TfuDlCqiInd) ARGS((
2593 TfuDlCqiIndInfo * dlCqiInd));
2594 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
2596 typedef S16 (*TfuRawCqiInd) ARGS((
2599 TfuRawCqiIndInfo *rawCqiInd));
2601 typedef S16 (*TfuSrsInd) ARGS((
2604 TfuSrsIndInfo *srsInd));
2605 #endif /* TFU_UPGRADE */
2607 typedef S16 (*TfuDatInd) ARGS((
2610 TfuDatIndInfo * datInd));
2612 typedef S16 (*TfuCrcInd) ARGS((
2615 TfuCrcIndInfo * crcInd));
2617 typedef S16 (*TfuTimingAdvInd) ARGS((
2620 TfuTimingAdvIndInfo * timingAdvInd));
2622 typedef S16 (*TfuDatReq) ARGS((
2625 TfuDatReqInfo * datReq));
2628 typedef S16 (*TfuDelDatReq) ARGS((
2631 TfuDelDatReqInfo * datReq));
2634 typedef S16 (*TfuCntrlReq) ARGS((
2637 TfuCntrlReqInfo *cntrlReq));
2639 typedef S16 (*TfuTtiCell) ARGS((
2642 TfuTtiCellInfo * ttiInd));
2644 typedef S16 (*TfuTtiInd) ARGS((
2646 SlotIndInfo * slotInd));
2648 #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
2649 typedef S16 (*TfuNonRtInd) ARGS((
2654 typedef S16 (*TfuSchTtiInd) ARGS((
2657 SlotIndInfo* slotInd));
2659 typedef S16 (*TfuPucchDeltaPwrInd) ARGS((
2662 TfuPucchDeltaPwrIndInfo * pucchDeltaPwr));
2664 /*LAA: Error Indication on LAA SCell*/
2665 typedef S16 (*TfuErrInd) ARGS((
2668 TfuErrIndInfo * errInd));
2670 /** @brief This API is used to send a Bind Request from MAC to PHY.
2671 * @param pst Pointer to the post structure.
2672 * @param suId SAP ID of the service user.
2673 * @param spId SAP ID of the service provider.
2674 * @return ROK/RFAILED
2676 EXTERN S16 TfUiTfuBndReq ARGS((Pst *pst, SuId suId, SpId spId));
2678 /** @brief This API is used to send a Bind Request from Scheduler to PHY.
2679 * @param pst Pointer to the post structure.
2680 * @param suId SAP ID of the service user.
2681 * @param spId SAP ID of the service provider.
2682 * @return ROK/RFAILED
2684 EXTERN S16 TfUiTfuSchBndReq ARGS((Pst *pst, SuId suId, SpId spId));
2687 /** @brief This API is used to receive a Bind Confirm from PHY to MAC.
2688 * @param pst Pointer to the post structure.
2689 * @param suId SAP ID of the service user.
2690 * @param status Status of the bind request.
2691 * @return ROK/RFAILED
2693 EXTERN S16 TfUiTfuBndCfm ARGS((Pst *pst, SuId suId, U8 status));
2695 /** @brief This API is used to receive a Bind Confirm from PHY to Scheduler.
2696 * @param pst Pointer to the post structure.
2697 * @param suId SAP ID of the service user.
2698 * @param status Status of the bind request.
2699 * @return ROK/RFAILED
2701 EXTERN S16 TfUiTfuSchBndCfm ARGS((Pst *pst, SuId suId, U8 status));
2704 /** @brief This API is used to send an Unbind Request from MAC to PHY.
2705 * @param pst Pointer to the post structure.
2706 * @param spId SAP ID of the service provider.
2707 * @param reason Reason for Unbind request.
2708 * @return ROK/RFAILED
2710 EXTERN S16 TfUiTfuUbndReq ARGS((Pst *pst, SpId spId, Reason reason));
2712 /** @brief This API is used to send an Unbind Request from Scheduler to PHY.
2713 * @param pst Pointer to the post structure.
2714 * @param spId SAP ID of the service provider.
2715 * @param reason Reason for Unbind request.
2716 * @return ROK/RFAILED
2718 EXTERN S16 TfUiTfuSchUbndReq ARGS((Pst *pst, SpId spId, Reason reason));
2721 /** @brief This API is used to indication Random Access Request reception from
2723 * @details This primitive is used by physical layer to indicate the reception
2724 * of a Random Access Request from a set of UEs. The information passed consists
2725 * of the RA-RNTI and the list of preambles received.
2726 * @param pst Pointer to the post structure.
2727 * @param suId SAP ID of the service user.
2728 * @param raReqInd Pointer to the TfuRaReqIndInfo structure.
2729 * @return ROK/RFAILED
2731 EXTERN S16 TfUiTfuRaReqInd ARGS((Pst *pst, SuId suId, TfuRaReqIndInfo
2735 /** @brief This primitive is sent from Scheduler to PHY.
2736 * @details This primitive provides PHY with all the information required by
2737 * PHY to decode transmissions from the UE on either PUCCH or PUSCH.
2738 * -# On PUCCH, UE can transmit the following:
2744 * -# On PUSCH, UE can transmit the following:
2747 * -# Data + HARQ Feedback
2748 * This primitive carries all the information for the expected subframe for all
2749 * the UEs that are scheduled to transmit.
2750 * @param pst Pointer to the post structure.
2751 * @param spId SAP ID of the service provider.
2752 * @param recpReq Pointer to the TfuRecpReqInfo structure.
2753 * @return ROK/RFAILED
2755 EXTERN S16 TfUiTfuRecpReq ARGS((Pst *pst, SpId spId, TfuRecpReqInfo *recpReq));
2757 /** @brief This primitive is sent from Scheduler to PHY. It provides PHY with
2758 * all the control information.
2759 * @details This primitive carries the information sent on the following
2767 * @param cntrlReq pointer to TfuCntrlReqInfo
2768 * @return ROK/RFAILED
2770 EXTERN S16 TfUiTfuCntrlReq ARGS((Pst *pst, SpId spId, TfuCntrlReqInfo *cntrlReq));
2772 /** @brief This primitive carries the Data PDUs from MAC to PHY for transmission.
2773 * @details The data being sent in this primitive is meant to be transmitted on
2774 * the downlink channel PDSCH and PBCH (if present). To facilitate physical
2775 * layer processing, requisite control information is also sent along with the
2777 * @sa TfUiTfuCntrlReq
2780 * @param datReq pointer to TfuDatReqInfo
2783 EXTERN S16 TfUiTfuDatReq ARGS((Pst *pst, SpId spId, TfuDatReqInfo *datReq));
2786 /** @brief This primitive carries the cellId and UeId for which datReq need to
2788 * @details This primitive is used to delete datReq PDUs present in CL for
2789 * which got changed or similar other scenarios. These scenarios are possible
2790 * only when L2_OPTMZ flag is enabled.
2791 * @sa TfUiTfuDelDatReq
2794 * @param datReq pointer to TfuDelDatReqInfo
2798 EXTERN S16 TfUiTfuDelDatReq ARGS((Pst *pst, SpId spId, TfuDelDatReqInfo *datReq));
2801 /** @brief This Primitive carries the Data PDUs from PHY to MAC.
2802 * @details The Uplink Data, that is, the data transmitted by the UEs received by the
2803 * physical layer at the eNodeB in the subframe (indicated by the timingInfo),
2804 * is relayed to MAC using this primitive.
2807 * @param datInd pointer to TfuDatIndInfo
2810 EXTERN S16 TfUiTfuDatInd ARGS((Pst *pst, SuId suId, TfuDatIndInfo *datInd));
2812 /** @brief This primitive carries the HARQ Feedback from PHY to Scheduler.
2813 * @details HARQ feedback is sent by the UE to the eNodeB, an ACK is sent if UE
2814 * can successfully recieve the data transmitted by the eNodeB, else a NACK is
2815 * sent. This feedback is utilized by MAC for further scheduling, for instance
2816 * it can schedule an adaptive retransmission of the same data.
2819 * @param hqInd pointer to TfuHqIndInfo
2822 EXTERN S16 TfUiTfuHqInd ARGS((Pst *pst, SuId suId, TfuHqIndInfo *hqInd));
2824 /** @brief This primitive carries the SR Indication from PHY to Scheduler.
2825 * @details Scheduling Request (SR) is sent by the UE to the eNodeB to request
2826 * for Uplink (UL) grant. This primitive carries a list of SRs for a number of
2827 * UEs received in the indicated subframe.
2830 * @param srInd pointer to TfuSrIndInfo
2833 EXTERN S16 TfUiTfuSrInd ARGS((Pst *pst, SuId suId, TfuSrIndInfo *srInd));
2835 /** @brief This API is used to indicate CQI reporting from PHY to Scheduler.
2836 * @details This primitive carries an estimate of the Uplink Channel Quality
2837 * Index (CQI) for a list of UEs. This is an estimate of the uplink channel
2838 * quality, that is, the transmission from UE as calculated at the Physical layer at
2840 * It carries a list of sub-band CQIs for each UE.
2841 * @param pst Pointer to the post structure.
2842 * @param suId SAP ID of the service user.
2843 * @param ulCqiInd Pointer to the TfuUlCqiIndInfo structure.
2844 * @return ROK/RFAILED
2846 EXTERN S16 TfUiTfuUlCqiInd ARGS((Pst *pst, SuId suId,
2847 TfuUlCqiIndInfo *ulCqiInd));
2849 /** @brief This API is used by the Physical layer to indicate if the CRC Check
2850 * on the PUSCH Data is successful or not.
2851 * @details This primitive carries CRC indication for a list of UEs. This
2852 * is utilized in the scenario where MAC requested the reception of Uplink data
2853 * for a particular UE. On reception of the PUSCH data, the CRC check on it
2854 * failed. This CRC failure is indicated to MAC, which utillizes this
2855 * information for further scheduling.
2856 * Physical layer indicates failure or success for each PUSCH transmission.
2857 * @param pst Pointer to the post structure.
2858 * @param suId SAP ID of the service user.
2859 * @param crcIndInfo Pointer to the TfuCrcIndInfo.
2860 * @return ROK/RFAILED
2862 EXTERN S16 TfUiTfuCrcInd ARGS((Pst *pst, SuId suId,
2863 TfuCrcIndInfo *crcIndInfo));
2865 /** @brief This API is used to indicate a Timing Advance from PHY to Scheduler.
2866 * @details This primitive carries timing advance information for a number of
2867 * UEs that may need timing advance. Timing advance information is an estimate
2868 * of the timing adjustment that an UE needs to apply in order to be
2869 * synchronized in Uplink. This estimate is to be calculated by physical layer.
2870 * @param pst Pointer to the post structure.
2871 * @param suId SAP ID of the service user.
2872 * @param timingAdvInd Pointer to the TfuTimingAdvIndInfo structure.
2873 * @return ROK/RFAILED
2875 EXTERN S16 TfUiTfuTimingAdvInd ARGS((Pst *pst, SuId suId,
2876 TfuTimingAdvIndInfo *timingAdvInd));
2879 /** @brief This API is the TTI indication from CL to MAC and SCH
2880 * @details This primitive provides the timing information (SFN and subframe)
2881 * which is currently running on the physical layer.
2882 * @param pst Pointer to the post structure.
2883 * @param suId SAP ID of the service user.
2884 * @param ttiInd Pointer to the TfuTtiCellInfo structure.
2885 * @return ROK/RFAILED
2887 EXTERN S16 TfUiTfuTtiCell ARGS((Pst *pst, SuId suId,
2888 TfuTtiCellInfo *ttiInd));
2891 /** @brief This API is the TTI indication from CL to MAC and SCH
2892 * @details This primitive provides the timing information (SFN and subframe)
2893 * which is currently running on the physical layer.
2894 * @param pst Pointer to the post structure.
2895 * @param suId SAP ID of the service user.
2896 * @param ttiInd Pointer to the TfuTtiIndInfo structure.
2897 * @return ROK/RFAILED
2899 EXTERN S16 TfUiTfuTtiInd ARGS((Pst *pst, SuId suId,
2900 TfuTtiIndInfo *ttiInd));
2902 /** @brief This API is the TTI indication from PHY to Scheduler.
2903 * @details This primitive provides the timing information (SFN and subframe)
2904 * which is currently running on the physical layer.
2905 * @param pst Pointer to the post structure.
2906 * @param suId SAP ID of the service user.
2907 * @param ttiInd Pointer to the TfuTtiIndInfo structure.
2908 * @return ROK/RFAILED
2910 EXTERN S16 TfUiTfuSchTtiInd ARGS((Pst *pst, SuId suId,
2911 TfuTtiIndInfo *ttiInd));
2914 /** @brief This API is used to indicate the reception of CQI report from PHY to
2915 * Scheduler and also carries the Rank Index information.
2916 * @details This primitive carries the CQI (Channel Quality Index) report
2917 * for the downlink channel, sent by the UE. It is also used to report RI and
2919 * @param pst Pointer to the post structure.
2920 * @param suId SAP ID of the service user.
2921 * @param dlCqiInd Pointer to the TfuDlCqiIndInfo structure.
2922 * @return ROK/RFAILED
2924 EXTERN S16 TfUiTfuDlCqiInd ARGS((Pst *pst, SuId suId,
2925 TfuDlCqiIndInfo *dlCqiInd));
2926 /** @brief This API is used to indicate the calculated DOA value report from PHY to
2928 * @details This primitive carries the DOA(Direction of arrival) report
2929 * calculated at PHYSICAL LAYER, for an UE.
2930 * @param pst Pointer to the post structure.
2931 * @param suId SAP ID of the service user.
2932 * @param doaInd Pointer to the TfuDoaIndInfo structure.
2933 * @return ROK/RFAILED
2935 EXTERN S16 TfUiTfuDoaInd ARGS((Pst *pst, SuId suId,
2936 TfuDoaIndInfo *doaInd));
2939 /** @brief This primitive is used to convey PUCCH Delta Power calculated by the
2941 * @details This primitive is used to convey PUCCH Delta Power calculated by the
2942 * Physical layer. This information is utilized by the scheduler to perform
2943 * power control for the UEs.
2944 * @param pst Pointer to the post structure.
2945 * @param suId SAP ID of the service user.
2946 * @param pucchDeltaPwr Pointer to the TfuPucchDeltaPwrIndInfo structure.
2947 * @return ROK/RFAILED
2949 EXTERN S16 TfUiTfuPucchDeltaPwrInd ARGS((Pst *pst, SuId suId,
2950 TfuPucchDeltaPwrIndInfo *pucchDeltaPwr));
2952 /** @brief LAA:This primitive carries the Error Indication from PHY to Scheduler.
2953 * This primitive is invoked when the transmission on the unlicensed Scell
2957 * @param errInd pointer to TfuErrIndInfo
2961 EXTERN S16 TfUiTfuErrInd ARGS((Pst *pst, SuId suId,
2962 TfuErrIndInfo *errInd));
2963 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
2966 /** @brief This primitive is used to convey the information derived by the
2967 * physical layer from the SRS transmission from the UE.
2968 * @details This primitive carries information derived from the SRS transmission
2971 * @param pst Pointer to the post structure.
2972 * @param suId SAP ID of the service user.
2973 * @param srsInd Pointer to the TfuSrIndInfo structure.
2974 * @return ROK/RFAILED
2976 EXTERN S16 TfUiTfuSrsInd ARGS((Pst *pst, SuId suId,
2977 TfuSrsIndInfo *srsInd));
2980 /** @brief This primitive is used to convey the Raw CQI information
2981 * transmitted by the UE.
2982 * @details Raw CQI report is the actual bits transmitted by the UE when
2983 * reporting CQI/PMI/RI. The interpretation of these bits to CQI/sub-band CQI
2984 * and so on, are done by MAC.
2986 * @param pst Pointer to the post structure.
2987 * @param suId SAP ID of the service user.
2988 * @param cqiInd Pointer to the TfuRawCqiIndInfo structure.
2989 * @return ROK/RFAILED
2991 EXTERN S16 TfUiTfuRawCqiInd ARGS((Pst *pst, SuId suId,
2992 TfuRawCqiIndInfo *cqiInd));
2994 #endif /* TFU_UPGRADE */
2997 EXTERN S16 RgLiTfuBndReq ARGS((
3002 EXTERN S16 RgLiTfuBndCfm ARGS((
3007 EXTERN S16 RgLiTfuUbndReq ARGS((
3013 EXTERN S16 RgLiTfuSchBndReq ARGS((
3018 EXTERN S16 RgLiTfuSchBndCfm ARGS((
3023 EXTERN S16 RgLiTfuSchUbndReq ARGS((
3029 EXTERN S16 RgLiTfuRaReqInd ARGS((
3032 TfuRaReqIndInfo * raReq
3036 EXTERN S16 RgLiTfuRecpReq ARGS((
3039 TfuRecpReqInfo * recpReq
3042 EXTERN S16 RgLiTfuUlCqiInd ARGS((
3045 TfuUlCqiIndInfo * ulCqiInd
3048 EXTERN S16 RgLiTfuDoaInd ARGS((
3051 TfuDoaIndInfo * doaInd
3054 EXTERN S16 RgLiTfuHqInd ARGS((
3057 TfuHqIndInfo * hqInd
3060 EXTERN S16 RgLiTfuSrInd ARGS((
3063 TfuSrIndInfo * srInd
3066 EXTERN S16 RgLiTfuDlCqiInd ARGS((
3069 TfuDlCqiIndInfo * dlCqiInd
3072 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
3074 EXTERN S16 RgLiTfuRawCqiInd ARGS((
3077 TfuRawCqiIndInfo *rawCqiInd
3079 EXTERN S16 RgLiTfuSrsInd ARGS((
3082 TfuSrsIndInfo *srsIndInfo
3085 EXTERN S16 RgLiTfuDatInd ARGS((
3088 TfuDatIndInfo * datInd
3091 EXTERN S16 fapiMacSlotInd
3094 SlotIndInfo *slotInd
3097 EXTERN S16 RgLiTfuCrcInd ARGS((
3100 TfuCrcIndInfo * crcInd
3103 EXTERN S16 RgLiTfuTimingAdvInd ARGS((
3106 TfuTimingAdvIndInfo * timingAdvInd
3109 EXTERN S16 RgLiTfuDatReq ARGS((
3112 TfuDatReqInfo * datReq
3115 EXTERN S16 RgLiTfuCntrlReq ARGS((
3118 TfuCntrlReqInfo * cntrlReq
3121 EXTERN S16 RgLiTfuTtiInd ARGS((
3124 TfuTtiIndInfo * ttiInd
3127 EXTERN int macSchSlotInd ARGS((
3129 SlotIndInfo * slotInd
3132 #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
3133 EXTERN S16 RgLiTfuNonRtInd ARGS((
3139 EXTERN S16 RgLiTfuPucchDeltaPwrInd ARGS((
3142 TfuPucchDeltaPwrIndInfo *pucchDeltaPwr
3146 /** @brief LAA:This primitive carries the Error Indication from PHY to Scheduler.
3147 * This primitive is invoked when the transmission on the unlicensed Scell
3151 * @param errInd pointer to TfuErrIndInfo
3154 EXTERN S16 RgLiTfuErrInd ARGS((Pst *pst, SuId suId, TfuErrIndInfo *errInd));
3157 /** @brief This primitive carries the cellId and UeId for which datReq need to
3159 * @details This primitive is used to delete datReq PDUs present in CL for
3160 * which got changed or similar other scenarios. These scenarios are possible
3161 * only when L2_OPTMZ flag is enabled.
3162 * @sa TfUiTfuDelDatReq
3165 * @param datReq pointer to TfuDelDatReqInfo
3168 EXTERN S16 RgLiTfuDelDatReq ARGS((Pst *pst, SuId suId, TfuDelDatReqInfo *delDatReq));
3171 #if (defined(LCTFU))
3172 /** @brief This API is used to send a Bind Request from MAC to PHY.
3175 EXTERN S16 cmPkTfuRbAssignA1Val324 ARGS((
3176 TfuRbAssignA1Val324 *param,
3179 EXTERN S16 cmPkTfuRbAssignB1Val324 ARGS((
3180 TfuRbAssignB1Val324 *param,
3183 EXTERN S16 cmPkTfuRbAssignVal326 ARGS((
3184 TfuRbAssignVal326 *param,
3187 EXTERN S16 cmUnpkTfuRbAssignA1Val324 ARGS((
3188 TfuRbAssignA1Val324 *param,
3191 EXTERN S16 cmUnpkTfuRbAssignB1Val324 ARGS((
3192 TfuRbAssignB1Val324 *param,
3195 EXTERN S16 cmUnpkTfuRbAssignVal326 ARGS((
3196 TfuRbAssignVal326 *param,
3199 EXTERN S16 cmPkTfuDciFormatA1A2Info ARGS((
3200 TfuDciFormatA1Info *param,
3203 EXTERN S16 cmPkTfuDciFormatB1B2Info ARGS((
3204 TfuDciFormatB1Info *param,
3207 EXTERN S16 cmUnpkTfuDciFormatA1A2Info ARGS((
3208 TfuDciFormatA1Info *param,
3211 EXTERN S16 cmUnpkTfuDciFormatB1B2Info ARGS((
3212 TfuDciFormatB1Info *param,
3215 #endif /* TFU_5GTF */
3217 EXTERN S16 cmPkTfuBndReq ARGS((
3222 /** @brief This API is used to send a Bind Request from MAC to PHY.
3224 EXTERN S16 cmUnpkTfuBndReq ARGS((
3229 /** @brief This API is used to receive a Bind Confirm from PHY to MAC.
3231 EXTERN S16 cmPkTfuBndCfm ARGS((
3236 /** @brief This API is used to receive a Bind Confirm from PHY to MAC.
3238 EXTERN S16 cmUnpkTfuBndCfm ARGS((
3243 /** @brief This API is used to send an Unbind Request from MAC to PHY.
3245 EXTERN S16 cmPkTfuUbndReq ARGS((
3250 /** @brief This API is used to send an Unbind Request from MAC to PHY.
3252 EXTERN S16 cmUnpkTfuUbndReq ARGS((
3257 /** @brief This API is used to send a Bind Request from SCH to PHY.
3259 EXTERN S16 cmPkTfuSchBndReq ARGS((
3264 /** @brief This API is used to send a Bind Request from SCH to PHY.
3266 EXTERN S16 cmUnpkTfuSchBndReq ARGS((
3271 /** @brief This API is used to receive a Bind Confirm from PHY to SCH.
3273 EXTERN S16 cmPkTfuSchBndCfm ARGS((
3278 /** @brief This API is used to receive a Bind Confirm from PHY to SCH.
3280 EXTERN S16 cmUnpkTfuSchBndCfm ARGS((
3285 /** @brief This API is used to send an Unbind Request from SCH to PHY.
3287 EXTERN S16 cmPkTfuSchUbndReq ARGS((
3292 /** @brief This API is used to send an Unbind Request from SCH to PHY.
3294 EXTERN S16 cmUnpkTfuSchUbndReq ARGS((
3299 /** @brief This API is used to indication Random Access Request reception from
3302 EXTERN S16 cmPkTfuRaReqInd ARGS((
3305 TfuRaReqIndInfo * raReqInd
3307 /** @brief This API is used to indication Random Access Request reception from
3310 EXTERN S16 cmUnpkTfuRaReqInd ARGS((
3315 /** @brief This API is used to indication Random Access Request reception from
3318 EXTERN S16 cmPkTfuRecpReq ARGS((
3321 TfuRecpReqInfo * recpReq
3323 /** @brief This API is used to indication Random Access Request reception from
3326 EXTERN S16 cmUnpkTfuRecpReq ARGS((
3331 /** @brief This API is used to indicate CQI reporting from PHY to MAC.
3333 EXTERN S16 cmPkTfuUlCqiInd ARGS((
3336 TfuUlCqiIndInfo * ulCqiInd
3338 /** @brief This API is used to indicate CQI reporting from PHY to MAC.
3340 EXTERN S16 cmUnpkTfuUlCqiInd ARGS((
3346 EXTERN S16 cmPkTfuHqInd ARGS((
3349 TfuHqIndInfo * hqInd
3352 EXTERN S16 cmUnpkTfuHqInd ARGS((
3357 /** @brief This API is used to indicate a SR reception from PHY to MAC.
3359 EXTERN S16 cmPkTfuSrInd ARGS((
3362 TfuSrIndInfo * srInd
3364 /** @brief This API is used to indicate a SR reception from PHY to MAC.
3366 EXTERN S16 cmUnpkTfuSrInd ARGS((
3371 /** @brief This API is used to indicate the reception of CQI report from PHY to
3374 EXTERN S16 cmPkTfuDlCqiInd ARGS((
3377 TfuDlCqiIndInfo * dlCqiInd
3379 /** @brief This API is used to indicate the reception of CQI report from PHY to
3382 EXTERN S16 cmUnpkTfuDlCqiInd ARGS((
3388 /** @brief This API is used to indicate the Calculated DOA value report from PHY to
3390 EXTERN S16 cmUnpkTfuDoaInd ARGS((
3395 /** @brief This API is used to indicate the calculated DOA Value report from PHY to
3398 EXTERN S16 cmPkTfuDoaInd ARGS((
3401 TfuDoaIndInfo * doaInd
3404 /** @brief This API is used to indicate Data Reception from PHY to MAC.
3406 EXTERN S16 cmPkTfuDatInd ARGS((
3409 TfuDatIndInfo * datInd
3411 /** @brief This API is used to indicate Data Reception from PHY to MAC.
3413 EXTERN S16 cmUnpkTfuDatInd ARGS((
3418 /** @brief This API is used to indicate Decode failure from PHY to MAC.
3420 EXTERN S16 cmPkTfuCrcInd ARGS((
3423 TfuCrcIndInfo * crcInd
3425 /** @brief This API is used to indicate Decode failure from PHY to MAC.
3427 EXTERN S16 cmUnpkTfuCrcInd ARGS((
3433 EXTERN S16 cmPkTfuCntrlReq ARGS((
3436 TfuCntrlReqInfo * cntrlReq
3439 EXTERN S16 cmUnpkTfuCntrlReq ARGS((
3444 /** @brief This API is used to indicate a Timing Advance from PHY to MAC.
3446 EXTERN S16 cmPkTfuTimingAdvInd ARGS((
3449 TfuTimingAdvIndInfo * timingAdvInd
3451 /** @brief This API is used to indicate a Timing Advance from PHY to MAC.
3453 EXTERN S16 cmUnpkTfuTimingAdvInd ARGS((
3454 TfuTimingAdvInd func,
3458 /** @brief This API is used to send Data Request from MAC to PHY.
3460 EXTERN S16 cmPkTfuDatReq ARGS((
3463 TfuDatReqInfo * datReq
3465 /** @brief This API is used to send Data Request from MAC to PHY.
3467 EXTERN S16 cmUnpkTfuDatReq ARGS((
3473 /** @brief This API is the TTI indication from CL to MAC and SCH.
3475 EXTERN S16 cmPkTfuTtiCell ARGS((
3478 TfuTtiCellInfo * ttiInd
3480 /** @brief This API is the TTI indication from CL to MAC and SCH.
3482 EXTERN S16 cmUnpkTfuTtiCell ARGS((
3489 /** @brief This API is the TTI indication from PHY to MAC.
3491 EXTERN S16 cmPkTfuTtiInd ARGS((
3494 TfuTtiIndInfo * ttiInd
3496 /** @brief This API is the TTI indication from PHY to MAC.
3498 EXTERN S16 cmUnpackSlotInd ARGS((
3504 typedef int (*MacSchSlotIndFunc) ARGS((
3505 Pst *pst, /* Post Structure */
3506 SlotIndInfo *slotInd /* slot ind Info */
3509 #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
3510 /** @brief This API is the non-rt indication from PHY to MAC.
3512 EXTERN S16 cmPkTfuNonRtInd ARGS((
3517 /** @brief This API is the non-rt indication from PHY to MAC.
3519 EXTERN S16 cmUnpkTfuNonRtInd ARGS((
3526 /** @brief This API is the TTI indication from PHY to SCH.
3528 EXTERN S16 cmPkTfuSchTtiInd ARGS((
3531 TfuTtiIndInfo * ttiInd
3533 /** @brief This API is the TTI indication from PHY to SCH.
3535 EXTERN S16 cmUnpackMacSchSlotInd ARGS((
3536 MacSchSlotIndFunc func,
3541 /** @brief This API is used to convey the PUCCH delta power from PHY to SCH.
3543 EXTERN S16 cmPkTfuPucchDeltaPwrInd ARGS((
3546 TfuPucchDeltaPwrIndInfo * pucchDeltaPwr
3548 /** @brief This API is used to indicate Decode failure from PHY to MAC.
3550 EXTERN S16 cmUnpkTfuPucchDeltaPwrInd ARGS((
3551 TfuPucchDeltaPwrInd func,
3558 /** @brief This API is used to send Group Power Control Request from MAC to PHY.
3560 EXTERN S16 cmPkTfuGrpPwrCntrlReq ARGS((
3563 TfuGrpPwrCntrlReqInfo * grpPwrCntrlReq
3565 /** @brief This API is used to send Group Power Control Request from MAC to PHY.
3567 EXTERN S16 cmUnpkTfuGrpPwrCntrlReq ARGS((
3568 TfuGrpPwrCntrlReq func,
3573 EXTERN S16 cmPkTfuDciFormat0Info ARGS((
3574 TfuDciFormat0Info *param,
3577 EXTERN S16 cmUnpkTfuDciFormat0Info ARGS((
3578 TfuDciFormat0Info *param,
3581 EXTERN S16 cmPkTfuAllocMapOrRiv ARGS((
3582 TfuAllocMapOrRiv *param,
3585 EXTERN S16 cmUnpkTfuAllocMapOrRiv ARGS((
3586 TfuAllocMapOrRiv *param,
3589 EXTERN S16 cmPkTfuDciFormat1AllocInfo ARGS((
3590 TfuDciFormat1AllocInfo *param,
3593 EXTERN S16 cmUnpkTfuDciFormat1AllocInfo ARGS((
3594 TfuDciFormat1AllocInfo *param,
3597 EXTERN S16 cmPkTfuDciFormat1Info ARGS((
3598 TfuDciFormat1Info *param,
3601 EXTERN S16 cmUnpkTfuDciFormat1Info ARGS((
3602 TfuDciFormat1Info *param,
3606 EXTERN S16 cmPkTfuDciFormatTbInfo ARGS((
3607 TfuDciFormatTbInfo *param,
3610 EXTERN S16 cmUnpkTfuDciFormatTbInfo ARGS((
3611 TfuDciFormatTbInfo *param,
3615 EXTERN S16 cmPkTfuDciFormat2AAllocInfo ARGS((
3616 TfuDciFormat2AAllocInfo *param,
3619 EXTERN S16 cmUnpkTfuDciFormat2AAllocInfo ARGS((
3620 TfuDciFormat2AAllocInfo *param,
3623 EXTERN S16 cmPkTfuDciFormat2AInfo ARGS((
3624 TfuDciFormat2AInfo *param,
3627 EXTERN S16 cmUnpkTfuDciFormat2AInfo ARGS((
3628 TfuDciFormat2AInfo *param,
3631 EXTERN S16 cmPkTfuDciFormat2AllocInfo ARGS((
3632 TfuDciFormat2AllocInfo *param,
3635 EXTERN S16 cmUnpkTfuDciFormat2AllocInfo ARGS((
3636 TfuDciFormat2AllocInfo *param,
3639 EXTERN S16 cmPkTfuDciFormat2Info ARGS((
3640 TfuDciFormat2Info *param,
3643 EXTERN S16 cmUnpkTfuDciFormat2Info ARGS((
3644 TfuDciFormat2Info *param,
3647 EXTERN S16 cmPkTfuDciFormat3Info ARGS((
3648 TfuDciFormat3Info *param,
3651 EXTERN S16 cmUnpkTfuDciFormat3Info ARGS((
3652 TfuDciFormat3Info *param,
3655 EXTERN S16 cmPkTfuDciFormat3AInfo ARGS((
3656 TfuDciFormat3AInfo *param,
3659 EXTERN S16 cmUnpkTfuDciFormat3AInfo ARGS((
3660 TfuDciFormat3AInfo *param,
3663 EXTERN S16 cmPkTfuDciFormat1dAllocInfo ARGS((
3664 TfuDciFormat1dAllocInfo *param,
3667 EXTERN S16 cmUnpkTfuDciFormat1dAllocInfo ARGS((
3668 TfuDciFormat1dAllocInfo *param,
3671 EXTERN S16 cmPkTfuDciFormat1dInfo ARGS((
3672 TfuDciFormat1dInfo *param,
3675 EXTERN S16 cmUnpkTfuDciFormat1dInfo ARGS((
3676 TfuDciFormat1dInfo *param,
3679 EXTERN S16 cmPkTfuDciFormat1cInfo ARGS((
3680 TfuDciFormat1cInfo *param,
3683 EXTERN S16 cmUnpkTfuDciFormat1cInfo ARGS((
3684 TfuDciFormat1cInfo *param,
3687 EXTERN S16 cmPkTfuDciFormat1bAllocInfo ARGS((
3688 TfuDciFormat1bAllocInfo *param,
3691 EXTERN S16 cmUnpkTfuDciFormat1bAllocInfo ARGS((
3692 TfuDciFormat1bAllocInfo *param,
3695 EXTERN S16 cmPkTfuPdcchOrderInfo ARGS((
3696 TfuPdcchOrderInfo *param,
3699 EXTERN S16 cmUnpkTfuPdcchOrderInfo ARGS((
3700 TfuPdcchOrderInfo *param,
3703 EXTERN S16 cmPkTfuDciFormat1aAllocInfo ARGS((
3704 TfuDciFormat1aAllocInfo *param,
3707 EXTERN S16 cmUnpkTfuDciFormat1aAllocInfo ARGS((
3708 TfuDciFormat1aAllocInfo *param,
3711 /*tfu_x_001.main_6 - Added for SPS support*/
3712 EXTERN S16 cmPkTfudciformat1aPdsch ARGS((
3713 Tfudciformat1aPdsch *param,
3716 EXTERN S16 cmUnpkTfudciformat1aPdsch ARGS((
3717 Tfudciformat1aPdsch *param,
3720 EXTERN S16 cmPkTfuDciFormat1aInfo ARGS((
3721 TfuDciFormat1aInfo *param,
3724 EXTERN S16 cmUnpkTfuDciFormat1aInfo ARGS((
3725 TfuDciFormat1aInfo *param,
3728 EXTERN S16 cmPkTfuDciFormat1bInfo ARGS((
3729 TfuDciFormat1bInfo *param,
3732 EXTERN S16 cmUnpkTfuDciFormat1bInfo ARGS((
3733 TfuDciFormat1bInfo *param,
3736 EXTERN S16 cmPkTfuDciInfo ARGS((
3740 EXTERN S16 cmUnpkTfuDciInfo ARGS((
3744 EXTERN S16 cmPkTfuSubbandInfo ARGS((
3745 TfuSubbandInfo *param,
3748 EXTERN S16 cmUnpkTfuSubbandInfo ARGS((
3749 TfuSubbandInfo *param,
3752 EXTERN S16 cmPkTfuSubbandDlCqiInfo ARGS((
3753 TfuSubbandDlCqiInfo *param,
3756 EXTERN S16 cmUnpkTfuSubbandDlCqiInfo ARGS((
3757 TfuSubbandDlCqiInfo *param,
3761 EXTERN S16 cmPkTfuSubbandCqiInfo ARGS((
3762 TfuSubbandCqiInfo *param,
3765 EXTERN S16 cmUnpkTfuSubbandCqiInfo ARGS((
3766 TfuSubbandCqiInfo *param,
3769 EXTERN S16 cmPkTfuPdcchCceInfo ARGS((
3770 TfuPdcchCceInfo *param,
3773 EXTERN S16 cmUnpkTfuPdcchCceInfo ARGS((
3774 TfuPdcchCceInfo *param,
3777 EXTERN S16 cmPkTfuCqiPucchMode10 ARGS((
3778 TfuCqiPucchMode10 *param,
3781 EXTERN S16 cmUnpkTfuCqiPucchMode10 ARGS((
3782 TfuCqiPucchMode10 *param,
3785 EXTERN S16 cmPkTfuCqiMode11Cqi ARGS((
3786 TfuCqiMode11Cqi *param,
3789 EXTERN S16 cmUnpkTfuCqiMode11Cqi ARGS((
3790 TfuCqiMode11Cqi *param,
3793 EXTERN S16 cmPkTfuCqiPucchMode11 ARGS((
3794 TfuCqiPucchMode11 *param,
3797 EXTERN S16 cmUnpkTfuCqiPucchMode11 ARGS((
3798 TfuCqiPucchMode11 *param,
3801 EXTERN S16 cmPkTfuCqiMode20SubCqi ARGS((
3802 TfuCqiMode20SubCqi *param,
3805 EXTERN S16 cmUnpkTfuCqiMode20SubCqi ARGS((
3806 TfuCqiMode20SubCqi *param,
3809 EXTERN S16 cmPkTfuCqiMode20Cqi ARGS((
3810 TfuCqiMode20Cqi *param,
3813 EXTERN S16 cmUnpkTfuCqiMode20Cqi ARGS((
3814 TfuCqiMode20Cqi *param,
3817 EXTERN S16 cmPkTfuCqiPucchMode20 ARGS((
3818 TfuCqiPucchMode20 *param,
3821 EXTERN S16 cmUnpkTfuCqiPucchMode20 ARGS((
3822 TfuCqiPucchMode20 *param,
3825 EXTERN S16 cmPkTfuCqiMode21SubCqi ARGS((
3826 TfuCqiMode21SubCqi *param,
3829 EXTERN S16 cmUnpkTfuCqiMode21SubCqi ARGS((
3830 TfuCqiMode21SubCqi *param,
3833 EXTERN S16 cmPkTfuCqiMode21WideCqi ARGS((
3834 TfuCqiMode21WideCqi *param,
3837 EXTERN S16 cmUnpkTfuCqiMode21WideCqi ARGS((
3838 TfuCqiMode21WideCqi *param,
3841 EXTERN S16 cmPkTfuCqiMode21Cqi ARGS((
3842 TfuCqiMode21Cqi *param,
3845 EXTERN S16 cmUnpkTfuCqiMode21Cqi ARGS((
3846 TfuCqiMode21Cqi *param,
3849 EXTERN S16 cmPkTfuCqiPucchMode21 ARGS((
3850 TfuCqiPucchMode21 *param,
3853 EXTERN S16 cmUnpkTfuCqiPucchMode21 ARGS((
3854 TfuCqiPucchMode21 *param,
3857 EXTERN S16 cmPkTfuDlCqiPucch ARGS((
3858 TfuDlCqiPucch *param,
3861 EXTERN S16 cmUnpkTfuDlCqiPucch ARGS((
3862 TfuDlCqiPucch *param,
3865 EXTERN S16 cmPkTfuSubbandMode12 ARGS((
3866 TfuSubbandMode12 *param,
3869 EXTERN S16 cmUnpkTfuSubbandMode12 ARGS((
3870 TfuSubbandMode12 *param,
3873 EXTERN S16 cmPkTfuCqiPuschMode12 ARGS((
3874 TfuCqiPuschMode12 *param,
3877 EXTERN S16 cmUnpkTfuCqiPuschMode12 ARGS((
3878 TfuCqiPuschMode12 *param,
3881 EXTERN S16 cmPkTfuCqiPuschMode20 ARGS((
3882 TfuCqiPuschMode20 *param,
3885 EXTERN S16 cmUnpkTfuCqiPuschMode20 ARGS((
3886 TfuCqiPuschMode20 *param,
3889 EXTERN S16 cmPkTfuCqiPuschMode22 ARGS((
3890 TfuCqiPuschMode22 *param,
3893 EXTERN S16 cmUnpkTfuCqiPuschMode22 ARGS((
3894 TfuCqiPuschMode22 *param,
3897 EXTERN S16 cmPkTfuSubbandMode30 ARGS((
3898 TfuSubbandMode30 *param,
3901 EXTERN S16 cmUnpkTfuSubbandMode30 ARGS((
3902 TfuSubbandMode30 *param,
3905 EXTERN S16 cmPkTfuCqiPuschMode30 ARGS((
3906 TfuCqiPuschMode30 *param,
3909 EXTERN S16 cmUnpkTfuCqiPuschMode30 ARGS((
3910 TfuCqiPuschMode30 *param,
3913 EXTERN S16 cmPkTfuSubbandMode31 ARGS((
3914 TfuSubbandMode31 *param,
3917 EXTERN S16 cmUnpkTfuSubbandMode31 ARGS((
3918 TfuSubbandMode31 *param,
3921 EXTERN S16 cmPkTfuCqiPuschMode31 ARGS((
3922 TfuCqiPuschMode31 *param,
3925 EXTERN S16 cmUnpkTfuCqiPuschMode31 ARGS((
3926 TfuCqiPuschMode31 *param,
3929 EXTERN S16 cmPkTfuDlCqiPusch ARGS((
3930 TfuDlCqiPusch *param,
3933 EXTERN S16 cmUnpkTfuDlCqiPusch ARGS((
3934 TfuDlCqiPusch *param,
3938 EXTERN S16 cmPkTfuDlCqiPuschInfo ARGS((
3939 TfuDlCqiPuschInfo *param,
3942 EXTERN S16 cmUnpkTfuDlCqiPuschInfo ARGS((
3943 TfuDlCqiPuschInfo *param,
3947 EXTERN S16 cmPkTfuDoaRpt ARGS((
3951 EXTERN S16 cmUnpkTfuDoaRpt ARGS((
3955 EXTERN S16 cmPkTfuDoaIndInfo ARGS((
3956 TfuDoaIndInfo *param,
3959 EXTERN S16 cmUnpkTfuDoaIndInfo ARGS((
3960 TfuDoaIndInfo *param,
3965 EXTERN S16 cmPkTfuDlCqiInfo ARGS((
3967 TfuDlCqiInfo *param,
3970 EXTERN S16 cmUnpkTfuDlCqiInfo ARGS((
3972 TfuDlCqiInfo *param,
3977 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
3979 EXTERN S16 cmPkTfuUeMsg3RecpReq ARGS((
3980 TfuUeMsg3RecpReq *param,
3983 EXTERN S16 cmUnpkTfuUeMsg3RecpReq ARGS((
3984 TfuUeMsg3RecpReq *param,
3990 /*tfu_x_001.main_8 - ADD - Prototype for TfuUePuschRecpReq Pk/Unpk functions */
3991 EXTERN S16 cmPkTfuUePuschRecpReq ARGS((
3992 TfuUePuschRecpReq *param,
3995 EXTERN S16 cmUnpkTfuUePuschRecpReq ARGS((
3996 TfuUePuschRecpReq *param,
3999 EXTERN S16 cmPkTfuUePucchRecpReq ARGS((
4000 TfuUePucchRecpReq *param,
4003 EXTERN S16 cmUnpkTfuUePucchRecpReq ARGS((
4004 TfuUePucchRecpReq *param,
4008 EXTERN S16 cmPkTfuRecpReqInfo ARGS((
4009 TfuRecpReqInfo *param,
4012 EXTERN S16 cmUnpkTfuRecpReqInfo ARGS((
4013 TfuRecpReqInfo *param,
4017 EXTERN S16 cmPkTfuPdcchInfo ARGS((
4018 TfuPdcchInfo *param,
4021 EXTERN S16 cmUnpkTfuPdcchInfo ARGS((
4022 TfuPdcchInfo *param,
4025 EXTERN S16 cmPkTfuPhichInfo ARGS((
4026 TfuPhichInfo *param,
4029 EXTERN S16 cmUnpkTfuPhichInfo ARGS((
4030 TfuPhichInfo *param,
4033 EXTERN S16 cmPkTfuCntrlReqInfo ARGS((
4034 TfuCntrlReqInfo *param,
4037 EXTERN S16 cmUnpkTfuCntrlReqInfo ARGS((
4038 TfuCntrlReqInfo *param,
4042 EXTERN S16 cmPkTfuPdschDciInfo ARGS((
4043 TfuPdschDciInfo *param,
4046 EXTERN S16 cmUnpkTfuPdschDciInfo ARGS((
4047 TfuPdschDciInfo *param,
4050 EXTERN S16 cmPkTfuDatReqPduInfo ARGS((
4051 TfuDatReqPduInfo *param,
4054 EXTERN S16 cmUnpkTfuDatReqPduInfo ARGS((
4055 TfuDatReqPduInfo *param,
4058 EXTERN S16 cmPkTfuDatReqInfo ARGS((
4059 TfuDatReqInfo *param,
4062 EXTERN S16 cmUnpkTfuDatReqInfo ARGS((
4063 TfuDatReqInfo *param,
4067 EXTERN S16 cmPkTfuDatInfo ARGS((
4071 EXTERN S16 cmUnpkTfuDatInfo ARGS((
4075 EXTERN S16 cmPkTfuDatIndInfo ARGS((
4076 TfuDatIndInfo *param,
4079 EXTERN S16 cmUnpkTfuDatIndInfo ARGS((
4080 TfuDatIndInfo *param,
4084 EXTERN S16 cmPkTfuSrInfo ARGS((
4088 EXTERN S16 cmUnpkTfuSrInfo ARGS((
4092 EXTERN S16 cmPkTfuSrIndInfo ARGS((
4093 TfuSrIndInfo *param,
4096 EXTERN S16 cmUnpkTfuSrIndInfo ARGS((
4097 TfuSrIndInfo *param,
4101 EXTERN S16 cmPkTfuHqInfo ARGS((
4105 EXTERN S16 cmUnpkTfuHqInfo ARGS((
4109 EXTERN S16 cmPkTfuHqIndInfo ARGS((
4110 TfuHqIndInfo *param,
4113 EXTERN S16 cmUnpkTfuHqIndInfo ARGS((
4114 TfuHqIndInfo *param,
4118 EXTERN S16 cmPkTfuUlCqiInfo ARGS((
4119 TfuUlCqiInfo *param,
4122 EXTERN S16 cmUnpkTfuUlCqiInfo ARGS((
4123 TfuUlCqiInfo *param,
4126 EXTERN S16 cmPkTfuUlCqiRpt ARGS((
4130 EXTERN S16 cmUnpkTfuUlCqiRpt ARGS((
4134 EXTERN S16 cmPkTfuUlCqiIndInfo ARGS((
4135 TfuUlCqiIndInfo *param,
4138 EXTERN S16 cmUnpkTfuUlCqiIndInfo ARGS((
4139 TfuUlCqiIndInfo *param,
4143 EXTERN S16 cmPkTfuDlCqiRpt ARGS((
4147 EXTERN S16 cmUnpkTfuDlCqiRpt ARGS((
4151 EXTERN S16 cmPkTfuDlCqiIndInfo ARGS((
4152 TfuDlCqiIndInfo *param,
4155 EXTERN S16 cmUnpkTfuDlCqiIndInfo ARGS((
4156 TfuDlCqiIndInfo *param,
4160 EXTERN S16 cmPkTfuPucchDeltaPwr ARGS((
4163 TfuPucchDeltaPwrIndInfo * pucchDeltaPwr));
4165 EXTERN S16 cmPkTfuPucchDeltaPwrInfo ARGS((
4166 TfuPucchDeltaPwr *param,
4170 EXTERN S16 cmUnpkTfuPucchDeltaPwr ARGS((
4171 TfuPucchDeltaPwrInd func,
4175 EXTERN S16 cmUnpkTfuPucchDeltaPwrInfo ARGS((
4176 TfuPucchDeltaPwr *param,
4180 EXTERN S16 cmPkTfuCrcInfo ARGS((
4184 EXTERN S16 cmUnpkTfuCrcInfo ARGS((
4188 EXTERN S16 cmPkTfuCrcIndInfo ARGS((
4189 TfuCrcIndInfo *param,
4192 EXTERN S16 cmUnpkTfuCrcIndInfo ARGS((
4193 TfuCrcIndInfo *param,
4198 EXTERN S16 cmPkTfuPucchDeltaPwrIndInfo ARGS((
4199 TfuPucchDeltaPwrIndInfo *param,
4202 EXTERN S16 cmUnpkTfuPucchDeltaPwrIndInfo ARGS((
4203 TfuPucchDeltaPwrIndInfo *param,
4207 EXTERN S16 cmPkTfuTimingAdvInfo ARGS((
4208 TfuTimingAdvInfo *param,
4211 EXTERN S16 cmUnpkTfuTimingAdvInfo ARGS((
4212 TfuTimingAdvInfo *param,
4215 EXTERN S16 cmPkTfuTimingAdvIndInfo ARGS((
4216 TfuTimingAdvIndInfo *param,
4219 EXTERN S16 cmUnpkTfuTimingAdvIndInfo ARGS((
4220 TfuTimingAdvIndInfo *param,
4225 EXTERN S16 cmPkTfuTtiCellInfo ARGS((
4226 TfuTtiCellInfo *param,
4229 EXTERN S16 cmUnpkTfuTtiCellInfo ARGS((
4230 TfuTtiCellInfo *param,
4234 EXTERN S16 cmPkTfuTtiIndInfo ARGS((
4235 TfuTtiIndInfo *param,
4238 EXTERN S16 cmUnpackSlotIndInfo ARGS((
4242 EXTERN S16 cmPkTfuRaReqInfo ARGS((
4243 TfuRaReqInfo *param,
4246 EXTERN S16 cmUnpkTfuRaReqInfo ARGS((
4247 TfuRaReqInfo *param,
4250 EXTERN S16 cmPkTfuRachInfo ARGS((
4255 EXTERN S16 cmUnpkTfuRachInfo ARGS((
4260 EXTERN S16 cmPkTfuRaReqIndInfo ARGS((
4261 TfuRaReqIndInfo *param,
4264 EXTERN S16 cmUnpkTfuRaReqIndInfo ARGS((
4265 TfuRaReqIndInfo *param,
4268 EXTERN S16 cmPkBuffer ARGS((
4272 EXTERN S16 cmUnpkBuffer ARGS((
4277 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
4279 EXTERN S16 cmPkTfuSrsRpt ARGS((
4283 EXTERN S16 cmUnpkTfuSrsRpt ARGS((
4287 EXTERN S16 cmPkTfuSrsIndInfo ARGS((
4288 TfuSrsIndInfo *param,
4291 EXTERN S16 cmUnpkTfuSrsIndInfo ARGS((
4292 TfuSrsIndInfo *param,
4296 EXTERN S16 cmPkTfuRawCqiRpt ARGS((
4297 TfuRawCqiRpt *param,
4300 EXTERN S16 cmUnpkTfuRawCqiRpt ARGS((
4301 TfuRawCqiRpt *param,
4304 EXTERN S16 cmPkTfuRawCqiIndInfo ARGS((
4305 TfuRawCqiIndInfo *param,
4308 EXTERN S16 cmUnpkTfuRawCqiIndInfo ARGS((
4309 TfuRawCqiIndInfo *param,
4316 EXTERN S16 cmPkTfuUePucchHqRecpInfo ARGS((
4317 TfuUePucchHqRecpInfo *param,
4320 EXTERN S16 cmUnpkTfuUePucchHqRecpInfo ARGS((
4321 TfuUePucchHqRecpInfo *param,
4327 #ifndef TFU_TDD /* else of TFU_TDD */
4329 EXTERN S16 cmPkTfuUePucchHqRecpInfo ARGS((
4330 TfuUePucchHqRecpInfo *param,
4333 EXTERN S16 cmUnpkTfuUePucchHqRecpInfo ARGS((
4334 TfuUePucchHqRecpInfo *param,
4340 EXTERN S16 cmPkTfuUePucchSrRecpInfo ARGS((
4341 TfuUePucchSrRecpInfo *param,
4344 EXTERN S16 cmUnpkTfuUePucchSrRecpInfo ARGS((
4345 TfuUePucchSrRecpInfo *param,
4348 EXTERN S16 cmPkTfuUePucchCqiRecpInfo ARGS((
4349 TfuUePucchCqiRecpInfo *param,
4352 EXTERN S16 cmUnpkTfuUePucchCqiRecpInfo ARGS((
4353 TfuUePucchCqiRecpInfo *param,
4356 EXTERN S16 cmPkTfuUePucchSrsRecpInfo ARGS((
4357 TfuUePucchSrsRecpInfo *param,
4360 EXTERN S16 cmUnpkTfuUePucchSrsRecpInfo ARGS((
4361 TfuUePucchSrsRecpInfo *param,
4364 EXTERN S16 cmPkTfuUeUlSchRecpInfo ARGS((
4365 TfuUeUlSchRecpInfo *param,
4368 EXTERN S16 cmUnpkTfuUeUlSchRecpInfo ARGS((
4369 TfuUeUlSchRecpInfo *param,
4372 EXTERN S16 cmPkTfuUePuschCqiRecpInfo ARGS((
4373 TfuUePuschCqiRecpInfo *param,
4376 EXTERN S16 cmUnpkTfuUePuschCqiRecpInfo ARGS((
4377 TfuUePuschCqiRecpInfo *param,
4380 EXTERN S16 cmPkTfuUePuschHqRecpInfo ARGS((
4381 TfuUePuschHqRecpInfo *param,
4384 EXTERN S16 cmUnpkTfuUePuschHqRecpInfo ARGS((
4385 TfuUePuschHqRecpInfo *param,
4389 EXTERN S16 cmPkTfuBfVectorInfo ARGS ((
4390 TfuBfVectorInfo *param,
4394 EXTERN S16 cmUnpkTfuBfVectorInfo ARGS ((
4395 TfuBfVectorInfo *param,
4398 #endif /* TFU_UPGRADE */
4399 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
4400 EXTERN S16 cmPkTfuUeRecpReqInfo ARGS((
4401 TfuUeRecpReqInfo *param,
4404 EXTERN S16 cmUnpkTfuUeRecpReqInfo ARGS((
4405 TfuUeRecpReqInfo *param,
4409 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
4411 /** @brief This primitive is used to convey the Raw CQI information
4412 * transmitted by the UE.
4413 * @details Raw CQI report is the actual bits transmitted by the UE when
4414 * reporting CQI/PMI/RI. The interpretation of these bits to CQI/sub-band CQI
4415 * and so on, are done by MAC.
4417 * @param pst Pointer to the post structure.
4418 * @param suId SAP ID of the service user.
4419 * @param cqiInd Pointer to the TfuRawCqiIndInfo structure.
4420 * @return ROK/RFAILED
4422 EXTERN S16 cmPkTfuRawCqiInd ARGS((
4425 TfuRawCqiIndInfo * rawCqiInd
4427 /** @brief This primitive is used to convey the Raw CQI information
4428 * transmitted by the UE.
4429 * @details Raw CQI report is the actual bits transmitted by the UE when
4430 * reporting CQI/PMI/RI. The interpretation of these bits to CQI/sub-band CQI
4431 * an so on, are done by MAC.
4433 * @param pst Pointer to the post structure.
4434 * @param suId SAP ID of the service user.
4435 * @param cqiInd Pointer to the TfuRawCqiIndInfo structure.
4436 * @return ROK/RFAILED
4438 EXTERN S16 cmUnpkTfuRawCqiInd ARGS((
4443 /** @brief This primitive is used to convey the information derived by the
4444 * physical layer from the SRS transmission from the UE.
4445 * @details This primitive carries information derived from the SRS transmission
4448 * @param pst Pointer to the post structure.
4449 * @param suId SAP ID of the service user.
4450 * @param srsInd Pointer to the TfuSrIndInfo structure.
4451 * @return ROK/RFAILED
4453 EXTERN S16 cmPkTfuSrsInd ARGS((
4456 TfuSrsIndInfo * srsInd
4458 /** @brief This primitive is used to convey the information derived by the
4459 * physical layer from the SRS transmission from the UE.
4460 * @details This primitive carries information derived from the SRS transmission
4463 * @param pst Pointer to the post structure.
4464 * @param suId SAP ID of the service user.
4465 * @param srsInd Pointer to the TfuSrIndInfo structure.
4466 * @return ROK/RFAILED
4468 EXTERN S16 cmUnpkTfuSrsInd ARGS((
4475 /*tfu_x_001.main_6 - Added for SPS support*/
4477 EXTERN S16 cmPkTfuAllocMap ARGS((
4481 EXTERN S16 cmUnpkTfuAllocMap ARGS((
4486 EXTERN S16 cmPkTfuDciFormat6AAllocInfo ARGS((
4487 TfuDciFormat61AllocInfo *param,
4490 EXTERN S16 cmUnpkTfuDciFormat6AAllocInfo ARGS((
4491 TfuDciFormat61AllocInfo *param,
4494 EXTERN S16 cmUnpkTfuDciFormat61aInfo ARGS((
4495 TfuDciFormat61aInfo *param,
4498 EXTERN S16 cmUnpkTfuDciFormat62Info ARGS((
4499 TfuDciFormat62Info *param,
4503 EXTERN S16 cmUnpkTfudciformat61aPdsch ARGS((
4504 Tfudciformat61aPdsch *param,
4507 EXTERN S16 cmPkTfuDciFormat61aInfo ARGS((
4508 TfuDciFormat61aInfo *param,
4516 /* LTE_UNLICENSED */
4517 EXTERN S16 cmPkTfuErrInd ARGS((
4520 TfuErrIndInfo * errInd
4523 EXTERN S16 cmUnpkTfuErrInd ARGS((
4534 #endif /* __TFUX__ */
4536 /********************************************************************30**
4539 **********************************************************************/