21 #ifndef PEER_MANAGEMENT_PROTOCOL_MAC_H
22 #define PEER_MANAGEMENT_PROTOCOL_MAC_H
24 #include "ns3/mesh-wifi-interface-mac-plugin.h"
27 class MeshWifiInterfaceMac;
29 class PeerManagementProtocol;
30 class IeConfiguration;
31 class IePeerManagement;
32 class PeerManagementProtocol;
57 void Report (std::ostream &)
const;
121 void Print (std::ostream & os)
const;
Ptr< Packet > CreatePeerLinkOpenFrame()
Parses the start of the frame, where no WifiInformationElements exist.
keep track of time values and allow control of global simulation resolution
smart pointer class similar to boost::intrusive_ptr
void SetBeaconShift(Time shift)
BCA functionality.
void SetPeerManagerProtcol(Ptr< PeerManagementProtocol > protocol)
struct Statistics m_stats
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
The Supported Rates Information ElementThis class knows how to serialise and deserialise the Supporte...
This structure keeps all fields in peer link management frame, which are not subclasses of WifiInform...
See 7.3.2.85 of draft 2.07.
PeerManagementProtocolMac(uint32_t interface, Ptr< PeerManagementProtocol > protocol)
bool UpdateOutcomingFrame(Ptr< Packet > packet, WifiMacHeader &header, Mac48Address from, Mac48Address to)
Update frame before it will be forwarded down.
uint32_t GetLinkMetric(Mac48Address peerAddress)
Ptr< Packet > CreatePeerLinkCloseFrame()
Parses the start of the frame, where no WifiInformationElements exist.
Common interface for mesh point interface MAC plugins.
void SendPeerLinkManagementFrame(Mac48Address peerAddress, Mac48Address peerMpAddress, uint16_t aid, IePeerManagement peerElement, IeConfiguration meshConfig)
Mac48Address GetAddress() const
debug only, used to print established links
Beacon is beacon header + list of arbitrary information elements.
Ptr< MeshWifiInterfaceMac > m_parent
void TxOk(WifiMacHeader const &hdr)
PlinkFrameStart ParsePlinkFrame(Ptr< const Packet > packet)
Parses the start of the frame, where no WifiInformationElements exist.
PeerManagementProtocolMac & operator=(const PeerManagementProtocolMac &)
void UpdateBeacon(MeshWifiBeacon &beacon) const
Update beacon before it will be formed and sent.
void Report(std::ostream &) const
Describes Mesh Configuration Element see 7.3.2.86 of 802.11s draft 3.0.
Peer link model for 802.11s Peer Management protocol.
This is plugin to Mesh WiFi MAC, which implements interface to dot11s peer management protocol: it ta...
bool Receive(Ptr< Packet > packet, const WifiMacHeader &header)
Process received frame.
~PeerManagementProtocolMac()
void SetParent(Ptr< MeshWifiInterfaceMac > parent)
Each plugin must be installed on interface to work.
void TxError(WifiMacHeader const &hdr)
Closes link when a proper number of successive transmissions have failed.
Ptr< PeerManagementProtocol > m_protocol
Ptr< Packet > CreatePeerLinkConfirmFrame()
Parses the start of the frame, where no WifiInformationElements exist.
void Print(std::ostream &os) const
802.11s Peer Management Protocol model