24 #include "ns3/mesh-wifi-interface-mac-plugin.h" 25 #include "ns3/hwmp-protocol.h" 29 class MeshWifiInterfaceMac;
30 class WifiActionHeader;
81 void SendPreq (std::vector<IePreq> preq);
93 void ForwardPerr (std::vector<HwmpProtocol::FailedDestination> destinations, std::vector<Mac48Address> receivers);
99 void InitiatePerr (std::vector<HwmpProtocol::FailedDestination> destinations, std::vector<Mac48Address> receivers);
128 void Report (std::ostream & os)
const;
179 void Print (std::ostream & os)
const;
bool ReceiveAction(Ptr< Packet > packet, const WifiMacHeader &header)
Receive action management frame.
Smart pointer class similar to boost::intrusive_ptr.
void SendMyPerr()
Send PERR function.
uint16_t txData
transmit data
void SetParent(Ptr< MeshWifiInterfaceMac > parent)
Each plugin must be installed on an interface to work.
void SendMyPreq()
Sends one PREQ when PreqMinInterval after last PREQ expires (if any PREQ exists in rhe queue) ...
uint16_t rxPrep
receive PREP
void SendPrep(IePrep prep, Mac48Address receiver)
Send PREP function.
uint16_t txMgt
transmit management
void RequestDestination(Mac48Address dest, uint32_t originator_seqno, uint32_t dst_seqno)
Request a destination.
See 7.3.2.97 of 802.11s draft 2.07.
std::vector< IePreq > m_myPreq
container of PREQs
uint16_t rxPerr
receive PERR
uint32_t GetLinkMetric(Mac48Address peerAddress) const
void SendPreq(IePreq preq)
Send PREQ function.
uint16_t rxMgt
receive management
void Print(std::ostream &os) const
Print function.
static WifiActionHeader GetWifiActionHeader()
void ResetStats()
Reset statistics.
Hybrid wireless mesh protocol – a mesh routing protocol defined in IEEE 802.11-2012 standard...
See 7.3.2.96 of 802.11s draft 2.07.
uint32_t txDataBytes
transmit data bytes
uint32_t rxMgtBytes
receive management bytes
uint16_t txPerr
transmit PERR
Ptr< MeshWifiInterfaceMac > m_parent
parent
std::vector< Mac48Address > receivers
receivers
uint32_t txMgtBytes
transmit management bytes
Interface MAC plugin for HWMP – 802.11s routing protocol.
uint16_t txPrep
transmit PREP
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Common interface for mesh point interface MAC plugins.
void Report(std::ostream &os) const
Report statistics.
std::vector< HwmpProtocol::FailedDestination > destinations
destinations
uint32_t rxDataBytes
receive data bytes
uint16_t rxData
receive data
HwmpProtocolMac(uint32_t ifIndex, Ptr< HwmpProtocol > protocol)
Constructor.
bool UpdateOutcomingFrame(Ptr< Packet > packet, WifiMacHeader &header, Mac48Address from, Mac48Address to)
Update frame before it will be forwarded down.
Beacon is beacon header + list of arbitrary information elements.
Ptr< HwmpProtocol > m_protocol
protocol
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
bool ReceiveData(Ptr< Packet > packet, const WifiMacHeader &header)
Receive data frame.
uint32_t m_ifIndex
IF index.
An identifier for simulation events.
void ForwardPerr(std::vector< HwmpProtocol::FailedDestination > destinations, std::vector< Mac48Address > receivers)
Forward a path error.
uint16_t GetChannelId() const
Get the channel ID.
uint16_t rxPreq
receive PREQ
bool Receive(Ptr< Packet > packet, const WifiMacHeader &header)
Process received frame.
void InitiatePerr(std::vector< HwmpProtocol::FailedDestination > destinations, std::vector< Mac48Address > receivers)
initiate my own path error
Statistics m_stats
statistics
uint16_t txPreq
transmit PREQ
EventId m_preqTimer
Timer for PREQs.
void UpdateBeacon(MeshWifiBeacon &beacon) const
Update beacon before it will be formed and sent.