22 #include "ns3/simulator.h"
23 #include "ns3/pointer.h"
24 #include "ns3/mesh-point-device.h"
25 #include "ns3/dca-txop.h"
26 #include "ns3/edca-txop-n.h"
27 #include "ns3/wifi-net-device.h"
28 #include "ns3/minstrel-wifi-manager.h"
29 #include "ns3/mesh-wifi-interface-mac.h"
34 m_spreadChannelPolicy (ZERO_CHANNEL),
105 mp->AddInterface (iface);
107 if (!
m_stack->InstallStack (mp))
180 mac->SetSsid (
Ssid ());
187 device->SetMac (mac);
188 device->SetPhy (phy);
189 device->SetRemoteStationManager (manager);
191 mac->SwitchFrequencyChannel (channelId);
200 std::vector<Ptr<NetDevice> > ifaces = mp->GetInterfaces ();
204 os <<
"</MeshPointDevice>\n";
217 int64_t currentStream = stream;
228 std::vector<Ptr<NetDevice> > ifaces = mpd->GetInterfaces ();
229 for (std::vector<
Ptr<NetDevice> >::iterator i = ifaces.begin (); i != ifaces.end (); i++)
231 wifi = DynamicCast<WifiNetDevice> (*i);
234 currentStream += wifi->GetPhy ()->AssignStreams (currentStream);
241 currentStream += minstrel->AssignStreams (currentStream);
244 mac = DynamicCast<MeshWifiInterfaceMac> (wifi->GetMac ());
247 currentStream += mac->AssignStreams (currentStream);
253 rmac->GetAttribute (
"DcaTxop", ptr);
255 currentStream += dcaTxop->AssignStreams (currentStream);
257 rmac->GetAttribute (
"VO_EdcaTxopN", ptr);
259 currentStream += vo_edcaTxopN->
AssignStreams (currentStream);
261 rmac->GetAttribute (
"VI_EdcaTxopN", ptr);
263 currentStream += vi_edcaTxopN->
AssignStreams (currentStream);
265 rmac->GetAttribute (
"BE_EdcaTxopN", ptr);
267 currentStream += be_edcaTxopN->
AssignStreams (currentStream);
269 rmac->GetAttribute (
"BK_EdcaTxopN", ptr);
271 currentStream += bk_edcaTxopN->
AssignStreams (currentStream);
276 return (currentStream - stream);
Iterator Begin(void) const
Get an iterator which refers to the first NetDevice in the container.
virtual void ConfigureStandard(enum WifiPhyStandard standard)=0
Configure the PHY-level parameters for different Wi-Fi standard.
std::vector< Ptr< Node > >::const_iterator Iterator
Node container iterator.
Hold a value for an Attribute.
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())
ChannelPolicy m_spreadChannelPolicy
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
Iterator End(void) const
Get an iterator which indicates past-the-last Node in the container.
#define NS_FATAL_ERROR(msg)
Fatal error handling.
Ptr< WifiNetDevice > CreateInterface(const WifiPhyHelper &phyHelper, Ptr< Node > node, uint16_t channelId) const
void Report(const ns3::Ptr< ns3::NetDevice > &, std::ostream &)
Print statistics.
void SetNumberOfInterfaces(uint32_t nInterfaces)
Set a number of interfaces in a mesh network.
Prototype for class, which helps to install MAC-layer routing stack to ns3::MeshPointDevice.
MeshHelper()
Construct a MeshHelper used to make life easier when creating 802.11s networks.
double GetSeconds(void) const
Get an approximation of the time stored in this instance in the indicated unit.
WifiPhyStandard
Identifies the PHY specification that a Wifi device is configured to use.
This queue contains packets for a particular access class.
ChannelPolicy
Spread/not spread frequency channels of MP interfaces.
static Mac48Address Allocate(void)
Allocate a new Mac48Address.
Ptr< Object > Create(void) const
Create an Object instance of the configured TypeId.
void Add(NetDeviceContainer other)
Append the contents of another NetDeviceContainer to the end of this container.
holds a vector of ns3::NetDevice pointers
ObjectFactory m_stackFactory
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
hold a list of per-remote-station state.
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())
static Mac48Address ConvertFrom(const Address &address)
OFDM PHY for the 5 GHz band (Clause 17)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
keep track of a set of node pointers.
Hold objects of type Ptr.
ObjectFactory m_stationManager
Iterator Begin(void) const
Get an iterator which refers to the first Node in the container.
void Set(std::string name, const AttributeValue &value)
Set an attribute to be set during construction.
static Time Now(void)
Return the current simulation virtual time.
void SetSpreadInterfaceChannels(ChannelPolicy)
set the channel policy
int64_t AssignStreams(NetDeviceContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
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 ResetStats(const ns3::Ptr< ns3::NetDevice > &)
Reset statistics.
Virtual net device modeling mesh point.
The IEEE 802.11 SSID Information Element.
void SetStandard(enum WifiPhyStandard standard)
Set PHY standard.
Instantiate subclasses of ns3::Object.
virtual Ptr< WifiPhy > Create(Ptr< Node > node, Ptr< NetDevice > device) const =0
uint32_t AddDevice(Ptr< NetDevice > device)
Associate a NetDevice to this node.
NetDeviceContainer Install(const WifiPhyHelper &phyHelper, NodeContainer c) const
Install 802.11s mesh device & protocols on given node list.
std::vector< Ptr< NetDevice > >::const_iterator Iterator
NetDevice container iterator.
static MeshHelper Default()
Set the helper to the default values for the MAC type, remote station manager and channel policy...
Helper to create IEEE 802.11s mesh networks.
enum WifiPhyStandard m_standard
~MeshHelper()
Destroy a MeshHelper.
Iterator End(void) const
Get an iterator which indicates past-the-last NetDevice in the container.
handle packet fragmentation and retransmissions.
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
Basic MAC of mesh point Wi-Fi interface.