10#include "ns3/hwmp-protocol.h"
11#include "ns3/mesh-wifi-interface-mac.h"
12#include "ns3/peer-management-protocol.h"
13#include "ns3/wifi-net-device.h"
17using namespace dot11s;
28 "The MAC address of root mesh point.",
54 pmp->SetMeshId(
"mesh");
55 bool install_ok = pmp->Install(mp);
62 install_ok = hwmp->Install(mp);
67 if (mp->GetAddress() ==
m_root)
83 std::vector<Ptr<NetDevice>> ifaces = mp->GetInterfaces();
84 for (
auto i = ifaces.begin(); i != ifaces.end(); ++i)
106 std::vector<Ptr<NetDevice>> ifaces = mp->GetInterfaces();
107 for (
auto 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,...
Ptr< const AttributeAccessor > MakeMac48AddressAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
Ptr< const AttributeChecker > MakeMac48AddressChecker()
Ptr< T > CreateObject(Args &&... args)
Create an object by type, with varying number of constructor parameters.
#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...