9#ifndef PEER_MANAGEMENT_PROTOCOL_MAC_H
10#define PEER_MANAGEMENT_PROTOCOL_MAC_H
12#include "ns3/mesh-wifi-interface-mac-plugin.h"
16class MeshWifiInterfaceMac;
22class PeerManagementProtocol;
24class IePeerManagement;
25class PeerManagementProtocol;
94 void Report(std::ostream&)
const;
221 void Print(std::ostream& os)
const;
Beacon is beacon header + list of arbitrary information elements.
Common interface for mesh point interface MAC plugins.
Smart pointer class similar to boost::intrusive_ptr.
The Supported Rates Information Element.
Simulation virtual time values and global simulation resolution.
Describes Mesh Configuration Element see 7.3.2.86 of 802.11s draft 3.0.
according to IEEE 802.11 - 2012
Peer link model for 802.11s Peer Management protocol.
802.11s Peer Management Protocol model
This is plugin to Mesh WiFi MAC, which implements the interface to dot11s peer management protocol: i...
Ptr< Packet > CreatePeerLinkConfirmFrame()
Create peer link confirm frame function.
PeerManagementProtocolMac & operator=(const PeerManagementProtocolMac &peer)
assignment operator
Ptr< MeshWifiInterfaceMac > m_parent
parent
PeerManagementProtocolMac(const PeerManagementProtocolMac &)
type conversion operator
void SetParent(Ptr< MeshWifiInterfaceMac > parent) override
Set pointer to parent.
PeerManagementProtocolMac(uint32_t interface, Ptr< PeerManagementProtocol > protocol)
Constructor.
void SetPeerManagerProtocol(Ptr< PeerManagementProtocol > protocol)
Set peer manager protocol function.
void Report(std::ostream &) const
Report statistics.
Statistics m_stats
statistics
uint32_t m_ifIndex
IF index.
Mac48Address GetAddress() const
debug only, used to print established links
void UpdateBeacon(MeshWifiBeacon &beacon) const override
Add beacon timing and mesh ID information elements, and notify beacon sent.
bool UpdateOutcomingFrame(Ptr< Packet > packet, WifiMacHeader &header, Mac48Address from, Mac48Address to) override
This method appears to test a few conditions.
void TxError(WifiMacDropReason reason, Ptr< const WifiMpdu > mpdu)
Closes link when a proper number of successive transmissions have failed.
void ResetStats()
Reset stats.
Ptr< Packet > CreatePeerLinkCloseFrame()
Create peer link clode frame function.
int64_t AssignStreams(int64_t stream) override
Assign the streams.
PlinkFrameStart ParsePlinkFrame(Ptr< const Packet > packet)
Parses the start of the frame, where no WifiInformationElements exist.
void SendPeerLinkManagementFrame(Mac48Address peerAddress, Mac48Address peerMpAddress, uint16_t aid, IePeerManagement peerElement, IeConfiguration meshConfig)
Send peer link management frame function.
void TxOk(Ptr< const WifiMpdu > mpdu)
Transmit OK function.
uint32_t GetLinkMetric(Mac48Address peerAddress)
Get the link metric.
bool Receive(Ptr< Packet > packet, const WifiMacHeader &header) override
Receive and process a packet.
~PeerManagementProtocolMac() override
Ptr< PeerManagementProtocol > m_protocol
protocol
void SetBeaconShift(Time shift)
Set beacon shift function.
Ptr< Packet > CreatePeerLinkOpenFrame()
Create peer link open frame function.
WifiMacDropReason
The reason why an MPDU was dropped.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
This structure keeps all fields in peer link management frame, which are not subclasses of WifiInform...
SupportedRates rates
rates
uint16_t txOpen
transmit open
uint16_t txConfirm
transmit confirm
uint16_t rxConfirm
receive confirm
uint16_t rxClose
receive close
uint32_t txMgtBytes
transmit management bytes
uint16_t brokenMgt
broken management
uint16_t txClose
transmit close
uint16_t rxMgt
receive management
uint16_t rxOpen
receive open
uint16_t txMgt
transmit management
uint16_t beaconShift
beacon shift
uint32_t rxMgtBytes
receive management bytes
void Print(std::ostream &os) const
Print function.