|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
23 #include "ns3/simulator.h"
24 #include "ns3/pointer.h"
25 #include "ns3/mesh-point-device.h"
26 #include "ns3/wifi-net-device.h"
27 #include "ns3/minstrel-wifi-manager.h"
28 #include "ns3/mesh-wifi-interface-mac.h"
29 #include "ns3/wifi-helper.h"
30 #include "ns3/frame-exchange-manager.h"
31 #include "ns3/wifi-default-protection-manager.h"
32 #include "ns3/wifi-default-ack-manager.h"
38 m_spreadChannelPolicy (ZERO_CHANNEL),
109 mp->AddInterface (iface);
111 if (!
m_stack->InstallStack (mp))
192 mac->SetDevice (device);
200 if (wifiMac != 0 && (fem = wifiMac->GetFrameExchangeManager ()) != 0)
203 protectionManager->SetWifiMac (wifiMac);
204 fem->SetProtectionManager (protectionManager);
207 ackManager->SetWifiMac (wifiMac);
208 fem->SetAckManager (ackManager);
210 phy->ConfigureStandardAndBand (it->second.phyStandard, it->second.phyBand);
215 mac->SwitchFrequencyChannel (channelId);
225 std::vector<Ptr<NetDevice> > ifaces = mp->GetInterfaces ();
229 os <<
"</MeshPointDevice>\n";
242 int64_t currentStream = stream;
253 std::vector<Ptr<NetDevice> > ifaces = mpd->GetInterfaces ();
254 for (std::vector<
Ptr<NetDevice> >::iterator i = ifaces.begin (); i != ifaces.end (); i++)
256 wifi = DynamicCast<WifiNetDevice> (*i);
259 currentStream +=
wifi->GetPhy ()->AssignStreams (currentStream);
266 currentStream += minstrel->AssignStreams (currentStream);
269 mac = DynamicCast<MeshWifiInterfaceMac> (
wifi->GetMac ());
272 currentStream +=
mac->AssignStreams (currentStream);
278 rmac->GetAttribute (
"Txop", ptr);
282 rmac->GetAttribute (
"VO_Txop", ptr);
286 rmac->GetAttribute (
"VI_Txop", ptr);
290 rmac->GetAttribute (
"BE_Txop", ptr);
294 rmac->GetAttribute (
"BK_Txop", ptr);
301 return (currentStream - stream);
holds a vector of ns3::NetDevice pointers
Virtual net device modeling mesh point.
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())
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
static Time Now(void)
Return the current simulation virtual time.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void SetMac(const Ptr< WifiMac > mac)
ObjectFactory m_stationManager
the station manager
enum WifiStandard m_standard
standard
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
Hold a value for an Attribute.
ObjectFactory m_mac
the MAC
hold a list of per-remote-station state.
Hold objects of type Ptr<T>.
ChannelPolicy
Spread/not spread frequency channels of MP interfaces.
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
The IEEE 802.11 SSID Information Element.
void SetStandard(enum WifiStandard standard)
Set standard.
Helper to create IEEE 802.11s mesh networks.
void SetSpreadInterfaceChannels(ChannelPolicy policy)
set the channel policy
void ResetStats(const ns3::Ptr< ns3::NetDevice > &device)
Reset statistics.
uint32_t m_nInterfaces
number of interfaces
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
int64_t AssignStreams(NetDeviceContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
Iterator Begin(void) const
Get an iterator which refers to the first NetDevice in the container.
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())
Iterator Begin(void) const
Get an iterator which refers to the first Node in the container.
static Mac48Address ConvertFrom(const Address &address)
static Mac48Address Allocate(void)
Allocate a new Mac48Address.
Instantiate subclasses of ns3::Object.
Ptr< MeshStack > m_stack
stack
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.
uint32_t AddDevice(Ptr< NetDevice > device)
Associate a NetDevice to this node.
Iterator End(void) const
Get an iterator which indicates past-the-last NetDevice in the container.
MeshHelper()
Construct a MeshHelper used to make life easier when creating 802.11s networks.
Handle packet fragmentation and retransmissions for QoS data frames as well as MSDU aggregation (A-MS...
virtual Ptr< WifiPhy > Create(Ptr< Node > node, Ptr< NetDevice > device) const =0
~MeshHelper()
Destroy a MeshHelper.
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.
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())
std::vector< Ptr< Node > >::const_iterator Iterator
Node container iterator.
ObjectFactory m_stackFactory
stack factory
void SetRemoteStationManager(const Ptr< WifiRemoteStationManager > manager)
void Set(const std::string &name, const AttributeValue &value, Args &&... args)
Set an attribute to be set during construction.
Ptr< WifiNetDevice > CreateInterface(const WifiPhyHelper &phyHelper, Ptr< Node > node, uint16_t channelId) const
ChannelPolicy m_spreadChannelPolicy
spread channel policy
keep track of a set of node pointers.
static MeshHelper Default()
Set the helper to the default values for the MAC type, remote station manager and channel policy.
Iterator End(void) const
Get an iterator which indicates past-the-last Node in the container.
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
Ptr< Object > Create(void) const
Create an Object instance of the configured TypeId.
const std::map< WifiStandard, WifiStandardInfo > wifiStandards
map a given standard configured by the user to the corresponding WifiStandardInfo
void Report(const ns3::Ptr< ns3::NetDevice > &device, std::ostream &os)
Print statistics.
WifiStandard
Identifies the allowed configurations that a Wifi device is configured to use.
double GetSeconds(void) const
Get an approximation of the time stored in this instance in the indicated unit.
void SetPhy(const Ptr< WifiPhy > phy)
Basic MAC of mesh point Wi-Fi interface.
Handle packet fragmentation and retransmissions for data and management frames.