A Discrete-Event Network Simulator
API
ns3::WifiHelper Class Reference

helps to create WifiNetDevice objects More...

#include "wifi-helper.h"

+ Inheritance diagram for ns3::WifiHelper:
+ Collaboration diagram for ns3::WifiHelper:

Public Types

typedef std::function< std::size_t(Ptr< QueueItem >)> SelectQueueCallback
 Callback invoked to determine the MAC queue selected for a given packet. More...
 

Public Member Functions

 WifiHelper ()
 Create a Wifi helper in an empty state: all its parameters must be set before calling ns3::WifiHelper::Install. More...
 
virtual ~WifiHelper ()
 
int64_t AssignStreams (NetDeviceContainer c, int64_t stream)
 Assign a fixed random variable stream number to the random variables used by the PHY and MAC aspects of the Wifi models. More...
 
virtual NetDeviceContainer Install (const WifiPhyHelper &phy, const WifiMacHelper &mac, NodeContainer::Iterator first, NodeContainer::Iterator last) const
 
virtual NetDeviceContainer Install (const WifiPhyHelper &phy, const WifiMacHelper &mac, NodeContainer c) const
 
virtual NetDeviceContainer Install (const WifiPhyHelper &phy, const WifiMacHelper &mac, Ptr< Node > node) const
 
virtual NetDeviceContainer Install (const WifiPhyHelper &phy, const WifiMacHelper &mac, std::string nodeName) const
 
void SetObssPdAlgorithm (std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue())
 
void SetRemoteStationManager (std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue())
 
void SetSelectQueueCallback (SelectQueueCallback f)
 
virtual void SetStandard (WifiStandard standard)
 
virtual NS_DEPRECATED_3_32 void SetStandard (WifiPhyStandard standard)
 

Static Public Member Functions

static void EnableLogComponents (void)
 Helper to enable all WifiNetDevice log components with one statement. More...
 

Protected Attributes

ObjectFactory m_ackPolicySelector [4]
 ack policy selector for all ACs More...
 
ObjectFactory m_obssPdAlgorithm
 OBSS_PD algorithm. More...
 
SelectQueueCallback m_selectQueueCallback
 select queue callback More...
 
WifiStandard m_standard
 wifi standard More...
 
ObjectFactory m_stationManager
 station manager More...
 

Detailed Description

helps to create WifiNetDevice objects

This class can help to create a large set of similar WifiNetDevice objects and to configure a large set of their attributes during creation.

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

Member Typedef Documentation

◆ SelectQueueCallback

typedef std::function<std::size_t (Ptr<QueueItem>)> ns3::WifiHelper::SelectQueueCallback

Callback invoked to determine the MAC queue selected for a given packet.

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

Constructor & Destructor Documentation

◆ ~WifiHelper()

ns3::WifiHelper::~WifiHelper ( )
virtual

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

◆ WifiHelper()

ns3::WifiHelper::WifiHelper ( )

Create a Wifi helper in an empty state: all its parameters must be set before calling ns3::WifiHelper::Install.

The default state is defined as being an Adhoc MAC layer with an ARF rate control algorithm and both objects using their default attribute values. By default, configure MAC and PHY for 802.11a.

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

References SetRemoteStationManager().

+ Here is the call graph for this function:

Member Function Documentation

◆ AssignStreams()

int64_t ns3::WifiHelper::AssignStreams ( NetDeviceContainer  c,
int64_t  stream 
)

Assign a fixed random variable stream number to the random variables used by the PHY and MAC aspects of the Wifi models.

Each device in container c has fixed stream numbers assigned to its random variables. The Wifi channel (e.g. propagation loss model) is excluded. Return the number of streams (possibly zero) that have been assigned. The Install() method should have previously been called by the user.

Parameters
cNetDeviceContainer of the set of net devices for which the WifiNetDevice should be modified to use fixed streams
streamfirst stream index to use
Returns
the number of stream indices assigned by this helper

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

References ns3::Txop::AssignStreams(), ns3::NetDeviceContainer::Begin(), ns3::NetDeviceContainer::End(), ns3::PointerValue::Get(), third::mac, and third::wifi.

+ Here is the call graph for this function:

◆ EnableLogComponents()

void ns3::WifiHelper::EnableLogComponents ( void  )
static

Helper to enable all WifiNetDevice log components with one statement.

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

References ns3::LOG_LEVEL_ALL, ns3::LOG_PREFIX_NODE, ns3::LOG_PREFIX_TIME, ns3::LogComponentEnable(), and ns3::LogComponentEnableAll().

Referenced by ns3::Wifi80211pHelper::EnableLogComponents(), and ns3::WaveHelper::EnableLogComponents().

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

◆ Install() [1/4]

NetDeviceContainer ns3::WifiHelper::Install ( const WifiPhyHelper phy,
const WifiMacHelper mac,
NodeContainer::Iterator  first,
NodeContainer::Iterator  last 
) const
virtual

◆ Install() [2/4]

NetDeviceContainer ns3::WifiHelper::Install ( const WifiPhyHelper phy,
const WifiMacHelper mac,
NodeContainer  c 
) const
virtual
Parameters
phythe PHY helper to create PHY objects
macthe MAC helper to create MAC objects
cthe set of nodes on which a wifi device must be created
Returns
a device container which contains all the devices created by this method.

Reimplemented in ns3::Wifi80211pHelper.

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

References ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), and Install().

+ Here is the call graph for this function:

◆ Install() [3/4]

NetDeviceContainer ns3::WifiHelper::Install ( const WifiPhyHelper phy,
const WifiMacHelper mac,
Ptr< Node node 
) const
virtual
Parameters
phythe PHY helper to create PHY objects
macthe MAC helper to create MAC objects
nodethe node on which a wifi device must be created
Returns
a device container which contains all the devices created by this method.

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

References Install(), third::mac, and third::phy.

+ Here is the call graph for this function:

◆ Install() [4/4]

NetDeviceContainer ns3::WifiHelper::Install ( const WifiPhyHelper phy,
const WifiMacHelper mac,
std::string  nodeName 
) const
virtual
Parameters
phythe PHY helper to create PHY objects
macthe MAC helper to create MAC objects
nodeNamethe name of node on which a wifi device must be created
Returns
a device container which contains all the devices created by this method.

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

References Install(), third::mac, and third::phy.

+ Here is the call graph for this function:

◆ SetObssPdAlgorithm()

void ns3::WifiHelper::SetObssPdAlgorithm ( std::string  type,
std::string  n0 = "",
const AttributeValue v0 = EmptyAttributeValue (),
std::string  n1 = "",
const AttributeValue v1 = EmptyAttributeValue (),
std::string  n2 = "",
const AttributeValue v2 = EmptyAttributeValue (),
std::string  n3 = "",
const AttributeValue v3 = EmptyAttributeValue (),
std::string  n4 = "",
const AttributeValue v4 = EmptyAttributeValue (),
std::string  n5 = "",
const AttributeValue v5 = EmptyAttributeValue (),
std::string  n6 = "",
const AttributeValue v6 = EmptyAttributeValue (),
std::string  n7 = "",
const AttributeValue v7 = EmptyAttributeValue () 
)
Parameters
typethe type of ns3::ObssPdAlgorithm to create.
n0the name of the attribute to set
v0the value of the attribute to set
n1the name of the attribute to set
v1the value of the attribute to set
n2the name of the attribute to set
v2the value of the attribute to set
n3the name of the attribute to set
v3the value of the attribute to set
n4the name of the attribute to set
v4the value of the attribute to set
n5the name of the attribute to set
v5the value of the attribute to set
n6the name of the attribute to set
v6the value of the attribute to set
n7the name of the attribute to set
v7the value of the attribute to set

All the attributes specified in this method should exist in the requested algorithm.

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

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

+ Here is the call graph for this function:

◆ SetRemoteStationManager()

void ns3::WifiHelper::SetRemoteStationManager ( std::string  type,
std::string  n0 = "",
const AttributeValue v0 = EmptyAttributeValue (),
std::string  n1 = "",
const AttributeValue v1 = EmptyAttributeValue (),
std::string  n2 = "",
const AttributeValue v2 = EmptyAttributeValue (),
std::string  n3 = "",
const AttributeValue v3 = EmptyAttributeValue (),
std::string  n4 = "",
const AttributeValue v4 = EmptyAttributeValue (),
std::string  n5 = "",
const AttributeValue v5 = EmptyAttributeValue (),
std::string  n6 = "",
const AttributeValue v6 = EmptyAttributeValue (),
std::string  n7 = "",
const AttributeValue v7 = EmptyAttributeValue () 
)
Parameters
typethe type of ns3::WifiRemoteStationManager to create.
n0the name of the attribute to set
v0the value of the attribute to set
n1the name of the attribute to set
v1the value of the attribute to set
n2the name of the attribute to set
v2the value of the attribute to set
n3the name of the attribute to set
v3the value of the attribute to set
n4the name of the attribute to set
v4the value of the attribute to set
n5the name of the attribute to set
v5the value of the attribute to set
n6the name of the attribute to set
v6the value of the attribute to set
n7the name of the attribute to set
v7the value of the attribute to set

All the attributes specified in this method should exist in the requested station manager.

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

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

Referenced by OcbWifiMacTestCase::ConfigureOcbMode(), ns3::Wifi80211pHelper::Default(), VanetRoutingExperiment::SetupAdhocDevices(), and WifiHelper().

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

◆ SetSelectQueueCallback()

void ns3::WifiHelper::SetSelectQueueCallback ( SelectQueueCallback  f)
Parameters
fthe select queue callback

Set the select queue callback to set on the NetDevice queue interface aggregated to the WifiNetDevice, in case RegularWifiMac with QoS enabled is used

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

References f(), and m_selectQueueCallback.

+ Here is the call graph for this function:

◆ SetStandard() [1/2]

void ns3::WifiHelper::SetStandard ( WifiStandard  standard)
virtual
Parameters
standardthe standard to configure during installation

This method sets standards-compliant defaults for WifiMac parameters such as SIFS time, slot time, timeout values, etc., based on the standard selected. It results in WifiMac::ConfigureStandard(standard) being called on each installed MAC object.

The default standard of 802.11a will be applied if SetStandard() is not called.

Note that WifiMac::ConfigureStandard () will overwrite certain defaults in the attribute system, so if a user wants to manipulate any default values affected by ConfigureStandard() while using this helper, the user should use a post-install configuration such as Config::Set() on any objects that this helper creates, such as:

Config::Set ("/NodeList/0/DeviceList/0/$ns3::WifiNetDevice/Mac/Slot", TimeValue (MicroSeconds (slot)));
See also
WifiMac::ConfigureStandard
Config::Set

Reimplemented in ns3::Wifi80211pHelper.

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

References m_standard.

Referenced by ns3::Wifi80211pHelper::SetStandard().

+ Here is the caller graph for this function:

◆ SetStandard() [2/2]

void ns3::WifiHelper::SetStandard ( WifiPhyStandard  standard)
virtual
Parameters
standardthe PHY standard to configure during installation

This method sets standards-compliant defaults for WifiMac parameters such as SIFS time, slot time, timeout values, etc., based on the standard selected. It results in WifiMac::ConfigureStandard(standard) being called on each installed MAC object.

The default standard of 802.11a will be applied if SetStandard() is not called.

Note that WifiMac::ConfigureStandard () will overwrite certain defaults in the attribute system, so if a user wants to manipulate any default values affected by ConfigureStandard() while using this helper, the user should use a post-install configuration such as Config::Set() on any objects that this helper creates, such as:

Config::Set ("/NodeList/0/DeviceList/0/$ns3::WifiNetDevice/Mac/Slot", TimeValue (MicroSeconds (slot)));
Deprecated:
This method will go away in future release of ns-3.
See also
Config::Set

Reimplemented in ns3::Wifi80211pHelper.

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

References m_standard, NS_FATAL_ERROR, ns3::WIFI_PHY_STANDARD_80211a, ns3::WIFI_PHY_STANDARD_80211ac, ns3::WIFI_PHY_STANDARD_80211b, ns3::WIFI_PHY_STANDARD_80211g, ns3::WIFI_PHY_STANDARD_80211n_2_4GHZ, ns3::WIFI_PHY_STANDARD_80211n_5GHZ, ns3::WIFI_STANDARD_80211a, ns3::WIFI_STANDARD_80211ac, ns3::WIFI_STANDARD_80211b, ns3::WIFI_STANDARD_80211g, ns3::WIFI_STANDARD_80211n_2_4GHZ, and ns3::WIFI_STANDARD_80211n_5GHZ.

Member Data Documentation

◆ m_ackPolicySelector

ObjectFactory ns3::WifiHelper::m_ackPolicySelector[4]
protected

ack policy selector for all ACs

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

◆ m_obssPdAlgorithm

ObjectFactory ns3::WifiHelper::m_obssPdAlgorithm
protected

OBSS_PD algorithm.

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

Referenced by Install(), and SetObssPdAlgorithm().

◆ m_selectQueueCallback

SelectQueueCallback ns3::WifiHelper::m_selectQueueCallback
protected

select queue callback

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

Referenced by Install(), and SetSelectQueueCallback().

◆ m_standard

WifiStandard ns3::WifiHelper::m_standard
protected

wifi standard

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

Referenced by Install(), and SetStandard().

◆ m_stationManager

ObjectFactory ns3::WifiHelper::m_stationManager
protected

station manager

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

Referenced by Install(), and SetRemoteStationManager().


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