/******************************************************************************* ################################################################################ # Copyright (c) [2017-2019] [Radisys] # # # # Licensed under the Apache License, Version 2.0 (the "License"); # # you may not use this file except in compliance with the License. # # You may obtain a copy of the License at # # # # http://www.apache.org/licenses/LICENSE-2.0 # # # # Unless required by applicable law or agreed to in writing, software # # distributed under the License is distributed on an "AS IS" BASIS, # # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # # See the License for the specific language governing permissions and # # limitations under the License. # ################################################################################ *******************************************************************************/ /********************************************************************** Name: LTE PHY layer Type: C Include File Desc: Structures, variables, and typedefs required by the LTE PHY and PHY-User Control (CTF) interface. File: ctf.x **********************************************************************/ #ifndef __CTF_X__ #define __CTF_X__ #ifdef __cplusplus extern "C" { #endif /** * @file * @brief CTF Interface File. */ /** * @brief * Configuration transaction identifier. */ /* Data Structures for CTF */ /** @brief Transaction ID between CTF and User. */ typedef struct ctfCfgTransId { uint8_t trans[CTF_CFG_TRANSID_SIZE]; /*!< User transaction ID */ } CtfCfgTransId; /* Enumerations for CTF */ /** * @enum ctfBandwidth * This element enumerates the Bandwidth values for PHY in terms of RBs. */ typedef enum { CTF_BW_RB_6, CTF_BW_RB_15, CTF_BW_RB_25, CTF_BW_RB_50, CTF_BW_RB_75, CTF_BW_RB_100 } CtfBandwidth; /** * @enum ctfDuplexMode * This element enumerates the duplex mode for the entire system at PHY. */ typedef enum { CTF_DUPMODE_FDD=1, CTF_DUPMODE_TDD } CtfDuplexMode; /** * @enum ctfSCSpacing * This element enumerates the sub-carrier spacing for configuration at PHY. */ typedef enum { CTF_SC_SPACING_15KHZ, CTF_SC_SPACING_7DOT5KHZ } CtfSCSpacing; /** * @enum ctfCPCfg * This element enumerates the cyclic prefix for use at PHY. */ typedef enum { CTF_CP_NORMAL, CTF_CP_EXTENDED } CtfCPCfg; /** * @brief * This element enumerates the number of antenna ports for configuration at PHY. */ typedef enum { CTF_AP_CNT_1 = 1, CTF_AP_CNT_2 = 2, CTF_AP_CNT_4 = 4 } CtfAntennaPortsCount; /** * @enum ctfPhichDuration * This element enumerates the duration for PHICH configuration at PHY. */ typedef enum { CTF_PHICH_DUR_NORMAL, CTF_PHICH_DUR_EXTENDED } CtfPhichDuration; /** * @enum ctfPhichResource * This element enumerates the resources for PHICH configuration at PHY. */ typedef enum { CTF_PHICH_RSRC_ONESIXTH, CTF_PHICH_RSRC_HALF, CTF_PHICH_RSRC_ONE, CTF_PHICH_RSRC_TWO } CtfPhichResource; /** * @enum ctfPuschHoppingMode * This element enumerates the hopping mode for PUSCH configuration at PHY. */ typedef enum { CTF_PUSCH_HOPMODE_INTER_SUBFRM, CTF_PUSCH_HOPMODE_INTRAANDINTERSUBFRM } CtfPuschHoppingMode; /** * @enum ctfPucchDeltaShift * This element enumerates the delta shift for PUCCH configuration at PHY. */ typedef enum { CTF_PUCCH_DELTASHIFT1, CTF_PUCCH_DELTASHIFT2, CTF_PUCCH_DELTASHIFT3 } CtfPucchDeltaShift; /** * @enum ctfPdschPaParam * This element enumerates the parameter PA for PDSCH configuration at PHY. * Each enum value maps to a PA value in dBs. */ typedef enum { CTF_PDSCH_PA_MINUS_6, CTF_PDSCH_PA_MINUS_4DOT77, CTF_PDSCH_PA_MINUS_3, CTF_PDSCH_PA_MINUS_1DOT77, CTF_PDSCH_PA_ZERO, CTF_PDSCH_PA_ONE, CTF_PDSCH_PA_TWO, CTF_PDSCH_PA_THREE } CtfPdschPaParam; /** * @enum CtfCqiRptModeAperiodic * This element enumerates the Aperiodic CQI reporting configuration at PHY. */ typedef enum { CTF_CQI_RPT_MODE_APERIODIC_RM12, /*!< Corresponds to Mode 1-2 */ CTF_CQI_RPT_MODE_APERIODIC_RM20, /*!< Corresponds to Mode 2-0 */ CTF_CQI_RPT_MODE_APERIODIC_RM22, /*!< Corresponds to Mode 2-2 */ CTF_CQI_RPT_MODE_APERIODIC_RM30, /*!< Corresponds to Mode 3-0 */ CTF_CQI_RPT_MODE_APERIODIC_RM31 /*!< Corresponds to Mode 3-1 */ } CtfCqiRptModeAperiodic; /** * @enum CtfUeTxAntSelectType * This element enumerates the UE TX Antenna selection configuration at PHY. */ typedef enum { CTF_UE_TX_ANT_SELECT_CLOSEDLOOP, /*!< Closed loop selection */ CTF_UE_TX_ANT_SELECT_OPENLOOP /*!< Open loop selection */ } CtfUeTxAntSelectType; /** * @enum CtfPucchRepFactor * This element enumerates the repetition factors for PUCCH configuration. */ typedef enum { CTF_PUCCH_REP_FACTOR_N2, /*!< Pucch repetition factor of 2 */ CTF_PUCCH_REP_FACTOR_N4, /*!< Pucch repetition factor of 4 */ CTF_PUCCH_REP_FACTOR_N6 /*!< Pucch repetition factor of 6 */ } CtfPucchRepFactor; #ifdef CTF_VER3 /* ctf_x_001.main_4:115549: */ /** * @enum CtfTddAckNackFBMode * This element enumerates the ACK/NACK feedback mode for TDD mode of * PUCCH configuration. */ typedef enum { CTF_PUCCH_TDD_ACKNACK_FB_MODE_BUNDLING, /*!< Bundling option */ CTF_PUCCH_TDD_ACKNACK_FB_MODE_MUXING /*!< Multiplexing option */ } CtfTddAckNackFBMode; #endif /* CTF_VER3 */ /** * @enum CtfUeTxAntMode * This element enumerates the UE Transmission mode. */ typedef enum { CTF_UE_TX_ANT_MODE_TM1, /*!< Transmission Mode 1 */ CTF_UE_TX_ANT_MODE_TM2, /*!< Transmission Mode 2 */ CTF_UE_TX_ANT_MODE_TM3, /*!< Transmission Mode 3 */ CTF_UE_TX_ANT_MODE_TM4, /*!< Transmission Mode 4 */ CTF_UE_TX_ANT_MODE_TM5, /*!< Transmission Mode 5 */ CTF_UE_TX_ANT_MODE_TM6, /*!< Transmission Mode 6 */ CTF_UE_TX_ANT_MODE_TM7 /*!< Transmission Mode 7 */ /* ctf_x_001.main_2: Added transmission mode 8*/ #ifdef CTF_VER1 ,CTF_UE_TX_ANT_MODE_TM8 /*!< Transmission Mode 8 */ #endif } CtfUeTxAntMode; /* ctf_x_001.main_3:Added enum for CTF reconfiguration */ /** * @enum CtfReCfgType * This element enumerates the CTF reconfiguration type */ typedef enum { CTF_MAJOR_RECFG, /*!< CTF Major reconfiguration */ CTF_MINOR_RECFG /*!< CTF Minor reconfiguration */ } CtfReCfgType; /** * @brief * UE ID information */ typedef struct ctfUeInfo { CmLteCellId cellId; /*!< Cell ID */ CmLteRnti ueId; /*!< UE ID */ }CtfUeInfo; /* Data Structures for CTF */ /** * @brief Bandwidth Configuration. * @details This structure contains the uplink and downlink bandwidth * information for configuration at PHY. */ typedef struct ctfBwCfgInfo { Bool pres; /*!< Present field */ CtfBandwidth dlBw; /*!< Downlink Bandwidth in RBs */ CtfBandwidth ulBw; /*!< Uplink Bandwidth in RBs */ uint8_t eUtraBand; /*!< EUTRA Operating Band - 36.104 (5.5) FDD:(1..14), TDD:(33..40) */ } CtfBwCfgInfo; /** * @brief Transmission Scheme Configuration. * @details This structure contains the transmission scheme related information. */ typedef struct ctfTxSchemeCfg { Bool pres; /*!< Present field */ CtfDuplexMode duplexMode; /*!< Duplexing Mode: TDD/FDD */ CtfSCSpacing scSpacing; /*!< Sub-carrier spacing */ CtfCPCfg cycPfx; /*!< Cyclic prefix */ } CtfTxSchemeCfg; /** * @brief Antenna Ports configuration. * @details This structure contains the antenna configuration information for * configuration at PHY. */ typedef struct ctfAntennaCfgInfo { CtfAntennaPortsCount antPortsCnt; /*!< Count of antenna ports */ } CtfAntennaCfgInfo; /** * @brief PRACH configuration. * @details This structure contains the configuration information for PRACH at PHY. * -# PRACH preamble sequences are generated by PHY using Zadoff-Chu * sequences.[Ref: 36.211, 5.7.2] * -# PRACH preamble format is derived from PRACH Configuration Index. * [Ref: 36.211, Table 5.7.1-2] * -# PrachFreqOffset is the first physical resource block allocated to * the PRACH opportunity considered for preamble format 0, 1, 2 and 3. * [Ref: 36.211, 5.7.1] */ typedef struct ctfPrachCfgInfo { Bool pres; /*!< Indicates the presence of this info */ uint16_t rootSequenceIndex; /*!< Range (0..837) */ uint8_t prachCfgIndex; /*!< Prach Config Index (0..63) */ uint8_t zeroCorrelationZoneCfg; /*!< Used for preamble sequence generation (36.211, 5.7.2); FDD:0..15, TDD:0..6 */ Bool highSpeedFlag; /*!< TRUE: Restricted set, FALSE: Unrestricted Set */ uint8_t prachFreqOffset; /*!< Range(0..94) */ } CtfPrachCfgInfo; /** * @brief PDSCH configuration. * @details This structure contains the PDSCH configuration information for * configuration at PHY. */ typedef struct ctfPdschCfgInfo { Bool pres; /*!< Indicates the presence of this info */ S16 refSigPwr; /*!< Provides downlink reference signal EPRE, in (-60..50)dBm */ uint8_t p_b; /*!< Range(0..3) [36.213, 5.2] */ } CtfPdschCfgInfo; /** * @brief Basic PUSCH configuration. * @details This structure contains the basic PUSCH configuration information for * configuration at PHY. */ typedef struct ctfPuschCfgBasic { uint8_t noOfsubBands; /*!< Number of sub-bands, (1..4) */ CtfPuschHoppingMode hoppingMode; /*!< Hopping Mode */ uint8_t hoppingOffset; /*!< Hopping Offset(0..98) */ Bool enable64QAM; /*!< 64 QAM,TRUE: enabled, FALSE: disabled */ } CtfPuschCfgBasic; /** * @brief PUSCH Uplink Reference Signals configuration. * @details This structure contains the PUSCH configuration information for * uplink reference signals configuration at PHY. */ typedef struct ctfPuschUlRS { Bool grpHopEnabled; /*!< Group hopping, TRUE: enabled, FALSE: disabled */ Bool seqHopEnabled; /*!< Sequence hopping, TRUE: enabled, FALSE: disabled */ uint8_t grpNum; /*!< Group number (0..29) */ uint8_t cycShift; /*!< Cyclic shift(0..7) */ } CtfPuschUlRS; /** * @brief PUSCH configuration. * @details This structure contains the information for PUSCH * configuration at PHY. */ typedef struct ctfPuschCfgInfo { Bool pres; /*!< Indicates the presence of PUSCH configuration info */ CtfPuschCfgBasic puschBasicCfg; /*!< PUSCH basic configuration */ CtfPuschUlRS puschUlRS; /*!< PUSCH uplink RS */ } CtfPuschCfgInfo; /** * @brief PHICH configuration. * @details This structure contains the duration and resource information for * PHICH configuration at PHY. */ typedef struct ctfPhichCfgInfo { Bool pres; /*!< Indicates the presence of PHICH configuration info */ CtfPhichDuration duration; /*!< PHICH duration, normal/extended, [36.211, 6.9.3-1] */ CtfPhichResource resource; /*!< PHICH Resource, Ng [36.211, 6.9] */ } CtfPhichCfgInfo; /** * @brief PUCCH configuration. * @details This structure contains the information for PUCCH * configuration at PHY. */ typedef struct ctfPucchCfgInfo { Bool pres; /*!< Indicates the presence of PUCCH configuration info */ uint8_t nRB; /*!< Number of RBs that are available for use by PUCCH formats (0..98) */ uint8_t nCS; /*!< Number of cyclic shifts used for PUCCH formats (0..7) */ uint16_t n1PUCCH; /*!< PUCCH resource for transmission of ACK/NACK (0..2047) */ CtfPucchDeltaShift deltaShift; /*!< PUCCH delta shift */ } CtfPucchCfgInfo; /** * @brief SRS uplink configuration. * @details This structure contains the information for setting-up/release * of uplink SRS configuration at PHY. */ typedef struct ctfSrsUlCfgInfo { Bool pres; /*!< Indicates the presence of UL SRS info */ uint8_t srsCfgType; /*!< Setup/Release: The setup structure is valid ,only if srcCfgType is setup. */ struct srsSetupS { uint8_t srsBw; /*!< SRS bandwidth config (0..7) */ uint8_t sfCfg; /*!< SRS sub-frame config (0..15) */ Bool srsANSimultTx; /*!< Simultaneous transmisson of SRS and ACK/NACK */ Bool srsMaxUpPts; /*!< SRS MaxUpPTS: TRUE/FALSE, This field is valid only for TDD */ } srsSetup; } CtfSrsUlCfgInfo; /** * @brief Subframe Configuration for TDD mode. * @details This structure contains the information for setting-up * the subframe for TDD mode at PHY. */ typedef struct ctfTddSfCfgInfo { Bool pres; /*!< Indicates if this info is valid */ uint8_t sfAssignment; /*!< UL-DL subframe assignment : (0..6) 36.211 Table 4.2-2 */ uint8_t spclSfPatterns; /*!< Special subframe configuration : (0..8) 36.211 Table 4.2-1 */ } CtfTddSfCfgInfo; /* ctf_x_001.main_4: Added support for vendor specific parameters */ #ifdef CTF_VER3 /** * @brief Vendor Specific Parameter * @details This structure contains the Parameters which is spaciftc to * Vendor. */ typedef struct ctfVendorSpecific{ uint16_t buffLen ; /*!< Length of parameters in bytes */ uint8_t *paramBuffer ; /*!< parameter Buffer */ } CtfVendorSpecific; #endif /* Cell specific configuration parameters */ /** * @brief Unlicensed Cell Configuration Information. * @details This structure contains the information for setting-up * of an unlicensed SDL cell and its associated resources at PHY. */ typedef struct ctfUnLicnsdCellCfg { uint8_t coExistMethod; /*!< Continuous/LTE-U/LAA */ uint8_t lteOnPeriod; /*!< Percentage of time SDL is active */ uint8_t ccaMethod; /*!< Clear channel assesment method */ Bool adaptiveTx; /*!< Indicates if the duty cycle is adaptive or fixed */ uint16_t transPeriod; /*!< Defines the duty cycle */ uint16_t listenPrd; /*!< Time duration in us for clear channel assessment */ S16 energyTh; /*!< Energy threshold in dBFS */ uint16_t scanTimePrd; /*!< Time period for RF channel scan */ uint16_t activityTh; /*!< Percentage of time for activity detection to select different EARFCN */ S32 txPowerLimit; /*! Reference Signal power for Unlicensed Cell */ uint8_t numFreq; /*!< Number of unlicensed channels */ uint32_t earfcn[CTF_LTEU_MAX_EARFCN]; /*!< Unlicensed channels */ } CtfUnLicnsdCfgInfo; typedef struct ctfLaaScanInd { S32 status; uint32_t nEarfcn; uint32_t earfcn[CTF_LTEU_MAX_EARFCN]; } CtfLaaScanInd; #ifdef EMTC_ENABLE typedef struct ctfEmtcCElevelInfoLst { uint8_t firstPreamble; /*!< for each CE mode, starting preamble */ uint8_t lastPreamble; /*!< for each CE mode, starting preamble */ uint8_t emtcNumRepPerPreambleAtt;/*!< num of repetition per preamble attempt*/ }CtfEmtcCElevelInfoLst; #endif /** * @brief Cell Configuration Information. * @details This structure contains the information for setting-up * of a cell and its associated resources at PHY. */ typedef struct ctfCellCfgInfo { CmLteCellId cellId; /*!< Cell ID */ uint8_t cellIdGrpId;/*!< Cell Identity Group ID (0..167) */ SpId macSapId; /*!< MAC SAP Id for Tfu Interface*/ SpId schSapId; /*!< Scheduler SAP Id for Tfu Interface */ /*ctf_x_001.main_3: Adding the remaining parameters */ Bool physCellIdPres ; uint8_t physCellId; /*!< Cell ID (0..2) */ CtfBwCfgInfo bwCfg; /*!< Bandwidth configuration */ CtfTxSchemeCfg txCfg; /*!< Basic transmission scheme configuration [36.300, 5.1.1] */ CtfAntennaCfgInfo antennaCfg; /*!< Antenna configuration */ CtfPrachCfgInfo prachCfg; /*!< PRACH configuration */ CtfPdschCfgInfo pdschCfg; /*!< PDSCH configuration */ CtfPuschCfgInfo puschCfg; /*!< PUSCH configuration */ CtfPhichCfgInfo phichCfg; /*!< PHICH configuration */ CtfPucchCfgInfo pucchCfg; /*!< PUCCH configuration */ CtfSrsUlCfgInfo srsUlCfg; /*!< SRS UL configuration, setup case */ CtfTddSfCfgInfo tddSfCfg; /*!< SubFrame configuration for TDD only */ /*ctf_x_001.main_3: Adding the remaining parameters */ uint16_t syncSigPowOs; /*!< Synchronization signal power offset */ Bool syncSigPowOsPres; uint16_t cfiPowOs; /*!< Cfi Power Offset */ Bool cfiPowOsPres; uint16_t dciPowOs; /*!< Dci Power Offser */ Bool dciPowOsPres; uint16_t extWinMargin; /*!< Extraction Window Marin */ Bool extWinMarginPres; uint16_t pucchNoiseGamma; /*!< PUCCH Noise Estimation Gamma*/ Bool pucchNoiseGammaPres; uint16_t prachPkRatio4; /*!< PRACH Format4 Peak Ratio */ Bool prachPkRatio4Pres; uint16_t prachPkRatio0; /*!< PRACH Format0 Peak Ratio */ Bool prachPkRatio0Pres; uint16_t srsDopEstFactor; /*!< Doppler Estimation Compensation Power */ Bool srsDopEstFactorPres; uint16_t puschProbDtxAck; /*!< Portability Dtx Ack PUSCH */ Bool puschProbDtxAckPres; uint16_t pucchProbDtxAck; /*!< Portability Dtx Ack PUCCH Format1 */ Bool pucchProbDtxAckPres; uint16_t txAntennaPorts ; /*!< The number of cell specific transmit antenna ports */ Bool txAntennaPortsPres; uint16_t rxAntennaPorts ; /*!< The number of cell specific receive antenna ports */ Bool rxAntennaPortsPres ; uint16_t phySyncMode; /*!< The method used by the PHY to signal the 1ms subframe */ Bool phySyncModePres; uint16_t dataRepMode; /*!< The data report mode for the uplink data */ Bool dataRepModePres ; uint16_t rachSrRepMode; /*!< The reporting mode for RACH.indication and SR.indcation */ Bool rachSrRepModePres; /* PHY configuration parameters */ uint16_t opMode; uint32_t counter; uint32_t period; S16 priSigPwr; S16 secSigPwr; uint16_t dlEarfcn; uint16_t ulEarfcn; /*Start Fix for CR ccpu00123185 */ S16 pilotSigPwr; /*End Fix for CR ccpu00123185 */ /* Added parameter for rgu dynamic delta*/ uint8_t numDlUePerTti; Bool unLicnsdCfgPres; /*!< Flag to indicate unlicensed cell config */ CtfUnLicnsdCfgInfo lteUCfg; /*!< Unlicensed carrier config */ #ifdef EMTC_ENABLE uint8_t catMenabled; uint8_t mPdcchStart; CtfEmtcCElevelInfoLst ceLevelInfo[CTF_MAX_CE_LEVEL]; #endif } CtfCellCfgInfo; /** * @enum CtfCellStatus * This element enumerates the Cell Status for configuration at PHY. */ typedef enum { CTF_CELL_DOWN, /*!< Cell DOWN selection */ CTF_CELL_UP /*!< Cell UP selection */ } CtfCellStatus; /** * @brief Cell Re-configuration Information. * @details This structure contains the information for reconfiguration * of a cell and its associated resources at PHY. */ typedef struct ctfCellRecfgInfo { CtfReCfgType ctfReCfgType ; CmLteCellId cellId; /*!< Cell ID */ /*ctf_x_001.main_3: Adding the remaining parameters */ uint8_t cellIdGrpId;/*!< Cell Identity Group ID (0..167) */ Bool physCellIdPres ; uint8_t physCellId; /*!< Cell ID (0..2) */ CtfBwCfgInfo bwCfg; /*!< Bandwidth configuration */ CtfTxSchemeCfg txCfg; /*!< Basic transmission scheme configuration [36.300, 5.1.1] */ CtfAntennaCfgInfo antennaCfg; /*!< Antenna configuration */ CmLteTimingInfo actvnTime; /*!< Activation time, only SFN is valid */ CtfPrachCfgInfo prachCfg; /*!< PRACH configuration */ CtfPdschCfgInfo pdschCfg; /*!< PDSCH configuration */ CtfPuschCfgInfo puschCfg; /*!< PUSCH configuration */ CtfPhichCfgInfo phichCfg; /*!< PHICH configuration */ CtfPucchCfgInfo pucchCfg; /*!< PUCCH configuration */ CtfSrsUlCfgInfo srsUlCfg; /*!< SRS UL configuration, setup case */ CtfTddSfCfgInfo tddSfCfg; /*!< SubFrame configuration for TDD only */ /*ctf_x_001.main_3: Adding the remaining parameters */ uint16_t syncSigPowOs; /*!< Synchronization signal power offset */ Bool syncSigPowOsPres; uint16_t cfiPowOs; /*!< Cfi Power Offset */ Bool cfiPowOsPres; uint16_t dciPowOs; /*!< Dci Power Offser */ Bool dciPowOsPres; uint16_t extWinMargin; /*!< Extraction Window Marin */ Bool extWinMarginPres; uint16_t pucchNoiseGamma; /*!< PUCCH Noise Estimation Gamma*/ Bool pucchNoiseGammaPres; uint16_t prachPkRatio4; /*!< PRACH Format4 Peak Ratio */ Bool prachPkRatio4Pres; uint16_t prachPkRatio0; /*!< PRACH Format0 Peak Ratio */ Bool prachPkRatio0Pres; uint16_t srsDopEstFactor; /*!< Doppler Estimation Compensation Power */ Bool srsDopEstFactorPres; uint16_t puschProbDtxAck; /*!< Portability Dtx Ack PUSCH */ Bool puschProbDtxAckPres; uint16_t pucchProbDtxAck; /*!< Portability Dtx Ack PUCCH Format1 */ Bool pucchProbDtxAckPres; uint16_t txAntennaPorts ; /*!< The number of cell specific transmit antenna ports */ Bool txAntennaPortsPres; uint16_t rxAntennaPorts ; /*!< The number of cell specific receive antenna ports */ Bool rxAntennaPortsPres ; uint16_t phySyncMode; /*!< The method used by the PHY to signal the 1ms subframe */ Bool phySyncModePres; uint16_t dataRepMode; /*!< The data report mode for the uplink data */ Bool dataRepModePres ; uint16_t rachSrRepMode; /*!< The reporting mode for RACH.indication and SR.indcation */ Bool rachSrRepModePres; /*Start Fix for CR ccpu00123185 */ S16 pilotSigPwr; S16 priSigPwr; S16 secSigPwr; /*End Fix for CR ccpu00123185 */ CtfCellStatus ctfCellStatus; #ifdef ENABLE_API_LOG uint8_t enableAPILog; #endif /* ENABLE_API_LOG */ } CtfCellRecfgInfo; /* UE-specific/Dedicated config parameters */ /** * @brief Dedicated PDSCH Configuration. * @details This structure contains the information for PDSCH configuration * specific to an UE. */ typedef struct ctfDedPdschCfgInfo { Bool pres; /*!< Indicates the presence of PDSCH configuration info */ CtfPdschPaParam pA; /*!< Pa (in dB) */ } CtfDedPdschCfgInfo; /** * @brief Dedicated PUCCH Configuration. * @details This structure contains the information for setting-up/release * PUCCH configuration specific to an UE. */ typedef struct ctfDedPucchCfgInfo { Bool pres; /*!< Indicates the presence of PUCCH info */ uint8_t dedPucchCfgType; /*!< Setup/Release */ struct pucchSetupS { #ifdef CTF_VER3 /* ctf_x_001.main_4:115549: */ Bool repFactPres; /*!< Indicates if repetition factor is configured or not */ #endif /* CTF_VER3 */ CtfPucchRepFactor repFact; /*!< ACK/NACK repetition factor */ uint16_t n1PUCCHRep; /*!< PUCCH resource to repeat the transmission of the corresponding ACK/NACK responce [36.213, 10.1] */ } pucchSetup; #ifdef CTF_VER3 /* ctf_x_001.main_4:115549: */ Bool tddAckNackCfgPres; /*! Present flag for TDD ACK/NACK config */ CtfTddAckNackFBMode tddAckNackFBMode; /*!< TDD ACK/NACK Feedback Mode (bundling, multiplexing) */ #endif /* CTF_VER3 */ } CtfDedPucchCfgInfo; /** * @brief Dedicated PUSCH Configuration. * @details This structure contains the information for PUCCH * configuration specific to an UE. */ typedef struct ctfDedPuschCfgInfo { Bool pres; /*!< Indicates the presence of PUSCH info */ uint8_t betaOffsetAckIdx; /*!< Beta offset ACK index, (0..15) [36.213, Table 8.6.3.-1] */ uint8_t betaOffsetRiIdx; /*!< Beta offset RI index, (0..15) [36.213, Table 8.6.3.-2] */ uint8_t betaOffsetCqiIdx; /*!< Beta offset CQI index, (0..15) [36.213, Table 8.6.3.-3] */ } CtfDedPuschCfgInfo; /* ctf_x_001.main_2: Added pmiRiRpt and cqiMask*/ #ifdef CTF_VER1 /** * @enum ctfPmiRiRptSetup * This element enumerates the CQI PMI Report setup configuration at PHY. */ typedef enum ctfPmiRiRptSetup { CTF_CQI_PMI_RPT_SETUP /*!< PMI Report setup */ } CtfPmiRiRptSetup; /** * @struct ctfPmiRiRpt * This struct contains the CQI PMI Report setup configuration at PHY. */ typedef struct ctfPmiRiRpt { Bool pres; /*!< Indicates presence of Pmi Ri Rpt */ CtfPmiRiRptSetup pmiRiRptSetup; /*!< PMI Report setup */ } CtfPmiRiRpt; /** * @enum ctfCqiMaskSetup * This element enumerates the CQI reporting setup configuration at PHY. */ typedef enum ctfCqiMaskSetup { CTF_CQI_RPT_SETUP /*!< Cqi report setup */ } CtfCqiMaskSetup; /** * @struct ctfCqiMask * This struct contains the CQI reporting setup configuration at PHY. */ typedef struct ctfCqiMask { Bool pres; /*!< Presence field */ CtfCqiMaskSetup cqiMaskSetup; /*!< Cqi Report Setup */ } CtfCqiMask; #endif /* CTF_VER1 */ #ifndef TFU_UPGRADE /* ctf_x_001.main_2: Moved aPeriodic enum to seperate structure*/ #ifdef CTF_VER2 /* Moved aPeriodic enum to seperate structure */ /** * @brief APeriodic CQI Report Configuration. * @details This structure contains the information for Aperiodic CQI report * related configuration specific to an UE. */ typedef struct ctfCqiReportModeAPeriodic { Bool pres; CtfCqiRptModeAperiodic aPeriodicRptMode; /*!