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
126 uint32_t numUlPackets;
131 RgSchUlAllocCntr rgSchUlAllocCntr;
136 typedef struct rgSchDlHqStats
155 typedef struct ysMsDlHqStats
159 uint8_t mode; /*1 = PUCCH 2= PUSCH*/
161 uint8_t o0; /*For PUCCH n1PUCCH*/
162 uint8_t 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 uint8_t hqProcId; /*!< HARQ process ID */
182 uint8_t 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 uint8_t hqProcId; /*!< HARQ process ID */
190 uint8_t mcs; /*!< 4 bits for MCS */
191 Bool ndi; /*!< 1 bit for new data indicator */
192 uint8_t RV; /*!< 2 bits Redundancy version */
193 uint8_t 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 uint8_t FreqBandIdx; /* nRACH: Frequency band index Value:0 -> 7 */
201 Bool OCCInd; /* nOCC: OCC indicator Value:0 -> 1 */
202 uint8_t 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 uint8_t 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 uint8_t xPUSCH_TxTiming; /* Transmission timing of xPUSCH Value: 0->7
215 uint16_t 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 uint8_t beamIndex; /*!< transmit beam index: Value: 0->7 */
221 uint8_t symbIdx; /*!< OFDM symbol index for the xPDCCH: Value: 0->1 */
222 uint8_t rv; /*!< HARQ redundancy version, Value: 0 -> 3 */
224 /* Based on RBAssign/RIV value*/
227 TfuRbAssignA1Val324 rbAssignA1Val324;
228 TfuRbAssignVal326 rbAssignVal326;
231 uint8_t CSI_BSI_BRI_Req; /* CSI / BSI / BRI request Value:0 -> 7 */
232 uint8_t 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 uint8_t CSIRS_BRRS_SymbIdx; /* Indication of OFDM symbol index for CSI-RS / BRRS allocations
242 uint8_t CSI_BRRS_Indicator; /* If this DCI format allocates either of
243 CSI-RS or BRRS transmission Value:0 -> 3 */
244 uint8_t CSIRS_BRRS_ProcInd; /* Process indicator : Value:0 -> 3 */
245 uint8_t 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 uint8_t 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 uint8_t 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 uint8_t PMI; /* Precoding matrix indicator Value:0 -> 7 */
266 #ifdef FIVEGTF_PHY_API
267 uint8_t AntPorts_numLayers;
268 uint8_t TransmissionScheme;
270 Bool UL_PCRS; /* UL dual PCRS Value: 0 -> 1 */
271 uint8_t 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 uint8_t 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 uint16_t 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 uint8_t beamIndex; /*!< transmit beam index: Value: 0->7 */
291 uint8_t symbIdx; /*!< OFDM symbol index for the xPDCCH: Value: 0->1 */
292 /* Based on RBAssign/RIV value*/
295 TfuRbAssignB1Val324 rbAssignB1Val324;
296 TfuRbAssignVal326 rbAssignVal326;
299 uint8_t CSI_BSI_BRI_Req; /* CSI / BSI / BRI request Value:0 -> 7 */
300 uint8_t 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 uint8_t CSIRS_BRRS_SymbIdx; /* Indication of OFDM symbol index for CSI-RS / BRRS allocations
305 uint8_t CSI_BRRS_Indicator; /* If this DCI format allocates either of
306 CSI-RS or BRRS transmission Value:0 -> 3 */
307 uint8_t CSIRS_BRRS_ProcInd; /* Process indicator : Value:0 -> 3 */
308 uint8_t numBSI_Reports; /* Number of BSI reports Value:0 -> 3 */
310 Bool xPUCCH_TxTiming; /* field indicates transmission time offset value k.{0, 1, ., 7} */
311 uint8_t freqResIdx_xPUCCH; /* Frequency resource index of xPUCCH for UCI report */
312 Bool beamSwitch; /* beam switch indication. Value:0 -> 1 */
314 uint8_t 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 uint8_t 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 uint8_t 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 uint8_t rbStart; /*!< Starting RB */
344 uint8_t numRb; /*!< Number of RBs */
346 uint32_t riv; /*!< RIV as defined in 213
347 section 7.1.6.3 - used only for
350 uint8_t hoppingBits; /*!< Hopping bits as mentioned in 213 section 8.4 */
351 uint8_t mcs; /*!< 5 bits for MCS and RV */
352 Bool ndi; /*!< 1 bit for new data indicator */
353 uint8_t tpcCmd; /*!< 2 bits for TPC command */
357 uint8_t ulIdx; /*!< UL index applicable only for TDD */
358 uint8_t dai; /*!< The downlink assignement index */
361 uint8_t nDmrs; /*!< 3 bits for DMRS cyclic shift */
362 uint8_t cqiReq; /*!< 1 bit for CQI non-CA while value 00, 01, 10 and 11 for CA */
363 uint8_t numCqiBit; /*!< Number of CsiReq Bit(s) Values : 1 or 2(CA)*/
364 uint8_t txAntenna; /*!< Antenna selection - 213 section 8.7 */
366 /* tfu_x_001.main_4: Adding hqProcId */
367 uint8_t 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 uint32_t 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 uint8_t 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 uint32_t allocMask; /*!< Allocation Mask for RBGs */
427 uint8_t rbgSubset; /*!< RBG Subset number: Value in set
429 uint8_t shift; /*!< Shift value for RBG mask: Value in
431 uint32_t 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 uint8_t resAllocMap[TFU_MAX_ALLOC_BYTES]; /*!< Resource allocation bitmap.
448 LSB aligns with the LSB of the
450 uint8_t harqProcId; /*!< HARQ process ID */
451 Bool ndi; /*!< 1 bit for new data indicator */
452 uint8_t mcs; /*!< 5 bits for MCS */
453 uint8_t 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 uint8_t dai; /*!< The downlink assignement index */
471 uint8_t 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 uint8_t rv; /*!< Redundancy version Indicator */
480 uint8_t 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 uint8_t 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 uint8_t harqProcId; /*!< HARQ process ID */
502 TfuDciFormatTbInfo tbInfo[2]; /*!< DCI Format 2/2A info per TB */
503 uint8_t 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 uint8_t dai; /*!< The downlink assignement index */
520 uint8_t 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 uint8_t resAllocMap[TFU_MAX_ALLOC_BYTES]; /*!< Resource
535 allocation bitmap. LSB aligns
536 with the LSB of the allocation
539 TfuAllocMap allocMap; /*!< Allocation Map.*/
545 uint8_t dai; /*!< The downlink assignement index */
548 Bool transSwap; /*!< Transport block to codeword swap
550 uint8_t precoding; /*!< Precoding information bit */
551 uint8_t 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 uint8_t tpcCmd; /*!< 2 bits for TPC command */
571 uint8_t dai; /*!< The downlink assignment index */
577 /** @brief This structure contains the information carried in DCI format 3.
579 typedef struct tfuDciFormat3Info
581 uint8_t tpcCmd[TFU_MAX_2BIT_TPC]; /*!< 2 bits for TPC command.
582 LSB corresponds to the 1st bit of the 1st
584 uint8_t 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 uint8_t tpcCmd[TFU_MAX_1BIT_TPC]; /*!< 1 bit for TPC command.
593 LSB corresponds to the 1st bit of the
595 uint8_t 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 TknUInt8 nGap2; /*!< 1 indicates Ngap=Ngap,1 and 2 indicates Ngap,2 */
611 TfuAllocMapOrRiv alloc; /*!< Allocation represented as a bit-map or RIV */
612 uint8_t mcs; /*!< 5 bits for MCS */
613 uint8_t rv; /*!< Redundancy version */
614 uint8_t tPmi; /*!< PMI */
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 uint8_t harqProcId; /*!< HARQ process ID */
627 Bool ndi; /*!< 1 bit for new data indicator */
628 uint8_t tpcCmd; /*!< 2 bits for TPC command */
632 uint8_t dai; /*!< The downlink assignement index */
635 uint8_t 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 TknUInt8 nGap2; /*!< 1 indicates Ngap=Ngap,1 and 2 indicates Ngap,2 */
649 TfuAllocMapOrRiv alloc; /*!< Allocation represented as a bit-map or RIV */
650 uint8_t 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 TknUInt8 nGap2; /*!< 1 indicates Ngap=Ngap,1 and 2 indicates Ngap,2 */
665 TfuAllocMapOrRiv alloc; /*!< Allocation represented as a bit-map or RIV */
666 uint8_t mcs; /*!< 5 bits for MCS */
667 uint8_t rv; /*!< Redundancy version */
668 uint8_t harqProcId; /*!< HARQ process ID */
669 Bool ndi; /*!< 1 bit for new data indicator */
670 uint8_t tPmi; /*!< PMI */
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 uint8_t preambleIdx; /*!< Dedicated preamble index */
681 uint8_t 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 TknUInt8 nGap2; /*!< 1 indicates Ngap=Ngap,1 and 2 indicates Ngap,2 */
696 TfuAllocMapOrRiv alloc; /*!< Allocation carries RIV or a bitmap */
697 uint8_t mcs; /*!< 5 bits for MCS */
698 uint8_t rv; /*!< Redundancy version */
699 TknUInt8 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 TknUInt8 dai; /*!< The downlink assignement index. Reserved
714 if RA-RNTI, P-RNTI, SI-RNTI is used. */
717 uint8_t 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 uint8_t dai; /*!< The downlink assignement index */
753 uint8_t 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 uint32_t riv; /*!<9 bits, type2 allocation, RIV as defined in 213 section 7.1.6.3. */
762 uint8_t mcs; /*!< 4 bits for MCS and RV */
763 uint8_t rep; /*!< 2 bits, repetion number */
764 uint8_t hqProcId; /*!< HARQ process ID */
765 Bool ndi; /*!< 1 bit for new data indicator */
766 uint8_t rv; /*!< 2 bits - Redundancy version */
767 uint8_t tpcCmd; /*!< 2 bits for TPC command */
769 /* TODO_Mavericks: Check if DAI is required for FDD also */
770 uint8_t ulIdx; /*!< UL index applicable only for TDD */
771 uint8_t dai; /*!< The downlink assignement index */
773 Bool cqiReq; /*!< 1 bit for CQI */
774 Bool isSrs; /*!< 1 bit for SRS */
775 uint8_t 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 uint32_t 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 uint8_t harqProcId; /*!< HARQ process ID */
789 Bool ndi; /*!< 1 bit for new data indicator */
790 uint8_t mcs; /*!< 4 bits for MCS and RV */
791 uint8_t rv; /*!< 2 bits - Redundancy version */
792 uint32_t 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 uint8_t rep; /*!< 2 bits, repetion number */
803 uint8_t tpcCmd; /*!< 2 bits for TPC command */
805 /* TODO_Maveri: Check if DAI is required for FDD also */
806 uint8_t dai; /*!< The downlink assignement index */
808 uint8_t antPortAndScrId; /*!< 2 bits - Antenna port(s) and scrambling identity */
809 Bool isSrs; /*!< 1 bit for SRS */
810 uint8_t tPmi; /*!< 2 0r 4 bits: TPMI information for precoding */
811 uint8_t pmiCfm; /*!< 1 bit, PMI confirmation for precoding */
812 uint8_t harqAckOffst; /*!< 2 bits, HARQ-ACK resource offset */
813 uint8_t 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 uint32_t riv; /*!<9 bits, type2 allocation, RIV as defined in 213 section 7.1.6.3. */
819 uint8_t preambleIdx; /*!< Dedicated preamble index */
820 uint8_t prachMaskIdx; /*!< PRACH Mask index used to determine the
821 subframe to be used for RACH */
822 uint8_t 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 uint8_t directInd; /*!< 8 bit direct Indication Information*/
852 }TfuDirectIndication;
854 typedef struct tfuDciFormat62AllocInfo
856 uint8_t riv; /*!< Narrow Band Index*/
857 uint8_t mcs; /*!<MCS */
858 uint32_t scramblerInitValue; /*!< Scrambler init(Cinit) value as per 36.211 */
859 uint8_t rv; /*!<Redundancy version */
860 }TfuDciFormat62AllocInfo;
862 typedef struct tfudciformat62Pdsch
864 TfuDciFormat62AllocInfo format62AllocInfo;
865 uint8_t repNum; /*!< 3 bits, repetion number */
866 uint8_t 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 uint8_t rbStart; /*!< Starting RB */
937 uint8_t 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 uint8_t 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 uint8_t cqiIdx; /*!< CQI index */
957 /** @brief This structure conveys the CCE information.
959 typedef struct tfuPdcchCceInfo
961 uint8_t 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 uint8_t ri; /*!< One RI assuming transmission on S sub-bands */
974 uint8_t 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 uint8_t cqi; /*!< Wide-band CQI */
985 uint8_t pmi; /*!< PMI */
986 TknUInt8 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 uint8_t 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 uint8_t cqi; /*!< CQI value */
1007 uint8_t 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 uint8_t 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 uint8_t 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
1042 uint8_t cqi; /*!< CQI */
1043 uint8_t l; /*!< L bit sub-band label */
1044 TknUInt8 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
1053 uint8_t cqi; /*!< CQI */
1054 uint8_t pmi; /*!< PMI */
1055 TknUInt8 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 uint8_t 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 uint8_t 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 uint8_t numSubband; /*!< Number of sub-bands */
1118 uint8_t 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 uint8_t cqiIdx; /*!< CQI index transmission
1131 uint8_t wideBandCqi; /*!< Wide-band CQI index, that is,
1132 transmission over S sub-bands */
1133 uint8_t 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 uint8_t cqi[TFU_MAX_TB]; /*!< CQI index over M preferred
1144 uint8_t pmi; /*!< PMI preferred PMI over M
1146 uint8_t wideBandCqi[TFU_MAX_TB]; /*!< Wide-band CQI */
1147 uint8_t wideBandPmi; /*!< PMI */
1148 uint8_t 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 uint8_t 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 uint8_t wideBandCqi; /*!< Wide-band CQI */
1168 uint8_t 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 uint8_t 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
1186 uint8_t pmi; /*!< PMI */
1187 uint8_t wideBandCqi[TFU_MAX_TB]; /*!< Wide-band CQI per CW */
1188 uint8_t 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 TknUInt8 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 uint16_t dopEst; /*!< Doppler estimation [0-255] */
1275 uint16_t ta; /*!< Timing advance for the UE */
1276 uint8_t numRbs; /*!< Number of RBs to be reported for this UE */
1277 uint8_t rbStart; /*!< Starting RB to be reported */
1278 uint8_t snr[TFU_MAX_UL_RB]; /*!< snr for each RB */
1279 Bool wideCqiPres; /*!< Flag to indicate Wide-band CQI */
1280 uint8_t 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 uint8_t numBits; /*!< Number of valid CQI bits */
1312 uint32_t uciPayload; /*!< Raw UCI bit payload */
1314 uint8_t cqiConfBitMask;
1315 uint8_t cqiBits[TFU_MAX_CQI_BYTES]; /*!< An array of bits
1316 corresponding to the Raw CQI report */
1317 uint8_t 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 uint8_t hqSz; /*!< Size of feedback in bits */
1368 uint8_t pucchResCnt; /*!< Number of ACK/NACK responses
1369 received in this subframe [0-4] */
1370 uint16_t hqRes[TFU_MAX_HQ_RES]; /*!< (n^1PUCCH(0-3))
1372 uint8_t 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 uint16_t 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 uint16_t n2PucchIdx; /*!< (n^2PUCCH) value[0-1185] */
1389 uint8_t 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 uint8_t nRrc; /*!< Frequency Domain position given by
1434 TfuUlSrsHoBwInfo srsHopBw; /*!< SRS Hopping BW given by RRC per
1436 uint8_t transComb; /*!< Frequency location given by RRC
1437 per UE (k,TC) [0-1] */
1438 uint16_t 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 uint8_t 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 uint8_t puschFlag; /*!< UCI is carried in xPUSCH or not
1452 0 -> UCI is in xPUCCH,
1453 1 -> UCI is in xPUSCH */
1454 uint8_t pucchIndex; /*!< Frequency resource index of xPUCCH
1455 for UCI report. [0-15] */
1456 uint8_t SCID; /*!< SCID : 0 or 1 */
1457 uint8_t bsiRpt; /*!< total num of BSI report[0,1,2,4] */
1458 uint8_t 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 uint8_t numBits; /*!< 1-22, 1-Only HQ, 5-Only CQI/RI, 6- both HQ CQI/RI */
1467 uint8_t pucchIndex; /*!< 0-15, PUCCH Freq Res Idx */
1468 uint8_t 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 uint16_t format1aRepNumber;
1505 uint16_t format2aRepNumber;
1506 uint32_t 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 uint16_t size; /*!< Length of the Data in bytes*/
1532 /* ToDo : rbStart and numRb is kept for legacy, need to remove later */
1533 uint8_t rbStart; /*!< Start of Resource Block of
1535 uint8_t numRb; /*!< Number of RBs allocated */
1536 TfuModScheme modType; /*!< Modulation order */
1537 uint8_t nDmrs; /*!< 3 bits for DMRS cyclic shift */
1538 Bool hoppingEnbld; /*!< TRUE, if hopping is enabled */
1539 uint8_t hoppingBits; /*!< Hopping bits as mentioned in
1541 Bool isRtx; /*!< TRUE, if this is a retx */
1542 Bool ndi; /*!< New Data Indication */
1543 uint8_t rv; /*!< Redundancy version */
1544 uint8_t harqProcId; /*!< HARQ process ID */
1545 uint8_t txMode; /*!< UE's UL transmission mode:
1546 0 = SISO/SIMO, 1 = MIMO */
1547 uint8_t 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 */
1553 uint8_t mcs; /*!< MCS */
1555 uint32_t repetitionNumber;
1556 uint32_t scramblerInitValue;
1559 uint8_t rbgStart; /* The starting resource block group for
1560 this xPUSCH allocation.*/
1561 uint8_t numRbg; /* The number of resource block groups
1562 allocated to this ULSCH grant.*/
1563 uint8_t 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 uint8_t 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 uint8_t SCID; /*SCID : 0 or 1 */
1570 uint8_t 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 uint8_t 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 uint8_t reportType; /*! Type of CSI report.
1583 0 = periodic report.
1584 1 = aperiodic report */
1585 uint8_t cCNum; /*! The number of CC in the aperiodic report.
1587 uint8_t cqiPmiSzR1[CM_LTE_MAX_CELLS]; /*!< Size of DL CQI/PMI in bits for
1588 rank 1 report[0-255] */
1589 uint8_t cqiPmiSzRn1[CM_LTE_MAX_CELLS]; /*!< Size of DL CQI/PMI in bits for
1590 rank > 1 report[0-255] */
1591 TknUInt8 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 uint8_t cqiBetaOff; /*!< Beta offset for CQI[0-15]. Given
1596 uint8_t 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 uint8_t hqSz; /*!< Number of feedback bits:
1606 FDD- 1 or 2 TDD- 1 to 4*/
1607 uint8_t hqBetaOff; /*!< Beta offset for Harq[0-15]. Given
1610 TfuAckNackMode hqFdbkMode; /*!< Feedback mode in TDD */
1611 uint8_t nBundled; /*!< nBundled value intended for PHY */
1612 uint8_t 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 TknUInt8 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 TknUInt8 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 uint8_t 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 uint16_t nCce; /*!< Number of first CCE used for transmission of
1724 the corresponding DCI assignment. Used to decode
1727 uint16_t 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 uint16_t 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 uint8_t multCnt; /*!< Number of ACK/NACK resources present */
1750 uint8_t M; /*!< Number of elements in the set K - tb.
1752 uint8_t m[TFU_MAX_M]; /*!< Values utilized for TDD HARQ-ACK bundling
1754 uint8_t 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 uint8_t rbStart; /*!< Start of Resource Block of allocation */
1778 uint8_t numRb; /*!< Number of RBs allocated */
1779 uint8_t 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 uint8_t harqProcId; /*!< HARQ process ID */
1788 Bool ndi; /*!< 1 bit for new data indicator */
1789 uint8_t rv; /*!< Redundancy version */
1790 uint8_t nDmrs; /*!< 3 bits for DMRS cyclic shift */
1791 /* tfu_x_001.main_2:107387:To include the size and ModOrder in DataRecp Request */
1792 uint16_t 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 uint8_t hoppingBits; /*!< Hopping bits as mentioned in 213 8.4 */
1806 uint8_t rbStart; /*!< Start of Resource Block of allocation */
1807 uint8_t numRb; /*!< Number of RBs allocated */
1808 uint8_t mcs; /*!< 5 bits for MCS and RV */
1809 uint8_t harqProcId; /*!< HARQ process ID */
1810 Bool ndi; /*!< 1 bit for new data indicator */
1811 Bool isRtx; /*!< TRUE, if this is a retransmission */
1812 uint8_t rv; /*!< Redundancy version */
1813 uint8_t 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 uint16_t 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 uint16_t nCce; /*!< CCE index */
1898 CmLteAggrLvl aggrLvl; /*!< Aggregation level possible values are
1900 uint8_t dciNumOfBits; /*!< The size of DCI in bits */
1901 TfuDciInfo dci; /*!< PDCCH DCI format */
1903 uint8_t distributedAlloc;
1904 uint8_t localizedAntPortIndex;
1905 uint16_t dmrs_txpowerControl;
1908 uint32_t scramblerInit;
1909 uint32_t demodRSInitValue;
1912 uint8_t sectorId; /* Sector index of the 5GNB. Value: 0->2 */
1913 uint8_t sccIdx; /* Serving Cell index in the given sector. Value: 0->7 */
1914 uint8_t 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 uint8_t rbStart; /*!< Starting RB */
1930 uint8_t nDmrs; /*!< DMRS offset index */
1931 Bool isAck; /*!< TRUE, if ACK, else NACK */
1934 uint8_t iPhich; /*!< Needed to Calculate PHICH
1935 location. For TDD only */
1937 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
1939 uint16_t 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 uint8_t cfi; /*!< CFI value that goes on the PCFICH control channel */
1956 uint32_t 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 uint8_t sbIndex; /** Subband Index */
2019 uint8_t numPhyAnt; /** Number of Physical Antennas */
2020 uint16_t 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 uint32_t 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 uint32_t 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 uint8_t 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 TknUInt32 doa; /*!< DOA indicator for this UE */
2081 /*tfu_x_001.main_8 - ADD - Detailed comments for fields */
2082 uint8_t numLayers; /*!< Number of Layers. Note: Field
2083 specified at Interface. Value
2084 not set from LTE MAC */
2085 uint8_t deltaPowOffIdx; /*!< Delta power offset. Note:
2086 Field specified at Interface. Value
2087 not set from LTE MAC */
2088 uint8_t 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 uint8_t 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 uint16_t 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 uint8_t pa; /*!< ratio of PDSCH EPRE to cell-specific RS
2107 EPRE among PDSCH REs */
2109 uint8_t 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 uint8_t sectorId; /* Sector index of the 5GNB. Value: 0->2 */
2156 uint8_t 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 uint8_t noOfTbs; /*!< Number of TBs */
2213 uint8_t 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 uint8_t wideCqi; /*!< Wide-band CQI*/
2252 uint8_t 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 uint32_t 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 TknUInt8 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 uint8_t sectorId; /* Sector index of the 5GNB. Value: 0->2 */
2342 uint8_t 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 uint8_t 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 uint8_t schTickDelta; /*!< Dynamic Delta for SCH. Value will vary
2380 according to num of active UEs */
2381 uint8_t dlBlankSf; /*!< TODO */
2382 uint8_t 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 uint8_t 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 uint8_t rapId; /*!< ID of the preamble choosen by the UE for Random Acess.*/
2407 uint16_t ta; /*!< Amount of Timing advance needed by the UE for it
2408 to be uplink synchronized, this is calculated by Physical layer. */
2409 uint8_t tpc; /*!< Transmit power control command that the physical
2410 layer calculates from the RA request received.*/
2411 Bool cqiPres; /*!< TRUE, if CQI present. */
2412 uint8_t 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 uint8_t numRaReqInfo; /*!< Number of RA requests */
2424 uint8_t nPreambleFormat;
2425 uint8_t nPRACHConfiguration;
2427 uint8_t nCyclicShift;
2429 uint8_t nPRACHSymbIndex;
2430 uint16_t nPwrFactor;
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 uint8_t 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 S16 (*TfuBndReq) ARGS((
2510 typedef S16 (*TfuBndCfm) ARGS((
2514 typedef S16 (*TfuUbndReq) ARGS((
2519 typedef S16 (*TfuSchBndReq) ARGS((
2523 typedef S16 (*TfuSchBndCfm) ARGS((
2527 typedef S16 (*TfuSchUbndReq) ARGS((
2532 typedef S16 (*TfuRaReqInd) ARGS((
2535 TfuRaReqIndInfo *raReqInd));
2537 typedef S16 (*TfuRecpReq) ARGS((
2540 TfuRecpReqInfo *recpReq));
2542 typedef S16 (*TfuUlCqiInd) ARGS((
2545 TfuUlCqiIndInfo * ulCqiInd));
2547 typedef S16 (*TfuDoaInd) ARGS((
2550 TfuDoaIndInfo * doaInd));
2551 typedef S16 (*TfuHqInd) ARGS((
2554 TfuHqIndInfo * hqInd));
2556 typedef S16 (*TfuSrInd) ARGS((
2559 TfuSrIndInfo * srInd));
2561 typedef S16 (*TfuDlCqiInd) ARGS((
2564 TfuDlCqiIndInfo * dlCqiInd));
2565 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
2567 typedef S16 (*TfuRawCqiInd) ARGS((
2570 TfuRawCqiIndInfo *rawCqiInd));
2572 typedef S16 (*TfuSrsInd) ARGS((
2575 TfuSrsIndInfo *srsInd));
2576 #endif /* TFU_UPGRADE */
2578 typedef S16 (*TfuDatInd) ARGS((
2581 TfuDatIndInfo * datInd));
2583 typedef S16 (*TfuCrcInd) ARGS((
2586 TfuCrcIndInfo * crcInd));
2588 typedef S16 (*TfuTimingAdvInd) ARGS((
2591 TfuTimingAdvIndInfo * timingAdvInd));
2593 typedef S16 (*TfuDatReq) ARGS((
2596 TfuDatReqInfo * datReq));
2599 typedef S16 (*TfuDelDatReq) ARGS((
2602 TfuDelDatReqInfo * datReq));
2605 typedef S16 (*TfuCntrlReq) ARGS((
2608 TfuCntrlReqInfo *cntrlReq));
2610 typedef S16 (*TfuTtiCell) ARGS((
2613 TfuTtiCellInfo * ttiInd));
2615 typedef S16 (*TfuTtiInd) ARGS((
2617 SlotIndInfo * slotInd));
2619 #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
2620 typedef S16 (*TfuNonRtInd) ARGS((
2625 typedef S16 (*TfuSchTtiInd) ARGS((
2628 SlotIndInfo* slotInd));
2630 typedef S16 (*TfuPucchDeltaPwrInd) ARGS((
2633 TfuPucchDeltaPwrIndInfo * pucchDeltaPwr));
2635 /*LAA: Error Indication on LAA SCell*/
2636 typedef S16 (*TfuErrInd) ARGS((
2639 TfuErrIndInfo * errInd));
2641 /** @brief This API is used to send a Bind Request from MAC to PHY.
2642 * @param pst Pointer to the post structure.
2643 * @param suId SAP ID of the service user.
2644 * @param spId SAP ID of the service provider.
2645 * @return ROK/RFAILED
2647 S16 TfUiTfuBndReq ARGS((Pst *pst, SuId suId, SpId spId));
2649 /** @brief This API is used to send a Bind Request from Scheduler to PHY.
2650 * @param pst Pointer to the post structure.
2651 * @param suId SAP ID of the service user.
2652 * @param spId SAP ID of the service provider.
2653 * @return ROK/RFAILED
2655 S16 TfUiTfuSchBndReq ARGS((Pst *pst, SuId suId, SpId spId));
2658 /** @brief This API is used to receive a Bind Confirm from PHY to MAC.
2659 * @param pst Pointer to the post structure.
2660 * @param suId SAP ID of the service user.
2661 * @param status Status of the bind request.
2662 * @return ROK/RFAILED
2664 S16 TfUiTfuBndCfm ARGS((Pst *pst, SuId suId, uint8_t status));
2666 /** @brief This API is used to receive a Bind Confirm from PHY to Scheduler.
2667 * @param pst Pointer to the post structure.
2668 * @param suId SAP ID of the service user.
2669 * @param status Status of the bind request.
2670 * @return ROK/RFAILED
2672 S16 TfUiTfuSchBndCfm ARGS((Pst *pst, SuId suId, uint8_t status));
2675 /** @brief This API is used to send an Unbind Request from MAC to PHY.
2676 * @param pst Pointer to the post structure.
2677 * @param spId SAP ID of the service provider.
2678 * @param reason Reason for Unbind request.
2679 * @return ROK/RFAILED
2681 S16 TfUiTfuUbndReq ARGS((Pst *pst, SpId spId, Reason reason));
2683 /** @brief This API is used to send an Unbind Request from Scheduler to PHY.
2684 * @param pst Pointer to the post structure.
2685 * @param spId SAP ID of the service provider.
2686 * @param reason Reason for Unbind request.
2687 * @return ROK/RFAILED
2689 S16 TfUiTfuSchUbndReq ARGS((Pst *pst, SpId spId, Reason reason));
2692 /** @brief This API is used to indication Random Access Request reception from
2694 * @details This primitive is used by physical layer to indicate the reception
2695 * of a Random Access Request from a set of UEs. The information passed consists
2696 * of the RA-RNTI and the list of preambles received.
2697 * @param pst Pointer to the post structure.
2698 * @param suId SAP ID of the service user.
2699 * @param raReqInd Pointer to the TfuRaReqIndInfo structure.
2700 * @return ROK/RFAILED
2702 S16 TfUiTfuRaReqInd ARGS((Pst *pst, SuId suId, TfuRaReqIndInfo
2706 /** @brief This primitive is sent from Scheduler to PHY.
2707 * @details This primitive provides PHY with all the information required by
2708 * PHY to decode transmissions from the UE on either PUCCH or PUSCH.
2709 * -# On PUCCH, UE can transmit the following:
2715 * -# On PUSCH, UE can transmit the following:
2718 * -# Data + HARQ Feedback
2719 * This primitive carries all the information for the expected subframe for all
2720 * the UEs that are scheduled to transmit.
2721 * @param pst Pointer to the post structure.
2722 * @param spId SAP ID of the service provider.
2723 * @param recpReq Pointer to the TfuRecpReqInfo structure.
2724 * @return ROK/RFAILED
2726 S16 TfUiTfuRecpReq ARGS((Pst *pst, SpId spId, TfuRecpReqInfo *recpReq));
2728 /** @brief This primitive is sent from Scheduler to PHY. It provides PHY with
2729 * all the control information.
2730 * @details This primitive carries the information sent on the following
2738 * @param cntrlReq pointer to TfuCntrlReqInfo
2739 * @return ROK/RFAILED
2741 S16 TfUiTfuCntrlReq ARGS((Pst *pst, SpId spId, TfuCntrlReqInfo *cntrlReq));
2743 /** @brief This primitive carries the Data PDUs from MAC to PHY for transmission.
2744 * @details The data being sent in this primitive is meant to be transmitted on
2745 * the downlink channel PDSCH and PBCH (if present). To facilitate physical
2746 * layer processing, requisite control information is also sent along with the
2748 * @sa TfUiTfuCntrlReq
2751 * @param datReq pointer to TfuDatReqInfo
2754 S16 TfUiTfuDatReq ARGS((Pst *pst, SpId spId, TfuDatReqInfo *datReq));
2757 /** @brief This primitive carries the cellId and UeId for which datReq need to
2759 * @details This primitive is used to delete datReq PDUs present in CL for
2760 * which got changed or similar other scenarios. These scenarios are possible
2761 * only when L2_OPTMZ flag is enabled.
2762 * @sa TfUiTfuDelDatReq
2765 * @param datReq pointer to TfuDelDatReqInfo
2769 S16 TfUiTfuDelDatReq ARGS((Pst *pst, SpId spId, TfuDelDatReqInfo *datReq));
2772 /** @brief This Primitive carries the Data PDUs from PHY to MAC.
2773 * @details The Uplink Data, that is, the data transmitted by the UEs received by the
2774 * physical layer at the eNodeB in the subframe (indicated by the timingInfo),
2775 * is relayed to MAC using this primitive.
2778 * @param datInd pointer to TfuDatIndInfo
2781 S16 TfUiTfuDatInd ARGS((Pst *pst, SuId suId, TfuDatIndInfo *datInd));
2783 /** @brief This primitive carries the HARQ Feedback from PHY to Scheduler.
2784 * @details HARQ feedback is sent by the UE to the eNodeB, an ACK is sent if UE
2785 * can successfully recieve the data transmitted by the eNodeB, else a NACK is
2786 * sent. This feedback is utilized by MAC for further scheduling, for instance
2787 * it can schedule an adaptive retransmission of the same data.
2790 * @param hqInd pointer to TfuHqIndInfo
2793 S16 TfUiTfuHqInd ARGS((Pst *pst, SuId suId, TfuHqIndInfo *hqInd));
2795 /** @brief This primitive carries the SR Indication from PHY to Scheduler.
2796 * @details Scheduling Request (SR) is sent by the UE to the eNodeB to request
2797 * for Uplink (UL) grant. This primitive carries a list of SRs for a number of
2798 * UEs received in the indicated subframe.
2801 * @param srInd pointer to TfuSrIndInfo
2804 S16 TfUiTfuSrInd ARGS((Pst *pst, SuId suId, TfuSrIndInfo *srInd));
2806 /** @brief This API is used to indicate CQI reporting from PHY to Scheduler.
2807 * @details This primitive carries an estimate of the Uplink Channel Quality
2808 * Index (CQI) for a list of UEs. This is an estimate of the uplink channel
2809 * quality, that is, the transmission from UE as calculated at the Physical layer at
2811 * It carries a list of sub-band CQIs for each UE.
2812 * @param pst Pointer to the post structure.
2813 * @param suId SAP ID of the service user.
2814 * @param ulCqiInd Pointer to the TfuUlCqiIndInfo structure.
2815 * @return ROK/RFAILED
2817 S16 TfUiTfuUlCqiInd ARGS((Pst *pst, SuId suId,
2818 TfuUlCqiIndInfo *ulCqiInd));
2820 /** @brief This API is used by the Physical layer to indicate if the CRC Check
2821 * on the PUSCH Data is successful or not.
2822 * @details This primitive carries CRC indication for a list of UEs. This
2823 * is utilized in the scenario where MAC requested the reception of Uplink data
2824 * for a particular UE. On reception of the PUSCH data, the CRC check on it
2825 * failed. This CRC failure is indicated to MAC, which utillizes this
2826 * information for further scheduling.
2827 * Physical layer indicates failure or success for each PUSCH transmission.
2828 * @param pst Pointer to the post structure.
2829 * @param suId SAP ID of the service user.
2830 * @param crcIndInfo Pointer to the TfuCrcIndInfo.
2831 * @return ROK/RFAILED
2833 S16 TfUiTfuCrcInd ARGS((Pst *pst, SuId suId,
2834 TfuCrcIndInfo *crcIndInfo));
2836 /** @brief This API is used to indicate a Timing Advance from PHY to Scheduler.
2837 * @details This primitive carries timing advance information for a number of
2838 * UEs that may need timing advance. Timing advance information is an estimate
2839 * of the timing adjustment that an UE needs to apply in order to be
2840 * synchronized in Uplink. This estimate is to be calculated by physical layer.
2841 * @param pst Pointer to the post structure.
2842 * @param suId SAP ID of the service user.
2843 * @param timingAdvInd Pointer to the TfuTimingAdvIndInfo structure.
2844 * @return ROK/RFAILED
2846 S16 TfUiTfuTimingAdvInd ARGS((Pst *pst, SuId suId,
2847 TfuTimingAdvIndInfo *timingAdvInd));
2850 /** @brief This API is the TTI indication from CL to MAC and SCH
2851 * @details This primitive provides the timing information (SFN and subframe)
2852 * which is currently running on the physical layer.
2853 * @param pst Pointer to the post structure.
2854 * @param suId SAP ID of the service user.
2855 * @param ttiInd Pointer to the TfuTtiCellInfo structure.
2856 * @return ROK/RFAILED
2858 S16 TfUiTfuTtiCell ARGS((Pst *pst, SuId suId,
2859 TfuTtiCellInfo *ttiInd));
2862 /** @brief This API is the TTI indication from CL to MAC and SCH
2863 * @details This primitive provides the timing information (SFN and subframe)
2864 * which is currently running on the physical layer.
2865 * @param pst Pointer to the post structure.
2866 * @param suId SAP ID of the service user.
2867 * @param ttiInd Pointer to the TfuTtiIndInfo structure.
2868 * @return ROK/RFAILED
2870 S16 TfUiTfuTtiInd ARGS((Pst *pst, SuId suId,
2871 TfuTtiIndInfo *ttiInd));
2873 /** @brief This API is the TTI indication from PHY to Scheduler.
2874 * @details This primitive provides the timing information (SFN and subframe)
2875 * which is currently running on the physical layer.
2876 * @param pst Pointer to the post structure.
2877 * @param suId SAP ID of the service user.
2878 * @param ttiInd Pointer to the TfuTtiIndInfo structure.
2879 * @return ROK/RFAILED
2881 S16 TfUiTfuSchTtiInd ARGS((Pst *pst, SuId suId,
2882 TfuTtiIndInfo *ttiInd));
2885 /** @brief This API is used to indicate the reception of CQI report from PHY to
2886 * Scheduler and also carries the Rank Index information.
2887 * @details This primitive carries the CQI (Channel Quality Index) report
2888 * for the downlink channel, sent by the UE. It is also used to report RI and
2890 * @param pst Pointer to the post structure.
2891 * @param suId SAP ID of the service user.
2892 * @param dlCqiInd Pointer to the TfuDlCqiIndInfo structure.
2893 * @return ROK/RFAILED
2895 S16 TfUiTfuDlCqiInd ARGS((Pst *pst, SuId suId,
2896 TfuDlCqiIndInfo *dlCqiInd));
2897 /** @brief This API is used to indicate the calculated DOA value report from PHY to
2899 * @details This primitive carries the DOA(Direction of arrival) report
2900 * calculated at PHYSICAL LAYER, for an UE.
2901 * @param pst Pointer to the post structure.
2902 * @param suId SAP ID of the service user.
2903 * @param doaInd Pointer to the TfuDoaIndInfo structure.
2904 * @return ROK/RFAILED
2906 S16 TfUiTfuDoaInd ARGS((Pst *pst, SuId suId,
2907 TfuDoaIndInfo *doaInd));
2910 /** @brief This primitive is used to convey PUCCH Delta Power calculated by the
2912 * @details This primitive is used to convey PUCCH Delta Power calculated by the
2913 * Physical layer. This information is utilized by the scheduler to perform
2914 * power control for the UEs.
2915 * @param pst Pointer to the post structure.
2916 * @param suId SAP ID of the service user.
2917 * @param pucchDeltaPwr Pointer to the TfuPucchDeltaPwrIndInfo structure.
2918 * @return ROK/RFAILED
2920 S16 TfUiTfuPucchDeltaPwrInd ARGS((Pst *pst, SuId suId,
2921 TfuPucchDeltaPwrIndInfo *pucchDeltaPwr));
2923 /** @brief LAA:This primitive carries the Error Indication from PHY to Scheduler.
2924 * This primitive is invoked when the transmission on the unlicensed Scell
2928 * @param errInd pointer to TfuErrIndInfo
2932 S16 TfUiTfuErrInd ARGS((Pst *pst, SuId suId,
2933 TfuErrIndInfo *errInd));
2934 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
2937 /** @brief This primitive is used to convey the information derived by the
2938 * physical layer from the SRS transmission from the UE.
2939 * @details This primitive carries information derived from the SRS transmission
2942 * @param pst Pointer to the post structure.
2943 * @param suId SAP ID of the service user.
2944 * @param srsInd Pointer to the TfuSrIndInfo structure.
2945 * @return ROK/RFAILED
2947 S16 TfUiTfuSrsInd ARGS((Pst *pst, SuId suId,
2948 TfuSrsIndInfo *srsInd));
2951 /** @brief This primitive is used to convey the Raw CQI information
2952 * transmitted by the UE.
2953 * @details Raw CQI report is the actual bits transmitted by the UE when
2954 * reporting CQI/PMI/RI. The interpretation of these bits to CQI/sub-band CQI
2955 * and so on, are done by MAC.
2957 * @param pst Pointer to the post structure.
2958 * @param suId SAP ID of the service user.
2959 * @param cqiInd Pointer to the TfuRawCqiIndInfo structure.
2960 * @return ROK/RFAILED
2962 S16 TfUiTfuRawCqiInd ARGS((Pst *pst, SuId suId,
2963 TfuRawCqiIndInfo *cqiInd));
2965 #endif /* TFU_UPGRADE */
2968 S16 RgLiTfuBndReq ARGS((
2973 S16 RgLiTfuBndCfm ARGS((
2978 S16 RgLiTfuUbndReq ARGS((
2984 S16 RgLiTfuSchBndReq ARGS((
2989 S16 RgLiTfuSchBndCfm ARGS((
2994 S16 RgLiTfuSchUbndReq ARGS((
3000 S16 RgLiTfuRaReqInd ARGS((
3003 TfuRaReqIndInfo * raReq
3007 S16 RgLiTfuRecpReq ARGS((
3010 TfuRecpReqInfo * recpReq
3013 S16 RgLiTfuUlCqiInd ARGS((
3016 TfuUlCqiIndInfo * ulCqiInd
3019 S16 RgLiTfuDoaInd ARGS((
3022 TfuDoaIndInfo * doaInd
3025 S16 RgLiTfuHqInd ARGS((
3028 TfuHqIndInfo * hqInd
3031 S16 RgLiTfuSrInd ARGS((
3034 TfuSrIndInfo * srInd
3037 S16 RgLiTfuDlCqiInd ARGS((
3040 TfuDlCqiIndInfo * dlCqiInd
3043 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
3045 S16 RgLiTfuRawCqiInd ARGS((
3048 TfuRawCqiIndInfo *rawCqiInd
3050 S16 RgLiTfuSrsInd ARGS((
3053 TfuSrsIndInfo *srsIndInfo
3056 S16 RgLiTfuDatInd ARGS((
3059 TfuDatIndInfo * datInd
3062 S16 RgLiTfuCrcInd ARGS((
3065 TfuCrcIndInfo * crcInd
3068 S16 RgLiTfuTimingAdvInd ARGS((
3071 TfuTimingAdvIndInfo * timingAdvInd
3074 S16 RgLiTfuDatReq ARGS((
3077 TfuDatReqInfo * datReq
3080 S16 RgLiTfuCntrlReq ARGS((
3083 TfuCntrlReqInfo * cntrlReq
3086 S16 RgLiTfuTtiInd ARGS((
3089 TfuTtiIndInfo * ttiInd
3092 #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
3093 S16 RgLiTfuNonRtInd ARGS((
3099 S16 RgLiTfuPucchDeltaPwrInd ARGS((
3102 TfuPucchDeltaPwrIndInfo *pucchDeltaPwr
3106 /** @brief LAA:This primitive carries the Error Indication from PHY to Scheduler.
3107 * This primitive is invoked when the transmission on the unlicensed Scell
3111 * @param errInd pointer to TfuErrIndInfo
3114 S16 RgLiTfuErrInd ARGS((Pst *pst, SuId suId, TfuErrIndInfo *errInd));
3117 /** @brief This primitive carries the cellId and UeId for which datReq need to
3119 * @details This primitive is used to delete datReq PDUs present in CL for
3120 * which got changed or similar other scenarios. These scenarios are possible
3121 * only when L2_OPTMZ flag is enabled.
3122 * @sa TfUiTfuDelDatReq
3125 * @param datReq pointer to TfuDelDatReqInfo
3128 S16 RgLiTfuDelDatReq ARGS((Pst *pst, SuId suId, TfuDelDatReqInfo *delDatReq));
3131 #if (defined(LCTFU))
3132 /** @brief This API is used to send a Bind Request from MAC to PHY.
3135 S16 cmPkTfuRbAssignA1Val324 ARGS((
3136 TfuRbAssignA1Val324 *param,
3139 S16 cmPkTfuRbAssignB1Val324 ARGS((
3140 TfuRbAssignB1Val324 *param,
3143 S16 cmPkTfuRbAssignVal326 ARGS((
3144 TfuRbAssignVal326 *param,
3147 S16 cmUnpkTfuRbAssignA1Val324 ARGS((
3148 TfuRbAssignA1Val324 *param,
3151 S16 cmUnpkTfuRbAssignB1Val324 ARGS((
3152 TfuRbAssignB1Val324 *param,
3155 S16 cmUnpkTfuRbAssignVal326 ARGS((
3156 TfuRbAssignVal326 *param,
3159 S16 cmPkTfuDciFormatA1A2Info ARGS((
3160 TfuDciFormatA1Info *param,
3163 S16 cmPkTfuDciFormatB1B2Info ARGS((
3164 TfuDciFormatB1Info *param,
3167 S16 cmUnpkTfuDciFormatA1A2Info ARGS((
3168 TfuDciFormatA1Info *param,
3171 S16 cmUnpkTfuDciFormatB1B2Info ARGS((
3172 TfuDciFormatB1Info *param,
3175 #endif /* TFU_5GTF */
3177 S16 cmPkTfuBndReq ARGS((
3182 /** @brief This API is used to send a Bind Request from MAC to PHY.
3184 S16 cmUnpkTfuBndReq ARGS((
3189 /** @brief This API is used to receive a Bind Confirm from PHY to MAC.
3191 S16 cmPkTfuBndCfm ARGS((
3196 /** @brief This API is used to receive a Bind Confirm from PHY to MAC.
3198 S16 cmUnpkTfuBndCfm ARGS((
3203 /** @brief This API is used to send an Unbind Request from MAC to PHY.
3205 S16 cmPkTfuUbndReq ARGS((
3210 /** @brief This API is used to send an Unbind Request from MAC to PHY.
3212 S16 cmUnpkTfuUbndReq ARGS((
3217 /** @brief This API is used to send a Bind Request from SCH to PHY.
3219 S16 cmPkTfuSchBndReq ARGS((
3224 /** @brief This API is used to send a Bind Request from SCH to PHY.
3226 S16 cmUnpkTfuSchBndReq ARGS((
3231 /** @brief This API is used to receive a Bind Confirm from PHY to SCH.
3233 S16 cmPkTfuSchBndCfm ARGS((
3238 /** @brief This API is used to receive a Bind Confirm from PHY to SCH.
3240 S16 cmUnpkTfuSchBndCfm ARGS((
3245 /** @brief This API is used to send an Unbind Request from SCH to PHY.
3247 S16 cmPkTfuSchUbndReq ARGS((
3252 /** @brief This API is used to send an Unbind Request from SCH to PHY.
3254 S16 cmUnpkTfuSchUbndReq ARGS((
3259 /** @brief This API is used to indication Random Access Request reception from
3262 S16 cmPkTfuRaReqInd ARGS((
3265 TfuRaReqIndInfo * raReqInd
3267 /** @brief This API is used to indication Random Access Request reception from
3270 S16 cmUnpkTfuRaReqInd ARGS((
3275 /** @brief This API is used to indication Random Access Request reception from
3278 S16 cmPkTfuRecpReq ARGS((
3281 TfuRecpReqInfo * recpReq
3283 /** @brief This API is used to indication Random Access Request reception from
3286 S16 cmUnpkTfuRecpReq ARGS((
3291 /** @brief This API is used to indicate CQI reporting from PHY to MAC.
3293 S16 cmPkTfuUlCqiInd ARGS((
3296 TfuUlCqiIndInfo * ulCqiInd
3298 /** @brief This API is used to indicate CQI reporting from PHY to MAC.
3300 S16 cmUnpkTfuUlCqiInd ARGS((
3306 S16 cmPkTfuHqInd ARGS((
3309 TfuHqIndInfo * hqInd
3312 S16 cmUnpkTfuHqInd ARGS((
3317 /** @brief This API is used to indicate a SR reception from PHY to MAC.
3319 S16 cmPkTfuSrInd ARGS((
3322 TfuSrIndInfo * srInd
3324 /** @brief This API is used to indicate a SR reception from PHY to MAC.
3326 S16 cmUnpkTfuSrInd ARGS((
3331 /** @brief This API is used to indicate the reception of CQI report from PHY to
3334 S16 cmPkTfuDlCqiInd ARGS((
3337 TfuDlCqiIndInfo * dlCqiInd
3339 /** @brief This API is used to indicate the reception of CQI report from PHY to
3342 S16 cmUnpkTfuDlCqiInd ARGS((
3348 /** @brief This API is used to indicate the Calculated DOA value report from PHY to
3350 S16 cmUnpkTfuDoaInd ARGS((
3355 /** @brief This API is used to indicate the calculated DOA Value report from PHY to
3358 S16 cmPkTfuDoaInd ARGS((
3361 TfuDoaIndInfo * doaInd
3364 /** @brief This API is used to indicate Data Reception from PHY to MAC.
3366 S16 cmPkTfuDatInd ARGS((
3369 TfuDatIndInfo * datInd
3371 /** @brief This API is used to indicate Data Reception from PHY to MAC.
3373 S16 cmUnpkTfuDatInd ARGS((
3378 /** @brief This API is used to indicate Decode failure from PHY to MAC.
3380 S16 cmPkTfuCrcInd ARGS((
3383 TfuCrcIndInfo * crcInd
3385 /** @brief This API is used to indicate Decode failure from PHY to MAC.
3387 S16 cmUnpkTfuCrcInd ARGS((
3393 S16 cmPkTfuCntrlReq ARGS((
3396 TfuCntrlReqInfo * cntrlReq
3399 S16 cmUnpkTfuCntrlReq ARGS((
3404 /** @brief This API is used to indicate a Timing Advance from PHY to MAC.
3406 S16 cmPkTfuTimingAdvInd ARGS((
3409 TfuTimingAdvIndInfo * timingAdvInd
3411 /** @brief This API is used to indicate a Timing Advance from PHY to MAC.
3413 S16 cmUnpkTfuTimingAdvInd ARGS((
3414 TfuTimingAdvInd func,
3418 /** @brief This API is used to send Data Request from MAC to PHY.
3420 S16 cmPkTfuDatReq ARGS((
3423 TfuDatReqInfo * datReq
3425 /** @brief This API is used to send Data Request from MAC to PHY.
3427 S16 cmUnpkTfuDatReq ARGS((
3433 /** @brief This API is the TTI indication from CL to MAC and SCH.
3435 S16 cmPkTfuTtiCell ARGS((
3438 TfuTtiCellInfo * ttiInd
3440 /** @brief This API is the TTI indication from CL to MAC and SCH.
3442 S16 cmUnpkTfuTtiCell ARGS((
3449 /** @brief This API is the TTI indication from PHY to MAC.
3451 S16 cmPkTfuTtiInd ARGS((
3454 TfuTtiIndInfo * ttiInd
3456 /** @brief This API is the TTI indication from PHY to MAC.
3458 S16 cmUnpackSlotInd ARGS((
3464 #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
3465 /** @brief This API is the non-rt indication from PHY to MAC.
3467 S16 cmPkTfuNonRtInd ARGS((
3472 /** @brief This API is the non-rt indication from PHY to MAC.
3474 S16 cmUnpkTfuNonRtInd ARGS((
3481 /** @brief This API is the TTI indication from PHY to SCH.
3483 S16 cmPkTfuSchTtiInd ARGS((
3486 TfuTtiIndInfo * ttiInd
3488 /** @brief This API is used to convey the PUCCH delta power from PHY to SCH.
3490 S16 cmPkTfuPucchDeltaPwrInd ARGS((
3493 TfuPucchDeltaPwrIndInfo * pucchDeltaPwr
3495 /** @brief This API is used to indicate Decode failure from PHY to MAC.
3497 S16 cmUnpkTfuPucchDeltaPwrInd ARGS((
3498 TfuPucchDeltaPwrInd func,
3505 /** @brief This API is used to send Group Power Control Request from MAC to PHY.
3507 S16 cmPkTfuGrpPwrCntrlReq ARGS((
3510 TfuGrpPwrCntrlReqInfo * grpPwrCntrlReq
3512 /** @brief This API is used to send Group Power Control Request from MAC to PHY.
3514 S16 cmUnpkTfuGrpPwrCntrlReq ARGS((
3515 TfuGrpPwrCntrlReq func,
3520 S16 cmPkTfuDciFormat0Info ARGS((
3521 TfuDciFormat0Info *param,
3524 S16 cmUnpkTfuDciFormat0Info ARGS((
3525 TfuDciFormat0Info *param,
3528 S16 cmPkTfuAllocMapOrRiv ARGS((
3529 TfuAllocMapOrRiv *param,
3532 S16 cmUnpkTfuAllocMapOrRiv ARGS((
3533 TfuAllocMapOrRiv *param,
3536 S16 cmPkTfuDciFormat1AllocInfo ARGS((
3537 TfuDciFormat1AllocInfo *param,
3540 S16 cmUnpkTfuDciFormat1AllocInfo ARGS((
3541 TfuDciFormat1AllocInfo *param,
3544 S16 cmPkTfuDciFormat1Info ARGS((
3545 TfuDciFormat1Info *param,
3548 S16 cmUnpkTfuDciFormat1Info ARGS((
3549 TfuDciFormat1Info *param,
3553 S16 cmPkTfuDciFormatTbInfo ARGS((
3554 TfuDciFormatTbInfo *param,
3557 S16 cmUnpkTfuDciFormatTbInfo ARGS((
3558 TfuDciFormatTbInfo *param,
3562 S16 cmPkTfuDciFormat2AAllocInfo ARGS((
3563 TfuDciFormat2AAllocInfo *param,
3566 S16 cmUnpkTfuDciFormat2AAllocInfo ARGS((
3567 TfuDciFormat2AAllocInfo *param,
3570 S16 cmPkTfuDciFormat2AInfo ARGS((
3571 TfuDciFormat2AInfo *param,
3574 S16 cmUnpkTfuDciFormat2AInfo ARGS((
3575 TfuDciFormat2AInfo *param,
3578 S16 cmPkTfuDciFormat2AllocInfo ARGS((
3579 TfuDciFormat2AllocInfo *param,
3582 S16 cmUnpkTfuDciFormat2AllocInfo ARGS((
3583 TfuDciFormat2AllocInfo *param,
3586 S16 cmPkTfuDciFormat2Info ARGS((
3587 TfuDciFormat2Info *param,
3590 S16 cmUnpkTfuDciFormat2Info ARGS((
3591 TfuDciFormat2Info *param,
3594 S16 cmPkTfuDciFormat3Info ARGS((
3595 TfuDciFormat3Info *param,
3598 S16 cmUnpkTfuDciFormat3Info ARGS((
3599 TfuDciFormat3Info *param,
3602 S16 cmPkTfuDciFormat3AInfo ARGS((
3603 TfuDciFormat3AInfo *param,
3606 S16 cmUnpkTfuDciFormat3AInfo ARGS((
3607 TfuDciFormat3AInfo *param,
3610 S16 cmPkTfuDciFormat1dAllocInfo ARGS((
3611 TfuDciFormat1dAllocInfo *param,
3614 S16 cmUnpkTfuDciFormat1dAllocInfo ARGS((
3615 TfuDciFormat1dAllocInfo *param,
3618 S16 cmPkTfuDciFormat1dInfo ARGS((
3619 TfuDciFormat1dInfo *param,
3622 S16 cmUnpkTfuDciFormat1dInfo ARGS((
3623 TfuDciFormat1dInfo *param,
3626 S16 cmPkTfuDciFormat1cInfo ARGS((
3627 TfuDciFormat1cInfo *param,
3630 S16 cmUnpkTfuDciFormat1cInfo ARGS((
3631 TfuDciFormat1cInfo *param,
3634 S16 cmPkTfuDciFormat1bAllocInfo ARGS((
3635 TfuDciFormat1bAllocInfo *param,
3638 S16 cmUnpkTfuDciFormat1bAllocInfo ARGS((
3639 TfuDciFormat1bAllocInfo *param,
3642 S16 cmPkTfuPdcchOrderInfo ARGS((
3643 TfuPdcchOrderInfo *param,
3646 S16 cmUnpkTfuPdcchOrderInfo ARGS((
3647 TfuPdcchOrderInfo *param,
3650 S16 cmPkTfuDciFormat1aAllocInfo ARGS((
3651 TfuDciFormat1aAllocInfo *param,
3654 S16 cmUnpkTfuDciFormat1aAllocInfo ARGS((
3655 TfuDciFormat1aAllocInfo *param,
3658 /*tfu_x_001.main_6 - Added for SPS support*/
3659 S16 cmPkTfudciformat1aPdsch ARGS((
3660 Tfudciformat1aPdsch *param,
3663 S16 cmUnpkTfudciformat1aPdsch ARGS((
3664 Tfudciformat1aPdsch *param,
3667 S16 cmPkTfuDciFormat1aInfo ARGS((
3668 TfuDciFormat1aInfo *param,
3671 S16 cmUnpkTfuDciFormat1aInfo ARGS((
3672 TfuDciFormat1aInfo *param,
3675 S16 cmPkTfuDciFormat1bInfo ARGS((
3676 TfuDciFormat1bInfo *param,
3679 S16 cmUnpkTfuDciFormat1bInfo ARGS((
3680 TfuDciFormat1bInfo *param,
3683 S16 cmPkTfuDciInfo ARGS((
3687 S16 cmUnpkTfuDciInfo ARGS((
3691 S16 cmPkTfuSubbandInfo ARGS((
3692 TfuSubbandInfo *param,
3695 S16 cmUnpkTfuSubbandInfo ARGS((
3696 TfuSubbandInfo *param,
3699 S16 cmPkTfuSubbandDlCqiInfo ARGS((
3700 TfuSubbandDlCqiInfo *param,
3703 S16 cmUnpkTfuSubbandDlCqiInfo ARGS((
3704 TfuSubbandDlCqiInfo *param,
3708 S16 cmPkTfuSubbandCqiInfo ARGS((
3709 TfuSubbandCqiInfo *param,
3712 S16 cmUnpkTfuSubbandCqiInfo ARGS((
3713 TfuSubbandCqiInfo *param,
3716 S16 cmPkTfuPdcchCceInfo ARGS((
3717 TfuPdcchCceInfo *param,
3720 S16 cmUnpkTfuPdcchCceInfo ARGS((
3721 TfuPdcchCceInfo *param,
3724 S16 cmPkTfuCqiPucchMode10 ARGS((
3725 TfuCqiPucchMode10 *param,
3728 S16 cmUnpkTfuCqiPucchMode10 ARGS((
3729 TfuCqiPucchMode10 *param,
3732 S16 cmPkTfuCqiMode11Cqi ARGS((
3733 TfuCqiMode11Cqi *param,
3736 S16 cmUnpkTfuCqiMode11Cqi ARGS((
3737 TfuCqiMode11Cqi *param,
3740 S16 cmPkTfuCqiPucchMode11 ARGS((
3741 TfuCqiPucchMode11 *param,
3744 S16 cmUnpkTfuCqiPucchMode11 ARGS((
3745 TfuCqiPucchMode11 *param,
3748 S16 cmPkTfuCqiMode20SubCqi ARGS((
3749 TfuCqiMode20SubCqi *param,
3752 S16 cmUnpkTfuCqiMode20SubCqi ARGS((
3753 TfuCqiMode20SubCqi *param,
3756 S16 cmPkTfuCqiMode20Cqi ARGS((
3757 TfuCqiMode20Cqi *param,
3760 S16 cmUnpkTfuCqiMode20Cqi ARGS((
3761 TfuCqiMode20Cqi *param,
3764 S16 cmPkTfuCqiPucchMode20 ARGS((
3765 TfuCqiPucchMode20 *param,
3768 S16 cmUnpkTfuCqiPucchMode20 ARGS((
3769 TfuCqiPucchMode20 *param,
3772 S16 cmPkTfuCqiMode21SubCqi ARGS((
3773 TfuCqiMode21SubCqi *param,
3776 S16 cmUnpkTfuCqiMode21SubCqi ARGS((
3777 TfuCqiMode21SubCqi *param,
3780 S16 cmPkTfuCqiMode21WideCqi ARGS((
3781 TfuCqiMode21WideCqi *param,
3784 S16 cmUnpkTfuCqiMode21WideCqi ARGS((
3785 TfuCqiMode21WideCqi *param,
3788 S16 cmPkTfuCqiMode21Cqi ARGS((
3789 TfuCqiMode21Cqi *param,
3792 S16 cmUnpkTfuCqiMode21Cqi ARGS((
3793 TfuCqiMode21Cqi *param,
3796 S16 cmPkTfuCqiPucchMode21 ARGS((
3797 TfuCqiPucchMode21 *param,
3800 S16 cmUnpkTfuCqiPucchMode21 ARGS((
3801 TfuCqiPucchMode21 *param,
3804 S16 cmPkTfuDlCqiPucch ARGS((
3805 TfuDlCqiPucch *param,
3808 S16 cmUnpkTfuDlCqiPucch ARGS((
3809 TfuDlCqiPucch *param,
3812 S16 cmPkTfuSubbandMode12 ARGS((
3813 TfuSubbandMode12 *param,
3816 S16 cmUnpkTfuSubbandMode12 ARGS((
3817 TfuSubbandMode12 *param,
3820 S16 cmPkTfuCqiPuschMode12 ARGS((
3821 TfuCqiPuschMode12 *param,
3824 S16 cmUnpkTfuCqiPuschMode12 ARGS((
3825 TfuCqiPuschMode12 *param,
3828 S16 cmPkTfuCqiPuschMode20 ARGS((
3829 TfuCqiPuschMode20 *param,
3832 S16 cmUnpkTfuCqiPuschMode20 ARGS((
3833 TfuCqiPuschMode20 *param,
3836 S16 cmPkTfuCqiPuschMode22 ARGS((
3837 TfuCqiPuschMode22 *param,
3840 S16 cmUnpkTfuCqiPuschMode22 ARGS((
3841 TfuCqiPuschMode22 *param,
3844 S16 cmPkTfuSubbandMode30 ARGS((
3845 TfuSubbandMode30 *param,
3848 S16 cmUnpkTfuSubbandMode30 ARGS((
3849 TfuSubbandMode30 *param,
3852 S16 cmPkTfuCqiPuschMode30 ARGS((
3853 TfuCqiPuschMode30 *param,
3856 S16 cmUnpkTfuCqiPuschMode30 ARGS((
3857 TfuCqiPuschMode30 *param,
3860 S16 cmPkTfuSubbandMode31 ARGS((
3861 TfuSubbandMode31 *param,
3864 S16 cmUnpkTfuSubbandMode31 ARGS((
3865 TfuSubbandMode31 *param,
3868 S16 cmPkTfuCqiPuschMode31 ARGS((
3869 TfuCqiPuschMode31 *param,
3872 S16 cmUnpkTfuCqiPuschMode31 ARGS((
3873 TfuCqiPuschMode31 *param,
3876 S16 cmPkTfuDlCqiPusch ARGS((
3877 TfuDlCqiPusch *param,
3880 S16 cmUnpkTfuDlCqiPusch ARGS((
3881 TfuDlCqiPusch *param,
3885 S16 cmPkTfuDlCqiPuschInfo ARGS((
3886 TfuDlCqiPuschInfo *param,
3889 S16 cmUnpkTfuDlCqiPuschInfo ARGS((
3890 TfuDlCqiPuschInfo *param,
3894 S16 cmPkTfuDoaRpt ARGS((
3898 S16 cmUnpkTfuDoaRpt ARGS((
3902 S16 cmPkTfuDoaIndInfo ARGS((
3903 TfuDoaIndInfo *param,
3906 S16 cmUnpkTfuDoaIndInfo ARGS((
3907 TfuDoaIndInfo *param,
3912 S16 cmPkTfuDlCqiInfo ARGS((
3914 TfuDlCqiInfo *param,
3917 S16 cmUnpkTfuDlCqiInfo ARGS((
3919 TfuDlCqiInfo *param,
3924 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
3926 S16 cmPkTfuUeMsg3RecpReq ARGS((
3927 TfuUeMsg3RecpReq *param,
3930 S16 cmUnpkTfuUeMsg3RecpReq ARGS((
3931 TfuUeMsg3RecpReq *param,
3937 /*tfu_x_001.main_8 - ADD - Prototype for TfuUePuschRecpReq Pk/Unpk functions */
3938 S16 cmPkTfuUePuschRecpReq ARGS((
3939 TfuUePuschRecpReq *param,
3942 S16 cmUnpkTfuUePuschRecpReq ARGS((
3943 TfuUePuschRecpReq *param,
3946 S16 cmPkTfuUePucchRecpReq ARGS((
3947 TfuUePucchRecpReq *param,
3950 S16 cmUnpkTfuUePucchRecpReq ARGS((
3951 TfuUePucchRecpReq *param,
3955 S16 cmPkTfuRecpReqInfo ARGS((
3956 TfuRecpReqInfo *param,
3959 S16 cmUnpkTfuRecpReqInfo ARGS((
3960 TfuRecpReqInfo *param,
3964 S16 cmPkTfuPdcchInfo ARGS((
3965 TfuPdcchInfo *param,
3968 S16 cmUnpkTfuPdcchInfo ARGS((
3969 TfuPdcchInfo *param,
3972 S16 cmPkTfuPhichInfo ARGS((
3973 TfuPhichInfo *param,
3976 S16 cmUnpkTfuPhichInfo ARGS((
3977 TfuPhichInfo *param,
3980 S16 cmPkTfuCntrlReqInfo ARGS((
3981 TfuCntrlReqInfo *param,
3984 S16 cmUnpkTfuCntrlReqInfo ARGS((
3985 TfuCntrlReqInfo *param,
3989 S16 cmPkTfuPdschDciInfo ARGS((
3990 TfuPdschDciInfo *param,
3993 S16 cmUnpkTfuPdschDciInfo ARGS((
3994 TfuPdschDciInfo *param,
3997 S16 cmPkTfuDatReqPduInfo ARGS((
3998 TfuDatReqPduInfo *param,
4001 S16 cmUnpkTfuDatReqPduInfo ARGS((
4002 TfuDatReqPduInfo *param,
4005 S16 cmPkTfuDatReqInfo ARGS((
4006 TfuDatReqInfo *param,
4009 S16 cmUnpkTfuDatReqInfo ARGS((
4010 TfuDatReqInfo *param,
4014 S16 cmPkTfuDatInfo ARGS((
4018 S16 cmUnpkTfuDatInfo ARGS((
4022 S16 cmPkTfuDatIndInfo ARGS((
4023 TfuDatIndInfo *param,
4026 S16 cmUnpkTfuDatIndInfo ARGS((
4027 TfuDatIndInfo *param,
4031 S16 cmPkTfuSrInfo ARGS((
4035 S16 cmUnpkTfuSrInfo ARGS((
4039 S16 cmPkTfuSrIndInfo ARGS((
4040 TfuSrIndInfo *param,
4043 S16 cmUnpkTfuSrIndInfo ARGS((
4044 TfuSrIndInfo *param,
4048 S16 cmPkTfuHqInfo ARGS((
4052 S16 cmUnpkTfuHqInfo ARGS((
4056 S16 cmPkTfuHqIndInfo ARGS((
4057 TfuHqIndInfo *param,
4060 S16 cmUnpkTfuHqIndInfo ARGS((
4061 TfuHqIndInfo *param,
4065 S16 cmPkTfuUlCqiInfo ARGS((
4066 TfuUlCqiInfo *param,
4069 S16 cmUnpkTfuUlCqiInfo ARGS((
4070 TfuUlCqiInfo *param,
4073 S16 cmPkTfuUlCqiRpt ARGS((
4077 S16 cmUnpkTfuUlCqiRpt ARGS((
4081 S16 cmPkTfuUlCqiIndInfo ARGS((
4082 TfuUlCqiIndInfo *param,
4085 S16 cmUnpkTfuUlCqiIndInfo ARGS((
4086 TfuUlCqiIndInfo *param,
4090 S16 cmPkTfuDlCqiRpt ARGS((
4094 S16 cmUnpkTfuDlCqiRpt ARGS((
4098 S16 cmPkTfuDlCqiIndInfo ARGS((
4099 TfuDlCqiIndInfo *param,
4102 S16 cmUnpkTfuDlCqiIndInfo ARGS((
4103 TfuDlCqiIndInfo *param,
4107 S16 cmPkTfuPucchDeltaPwr ARGS((
4110 TfuPucchDeltaPwrIndInfo * pucchDeltaPwr));
4112 S16 cmPkTfuPucchDeltaPwrInfo ARGS((
4113 TfuPucchDeltaPwr *param,
4117 S16 cmUnpkTfuPucchDeltaPwr ARGS((
4118 TfuPucchDeltaPwrInd func,
4122 S16 cmUnpkTfuPucchDeltaPwrInfo ARGS((
4123 TfuPucchDeltaPwr *param,
4127 S16 cmPkTfuCrcInfo ARGS((
4131 S16 cmUnpkTfuCrcInfo ARGS((
4135 S16 cmPkTfuCrcIndInfo ARGS((
4136 TfuCrcIndInfo *param,
4139 S16 cmUnpkTfuCrcIndInfo ARGS((
4140 TfuCrcIndInfo *param,
4145 S16 cmPkTfuPucchDeltaPwrIndInfo ARGS((
4146 TfuPucchDeltaPwrIndInfo *param,
4149 S16 cmUnpkTfuPucchDeltaPwrIndInfo ARGS((
4150 TfuPucchDeltaPwrIndInfo *param,
4154 S16 cmPkTfuTimingAdvInfo ARGS((
4155 TfuTimingAdvInfo *param,
4158 S16 cmUnpkTfuTimingAdvInfo ARGS((
4159 TfuTimingAdvInfo *param,
4162 S16 cmPkTfuTimingAdvIndInfo ARGS((
4163 TfuTimingAdvIndInfo *param,
4166 S16 cmUnpkTfuTimingAdvIndInfo ARGS((
4167 TfuTimingAdvIndInfo *param,
4172 S16 cmPkTfuTtiCellInfo ARGS((
4173 TfuTtiCellInfo *param,
4176 S16 cmUnpkTfuTtiCellInfo ARGS((
4177 TfuTtiCellInfo *param,
4181 S16 cmPkTfuTtiIndInfo ARGS((
4182 TfuTtiIndInfo *param,
4185 S16 cmUnpackSlotIndInfo ARGS((
4189 S16 cmPkTfuRaReqInfo ARGS((
4190 TfuRaReqInfo *param,
4193 S16 cmUnpkTfuRaReqInfo ARGS((
4194 TfuRaReqInfo *param,
4197 S16 cmPkTfuRachInfo ARGS((
4202 S16 cmUnpkTfuRachInfo ARGS((
4207 S16 cmPkTfuRaReqIndInfo ARGS((
4208 TfuRaReqIndInfo *param,
4211 S16 cmUnpkTfuRaReqIndInfo ARGS((
4212 TfuRaReqIndInfo *param,
4215 S16 cmPkBuffer ARGS((
4219 S16 cmUnpkBuffer ARGS((
4224 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
4226 S16 cmPkTfuSrsRpt ARGS((
4230 S16 cmUnpkTfuSrsRpt ARGS((
4234 S16 cmPkTfuSrsIndInfo ARGS((
4235 TfuSrsIndInfo *param,
4238 S16 cmUnpkTfuSrsIndInfo ARGS((
4239 TfuSrsIndInfo *param,
4243 S16 cmPkTfuRawCqiRpt ARGS((
4244 TfuRawCqiRpt *param,
4247 S16 cmUnpkTfuRawCqiRpt ARGS((
4248 TfuRawCqiRpt *param,
4251 S16 cmPkTfuRawCqiIndInfo ARGS((
4252 TfuRawCqiIndInfo *param,
4255 S16 cmUnpkTfuRawCqiIndInfo ARGS((
4256 TfuRawCqiIndInfo *param,
4263 S16 cmPkTfuUePucchHqRecpInfo ARGS((
4264 TfuUePucchHqRecpInfo *param,
4267 S16 cmUnpkTfuUePucchHqRecpInfo ARGS((
4268 TfuUePucchHqRecpInfo *param,
4274 #ifndef TFU_TDD /* else of TFU_TDD */
4276 S16 cmPkTfuUePucchHqRecpInfo ARGS((
4277 TfuUePucchHqRecpInfo *param,
4280 S16 cmUnpkTfuUePucchHqRecpInfo ARGS((
4281 TfuUePucchHqRecpInfo *param,
4287 S16 cmPkTfuUePucchSrRecpInfo ARGS((
4288 TfuUePucchSrRecpInfo *param,
4291 S16 cmUnpkTfuUePucchSrRecpInfo ARGS((
4292 TfuUePucchSrRecpInfo *param,
4295 S16 cmPkTfuUePucchCqiRecpInfo ARGS((
4296 TfuUePucchCqiRecpInfo *param,
4299 S16 cmUnpkTfuUePucchCqiRecpInfo ARGS((
4300 TfuUePucchCqiRecpInfo *param,
4303 S16 cmPkTfuUePucchSrsRecpInfo ARGS((
4304 TfuUePucchSrsRecpInfo *param,
4307 S16 cmUnpkTfuUePucchSrsRecpInfo ARGS((
4308 TfuUePucchSrsRecpInfo *param,
4311 S16 cmPkTfuUeUlSchRecpInfo ARGS((
4312 TfuUeUlSchRecpInfo *param,
4315 S16 cmUnpkTfuUeUlSchRecpInfo ARGS((
4316 TfuUeUlSchRecpInfo *param,
4319 S16 cmPkTfuUePuschCqiRecpInfo ARGS((
4320 TfuUePuschCqiRecpInfo *param,
4323 S16 cmUnpkTfuUePuschCqiRecpInfo ARGS((
4324 TfuUePuschCqiRecpInfo *param,
4327 S16 cmPkTfuUePuschHqRecpInfo ARGS((
4328 TfuUePuschHqRecpInfo *param,
4331 S16 cmUnpkTfuUePuschHqRecpInfo ARGS((
4332 TfuUePuschHqRecpInfo *param,
4336 S16 cmPkTfuBfVectorInfo ARGS ((
4337 TfuBfVectorInfo *param,
4341 S16 cmUnpkTfuBfVectorInfo ARGS ((
4342 TfuBfVectorInfo *param,
4345 #endif /* TFU_UPGRADE */
4346 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
4347 S16 cmPkTfuUeRecpReqInfo ARGS((
4348 TfuUeRecpReqInfo *param,
4351 S16 cmUnpkTfuUeRecpReqInfo ARGS((
4352 TfuUeRecpReqInfo *param,
4356 /* tfu_x_001.main_8. Added changes of TFU_UPGRADE */
4358 /** @brief This primitive is used to convey the Raw CQI information
4359 * transmitted by the UE.
4360 * @details Raw CQI report is the actual bits transmitted by the UE when
4361 * reporting CQI/PMI/RI. The interpretation of these bits to CQI/sub-band CQI
4362 * and so on, are done by MAC.
4364 * @param pst Pointer to the post structure.
4365 * @param suId SAP ID of the service user.
4366 * @param cqiInd Pointer to the TfuRawCqiIndInfo structure.
4367 * @return ROK/RFAILED
4369 S16 cmPkTfuRawCqiInd ARGS((
4372 TfuRawCqiIndInfo * rawCqiInd
4374 /** @brief This primitive is used to convey the Raw CQI information
4375 * transmitted by the UE.
4376 * @details Raw CQI report is the actual bits transmitted by the UE when
4377 * reporting CQI/PMI/RI. The interpretation of these bits to CQI/sub-band CQI
4378 * an so on, are done by MAC.
4380 * @param pst Pointer to the post structure.
4381 * @param suId SAP ID of the service user.
4382 * @param cqiInd Pointer to the TfuRawCqiIndInfo structure.
4383 * @return ROK/RFAILED
4385 S16 cmUnpkTfuRawCqiInd ARGS((
4390 /** @brief This primitive is used to convey the information derived by the
4391 * physical layer from the SRS transmission from the UE.
4392 * @details This primitive carries information derived from the SRS transmission
4395 * @param pst Pointer to the post structure.
4396 * @param suId SAP ID of the service user.
4397 * @param srsInd Pointer to the TfuSrIndInfo structure.
4398 * @return ROK/RFAILED
4400 S16 cmPkTfuSrsInd ARGS((
4403 TfuSrsIndInfo * srsInd
4405 /** @brief This primitive is used to convey the information derived by the
4406 * physical layer from the SRS transmission from the UE.
4407 * @details This primitive carries information derived from the SRS transmission
4410 * @param pst Pointer to the post structure.
4411 * @param suId SAP ID of the service user.
4412 * @param srsInd Pointer to the TfuSrIndInfo structure.
4413 * @return ROK/RFAILED
4415 S16 cmUnpkTfuSrsInd ARGS((
4422 /*tfu_x_001.main_6 - Added for SPS support*/
4424 S16 cmPkTfuAllocMap ARGS((
4428 S16 cmUnpkTfuAllocMap ARGS((
4433 S16 cmPkTfuDciFormat6AAllocInfo ARGS((
4434 TfuDciFormat61AllocInfo *param,
4437 S16 cmUnpkTfuDciFormat6AAllocInfo ARGS((
4438 TfuDciFormat61AllocInfo *param,
4441 S16 cmUnpkTfuDciFormat61aInfo ARGS((
4442 TfuDciFormat61aInfo *param,
4445 S16 cmUnpkTfuDciFormat62Info ARGS((
4446 TfuDciFormat62Info *param,
4450 S16 cmUnpkTfudciformat61aPdsch ARGS((
4451 Tfudciformat61aPdsch *param,
4454 S16 cmPkTfuDciFormat61aInfo ARGS((
4455 TfuDciFormat61aInfo *param,
4463 /* LTE_UNLICENSED */
4464 S16 cmPkTfuErrInd ARGS((
4467 TfuErrIndInfo * errInd
4470 S16 cmUnpkTfuErrInd ARGS((
4481 #endif /* __TFUX__ */
4483 /********************************************************************30**
4486 **********************************************************************/