A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::WifiTxVector Class Reference

This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters which are to be used for a transmission. More...

#include "wifi-tx-vector.h"

+ Collaboration diagram for ns3::WifiTxVector:

Public Types

typedef std::map< uint16_t, HeMuUserInfoHeMuUserInfoMap
 map of HE MU specific user info parameters indexed by STA-ID
 
using UserInfoMapOrderedByRus = std::map<HeRu::RuSpec, std::set<uint16_t>, HeRu::RuSpecCompare>
 map of specific user info parameters ordered per increasing frequency RUs
 

Public Member Functions

 WifiTxVector ()
 
 WifiTxVector (const WifiTxVector &txVector)
 Copy constructor.
 
 WifiTxVector (WifiMode mode, uint8_t powerLevel, WifiPreamble preamble, Time guardInterval, uint8_t nTx, uint8_t nss, uint8_t ness, MHz_u channelWidth, bool aggregation, bool stbc=false, bool ldpc=false, uint8_t bssColor=0, uint16_t length=0, bool triggerResponding=false)
 Create a TXVECTOR with the given parameters.
 
uint8_t GetBssColor () const
 Get the BSS color.
 
std::optional< Center26ToneRuIndicationGetCenter26ToneRuIndication () const
 Get CENTER_26_TONE_RU field This field is present if format is HE_MU and when channel width is set to 80 MHz or larger.
 
MHz_u GetChannelWidth () const
 
uint8_t GetEhtPpduType () const
 Get the EHT_PPDU_TYPE parameter.
 
Time GetGuardInterval () const
 
HeMuUserInfo GetHeMuUserInfo (uint16_t staId) const
 Get the HE MU user-specific transmission information for the given STA-ID.
 
HeMuUserInfoMapGetHeMuUserInfoMap ()
 Get a reference to the map HE MU user-specific transmission information indexed by STA-ID.
 
const HeMuUserInfoMapGetHeMuUserInfoMap () const
 Get a const reference to the map HE MU user-specific transmission information indexed by STA-ID.
 
const std::vector< bool > & GetInactiveSubchannels () const
 Get the 20 MHz subchannels that are punctured.
 
uint16_t GetLength () const
 Get the LENGTH field of the L-SIG.
 
WifiMode GetMode (uint16_t staId=SU_STA_ID) const
 If this TX vector is associated with an SU PPDU, return the selected payload transmission mode.
 
bool GetModeInitialized () const
 
WifiModulationClass GetModulationClass () const
 Get the modulation class specified by this TXVECTOR.
 
uint8_t GetNess () const
 
uint8_t GetNss (uint16_t staId=SU_STA_ID) const
 If this TX vector is associated with an SU PPDU, return the number of spatial streams.
 
uint8_t GetNssMax () const
 
uint8_t GetNssTotal () const
 
uint8_t GetNTx () const
 
WifiPreamble GetPreambleType () const
 
HeRu::RuSpec GetRu (uint16_t staId) const
 Get the RU specification for the STA-ID.
 
const RuAllocationGetRuAllocation (uint8_t p20Index) const
 Get RU_ALLOCATION field.
 
WifiMode GetSigBMode () const
 Get MCS used for SIG-B.
 
uint8_t GetTxPowerLevel () const
 
UserInfoMapOrderedByRus GetUserInfoMapOrderedByRus (uint8_t p20Index) const
 Get the map of specific user info parameters ordered per increasing frequency RUs.
 
bool IsAggregation () const
 Checks whether the PSDU contains A-MPDU.
 
bool IsAllocated (uint16_t staId) const
 Check if STA ID is allocated.
 
bool IsDlMu () const
 
bool IsDlMuMimo () const
 Return true if this TX vector is used for a downlink multi-user transmission using MU-MIMO.
 
bool IsDlOfdma () const
 Return true if this TX vector is used for a downlink multi-user transmission using OFDMA.
 
bool IsLdpc () const
 Check if LDPC FEC coding is used or not.
 
bool IsMu () const
 
bool IsNonHtDuplicate () const
 Checks whether this TXVECTOR corresponds to a non-HT duplicate.
 
bool IsSigBCompression () const
 Indicate whether the Common field is present in the HE-SIG-B field.
 
bool IsStbc () const
 Check if STBC is used or not.
 
bool IsTriggerResponding () const
 Return true if the Trigger Responding parameter is set to true, false otherwise.
 
bool IsUlMu () const
 
bool IsValid (WifiPhyBand band=WIFI_PHY_BAND_UNSPECIFIED) const
 The standard disallows certain combinations of WifiMode, number of spatial streams, and channel widths.
 
void SetAggregation (bool aggregation)
 Sets if PSDU contains A-MPDU.
 
void SetBssColor (uint8_t color)
 Set the BSS color.
 
void SetCenter26ToneRuIndication (Center26ToneRuIndication center26ToneRuIndication)
 Set CENTER_26_TONE_RU field.
 
void SetChannelWidth (MHz_u channelWidth)
 Sets the selected channelWidth.
 
void SetEhtPpduType (uint8_t type)
 Set the EHT_PPDU_TYPE parameter.
 
void SetGuardInterval (Time guardInterval)
 Sets the guard interval duration (in nanoseconds)
 
void SetHeMuUserInfo (uint16_t staId, HeMuUserInfo userInfo)
 Set the HE MU user-specific transmission information for the given STA-ID.
 
void SetInactiveSubchannels (const std::vector< bool > &inactiveSubchannels)
 Set the 20 MHz subchannels that are punctured.
 
void SetLdpc (bool ldpc)
 Sets if LDPC FEC coding is being used.
 
void SetLength (uint16_t length)
 Set the LENGTH field of the L-SIG.
 
void SetMode (WifiMode mode)
 Sets the selected payload transmission mode.
 
void SetMode (WifiMode mode, uint16_t staId)
 Sets the selected payload transmission mode for a given STA ID (for MU only)
 
void SetNess (uint8_t ness)
 Sets the Ness number.
 
void SetNss (uint8_t nss)
 Sets the number of Nss.
 
void SetNss (uint8_t nss, uint16_t staId)
 Sets the number of Nss for MU.
 
void SetNTx (uint8_t nTx)
 Sets the number of TX antennas.
 
void SetPreambleType (WifiPreamble preamble)
 Sets the preamble type.
 
void SetRu (HeRu::RuSpec ru, uint16_t staId)
 Set the RU specification for the STA-ID.
 
void SetRuAllocation (const RuAllocation &ruAlloc, uint8_t p20Index)
 Set RU_ALLOCATION field.
 
void SetSigBMode (const WifiMode &mode)
 Set the MCS used for SIG-B.
 
void SetStbc (bool stbc)
 Sets if STBC is being used.
 
void SetTriggerResponding (bool triggerResponding)
 Set the Trigger Responding parameter to the given value.
 
void SetTxPowerLevel (uint8_t powerlevel)
 Sets the selected transmission power level.
 

Private Member Functions

Center26ToneRuIndication DeriveCenter26ToneRuIndication () const
 Derive the CENTER_26_TONE_RU field from the TXVECTOR for which its CENTER_26_TONE_RU has not been set yet, based on the content of per-user information.
 
RuAllocation DeriveRuAllocation (uint8_t p20Index) const
 Derive the RU_ALLOCATION field from the TXVECTOR for which its RU_ALLOCATION field has not been set yet, based on the content of per-user information.
 
uint8_t GetNumStasInRu (const HeRu::RuSpec &ru) const
 Get the number of STAs in a given RU.
 

Private Attributes

bool m_aggregation
 Flag whether the PSDU contains A-MPDU.
 
uint8_t m_bssColor
 BSS color.
 
std::optional< Center26ToneRuIndicationm_center26ToneRuIndication
 CENTER_26_TONE_RU field when format is HE_MU and when channel width is set to 80 MHz or larger (Table 27-1 802.11ax-2021)
 
MHz_u m_channelWidth
 channel width
 
uint8_t m_ehtPpduType
 EHT_PPDU_TYPE per Table 36-1 IEEE 802.11be D2.3.
 
Time m_guardInterval
 guard interval duration
 
std::vector< bool > m_inactiveSubchannels
 Bitmap of inactive subchannels used for preamble puncturing.
 
bool m_ldpc
 LDPC FEC coding if true, BCC otherwise.
 
uint16_t m_length
 LENGTH field of the L-SIG.
 
WifiMode m_mode
 The DATARATE parameter in Table 15-4.
 
bool m_modeInitialized
 Internal initialization flag.
 
HeMuUserInfoMap m_muUserInfos
 HE MU specific per-user information indexed by station ID (STA-ID) corresponding to the 11 LSBs of the AID of the recipient STA This list shall be used only for HE MU.
 
uint8_t m_ness
 number of spatial streams in beamforming
 
uint8_t m_nss
 number of spatial streams
 
uint8_t m_nTx
 number of TX antennas
 
WifiPreamble m_preamble
 preamble
 
RuAllocation m_ruAllocation
 RU allocations that are going to be carried in SIG-B common field per Table 27-1 IEEE.
 
WifiMode m_sigBMcs
 MCS_SIG_B per Table 27-1 IEEE 802.11ax-2021.
 
bool m_stbc
 STBC used or not.
 
bool m_triggerResponding
 The Trigger Responding parameter.
 
uint8_t m_txPowerLevel
 The TXPWR_LEVEL parameter in Table 15-4.
 

Detailed Description

This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters which are to be used for a transmission.

See IEEE 802.11-2016 16.2.5 "Transmit PHY", and also 8.3.4.1 "PHY SAP peer-to-peer service primitive parameters".

If this class is constructed with the constructor that takes no arguments, then the client must explicitly set the mode and transmit power level parameters before using them. Default member initializers are provided for the other parameters, to conform to a non-MIMO/long guard configuration, although these may also be explicitly set after object construction.

When used in a infrastructure context, WifiTxVector values should be drawn from WifiRemoteStationManager parameters since rate adaptation is responsible for picking the mode, number of streams, etc., but in the case in which there is no such manager (e.g. mesh), the client still needs to initialize at least the mode and transmit power level appropriately.

Note
the above reference is valid for the DSSS PHY only (clause 16). TXVECTOR is defined also for the other PHYs, however they don't include the TXPWRLVL explicitly in the TXVECTOR. This is somewhat strange, since all PHYs actually have a PMD_TXPWRLVL.request primitive. We decide to include the power level in WifiTxVector for all PHYs, since it serves better our purposes, and furthermore it seems close to the way real devices work (e.g., madwifi).

Definition at line 100 of file wifi-tx-vector.h.

Member Typedef Documentation

◆ HeMuUserInfoMap

typedef std::map<uint16_t , HeMuUserInfo > ns3::WifiTxVector::HeMuUserInfoMap

map of HE MU specific user info parameters indexed by STA-ID

Definition at line 105 of file wifi-tx-vector.h.

◆ UserInfoMapOrderedByRus

map of specific user info parameters ordered per increasing frequency RUs

Definition at line 437 of file wifi-tx-vector.h.

Constructor & Destructor Documentation

◆ WifiTxVector() [1/3]

ns3::WifiTxVector::WifiTxVector ( )

Definition at line 25 of file wifi-tx-vector.cc.

◆ WifiTxVector() [2/3]

ns3::WifiTxVector::WifiTxVector ( WifiMode mode,
uint8_t powerLevel,
WifiPreamble preamble,
Time guardInterval,
uint8_t nTx,
uint8_t nss,
uint8_t ness,
MHz_u channelWidth,
bool aggregation,
bool stbc = false,
bool ldpc = false,
uint8_t bssColor = 0,
uint16_t length = 0,
bool triggerResponding = false )

Create a TXVECTOR with the given parameters.

Parameters
modeWifiMode
powerLeveltransmission power level
preamblepreamble type
guardIntervalthe guard interval duration in nanoseconds
nTxthe number of TX antennas
nssthe number of spatial STBC streams (NSS)
nessthe number of extension spatial streams (NESS)
channelWidththe channel width
aggregationenable or disable MPDU aggregation
stbcenable or disable STBC
ldpcenable or disable LDPC (BCC is used otherwise)
bssColorthe BSS color
lengththe LENGTH field of the L-SIG
triggerRespondingthe Trigger Responding parameter

Definition at line 47 of file wifi-tx-vector.cc.

◆ WifiTxVector() [3/3]

ns3::WifiTxVector::WifiTxVector ( const WifiTxVector & txVector)

Copy constructor.

Parameters
txVectorthe TXVECTOR to copy

Definition at line 83 of file wifi-tx-vector.cc.

References m_muUserInfos.

Member Function Documentation

◆ DeriveCenter26ToneRuIndication()

Center26ToneRuIndication ns3::WifiTxVector::DeriveCenter26ToneRuIndication ( ) const
private

Derive the CENTER_26_TONE_RU field from the TXVECTOR for which its CENTER_26_TONE_RU has not been set yet, based on the content of per-user information.

Returns
the CENTER_26_TONE_RU field

Definition at line 853 of file wifi-tx-vector.cc.

References ns3::CENTER_26_TONE_RU_HIGH_80_MHZ_ALLOCATED, and ns3::CENTER_26_TONE_RU_LOW_80_MHZ_ALLOCATED.

Referenced by GetCenter26ToneRuIndication(), and SetCenter26ToneRuIndication().

+ Here is the caller graph for this function:

◆ DeriveRuAllocation()

RuAllocation ns3::WifiTxVector::DeriveRuAllocation ( uint8_t p20Index) const
private

Derive the RU_ALLOCATION field from the TXVECTOR for which its RU_ALLOCATION field has not been set yet, based on the content of per-user information.

This is valid only for allocations of RUs of the same size per 20 MHz subchannel.

Parameters
p20Indexthe index of the primary20 channel
Returns
8 bit RU_ALLOCATION per 20 MHz

Definition at line 787 of file wifi-tx-vector.cc.

References NS_ABORT_IF, NS_ASSERT, and NS_ASSERT_MSG.

Referenced by GetRuAllocation(), and SetRuAllocation().

+ Here is the caller graph for this function:

◆ GetBssColor()

uint8_t ns3::WifiTxVector::GetBssColor ( ) const

Get the BSS color.

Returns
the BSS color

Definition at line 363 of file wifi-tx-vector.cc.

References m_bssColor.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::HeFrameExchangeManager::IsIntraBssPpdu(), ns3::operator<<(), ns3::EhtPpdu::SetEhtPhyHeader(), and ns3::HePpdu::SetHeSigHeader().

+ Here is the caller graph for this function:

◆ GetCenter26ToneRuIndication()

std::optional< Center26ToneRuIndication > ns3::WifiTxVector::GetCenter26ToneRuIndication ( ) const

Get CENTER_26_TONE_RU field This field is present if format is HE_MU and when channel width is set to 80 MHz or larger.

Returns
the CENTER_26_TONE_RU field if present

Definition at line 687 of file wifi-tx-vector.cc.

References DeriveCenter26ToneRuIndication(), IsDlMu(), m_center26ToneRuIndication, and m_channelWidth.

Referenced by ns3::HePpdu::SetHeSigHeader().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetChannelWidth()

MHz_u ns3::WifiTxVector::GetChannelWidth ( ) const
Returns
the channel width

Definition at line 174 of file wifi-tx-vector.cc.

References m_channelWidth.

Referenced by ns3::CtrlTriggerHeader::CtrlTriggerHeader(), ns3::IdealWifiManager::AddSnrThreshold(), ns3::InterferenceHelper::CalculateChunkSuccessRate(), EmlsrDlTxopTest::CheckBlockAck(), MultiLinkSetupTest::CheckQosData(), EmlsrUlTxopTest::CheckRtsFrames(), EmlsrDlTxopTest::CheckStaEmlNotificationFrame(), ns3::YansErrorRateModel::DoGetChunkSuccessRate(), ns3::IdealWifiManager::DoGetDataTxVector(), WifiErrorRateModelsTestCaseMimo::DoRun(), ns3::FrameExchangeManager::ForwardMpduDown(), ns3::HtFrameExchangeManager::ForwardPsduDown(), ns3::HeFrameExchangeManager::ForwardPsduMapDown(), ns3::WifiDefaultAckManager::GetAckInfoIfAggregatedMuBar(), ns3::WifiDefaultAckManager::GetAckInfoIfTfMuBar(), ns3::EhtPhy::GetDataRateFromTxVector(), ns3::ErpOfdmPhy::GetDataRateFromTxVector(), ns3::HePhy::GetDataRateFromTxVector(), ns3::HtPhy::GetDataRateFromTxVector(), ns3::OfdmPhy::GetDataRateFromTxVector(), ns3::VhtPhy::GetDataRateFromTxVector(), ns3::WifiRemoteStationManager::GetDataTxVector(), ns3::OfdmPhy::GetHeaderDuration(), ns3::OfdmPhy::GetHeaderMode(), ns3::HePpdu::GetHeSigBContentChannels(), ns3::HePhy::GetNonOfdmaBand(), ns3::VhtPhy::GetNumberBccEncoders(), ns3::EhtPhy::GetPhyRateFromTxVector(), ns3::ErpOfdmPhy::GetPhyRateFromTxVector(), ns3::HePhy::GetPhyRateFromTxVector(), ns3::HtPhy::GetPhyRateFromTxVector(), ns3::OfdmPhy::GetPhyRateFromTxVector(), ns3::VhtPhy::GetPhyRateFromTxVector(), ns3::OfdmPhy::GetPreambleDuration(), ns3::WifiDefaultProtectionManager::GetPsduProtection(), ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::HePhy::GetRuBandForRx(), ns3::HePhy::GetRuBandForTx(), ns3::PhyEntity::GetRxChannelWidth(), ns3::EhtPhy::GetSigBSize(), ns3::HePhy::GetSigBSize(), ns3::VhtPhy::IsAllowed(), ns3::operator<<(), ns3::WifiRemoteStationManager::ReportAmpduTxStatus(), ns3::WifiRemoteStationManager::ReportDataOk(), TestMultipleCtsResponsesFromMuRts::RxCtsSuccess(), TestNonHtDuplicatePhyReception::RxSuccess(), ns3::EhtPpdu::SetEhtPhyHeader(), ns3::HePpdu::SetHeMuUserInfos(), ns3::HePpdu::SetHeSigHeader(), ns3::HtPpdu::SetHtSigHeader(), ns3::VhtPpdu::SetVhtSigHeader(), Bug2843TestCase::StoreDistinctTuple(), PowerRateAdaptationTest::TestAparf(), PowerRateAdaptationTest::TestParf(), PowerRateAdaptationTest::TestRrpaa(), ns3::WifiDefaultProtectionManager::TryAddMpduToMuPpdu(), and ns3::RrMultiUserScheduler::TrySendingDlMuPpdu().

+ Here is the caller graph for this function:

◆ GetEhtPpduType()

uint8_t ns3::WifiTxVector::GetEhtPpduType ( ) const

Get the EHT_PPDU_TYPE parameter.

Returns
the EHT_PPDU_TYPE parameter

Definition at line 432 of file wifi-tx-vector.cc.

References m_ehtPpduType.

Referenced by ns3::EhtPpdu::GetEhtSigContentChannels(), ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::EhtPhy::GetSigBSize(), ns3::operator<<(), and ns3::EhtPpdu::SetEhtPhyHeader().

+ Here is the caller graph for this function:

◆ GetGuardInterval()

◆ GetHeMuUserInfo()

HeMuUserInfo ns3::WifiTxVector::GetHeMuUserInfo ( uint16_t staId) const

Get the HE MU user-specific transmission information for the given STA-ID.

This is applicable only for HE MU.

Parameters
staIdthe station ID
Returns
the HE MU user-specific transmission information for the given STA-ID

Definition at line 617 of file wifi-tx-vector.cc.

References IsMu(), m_muUserInfos, and NS_ABORT_MSG_IF.

Referenced by ns3::WifiDefaultAckManager::GetAckInfoIfAggregatedMuBar(), ns3::WifiDefaultAckManager::GetAckInfoIfTfMuBar(), ns3::HePpdu::GetHeSigBContentChannels(), and ns3::WifiPhyHelper::GetRadiotapHeader().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMuUserInfoMap() [1/2]

WifiTxVector::HeMuUserInfoMap & ns3::WifiTxVector::GetHeMuUserInfoMap ( )

Get a reference to the map HE MU user-specific transmission information indexed by STA-ID.

This is applicable only for HE MU.

Returns
a reference to the map of HE MU user-specific information indexed by STA-ID

Definition at line 641 of file wifi-tx-vector.cc.

References IsMu(), m_muUserInfos, m_ruAllocation, and NS_ABORT_MSG_IF.

+ Here is the call graph for this function:

◆ GetHeMuUserInfoMap() [2/2]

const WifiTxVector::HeMuUserInfoMap & ns3::WifiTxVector::GetHeMuUserInfoMap ( ) const

Get a const reference to the map HE MU user-specific transmission information indexed by STA-ID.

This is applicable only for HE MU.

Returns
a const reference to the map of HE MU user-specific information indexed by STA-ID

Definition at line 634 of file wifi-tx-vector.cc.

References IsMu(), m_muUserInfos, and NS_ABORT_MSG_IF.

Referenced by ns3::CtrlTriggerHeader::CtrlTriggerHeader(), ns3::HePhy::CalculateTxDuration(), ns3::HeFrameExchangeManager::EndReceiveAmpdu(), ns3::RrMultiUserScheduler::FinalizeTxVector(), ns3::HePpdu::GetHeSigBContentChannels(), ns3::HePhy::GetSigBMode(), ns3::EhtPhy::GetSigBSize(), ns3::HePhy::GetSigBSize(), ns3::RrMultiUserScheduler::GetTxVectorForUlMu(), ns3::HePhy::GetWifiConstPsduMap(), ns3::operator<<(), ns3::HeFrameExchangeManager::PrepareMuBar(), ns3::HeFrameExchangeManager::ReceiveMpdu(), WifiPrimaryChannelsTest::ReceiveUl(), ns3::MultiUserScheduler::RemoveRecipientsFromDlMu(), TestMultipleHeTbPreambles::Reset(), ns3::HePpdu::SetHeSigHeader(), ns3::HePpdu::SetTxVectorFromPhyHeaders(), MultiLinkMuTxTest::Transmit(), and ns3::RrMultiUserScheduler::UpdateCredits().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetInactiveSubchannels()

const std::vector< bool > & ns3::WifiTxVector::GetInactiveSubchannels ( ) const

Get the 20 MHz subchannels that are punctured.

Returns
the bitmap indexed by the 20 MHz subchannels in ascending order, where each bit indicates whether the corresponding 20 MHz subchannel is punctured or not within the transmission bandwidth

Definition at line 671 of file wifi-tx-vector.cc.

References m_inactiveSubchannels.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::operator<<(), and ns3::EhtPpdu::SetEhtPhyHeader().

+ Here is the caller graph for this function:

◆ GetLength()

uint16_t ns3::WifiTxVector::GetLength ( ) const

Get the LENGTH field of the L-SIG.

Returns
the LENGTH field of the L-SIG

Definition at line 375 of file wifi-tx-vector.cc.

References m_length.

Referenced by ns3::CtrlTriggerHeader::CtrlTriggerHeader(), ns3::HePhy::CalculateTxDuration(), and ns3::operator<<().

+ Here is the caller graph for this function:

◆ GetMode()

WifiMode ns3::WifiTxVector::GetMode ( uint16_t staId = SU_STA_ID) const

If this TX vector is associated with an SU PPDU, return the selected payload transmission mode.

If this TX vector is associated with an MU PPDU, return the transmission mode (MCS) selected for the transmission to the station identified by the given STA-ID.

Parameters
staIdthe station ID for MU
Returns
the selected payload transmission mode

Definition at line 122 of file wifi-tx-vector.cc.

References ns3::EhtPhy::GetEhtMcs(), ns3::HePhy::GetHeMcs(), ns3::GetModulationClassForPreamble(), IsMu(), m_mode, m_modeInitialized, m_muUserInfos, m_preamble, NS_ABORT_MSG, NS_ABORT_MSG_IF, NS_ASSERT, NS_FATAL_ERROR, ns3::WIFI_MOD_CLASS_EHT, and ns3::WIFI_MOD_CLASS_HE.

Referenced by ns3::IdealWifiManager::AddSnrThreshold(), ns3::WifiRemoteStationManager::AdjustTxVectorForIcf(), ns3::InterferenceHelper::CalculatePayloadChunkSuccessRate(), ns3::ErrorRateModel::CalculateSnr(), EmlsrDlTxopTest::CheckInitialControlFrame(), IdealRateManagerMimoTest::CheckLastSelectedMode(), TxDurationTest::CheckMuTxDuration(), EmlsrUlTxopTest::CheckQosFrames(), ns3::YansErrorRateModel::DoGetChunkSuccessRate(), ns3::MinstrelHtWifiManager::DoGetDataTxVector(), ns3::WifiRemoteStationManager::GetAckTxVector(), ns3::WifiRemoteStationManager::GetBlockAckTxVector(), ns3::DsssPhy::GetDataRateFromTxVector(), ns3::EhtPhy::GetDataRateFromTxVector(), ns3::ErpOfdmPhy::GetDataRateFromTxVector(), ns3::HePhy::GetDataRateFromTxVector(), ns3::HtPhy::GetDataRateFromTxVector(), ns3::OfdmPhy::GetDataRateFromTxVector(), ns3::VhtPhy::GetDataRateFromTxVector(), ns3::WifiRemoteStationManager::GetDataTxVector(), ns3::AdvancedApEmlsrManager::GetDelayOnTxPsduNotForEmlsr(), ns3::EhtPpdu::GetEhtSigContentChannels(), ns3::DsssPhy::GetHeaderDuration(), ns3::DsssPhy::GetHeaderMode(), ns3::ErpOfdmPhy::GetHeaderMode(), ns3::HtPhy::GetNumberBccEncoders(), ns3::VhtPhy::GetNumberBccEncoders(), ns3::DsssPhy::GetPayloadDuration(), ns3::HtPhy::GetPayloadDuration(), ns3::OfdmPhy::GetPayloadDuration(), ns3::EhtPhy::GetPhyRateFromTxVector(), ns3::ErpOfdmPhy::GetPhyRateFromTxVector(), ns3::HePhy::GetPhyRateFromTxVector(), ns3::HtPhy::GetPhyRateFromTxVector(), ns3::OfdmPhy::GetPhyRateFromTxVector(), ns3::VhtPhy::GetPhyRateFromTxVector(), ns3::DsssPhy::GetPreambleDuration(), ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::FrameExchangeManager::GetRtsDurationId(), ns3::EhtPhy::GetSigBMode(), ns3::DefaultEmlsrManager::GetTimeToCtsEnd(), ns3::VhtPhy::IsAllowed(), ns3::WifiPhyStateHelper::NotifyRxPsduSucceeded(), ns3::operator<<(), ns3::FrameExchangeManager::ReceivedNormalAck(), ns3::FrameExchangeManager::ReceiveMpdu(), ns3::HeFrameExchangeManager::ReceiveMpdu(), ns3::HtFrameExchangeManager::ReceiveMpdu(), ns3::QosFrameExchangeManager::ReceiveMpdu(), ns3::WifiRemoteStationManager::ReportRxOk(), ns3::DsssPpdu::SetDsssHeader(), ns3::HePpdu::SetHeSigHeader(), ns3::HtPpdu::SetHtSigHeader(), ns3::EhtFrameExchangeManager::SetIcfPaddingAndTxVector(), ns3::OfdmPpdu::SetLSigHeader(), ns3::VhtPpdu::SetVhtSigHeader(), Bug2843TestCase::StoreDistinctTuple(), ns3::WifiPhyStateHelper::SwitchToTx(), PowerRateAdaptationTest::TestAparf(), PowerRateAdaptationTest::TestParf(), PowerRateAdaptationTest::TestRrpaa(), ns3::RrMultiUserScheduler::TrySendingDlMuPpdu(), IdealRateManagerChannelWidthTest::TxCallback(), Issue169TestCase::TxCallback(), ns3::FrameExchangeManager::UpdateNav(), and ns3::HeFrameExchangeManager::UpdateNav().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetModeInitialized()

bool ns3::WifiTxVector::GetModeInitialized ( ) const
Returns
whether mode has been initialized

Definition at line 116 of file wifi-tx-vector.cc.

References m_modeInitialized.

Referenced by IsValid().

+ Here is the caller graph for this function:

◆ GetModulationClass()

WifiModulationClass ns3::WifiTxVector::GetModulationClass ( ) const

Get the modulation class specified by this TXVECTOR.

Returns
the Modulation Class specified by this TXVECTOR

Definition at line 148 of file wifi-tx-vector.cc.

References ns3::WifiMode::GetModulationClass(), ns3::GetModulationClassForPreamble(), IsMu(), m_mode, m_modeInitialized, m_muUserInfos, m_preamble, NS_ABORT_MSG_IF, and NS_ASSERT.

Referenced by ns3::WifiPhy::CalculatePhyPreambleAndHeaderDuration(), ns3::HePhy::CalculateTxDuration(), ns3::WifiPhy::CalculateTxDuration(), ns3::HePhy::ConvertHeTbPpduDurationToLSigLength(), ns3::HePhy::ConvertLSigLengthToHeTbPpduDuration(), ns3::HeFrameExchangeManager::ForwardPsduMapDown(), ns3::MpduAggregator::GetNextAmpdu(), ns3::MsduAggregator::GetNextAmsdu(), ns3::HePhy::GetNonOfdmaBand(), ns3::WifiPhy::GetPayloadDuration(), ns3::VhtFrameExchangeManager::GetPsduSize(), ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::WifiRemoteStationManager::GetRtsTxVector(), ns3::HePhy::GetSigBSize(), ns3::HePhy::GetSigMode(), ns3::WifiTxParameters::GetSize(), ns3::WifiTxParameters::GetSizeIfAddMpdu(), ns3::HePhy::GetTrainingDuration(), ns3::WifiPhy::GetWifiConstPsduMap(), ns3::VhtFrameExchangeManager::GetWifiPsdu(), IsNonHtDuplicate(), IsValid(), ns3::HtFrameExchangeManager::IsWithinLimitsIfAddMpdu(), ns3::HtFrameExchangeManager::IsWithinLimitsIfAggregateMsdu(), ns3::QosFrameExchangeManager::IsWithinSizeAndTimeLimits(), ns3::WifiRemoteStationManager::NeedCtsToSelf(), ns3::WifiRemoteStationManager::NeedRts(), ns3::WifiPhy::Send(), ns3::HeFrameExchangeManager::SendPsduMap(), and ns3::WifiDefaultProtectionManager::TryAddMpduToMuPpdu().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetNess()

uint8_t ns3::WifiTxVector::GetNess ( ) const
Returns
the number of extended spatial streams

Definition at line 243 of file wifi-tx-vector.cc.

References m_ness.

Referenced by ns3::HtPhy::GetDuration(), ns3::WifiPhyHelper::GetRadiotapHeader(), and ns3::operator<<().

+ Here is the caller graph for this function:

◆ GetNss()

uint8_t ns3::WifiTxVector::GetNss ( uint16_t staId = SU_STA_ID) const

If this TX vector is associated with an SU PPDU, return the number of spatial streams.

If this TX vector is associated with an MU PPDU, return the number of spatial streams for the transmission to the station identified by the given STA-ID.

Parameters
staIdthe station ID for MU
Returns
the number of spatial streams

Definition at line 192 of file wifi-tx-vector.cc.

References IsMu(), m_muUserInfos, m_nss, NS_ABORT_MSG_IF, and NS_ASSERT.

Referenced by ns3::InterferenceHelper::CalculatePayloadChunkSuccessRate(), IdealRateManagerMimoTest::CheckLastSelectedNss(), TxDurationTest::CheckMuTxDuration(), ns3::IdealWifiManager::DoGetDataTxVector(), WifiErrorRateModelsTestCaseMimo::DoRun(), ns3::EhtPhy::GetDataRateFromTxVector(), ns3::HePhy::GetDataRateFromTxVector(), ns3::HtPhy::GetDataRateFromTxVector(), ns3::VhtPhy::GetDataRateFromTxVector(), ns3::EhtPpdu::GetEhtSigContentChannels(), ns3::VhtPhy::GetNumberBccEncoders(), ns3::EhtPhy::GetPhyRateFromTxVector(), ns3::HePhy::GetPhyRateFromTxVector(), ns3::HtPhy::GetPhyRateFromTxVector(), ns3::VhtPhy::GetPhyRateFromTxVector(), ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::VhtPhy::IsAllowed(), ns3::operator<<(), ns3::WifiRemoteStationManager::ReportAmpduTxStatus(), ns3::WifiRemoteStationManager::ReportDataOk(), ns3::WifiPhy::Send(), ns3::HePpdu::SetHeSigHeader(), ns3::VhtPpdu::SetVhtSigHeader(), and ns3::RrMultiUserScheduler::TrySendingDlMuPpdu().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetNssMax()

uint8_t ns3::WifiTxVector::GetNssMax ( ) const
Returns
the maximum number of Nss over all RUs of an HE MU (used for OFDMA)

Definition at line 204 of file wifi-tx-vector.cc.

References IsMu(), m_muUserInfos, and m_nss.

Referenced by ns3::HtPhy::GetDuration(), and ns3::WifiPhy::Send().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetNssTotal()

uint8_t ns3::WifiTxVector::GetNssTotal ( ) const
Returns
the total number of Nss for a given RU of an HE MU (used for full bandwidth MU-MIMO)

Definition at line 223 of file wifi-tx-vector.cc.

References IsMu(), m_muUserInfos, and m_nss.

Referenced by ns3::WifiPhy::Send().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetNTx()

uint8_t ns3::WifiTxVector::GetNTx ( ) const
Returns
the number of TX antennas

Definition at line 186 of file wifi-tx-vector.cc.

References m_nTx.

Referenced by ns3::operator<<().

+ Here is the caller graph for this function:

◆ GetNumStasInRu()

uint8_t ns3::WifiTxVector::GetNumStasInRu ( const HeRu::RuSpec & ru) const
private

Get the number of STAs in a given RU.

Parameters
ruthe RU specification
Returns
the number of STAs in the RU

Definition at line 587 of file wifi-tx-vector.cc.

References m_muUserInfos.

Referenced by IsValid().

+ Here is the caller graph for this function:

◆ GetPreambleType()

◆ GetRu()

HeRu::RuSpec ns3::WifiTxVector::GetRu ( uint16_t staId) const

Get the RU specification for the STA-ID.

This is applicable only for MU.

Parameters
staIdthe station ID
Returns
the RU specification for the STA-ID

Definition at line 601 of file wifi-tx-vector.cc.

References IsMu(), m_muUserInfos, and NS_ABORT_MSG_IF.

Referenced by ns3::HePhy::GetChannelWidthAndBand(), ns3::EhtPhy::GetDataRateFromTxVector(), ns3::HePhy::GetDataRateFromTxVector(), ns3::HePhy::GetNonOfdmaBand(), ns3::EhtPhy::GetPhyRateFromTxVector(), ns3::HePhy::GetPhyRateFromTxVector(), ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::HePhy::GetRuBandForRx(), and ns3::HePhy::GetRuBandForTx().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetRuAllocation()

const RuAllocation & ns3::WifiTxVector::GetRuAllocation ( uint8_t p20Index) const

Get RU_ALLOCATION field.

Returns
8 bit RU_ALLOCATION per 20 MHz
Parameters
p20Indexthe index of the primary20 channel

Definition at line 415 of file wifi-tx-vector.cc.

References DeriveRuAllocation(), ns3::IsDlMu(), m_preamble, and m_ruAllocation.

Referenced by ns3::HePpdu::GetHeSigBContentChannels(), ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::EhtPhy::GetSigBSize(), ns3::HePhy::GetSigBSize(), ns3::EhtPpdu::SetEhtPhyHeader(), and ns3::HePpdu::SetHeSigHeader().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetSigBMode()

WifiMode ns3::WifiTxVector::GetSigBMode ( ) const

Get MCS used for SIG-B.

Returns
MCS for SIG-B

Definition at line 399 of file wifi-tx-vector.cc.

References m_sigBMcs.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::operator<<(), ns3::EhtPpdu::SetEhtPhyHeader(), and ns3::HePpdu::SetHeSigHeader().

+ Here is the caller graph for this function:

◆ GetTxPowerLevel()

uint8_t ns3::WifiTxVector::GetTxPowerLevel ( ) const
Returns
the transmission power level

Definition at line 162 of file wifi-tx-vector.cc.

References m_txPowerLevel.

Referenced by ns3::EhtFrameExchangeManager::ForwardPsduDown(), ns3::EhtFrameExchangeManager::ForwardPsduMapDown(), ns3::operator<<(), ns3::WifiPhy::Send(), ns3::WifiPhyStateHelper::SwitchToTx(), PowerRateAdaptationTest::TestAparf(), PowerRateAdaptationTest::TestParf(), and PowerRateAdaptationTest::TestRrpaa().

+ Here is the caller graph for this function:

◆ GetUserInfoMapOrderedByRus()

WifiTxVector::UserInfoMapOrderedByRus ns3::WifiTxVector::GetUserInfoMapOrderedByRus ( uint8_t p20Index) const

Get the map of specific user info parameters ordered per increasing frequency RUs.

Parameters
p20Indexthe index of the primary20 channel
Returns
the map of specific user info parameters ordered per increasing frequency RUs

Definition at line 767 of file wifi-tx-vector.cc.

References m_channelWidth, and m_muUserInfos.

Referenced by ns3::HePpdu::GetHeSigBContentChannels().

+ Here is the caller graph for this function:

◆ IsAggregation()

bool ns3::WifiTxVector::IsAggregation ( ) const

Checks whether the PSDU contains A-MPDU.

Returns
true if this PSDU has A-MPDU aggregation, false otherwise

Definition at line 249 of file wifi-tx-vector.cc.

References m_aggregation.

Referenced by ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::WifiPhy::NotifyMonitorSniffRx(), ns3::WifiPhy::NotifyMonitorSniffTx(), ns3::operator<<(), ns3::HtPpdu::SetHtSigHeader(), and TracePacketReception().

+ Here is the caller graph for this function:

◆ IsAllocated()

bool ns3::WifiTxVector::IsAllocated ( uint16_t staId) const

Check if STA ID is allocated.

Parameters
staIdSTA ID
Returns
true if allocated, false otherwise

Definition at line 595 of file wifi-tx-vector.cc.

References m_muUserInfos.

Referenced by ns3::HePpdu::SetHeMuUserInfos().

+ Here is the caller graph for this function:

◆ IsDlMu()

bool ns3::WifiTxVector::IsDlMu ( ) const

◆ IsDlMuMimo()

bool ns3::WifiTxVector::IsDlMuMimo ( ) const

Return true if this TX vector is used for a downlink multi-user transmission using MU-MIMO.

Returns
true if this TX vector is used for a downlink multi-user transmission using MU-MIMO

Definition at line 568 of file wifi-tx-vector.cc.

References IsDlMu(), IsDlOfdma(), ns3::IsEht(), m_ehtPpduType, m_muUserInfos, and m_preamble.

Referenced by HeSigBDurationTest::BuildTxVector(), TestDlMuTxVector::DoRun(), IsSigBCompression(), ns3::WifiPhy::Send(), and TestDlMuMimoPhyTransmission::SendMuPpdu().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsDlOfdma()

bool ns3::WifiTxVector::IsDlOfdma ( ) const

Return true if this TX vector is used for a downlink multi-user transmission using OFDMA.

Returns
true if this TX vector is used for a downlink multi-user transmission using OFDMA

Definition at line 541 of file wifi-tx-vector.cc.

References IsDlMu(), ns3::IsEht(), m_ehtPpduType, m_muUserInfos, and m_preamble.

Referenced by HeSigBDurationTest::BuildTxVector(), TestDlMuTxVector::DoRun(), IsDlMuMimo(), IsSigBCompression(), and TestDlMuMimoPhyTransmission::SendMuPpdu().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsLdpc()

bool ns3::WifiTxVector::IsLdpc ( ) const

Check if LDPC FEC coding is used or not.

Returns
true if LDPC is used, false if BCC is used

Definition at line 261 of file wifi-tx-vector.cc.

References m_ldpc.

Referenced by ns3::TableBasedErrorRateModel::DoGetChunkSuccessRate(), and ns3::operator<<().

+ Here is the caller graph for this function:

◆ IsMu()

bool ns3::WifiTxVector::IsMu ( ) const
Returns
true if this TX vector is used for a multi-user (OFDMA and/or MU-MIMO) transmission

Definition at line 523 of file wifi-tx-vector.cc.

References IsDlMu(), and IsUlMu().

Referenced by ns3::YansErrorRateModel::DoGetChunkSuccessRate(), ns3::HePhy::GetChannelWidthAndBand(), ns3::EhtPhy::GetDataRateFromTxVector(), ns3::HePhy::GetDataRateFromTxVector(), GetHeMuUserInfo(), GetHeMuUserInfoMap(), GetHeMuUserInfoMap(), GetMode(), GetModulationClass(), GetNss(), GetNssMax(), GetNssTotal(), ns3::EhtPhy::GetPhyRateFromTxVector(), ns3::HePhy::GetPhyRateFromTxVector(), GetRu(), ns3::HePhy::GetRuBandForRx(), ns3::HePhy::GetRuBandForTx(), ns3::WifiRemoteStationManager::GetStaId(), ns3::HeFrameExchangeManager::GetTxDuration(), IsNonHtDuplicate(), ns3::operator<<(), ns3::WifiPhy::Send(), ns3::EhtPpdu::SetEhtPhyHeader(), SetHeMuUserInfo(), SetMode(), SetNss(), SetRu(), and OfdmaAckSequenceTest::Transmit().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsNonHtDuplicate()

bool ns3::WifiTxVector::IsNonHtDuplicate ( ) const

Checks whether this TXVECTOR corresponds to a non-HT duplicate.

Returns
true if this TXVECTOR corresponds to a non-HT duplicate, false otherwise.

Definition at line 267 of file wifi-tx-vector.cc.

References GetModulationClass(), IsMu(), m_channelWidth, and ns3::WIFI_MOD_CLASS_HT.

+ Here is the call graph for this function:

◆ IsSigBCompression()

bool ns3::WifiTxVector::IsSigBCompression ( ) const

Indicate whether the Common field is present in the HE-SIG-B field.

Returns
true if the Common field is present in the HE-SIG-B, false otherwise

Definition at line 649 of file wifi-tx-vector.cc.

References IsDlMuMimo(), and IsDlOfdma().

Referenced by TestDlMuTxVector::DoRun(), ns3::HePpdu::GetHeSigBContentChannels(), ns3::EhtPhy::GetSigBSize(), ns3::HePhy::GetSigBSize(), and ns3::HePpdu::SetHeSigHeader().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsStbc()

bool ns3::WifiTxVector::IsStbc ( ) const

Check if STBC is used or not.

Returns
true if STBC is used, false otherwise

Definition at line 255 of file wifi-tx-vector.cc.

References m_stbc.

Referenced by ns3::HtPhy::GetPayloadDuration(), ns3::WifiPhyHelper::GetRadiotapHeader(), and ns3::operator<<().

+ Here is the caller graph for this function:

◆ IsTriggerResponding()

bool ns3::WifiTxVector::IsTriggerResponding ( ) const

Return true if the Trigger Responding parameter is set to true, false otherwise.

Returns
true if the Trigger Responding parameter is set to true, false otherwise

Definition at line 381 of file wifi-tx-vector.cc.

References m_triggerResponding.

Referenced by ns3::HePhy::ObtainNextUid().

+ Here is the caller graph for this function:

◆ IsUlMu()

◆ IsValid()

bool ns3::WifiTxVector::IsValid ( WifiPhyBand band = WIFI_PHY_BAND_UNSPECIFIED) const

The standard disallows certain combinations of WifiMode, number of spatial streams, and channel widths.

This method can be used to check whether this WifiTxVector contains an invalid combination. If a PHY band is specified, it is checked that the PHY band is appropriate for the modulation class of the TXVECTOR, in case the latter is OFDM or ERP-OFDM.

Parameters
bandthe PHY band
Returns
true if the WifiTxVector parameters are allowed by the standard

Definition at line 438 of file wifi-tx-vector.cc.

References GetModeInitialized(), GetModulationClass(), GetNumStasInRu(), ns3::WifiMode::GetUniqueName(), m_channelWidth, m_mode, m_muUserInfos, m_nss, NS_ABORT_MSG_IF, ns3::WIFI_MOD_CLASS_ERP_OFDM, ns3::WIFI_MOD_CLASS_OFDM, ns3::WIFI_PHY_BAND_2_4GHZ, and ns3::WIFI_PHY_BAND_UNSPECIFIED.

Referenced by ns3::IdealWifiManager::BuildSnrThresholds(), ns3::IdealWifiManager::DoGetDataTxVector(), TestDlMuTxVector::DoRun(), ns3::MinstrelHtWifiManager::IsValidMcs(), ns3::operator<<(), and ns3::WifiPhy::Send().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetAggregation()

void ns3::WifiTxVector::SetAggregation ( bool aggregation)

Sets if PSDU contains A-MPDU.

Parameters
aggregationwhether the PSDU contains A-MPDU or not

Definition at line 339 of file wifi-tx-vector.cc.

References m_aggregation.

Referenced by ns3::HtFrameExchangeManager::ForwardPsduDown(), ns3::HeFrameExchangeManager::ForwardPsduMapDown(), ns3::EhtPpdu::SetTxVectorFromPhyHeaders(), ns3::HePpdu::SetTxVectorFromPhyHeaders(), ns3::HtPpdu::SetTxVectorFromPhyHeaders(), and ns3::VhtPpdu::SetTxVectorFromPhyHeaders().

+ Here is the caller graph for this function:

◆ SetBssColor()

void ns3::WifiTxVector::SetBssColor ( uint8_t color)

Set the BSS color.

Parameters
colorthe BSS color

Definition at line 357 of file wifi-tx-vector.cc.

References m_bssColor.

Referenced by ns3::WifiRemoteStationManager::GetDataTxVector(), ns3::HeFrameExchangeManager::GetHeTbTxVector(), ns3::RrMultiUserScheduler::GetTxVectorForUlMu(), ns3::EhtPpdu::SetTxVectorFromPhyHeaders(), ns3::HePpdu::SetTxVectorFromPhyHeaders(), and ns3::RrMultiUserScheduler::TrySendingDlMuPpdu().

+ Here is the caller graph for this function:

◆ SetCenter26ToneRuIndication()

void ns3::WifiTxVector::SetCenter26ToneRuIndication ( Center26ToneRuIndication center26ToneRuIndication)

Set CENTER_26_TONE_RU field.

Parameters
center26ToneRuIndicationthe CENTER_26_TONE_RU field

Definition at line 677 of file wifi-tx-vector.cc.

References DeriveCenter26ToneRuIndication(), IsDlMu(), m_center26ToneRuIndication, and NS_ASSERT.

Referenced by ns3::HePpdu::SetTxVectorFromPhyHeaders().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetChannelWidth()

void ns3::WifiTxVector::SetChannelWidth ( MHz_u channelWidth)

Sets the selected channelWidth.

Parameters
channelWidththe channel width

Definition at line 301 of file wifi-tx-vector.cc.

References m_channelWidth.

Referenced by ns3::IdealWifiManager::BuildSnrThresholds(), HeSigBDurationTest::BuildTxVector(), TestDlMuTxVector::BuildTxVector(), TxDurationTest::CheckMuTxDuration(), TxDurationTest::CheckPayloadDuration(), TxDurationTest::CheckTxDuration(), TestMultiUserScheduler::ComputeWifiTxVector(), ns3::IdealWifiManager::DoGetDataTxVector(), ns3::IdealWifiManager::DoGetRtsTxVector(), ns3::DsssPpdu::DoGetTxVector(), PhyHeaderSectionsTest::DoRun(), WifiErrorRateModelsTestCaseMimo::DoRun(), TestMultipleCtsResponsesFromMuRts::FakePreviousMuRts(), ns3::WifiDefaultAckManager::GetAckInfoIfAggregatedMuBar(), ns3::WifiDefaultAckManager::GetAckInfoIfTfMuBar(), ns3::WifiRemoteStationManager::GetAckTxVector(), ns3::WifiRemoteStationManager::GetBlockAckTxVector(), ns3::WifiRemoteStationManager::GetCtsTxVector(), ns3::WifiMode::GetDataRate(), ns3::WifiRemoteStationManager::GetDataTxVector(), ns3::CtrlTriggerHeader::GetHeTbTxVector(), ns3::WifiMode::GetPhyRate(), ns3::WifiRemoteStationManager::GetRtsTxVector(), ns3::HeFrameExchangeManager::GetTrigVector(), ns3::RrMultiUserScheduler::GetTxVectorForUlMu(), ns3::WifiMode::IsAllowed(), ns3::MinstrelHtWifiManager::IsValidMcs(), InterferenceExperiment::SendA(), InterferenceExperiment::SendB(), ns3::ErpOfdmPpdu::SetTxVectorFromLSigHeader(), ns3::OfdmPpdu::SetTxVectorFromLSigHeader(), ns3::EhtPpdu::SetTxVectorFromPhyHeaders(), ns3::HePpdu::SetTxVectorFromPhyHeaders(), ns3::HtPpdu::SetTxVectorFromPhyHeaders(), ns3::VhtPpdu::SetTxVectorFromPhyHeaders(), ns3::WifiDefaultProtectionManager::TryAddMpduToMuPpdu(), and ns3::RrMultiUserScheduler::TrySendingDlMuPpdu().

+ Here is the caller graph for this function:

◆ SetEhtPpduType()

void ns3::WifiTxVector::SetEhtPpduType ( uint8_t type)

Set the EHT_PPDU_TYPE parameter.

Parameters
typethe EHT_PPDU_TYPE parameter

Definition at line 425 of file wifi-tx-vector.cc.

References ns3::IsEht(), m_ehtPpduType, m_preamble, and NS_ASSERT.

Referenced by TxDurationTest::CheckMuTxDuration(), TestMultiUserScheduler::ComputeWifiTxVector(), PhyHeaderSectionsTest::DoRun(), ns3::RrMultiUserScheduler::GetTxVectorForUlMu(), ns3::EhtPpdu::SetTxVectorFromPhyHeaders(), and ns3::RrMultiUserScheduler::TrySendingDlMuPpdu().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetGuardInterval()

void ns3::WifiTxVector::SetGuardInterval ( Time guardInterval)

◆ SetHeMuUserInfo()

void ns3::WifiTxVector::SetHeMuUserInfo ( uint16_t staId,
HeMuUserInfo userInfo )

Set the HE MU user-specific transmission information for the given STA-ID.

This is applicable only for HE MU.

Parameters
staIdthe station ID
userInfothe HE MU user-specific transmission information

Definition at line 624 of file wifi-tx-vector.cc.

References IsMu(), m_modeInitialized, m_muUserInfos, m_ruAllocation, and NS_ABORT_MSG_IF.

Referenced by HeSigBDurationTest::BuildTxVector(), TestDlMuTxVector::BuildTxVector(), TxDurationTest::CheckMuTxDuration(), TestMultiUserScheduler::ComputeWifiTxVector(), PhyHeaderSectionsTest::DoRun(), WifiPrimaryChannelsTest::DoSendHeTbPpdu(), ns3::RrMultiUserScheduler::FinalizeTxVector(), ns3::WifiDefaultAckManager::GetAckInfoIfAggregatedMuBar(), ns3::WifiDefaultAckManager::GetAckInfoIfTfMuBar(), ns3::CtrlTriggerHeader::GetHeTbTxVector(), ns3::HeFrameExchangeManager::GetTrigVector(), ns3::RrMultiUserScheduler::GetTxVectorForUlMu(), TestMultipleHeTbPreambles::RxHeTbPpdu(), WifiPrimaryChannelsTest::SendDlMuPpdu(), ns3::HePpdu::SetHeMuUserInfos(), and ns3::RrMultiUserScheduler::TrySendingDlMuPpdu().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetInactiveSubchannels()

void ns3::WifiTxVector::SetInactiveSubchannels ( const std::vector< bool > & inactiveSubchannels)

Set the 20 MHz subchannels that are punctured.

Parameters
inactiveSubchannelsthe bitmap indexed by the 20 MHz subchannels in ascending order, where each bit indicates whether the corresponding 20 MHz subchannel is punctured or not within the transmission bandwidth

Definition at line 655 of file wifi-tx-vector.cc.

References m_channelWidth, m_inactiveSubchannels, m_preamble, NS_ABORT_MSG_IF, and ns3::WIFI_PREAMBLE_HE_SU.

◆ SetLdpc()

void ns3::WifiTxVector::SetLdpc ( bool ldpc)

Sets if LDPC FEC coding is being used.

Parameters
ldpcenable or disable LDPC

Definition at line 351 of file wifi-tx-vector.cc.

References m_ldpc.

Referenced by ns3::WifiRemoteStationManager::GetDataTxVector().

+ Here is the caller graph for this function:

◆ SetLength()

void ns3::WifiTxVector::SetLength ( uint16_t length)

◆ SetMode() [1/2]

void ns3::WifiTxVector::SetMode ( WifiMode mode)

Sets the selected payload transmission mode.

Parameters
modethe payload WifiMode

Definition at line 273 of file wifi-tx-vector.cc.

References m_mode, and m_modeInitialized.

Referenced by ns3::WifiRemoteStationManager::AdjustTxVectorForIcf(), ns3::IdealWifiManager::BuildSnrThresholds(), ns3::dot11s::AirtimeLinkMetricCalculator::CalculateMetric(), TxDurationTest::CheckPayloadDuration(), TxDurationTest::CheckTxDuration(), ns3::IdealWifiManager::DoGetDataTxVector(), ns3::IdealWifiManager::DoGetRtsTxVector(), PhyHeaderSectionsTest::DoRun(), TableBasedErrorRateTestCase::DoRun(), WifiErrorRateModelsTestCaseMimo::DoRun(), ns3::WifiRemoteStationManager::GetAckTxVector(), ns3::WifiRemoteStationManager::GetBlockAckTxVector(), ns3::WifiRemoteStationManager::GetCtsTxVector(), ns3::WifiMode::GetDataRate(), ns3::WifiRemoteStationManager::GetDataTxVector(), ns3::HeFrameExchangeManager::GetMuRtsDurationId(), ns3::WifiMode::GetPhyRate(), ns3::WifiRemoteStationManager::GetRtsTxVector(), TestUlMuMimoPhyTransmission::GetTxVectorForHeTbPpdu(), ns3::WifiMode::IsAllowed(), ns3::MinstrelHtWifiManager::IsValidMcs(), PsrExperiment::Send(), CollisionExperiment::SendA(), InterferenceExperiment::SendA(), CollisionExperiment::SendB(), InterferenceExperiment::SendB(), TestDlMuMimoPhyTransmission::SendMuPpdu(), TestUlMuMimoPhyTransmission::SetTrigVector(), TestUlOfdmaPhyTransmission::SetTrigVector(), ns3::DsssPpdu::SetTxVectorFromDsssHeader(), ns3::ErpOfdmPpdu::SetTxVectorFromLSigHeader(), ns3::OfdmPpdu::SetTxVectorFromLSigHeader(), ns3::EhtPpdu::SetTxVectorFromPhyHeaders(), ns3::HePpdu::SetTxVectorFromPhyHeaders(), ns3::HtPpdu::SetTxVectorFromPhyHeaders(), ns3::VhtPpdu::SetTxVectorFromPhyHeaders(), ns3::MinstrelWifiManager::SetupPhy(), ns3::RraaWifiManager::SetupPhy(), ns3::RrpaaWifiManager::SetupPhy(), and ns3::WifiDefaultProtectionManager::TryAddMpduToMuPpdu().

+ Here is the caller graph for this function:

◆ SetMode() [2/2]

void ns3::WifiTxVector::SetMode ( WifiMode mode,
uint16_t staId )

Sets the selected payload transmission mode for a given STA ID (for MU only)

Parameters
mode
staIdthe station ID for MU

Definition at line 280 of file wifi-tx-vector.cc.

References ns3::WifiMode::GetMcsValue(), IsMu(), m_modeInitialized, m_muUserInfos, and NS_ABORT_MSG_IF.

+ Here is the call graph for this function:

◆ SetNess()

void ns3::WifiTxVector::SetNess ( uint8_t ness)

Sets the Ness number.

Parameters
nessthe number of extended spatial streams

Definition at line 333 of file wifi-tx-vector.cc.

References m_ness.

Referenced by HeSigBDurationTest::BuildTxVector(), TxDurationTest::CheckMuTxDuration(), TxDurationTest::CheckPayloadDuration(), TxDurationTest::CheckTxDuration(), PhyHeaderSectionsTest::DoRun(), ns3::WifiRemoteStationManager::GetDataTxVector(), and ns3::WifiRemoteStationManager::GetRtsTxVector().

+ Here is the caller graph for this function:

◆ SetNss() [1/2]

◆ SetNss() [2/2]

void ns3::WifiTxVector::SetNss ( uint8_t nss,
uint16_t staId )

Sets the number of Nss for MU.

Parameters
nssthe number of spatial streams
staIdthe station ID for MU

Definition at line 325 of file wifi-tx-vector.cc.

References IsMu(), m_muUserInfos, and NS_ABORT_MSG_IF.

+ Here is the call graph for this function:

◆ SetNTx()

void ns3::WifiTxVector::SetNTx ( uint8_t nTx)

Sets the number of TX antennas.

Parameters
nTxthe number of TX antennas

Definition at line 313 of file wifi-tx-vector.cc.

References m_nTx.

Referenced by WifiErrorRateModelsTestCaseMimo::DoRun(), ns3::WifiRemoteStationManager::GetDataTxVector(), and ns3::WifiRemoteStationManager::GetRtsTxVector().

+ Here is the caller graph for this function:

◆ SetPreambleType()

void ns3::WifiTxVector::SetPreambleType ( WifiPreamble preamble)

Sets the preamble type.

Parameters
preamblethe preamble type

Definition at line 295 of file wifi-tx-vector.cc.

References m_preamble.

Referenced by ns3::WifiRemoteStationManager::AdjustTxVectorForIcf(), HeSigBDurationTest::BuildTxVector(), TestDlMuTxVector::BuildTxVector(), ns3::dot11s::AirtimeLinkMetricCalculator::CalculateMetric(), TxDurationTest::CheckMuTxDuration(), TxDurationTest::CheckPayloadDuration(), TxDurationTest::CheckTxDuration(), TestMultiUserScheduler::ComputeWifiTxVector(), ns3::DsssPpdu::DoGetTxVector(), ns3::HePpdu::DoGetTxVector(), ns3::HtPpdu::DoGetTxVector(), ns3::OfdmPpdu::DoGetTxVector(), ns3::VhtPpdu::DoGetTxVector(), PhyHeaderSectionsTest::DoRun(), ns3::WifiDefaultAckManager::GetAckInfoIfAggregatedMuBar(), ns3::WifiDefaultAckManager::GetAckInfoIfTfMuBar(), ns3::WifiRemoteStationManager::GetAckTxVector(), ns3::WifiRemoteStationManager::GetBlockAckTxVector(), ns3::WifiRemoteStationManager::GetCtsTxVector(), ns3::WifiRemoteStationManager::GetDataTxVector(), ns3::CtrlTriggerHeader::GetHeTbTxVector(), ns3::WifiRemoteStationManager::GetRtsTxVector(), ns3::HeFrameExchangeManager::GetTrigVector(), ns3::RrMultiUserScheduler::GetTxVectorForUlMu(), TestMultiUserScheduler::SelectTxFormat(), PsrExperiment::Send(), CollisionExperiment::SendA(), InterferenceExperiment::SendA(), CollisionExperiment::SendB(), InterferenceExperiment::SendB(), ns3::MinstrelWifiManager::SetupPhy(), ns3::RraaWifiManager::SetupPhy(), ns3::RrpaaWifiManager::SetupPhy(), and ns3::RrMultiUserScheduler::TrySendingDlMuPpdu().

+ Here is the caller graph for this function:

◆ SetRu()

void ns3::WifiTxVector::SetRu ( HeRu::RuSpec ru,
uint16_t staId )

Set the RU specification for the STA-ID.

This is applicable only for MU.

Parameters
ruthe RU specification
staIdthe station ID

Definition at line 609 of file wifi-tx-vector.cc.

References IsMu(), m_muUserInfos, and NS_ABORT_MSG_IF.

Referenced by TestUlMuMimoPhyTransmission::GetTxVectorForHeTbPpdu(), TestDlMuMimoPhyTransmission::SendMuPpdu(), TestUlMuMimoPhyTransmission::SetTrigVector(), and TestUlOfdmaPhyTransmission::SetTrigVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetRuAllocation()

void ns3::WifiTxVector::SetRuAllocation ( const RuAllocation & ruAlloc,
uint8_t p20Index )

Set RU_ALLOCATION field.

Parameters
ruAlloc8 bit RU_ALLOCATION per 20 MHz
p20Indexthe index of the primary20 channel

Definition at line 405 of file wifi-tx-vector.cc.

References DeriveRuAllocation(), ns3::IsDlMu(), m_muUserInfos, m_preamble, m_ruAllocation, and NS_ASSERT.

Referenced by TxDurationTest::CheckMuTxDuration(), TestMultiUserScheduler::ComputeWifiTxVector(), PhyHeaderSectionsTest::DoRun(), WifiPrimaryChannelsTest::SendDlMuPpdu(), ns3::EhtPpdu::SetTxVectorFromPhyHeaders(), and ns3::HePpdu::SetTxVectorFromPhyHeaders().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetSigBMode()

void ns3::WifiTxVector::SetSigBMode ( const WifiMode & mode)

Set the MCS used for SIG-B.

Parameters
modeMCS used for SIG-B

Definition at line 393 of file wifi-tx-vector.cc.

References m_sigBMcs.

Referenced by HeSigBDurationTest::BuildTxVector(), TxDurationTest::CheckMuTxDuration(), PhyHeaderSectionsTest::DoRun(), ns3::EhtFrameExchangeManager::ForwardPsduDown(), ns3::HeFrameExchangeManager::ForwardPsduMapDown(), WifiPrimaryChannelsTest::SendDlMuPpdu(), TestDlMuMimoPhyTransmission::SendMuPpdu(), ns3::EhtPpdu::SetTxVectorFromPhyHeaders(), and ns3::HePpdu::SetTxVectorFromPhyHeaders().

+ Here is the caller graph for this function:

◆ SetStbc()

void ns3::WifiTxVector::SetStbc ( bool stbc)

Sets if STBC is being used.

Parameters
stbcenable or disable STBC

Definition at line 345 of file wifi-tx-vector.cc.

References m_stbc.

Referenced by HeSigBDurationTest::BuildTxVector(), TxDurationTest::CheckMuTxDuration(), TxDurationTest::CheckPayloadDuration(), and TxDurationTest::CheckTxDuration().

+ Here is the caller graph for this function:

◆ SetTriggerResponding()

void ns3::WifiTxVector::SetTriggerResponding ( bool triggerResponding)

Set the Trigger Responding parameter to the given value.

Parameters
triggerRespondingthe value for the Trigger Responding parameter

Definition at line 387 of file wifi-tx-vector.cc.

References m_triggerResponding.

Referenced by ns3::HeFrameExchangeManager::SendCtsAfterMuRts(), and TestMultipleCtsResponsesFromMuRts::TxNonHtDuplicateCts().

+ Here is the caller graph for this function:

◆ SetTxPowerLevel()

void ns3::WifiTxVector::SetTxPowerLevel ( uint8_t powerlevel)

Member Data Documentation

◆ m_aggregation

bool ns3::WifiTxVector::m_aggregation
private

Flag whether the PSDU contains A-MPDU.

Definition at line 563 of file wifi-tx-vector.h.

Referenced by IsAggregation(), and SetAggregation().

◆ m_bssColor

uint8_t ns3::WifiTxVector::m_bssColor
private

BSS color.

Definition at line 566 of file wifi-tx-vector.h.

Referenced by GetBssColor(), and SetBssColor().

◆ m_center26ToneRuIndication

std::optional<Center26ToneRuIndication> ns3::WifiTxVector::m_center26ToneRuIndication
mutableprivate

CENTER_26_TONE_RU field when format is HE_MU and when channel width is set to 80 MHz or larger (Table 27-1 802.11ax-2021)

Definition at line 586 of file wifi-tx-vector.h.

Referenced by GetCenter26ToneRuIndication(), and SetCenter26ToneRuIndication().

◆ m_channelWidth

MHz_u ns3::WifiTxVector::m_channelWidth
private

◆ m_ehtPpduType

uint8_t ns3::WifiTxVector::m_ehtPpduType
private

EHT_PPDU_TYPE per Table 36-1 IEEE 802.11be D2.3.

Definition at line 590 of file wifi-tx-vector.h.

Referenced by GetEhtPpduType(), IsDlMu(), IsDlMuMimo(), IsDlOfdma(), and SetEhtPpduType().

◆ m_guardInterval

Time ns3::WifiTxVector::m_guardInterval
private

guard interval duration

Definition at line 559 of file wifi-tx-vector.h.

Referenced by GetGuardInterval(), and SetGuardInterval().

◆ m_inactiveSubchannels

std::vector<bool> ns3::WifiTxVector::m_inactiveSubchannels
private

Bitmap of inactive subchannels used for preamble puncturing.

Definition at line 578 of file wifi-tx-vector.h.

Referenced by GetInactiveSubchannels(), and SetInactiveSubchannels().

◆ m_ldpc

bool ns3::WifiTxVector::m_ldpc
private

LDPC FEC coding if true, BCC otherwise.

Definition at line 565 of file wifi-tx-vector.h.

Referenced by IsLdpc(), and SetLdpc().

◆ m_length

uint16_t ns3::WifiTxVector::m_length
private

LENGTH field of the L-SIG.

Definition at line 567 of file wifi-tx-vector.h.

Referenced by GetLength(), and SetLength().

◆ m_mode

WifiMode ns3::WifiTxVector::m_mode
private

The DATARATE parameter in Table 15-4.

It is the value that will be passed to PMD_RATE.request

Definition at line 551 of file wifi-tx-vector.h.

Referenced by GetMode(), GetModulationClass(), IsValid(), and SetMode().

◆ m_modeInitialized

bool ns3::WifiTxVector::m_modeInitialized
private

Internal initialization flag.

Definition at line 570 of file wifi-tx-vector.h.

Referenced by GetMode(), GetModeInitialized(), GetModulationClass(), SetHeMuUserInfo(), SetMode(), and SetMode().

◆ m_muUserInfos

HeMuUserInfoMap ns3::WifiTxVector::m_muUserInfos
private

HE MU specific per-user information indexed by station ID (STA-ID) corresponding to the 11 LSBs of the AID of the recipient STA This list shall be used only for HE MU.

Definition at line 573 of file wifi-tx-vector.h.

Referenced by WifiTxVector(), GetHeMuUserInfo(), GetHeMuUserInfoMap(), GetHeMuUserInfoMap(), GetMode(), GetModulationClass(), GetNss(), GetNssMax(), GetNssTotal(), GetNumStasInRu(), GetRu(), GetUserInfoMapOrderedByRus(), IsAllocated(), IsDlMuMimo(), IsDlOfdma(), IsValid(), SetHeMuUserInfo(), SetMode(), SetNss(), SetRu(), and SetRuAllocation().

◆ m_ness

uint8_t ns3::WifiTxVector::m_ness
private

number of spatial streams in beamforming

Definition at line 562 of file wifi-tx-vector.h.

Referenced by GetNess(), and SetNess().

◆ m_nss

uint8_t ns3::WifiTxVector::m_nss
private

number of spatial streams

Definition at line 561 of file wifi-tx-vector.h.

Referenced by GetNss(), GetNssMax(), GetNssTotal(), IsValid(), and SetNss().

◆ m_nTx

uint8_t ns3::WifiTxVector::m_nTx
private

number of TX antennas

Definition at line 560 of file wifi-tx-vector.h.

Referenced by GetNTx(), and SetNTx().

◆ m_preamble

◆ m_ruAllocation

RuAllocation ns3::WifiTxVector::m_ruAllocation
mutableprivate

RU allocations that are going to be carried in SIG-B common field per Table 27-1 IEEE.

Definition at line 582 of file wifi-tx-vector.h.

Referenced by GetHeMuUserInfoMap(), GetRuAllocation(), SetHeMuUserInfo(), SetRuAllocation(), and ns3::HePpdu::SetTxVectorFromPhyHeaders().

◆ m_sigBMcs

WifiMode ns3::WifiTxVector::m_sigBMcs
private

MCS_SIG_B per Table 27-1 IEEE 802.11ax-2021.

Definition at line 580 of file wifi-tx-vector.h.

Referenced by GetSigBMode(), and SetSigBMode().

◆ m_stbc

bool ns3::WifiTxVector::m_stbc
private

STBC used or not.

Definition at line 564 of file wifi-tx-vector.h.

Referenced by IsStbc(), and SetStbc().

◆ m_triggerResponding

bool ns3::WifiTxVector::m_triggerResponding
private

The Trigger Responding parameter.

Definition at line 568 of file wifi-tx-vector.h.

Referenced by IsTriggerResponding(), and SetTriggerResponding().

◆ m_txPowerLevel

uint8_t ns3::WifiTxVector::m_txPowerLevel
private

The TXPWR_LEVEL parameter in Table 15-4.

It is the value that will be passed to PMD_TXPWRLVL.request

Definition at line 554 of file wifi-tx-vector.h.

Referenced by GetTxPowerLevel(), and SetTxPowerLevel().


The documentation for this class was generated from the following files: