A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::WifiPhyHelper Class Referenceabstract

create PHY objects More...

#include "wifi-helper.h"

+ Inheritance diagram for ns3::WifiPhyHelper:
+ Collaboration diagram for ns3::WifiPhyHelper:

Classes

struct  PcapFilesInfo
 structure holding the information about PCAP files generated for a given device More...
 

Public Types

enum class  PcapCaptureType { PCAP_PER_DEVICE , PCAP_PER_PHY , PCAP_PER_LINK }
 An enumeration of the PCAP capture types. More...
 
enum  SupportedPcapDataLinkTypes { DLT_IEEE802_11 , DLT_PRISM_HEADER , DLT_IEEE802_11_RADIO }
 An enumeration of the pcap data link types (DLTs) which this helper supports. More...
 

Public Member Functions

 WifiPhyHelper (uint8_t nLinks=1)
 Constructor.
 
 ~WifiPhyHelper () override
 
virtual std::vector< Ptr< WifiPhy > > Create (Ptr< Node > node, Ptr< WifiNetDevice > device) const =0
 
void DisablePreambleDetectionModel ()
 Disable the preamble detection model on all links.
 
PcapCaptureType GetPcapCaptureType () const
 Get the PCAP capture type to be used.
 
PcapHelper::DataLinkType GetPcapDataLinkType () const
 Get the data link type of PCAP traces to be used.
 
void Set (std::string name, const AttributeValue &v)
 
void Set (uint8_t linkId, std::string name, const AttributeValue &v)
 
template<typename... Args>
void SetErrorRateModel (std::string type, Args &&... args)
 Helper function used to set the error rate model.
 
template<typename... Args>
void SetErrorRateModel (uint8_t linkId, std::string type, Args &&... args)
 
template<typename... Args>
void SetFrameCaptureModel (std::string type, Args &&... args)
 Helper function used to set the frame capture model.
 
template<typename... Args>
void SetFrameCaptureModel (uint8_t linkId, std::string type, Args &&... args)
 
template<typename... Args>
void SetInterferenceHelper (std::string type, Args &&... args)
 Helper function used to set the interference helper.
 
void SetPcapCaptureType (PcapCaptureType type)
 Set the PCAP capture type to be used.
 
void SetPcapDataLinkType (SupportedPcapDataLinkTypes dlt)
 Set the data link type of PCAP traces to be used.
 
template<typename... Args>
void SetPreambleDetectionModel (std::string type, Args &&... args)
 Helper function used to set the preamble detection model.
 
template<typename... Args>
void SetPreambleDetectionModel (uint8_t linkId, std::string type, Args &&... args)
 
- Public Member Functions inherited from ns3::PcapHelperForDevice
 PcapHelperForDevice ()
 Construct a PcapHelperForDevice.
 
virtual ~PcapHelperForDevice ()
 Destroy a PcapHelperForDevice.
 
void EnablePcap (std::string prefix, NetDeviceContainer d, bool promiscuous=false)
 Enable pcap output on each device in the container which is of the appropriate type.
 
void EnablePcap (std::string prefix, NodeContainer n, bool promiscuous=false)
 Enable pcap output on each device (which is of the appropriate type) in the nodes provided in the container.
 
void EnablePcap (std::string prefix, Ptr< NetDevice > nd, bool promiscuous=false, bool explicitFilename=false)
 Enable pcap output the indicated net device.
 
void EnablePcap (std::string prefix, std::string ndName, bool promiscuous=false, bool explicitFilename=false)
 Enable pcap output the indicated net device using a device previously named using the ns-3 object name service.
 
void EnablePcap (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool promiscuous=false)
 Enable pcap output on the device specified by a global node-id (of a previously created node) and associated device-id.
 
void EnablePcapAll (std::string prefix, bool promiscuous=false)
 Enable pcap output on each device (which is of the appropriate type) in the set of all nodes created in the simulation.
 
- Public Member Functions inherited from ns3::AsciiTraceHelperForDevice
 AsciiTraceHelperForDevice ()
 Construct an AsciiTraceHelperForDevice.
 
virtual ~AsciiTraceHelperForDevice ()
 Destroy an AsciiTraceHelperForDevice.
 
void EnableAscii (Ptr< OutputStreamWrapper > stream, NetDeviceContainer d)
 Enable ascii trace output on each device in the container which is of the appropriate type.
 
void EnableAscii (Ptr< OutputStreamWrapper > stream, NodeContainer n)
 Enable ascii trace output on each device (which is of the appropriate type) in the nodes provided in the container.
 
void EnableAscii (Ptr< OutputStreamWrapper > stream, Ptr< NetDevice > nd)
 Enable ascii trace output on the indicated net device.
 
void EnableAscii (Ptr< OutputStreamWrapper > stream, std::string ndName)
 Enable ascii trace output the indicated net device using a device previously named using the ns-3 object name service.
 
void EnableAscii (Ptr< OutputStreamWrapper > stream, uint32_t nodeid, uint32_t deviceid)
 Enable ascii trace output on the device specified by a global node-id (of a previously created node) and associated device-id.
 
void EnableAscii (std::string prefix, NetDeviceContainer d)
 Enable ascii trace output on each device in the container which is of the appropriate type.
 
void EnableAscii (std::string prefix, NodeContainer n)
 Enable ascii trace output on each device (which is of the appropriate type) in the nodes provided in the container.
 
void EnableAscii (std::string prefix, Ptr< NetDevice > nd, bool explicitFilename=false)
 Enable ascii trace output on the indicated net device.
 
void EnableAscii (std::string prefix, std::string ndName, bool explicitFilename=false)
 Enable ascii trace output the indicated net device using a device previously named using the ns-3 object name service.
 
void EnableAscii (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename)
 Enable ascii trace output on the device specified by a global node-id (of a previously created node) and associated device-id.
 
void EnableAsciiAll (Ptr< OutputStreamWrapper > stream)
 Enable ascii trace output on each device (which is of the appropriate type) in the set of all nodes created in the simulation.
 
void EnableAsciiAll (std::string prefix)
 Enable ascii trace output on each device (which is of the appropriate type) in the set of all nodes created in the simulation.
 

Static Protected Member Functions

static void PcapSniffRxEvent (const std::shared_ptr< PcapFilesInfo > &info, uint8_t phyId, Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise, uint16_t staId=SU_STA_ID)
 
static void PcapSniffTxEvent (const std::shared_ptr< PcapFilesInfo > &info, uint8_t phyId, Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, uint16_t staId=SU_STA_ID)
 

Protected Attributes

std::vector< ObjectFactorym_errorRateModel
 error rate model
 
std::vector< ObjectFactorym_frameCaptureModel
 frame capture model
 
ObjectFactory m_interferenceHelper
 interference helper
 
std::vector< ObjectFactorym_phys
 PHY objects.
 
std::vector< ObjectFactorym_preambleDetectionModel
 preamble detection model
 

Private Member Functions

void EnableAsciiInternal (Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< NetDevice > nd, bool explicitFilename) override
 Enable ASCII trace output on the indicated net device.
 
void EnablePcapInternal (std::string prefix, Ptr< NetDevice > nd, bool promiscuous, bool explicitFilename) override
 Enable pcap output the indicated net device.
 

Static Private Member Functions

static Ptr< PcapFileWrapperGetOrCreatePcapFile (const std::shared_ptr< PcapFilesInfo > &info, uint8_t phyId)
 Get the PCAP file to write to from a list of PCAP files indexed by PHY ID.
 
static void GetRadiotapHeader (RadiotapHeader &header, Ptr< Packet > packet, uint16_t channelFreqMhz, uint8_t p20Index, const WifiTxVector &txVector, MpduInfo aMpdu, uint16_t staId)
 Get the Radiotap header for a transmitted packet.
 
static void GetRadiotapHeader (RadiotapHeader &header, Ptr< Packet > packet, uint16_t channelFreqMhz, uint8_t p20Index, const WifiTxVector &txVector, MpduInfo aMpdu, uint16_t staId, SignalNoiseDbm signalNoise)
 Get the Radiotap header for a received packet.
 

Private Attributes

PcapHelper::DataLinkType m_pcapDlt
 PCAP data link type.
 
PcapCaptureType m_pcapType
 PCAP capture type.
 

Detailed Description

create PHY objects

This base class must be implemented by new PHY implementation which wish to integrate with the ns3::WifiHelper class.

Definition at line 38 of file wifi-helper.h.

Member Enumeration Documentation

◆ PcapCaptureType

An enumeration of the PCAP capture types.

The PCAP capture type only matters for multi-link devices.

Enumerator
PCAP_PER_DEVICE 

Single capture file per device.

PCAP_PER_PHY 

Single capture file per PHY.

PCAP_PER_LINK 

Single capture file per link.

Definition at line 176 of file wifi-helper.h.

◆ SupportedPcapDataLinkTypes

An enumeration of the pcap data link types (DLTs) which this helper supports.

See http://wiki.wireshark.org/Development/LibpcapFileFormat for more information on these formats.

Enumerator
DLT_IEEE802_11 

IEEE 802.11 Wireless LAN headers on packets.

DLT_PRISM_HEADER 

Include Prism monitor mode information.

DLT_IEEE802_11_RADIO 

Include Radiotap link layer information.

Definition at line 162 of file wifi-helper.h.

Constructor & Destructor Documentation

◆ WifiPhyHelper()

ns3::WifiPhyHelper::WifiPhyHelper ( uint8_t nLinks = 1)

Constructor.

Parameters
nLinksthe number of links to configure (>1 only for 11be devices)

Definition at line 155 of file wifi-helper.cc.

References m_errorRateModel, m_frameCaptureModel, m_phys, m_preambleDetectionModel, NS_ABORT_IF, and SetPreambleDetectionModel().

+ Here is the call graph for this function:

◆ ~WifiPhyHelper()

ns3::WifiPhyHelper::~WifiPhyHelper ( )
override

Definition at line 168 of file wifi-helper.cc.

Member Function Documentation

◆ Create()

virtual std::vector< Ptr< WifiPhy > > ns3::WifiPhyHelper::Create ( Ptr< Node > node,
Ptr< WifiNetDevice > device ) const
pure virtual
Parameters
nodethe node on which the PHY object(s) will reside
devicethe device within which the PHY object(s) will reside
Returns
new PHY objects.

Subclasses must implement this method to allow the ns3::WifiHelper class to create PHY objects from ns3::WifiHelper::Install.

Implemented in ns3::SpectrumWifiPhyHelper, and ns3::YansWifiPhyHelper.

Referenced by ns3::MeshHelper::CreateInterface(), and ns3::WifiHelper::Install().

+ Here is the caller graph for this function:

◆ DisablePreambleDetectionModel()

void ns3::WifiPhyHelper::DisablePreambleDetectionModel ( )

Disable the preamble detection model on all links.

Definition at line 188 of file wifi-helper.cc.

References m_phys, and m_preambleDetectionModel.

Referenced by Bug772ChainTest::CreateDevices(), ChainRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), and HwmpReactiveRegressionTest::CreateDevices().

+ Here is the caller graph for this function:

◆ EnableAsciiInternal()

void ns3::WifiPhyHelper::EnableAsciiInternal ( Ptr< OutputStreamWrapper > stream,
std::string prefix,
Ptr< NetDevice > nd,
bool explicitFilename )
overrideprivatevirtual

Enable ASCII trace output on the indicated net device.

NetDevice-specific implementation mechanism for hooking the trace and writing to the trace file.

Parameters
streamThe output stream object to use when logging ASCII traces.
prefixFilename prefix to use for ASCII trace files.
ndNet device for which you want to enable tracing.
explicitFilenameTreat the prefix as an explicit filename if true

Implements ns3::AsciiTraceHelperForDevice.

Definition at line 864 of file wifi-helper.cc.

References ns3::AsciiPhyReceiveSinkWithContext(), ns3::AsciiPhyReceiveSinkWithoutContext(), ns3::AsciiPhyTransmitSinkWithContext(), ns3::AsciiPhyTransmitSinkWithoutContext(), ns3::Config::Connect(), ns3::Config::ConnectWithoutContext(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::Packet::EnablePrinting(), ns3::AsciiTraceHelper::GetFilenameFromDevice(), ns3::MakeBoundCallback(), and NS_LOG_INFO.

+ Here is the call graph for this function:

◆ EnablePcapInternal()

void ns3::WifiPhyHelper::EnablePcapInternal ( std::string prefix,
Ptr< NetDevice > nd,
bool promiscuous,
bool explicitFilename )
overrideprivatevirtual

Enable pcap output the indicated net device.

NetDevice-specific implementation mechanism for hooking the trace and writing to the trace file.

Parameters
prefixFilename prefix to use for pcap files.
ndNet device for which you want to enable tracing.
promiscuousIf true capture all possible packets available at the device.
explicitFilenameTreat the prefix as an explicit filename if true

Implements ns3::PcapHelperForDevice.

Definition at line 819 of file wifi-helper.cc.

References ns3::PcapHelper::GetFilenameFromDevice(), m_pcapDlt, m_pcapType, ns3::MakeBoundCallback(), NS_ABORT_MSG_IF, NS_LOG_FUNCTION, NS_LOG_INFO, PcapSniffRxEvent(), and PcapSniffTxEvent().

+ Here is the call graph for this function:

◆ GetOrCreatePcapFile()

Ptr< PcapFileWrapper > ns3::WifiPhyHelper::GetOrCreatePcapFile ( const std::shared_ptr< PcapFilesInfo > & info,
uint8_t phyId )
staticprivate

Get the PCAP file to write to from a list of PCAP files indexed by PHY ID.

If PCAP files are generated per link, it might create a new file if a link has swapped to a new ID.

Parameters
infothe information needed to write to the correct PCAP file
phyIdthe ID of the PHY that raised the event
Returns
the PCAP file to write to

Definition at line 195 of file wifi-helper.cc.

References ns3::PcapHelper::CreateFile(), NS_ABORT_MSG, PCAP_PER_DEVICE, PCAP_PER_LINK, and PCAP_PER_PHY.

Referenced by PcapSniffRxEvent(), and PcapSniffTxEvent().

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

◆ GetPcapCaptureType()

WifiPhyHelper::PcapCaptureType ns3::WifiPhyHelper::GetPcapCaptureType ( ) const

Get the PCAP capture type to be used.

See also
PcapCaptureType
Returns
The PCAP capture type to be used

Definition at line 813 of file wifi-helper.cc.

References m_pcapType.

◆ GetPcapDataLinkType()

PcapHelper::DataLinkType ns3::WifiPhyHelper::GetPcapDataLinkType ( ) const

Get the data link type of PCAP traces to be used.

See also
SupportedPcapDataLinkTypes
Returns
The data link type of the pcap file (and packets) to be used

Definition at line 801 of file wifi-helper.cc.

References m_pcapDlt.

◆ GetRadiotapHeader() [1/2]

void ns3::WifiPhyHelper::GetRadiotapHeader ( RadiotapHeader & header,
Ptr< Packet > packet,
uint16_t channelFreqMhz,
uint8_t p20Index,
const WifiTxVector & txVector,
MpduInfo aMpdu,
uint16_t staId )
staticprivate

Get the Radiotap header for a transmitted packet.

Parameters
headerthe radiotap header to be filled in
packetthe packet
channelFreqMhzthe channel frequency
p20Indexthe index of the primary20 channel
txVectorthe TXVECTOR
aMpduthe A-MPDU information
staIdthe STA-ID

Definition at line 345 of file wifi-helper.cc.

References ns3::RadiotapHeader::A_MPDU_STATUS_LAST, ns3::RadiotapHeader::A_MPDU_STATUS_LAST_KNOWN, ns3::RadiotapHeader::CHANNEL_FLAG_CCK, ns3::RadiotapHeader::CHANNEL_FLAG_OFDM, ns3::RadiotapHeader::CHANNEL_FLAG_SPECTRUM_2GHZ, ns3::RadiotapHeader::CHANNEL_FLAG_SPECTRUM_5GHZ, ns3::RadiotapHeader::UsigFields::common, ns3::RadiotapHeader::HeFields::data1, ns3::RadiotapHeader::EHT_DATA0_GI, ns3::RadiotapHeader::EHT_DATA0_GI_1600_NS, ns3::RadiotapHeader::EHT_DATA0_GI_3200_NS, ns3::RadiotapHeader::EHT_DATA0_GI_800_NS, ns3::RadiotapHeader::EHT_DATA1_PRIMARY_80, ns3::RadiotapHeader::EHT_DATA1_PRIMARY_80_HIGHEST, ns3::RadiotapHeader::EHT_DATA1_PRIMARY_80_LOWEST, ns3::RadiotapHeader::EHT_DATA1_RU_ALLOC_CC_1_1_1, ns3::RadiotapHeader::EHT_DATA1_RU_ALLOC_CC_1_1_1_KNOWN, ns3::RadiotapHeader::EHT_DATA1_RU_MRU_INDEX, ns3::RadiotapHeader::EHT_DATA1_RU_MRU_SIZE, ns3::RadiotapHeader::EHT_DATA1_RU_MRU_SIZE_106, ns3::RadiotapHeader::EHT_DATA1_RU_MRU_SIZE_242, ns3::RadiotapHeader::EHT_DATA1_RU_MRU_SIZE_26, ns3::RadiotapHeader::EHT_DATA1_RU_MRU_SIZE_2x996, ns3::RadiotapHeader::EHT_DATA1_RU_MRU_SIZE_484, ns3::RadiotapHeader::EHT_DATA1_RU_MRU_SIZE_52, ns3::RadiotapHeader::EHT_DATA1_RU_MRU_SIZE_996, ns3::RadiotapHeader::EHT_DATA2_RU_ALLOC_CC_1_1_2, ns3::RadiotapHeader::EHT_DATA2_RU_ALLOC_CC_1_1_2_KNOWN, ns3::RadiotapHeader::EHT_DATA2_RU_ALLOC_CC_2_1_1, ns3::RadiotapHeader::EHT_DATA2_RU_ALLOC_CC_2_1_1_KNOWN, ns3::RadiotapHeader::EHT_DATA2_RU_ALLOC_CC_2_1_2, ns3::RadiotapHeader::EHT_DATA2_RU_ALLOC_CC_2_1_2_KNOWN, ns3::RadiotapHeader::EHT_DATA3_RU_ALLOC_CC_1_2_1, ns3::RadiotapHeader::EHT_DATA3_RU_ALLOC_CC_1_2_1_KNOWN, ns3::RadiotapHeader::EHT_DATA3_RU_ALLOC_CC_1_2_2, ns3::RadiotapHeader::EHT_DATA3_RU_ALLOC_CC_1_2_2_KNOWN, ns3::RadiotapHeader::EHT_DATA3_RU_ALLOC_CC_2_2_1, ns3::RadiotapHeader::EHT_DATA3_RU_ALLOC_CC_2_2_1_KNOWN, ns3::RadiotapHeader::EHT_DATA4_RU_ALLOC_CC_2_2_2, ns3::RadiotapHeader::EHT_DATA4_RU_ALLOC_CC_2_2_2_KNOWN, ns3::RadiotapHeader::EHT_KNOWN_GI, ns3::RadiotapHeader::EHT_KNOWN_PRIMARY_80, ns3::RadiotapHeader::EHT_KNOWN_RU_MRU_INDEX_OM, ns3::RadiotapHeader::EHT_KNOWN_RU_MRU_SIZE_OM, ns3::RadiotapHeader::EHT_USER_INFO_DATA_FOR_USER, ns3::RadiotapHeader::EHT_USER_INFO_MCS, ns3::RadiotapHeader::EHT_USER_INFO_MCS_KNOWN, ns3::RadiotapHeader::EHT_USER_INFO_NSS_KNOWN_O, ns3::RadiotapHeader::EHT_USER_INFO_NSS_O, ns3::RadiotapHeader::EHT_USER_INFO_STA_ID, ns3::RadiotapHeader::EHT_USER_INFO_STA_ID_KNOWN, ns3::RadiotapHeader::FRAME_FLAG_FCS_INCLUDED, ns3::RadiotapHeader::FRAME_FLAG_NONE, ns3::RadiotapHeader::FRAME_FLAG_SHORT_GUARD, ns3::RadiotapHeader::FRAME_FLAG_SHORT_PREAMBLE, ns3::RadiotapHeader::ChannelFields::frequency, ns3::WifiTxVector::GetBssColor(), ns3::WifiTxVector::GetChannelWidth(), ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetEhtPpduType(), ns3::AmpduSubframeHeader::GetEof(), ns3::WifiTxVector::GetGuardInterval(), ns3::WifiTxVector::GetHeMuUserInfo(), ns3::WifiTxVector::GetInactiveSubchannels(), ns3::HeRu::RuSpec::GetIndex(), ns3::AmpduSubframeHeader::GetLength(), ns3::WifiMode::GetMcsValue(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetModulationClass(), ns3::WifiTxVector::GetNess(), ns3::WifiTxVector::GetNss(), ns3::WifiTxVector::GetPreambleType(), ns3::HeRu::RuSpec::GetPrimary80MHz(), ns3::EhtPpdu::GetPuncturedInfo(), ns3::WifiTxVector::GetRu(), ns3::WifiTxVector::GetRuAllocation(), ns3::HeRu::GetRuType(), ns3::HeRu::RuSpec::GetRuType(), ns3::WifiTxVector::GetSigBMode(), ns3::RadiotapHeader::HE_DATA1_BSS_COLOR_KNOWN, ns3::RadiotapHeader::HE_DATA1_BW_RU_ALLOC_KNOWN, ns3::RadiotapHeader::HE_DATA1_DATA_MCS_KNOWN, ns3::RadiotapHeader::HE_DATA1_FORMAT_EXT_SU, ns3::RadiotapHeader::HE_DATA1_FORMAT_MU, ns3::RadiotapHeader::HE_DATA1_FORMAT_TRIG, ns3::RadiotapHeader::HE_DATA1_SPTL_REUSE2_KNOWN, ns3::RadiotapHeader::HE_DATA2_GI_KNOWN, ns3::RadiotapHeader::HE_DATA2_PRISEC_80_SEC, ns3::RadiotapHeader::HE_DATA2_RU_OFFSET, ns3::RadiotapHeader::HE_DATA2_RU_OFFSET_KNOWN, ns3::RadiotapHeader::HE_DATA3_BSS_COLOR, ns3::RadiotapHeader::HE_DATA3_DATA_MCS, ns3::RadiotapHeader::HE_DATA4_MU_STA_ID, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_106T, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_160MHZ, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_242T, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_26T, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_2x996T, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_40MHZ, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_484T, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_52T, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_80MHZ, ns3::RadiotapHeader::HE_DATA5_DATA_BW_RU_ALLOC_996T, ns3::RadiotapHeader::HE_DATA5_GI_1_6, ns3::RadiotapHeader::HE_DATA5_GI_3_2, ns3::WifiTxVector::IsAggregation(), ns3::WifiTxVector::IsDlMu(), ns3::IsEht(), ns3::WifiTxVector::IsStbc(), ns3::RadiotapHeader::EhtFields::known, ns3::RadiotapHeader::VhtFields::known, ns3::LAST_MPDU_IN_AGGREGATE, ns3::RadiotapHeader::McsFields::mcs, ns3::RadiotapHeader::MCS_FLAGS_BANDWIDTH_40, ns3::RadiotapHeader::MCS_FLAGS_GUARD_INTERVAL, ns3::RadiotapHeader::MCS_FLAGS_NESS_BIT_0, ns3::RadiotapHeader::MCS_FLAGS_STBC_STREAMS, ns3::RadiotapHeader::MCS_KNOWN_BANDWIDTH, ns3::RadiotapHeader::MCS_KNOWN_FEC_TYPE, ns3::RadiotapHeader::MCS_KNOWN_GUARD_INTERVAL, ns3::RadiotapHeader::MCS_KNOWN_HT_FORMAT, ns3::RadiotapHeader::MCS_KNOWN_INDEX, ns3::RadiotapHeader::MCS_KNOWN_NESS, ns3::RadiotapHeader::MCS_KNOWN_NESS_BIT_1, ns3::RadiotapHeader::MCS_KNOWN_STBC, ns3::MpduInfo::mpduRefNumber, ns3::Simulator::Now(), NS_ABORT_MSG, ns3::RadiotapHeader::AmpduStatusFields::referenceNumber, ns3::HeMuUserInfo::ru, ns3::HeRu::RU_106_TONE, ns3::HeRu::RU_242_TONE, ns3::HeRu::RU_26_TONE, ns3::HeRu::RU_2x996_TONE, ns3::HeRu::RU_484_TONE, ns3::HeRu::RU_52_TONE, ns3::HeRu::RU_996_TONE, ns3::RadiotapHeader::SetAmpduStatus(), ns3::RadiotapHeader::SetChannelFields(), ns3::RadiotapHeader::SetEhtFields(), ns3::RadiotapHeader::SetFrameFlags(), ns3::RadiotapHeader::SetHeFields(), ns3::RadiotapHeader::SetHeMuFields(), ns3::RadiotapHeader::SetHeMuOtherUserFields(), ns3::RadiotapHeader::SetMcsFields(), ns3::RadiotapHeader::SetRate(), ns3::RadiotapHeader::SetTsft(), ns3::RadiotapHeader::SetUsigFields(), ns3::RadiotapHeader::SetVhtFields(), ns3::MpduInfo::type, ns3::RadiotapHeader::USIG2_MU_B0_B1_PPDU_TYPE, ns3::RadiotapHeader::USIG2_MU_B3_B7_PUNCTURED_INFO, ns3::RadiotapHeader::USIG2_MU_B9_B10_SIG_MCS, ns3::RadiotapHeader::USIG2_TB_B0_B1_PPDU_TYPE, ns3::RadiotapHeader::USIG_COMMON_BSS_COLOR, ns3::RadiotapHeader::USIG_COMMON_BSS_COLOR_KNOWN, ns3::RadiotapHeader::USIG_COMMON_BW, ns3::RadiotapHeader::USIG_COMMON_BW_160MHZ, ns3::RadiotapHeader::USIG_COMMON_BW_20MHZ, ns3::RadiotapHeader::USIG_COMMON_BW_40MHZ, ns3::RadiotapHeader::USIG_COMMON_BW_80MHZ, ns3::RadiotapHeader::USIG_COMMON_BW_KNOWN, ns3::RadiotapHeader::USIG_COMMON_PHY_VER_KNOWN, ns3::RadiotapHeader::VHT_FLAGS_GUARD_INTERVAL, ns3::RadiotapHeader::VHT_FLAGS_STBC, ns3::RadiotapHeader::VHT_KNOWN_BANDWIDTH, ns3::RadiotapHeader::VHT_KNOWN_BEAMFORMED, ns3::RadiotapHeader::VHT_KNOWN_GUARD_INTERVAL, ns3::RadiotapHeader::VHT_KNOWN_STBC, ns3::WIFI_MOD_CLASS_HE, ns3::WIFI_MOD_CLASS_HT, ns3::WIFI_MOD_CLASS_VHT, ns3::WIFI_PREAMBLE_EHT_MU, ns3::WIFI_PREAMBLE_HE_ER_SU, ns3::WIFI_PREAMBLE_HE_MU, ns3::WIFI_PREAMBLE_HE_TB, and ns3::WIFI_PREAMBLE_SHORT.

Referenced by GetRadiotapHeader(), PcapSniffRxEvent(), and PcapSniffTxEvent().

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

◆ GetRadiotapHeader() [2/2]

void ns3::WifiPhyHelper::GetRadiotapHeader ( RadiotapHeader & header,
Ptr< Packet > packet,
uint16_t channelFreqMhz,
uint8_t p20Index,
const WifiTxVector & txVector,
MpduInfo aMpdu,
uint16_t staId,
SignalNoiseDbm signalNoise )
staticprivate

Get the Radiotap header for a received packet.

Parameters
headerthe radiotap header to be filled in
packetthe packet
channelFreqMhzthe channel frequency
p20Indexthe index of the primary20 channel
txVectorthe TXVECTOR
aMpduthe A-MPDU information
staIdthe STA-ID
signalNoisethe rx signal and noise information

Definition at line 330 of file wifi-helper.cc.

References GetRadiotapHeader(), ns3::SignalNoiseDbm::noise, ns3::RadiotapHeader::SetAntennaNoisePower(), ns3::RadiotapHeader::SetAntennaSignalPower(), and ns3::SignalNoiseDbm::signal.

+ Here is the call graph for this function:

◆ PcapSniffRxEvent()

void ns3::WifiPhyHelper::PcapSniffRxEvent ( const std::shared_ptr< PcapFilesInfo > & info,
uint8_t phyId,
Ptr< const Packet > packet,
uint16_t channelFreqMhz,
WifiTxVector txVector,
MpduInfo aMpdu,
SignalNoiseDbm signalNoise,
uint16_t staId = SU_STA_ID )
staticprotected
Parameters
infothe information needed to write to the correct PCAP file
phyIdthe ID of the PHY that raised the event
packetthe packet
channelFreqMhzthe channel frequency
txVectorthe TXVECTOR
aMpduthe A-MPDU information
signalNoisethe RX signal and noise information
staIdthe STA-ID (only used for MU)

Handle RX pcap.

Definition at line 286 of file wifi-helper.cc.

References ns3::PcapHelper::DLT_IEEE802_11, ns3::PcapHelper::DLT_IEEE802_11_RADIO, ns3::PcapHelper::DLT_PRISM_HEADER, GetOrCreatePcapFile(), GetRadiotapHeader(), ns3::Simulator::Now(), NS_ABORT_MSG, and NS_FATAL_ERROR.

Referenced by EnablePcapInternal().

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

◆ PcapSniffTxEvent()

void ns3::WifiPhyHelper::PcapSniffTxEvent ( const std::shared_ptr< PcapFilesInfo > & info,
uint8_t phyId,
Ptr< const Packet > packet,
uint16_t channelFreqMhz,
WifiTxVector txVector,
MpduInfo aMpdu,
uint16_t staId = SU_STA_ID )
staticprotected
Parameters
infothe information needed to write to the correct PCAP file
phyIdthe ID of the PHY that raised the event
packetthe packet
channelFreqMhzthe channel frequency
txVectorthe TXVECTOR
aMpduthe A-MPDU information
staIdthe STA-ID (only used for MU)

Handle TX pcap.

Definition at line 244 of file wifi-helper.cc.

References ns3::PcapHelper::DLT_IEEE802_11, ns3::PcapHelper::DLT_IEEE802_11_RADIO, ns3::PcapHelper::DLT_PRISM_HEADER, GetOrCreatePcapFile(), GetRadiotapHeader(), ns3::Simulator::Now(), NS_ABORT_MSG, and NS_FATAL_ERROR.

Referenced by EnablePcapInternal().

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

◆ Set() [1/2]

void ns3::WifiPhyHelper::Set ( std::string name,
const AttributeValue & v )
Parameters
namethe name of the attribute to set
vthe value of the attribute

Set an attribute of all the underlying PHY object.

Definition at line 173 of file wifi-helper.cc.

References m_phys.

Referenced by BatteryLifetimeTest::ConstantLoadTest(), Bug772ChainTest::CreateDevices(), BasicEnergyDepletionTest::DepletionTestCase(), Bug2843TestCase::DoRun(), SpectrumWifiPhyInterfacesHelperTest::DoRun(), AidAssignmentTest::DoSetup(), BackoffGenerationTest::DoSetup(), EmlsrOperationsTestBase::DoSetup(), MultiLinkOperationsTestBase::DoSetup(), SpectrumWifiPhyMultipleInterfacesTest::DoSetup(), TestUlOfdmaPowerControl::DoSetup(), RoutingExperiment::Run(), MultiLinkOperationsTestBase::SetChannels(), and BatteryLifetimeTest::VariableLoadTest().

+ Here is the caller graph for this function:

◆ Set() [2/2]

void ns3::WifiPhyHelper::Set ( uint8_t linkId,
std::string name,
const AttributeValue & v )
Parameters
namethe name of the attribute to set
vthe value of the attribute
linkIdID of the link to configure (>0 only for 11be devices)

Set an attribute of the given underlying PHY object.

Definition at line 182 of file wifi-helper.cc.

References m_phys.

◆ SetErrorRateModel() [1/2]

template<typename... Args>
void ns3::WifiPhyHelper::SetErrorRateModel ( std::string type,
Args &&... args )

Helper function used to set the error rate model.

Template Parameters
Args[deduced] Template type parameter pack for the sequence of name-value pairs.
Parameters
typethe type of error rate model
argsA sequence of name-value pairs of the attributes to set.

Definition at line 634 of file wifi-helper.h.

References m_phys, and SetErrorRateModel().

Referenced by ns3::SpectrumWifiPhyHelper::SpectrumWifiPhyHelper(), ns3::YansWifiPhyHelper::YansWifiPhyHelper(), Bug772ChainTest::CreateDevices(), ChainRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), HwmpReactiveRegressionTest::CreateDevices(), Bug2843TestCase::DoRun(), TestUlOfdmaPowerControl::DoSetup(), and SetErrorRateModel().

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

◆ SetErrorRateModel() [2/2]

template<typename... Args>
void ns3::WifiPhyHelper::SetErrorRateModel ( uint8_t linkId,
std::string type,
Args &&... args )
Template Parameters
Args[deduced] Template type parameter pack for the sequence of name-value pairs.
Parameters
linkIdID of the link to configure (>0 only for 11be devices)
typethe type of the error rate model to set.
argsA sequence of name-value pairs of the attributes to set.

Set the error rate model and its attributes to use for the given link when Install is called.

Definition at line 644 of file wifi-helper.h.

References m_errorRateModel.

◆ SetFrameCaptureModel() [1/2]

template<typename... Args>
void ns3::WifiPhyHelper::SetFrameCaptureModel ( std::string type,
Args &&... args )

Helper function used to set the frame capture model.

Template Parameters
Args[deduced] Template type parameter pack for the sequence of name-value pairs.
Parameters
typethe type of frame capture model
argsA sequence of name-value pairs of the attributes to set.

Definition at line 652 of file wifi-helper.h.

References m_phys, and SetFrameCaptureModel().

Referenced by SetFrameCaptureModel().

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

◆ SetFrameCaptureModel() [2/2]

template<typename... Args>
void ns3::WifiPhyHelper::SetFrameCaptureModel ( uint8_t linkId,
std::string type,
Args &&... args )
Template Parameters
Args[deduced] Template type parameter pack for the sequence of name-value pairs.
Parameters
linkIdID of the link to configure (>0 only for 11be devices)
typethe type of the frame capture model to set.
argsA sequence of name-value pairs of the attributes to set.

Set the frame capture model and its attributes to use for the given link when Install is called.

Definition at line 662 of file wifi-helper.h.

References m_frameCaptureModel.

◆ SetInterferenceHelper()

template<typename... Args>
void ns3::WifiPhyHelper::SetInterferenceHelper ( std::string type,
Args &&... args )

Helper function used to set the interference helper.

Template Parameters
Args[deduced] Template type parameter pack for the sequence of name-value pairs.
Parameters
typethe type of interference helper
argsA sequence of name-value pairs of the attributes to set.

Definition at line 626 of file wifi-helper.h.

References m_interferenceHelper, ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().

Referenced by ns3::SpectrumWifiPhyHelper::SpectrumWifiPhyHelper(), ns3::YansWifiPhyHelper::YansWifiPhyHelper(), and SpectrumWifiPhyMultipleInterfacesTest::DoSetup().

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

◆ SetPcapCaptureType()

void ns3::WifiPhyHelper::SetPcapCaptureType ( PcapCaptureType type)

Set the PCAP capture type to be used.

This function has to be called before EnablePcap().

See also
PcapCaptureType
Parameters
typeThe PCAP capture type

Definition at line 807 of file wifi-helper.cc.

References m_pcapType.

Referenced by AidAssignmentTest::DoSetup(), EmlsrOperationsTestBase::DoSetup(), and MultiLinkOperationsTestBase::SetChannels().

+ Here is the caller graph for this function:

◆ SetPcapDataLinkType()

void ns3::WifiPhyHelper::SetPcapDataLinkType ( SupportedPcapDataLinkTypes dlt)

Set the data link type of PCAP traces to be used.

This function has to be called before EnablePcap(), so that the header of the pcap file can be written correctly.

See also
SupportedPcapDataLinkTypes
Parameters
dltThe data link type of the pcap file (and packets) to be used

Definition at line 782 of file wifi-helper.cc.

References ns3::PcapHelper::DLT_IEEE802_11, DLT_IEEE802_11, ns3::PcapHelper::DLT_IEEE802_11_RADIO, DLT_IEEE802_11_RADIO, ns3::PcapHelper::DLT_PRISM_HEADER, DLT_PRISM_HEADER, m_pcapDlt, and NS_ABORT_MSG.

Referenced by BatteryLifetimeTest::ConstantLoadTest(), BasicEnergyDepletionTest::DepletionTestCase(), WifiMsduAggregatorThroughputTest::DoRun(), AidAssignmentTest::DoSetup(), BackoffGenerationTest::DoSetup(), EmlsrOperationsTestBase::DoSetup(), SpectrumWifiPhyMultipleInterfacesTest::DoSetup(), MultiLinkOperationsTestBase::SetChannels(), and BatteryLifetimeTest::VariableLoadTest().

+ Here is the caller graph for this function:

◆ SetPreambleDetectionModel() [1/2]

template<typename... Args>
void ns3::WifiPhyHelper::SetPreambleDetectionModel ( std::string type,
Args &&... args )

Helper function used to set the preamble detection model.

Template Parameters
Args[deduced] Template type parameter pack for the sequence of name-value pairs.
Parameters
typethe type of preamble detection model
argsA sequence of name-value pairs of the attributes to set.

Definition at line 670 of file wifi-helper.h.

References m_phys, and SetPreambleDetectionModel().

Referenced by WifiPhyHelper(), and SetPreambleDetectionModel().

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

◆ SetPreambleDetectionModel() [2/2]

template<typename... Args>
void ns3::WifiPhyHelper::SetPreambleDetectionModel ( uint8_t linkId,
std::string type,
Args &&... args )
Template Parameters
Args[deduced] Template type parameter pack for the sequence of name-value pairs.
Parameters
linkIdID of the link to configure (>0 only for 11be devices)
typethe type of the preamble detection model to set.
argsA sequence of name-value pairs of the attributes to set.

Set the preamble detection model and its attributes to use for the given link when Install is called.

Definition at line 680 of file wifi-helper.h.

References m_preambleDetectionModel.

Member Data Documentation

◆ m_errorRateModel

std::vector<ObjectFactory> ns3::WifiPhyHelper::m_errorRateModel
protected

◆ m_frameCaptureModel

std::vector<ObjectFactory> ns3::WifiPhyHelper::m_frameCaptureModel
protected

◆ m_interferenceHelper

ObjectFactory ns3::WifiPhyHelper::m_interferenceHelper
protected

interference helper

Definition at line 294 of file wifi-helper.h.

Referenced by ns3::SpectrumWifiPhyHelper::Create(), ns3::YansWifiPhyHelper::Create(), and SetInterferenceHelper().

◆ m_pcapDlt

PcapHelper::DataLinkType ns3::WifiPhyHelper::m_pcapDlt
private

PCAP data link type.

Definition at line 384 of file wifi-helper.h.

Referenced by EnablePcapInternal(), GetPcapDataLinkType(), and SetPcapDataLinkType().

◆ m_pcapType

PcapCaptureType ns3::WifiPhyHelper::m_pcapType
private

PCAP capture type.

Definition at line 385 of file wifi-helper.h.

Referenced by EnablePcapInternal(), GetPcapCaptureType(), and SetPcapCaptureType().

◆ m_phys

◆ m_preambleDetectionModel

std::vector<ObjectFactory> ns3::WifiPhyHelper::m_preambleDetectionModel
protected

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