Helper to create IEEE 802.11s mesh networks. More...
#include "mesh-helper.h"
Public Types | |
enum | ChannelPolicy { SPREAD_CHANNELS, ZERO_CHANNEL } |
Spread/not spread frequency channels of MP interfaces. More... | |
Public Member Functions | |
MeshHelper () | |
Construct a MeshHelper used to make life easier when creating 802.11s networks. More... | |
~MeshHelper () | |
Destroy a MeshHelper. More... | |
int64_t | AssignStreams (NetDeviceContainer c, int64_t stream) |
Assign a fixed random variable stream number to the random variables used by this model. More... | |
NetDeviceContainer | Install (const WifiPhyHelper &phyHelper, NodeContainer c) const |
Install 802.11s mesh device & protocols on given node list. More... | |
void | Report (const ns3::Ptr< ns3::NetDevice > &device, std::ostream &os) |
Print statistics. More... | |
void | ResetStats (const ns3::Ptr< ns3::NetDevice > &device) |
Reset statistics. More... | |
void | SetAckPolicySelectorForAc (AcIndex ac, 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 | SetMacType (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 | SetNumberOfInterfaces (uint32_t nInterfaces) |
Set a number of interfaces in a mesh network. More... | |
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 | SetSpreadInterfaceChannels (ChannelPolicy policy) |
set the channel policy More... | |
void | SetStackInstaller (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 | SetStandard (enum WifiStandard standard) |
Set standard. More... | |
Static Public Member Functions | |
static MeshHelper | Default () |
Set the helper to the default values for the MAC type, remote station manager and channel policy. More... | |
Private Member Functions | |
Ptr< WifiNetDevice > | CreateInterface (const WifiPhyHelper &phyHelper, Ptr< Node > node, uint16_t channelId) const |
Private Attributes | |
ObjectFactory | m_ackPolicySelector [4] |
ack policy selector for all ACs More... | |
ObjectFactory | m_mac |
the MAC More... | |
uint32_t | m_nInterfaces |
number of interfaces More... | |
ChannelPolicy | m_spreadChannelPolicy |
spread channel policy More... | |
Ptr< MeshStack > | m_stack |
stack More... | |
ObjectFactory | m_stackFactory |
stack factory More... | |
enum WifiStandard | m_standard |
standard More... | |
ObjectFactory | m_stationManager |
the station manager More... | |
Helper to create IEEE 802.11s mesh networks.
Definition at line 43 of file mesh-helper.h.
Spread/not spread frequency channels of MP interfaces.
If set to true different non-overlapping 20MHz frequency channels will be assigned to different mesh point interfaces.
Enumerator | |
---|---|
SPREAD_CHANNELS | |
ZERO_CHANNEL |
Definition at line 169 of file mesh-helper.h.
ns3::MeshHelper::MeshHelper | ( | ) |
Construct a MeshHelper used to make life easier when creating 802.11s networks.
Definition at line 34 of file mesh-helper.cc.
ns3::MeshHelper::~MeshHelper | ( | ) |
int64_t ns3::MeshHelper::AssignStreams | ( | NetDeviceContainer | c, |
int64_t | stream | ||
) |
Assign a fixed random variable stream number to the random variables used by this model.
Return the number of streams (possibly zero) that have been assigned. The Install() method of this helper should have previously been called by the user.
stream | first stream index to use |
c | NetDeviceContainer of the set of devices for which the mesh devices should be modified to use a fixed stream |
Definition at line 275 of file mesh-helper.cc.
References ns3::Txop::AssignStreams(), ns3::NetDeviceContainer::Begin(), ns3::NetDeviceContainer::End(), ns3::PointerValue::Get(), third::mac, and third::wifi.
Referenced by PeerManagementProtocolRegressionTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpSimplestRegressionTest::CreateDevices(), and HwmpReactiveRegressionTest::CreateDevices().
|
private |
phyHelper | |
node | |
channelId |
Definition at line 202 of file mesh-helper.cc.
References ns3::AC_BE, ns3::AC_BK, ns3::AC_VI, ns3::AC_VO, ns3::Node::AddDevice(), ns3::Mac48Address::Allocate(), ns3::WifiPhyHelper::Create(), ns3::ObjectFactory::Create(), ns3::PointerValue::Get(), m_ackPolicySelector, m_mac, m_standard, m_stationManager, third::mac, NS_ASSERT, NS_FATAL_ERROR, third::phy, ns3::WifiNetDevice::SetMac(), ns3::WifiNetDevice::SetPhy(), ns3::WifiNetDevice::SetRemoteStationManager(), and ns3::wifiStandards.
Referenced by Install().
|
static |
Set the helper to the default values for the MAC type, remote station manager and channel policy.
Definition at line 118 of file mesh-helper.cc.
References ns3::AC_BE, ns3::AC_BK, ns3::AC_VI, ns3::AC_VO, SetAckPolicySelectorForAc(), SetMacType(), SetRemoteStationManager(), SetSpreadInterfaceChannels(), and SPREAD_CHANNELS.
NetDeviceContainer ns3::MeshHelper::Install | ( | const WifiPhyHelper & | phyHelper, |
NodeContainer | c | ||
) | const |
Install 802.11s mesh device & protocols on given node list.
phyHelper | Wifi PHY helper |
c | List of nodes to install |
Definition at line 84 of file mesh-helper.cc.
References ns3::Node::AddDevice(), ns3::NodeContainer::Begin(), third::channel, CreateInterface(), first::devices, ns3::NodeContainer::End(), m_nInterfaces, m_spreadChannelPolicy, m_stack, NS_ASSERT, NS_FATAL_ERROR, SPREAD_CHANNELS, and ZERO_CHANNEL.
Referenced by PeerManagementProtocolRegressionTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpSimplestRegressionTest::CreateDevices(), HwmpReactiveRegressionTest::CreateDevices(), and MeshTest::CreateNodes().
void ns3::MeshHelper::Report | ( | const ns3::Ptr< ns3::NetDevice > & | device, |
std::ostream & | os | ||
) |
Print statistics.
device | the net device |
os | the output stream |
Definition at line 255 of file mesh-helper.cc.
References ns3::Mac48Address::ConvertFrom(), ns3::Object::GetObject(), ns3::Time::GetSeconds(), m_stack, ns3::Simulator::Now(), and NS_ASSERT.
Referenced by MeshTest::Report().
void ns3::MeshHelper::ResetStats | ( | const ns3::Ptr< ns3::NetDevice > & | device | ) |
Reset statistics.
device | the net device |
Definition at line 267 of file mesh-helper.cc.
References ns3::Object::GetObject(), m_stack, and NS_ASSERT.
void ns3::MeshHelper::SetAckPolicySelectorForAc | ( | AcIndex | ac, |
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 () |
||
) |
ac | the Access Category to attach the ack policy selector to. |
type | the type of ns3::WifiAckPolicySelector to create. |
n0 | the name of the attribute to set |
v0 | the value of the attribute to set |
n1 | the name of the attribute to set |
v1 | the value of the attribute to set |
n2 | the name of the attribute to set |
v2 | the value of the attribute to set |
n3 | the name of the attribute to set |
v3 | the value of the attribute to set |
n4 | the name of the attribute to set |
v4 | the value of the attribute to set |
n5 | the name of the attribute to set |
v5 | the value of the attribute to set |
n6 | the name of the attribute to set |
v6 | the value of the attribute to set |
n7 | the name of the attribute to set |
v7 | the value of the attribute to set |
All the attributes specified in this method should exist in the requested ack policy selector.
Definition at line 174 of file mesh-helper.cc.
References m_ackPolicySelector, ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().
Referenced by Default().
void ns3::MeshHelper::SetMacType | ( | 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 () |
||
) |
n0 | the name of the attribute to set |
v0 | the value of the attribute to set |
n1 | the name of the attribute to set |
v1 | the value of the attribute to set |
n2 | the name of the attribute to set |
v2 | the value of the attribute to set |
n3 | the name of the attribute to set |
v3 | the value of the attribute to set |
n4 | the name of the attribute to set |
v4 | the value of the attribute to set |
n5 | the name of the attribute to set |
v5 | the value of the attribute to set |
n6 | the name of the attribute to set |
v6 | the value of the attribute to set |
n7 | the name of the attribute to set |
v7 | the value of the attribute to set |
All the attributes specified in this method should exist in the requested mac.
Definition at line 132 of file mesh-helper.cc.
References m_mac, ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().
Referenced by PeerManagementProtocolRegressionTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpSimplestRegressionTest::CreateDevices(), HwmpReactiveRegressionTest::CreateDevices(), MeshTest::CreateNodes(), and Default().
void ns3::MeshHelper::SetNumberOfInterfaces | ( | uint32_t | nInterfaces | ) |
Set a number of interfaces in a mesh network.
nInterfaces | is the number of interfaces |
Definition at line 79 of file mesh-helper.cc.
References m_nInterfaces.
Referenced by PeerManagementProtocolRegressionTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpSimplestRegressionTest::CreateDevices(), HwmpReactiveRegressionTest::CreateDevices(), and MeshTest::CreateNodes().
void ns3::MeshHelper::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 () |
||
) |
type | the type of ns3::WifiRemoteStationManager to create. |
n0 | the name of the attribute to set |
v0 | the value of the attribute to set |
n1 | the name of the attribute to set |
v1 | the value of the attribute to set |
n2 | the name of the attribute to set |
v2 | the value of the attribute to set |
n3 | the name of the attribute to set |
v3 | the value of the attribute to set |
n4 | the name of the attribute to set |
v4 | the value of the attribute to set |
n5 | the name of the attribute to set |
v5 | the value of the attribute to set |
n6 | the name of the attribute to set |
v6 | the value of the attribute to set |
n7 | the name of the attribute to set |
v7 | the value of the attribute to set |
All the attributes specified in this method should exist in the requested station manager.
Definition at line 152 of file mesh-helper.cc.
References m_stationManager, ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().
Referenced by Default().
void ns3::MeshHelper::SetSpreadInterfaceChannels | ( | ChannelPolicy | policy | ) |
set the channel policy
policy | the channel policy |
Definition at line 46 of file mesh-helper.cc.
References m_spreadChannelPolicy.
Referenced by MeshTest::CreateNodes(), and Default().
void ns3::MeshHelper::SetStackInstaller | ( | 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 () |
||
) |
type | the type of ns3::MeshStack. |
n0 | the name of the attribute to set |
v0 | the value of the attribute to set |
n1 | the name of the attribute to set |
v1 | the value of the attribute to set |
n2 | the name of the attribute to set |
v2 | the value of the attribute to set |
n3 | the name of the attribute to set |
v3 | the value of the attribute to set |
n4 | the name of the attribute to set |
v4 | the value of the attribute to set |
n5 | the name of the attribute to set |
v5 | the value of the attribute to set |
n6 | the name of the attribute to set |
v6 | the value of the attribute to set |
n7 | the name of the attribute to set |
v7 | the value of the attribute to set |
Definition at line 51 of file mesh-helper.cc.
References ns3::ObjectFactory::Create(), m_stack, m_stackFactory, NS_FATAL_ERROR, ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().
Referenced by PeerManagementProtocolRegressionTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), FlameRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), HwmpSimplestRegressionTest::CreateDevices(), HwmpReactiveRegressionTest::CreateDevices(), and MeshTest::CreateNodes().
void ns3::MeshHelper::SetStandard | ( | enum WifiStandard | standard | ) |
Set standard.
standard | the wifi phy standard |
Definition at line 196 of file mesh-helper.cc.
References m_standard.
|
private |
ack policy selector for all ACs
Definition at line 267 of file mesh-helper.h.
Referenced by CreateInterface(), and SetAckPolicySelectorForAc().
|
private |
the MAC
Definition at line 265 of file mesh-helper.h.
Referenced by CreateInterface(), and SetMacType().
|
private |
number of interfaces
Definition at line 259 of file mesh-helper.h.
Referenced by Install(), and SetNumberOfInterfaces().
|
private |
spread channel policy
Definition at line 260 of file mesh-helper.h.
Referenced by Install(), and SetSpreadInterfaceChannels().
stack
Definition at line 261 of file mesh-helper.h.
Referenced by Install(), Report(), ResetStats(), SetStackInstaller(), and ~MeshHelper().
|
private |
|
private |
standard
Definition at line 268 of file mesh-helper.h.
Referenced by CreateInterface(), and SetStandard().
|
private |
the station manager
Definition at line 266 of file mesh-helper.h.
Referenced by CreateInterface(), and SetRemoteStationManager().