Private Member Functions | Static Private Member Functions

ns3::dot11s::HwmpProtocolMac Class Reference
[IEEE 802.11s draft]

Interface MAC plugin for HWMP -- 802.11s routing protocol. More...

#include <hwmp-protocol-mac.h>

Inheritance diagram for ns3::dot11s::HwmpProtocolMac:
Inheritance graph
[legend]
Collaboration diagram for ns3::dot11s::HwmpProtocolMac:
Collaboration graph
[legend]

List of all members.

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< IePreqm_myPreq
PERR timer and stored path error

EventId m_perrTimer
MyPerr m_myPerr
Statistics:

Statistics m_stats

Detailed Description

Interface MAC plugin for HWMP -- 802.11s routing protocol.


Member Function Documentation

uint32_t ns3::dot11s::HwmpProtocolMac::GetLinkMetric ( Mac48Address  peerAddress  )  const [private]
Returns:
metric to HWMP protocol, needed only by metrics to add
static WifiMeshActionHeader ns3::dot11s::HwmpProtocolMac::GetWifiMeshActionHeader (  )  [static, private]
Returns:
a path selection action header
bool ns3::dot11s::HwmpProtocolMac::Receive ( Ptr< Packet packet,
const WifiMacHeader &  header 
) [virtual]

Process received frame.

Returns:
false if (and only if) frame should be dropped TODO define when MAC call this

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.

Parameters:
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.

Returns:
false if (and only if) frame should be dropped TODO define when MAC call this, preconditions & postconditions

Implements ns3::MeshWifiInterfaceMacPlugin.


The documentation for this class was generated from the following file: