A Discrete-Event Network Simulator
API
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
ns3::WifiHelper Class Reference

helps to create WifiNetDevice objects More...

#include "wifi-helper.h"

+ Inheritance diagram for ns3::WifiHelper:

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 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())
 
virtual 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

WifiPhyStandard 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 230 of file wifi-helper.h.

Constructor & Destructor Documentation

◆ ~WifiHelper()

ns3::WifiHelper::~WifiHelper ( )
virtual

Definition at line 589 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 593 of file wifi-helper.cc.

References SetRemoteStationManager().

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 731 of file wifi-helper.cc.

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

◆ EnableLogComponents()

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

Helper to enable all WifiNetDevice log components with one statement.

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

References ns3::LOG_LEVEL_ALL, and ns3::LogComponentEnable().

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

◆ Install() [1/4]

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

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

References ns3::Node::AddDevice(), ns3::Mac48Address::Allocate(), ns3::WifiPhyHelper::Create(), ns3::ObjectFactory::Create(), ns3::WifiMacHelper::Create(), first::devices, ns3::Object::GetObject(), m_standard, m_stationManager, third::mac, NS_LOG_DEBUG, and third::phy.

Referenced by ns3::Wifi80211pHelper::Install(), and Install().

◆ 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 656 of file wifi-helper.cc.

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

◆ 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 663 of file wifi-helper.cc.

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

◆ 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 670 of file wifi-helper.cc.

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

◆ 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 600 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().

◆ SetStandard()

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)));
See also
WifiMac::ConfigureStandard
Config::Set

Reimplemented in ns3::Wifi80211pHelper.

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

References m_standard.

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

Member Data Documentation

◆ m_standard

WifiPhyStandard ns3::WifiHelper::m_standard
protected

wifi standard

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

Referenced by Install(), and SetStandard().

◆ m_stationManager

ObjectFactory ns3::WifiHelper::m_stationManager
protected

station manager

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

Referenced by Install(), and SetRemoteStationManager().


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