19#include "ns3/dot11s-installer.h"
21#include "ns3/hwmp-protocol.h"
22#include "ns3/mesh-wifi-interface-mac.h"
23#include "ns3/peer-management-protocol.h"
24#include "ns3/wifi-net-device.h"
28using namespace dot11s;
39 "The MAC address of root mesh point.",
42 MakeMac48AddressChecker());
65 pmp->SetMeshId(
"mesh");
66 bool install_ok = pmp->Install(mp);
73 install_ok = hwmp->Install(mp);
78 if (mp->GetAddress() ==
m_root)
94 std::vector<Ptr<NetDevice>> ifaces = mp->GetInterfaces();
95 for (std::vector<
Ptr<NetDevice>>::const_iterator i = ifaces.begin(); i != ifaces.end(); ++i)
117 std::vector<Ptr<NetDevice>> ifaces = mp->GetInterfaces();
118 for (std::vector<
Ptr<NetDevice>>::const_iterator i = ifaces.begin(); i != ifaces.end(); ++i)
Helper class to allow easy installation of 802.11s stack.
static TypeId GetTypeId()
Get the type ID.
~Dot11sStack() override
Destroy a Dot11sStack() installer helper.
void DoDispose() override
Break any reference cycles in the installer helper.
void Report(const Ptr< MeshPointDevice > mp, std::ostream &) override
Iterate through the referenced devices and protocols and print their statistics.
void ResetStats(const Ptr< MeshPointDevice > mp) override
Reset the statistics on the referenced devices and protocols.
bool InstallStack(Ptr< MeshPointDevice > mp) override
Install an 802.11s stack.
Dot11sStack()
Create a Dot11sStack() installer helper.
AttributeValue implementation for Mac48Address.
Prototype for class, which helps to install MAC-layer routing stack to ns3::MeshPointDevice.
Basic MAC of mesh point Wi-Fi interface.
Smart pointer class similar to boost::intrusive_ptr.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Hold together all Wifi-related objects.
Hybrid wireless mesh protocol – a mesh routing protocol defined in IEEE 802.11-2012 standard.
void PeerLinkStatus(Mac48Address meshPointAddress, Mac48Address peerAddress, uint32_t interface, bool status)
Peer link status function.
802.11s Peer Management Protocol model
std::vector< Mac48Address > GetPeers(uint32_t interface) const
Get list of active peers of my given interface.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
U * PeekPointer(const Ptr< U > &p)
Callback< R, Args... > MakeCallback(R(T::*memPtr)(Args...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...