Interface MAC plugin for HWMP – 802.11s routing protocol. More...
#include <hwmp-protocol-mac.h>
Inheritance diagram for ns3::dot11s::HwmpProtocolMac:Classes | |
| struct | MyPerr |
| struct | Statistics |
Public Member Functions | |
| HwmpProtocolMac (uint32_t, Ptr< HwmpProtocol >) | |
Inherited from MAC plugin | |
| void | SetParent (Ptr< MeshWifiInterfaceMac > parent) |
| Each plugin must be installed on interface to work. | |
| bool | Receive (Ptr< Packet > packet, const WifiMacHeader &header) |
| Process received frame. More... | |
| bool | UpdateOutcomingFrame (Ptr< Packet > packet, WifiMacHeader &header, Mac48Address from, Mac48Address to) |
| Update frame before it will be forwarded down. More... | |
| void | UpdateBeacon (MeshWifiBeacon &beacon) const |
| Update beacon is empty, because HWMP does not know anything about beacons. | |
| int64_t | AssignStreams (int64_t stream) |
Public Member Functions inherited from ns3::MeshWifiInterfaceMacPlugin | |
| virtual | ~MeshWifiInterfaceMacPlugin () |
| This is for subclasses. | |
Public Member Functions inherited from ns3::SimpleRefCount< MeshWifiInterfaceMacPlugin > | |
| SimpleRefCount (const SimpleRefCount &o) | |
| uint32_t | GetReferenceCount (void) const |
| SimpleRefCount & | operator= (const SimpleRefCount &o) |
| void | Ref (void) const |
| void | Unref (void) const |
Private Member Functions | |
| uint16_t | GetChannelId () const |
| uint32_t | GetLinkMetric (Mac48Address peerAddress) const |
| bool | ReceiveAction (Ptr< Packet > packet, const WifiMacHeader &header) |
| Receive action management frame. | |
| bool | ReceiveData (Ptr< Packet > packet, const WifiMacHeader &header) |
| Receive data frame. | |
| void | Report (std::ostream &) const |
| Report statistics. | |
| void | ResetStats () |
| void | SendMyPerr () |
| void | SendMyPreq () |
| Sends one PREQ when PreqMinInterval after last PREQ expires (if any PREQ exists in rhe queue) | |
Interaction with HWMP: | |
| void | SendPreq (IePreq preq) |
| void | SendPreq (std::vector< IePreq > preq) |
| void | SendPrep (IePrep prep, Mac48Address receiver) |
| void | ForwardPerr (std::vector< HwmpProtocol::FailedDestination > destinations, std::vector< Mac48Address > receivers) |
| void | InitiatePerr (std::vector< HwmpProtocol::FailedDestination > destinations, std::vector< Mac48Address > receivers) |
| void | RequestDestination (Mac48Address dest, uint32_t originator_seqno, uint32_t dst_seqno) |
| Request a destination. If can not send preq immediately - add a destination to existing PREQ generated by me and stored in PREQ queue. More... | |
Static Private Member Functions | |
| static WifiActionHeader | GetWifiActionHeader () |
Private Attributes | |
| uint32_t | m_ifIndex |
| Ptr< MeshWifiInterfaceMac > | m_parent |
| Ptr< HwmpProtocol > | m_protocol |
my PREQ and PREQ timer: | |
| EventId | m_preqTimer |
| std::vector< IePreq > | m_myPreq |
PERR timer and stored path error | |
| EventId | m_perrTimer |
| MyPerr | m_myPerr |
Statistics: | |
| Statistics | m_stats |
Friends | |
| class | HwmpProtocol |
Additional Inherited Members | |
Static Public Member Functions inherited from ns3::SimpleRefCount< MeshWifiInterfaceMacPlugin > | |
| static void | Cleanup (void) |
Interface MAC plugin for HWMP – 802.11s routing protocol.
Definition at line 44 of file hwmp-protocol-mac.h.
|
virtual |
Assign a fixed random variable stream number to the random variables used by this model. Return the number of streams (possibly zero) that have been assigned.
| stream | first stream index to use |
Implements ns3::MeshWifiInterfaceMacPlugin.
Definition at line 480 of file hwmp-protocol-mac.cc.
|
private |
Definition at line 432 of file hwmp-protocol-mac.cc.
|
staticprivate |
Definition at line 207 of file hwmp-protocol-mac.cc.
|
virtual |
Process received frame.
Implements ns3::MeshWifiInterfaceMacPlugin.
Definition at line 165 of file hwmp-protocol-mac.cc.
References ReceiveAction(), and ReceiveData().
|
private |
Request a destination. If can not send preq immediately - add a destination to existing PREQ generated by me and stored in PREQ queue.
| dest | is the destination to be resolved |
| originator_seqno | is a sequence number that shall be preq originator sequenece number |
| dst_seqno | is a sequence number taken from routing table |
Definition at line 253 of file hwmp-protocol-mac.cc.
References ns3::dot11s::IePreq::AddDestinationAddressElement(), NS_ASSERT, NS_LOG_FUNCTION_NOARGS, and SendMyPreq().
|
virtual |
Update frame before it will be forwarded down.
Implements ns3::MeshWifiInterfaceMacPlugin.
Definition at line 184 of file hwmp-protocol-mac.cc.
References ns3::Packet::AddHeader(), ns3::Packet::GetSize(), NS_FATAL_ERROR, and ns3::Packet::RemovePacketTag().