helps to create WifiNetDevice objects More...
#include "wifi-helper.h"
Public Types | |
typedef std::function< std::size_t(Ptr< QueueItem >)> | SelectQueueCallback |
Callback invoked to determine the MAC queue selected for a given packet. | |
Public Member Functions | |
WifiHelper () | |
Create a Wifi helper in an empty state: all its parameters must be set before calling ns3::WifiHelper::Install. | |
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. | |
template<typename... Args> | |
void | ConfigEhtOptions (Args &&... args) |
Helper function used to configure the EHT options listed as attributes of the EhtConfiguration class. | |
template<typename... Args> | |
void | ConfigHeOptions (Args &&... args) |
Helper function used to configure the HE options listed as attributes of the HeConfiguration class. | |
template<typename... Args> | |
void | ConfigHtOptions (Args &&... args) |
Helper function used to configure the HT options listed as attributes of the HtConfiguration class. | |
template<typename... Args> | |
void | ConfigVhtOptions (Args &&... args) |
Helper function used to configure the VHT options listed as attributes of the VhtConfiguration class. | |
void | DisableFlowControl () |
Disable flow control only if you know what you are doing. | |
virtual NetDeviceContainer | Install (const WifiPhyHelper &phy, const WifiMacHelper &mac, NodeContainer c) const |
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, Ptr< Node > node) const |
virtual NetDeviceContainer | Install (const WifiPhyHelper &phy, const WifiMacHelper &mac, std::string nodeName) const |
template<typename... Args> | |
void | SetObssPdAlgorithm (std::string type, Args &&... args) |
Helper function used to set the OBSS-PD algorithm. | |
template<typename... Args> | |
void | SetRemoteStationManager (std::string type, Args &&... args) |
Helper function used to set the station manager. | |
template<typename... Args> | |
void | SetRemoteStationManager (uint8_t linkId, std::string type, Args &&... args) |
void | SetSelectQueueCallback (SelectQueueCallback f) |
virtual void | SetStandard (WifiStandard standard) |
Static Public Member Functions | |
static void | EnableLogComponents () |
Helper to enable all WifiNetDevice log components with one statement. | |
Protected Attributes | |
ObjectFactory | m_ehtConfig |
EHT configuration. | |
bool | m_enableFlowControl |
whether to enable flow control | |
ObjectFactory | m_heConfig |
HE configuration. | |
ObjectFactory | m_htConfig |
HT configuration. | |
ObjectFactory | m_obssPdAlgorithm |
OBSS_PD algorithm. | |
SelectQueueCallback | m_selectQueueCallback |
select queue callback | |
WifiStandard | m_standard |
wifi standard | |
std::vector< ObjectFactory > | m_stationManager |
station manager | |
ObjectFactory | m_vhtConfig |
VHT configuration. | |
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 323 of file wifi-helper.h.
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 374 of file wifi-helper.h.
|
virtual |
Definition at line 721 of file wifi-helper.cc.
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 725 of file wifi-helper.cc.
References m_ehtConfig, m_heConfig, m_htConfig, m_vhtConfig, SetRemoteStationManager(), and ns3::ObjectFactory::SetTypeId().
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.
c | NetDeviceContainer of the set of net devices for which the WifiNetDevice should be modified to use fixed streams |
stream | first stream index to use |
Definition at line 983 of file wifi-helper.cc.
References ns3::NetDeviceContainer::Begin(), ns3::NetDeviceContainer::End(), and ns3::PointerValue::Get().
void ns3::WifiHelper::ConfigEhtOptions | ( | Args &&... | args | ) |
Helper function used to configure the EHT options listed as attributes of the EhtConfiguration class.
Args | [deduced] Template type parameter pack for the sequence of name-value pairs. |
args | A sequence of name-value pairs of the attributes to set. |
Definition at line 654 of file wifi-helper.h.
References m_ehtConfig, and ns3::ObjectFactory::Set().
void ns3::WifiHelper::ConfigHeOptions | ( | Args &&... | args | ) |
Helper function used to configure the HE options listed as attributes of the HeConfiguration class.
Args | [deduced] Template type parameter pack for the sequence of name-value pairs. |
args | A sequence of name-value pairs of the attributes to set. |
Definition at line 647 of file wifi-helper.h.
References m_heConfig, and ns3::ObjectFactory::Set().
void ns3::WifiHelper::ConfigHtOptions | ( | Args &&... | args | ) |
Helper function used to configure the HT options listed as attributes of the HtConfiguration class.
Args | [deduced] Template type parameter pack for the sequence of name-value pairs. |
args | A sequence of name-value pairs of the attributes to set. |
Definition at line 633 of file wifi-helper.h.
References m_htConfig, and ns3::ObjectFactory::Set().
void ns3::WifiHelper::ConfigVhtOptions | ( | Args &&... | args | ) |
Helper function used to configure the VHT options listed as attributes of the VhtConfiguration class.
Args | [deduced] Template type parameter pack for the sequence of name-value pairs. |
args | A sequence of name-value pairs of the attributes to set. |
Definition at line 640 of file wifi-helper.h.
References m_vhtConfig, and ns3::ObjectFactory::Set().
void ns3::WifiHelper::DisableFlowControl | ( | ) |
Disable flow control only if you know what you are doing.
By disabling flow control, this NetDevice will be sent packets even if there is no room for them (such packets will be likely dropped by this NetDevice). Also, any queue disc installed on this NetDevice will have no effect, as every packet enqueued to the traffic control layer queue disc will be immediately dequeued.
Definition at line 744 of file wifi-helper.cc.
References m_enableFlowControl.
|
static |
Helper to enable all WifiNetDevice log components with one statement.
Definition at line 880 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::MeshHelper::EnableLogComponents().
|
virtual |
phy | the PHY helper to create PHY objects |
mac | the MAC helper to create MAC objects |
c | the set of nodes on which a wifi device must be created |
Definition at line 859 of file wifi-helper.cc.
References ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), and Install().
|
virtual |
phy | the PHY helper to create PHY objects |
mac | the MAC helper to create MAC objects |
first | lower bound on the set of nodes on which a wifi device must be created |
last | upper bound on the set of nodes on which a wifi device must be created |
Definition at line 756 of file wifi-helper.cc.
References ns3::AC_BE, ns3::AC_BK, ns3::AC_VI, ns3::AC_VO, ns3::ObjectFactory::Create(), ns3::WifiPhyHelper::Create(), ns3::WifiMacHelper::Create(), ns3::BooleanValue::Get(), ns3::ObjectFactory::IsTypeIdSet(), m_ehtConfig, m_enableFlowControl, m_heConfig, m_htConfig, m_obssPdAlgorithm, m_selectQueueCallback, m_standard, m_stationManager, m_vhtConfig, NS_ABORT_MSG_IF, NS_FATAL_ERROR, NS_LOG_DEBUG, ns3::WIFI_STANDARD_80211ac, ns3::WIFI_STANDARD_80211ax, ns3::WIFI_STANDARD_80211be, ns3::WIFI_STANDARD_80211n, and ns3::WIFI_STANDARD_UNSPECIFIED.
Referenced by Install().
|
virtual |
phy | the PHY helper to create PHY objects |
mac | the MAC helper to create MAC objects |
node | the node on which a wifi device must be created |
Definition at line 867 of file wifi-helper.cc.
References Install().
|
virtual |
phy | the PHY helper to create PHY objects |
mac | the MAC helper to create MAC objects |
nodeName | the name of node on which a wifi device must be created |
Definition at line 873 of file wifi-helper.cc.
References Install().
void ns3::WifiHelper::SetObssPdAlgorithm | ( | std::string | type, |
Args &&... | args | ||
) |
Helper function used to set the OBSS-PD algorithm.
Args | [deduced] Template type parameter pack for the sequence of name-value pairs. |
type | the type of OBSS-PD algorithm |
args | A sequence of name-value pairs of the attributes to set. |
Definition at line 625 of file wifi-helper.h.
References m_obssPdAlgorithm, ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().
void ns3::WifiHelper::SetRemoteStationManager | ( | std::string | type, |
Args &&... | args | ||
) |
Helper function used to set the station manager.
Args | [deduced] Template type parameter pack for the sequence of name-value pairs. |
type | the type of station manager |
args | A sequence of name-value pairs of the attributes to set. |
Definition at line 604 of file wifi-helper.h.
References SetRemoteStationManager().
Referenced by WifiHelper(), and SetRemoteStationManager().
void ns3::WifiHelper::SetRemoteStationManager | ( | uint8_t | linkId, |
std::string | type, | ||
Args &&... | args | ||
) |
Args | [deduced] Template type parameter pack for the sequence of name-value pairs. |
linkId | ID of the link to configure (>0 only for 11be devices) |
type | the type of the preamble detection model to set. |
args | A sequence of name-value pairs of the attributes to set. |
Set the remote station manager model and its attributes to use for the given link. If the helper stored a remote station manager model for the first N links only (corresponding to link IDs from 0 to N-1) and the given linkId is M >= N, then a remote station manager model using the given attributes is configured for all links with ID from N to M.
Definition at line 611 of file wifi-helper.h.
References m_stationManager.
void ns3::WifiHelper::SetSelectQueueCallback | ( | SelectQueueCallback | f | ) |
f | the select queue callback |
Set the select queue callback to set on the NetDevice queue interface aggregated to the WifiNetDevice, in case WifiMac with QoS enabled is used
Definition at line 750 of file wifi-helper.cc.
References f(), and m_selectQueueCallback.
|
virtual |
standard | the 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:
Definition at line 738 of file wifi-helper.cc.
References m_standard.
|
protected |
EHT configuration.
Definition at line 525 of file wifi-helper.h.
Referenced by WifiHelper(), ConfigEhtOptions(), and Install().
|
protected |
whether to enable flow control
Definition at line 528 of file wifi-helper.h.
Referenced by DisableFlowControl(), and Install().
|
protected |
HE configuration.
Definition at line 524 of file wifi-helper.h.
Referenced by WifiHelper(), ConfigHeOptions(), and Install().
|
protected |
HT configuration.
Definition at line 522 of file wifi-helper.h.
Referenced by WifiHelper(), ConfigHtOptions(), and Install().
|
protected |
OBSS_PD algorithm.
Definition at line 527 of file wifi-helper.h.
Referenced by Install(), and SetObssPdAlgorithm().
|
protected |
select queue callback
Definition at line 526 of file wifi-helper.h.
Referenced by Install(), and SetSelectQueueCallback().
|
protected |
wifi standard
Definition at line 521 of file wifi-helper.h.
Referenced by Install(), and SetStandard().
|
mutableprotected |
station manager
Definition at line 520 of file wifi-helper.h.
Referenced by Install(), and SetRemoteStationManager().
|
protected |
VHT configuration.
Definition at line 523 of file wifi-helper.h.
Referenced by WifiHelper(), ConfigVhtOptions(), and Install().