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;
28 class WifiMacQueueItem;
31 class PeerManagementProtocol;
32 class IeConfiguration;
33 class IePeerManagement;
34 class PeerManagementProtocol;
99 void Report (std::ostream &)
const;
225 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...
bool UpdateOutcomingFrame(Ptr< Packet > packet, WifiMacHeader &header, Mac48Address from, Mac48Address to)
This method appears to test a few conditions.
Ptr< MeshWifiInterfaceMac > m_parent
parent
void SetParent(Ptr< MeshWifiInterfaceMac > parent)
Set pointer to parent.
PeerManagementProtocolMac(const PeerManagementProtocolMac &)
type conversion operator
void TxError(WifiMacDropReason reason, Ptr< const WifiMacQueueItem > mpdu)
Closes link when a proper number of successive transmissions have failed.
bool Receive(Ptr< Packet > packet, const WifiMacHeader &header)
Receive and process a packet.
Ptr< Packet > CreatePeerLinkOpenFrame()
Create peer link open frame function.
PeerManagementProtocolMac(uint32_t interface, Ptr< PeerManagementProtocol > protocol)
Constructor.
void Report(std::ostream &) const
Report statistics.
uint32_t m_ifIndex
IF index.
Mac48Address GetAddress() const
debug only, used to print established links
Ptr< Packet > CreatePeerLinkCloseFrame()
Create peer link clode frame function.
void SetPeerManagerProtcol(Ptr< PeerManagementProtocol > protocol)
Set peer manager protocol function.
void TxOk(Ptr< const WifiMacQueueItem > mpdu)
Transmit OK function.
void ResetStats()
Reset stats.
int64_t AssignStreams(int64_t stream)
Assign the streams.
Ptr< Packet > CreatePeerLinkConfirmFrame()
Create peer link confirm frame function.
struct Statistics m_stats
statistics
~PeerManagementProtocolMac()
PlinkFrameStart ParsePlinkFrame(Ptr< const Packet > packet)
Parses the start of the frame, where no WifiInformationElements exist.
void UpdateBeacon(MeshWifiBeacon &beacon) const
Add beacon timing and mesh ID information elements, and notify beacon sent.
void SendPeerLinkManagementFrame(Mac48Address peerAddress, Mac48Address peerMpAddress, uint16_t aid, IePeerManagement peerElement, IeConfiguration meshConfig)
Send peer link management frame function.
PeerManagementProtocolMac & operator=(const PeerManagementProtocolMac &peer)
assignment operator
uint32_t GetLinkMetric(Mac48Address peerAddress)
Get the link metric.
Ptr< PeerManagementProtocol > m_protocol
protocol
void SetBeaconShift(Time shift)
Set beacon shift 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.