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