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 S16 (*TfuBndReq) ARGS((
2516 typedef S16 (*TfuBndCfm) ARGS((
2520 typedef S16 (*TfuUbndReq) ARGS((
2525 typedef S16 (*TfuSchBndReq) ARGS((
2529 typedef S16 (*TfuSchBndCfm) ARGS((
2533 typedef S16 (*TfuSchUbndReq) ARGS((
2538 typedef S16 (*TfuRaReqInd) ARGS((
2541 TfuRaReqIndInfo *raReqInd));
2543 typedef S16 (*TfuRecpReq) ARGS((
2546 TfuRecpReqInfo *recpReq));
2548 typedef S16 (*TfuUlCqiInd) ARGS((
2551 TfuUlCqiIndInfo * ulCqiInd));
2553 typedef S16 (*TfuDoaInd) ARGS((
2556 TfuDoaIndInfo * doaInd));
2557 typedef S16 (*TfuHqInd) ARGS((
2560 TfuHqIndInfo * hqInd));
2562 typedef S16 (*TfuSrInd) ARGS((
2565 TfuSrIndInfo * srInd));
2567 typedef S16 (*TfuDlCqiInd) ARGS((
2570 TfuDlCqiIndInfo * dlCqiInd));
2571 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
2573 typedef S16 (*TfuRawCqiInd) ARGS((
2576 TfuRawCqiIndInfo *rawCqiInd));
2578 typedef S16 (*TfuSrsInd) ARGS((
2581 TfuSrsIndInfo *srsInd));
2582 #endif /* TFU_UPGRADE */
2584 typedef S16 (*TfuDatInd) ARGS((
2587 TfuDatIndInfo * datInd));
2589 typedef S16 (*TfuCrcInd) ARGS((
2592 TfuCrcIndInfo * crcInd));
2594 typedef S16 (*TfuTimingAdvInd) ARGS((
2597 TfuTimingAdvIndInfo * timingAdvInd));
2599 typedef S16 (*TfuDatReq) ARGS((
2602 TfuDatReqInfo * datReq));
2605 typedef S16 (*TfuDelDatReq) ARGS((
2608 TfuDelDatReqInfo * datReq));
2611 typedef S16 (*TfuCntrlReq) ARGS((
2614 TfuCntrlReqInfo *cntrlReq));
2616 typedef S16 (*TfuTtiCell) ARGS((
2619 TfuTtiCellInfo * ttiInd));
2621 typedef S16 (*TfuTtiInd) ARGS((
2623 SlotIndInfo * slotInd));
2625 #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
2626 typedef S16 (*TfuNonRtInd) ARGS((
2631 typedef S16 (*TfuSchTtiInd) ARGS((
2634 SlotIndInfo* slotInd));
2636 typedef S16 (*TfuPucchDeltaPwrInd) ARGS((
2639 TfuPucchDeltaPwrIndInfo * pucchDeltaPwr));
2641 /*LAA: Error Indication on LAA SCell*/
2642 typedef S16 (*TfuErrInd) ARGS((
2645 TfuErrIndInfo * errInd));
2647 /** @brief This API is used to send a Bind Request from MAC to PHY.
2648 * @param pst Pointer to the post structure.
2649 * @param suId SAP ID of the service user.
2650 * @param spId SAP ID of the service provider.
2651 * @return ROK/RFAILED
2653 EXTERN S16 TfUiTfuBndReq ARGS((Pst *pst, SuId suId, SpId spId));
2655 /** @brief This API is used to send a Bind Request from Scheduler to PHY.
2656 * @param pst Pointer to the post structure.
2657 * @param suId SAP ID of the service user.
2658 * @param spId SAP ID of the service provider.
2659 * @return ROK/RFAILED
2661 EXTERN S16 TfUiTfuSchBndReq ARGS((Pst *pst, SuId suId, SpId spId));
2664 /** @brief This API is used to receive a Bind Confirm from PHY to MAC.
2665 * @param pst Pointer to the post structure.
2666 * @param suId SAP ID of the service user.
2667 * @param status Status of the bind request.
2668 * @return ROK/RFAILED
2670 EXTERN S16 TfUiTfuBndCfm ARGS((Pst *pst, SuId suId, U8 status));
2672 /** @brief This API is used to receive a Bind Confirm from PHY to Scheduler.
2673 * @param pst Pointer to the post structure.
2674 * @param suId SAP ID of the service user.
2675 * @param status Status of the bind request.
2676 * @return ROK/RFAILED
2678 EXTERN S16 TfUiTfuSchBndCfm ARGS((Pst *pst, SuId suId, U8 status));
2681 /** @brief This API is used to send an Unbind Request from MAC to PHY.
2682 * @param pst Pointer to the post structure.
2683 * @param spId SAP ID of the service provider.
2684 * @param reason Reason for Unbind request.
2685 * @return ROK/RFAILED
2687 EXTERN S16 TfUiTfuUbndReq ARGS((Pst *pst, SpId spId, Reason reason));
2689 /** @brief This API is used to send an Unbind Request from Scheduler to PHY.
2690 * @param pst Pointer to the post structure.
2691 * @param spId SAP ID of the service provider.
2692 * @param reason Reason for Unbind request.
2693 * @return ROK/RFAILED
2695 EXTERN S16 TfUiTfuSchUbndReq ARGS((Pst *pst, SpId spId, Reason reason));
2698 /** @brief This API is used to indication Random Access Request reception from
2700 * @details This primitive is used by physical layer to indicate the reception
2701 * of a Random Access Request from a set of UEs. The information passed consists
2702 * of the RA-RNTI and the list of preambles received.
2703 * @param pst Pointer to the post structure.
2704 * @param suId SAP ID of the service user.
2705 * @param raReqInd Pointer to the TfuRaReqIndInfo structure.
2706 * @return ROK/RFAILED
2708 EXTERN S16 TfUiTfuRaReqInd ARGS((Pst *pst, SuId suId, TfuRaReqIndInfo
2712 /** @brief This primitive is sent from Scheduler to PHY.
2713 * @details This primitive provides PHY with all the information required by
2714 * PHY to decode transmissions from the UE on either PUCCH or PUSCH.
2715 * -# On PUCCH, UE can transmit the following:
2721 * -# On PUSCH, UE can transmit the following:
2724 * -# Data + HARQ Feedback
2725 * This primitive carries all the information for the expected subframe for all
2726 * the UEs that are scheduled to transmit.
2727 * @param pst Pointer to the post structure.
2728 * @param spId SAP ID of the service provider.
2729 * @param recpReq Pointer to the TfuRecpReqInfo structure.
2730 * @return ROK/RFAILED
2732 EXTERN S16 TfUiTfuRecpReq ARGS((Pst *pst, SpId spId, TfuRecpReqInfo *recpReq));
2734 /** @brief This primitive is sent from Scheduler to PHY. It provides PHY with
2735 * all the control information.
2736 * @details This primitive carries the information sent on the following
2744 * @param cntrlReq pointer to TfuCntrlReqInfo
2745 * @return ROK/RFAILED
2747 EXTERN S16 TfUiTfuCntrlReq ARGS((Pst *pst, SpId spId, TfuCntrlReqInfo *cntrlReq));
2749 /** @brief This primitive carries the Data PDUs from MAC to PHY for transmission.
2750 * @details The data being sent in this primitive is meant to be transmitted on
2751 * the downlink channel PDSCH and PBCH (if present). To facilitate physical
2752 * layer processing, requisite control information is also sent along with the
2754 * @sa TfUiTfuCntrlReq
2757 * @param datReq pointer to TfuDatReqInfo
2760 EXTERN S16 TfUiTfuDatReq ARGS((Pst *pst, SpId spId, TfuDatReqInfo *datReq));
2763 /** @brief This primitive carries the cellId and UeId for which datReq need to
2765 * @details This primitive is used to delete datReq PDUs present in CL for
2766 * which got changed or similar other scenarios. These scenarios are possible
2767 * only when L2_OPTMZ flag is enabled.
2768 * @sa TfUiTfuDelDatReq
2771 * @param datReq pointer to TfuDelDatReqInfo
2775 EXTERN S16 TfUiTfuDelDatReq ARGS((Pst *pst, SpId spId, TfuDelDatReqInfo *datReq));
2778 /** @brief This Primitive carries the Data PDUs from PHY to MAC.
2779 * @details The Uplink Data, that is, the data transmitted by the UEs received by the
2780 * physical layer at the eNodeB in the subframe (indicated by the timingInfo),
2781 * is relayed to MAC using this primitive.
2784 * @param datInd pointer to TfuDatIndInfo
2787 EXTERN S16 TfUiTfuDatInd ARGS((Pst *pst, SuId suId, TfuDatIndInfo *datInd));
2789 /** @brief This primitive carries the HARQ Feedback from PHY to Scheduler.
2790 * @details HARQ feedback is sent by the UE to the eNodeB, an ACK is sent if UE
2791 * can successfully recieve the data transmitted by the eNodeB, else a NACK is
2792 * sent. This feedback is utilized by MAC for further scheduling, for instance
2793 * it can schedule an adaptive retransmission of the same data.
2796 * @param hqInd pointer to TfuHqIndInfo
2799 EXTERN S16 TfUiTfuHqInd ARGS((Pst *pst, SuId suId, TfuHqIndInfo *hqInd));
2801 /** @brief This primitive carries the SR Indication from PHY to Scheduler.
2802 * @details Scheduling Request (SR) is sent by the UE to the eNodeB to request
2803 * for Uplink (UL) grant. This primitive carries a list of SRs for a number of
2804 * UEs received in the indicated subframe.
2807 * @param srInd pointer to TfuSrIndInfo
2810 EXTERN S16 TfUiTfuSrInd ARGS((Pst *pst, SuId suId, TfuSrIndInfo *srInd));
2812 /** @brief This API is used to indicate CQI reporting from PHY to Scheduler.
2813 * @details This primitive carries an estimate of the Uplink Channel Quality
2814 * Index (CQI) for a list of UEs. This is an estimate of the uplink channel
2815 * quality, that is, the transmission from UE as calculated at the Physical layer at
2817 * It carries a list of sub-band CQIs for each UE.
2818 * @param pst Pointer to the post structure.
2819 * @param suId SAP ID of the service user.
2820 * @param ulCqiInd Pointer to the TfuUlCqiIndInfo structure.
2821 * @return ROK/RFAILED
2823 EXTERN S16 TfUiTfuUlCqiInd ARGS((Pst *pst, SuId suId,
2824 TfuUlCqiIndInfo *ulCqiInd));
2826 /** @brief This API is used by the Physical layer to indicate if the CRC Check
2827 * on the PUSCH Data is successful or not.
2828 * @details This primitive carries CRC indication for a list of UEs. This
2829 * is utilized in the scenario where MAC requested the reception of Uplink data
2830 * for a particular UE. On reception of the PUSCH data, the CRC check on it
2831 * failed. This CRC failure is indicated to MAC, which utillizes this
2832 * information for further scheduling.
2833 * Physical layer indicates failure or success for each PUSCH transmission.
2834 * @param pst Pointer to the post structure.
2835 * @param suId SAP ID of the service user.
2836 * @param crcIndInfo Pointer to the TfuCrcIndInfo.
2837 * @return ROK/RFAILED
2839 EXTERN S16 TfUiTfuCrcInd ARGS((Pst *pst, SuId suId,
2840 TfuCrcIndInfo *crcIndInfo));
2842 /** @brief This API is used to indicate a Timing Advance from PHY to Scheduler.
2843 * @details This primitive carries timing advance information for a number of
2844 * UEs that may need timing advance. Timing advance information is an estimate
2845 * of the timing adjustment that an UE needs to apply in order to be
2846 * synchronized in Uplink. This estimate is to be calculated by physical layer.
2847 * @param pst Pointer to the post structure.
2848 * @param suId SAP ID of the service user.
2849 * @param timingAdvInd Pointer to the TfuTimingAdvIndInfo structure.
2850 * @return ROK/RFAILED
2852 EXTERN S16 TfUiTfuTimingAdvInd ARGS((Pst *pst, SuId suId,
2853 TfuTimingAdvIndInfo *timingAdvInd));
2856 /** @brief This API is the TTI indication from CL to MAC and SCH
2857 * @details This primitive provides the timing information (SFN and subframe)
2858 * which is currently running on the physical layer.
2859 * @param pst Pointer to the post structure.
2860 * @param suId SAP ID of the service user.
2861 * @param ttiInd Pointer to the TfuTtiCellInfo structure.
2862 * @return ROK/RFAILED
2864 EXTERN S16 TfUiTfuTtiCell ARGS((Pst *pst, SuId suId,
2865 TfuTtiCellInfo *ttiInd));
2868 /** @brief This API is the TTI indication from CL to MAC and SCH
2869 * @details This primitive provides the timing information (SFN and subframe)
2870 * which is currently running on the physical layer.
2871 * @param pst Pointer to the post structure.
2872 * @param suId SAP ID of the service user.
2873 * @param ttiInd Pointer to the TfuTtiIndInfo structure.
2874 * @return ROK/RFAILED
2876 EXTERN S16 TfUiTfuTtiInd ARGS((Pst *pst, SuId suId,
2877 TfuTtiIndInfo *ttiInd));
2879 /** @brief This API is the TTI indication from PHY to Scheduler.
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 TfuTtiIndInfo structure.
2885 * @return ROK/RFAILED
2887 EXTERN S16 TfUiTfuSchTtiInd ARGS((Pst *pst, SuId suId,
2888 TfuTtiIndInfo *ttiInd));
2891 /** @brief This API is used to indicate the reception of CQI report from PHY to
2892 * Scheduler and also carries the Rank Index information.
2893 * @details This primitive carries the CQI (Channel Quality Index) report
2894 * for the downlink channel, sent by the UE. It is also used to report RI and
2896 * @param pst Pointer to the post structure.
2897 * @param suId SAP ID of the service user.
2898 * @param dlCqiInd Pointer to the TfuDlCqiIndInfo structure.
2899 * @return ROK/RFAILED
2901 EXTERN S16 TfUiTfuDlCqiInd ARGS((Pst *pst, SuId suId,
2902 TfuDlCqiIndInfo *dlCqiInd));
2903 /** @brief This API is used to indicate the calculated DOA value report from PHY to
2905 * @details This primitive carries the DOA(Direction of arrival) report
2906 * calculated at PHYSICAL LAYER, for an UE.
2907 * @param pst Pointer to the post structure.
2908 * @param suId SAP ID of the service user.
2909 * @param doaInd Pointer to the TfuDoaIndInfo structure.
2910 * @return ROK/RFAILED
2912 EXTERN S16 TfUiTfuDoaInd ARGS((Pst *pst, SuId suId,
2913 TfuDoaIndInfo *doaInd));
2916 /** @brief This primitive is used to convey PUCCH Delta Power calculated by the
2918 * @details This primitive is used to convey PUCCH Delta Power calculated by the
2919 * Physical layer. This information is utilized by the scheduler to perform
2920 * power control for the UEs.
2921 * @param pst Pointer to the post structure.
2922 * @param suId SAP ID of the service user.
2923 * @param pucchDeltaPwr Pointer to the TfuPucchDeltaPwrIndInfo structure.
2924 * @return ROK/RFAILED
2926 EXTERN S16 TfUiTfuPucchDeltaPwrInd ARGS((Pst *pst, SuId suId,
2927 TfuPucchDeltaPwrIndInfo *pucchDeltaPwr));
2929 /** @brief LAA:This primitive carries the Error Indication from PHY to Scheduler.
2930 * This primitive is invoked when the transmission on the unlicensed Scell
2934 * @param errInd pointer to TfuErrIndInfo
2938 EXTERN S16 TfUiTfuErrInd ARGS((Pst *pst, SuId suId,
2939 TfuErrIndInfo *errInd));
2940 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
2943 /** @brief This primitive is used to convey the information derived by the
2944 * physical layer from the SRS transmission from the UE.
2945 * @details This primitive carries information derived from the SRS transmission
2948 * @param pst Pointer to the post structure.
2949 * @param suId SAP ID of the service user.
2950 * @param srsInd Pointer to the TfuSrIndInfo structure.
2951 * @return ROK/RFAILED
2953 EXTERN S16 TfUiTfuSrsInd ARGS((Pst *pst, SuId suId,
2954 TfuSrsIndInfo *srsInd));
2957 /** @brief This primitive is used to convey the Raw CQI information
2958 * transmitted by the UE.
2959 * @details Raw CQI report is the actual bits transmitted by the UE when
2960 * reporting CQI/PMI/RI. The interpretation of these bits to CQI/sub-band CQI
2961 * and so on, are done by MAC.
2963 * @param pst Pointer to the post structure.
2964 * @param suId SAP ID of the service user.
2965 * @param cqiInd Pointer to the TfuRawCqiIndInfo structure.
2966 * @return ROK/RFAILED
2968 EXTERN S16 TfUiTfuRawCqiInd ARGS((Pst *pst, SuId suId,
2969 TfuRawCqiIndInfo *cqiInd));
2971 #endif /* TFU_UPGRADE */
2974 EXTERN S16 RgLiTfuBndReq ARGS((
2979 EXTERN S16 RgLiTfuBndCfm ARGS((
2984 EXTERN S16 RgLiTfuUbndReq ARGS((
2990 EXTERN S16 RgLiTfuSchBndReq ARGS((
2995 EXTERN S16 RgLiTfuSchBndCfm ARGS((
3000 EXTERN S16 RgLiTfuSchUbndReq ARGS((
3006 EXTERN S16 RgLiTfuRaReqInd ARGS((
3009 TfuRaReqIndInfo * raReq
3013 EXTERN S16 RgLiTfuRecpReq ARGS((
3016 TfuRecpReqInfo * recpReq
3019 EXTERN S16 RgLiTfuUlCqiInd ARGS((
3022 TfuUlCqiIndInfo * ulCqiInd
3025 EXTERN S16 RgLiTfuDoaInd ARGS((
3028 TfuDoaIndInfo * doaInd
3031 EXTERN S16 RgLiTfuHqInd ARGS((
3034 TfuHqIndInfo * hqInd
3037 EXTERN S16 RgLiTfuSrInd ARGS((
3040 TfuSrIndInfo * srInd
3043 EXTERN S16 RgLiTfuDlCqiInd ARGS((
3046 TfuDlCqiIndInfo * dlCqiInd
3049 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
3051 EXTERN S16 RgLiTfuRawCqiInd ARGS((
3054 TfuRawCqiIndInfo *rawCqiInd
3056 EXTERN S16 RgLiTfuSrsInd ARGS((
3059 TfuSrsIndInfo *srsIndInfo
3062 EXTERN S16 RgLiTfuDatInd ARGS((
3065 TfuDatIndInfo * datInd
3068 EXTERN S16 fapiMacSlotInd
3071 SlotIndInfo *slotInd
3074 EXTERN S16 RgLiTfuCrcInd ARGS((
3077 TfuCrcIndInfo * crcInd
3080 EXTERN S16 RgLiTfuTimingAdvInd ARGS((
3083 TfuTimingAdvIndInfo * timingAdvInd
3086 EXTERN S16 RgLiTfuDatReq ARGS((
3089 TfuDatReqInfo * datReq
3092 EXTERN S16 RgLiTfuCntrlReq ARGS((
3095 TfuCntrlReqInfo * cntrlReq
3098 EXTERN S16 RgLiTfuTtiInd ARGS((
3101 TfuTtiIndInfo * ttiInd
3104 EXTERN int macSchSlotInd ARGS((
3106 SlotIndInfo * slotInd
3109 #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
3110 EXTERN S16 RgLiTfuNonRtInd ARGS((
3116 EXTERN S16 RgLiTfuPucchDeltaPwrInd ARGS((
3119 TfuPucchDeltaPwrIndInfo *pucchDeltaPwr
3123 /** @brief LAA:This primitive carries the Error Indication from PHY to Scheduler.
3124 * This primitive is invoked when the transmission on the unlicensed Scell
3128 * @param errInd pointer to TfuErrIndInfo
3131 EXTERN S16 RgLiTfuErrInd ARGS((Pst *pst, SuId suId, TfuErrIndInfo *errInd));
3134 /** @brief This primitive carries the cellId and UeId for which datReq need to
3136 * @details This primitive is used to delete datReq PDUs present in CL for
3137 * which got changed or similar other scenarios. These scenarios are possible
3138 * only when L2_OPTMZ flag is enabled.
3139 * @sa TfUiTfuDelDatReq
3142 * @param datReq pointer to TfuDelDatReqInfo
3145 EXTERN S16 RgLiTfuDelDatReq ARGS((Pst *pst, SuId suId, TfuDelDatReqInfo *delDatReq));
3148 #if (defined(LCTFU))
3149 /** @brief This API is used to send a Bind Request from MAC to PHY.
3152 EXTERN S16 cmPkTfuRbAssignA1Val324 ARGS((
3153 TfuRbAssignA1Val324 *param,
3156 EXTERN S16 cmPkTfuRbAssignB1Val324 ARGS((
3157 TfuRbAssignB1Val324 *param,
3160 EXTERN S16 cmPkTfuRbAssignVal326 ARGS((
3161 TfuRbAssignVal326 *param,
3164 EXTERN S16 cmUnpkTfuRbAssignA1Val324 ARGS((
3165 TfuRbAssignA1Val324 *param,
3168 EXTERN S16 cmUnpkTfuRbAssignB1Val324 ARGS((
3169 TfuRbAssignB1Val324 *param,
3172 EXTERN S16 cmUnpkTfuRbAssignVal326 ARGS((
3173 TfuRbAssignVal326 *param,
3176 EXTERN S16 cmPkTfuDciFormatA1A2Info ARGS((
3177 TfuDciFormatA1Info *param,
3180 EXTERN S16 cmPkTfuDciFormatB1B2Info ARGS((
3181 TfuDciFormatB1Info *param,
3184 EXTERN S16 cmUnpkTfuDciFormatA1A2Info ARGS((
3185 TfuDciFormatA1Info *param,
3188 EXTERN S16 cmUnpkTfuDciFormatB1B2Info ARGS((
3189 TfuDciFormatB1Info *param,
3192 #endif /* TFU_5GTF */
3194 EXTERN S16 cmPkTfuBndReq ARGS((
3199 /** @brief This API is used to send a Bind Request from MAC to PHY.
3201 EXTERN S16 cmUnpkTfuBndReq ARGS((
3206 /** @brief This API is used to receive a Bind Confirm from PHY to MAC.
3208 EXTERN S16 cmPkTfuBndCfm ARGS((
3213 /** @brief This API is used to receive a Bind Confirm from PHY to MAC.
3215 EXTERN S16 cmUnpkTfuBndCfm ARGS((
3220 /** @brief This API is used to send an Unbind Request from MAC to PHY.
3222 EXTERN S16 cmPkTfuUbndReq ARGS((
3227 /** @brief This API is used to send an Unbind Request from MAC to PHY.
3229 EXTERN S16 cmUnpkTfuUbndReq ARGS((
3234 /** @brief This API is used to send a Bind Request from SCH to PHY.
3236 EXTERN S16 cmPkTfuSchBndReq ARGS((
3241 /** @brief This API is used to send a Bind Request from SCH to PHY.
3243 EXTERN S16 cmUnpkTfuSchBndReq ARGS((
3248 /** @brief This API is used to receive a Bind Confirm from PHY to SCH.
3250 EXTERN S16 cmPkTfuSchBndCfm ARGS((
3255 /** @brief This API is used to receive a Bind Confirm from PHY to SCH.
3257 EXTERN S16 cmUnpkTfuSchBndCfm ARGS((
3262 /** @brief This API is used to send an Unbind Request from SCH to PHY.
3264 EXTERN S16 cmPkTfuSchUbndReq ARGS((
3269 /** @brief This API is used to send an Unbind Request from SCH to PHY.
3271 EXTERN S16 cmUnpkTfuSchUbndReq ARGS((
3276 /** @brief This API is used to indication Random Access Request reception from
3279 EXTERN S16 cmPkTfuRaReqInd ARGS((
3282 TfuRaReqIndInfo * raReqInd
3284 /** @brief This API is used to indication Random Access Request reception from
3287 EXTERN S16 cmUnpkTfuRaReqInd ARGS((
3292 /** @brief This API is used to indication Random Access Request reception from
3295 EXTERN S16 cmPkTfuRecpReq ARGS((
3298 TfuRecpReqInfo * recpReq
3300 /** @brief This API is used to indication Random Access Request reception from
3303 EXTERN S16 cmUnpkTfuRecpReq ARGS((
3308 /** @brief This API is used to indicate CQI reporting from PHY to MAC.
3310 EXTERN S16 cmPkTfuUlCqiInd ARGS((
3313 TfuUlCqiIndInfo * ulCqiInd
3315 /** @brief This API is used to indicate CQI reporting from PHY to MAC.
3317 EXTERN S16 cmUnpkTfuUlCqiInd ARGS((
3323 EXTERN S16 cmPkTfuHqInd ARGS((
3326 TfuHqIndInfo * hqInd
3329 EXTERN S16 cmUnpkTfuHqInd ARGS((
3334 /** @brief This API is used to indicate a SR reception from PHY to MAC.
3336 EXTERN S16 cmPkTfuSrInd ARGS((
3339 TfuSrIndInfo * srInd
3341 /** @brief This API is used to indicate a SR reception from PHY to MAC.
3343 EXTERN S16 cmUnpkTfuSrInd ARGS((
3348 /** @brief This API is used to indicate the reception of CQI report from PHY to
3351 EXTERN S16 cmPkTfuDlCqiInd ARGS((
3354 TfuDlCqiIndInfo * dlCqiInd
3356 /** @brief This API is used to indicate the reception of CQI report from PHY to
3359 EXTERN S16 cmUnpkTfuDlCqiInd ARGS((
3365 /** @brief This API is used to indicate the Calculated DOA value report from PHY to
3367 EXTERN S16 cmUnpkTfuDoaInd ARGS((
3372 /** @brief This API is used to indicate the calculated DOA Value report from PHY to
3375 EXTERN S16 cmPkTfuDoaInd ARGS((
3378 TfuDoaIndInfo * doaInd
3381 /** @brief This API is used to indicate Data Reception from PHY to MAC.
3383 EXTERN S16 cmPkTfuDatInd ARGS((
3386 TfuDatIndInfo * datInd
3388 /** @brief This API is used to indicate Data Reception from PHY to MAC.
3390 EXTERN S16 cmUnpkTfuDatInd ARGS((
3395 /** @brief This API is used to indicate Decode failure from PHY to MAC.
3397 EXTERN S16 cmPkTfuCrcInd ARGS((
3400 TfuCrcIndInfo * crcInd
3402 /** @brief This API is used to indicate Decode failure from PHY to MAC.
3404 EXTERN S16 cmUnpkTfuCrcInd ARGS((
3410 EXTERN S16 cmPkTfuCntrlReq ARGS((
3413 TfuCntrlReqInfo * cntrlReq
3416 EXTERN S16 cmUnpkTfuCntrlReq ARGS((
3421 /** @brief This API is used to indicate a Timing Advance from PHY to MAC.
3423 EXTERN S16 cmPkTfuTimingAdvInd ARGS((
3426 TfuTimingAdvIndInfo * timingAdvInd
3428 /** @brief This API is used to indicate a Timing Advance from PHY to MAC.
3430 EXTERN S16 cmUnpkTfuTimingAdvInd ARGS((
3431 TfuTimingAdvInd func,
3435 /** @brief This API is used to send Data Request from MAC to PHY.
3437 EXTERN S16 cmPkTfuDatReq ARGS((
3440 TfuDatReqInfo * datReq
3442 /** @brief This API is used to send Data Request from MAC to PHY.
3444 EXTERN S16 cmUnpkTfuDatReq ARGS((
3450 /** @brief This API is the TTI indication from CL to MAC and SCH.
3452 EXTERN S16 cmPkTfuTtiCell ARGS((
3455 TfuTtiCellInfo * ttiInd
3457 /** @brief This API is the TTI indication from CL to MAC and SCH.
3459 EXTERN S16 cmUnpkTfuTtiCell ARGS((
3466 /** @brief This API is the TTI indication from PHY to MAC.
3468 EXTERN S16 cmPkTfuTtiInd ARGS((
3471 TfuTtiIndInfo * ttiInd
3473 /** @brief This API is the TTI indication from PHY to MAC.
3475 EXTERN S16 cmUnpackSlotInd ARGS((
3481 typedef int (*MacSchSlotIndFunc) ARGS((
3482 Pst *pst, /* Post Structure */
3483 SlotIndInfo *slotInd /* slot ind Info */
3486 #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
3487 /** @brief This API is the non-rt indication from PHY to MAC.
3489 EXTERN S16 cmPkTfuNonRtInd ARGS((
3494 /** @brief This API is the non-rt indication from PHY to MAC.
3496 EXTERN S16 cmUnpkTfuNonRtInd ARGS((
3503 /** @brief This API is the TTI indication from PHY to SCH.
3505 EXTERN S16 cmPkTfuSchTtiInd ARGS((
3508 TfuTtiIndInfo * ttiInd
3510 /** @brief This API is the TTI indication from PHY to SCH.
3512 EXTERN S16 cmUnpackMacSchSlotInd ARGS((
3513 MacSchSlotIndFunc func,
3518 /** @brief This API is used to convey the PUCCH delta power from PHY to SCH.
3520 EXTERN S16 cmPkTfuPucchDeltaPwrInd ARGS((
3523 TfuPucchDeltaPwrIndInfo * pucchDeltaPwr
3525 /** @brief This API is used to indicate Decode failure from PHY to MAC.
3527 EXTERN S16 cmUnpkTfuPucchDeltaPwrInd ARGS((
3528 TfuPucchDeltaPwrInd func,
3535 /** @brief This API is used to send Group Power Control Request from MAC to PHY.
3537 EXTERN S16 cmPkTfuGrpPwrCntrlReq ARGS((
3540 TfuGrpPwrCntrlReqInfo * grpPwrCntrlReq
3542 /** @brief This API is used to send Group Power Control Request from MAC to PHY.
3544 EXTERN S16 cmUnpkTfuGrpPwrCntrlReq ARGS((
3545 TfuGrpPwrCntrlReq func,
3550 EXTERN S16 cmPkTfuDciFormat0Info ARGS((
3551 TfuDciFormat0Info *param,
3554 EXTERN S16 cmUnpkTfuDciFormat0Info ARGS((
3555 TfuDciFormat0Info *param,
3558 EXTERN S16 cmPkTfuAllocMapOrRiv ARGS((
3559 TfuAllocMapOrRiv *param,
3562 EXTERN S16 cmUnpkTfuAllocMapOrRiv ARGS((
3563 TfuAllocMapOrRiv *param,
3566 EXTERN S16 cmPkTfuDciFormat1AllocInfo ARGS((
3567 TfuDciFormat1AllocInfo *param,
3570 EXTERN S16 cmUnpkTfuDciFormat1AllocInfo ARGS((
3571 TfuDciFormat1AllocInfo *param,
3574 EXTERN S16 cmPkTfuDciFormat1Info ARGS((
3575 TfuDciFormat1Info *param,
3578 EXTERN S16 cmUnpkTfuDciFormat1Info ARGS((
3579 TfuDciFormat1Info *param,
3583 EXTERN S16 cmPkTfuDciFormatTbInfo ARGS((
3584 TfuDciFormatTbInfo *param,
3587 EXTERN S16 cmUnpkTfuDciFormatTbInfo ARGS((
3588 TfuDciFormatTbInfo *param,
3592 EXTERN S16 cmPkTfuDciFormat2AAllocInfo ARGS((
3593 TfuDciFormat2AAllocInfo *param,
3596 EXTERN S16 cmUnpkTfuDciFormat2AAllocInfo ARGS((
3597 TfuDciFormat2AAllocInfo *param,
3600 EXTERN S16 cmPkTfuDciFormat2AInfo ARGS((
3601 TfuDciFormat2AInfo *param,
3604 EXTERN S16 cmUnpkTfuDciFormat2AInfo ARGS((
3605 TfuDciFormat2AInfo *param,
3608 EXTERN S16 cmPkTfuDciFormat2AllocInfo ARGS((
3609 TfuDciFormat2AllocInfo *param,
3612 EXTERN S16 cmUnpkTfuDciFormat2AllocInfo ARGS((
3613 TfuDciFormat2AllocInfo *param,
3616 EXTERN S16 cmPkTfuDciFormat2Info ARGS((
3617 TfuDciFormat2Info *param,
3620 EXTERN S16 cmUnpkTfuDciFormat2Info ARGS((
3621 TfuDciFormat2Info *param,
3624 EXTERN S16 cmPkTfuDciFormat3Info ARGS((
3625 TfuDciFormat3Info *param,
3628 EXTERN S16 cmUnpkTfuDciFormat3Info ARGS((
3629 TfuDciFormat3Info *param,
3632 EXTERN S16 cmPkTfuDciFormat3AInfo ARGS((
3633 TfuDciFormat3AInfo *param,
3636 EXTERN S16 cmUnpkTfuDciFormat3AInfo ARGS((
3637 TfuDciFormat3AInfo *param,
3640 EXTERN S16 cmPkTfuDciFormat1dAllocInfo ARGS((
3641 TfuDciFormat1dAllocInfo *param,
3644 EXTERN S16 cmUnpkTfuDciFormat1dAllocInfo ARGS((
3645 TfuDciFormat1dAllocInfo *param,
3648 EXTERN S16 cmPkTfuDciFormat1dInfo ARGS((
3649 TfuDciFormat1dInfo *param,
3652 EXTERN S16 cmUnpkTfuDciFormat1dInfo ARGS((
3653 TfuDciFormat1dInfo *param,
3656 EXTERN S16 cmPkTfuDciFormat1cInfo ARGS((
3657 TfuDciFormat1cInfo *param,
3660 EXTERN S16 cmUnpkTfuDciFormat1cInfo ARGS((
3661 TfuDciFormat1cInfo *param,
3664 EXTERN S16 cmPkTfuDciFormat1bAllocInfo ARGS((
3665 TfuDciFormat1bAllocInfo *param,
3668 EXTERN S16 cmUnpkTfuDciFormat1bAllocInfo ARGS((
3669 TfuDciFormat1bAllocInfo *param,
3672 EXTERN S16 cmPkTfuPdcchOrderInfo ARGS((
3673 TfuPdcchOrderInfo *param,
3676 EXTERN S16 cmUnpkTfuPdcchOrderInfo ARGS((
3677 TfuPdcchOrderInfo *param,
3680 EXTERN S16 cmPkTfuDciFormat1aAllocInfo ARGS((
3681 TfuDciFormat1aAllocInfo *param,
3684 EXTERN S16 cmUnpkTfuDciFormat1aAllocInfo ARGS((
3685 TfuDciFormat1aAllocInfo *param,
3688 /*tfu_x_001.main_6 - Added for SPS support*/
3689 EXTERN S16 cmPkTfudciformat1aPdsch ARGS((
3690 Tfudciformat1aPdsch *param,
3693 EXTERN S16 cmUnpkTfudciformat1aPdsch ARGS((
3694 Tfudciformat1aPdsch *param,
3697 EXTERN S16 cmPkTfuDciFormat1aInfo ARGS((
3698 TfuDciFormat1aInfo *param,
3701 EXTERN S16 cmUnpkTfuDciFormat1aInfo ARGS((
3702 TfuDciFormat1aInfo *param,
3705 EXTERN S16 cmPkTfuDciFormat1bInfo ARGS((
3706 TfuDciFormat1bInfo *param,
3709 EXTERN S16 cmUnpkTfuDciFormat1bInfo ARGS((
3710 TfuDciFormat1bInfo *param,
3713 EXTERN S16 cmPkTfuDciInfo ARGS((
3717 EXTERN S16 cmUnpkTfuDciInfo ARGS((
3721 EXTERN S16 cmPkTfuSubbandInfo ARGS((
3722 TfuSubbandInfo *param,
3725 EXTERN S16 cmUnpkTfuSubbandInfo ARGS((
3726 TfuSubbandInfo *param,
3729 EXTERN S16 cmPkTfuSubbandDlCqiInfo ARGS((
3730 TfuSubbandDlCqiInfo *param,
3733 EXTERN S16 cmUnpkTfuSubbandDlCqiInfo ARGS((
3734 TfuSubbandDlCqiInfo *param,
3738 EXTERN S16 cmPkTfuSubbandCqiInfo ARGS((
3739 TfuSubbandCqiInfo *param,
3742 EXTERN S16 cmUnpkTfuSubbandCqiInfo ARGS((
3743 TfuSubbandCqiInfo *param,
3746 EXTERN S16 cmPkTfuPdcchCceInfo ARGS((
3747 TfuPdcchCceInfo *param,
3750 EXTERN S16 cmUnpkTfuPdcchCceInfo ARGS((
3751 TfuPdcchCceInfo *param,
3754 EXTERN S16 cmPkTfuCqiPucchMode10 ARGS((
3755 TfuCqiPucchMode10 *param,
3758 EXTERN S16 cmUnpkTfuCqiPucchMode10 ARGS((
3759 TfuCqiPucchMode10 *param,
3762 EXTERN S16 cmPkTfuCqiMode11Cqi ARGS((
3763 TfuCqiMode11Cqi *param,
3766 EXTERN S16 cmUnpkTfuCqiMode11Cqi ARGS((
3767 TfuCqiMode11Cqi *param,
3770 EXTERN S16 cmPkTfuCqiPucchMode11 ARGS((
3771 TfuCqiPucchMode11 *param,
3774 EXTERN S16 cmUnpkTfuCqiPucchMode11 ARGS((
3775 TfuCqiPucchMode11 *param,
3778 EXTERN S16 cmPkTfuCqiMode20SubCqi ARGS((
3779 TfuCqiMode20SubCqi *param,
3782 EXTERN S16 cmUnpkTfuCqiMode20SubCqi ARGS((
3783 TfuCqiMode20SubCqi *param,
3786 EXTERN S16 cmPkTfuCqiMode20Cqi ARGS((
3787 TfuCqiMode20Cqi *param,
3790 EXTERN S16 cmUnpkTfuCqiMode20Cqi ARGS((
3791 TfuCqiMode20Cqi *param,
3794 EXTERN S16 cmPkTfuCqiPucchMode20 ARGS((
3795 TfuCqiPucchMode20 *param,
3798 EXTERN S16 cmUnpkTfuCqiPucchMode20 ARGS((
3799 TfuCqiPucchMode20 *param,
3802 EXTERN S16 cmPkTfuCqiMode21SubCqi ARGS((
3803 TfuCqiMode21SubCqi *param,
3806 EXTERN S16 cmUnpkTfuCqiMode21SubCqi ARGS((
3807 TfuCqiMode21SubCqi *param,
3810 EXTERN S16 cmPkTfuCqiMode21WideCqi ARGS((
3811 TfuCqiMode21WideCqi *param,
3814 EXTERN S16 cmUnpkTfuCqiMode21WideCqi ARGS((
3815 TfuCqiMode21WideCqi *param,
3818 EXTERN S16 cmPkTfuCqiMode21Cqi ARGS((
3819 TfuCqiMode21Cqi *param,
3822 EXTERN S16 cmUnpkTfuCqiMode21Cqi ARGS((
3823 TfuCqiMode21Cqi *param,
3826 EXTERN S16 cmPkTfuCqiPucchMode21 ARGS((
3827 TfuCqiPucchMode21 *param,
3830 EXTERN S16 cmUnpkTfuCqiPucchMode21 ARGS((
3831 TfuCqiPucchMode21 *param,
3834 EXTERN S16 cmPkTfuDlCqiPucch ARGS((
3835 TfuDlCqiPucch *param,
3838 EXTERN S16 cmUnpkTfuDlCqiPucch ARGS((
3839 TfuDlCqiPucch *param,
3842 EXTERN S16 cmPkTfuSubbandMode12 ARGS((
3843 TfuSubbandMode12 *param,
3846 EXTERN S16 cmUnpkTfuSubbandMode12 ARGS((
3847 TfuSubbandMode12 *param,
3850 EXTERN S16 cmPkTfuCqiPuschMode12 ARGS((
3851 TfuCqiPuschMode12 *param,
3854 EXTERN S16 cmUnpkTfuCqiPuschMode12 ARGS((
3855 TfuCqiPuschMode12 *param,
3858 EXTERN S16 cmPkTfuCqiPuschMode20 ARGS((
3859 TfuCqiPuschMode20 *param,
3862 EXTERN S16 cmUnpkTfuCqiPuschMode20 ARGS((
3863 TfuCqiPuschMode20 *param,
3866 EXTERN S16 cmPkTfuCqiPuschMode22 ARGS((
3867 TfuCqiPuschMode22 *param,
3870 EXTERN S16 cmUnpkTfuCqiPuschMode22 ARGS((
3871 TfuCqiPuschMode22 *param,
3874 EXTERN S16 cmPkTfuSubbandMode30 ARGS((
3875 TfuSubbandMode30 *param,
3878 EXTERN S16 cmUnpkTfuSubbandMode30 ARGS((
3879 TfuSubbandMode30 *param,
3882 EXTERN S16 cmPkTfuCqiPuschMode30 ARGS((
3883 TfuCqiPuschMode30 *param,
3886 EXTERN S16 cmUnpkTfuCqiPuschMode30 ARGS((
3887 TfuCqiPuschMode30 *param,
3890 EXTERN S16 cmPkTfuSubbandMode31 ARGS((
3891 TfuSubbandMode31 *param,
3894 EXTERN S16 cmUnpkTfuSubbandMode31 ARGS((
3895 TfuSubbandMode31 *param,
3898 EXTERN S16 cmPkTfuCqiPuschMode31 ARGS((
3899 TfuCqiPuschMode31 *param,
3902 EXTERN S16 cmUnpkTfuCqiPuschMode31 ARGS((
3903 TfuCqiPuschMode31 *param,
3906 EXTERN S16 cmPkTfuDlCqiPusch ARGS((
3907 TfuDlCqiPusch *param,
3910 EXTERN S16 cmUnpkTfuDlCqiPusch ARGS((
3911 TfuDlCqiPusch *param,
3915 EXTERN S16 cmPkTfuDlCqiPuschInfo ARGS((
3916 TfuDlCqiPuschInfo *param,
3919 EXTERN S16 cmUnpkTfuDlCqiPuschInfo ARGS((
3920 TfuDlCqiPuschInfo *param,
3924 EXTERN S16 cmPkTfuDoaRpt ARGS((
3928 EXTERN S16 cmUnpkTfuDoaRpt ARGS((
3932 EXTERN S16 cmPkTfuDoaIndInfo ARGS((
3933 TfuDoaIndInfo *param,
3936 EXTERN S16 cmUnpkTfuDoaIndInfo ARGS((
3937 TfuDoaIndInfo *param,
3942 EXTERN S16 cmPkTfuDlCqiInfo ARGS((
3944 TfuDlCqiInfo *param,
3947 EXTERN S16 cmUnpkTfuDlCqiInfo ARGS((
3949 TfuDlCqiInfo *param,
3954 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
3956 EXTERN S16 cmPkTfuUeMsg3RecpReq ARGS((
3957 TfuUeMsg3RecpReq *param,
3960 EXTERN S16 cmUnpkTfuUeMsg3RecpReq ARGS((
3961 TfuUeMsg3RecpReq *param,
3967 /*tfu_x_001.main_8 - ADD - Prototype for TfuUePuschRecpReq Pk/Unpk functions */
3968 EXTERN S16 cmPkTfuUePuschRecpReq ARGS((
3969 TfuUePuschRecpReq *param,
3972 EXTERN S16 cmUnpkTfuUePuschRecpReq ARGS((
3973 TfuUePuschRecpReq *param,
3976 EXTERN S16 cmPkTfuUePucchRecpReq ARGS((
3977 TfuUePucchRecpReq *param,
3980 EXTERN S16 cmUnpkTfuUePucchRecpReq ARGS((
3981 TfuUePucchRecpReq *param,
3985 EXTERN S16 cmPkTfuRecpReqInfo ARGS((
3986 TfuRecpReqInfo *param,
3989 EXTERN S16 cmUnpkTfuRecpReqInfo ARGS((
3990 TfuRecpReqInfo *param,
3994 EXTERN S16 cmPkTfuPdcchInfo ARGS((
3995 TfuPdcchInfo *param,
3998 EXTERN S16 cmUnpkTfuPdcchInfo ARGS((
3999 TfuPdcchInfo *param,
4002 EXTERN S16 cmPkTfuPhichInfo ARGS((
4003 TfuPhichInfo *param,
4006 EXTERN S16 cmUnpkTfuPhichInfo ARGS((
4007 TfuPhichInfo *param,
4010 EXTERN S16 cmPkTfuCntrlReqInfo ARGS((
4011 TfuCntrlReqInfo *param,
4014 EXTERN S16 cmUnpkTfuCntrlReqInfo ARGS((
4015 TfuCntrlReqInfo *param,
4019 EXTERN S16 cmPkTfuPdschDciInfo ARGS((
4020 TfuPdschDciInfo *param,
4023 EXTERN S16 cmUnpkTfuPdschDciInfo ARGS((
4024 TfuPdschDciInfo *param,
4027 EXTERN S16 cmPkTfuDatReqPduInfo ARGS((
4028 TfuDatReqPduInfo *param,
4031 EXTERN S16 cmUnpkTfuDatReqPduInfo ARGS((
4032 TfuDatReqPduInfo *param,
4035 EXTERN S16 cmPkTfuDatReqInfo ARGS((
4036 TfuDatReqInfo *param,
4039 EXTERN S16 cmUnpkTfuDatReqInfo ARGS((
4040 TfuDatReqInfo *param,
4044 EXTERN S16 cmPkTfuDatInfo ARGS((
4048 EXTERN S16 cmUnpkTfuDatInfo ARGS((
4052 EXTERN S16 cmPkTfuDatIndInfo ARGS((
4053 TfuDatIndInfo *param,
4056 EXTERN S16 cmUnpkTfuDatIndInfo ARGS((
4057 TfuDatIndInfo *param,
4061 EXTERN S16 cmPkTfuSrInfo ARGS((
4065 EXTERN S16 cmUnpkTfuSrInfo ARGS((
4069 EXTERN S16 cmPkTfuSrIndInfo ARGS((
4070 TfuSrIndInfo *param,
4073 EXTERN S16 cmUnpkTfuSrIndInfo ARGS((
4074 TfuSrIndInfo *param,
4078 EXTERN S16 cmPkTfuHqInfo ARGS((
4082 EXTERN S16 cmUnpkTfuHqInfo ARGS((
4086 EXTERN S16 cmPkTfuHqIndInfo ARGS((
4087 TfuHqIndInfo *param,
4090 EXTERN S16 cmUnpkTfuHqIndInfo ARGS((
4091 TfuHqIndInfo *param,
4095 EXTERN S16 cmPkTfuUlCqiInfo ARGS((
4096 TfuUlCqiInfo *param,
4099 EXTERN S16 cmUnpkTfuUlCqiInfo ARGS((
4100 TfuUlCqiInfo *param,
4103 EXTERN S16 cmPkTfuUlCqiRpt ARGS((
4107 EXTERN S16 cmUnpkTfuUlCqiRpt ARGS((
4111 EXTERN S16 cmPkTfuUlCqiIndInfo ARGS((
4112 TfuUlCqiIndInfo *param,
4115 EXTERN S16 cmUnpkTfuUlCqiIndInfo ARGS((
4116 TfuUlCqiIndInfo *param,
4120 EXTERN S16 cmPkTfuDlCqiRpt ARGS((
4124 EXTERN S16 cmUnpkTfuDlCqiRpt ARGS((
4128 EXTERN S16 cmPkTfuDlCqiIndInfo ARGS((
4129 TfuDlCqiIndInfo *param,
4132 EXTERN S16 cmUnpkTfuDlCqiIndInfo ARGS((
4133 TfuDlCqiIndInfo *param,
4137 EXTERN S16 cmPkTfuPucchDeltaPwr ARGS((
4140 TfuPucchDeltaPwrIndInfo * pucchDeltaPwr));
4142 EXTERN S16 cmPkTfuPucchDeltaPwrInfo ARGS((
4143 TfuPucchDeltaPwr *param,
4147 EXTERN S16 cmUnpkTfuPucchDeltaPwr ARGS((
4148 TfuPucchDeltaPwrInd func,
4152 EXTERN S16 cmUnpkTfuPucchDeltaPwrInfo ARGS((
4153 TfuPucchDeltaPwr *param,
4157 EXTERN S16 cmPkTfuCrcInfo ARGS((
4161 EXTERN S16 cmUnpkTfuCrcInfo ARGS((
4165 EXTERN S16 cmPkTfuCrcIndInfo ARGS((
4166 TfuCrcIndInfo *param,
4169 EXTERN S16 cmUnpkTfuCrcIndInfo ARGS((
4170 TfuCrcIndInfo *param,
4175 EXTERN S16 cmPkTfuPucchDeltaPwrIndInfo ARGS((
4176 TfuPucchDeltaPwrIndInfo *param,
4179 EXTERN S16 cmUnpkTfuPucchDeltaPwrIndInfo ARGS((
4180 TfuPucchDeltaPwrIndInfo *param,
4184 EXTERN S16 cmPkTfuTimingAdvInfo ARGS((
4185 TfuTimingAdvInfo *param,
4188 EXTERN S16 cmUnpkTfuTimingAdvInfo ARGS((
4189 TfuTimingAdvInfo *param,
4192 EXTERN S16 cmPkTfuTimingAdvIndInfo ARGS((
4193 TfuTimingAdvIndInfo *param,
4196 EXTERN S16 cmUnpkTfuTimingAdvIndInfo ARGS((
4197 TfuTimingAdvIndInfo *param,
4202 EXTERN S16 cmPkTfuTtiCellInfo ARGS((
4203 TfuTtiCellInfo *param,
4206 EXTERN S16 cmUnpkTfuTtiCellInfo ARGS((
4207 TfuTtiCellInfo *param,
4211 EXTERN S16 cmPkTfuTtiIndInfo ARGS((
4212 TfuTtiIndInfo *param,
4215 EXTERN S16 cmUnpackSlotIndInfo ARGS((
4219 EXTERN S16 cmPkTfuRaReqInfo ARGS((
4220 TfuRaReqInfo *param,
4223 EXTERN S16 cmUnpkTfuRaReqInfo ARGS((
4224 TfuRaReqInfo *param,
4227 EXTERN S16 cmPkTfuRachInfo ARGS((
4232 EXTERN S16 cmUnpkTfuRachInfo ARGS((
4237 EXTERN S16 cmPkTfuRaReqIndInfo ARGS((
4238 TfuRaReqIndInfo *param,
4241 EXTERN S16 cmUnpkTfuRaReqIndInfo ARGS((
4242 TfuRaReqIndInfo *param,
4245 EXTERN S16 cmPkBuffer ARGS((
4249 EXTERN S16 cmUnpkBuffer ARGS((
4254 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
4256 EXTERN S16 cmPkTfuSrsRpt ARGS((
4260 EXTERN S16 cmUnpkTfuSrsRpt ARGS((
4264 EXTERN S16 cmPkTfuSrsIndInfo ARGS((
4265 TfuSrsIndInfo *param,
4268 EXTERN S16 cmUnpkTfuSrsIndInfo ARGS((
4269 TfuSrsIndInfo *param,
4273 EXTERN S16 cmPkTfuRawCqiRpt ARGS((
4274 TfuRawCqiRpt *param,
4277 EXTERN S16 cmUnpkTfuRawCqiRpt ARGS((
4278 TfuRawCqiRpt *param,
4281 EXTERN S16 cmPkTfuRawCqiIndInfo ARGS((
4282 TfuRawCqiIndInfo *param,
4285 EXTERN S16 cmUnpkTfuRawCqiIndInfo ARGS((
4286 TfuRawCqiIndInfo *param,
4293 EXTERN S16 cmPkTfuUePucchHqRecpInfo ARGS((
4294 TfuUePucchHqRecpInfo *param,
4297 EXTERN S16 cmUnpkTfuUePucchHqRecpInfo ARGS((
4298 TfuUePucchHqRecpInfo *param,
4304 #ifndef TFU_TDD /* else of TFU_TDD */
4306 EXTERN S16 cmPkTfuUePucchHqRecpInfo ARGS((
4307 TfuUePucchHqRecpInfo *param,
4310 EXTERN S16 cmUnpkTfuUePucchHqRecpInfo ARGS((
4311 TfuUePucchHqRecpInfo *param,
4317 EXTERN S16 cmPkTfuUePucchSrRecpInfo ARGS((
4318 TfuUePucchSrRecpInfo *param,
4321 EXTERN S16 cmUnpkTfuUePucchSrRecpInfo ARGS((
4322 TfuUePucchSrRecpInfo *param,
4325 EXTERN S16 cmPkTfuUePucchCqiRecpInfo ARGS((
4326 TfuUePucchCqiRecpInfo *param,
4329 EXTERN S16 cmUnpkTfuUePucchCqiRecpInfo ARGS((
4330 TfuUePucchCqiRecpInfo *param,
4333 EXTERN S16 cmPkTfuUePucchSrsRecpInfo ARGS((
4334 TfuUePucchSrsRecpInfo *param,
4337 EXTERN S16 cmUnpkTfuUePucchSrsRecpInfo ARGS((
4338 TfuUePucchSrsRecpInfo *param,
4341 EXTERN S16 cmPkTfuUeUlSchRecpInfo ARGS((
4342 TfuUeUlSchRecpInfo *param,
4345 EXTERN S16 cmUnpkTfuUeUlSchRecpInfo ARGS((
4346 TfuUeUlSchRecpInfo *param,
4349 EXTERN S16 cmPkTfuUePuschCqiRecpInfo ARGS((
4350 TfuUePuschCqiRecpInfo *param,
4353 EXTERN S16 cmUnpkTfuUePuschCqiRecpInfo ARGS((
4354 TfuUePuschCqiRecpInfo *param,
4357 EXTERN S16 cmPkTfuUePuschHqRecpInfo ARGS((
4358 TfuUePuschHqRecpInfo *param,
4361 EXTERN S16 cmUnpkTfuUePuschHqRecpInfo ARGS((
4362 TfuUePuschHqRecpInfo *param,
4366 EXTERN S16 cmPkTfuBfVectorInfo ARGS ((
4367 TfuBfVectorInfo *param,
4371 EXTERN S16 cmUnpkTfuBfVectorInfo ARGS ((
4372 TfuBfVectorInfo *param,
4375 #endif /* TFU_UPGRADE */
4376 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
4377 EXTERN S16 cmPkTfuUeRecpReqInfo ARGS((
4378 TfuUeRecpReqInfo *param,
4381 EXTERN S16 cmUnpkTfuUeRecpReqInfo ARGS((
4382 TfuUeRecpReqInfo *param,
4386 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
4388 /** @brief This primitive is used to convey the Raw CQI information
4389 * transmitted by the UE.
4390 * @details Raw CQI report is the actual bits transmitted by the UE when
4391 * reporting CQI/PMI/RI. The interpretation of these bits to CQI/sub-band CQI
4392 * and so on, are done by MAC.
4394 * @param pst Pointer to the post structure.
4395 * @param suId SAP ID of the service user.
4396 * @param cqiInd Pointer to the TfuRawCqiIndInfo structure.
4397 * @return ROK/RFAILED
4399 EXTERN S16 cmPkTfuRawCqiInd ARGS((
4402 TfuRawCqiIndInfo * rawCqiInd
4404 /** @brief This primitive is used to convey the Raw CQI information
4405 * transmitted by the UE.
4406 * @details Raw CQI report is the actual bits transmitted by the UE when
4407 * reporting CQI/PMI/RI. The interpretation of these bits to CQI/sub-band CQI
4408 * an so on, are done by MAC.
4410 * @param pst Pointer to the post structure.
4411 * @param suId SAP ID of the service user.
4412 * @param cqiInd Pointer to the TfuRawCqiIndInfo structure.
4413 * @return ROK/RFAILED
4415 EXTERN S16 cmUnpkTfuRawCqiInd ARGS((
4420 /** @brief This primitive is used to convey the information derived by the
4421 * physical layer from the SRS transmission from the UE.
4422 * @details This primitive carries information derived from the SRS transmission
4425 * @param pst Pointer to the post structure.
4426 * @param suId SAP ID of the service user.
4427 * @param srsInd Pointer to the TfuSrIndInfo structure.
4428 * @return ROK/RFAILED
4430 EXTERN S16 cmPkTfuSrsInd ARGS((
4433 TfuSrsIndInfo * srsInd
4435 /** @brief This primitive is used to convey the information derived by the
4436 * physical layer from the SRS transmission from the UE.
4437 * @details This primitive carries information derived from the SRS transmission
4440 * @param pst Pointer to the post structure.
4441 * @param suId SAP ID of the service user.
4442 * @param srsInd Pointer to the TfuSrIndInfo structure.
4443 * @return ROK/RFAILED
4445 EXTERN S16 cmUnpkTfuSrsInd ARGS((
4452 /*tfu_x_001.main_6 - Added for SPS support*/
4454 EXTERN S16 cmPkTfuAllocMap ARGS((
4458 EXTERN S16 cmUnpkTfuAllocMap ARGS((
4463 EXTERN S16 cmPkTfuDciFormat6AAllocInfo ARGS((
4464 TfuDciFormat61AllocInfo *param,
4467 EXTERN S16 cmUnpkTfuDciFormat6AAllocInfo ARGS((
4468 TfuDciFormat61AllocInfo *param,
4471 EXTERN S16 cmUnpkTfuDciFormat61aInfo ARGS((
4472 TfuDciFormat61aInfo *param,
4475 EXTERN S16 cmUnpkTfuDciFormat62Info ARGS((
4476 TfuDciFormat62Info *param,
4480 EXTERN S16 cmUnpkTfudciformat61aPdsch ARGS((
4481 Tfudciformat61aPdsch *param,
4484 EXTERN S16 cmPkTfuDciFormat61aInfo ARGS((
4485 TfuDciFormat61aInfo *param,
4493 /* LTE_UNLICENSED */
4494 EXTERN S16 cmPkTfuErrInd ARGS((
4497 TfuErrIndInfo * errInd
4500 EXTERN S16 cmUnpkTfuErrInd ARGS((
4511 #endif /* __TFUX__ */
4513 /********************************************************************30**
4516 **********************************************************************/