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