Interface MAC plugin for HWMP -- 802.11s routing protocol. More...
#include <hwmp-protocol-mac.h>
Public Member Functions | |
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. | |
bool | UpdateOutcomingFrame (Ptr< Packet > packet, WifiMacHeader &header, Mac48Address from, Mac48Address to) |
Update frame before it will be forwarded down. | |
void | UpdateBeacon (MeshWifiBeacon &beacon) const |
Update beacon is empty, because HWMP does not know anything about beacons. | |
Private Member Functions | |
void | SendMyPreq () |
Sends one PREQ when PreqMinInterval after last PREQ expires (if any PREQ exists in rhe queue). | |
uint32_t | GetLinkMetric (Mac48Address peerAddress) const |
void | Report (std::ostream &) const |
Report statistics. | |
bool | ReceiveData (Ptr< Packet > packet, const WifiMacHeader &header) |
Receive data frame. | |
bool | ReceiveAction (Ptr< Packet > packet, const WifiMacHeader &header) |
Receive action management frame. | |
Intercation 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 exisying PREQ generated by me and stored in PREQ queue. | |
Static Private Member Functions | |
static WifiMeshActionHeader | GetWifiMeshActionHeader () |
Private Attributes | |
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 |
Interface MAC plugin for HWMP -- 802.11s routing protocol.
uint32_t ns3::dot11s::HwmpProtocolMac::GetLinkMetric | ( | Mac48Address | peerAddress | ) | const [private] |
static WifiMeshActionHeader ns3::dot11s::HwmpProtocolMac::GetWifiMeshActionHeader | ( | ) | [static, private] |
bool ns3::dot11s::HwmpProtocolMac::Receive | ( | Ptr< Packet > | packet, | |
const WifiMacHeader & | header | |||
) | [virtual] |
Process received frame.
Implements ns3::MeshWifiInterfaceMacPlugin.
void ns3::dot11s::HwmpProtocolMac::RequestDestination | ( | Mac48Address | dest, | |
uint32_t | originator_seqno, | |||
uint32_t | dst_seqno | |||
) | [private] |
Request a destination. If can not send preq immediately - add a destination to exisying 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 |
bool ns3::dot11s::HwmpProtocolMac::UpdateOutcomingFrame | ( | Ptr< Packet > | packet, | |
WifiMacHeader & | header, | |||
Mac48Address | from, | |||
Mac48Address | to | |||
) | [virtual] |
Update frame before it will be forwarded down.
Implements ns3::MeshWifiInterfaceMacPlugin.