/// Enumeration for parameter PHICH-Duration \ref PHICH_CONFIG_COMMON::phich_duration.
typedefenum{
normal=0,
extended=1
}PHICH_DURATION_t;
/// Enumeration for parameter Ng \ref PHICH_CONFIG_COMMON::phich_resource.
typedefenum{
oneSixth=1,
half=3,
one=6,
two=12
}PHICH_RESOURCE_t;
#endif
/// PHICH-Config from 36.331 RRC spec
typedefstruct{
/// Parameter: PHICH-Duration, see TS 36.211 (Table 6.9.3-1).
PHICH_DURATION_tphich_duration;
/// Parameter: Ng, see TS 36.211 (6.9). \details Value oneSixth corresponds to 1/6, half corresponds to 1/2 and so on.
PHICH_RESOURCE_tphich_resource;
}PHICH_CONFIG_COMMON;
/// PRACH-ConfigInfo from 36.331 RRC spec
typedefstruct{
/// Parameter: prach-ConfigurationIndex, see TS 36.211 (5.7.1). \vr{[0..63]}
uint8_tprach_ConfigIndex;
/// Parameter: High-speed-flag, see TS 36.211 (5.7.2). \vr{[0..1]} 1 corresponds to Restricted set and 0 to Unrestricted set.
uint8_thighSpeedFlag;
/// Parameter: \f$N_\text{CS}\f$, see TS 36.211 (5.7.2). \vr{[0..15]}\n Refer to table 5.7.2-2 for preamble format 0..3 and to table 5.7.2-3 for preamble format 4.
uint8_tzeroCorrelationZoneConfig;
/// Parameter: prach-FrequencyOffset, see TS 36.211 (5.7.1). \vr{[0..94]}\n For TDD the value range is dependent on the value of \ref prach_ConfigIndex.
uint8_tprach_FreqOffset;
}PRACH_CONFIG_INFO;
/// PRACH-ConfigSIB or PRACH-Config from 36.331 RRC spec
typedefstruct{
/// Parameter: RACH_ROOT_SEQUENCE, see TS 36.211 (5.7.1). \vr{[0..837]}
uint16_trootSequenceIndex;
/// prach_Config_enabled=1 means enabled. \vr{[0..1]}
uint8_tprach_Config_enabled;
/// PRACH Configuration Information
PRACH_CONFIG_INFOprach_ConfigInfo;
}PRACH_CONFIG_COMMON;
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
/// PRACH-eMTC-Config from 36.331 RRC spec
typedefstruct{
/// Parameter: High-speed-flag, see TS 36.211 (5.7.2). \vr{[0..1]} 1 corresponds to Restricted set and 0 to Unrestricted set.
uint8_thighSpeedFlag;
/// Parameter: \f$N_\text{CS}\f$, see TS 36.211 (5.7.2). \vr{[0..15]}\n Refer to table 5.7.2-2 for preamble format 0..3 and to table 5.7.2-3 for preamble format 4.
uint8_tzeroCorrelationZoneConfig;
/// Parameter: prach-FrequencyOffset, see TS 36.211 (5.7.1). \vr{[0..94]}\n For TDD the value range is dependent on the value of \ref prach_ConfigIndex.
/// PRACH starting subframe periodicity, expressed in number of subframes available for preamble transmission (PRACH opportunities), see TS 36.211. Value 2 corresponds to 2 subframes, 4 corresponds to 4 subframes and so on. EUTRAN configures the PRACH starting subframe periodicity larger than or equal to the Number of PRACH repetitions per attempt for each CE level (numRepetitionPerPreambleAttempt).
uint8_tprach_starting_subframe_periodicity[4];
/// number of repetitions per preamble attempt per CE level
uint8_tprach_numRepetitionPerPreambleAttempt[4];
/// prach configuration index for each CE level
uint8_tprach_ConfigIndex[4];
/// indicator for CE level activation
uint8_tprach_CElevel_enable[4];
/// prach frequency offset for each CE level
uint8_tprach_FreqOffset[4];
/// indicator for CE level hopping activation
uint8_tprach_hopping_enable[4];
/// indicator for CE level hopping activation
uint8_tprach_hopping_offset[4];
}PRACH_eMTC_CONFIG_INFO;
/// PRACH-ConfigSIB or PRACH-Config from 36.331 RRC spec
typedefstruct{
/// Parameter: RACH_ROOT_SEQUENCE, see TS 36.211 (5.7.1). \vr{[0..837]}
uint16_trootSequenceIndex;
/// prach_Config_enabled=1 means enabled. \vr{[0..1]}
uint8_tprach_Config_enabled;
/// PRACH Configuration Information
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
PRACH_eMTC_CONFIG_INFOprach_ConfigInfo;
#endif
}PRACH_eMTC_CONFIG_COMMON;
#endif
/// Enumeration for parameter \f$N_\text{ANRep}\f$ \ref PUCCH_CONFIG_DEDICATED::repetitionFactor.
typedefenum{
n2=0,
n4,
n6
}ACKNAKREP_t;
/// Enumeration for \ref PUCCH_CONFIG_DEDICATED::tdd_AckNackFeedbackMode.
typedefenum{
bundling=0,
multiplexing
}ANFBmode_t;
/// PUCCH-ConfigDedicated from 36.331 RRC spec
typedefstruct{
/// Flag to indicate ACK NAK repetition activation, see TS 36.213 (10.1). \vr{[0..1]}
uint8_tackNackRepetition;
/// Parameter: \f$N_\text{ANRep}\f$, see TS 36.213 (10.1).
ACKNAKREP_trepetitionFactor;
/// Parameter: \f$n^{(1)}_\text{PUCCH,ANRep}\f$, see TS 36.213 (10.1). \vr{[0..2047]}
uint16_tn1PUCCH_AN_Rep;
/// Feedback mode, see TS 36.213 (7.3). \details Applied to both PUCCH and PUSCH feedback. For TDD, should always be set to bundling.
ANFBmode_ttdd_AckNackFeedbackMode;
}PUCCH_CONFIG_DEDICATED;
/// PUCCH-ConfigCommon from 36.331 RRC spec
typedefstruct{
/// Parameter: \f$\Delta^\text{PUCCH}_\text{shift}\f$, see TS 36.211 (5.4.1). \vr{[1..3]} \note the specification sais it is an enumerated value.
uint8_tdeltaPUCCH_Shift;
/// Parameter: \f$N^{(2)}_\text{RB}\f$, see TS 36.211 (5.4). \vr{[0..98]}
uint8_tnRB_CQI;
/// Parameter: \f$N^{(1)}_\text{CS}\f$, see TS 36.211 (5.4). \vr{[0..7]}
uint8_tnCS_AN;
/// Parameter: \f$N^{(1)}_\text{PUCCH}\f$ see TS 36.213 (10.1). \vr{[0..2047]}
uint16_tn1PUCCH_AN;
/// group hopping sequence for DRS \note not part of offical UL-PUCCH_CONFIG_COMMON ASN1 specification.
uint8_tgrouphop[20];
/// sequence hopping sequence for DRS \note not part of offical UL-PUCCH_CONFIG_COMMON ASN1 specification.
uint8_tseqhop[20];
}PUCCH_CONFIG_COMMON;
/// UL-ReferenceSignalsPUSCH from 36.331 RRC spec
typedefstruct{
/// Parameter: Group-hopping-enabled, see TS 36.211 (5.5.1.3). \vr{[0..1]}
uint8_tgroupHoppingEnabled;
/// Parameter: \f$\Delta SS\f$, see TS 36.211 (5.5.1.3). \vr{[0..29]}
uint8_tgroupAssignmentPUSCH;
/// Parameter: Sequence-hopping-enabled, see TS 36.211 (5.5.1.4). \vr{[0..1]}
uint8_tsequenceHoppingEnabled;
/// Parameter: cyclicShift, see TS 36.211 (Table 5.5.2.1.1-2). \vr{[0..7]}
uint8_tcyclicShift;
/// nPRS for cyclic shift of DRS \note not part of offical UL-ReferenceSignalsPUSCH ASN1 specification.
uint8_tnPRS[20];
/// group hopping sequence for DRS \note not part of offical UL-ReferenceSignalsPUSCH ASN1 specification.
uint8_tgrouphop[20];
/// sequence hopping sequence for DRS \note not part of offical UL-ReferenceSignalsPUSCH ASN1 specification.
uint8_tseqhop[20];
}UL_REFERENCE_SIGNALS_PUSCH_t;
/// Enumeration for parameter Hopping-mode \ref PUSCH_CONFIG_COMMON::hoppingMode.
#ifndef OCP_FRAMEWORK
typedefenum{
interSubFrame=0,
intraAndInterSubFrame=1
}PUSCH_HOPPING_t;
#endif
/// PUSCH-ConfigCommon from 36.331 RRC spec.
typedefstruct{
/// Parameter: \f$N_{sb}\f$, see TS 36.211 (5.3.4). \vr{[1..4]}
uint8_tn_SB;
/// Parameter: Hopping-mode, see TS 36.211 (5.3.4).
PUSCH_HOPPING_thoppingMode;
/// Parameter: \f$N^{HO}_{RB}\f$, see TS 36.211 (5.3.4). \vr{[0..98]}
uint8_tpusch_HoppingOffset;
/// See TS 36.213 (8.6.1). \vr{[0..1]} 1 indicates 64QAM is allowed, 0 not allowed.
/// Parameter: \f$I^\text{HARQ-ACK}_\text{offset}\f$, see TS 36.213 (Table 8.6.3-1). \vr{[0..15]}
uint16_tbetaOffset_ACK_Index;
/// Parameter: \f$I^{RI}_\text{offset}\f$, see TS 36.213 (Table 8.6.3-2). \vr{[0..15]}
uint16_tbetaOffset_RI_Index;
/// Parameter: \f$I^{CQI}_\text{offset}\f$, see TS 36.213 (Table 8.6.3-3). \vr{[0..15]}
uint16_tbetaOffset_CQI_Index;
}PUSCH_CONFIG_DEDICATED;
/// lola CBA information
typedefstruct{
///
uint16_tbetaOffset_CA_Index;
///
uint16_tcShift;
}PUSCH_CA_CONFIG_DEDICATED;
/// PDSCH-ConfigCommon from 36.331 RRC spec
typedefstruct{
/// Parameter: Reference-signal power, see TS 36.213 (5.2). \vr{[-60..50]}\n Provides the downlink reference-signal EPRE. The actual value in dBm.
int8_treferenceSignalPower;
/// Parameter: \f$P_B\f$, see TS 36.213 (Table 5.2-1). \vr{[0..3]}
uint8_tp_b;
}PDSCH_CONFIG_COMMON;
/// Enumeration for Parameter \f$P_A\f$ \ref PDSCH_CONFIG_DEDICATED::p_a.
typedefenum{
dBm6=0,///< (dB-6) corresponds to -6 dB
dBm477,///< (dB-4dot77) corresponds to -4.77 dB
dBm3,///< (dB-3) corresponds to -3 dB
dBm177,///< (dB-1dot77) corresponds to -1.77 dB
dB0,///< corresponds to 0 dB
dB1,///< corresponds to 1 dB
dB2,///< corresponds to 2 dB
dB3///< corresponds to 3 dB
}PA_t;
/// PDSCH-ConfigDedicated from 36.331 RRC spec
typedefstruct{
/// Parameter: \f$P_A\f$, see TS 36.213 (5.2).
PA_tp_a;
}PDSCH_CONFIG_DEDICATED;
/// SoundingRS-UL-ConfigCommon Information Element from 36.331 RRC spec
typedefstruct{
/// enabled flag=1 means SRS is enabled. \vr{[0..1]}
uint8_tenabled_flag;
/// Parameter: SRS Bandwidth Configuration, see TS 36.211 (table 5.5.3.2-1, 5.5.3.2-2, 5.5.3.2-3 and 5.5.3.2-4). \vr{[0..7]}\n Actual configuration depends on UL bandwidth. \note the specification sais it is an enumerated value.
uint8_tsrs_BandwidthConfig;
/// Parameter: SRS SubframeConfiguration, see TS 36.211 (table 5.5.3.3-1 for FDD, table 5.5.3.3-2 for TDD). \vr{[0..15]} \note the specification sais it is an enumerated value.
uint8_tsrs_SubframeConfig;
/// Parameter: Simultaneous-AN-and-SRS, see TS 36.213 (8.2). \vr{[0..1]}
uint8_tackNackSRS_SimultaneousTransmission;
/// Parameter: srsMaxUpPts, see TS 36.211 (5.5.3.2). \details If this field is present, reconfiguration of \f$m^\text{max}_\text{SRS,0}\f$ applies for UpPts, otherwise reconfiguration does not apply.
uint8_tsrs_MaxUpPts;
}SOUNDINGRS_UL_CONFIG_COMMON;
/// \note UNUSED
typedefenum{
ulpc_al0=0,
ulpc_al04=1,
ulpc_al05=2,
ulpc_al06=3,
ulpc_al07=4,
ulpc_al08=5,
ulpc_al09=6,
ulpc_al11=7
}UL_POWER_CONTROL_COMMON_alpha_t;
/// Enumeration for \ref deltaFList_PUCCH_t::deltaF_PUCCH_Format1.
typedefenum{
deltaF_PUCCH_Format1_deltaF_2=0,
deltaF_PUCCH_Format1_deltaF0=1,
deltaF_PUCCH_Format1_deltaF2=2
}deltaF_PUCCH_Format1_t;
/// Enumeration for \ref deltaFList_PUCCH_t::deltaF_PUCCH_Format1b.
typedefenum{
deltaF_PUCCH_Format1b_deltaF1=0,
deltaF_PUCCH_Format1b_deltaF3=1,
deltaF_PUCCH_Format1b_deltaF5=2
}deltaF_PUCCH_Format1b_t;
/// Enumeration for \ref deltaFList_PUCCH_t::deltaF_PUCCH_Format2.
typedefenum{
deltaF_PUCCH_Format2_deltaF_2=0,
deltaF_PUCCH_Format2_deltaF0=1,
deltaF_PUCCH_Format2_deltaF1=2,
deltaF_PUCCH_Format2_deltaF2=3
}deltaF_PUCCH_Format2_t;
/// Enumeration for \ref deltaFList_PUCCH_t::deltaF_PUCCH_Format2a.
typedefenum{
deltaF_PUCCH_Format2a_deltaF_2=0,
deltaF_PUCCH_Format2a_deltaF0=1,
deltaF_PUCCH_Format2a_deltaF2=2
}deltaF_PUCCH_Format2a_t;
/// Enumeration for \ref deltaFList_PUCCH_t::deltaF_PUCCH_Format2b.
typedefenum{
deltaF_PUCCH_Format2b_deltaF_2=0,
deltaF_PUCCH_Format2b_deltaF0=1,
deltaF_PUCCH_Format2b_deltaF2=2
}deltaF_PUCCH_Format2b_t;
/// DeltaFList-PUCCH from 36.331 RRC spec
typedefstruct{
deltaF_PUCCH_Format1_tdeltaF_PUCCH_Format1;
deltaF_PUCCH_Format1b_tdeltaF_PUCCH_Format1b;
deltaF_PUCCH_Format2_tdeltaF_PUCCH_Format2;
deltaF_PUCCH_Format2a_tdeltaF_PUCCH_Format2a;
deltaF_PUCCH_Format2b_tdeltaF_PUCCH_Format2b;
}deltaFList_PUCCH_t;
/// SoundingRS-UL-ConfigDedicated Information Element from 36.331 RRC spec
typedefstruct{
/// This descriptor is active
uint8_tactive;
/// This descriptor's frame
uint16_tframe;
/// This descriptor's subframe
uint8_tsubframe;
/// rnti
uint16_trnti;
/// Parameter: \f$B_\text{SRS}\f$, see TS 36.211 (table 5.5.3.2-1, 5.5.3.2-2, 5.5.3.2-3 and 5.5.3.2-4). \vr{[0..3]} \note the specification sais it is an enumerated value.
uint8_tsrs_Bandwidth;
/// Parameter: SRS hopping bandwidth \f$b_\text{hop}\in\{0,1,2,3\}\f$, see TS 36.211 (5.5.3.2) \vr{[0..3]} \note the specification sais it is an enumerated value.
uint8_tsrs_HoppingBandwidth;
/// Parameter: \f$n_\text{RRC}\f$, see TS 36.211 (5.5.3.2). \vr{[0..23]}
uint8_tfreqDomainPosition;
/// Parameter: Duration, see TS 36.213 (8.2). \vr{[0..1]} 0 corresponds to "single" and 1 to "indefinite".
uint8_tduration;
/// Parameter: \f$k_\text{TC}\in\{0,1\}\f$, see TS 36.211 (5.5.3.2). \vr{[0..1]}
uint8_ttransmissionComb;
/// Parameter: \f$I_\text{SRS}\f$, see TS 36.213 (table 8.2-1). \vr{[0..1023]}
uint16_tsrs_ConfigIndex;
/// Parameter: \f$n^\text{CS}_\text{SRS}\f$. See TS 36.211 (5.5.3.1). \vr{[0..7]} \note the specification sais it is an enumerated value.
// Parameter: cell srs subframe for internal implementation
uint8_tsrsCellSubframe;
// Parameter: ue srs subframe for internal implementation
uint8_tsrsUeSubframe;
}SOUNDINGRS_UL_CONFIG_DEDICATED;
/// UplinkPowerControlDedicated Information Element from 36.331 RRC spec
typedefstruct{
/// Parameter: \f$P_\text{0\_UE\_PUSCH}(1)\f$, see TS 36.213 (5.1.1.1), unit dB. \vr{[-8..7]}\n This field is applicable for non-persistent scheduling, only.
int8_tp0_UE_PUSCH;
/// Parameter: Ks, see TS 36.213 (5.1.1.1). \vr{[0..1]}\n en0 corresponds to value 0 corresponding to state “disabled”. en1 corresponds to value 1.25 corresponding to “enabled”. \note the specification sais it is an enumerated value. \warning the enumeration values do not correspond to the given values in the specification (en1 should be 1.25).
uint8_tdeltaMCS_Enabled;
/// Parameter: Accumulation-enabled, see TS 36.213 (5.1.1.1). \vr{[0..1]} 1 corresponds to "enabled" whereas 0 corresponds to "disabled".
uint8_taccumulationEnabled;
/// Parameter: \f$P_\text{0\_UE\_PUCCH}(1)\f$, see TS 36.213 (5.1.2.1), unit dB. \vr{[-8..7]}
int8_tp0_UE_PUCCH;
/// Parameter: \f$P_\text{SRS\_OFFSET}\f$, see TS 36.213 (5.1.3.1). \vr{[0..15]}\n For Ks=1.25 (\ref deltaMCS_Enabled), the actual parameter value is pSRS_Offset value - 3. For Ks=0, the actual parameter value is -10.5 + 1.5*pSRS_Offset value.
int8_tpSRS_Offset;
/// Specifies the filtering coefficient for RSRP measurements used to calculate path loss, as specified in TS 36.213 (5.1.1.1).\details The same filtering mechanism applies as for quantityConfig described in 5.5.3.2. \note the specification sais it is an enumerated value.
uint8_tfilterCoefficient;
}UL_POWER_CONTROL_DEDICATED;
#ifndef OCP_FRAMEWORK
/// Enumeration for parameter \f$\alpha\f$ \ref UL_POWER_CONTROL_CONFIG_COMMON::alpha.
typedefenum{
al0=0,
al04=1,
al05=2,
al06=3,
al07=4,
al08=5,
al09=6,
al1=7
}PUSCH_alpha_t;
#endif
/// \note UNUSED
typedefenum{
deltaFm2=0,
deltaF0,
deltaF1,
deltaF2,
deltaF3,
deltaF5
}deltaF_PUCCH_t;
/// UplinkPowerControlCommon Information Element from 36.331 RRC spec \note this structure does not currently make use of \ref deltaFList_PUCCH_t.
typedefstruct{
/// Parameter: \f$P_\text{0\_NOMINAL\_PUSCH}(1)\f$, see TS 36.213 (5.1.1.1), unit dBm. \vr{[-126..24]}\n This field is applicable for non-persistent scheduling, only.
int8_tp0_NominalPUSCH;
/// Parameter: \f$\alpha\f$, see TS 36.213 (5.1.1.1) \warning the enumeration values do not correspond to the given values in the specification (al04 should be 0.4, ...)!
PUSCH_alpha_talpha;
/// Parameter: \f$P_\text{0\_NOMINAL\_PUCCH}\f$ See TS 36.213 (5.1.2.1), unit dBm. \vr{[-127..-96]}
int8_tp0_NominalPUCCH;
/// Parameter: \f$\Delta_\text{PREAMBLE\_Msg3}\f$ see TS 36.213 (5.1.1.1). \vr{[-1..6]}\n Actual value = IE value * 2 [dB].
int8_tdeltaPreambleMsg3;
/// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 1, see TS 36.213 (5.1.2). \vr{[0..2]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value.
longdeltaF_PUCCH_Format1;
/// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 1a, see TS 36.213 (5.1.2). \vr{[0..2]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value.
longdeltaF_PUCCH_Format1a;
/// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 1b, see TS 36.213 (5.1.2). \vr{[0..2]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value.
longdeltaF_PUCCH_Format1b;
/// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 2, see TS 36.213 (5.1.2). \vr{[0..3]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value.
longdeltaF_PUCCH_Format2;
/// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 2a, see TS 36.213 (5.1.2). \vr{[0..2]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value.
longdeltaF_PUCCH_Format2a;
/// Parameter: \f$\Delta_\text{F\_PUCCH}(F)\f$ for the PUCCH format 2b, see TS 36.213 (5.1.2). \vr{[0..2]} \warning check value range, why is this a long? \note the specification sais it is an enumerated value.
longdeltaF_PUCCH_Format2b;
}UL_POWER_CONTROL_CONFIG_COMMON;
/// Union for \ref TPC_PDCCH_CONFIG::tpc_Index.
typedefunion{
/// Index of N when DCI format 3 is used. See TS 36.212 (5.3.3.1.6). \vr{[1..15]}
uint8_tindexOfFormat3;
/// Index of M when DCI format 3A is used. See TS 36.212 (5.3.3.1.7). \vr{[1..31]}
uint8_tindexOfFormat3A;
}TPC_INDEX_t;
/// TPC-PDCCH-Config Information Element from 36.331 RRC spec
typedefstruct{
/// RNTI for power control using DCI format 3/3A, see TS 36.212. \vr{[0..65535]}
uint16_trnti;
/// Index of N or M, see TS 36.212 (5.3.3.1.6 and 5.3.3.1.7), where N or M is dependent on the used DCI format (i.e. format 3 or 3a).
TPC_INDEX_ttpc_Index;
}TPC_PDCCH_CONFIG;
/// Enumeration for parameter SR transmission \ref SCHEDULING_REQUEST_CONFIG::dsr_TransMax.
typedefenum{
sr_n4=0,
sr_n8=1,
sr_n16=2,
sr_n32=3,
sr_n64=4
}DSR_TRANSMAX_t;
/// SchedulingRequestConfig Information Element from 36.331 RRC spec
typedefstruct{
/// Parameter: \f$n^{(1)}_\text{PUCCH,SRI}\f$, see TS 36.213 (10.1). \vr{[0..2047]}
uint16_tsr_PUCCH_ResourceIndex;
/// Parameter: \f$I_\text{SR}\f$, see TS 36.213 (10.1). \vr{[0..155]}
uint8_tsr_ConfigIndex;
/// Parameter for SR transmission in TS 36.321 (5.4.4). \details The value n4 corresponds to 4 transmissions, n8 corresponds to 8 transmissions and so on.
/// Parameter: CQI/PMI Periodicity and Offset Configuration Index \f$I_\text{CQI/PMI}\f$, see TS 36.213 (tables 7.2.2-1A and 7.2.2-1C). \vr{[0..1023]}
int16_tcqi_PMI_ConfigIndex;
/// Parameter: K, see 36.213 (4.2.2). \vr{[1..4]}
uint8_tK;
/// Parameter: RI Config Index \f$I_\text{RI}\f$, see TS 36.213 (7.2.2-1B). \vr{[0..1023]}, -1 indicates inactivity
int16_tri_ConfigIndex;
/// Parameter: Simultaneous-AN-and-CQI, see TS 36.213 (10.1). \vr{[0..1]} 1 indicates that simultaneous transmission of ACK/NACK and CQI is allowed.
uint8_tsimultaneousAckNackAndCQI;
/// parameter computed from Tables 7.2.2-1A and 7.2.2-1C
uint16_tNpd;
/// parameter computed from Tables 7.2.2-1A and 7.2.2-1C
uint16_tN_OFFSET_CQI;
}CQI_REPORTPERIODIC;
/// Enumeration for parameter reporting mode \ref CQI_REPORT_CONFIG::cqi_ReportModeAperiodic.
typedefenum{
rm12=0,
rm20=1,
rm22=2,
rm30=3,
rm31=4
}CQI_REPORTMODEAPERIODIC;
/// CQI-ReportConfig Information Element from 36.331 RRC spec
typedefstruct{
/// Parameter: reporting mode. Value rm12 corresponds to Mode 1-2, rm20 corresponds to Mode 2-0, rm22 corresponds to Mode 2-2 etc. PUSCH reporting modes are described in TS 36.213 [23, 7.2.1].
CQI_REPORTMODEAPERIODICcqi_ReportModeAperiodic;
/// Parameter: \f$\Delta_\text{offset}\f$, see TS 36.213 (7.2.3). \vr{[-1..6]}\n Actual value = IE value * 2 [dB].
int8_tnomPDSCH_RS_EPRE_Offset;
CQI_REPORTPERIODICCQI_ReportPeriodic;
}CQI_REPORT_CONFIG;
/// MBSFN-SubframeConfig Information Element from 36.331 RRC spec \note deviates from specification.
typedefstruct{
/// MBSFN subframe occurance. \details Radio-frames that contain MBSFN subframes occur when equation SFN mod radioFrameAllocationPeriod = radioFrameAllocationOffset is satisfied. When fourFrames is used for subframeAllocation, the equation defines the first radio frame referred to in the description below. Values n1 and n2 are not applicable when fourFrames is used. \note the specification sais it is an enumerated value {n1, n2, n4, n8, n16, n32}.
intradioframeAllocationPeriod;
/// MBSFN subframe occurance. \vr{[0..7]}\n Radio-frames that contain MBSFN subframes occur when equation SFN mod radioFrameAllocationPeriod = radioFrameAllocationOffset is satisfied. When fourFrames is used for subframeAllocation, the equation defines the first radio frame referred to in the description below. Values n1 and n2 are not applicable when fourFrames is used.
/// "1" denotes that the corresponding subframe is allocated for MBSFN. The following mapping applies:\n FDD: The first/leftmost bit defines the MBSFN allocation for subframe #1, the second bit for #2, third bit for #3 , fourth bit for #6, fifth bit for #7, sixth bit for #8.\n TDD: The first/leftmost bit defines the allocation for subframe #3, the second bit for #4, third bit for #7, fourth bit for #8, fifth bit for #9. Uplink subframes are not allocated. The last bit is not used.
/// \par fourFrames_flag == 1
/// A bit-map indicating MBSFN subframe allocation in four consecutive radio frames, "1" denotes that the corresponding subframe is allocated for MBSFN. The bitmap is interpreted as follows:\n FDD: Starting from the first radioframe and from the first/leftmost bit in the bitmap, the allocation applies to subframes #1, #2, #3 , #6, #7, and #8 in the sequence of the four radio-frames.\n TDD: Starting from the first radioframe and from the first/leftmost bit in the bitmap, the allocation applies to subframes #3, #4, #7, #8, and #9 in the sequence of the four radio-frames. The last four bits are not used. Uplink subframes are not allocated.
intmbsfn_SubframeConfig;
}MBSFN_config_t;
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
typedefstruct{
intradioframeAllocationPeriod;
intradioframeAllocationOffset;
intnon_mbsfn_SubframeConfig;
}NonMBSFN_config_t;
#endif
typedefstruct{
/// Number of resource blocks (RB) in DL
uint8_tN_RB_DL;
/// Number of resource blocks (RB) in UL
uint8_tN_RB_UL;
/// EUTRA Band
uint8_teutra_band;
/// DL carrier frequency
uint32_tdl_CarrierFreq;
/// UL carrier frequency
uint32_tul_CarrierFreq;
/// TX attenuation
uint32_tatt_tx;
/// RX attenuation
uint32_tatt_rx;
/// total Number of Resource Block Groups: this is ceil(N_PRB/P)
uint8_tN_RBG;
/// Total Number of Resource Block Groups SubSets: this is P
uint8_tN_RBGS;
/// Cell ID
uint16_tNid_cell;
/// MBSFN Area ID
uint16_tNid_cell_mbsfn;
/// Cyclic Prefix for DL (0=Normal CP, 1=Extended CP)
lte_prefix_type_tNcp;
/// Cyclic Prefix for UL (0=Normal CP, 1=Extended CP)