26 #include "ns3/simulator.h" 
   27 #include "ns3/packet.h" 
   28 #include "ns3/mesh-point-device.h" 
   29 #include "ns3/wifi-net-device.h" 
   30 #include "ns3/mesh-point-device.h" 
   31 #include "ns3/mesh-wifi-interface-mac.h" 
   32 #include "ns3/random-variable-stream.h" 
   36 #include "ns3/trace-source-accessor.h" 
   52     .SetGroupName (
"Mesh")
 
   54     .AddAttribute ( 
"RandomStart",
 
   55                     "Random delay at first proactive PREQ",
 
   61     .AddAttribute ( 
"MaxQueueSize",
 
   62                     "Maximum number of packets we can store when resolving route",
 
   66                     MakeUintegerChecker<uint16_t> (1)
 
   68     .AddAttribute ( 
"Dot11MeshHWMPmaxPREQretries",
 
   69                     "Maximum number of retries before we suppose the destination to be unreachable",
 
   73                     MakeUintegerChecker<uint8_t> (1)
 
   75     .AddAttribute ( 
"Dot11MeshHWMPnetDiameterTraversalTime",
 
   76                     "Time we suppose the packet to go from one edge of the network to another",
 
   82     .AddAttribute ( 
"Dot11MeshHWMPpreqMinInterval",
 
   83                     "Minimal interval between to successive PREQs",
 
   89     .AddAttribute ( 
"Dot11MeshHWMPperrMinInterval",
 
   90                     "Minimal interval between to successive PREQs",
 
   95     .AddAttribute ( 
"Dot11MeshHWMPactiveRootTimeout",
 
   96                     "Lifetime of poractive routing information",
 
  102     .AddAttribute ( 
"Dot11MeshHWMPactivePathTimeout",
 
  103                     "Lifetime of reactive routing information",
 
  109     .AddAttribute ( 
"Dot11MeshHWMPpathToRootInterval",
 
  110                     "Interval between two successive proactive PREQs",
 
  116     .AddAttribute ( 
"Dot11MeshHWMPrannInterval",
 
  117                     "Lifetime of poractive routing information",
 
  123     .AddAttribute ( 
"MaxTtl",
 
  124                     "Initial value of Time To Live field",
 
  128                     MakeUintegerChecker<uint8_t> (2)
 
  130     .AddAttribute ( 
"UnicastPerrThreshold",
 
  131                     "Maximum number of PERR receivers, when we send a PERR as a chain of unicasts",
 
  135                     MakeUintegerChecker<uint8_t> (1)
 
  137     .AddAttribute ( 
"UnicastPreqThreshold",
 
  138                     "Maximum number of PREQ receivers, when we send a PREQ as a chain of unicasts",
 
  142                     MakeUintegerChecker<uint8_t> (1)
 
  144     .AddAttribute ( 
"UnicastDataThreshold",
 
  145                     "Maximum number ofbroadcast receivers, when we send a broadcast as a chain of unicasts",
 
  149                     MakeUintegerChecker<uint8_t> (1)
 
  151     .AddAttribute ( 
"DoFlag",
 
  152                     "Destination only HWMP flag",
 
  158     .AddAttribute ( 
"RfFlag",
 
  159                     "Reply and forward flag",
 
  165     .AddTraceSource ( 
"RouteDiscoveryTime",
 
  166                       "The time of route discovery procedure",
 
  169                       "ns3::Time::TracedCallback" 
  181   m_maxQueueSize (255),
 
  182   m_dot11MeshHWMPmaxPREQretries (3),
 
  183   m_dot11MeshHWMPnetDiameterTraversalTime (
MicroSeconds (1024*100)),
 
  184   m_dot11MeshHWMPpreqMinInterval (
MicroSeconds (1024*100)),
 
  185   m_dot11MeshHWMPperrMinInterval (
MicroSeconds (1024*100)),
 
  186   m_dot11MeshHWMPactiveRootTimeout (
MicroSeconds (1024*5000)),
 
  187   m_dot11MeshHWMPactivePathTimeout (
MicroSeconds (1024*5000)),
 
  188   m_dot11MeshHWMPpathToRootInterval (
MicroSeconds (1024*2000)),
 
  192   m_unicastPerrThreshold (32),
 
  193   m_unicastPreqThreshold (1),
 
  194   m_unicastDataThreshold (1),
 
  224       i->second.preqTimeout.Cancel ();
 
  238   uint32_t sourceIface,
 
  242   uint16_t protocolType, 
 
  253           NS_FATAL_ERROR (
"HWMP tag has come with a packet from upper layer. This must not occur...");
 
  266           NS_FATAL_ERROR (
"HWMP tag is supposed to be here at this point.");
 
  280       std::vector<uint16_t> channels;
 
  283           bool shouldSend = 
true;
 
  284           for (std::vector<uint16_t>::const_iterator chan = channels.begin (); chan != channels.end (); chan++)
 
  286               if ((*chan) == plugin->second->GetChannelId ())
 
  295           channels.push_back (plugin->second->GetChannelId ());
 
  297           for (std::vector<Mac48Address>::const_iterator i = receivers.begin (); i != receivers.end (); i++)
 
  307               routeReply (
true, packetCopy, source, destination, protocolType, plugin->first);
 
  313       return ForwardUnicast (sourceIface, source, destination, packet, protocolType, routeReply, tag.
GetTtl ());
 
  324       NS_FATAL_ERROR (
"HWMP tag must exist when packet received from the network");
 
  347       routeReply (
true, packet, source, destination, protocolType, result.
ifIndex);
 
  379       uint32_t dst_seqno = 0;
 
  382           dst_seqno = result.
seqnum;
 
  387           i->second->RequestDestination (destination, originator_seqno, dst_seqno);
 
  392   pkt.
dst = destination;
 
  395   pkt.
reply = routeReply;
 
  415   bool freshInfo (
true);
 
  425           if (i->second.second <= preq.
GetMetric ())
 
  478           NS_ASSERT (((*i)->IsDo ()) && ((*i)->IsRf ()));
 
  511       if ((*i)->GetDestinationAddress () == 
GetAddress ())
 
  533           if ((lifetime > 0) && ((int32_t)(result.
seqnum - (*i)->GetDestSeqNumber ()) >= 0))
 
  536                 (*i)->GetDestinationAddress (),
 
  549                   (*i)->SetFlags (
true, 
false, (*i)->IsUsn ()); 
 
  568       i->second->SendPreq (preq);
 
  578   bool freshInfo (
true);
 
  582       if ((int32_t)(i->second.first - sequence) > 0)
 
  586       if (i->second.first == sequence)
 
  646   HwmpProtocolMacMap::const_iterator prep_sender = 
m_interfaces.find (result.ifIndex);
 
  648   prep_sender->second->SendPrep (prep, result.retransmitter);
 
  655   std::vector<FailedDestination> retval;
 
  657   for (
unsigned int i = 0; i < destinations.size (); i++)
 
  662             (result.
ifIndex != interface) ||
 
  663             ((int32_t)(result.
seqnum - destinations[i].seqnum) > 0)
 
  666           retval.push_back (destinations[i]);
 
  669   if (retval.size () == 0)
 
  681   uint32_t originatorDsn,
 
  682   uint32_t destinationSN,
 
  695   HwmpProtocolMacMap::const_iterator prep_sender = 
m_interfaces.find (interface);
 
  697   prep_sender->second->SendPrep (prep, retransmitter);
 
  704   std::vector<Ptr<NetDevice> > 
interfaces = mp->GetInterfaces ();
 
  705   for (std::vector<
Ptr<NetDevice> >::const_iterator i = interfaces.begin (); i != interfaces.end (); i++)
 
  721       mac->InstallPlugin (hwmpMac);
 
  726   mp->SetRoutingProtocol (
this);
 
  728   mp->AggregateObject (
this);
 
  754   std::map<Mac48Address, uint32_t,std::less<Mac48Address> >::const_iterator i = 
m_lastDataSeqno.find (source);
 
  761       if ((int32_t)(i->second - seqno)  >= 0)
 
  780   for (
unsigned int i = 0; i < destinations.size (); i++)
 
  792       std::vector<Mac48Address> receivers_for_interface;
 
  793       for (
unsigned int j = 0; j < perr.
receivers.size (); j++)
 
  797               receivers_for_interface.push_back (perr.
receivers[j].second);
 
  800       i->second->InitiatePerr (perr.
destinations, receivers_for_interface);
 
  808       std::vector<Mac48Address> receivers_for_interface;
 
  809       for (
unsigned int j = 0; j < perr.
receivers.size (); j++)
 
  813               receivers_for_interface.push_back (perr.
receivers[j].second);
 
  816       i->second->ForwardPerr (perr.
destinations, receivers_for_interface);
 
  820 std::vector<std::pair<uint32_t, Mac48Address> >
 
  824   for (
unsigned int i = 0; i < failedDest.size (); i++)
 
  829       for (
unsigned int j = 0; j < precursors.size (); j++)
 
  831           retval.push_back (precursors[j]);
 
  835   for (
unsigned int i = 0; i < retval.size (); i++)
 
  837       for (
unsigned int j = i+1; j < retval.size (); j++)
 
  841               retval.erase (retval.begin () + j);
 
  847 std::vector<Mac48Address>
 
  850   std::vector<Mac48Address> retval;
 
  862 std::vector<Mac48Address>
 
  865   std::vector<Mac48Address> retval;
 
  894   for (std::vector<QueuedPacket>::iterator i = 
m_rqueue.begin (); i != 
m_rqueue.end (); i++)
 
  922   std::map<Mac48Address, PreqEvent>::iterator i = 
m_preqTimeouts.find (dst);
 
  932   while (packet.
pkt != 0)
 
  953   while (packet.
pkt != 0)
 
  974   std::map<Mac48Address, PreqEvent>::const_iterator i = 
m_preqTimeouts.find (dst);
 
  995       std::map<Mac48Address, PreqEvent>::iterator i = 
m_preqTimeouts.find (dst);
 
 1004       while (packet.
pkt != 0)
 
 1010       std::map<Mac48Address, PreqEvent>::iterator i = 
m_preqTimeouts.find (dst);
 
 1021       i->second->RequestDestination (dst, originator_seqno, dst_seqno);
 
 1055       i->second->SendPreq (preq);
 
 1126   os << 
"<Statistics " 
 1127   "txUnicast=\"" << txUnicast << 
"\" " 
 1128   "txBroadcast=\"" << txBroadcast << 
"\" " 
 1129   "txBytes=\"" << txBytes << 
"\" " 
 1130   "droppedTtl=\"" << droppedTtl << 
"\" " 
 1131   "totalQueued=\"" << totalQueued << 
"\" " 
 1132   "totalDropped=\"" << totalDropped << 
"\" " 
 1133   "initiatedPreq=\"" << initiatedPreq << 
"\" " 
 1134   "initiatedPrep=\"" << initiatedPrep << 
"\" " 
 1135   "initiatedPerr=\"" << initiatedPerr << 
"\"/>" << std::endl;
 
 1141   "address=\"" << 
m_address << 
"\"" << std::endl <<
 
 1151   "isRoot=\"" << 
m_isRoot << 
"\"" << std::endl <<
 
 1152   "maxTtl=\"" << (uint16_t)
m_maxTtl << 
"\"" << std::endl <<
 
 1156   "doFlag=\"" << 
m_doFlag << 
"\"" << std::endl <<
 
 1157   "rfFlag=\"" << 
m_rfFlag << 
"\">" << std::endl;
 
 1161       plugin->second->Report (os);
 
 1163   os << 
"</Hwmp>" << std::endl;
 
 1171       plugin->second->ResetStats ();
 
Time m_dot11MeshHWMPrannInterval
 
Structure of path error: IePerr and list of receivers: interfaces and MAC address. 
 
void SetDestinationAddress(Mac48Address dest_address)
 
void SetPreqID(uint32_t id)
 
bool RequestRoute(uint32_t sourceIface, const Mac48Address source, const Mac48Address destination, Ptr< const Packet > packet, uint16_t protocolType, RouteReplyCallback routeReply)
Route request, inherited from MeshL2RoutingProtocol. 
 
Simulation virtual time values and global simulation resolution. 
 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
 
void SetStream(int64_t stream)
Specifies the stream number for this RNG stream. 
 
AttributeValue implementation for Boolean. 
 
uint32_t GetDestinationSeqNumber() const 
 
Hwmp tag implements interaction between HWMP protocol and MeshWifiMac. 
 
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system. 
 
void IncrementMetric(uint32_t metric)
 
static const uint32_t MAX_METRIC
Maximum (the best?) path metric. 
 
void SetOriginatorSeqNumber(uint32_t originator_seq_number)
 
Route lookup result, return type of LookupXXX methods. 
 
Time m_dot11MeshHWMPpreqMinInterval
 
Time m_dot11MeshHWMPperrMinInterval
 
void SendPrep(Mac48Address src, Mac48Address dst, Mac48Address retransmitter, uint32_t initMetric, uint32_t originatorDsn, uint32_t destinationSN, uint32_t lifetime, uint32_t interface)
Send Path Reply. 
 
Ptr< const AttributeAccessor > MakeBooleanAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
void AddPacketTag(const Tag &tag) const 
Add a packet tag. 
 
Time m_dot11MeshHWMPactiveRootTimeout
 
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
 
void ForwardPathError(PathError perr)
Forwards a received path error. 
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
See 7.3.2.97 of 802.11s draft 2.07. 
 
uint32_t GetSize(void) const 
Returns the the size in bytes of the packet (including the zero-filled initial payload). 
 
LookupResult LookupReactiveExpired(Mac48Address destination)
Return all reactive paths, including expired. 
 
Mac48Address GetDestinationAddress() const 
 
Mac48Address src
src address 
 
bool Install(Ptr< MeshPointDevice >)
Install HWMP on given mesh point. 
 
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate. 
 
void InitiatePathError(PathError perr)
Passes a self-generated PERR to interface-plugin. 
 
#define NS_LOG_FUNCTION_NOARGS()
Output the name of the function. 
 
uint32_t CalculateMetric(Mac48Address peerAddress, Ptr< MeshWifiInterfaceMac > mac)
 
uint32_t GetLifetime() const 
 
void ReactivePathResolved(Mac48Address dst)
 
void SetOriginatorAddress(Mac48Address originator_address)
 
std::map< Mac48Address, std::pair< uint32_t, uint32_t > > m_hwmpSeqnoMetricDatabase
keeps HWMP seqno (first in pair) and HWMP metric (second in pair) for each address ...
 
void SetAddress(Mac48Address retransmitter)
 
uint8_t m_unicastDataThreshold
 
LookupResult LookupReactive(Mac48Address destination)
Lookup path to destination. 
 
TracedCallback< Time > m_routeDiscoveryTimeCallback
Route discovery time: 
 
void SetLifetime(uint32_t lifetime)
 
void ReceivePrep(IePrep prep, Mac48Address from, uint32_t interface, Mac48Address fromMp, uint32_t metric)
Handler for receiving Path Reply. 
 
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source. 
 
void SendProactivePreq()
Proactive Preq routines: 
 
Ptr< const AttributeChecker > MakeTimeChecker(const Time min, const Time max)
Helper to make a Time checker with bounded range. 
 
bool DropDataFrame(uint32_t seqno, Mac48Address source)
MAC-plugin asks whether the frame can be dropped. 
 
QueuedPacket DequeueFirstPacket()
 
std::vector< std::pair< uint32_t, Mac48Address > > PrecursorList
Path precursor = {MAC, interface ID}. 
 
Mac48Address GetOriginatorAddress() const 
 
Ptr< Packet > pkt
the packet 
 
Routing table for HWMP – 802.11s routing protocol. 
 
void Print(std::ostream &os) const 
 
std::vector< Mac48Address > GetPreqReceivers(uint32_t interface)
 
double GetSeconds(void) const 
Get an approximation of the time stored in this instance in the indicated unit. 
 
bool RemoveRoutingStuff(uint32_t fromIface, const Mac48Address source, const Mac48Address destination, Ptr< Packet > packet, uint16_t &protocolType)
Cleanup packet from all tags. 
 
Mac48Address GetOriginatorAddress() const 
 
bool PeekPacketTag(Tag &tag) const 
Search a matching tag and call Tag::Deserialize if it is found. 
 
Time GetPerrMinInterval()
 
Ptr< MeshPointDevice > GetMeshPoint() const 
Each mesh protocol must be installed on the mesh point to work. 
 
uint8_t m_unicastPerrThreshold
 
std::vector< QueuedPacket > m_rqueue
Packet Queue. 
 
std::vector< std::pair< uint32_t, Mac48Address > > GetPerrReceivers(std::vector< FailedDestination > failedDest)
 
static EventId Schedule(Time const &delay, MEM mem_ptr, OBJ obj)
Schedule an event to expire after delay. 
 
int64_t GetMicroSeconds(void) const 
Get an approximation of the time stored in this instance in the indicated unit. 
 
std::vector< HwmpProtocol::FailedDestination > GetUnreachableDestinations(Mac48Address peerAddress)
When peer link with a given MAC-address fails - it returns list of unreachable destination addresses...
 
void RetryPathDiscovery(Mac48Address dst, uint8_t numOfRetry)
Generates PREQ retry when retry timeout has expired and route is still unresolved. 
 
Ptr< MeshPointDevice > m_mp
Host mesh point. 
 
void IncrementMetric(uint32_t metric)
 
AttributeValue implementation for Time. 
 
void DoDispose()
Destructor implementation. 
 
Hybrid wireless mesh protocol – a routing protocol of IEEE 802.11s draft. 
 
See 7.3.2.96 of 802.11s draft 2.07. 
 
Hold an unsigned integer type. 
 
PrecursorList GetPrecursors(Mac48Address destination)
 
bool ForwardUnicast(uint32_t sourceIface, const Mac48Address source, const Mac48Address destination, Ptr< Packet > packet, uint16_t protocolType, RouteReplyCallback routeReply, uint32_t ttl)
Like RequestRoute, but for unicast packets. 
 
Packet waiting its routing information. 
 
Hold together all Wifi-related objects. 
 
static Mac48Address GetBroadcast(void)
 
void ProactivePathResolved()
 
HwmpProtocolMacMap m_interfaces
 
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
 
uint32_t GetOriginatorSeqNumber() const 
 
uint32_t GetActivePathLifetime()
 
void AddPrecursor(Mac48Address destination, uint32_t precursorInterface, Mac48Address precursorAddress, Time lifetime)
 
Ptr< HwmpRtable > m_rtable
Routing table. 
 
void SetOriginatorAddress(Mac48Address originator_address)
 
void SetLifetime(uint32_t lifetime)
 
static TypeId GetTypeId()
 
uint8_t m_unicastPreqThreshold
 
LookupResult LookupProactiveExpired()
Return all proactive paths, including expired. 
 
void ReceivePreq(IePreq preq, Mac48Address from, uint32_t interface, Mac48Address fromMp, uint32_t metric)
Handler for receiving Path Request. 
 
Time m_randomStart
Random start in Proactive PREQ propagation. 
 
Mac48Address GetAddress()
 
static Mac48Address ConvertFrom(const Address &address)
 
Ptr< Packet > Copy(void) const 
performs a COW copy of the packet. 
 
void SetOriginatorSeqNumber(uint32_t originator_seq_number)
 
uint16_t protocol
protocol number 
 
void SetMetric(uint32_t metric)
 
uint8_t m_dot11MeshHWMPmaxPREQretries
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
void AddDestinationAddressElement(bool doFlag, bool rfFlag, Mac48Address dest_address, uint32_t dest_seq_number)
Add a destination address unit: flags, destination and sequence number. 
 
void AddReactivePath(Mac48Address destination, Mac48Address retransmitter, uint32_t interface, uint32_t metric, Time lifetime, uint32_t seqnum)
 
Ptr< const AttributeChecker > MakeBooleanChecker(void)
 
void DelDestinationAddressElement(Mac48Address dest_address)
Delete a destination address unit by destination. 
 
PathError MakePathError(std::vector< FailedDestination > destinations)
forms a path error information element when list of destination fails on a given interface ...
 
std::vector< std::pair< uint32_t, Mac48Address > > receivers
list of PathError receivers (in case of unicast PERR) 
 
bool IsNeedNotPrep() const 
 
uint32_t GetNextHwmpSeqno()
 
uint8_t GetDestCount() const 
 
Ptr< const AttributeAccessor > MakeTimeAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
static Time Now(void)
Return the current simulation virtual time. 
 
std::vector< Ptr< DestinationAddressUnit > > GetDestinationList()
Get all destinations, which are stored in PREQ: 
 
RouteReplyCallback reply
how to reply 
 
Interface for L2 mesh routing protocol and mesh point communication. 
 
void Report(std::ostream &) const 
Statistics: 
 
Mac48Address dst
dst address 
 
void DeleteProactivePath()
 
Ptr< UniformRandomVariable > m_coefficient
Random variable for random start time. 
 
uint8_t GetUnicastPerrThreshold()
 
EventId m_proactivePreqTimer
Random start in Proactive PREQ propagation. 
 
Mac48Address retransmitter
 
Time m_dot11MeshHWMPactivePathTimeout
 
std::vector< Mac48Address > GetBroadcastReceivers(uint32_t interface)
 
std::vector< FailedDestination > destinations
destination list: Mac48Address and sequence number 
 
Time m_dot11MeshHWMPpathToRootInterval
 
bool RemovePacketTag(Tag &tag)
Remove a packet tag. 
 
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG. 
 
Time Seconds(double value)
Construct a Time in the indicated unit. 
 
Callback< std::vector< Mac48Address >, uint32_t > m_neighboursCallback
 
void Cancel(void)
This method is syntactic sugar for the ns3::Simulator::Cancel method. 
 
uint32_t GetLifetime() const 
 
std::map< Mac48Address, uint32_t > m_lastDataSeqno
keeps HWMP seqno (first in pair) and HWMP metric (second in pair) for each address ...
 
Ptr< T > CreateObject(void)
Create an object by type, with varying number of constructor parameters. 
 
void DeleteReactivePath(Mac48Address destination)
 
QueuedPacket DequeueFirstPacketByDst(Mac48Address dst)
 
Time GetPreqMinInterval()
 
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit. 
 
void AddProactivePath(uint32_t metric, Mac48Address root, Mac48Address retransmitter, uint32_t interface, Time lifetime, uint32_t seqnum)
 
uint32_t GetMetric() const 
 
void SetSeqno(uint32_t seqno)
 
uint32_t inInterface
incoming device interface ID. (if packet has come from upper layers, this is Mesh point ID) ...
 
bool QueuePacket(QueuedPacket packet)
 
uint32_t GetMetric() const 
 
bool ShouldSendPreq(Mac48Address dst)
checks when the last path discovery procedure was started for a given destination. 
 
This class can be used to hold variables of floating point type such as 'double' or 'float'...
 
void SetDestinationSeqNumber(uint32_t dest_seq_number)
 
void SetHopcount(uint8_t hopcount)
 
void PeerLinkStatus(Mac48Address meshPontAddress, Mac48Address peerAddress, uint32_t interface, bool status)
 
void SetAttribute(std::string name, const AttributeValue &value)
Set a single attribute, raising fatal errors if unsuccessful. 
 
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
a unique identifier for an interface. 
 
TypeId SetParent(TypeId tid)
Set the parent TypeId. 
 
Basic MAC of mesh point Wi-Fi interface. 
 
void SetHopcount(uint8_t hopcount)
 
std::map< Mac48Address, PreqEvent > m_preqTimeouts
Random start in Proactive PREQ propagation. 
 
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
 
Time m_dot11MeshHWMPnetDiameterTraversalTime
 
LookupResult LookupProactive()
Find proactive path to tree root. Note that calling this method has side effect of deleting expired p...
 
void ReceivePerr(std::vector< FailedDestination >, Mac48Address from, uint32_t interface, Mac48Address fromMp)
Handler for receiving Path Error. 
 
void SetNeighboursCallback(Callback< std::vector< Mac48Address >, uint32_t > cb)
This callback is used to obtain active neighbours on a given interface. 
 
virtual void DoInitialize()
Initialize() implementation.