27 #include "ns3/mesh-wifi-interface-mac.h" 
   28 #include "ns3/simulator.h" 
   29 #include "ns3/wifi-mac-header.h" 
   30 #include "ns3/mesh-information-element-vector.h" 
   77       if ((meshId != 0) && (
m_protocol->GetMeshId ()->IsEqual (*meshId)))
 
  130       if (peerElement->SubtypeIsOpen ())
 
  135       if (peerElement->SubtypeIsConfirm ())
 
  140       if (peerElement->SubtypeIsClose ())
 
  186   if (
m_protocol->GetBeaconCollisionAvoidance ())
 
  209   fields.
config = meshConfig;
 
  254   m_parent->SendManagementFrame (packet, hdr);
 
  272   if (shift != Seconds (0))
 
  279   txOpen (0), txConfirm (0), txClose (0), rxOpen (0), rxConfirm (0), rxClose (0), dropped (0), brokenMgt (0),
 
  280   txMgt (0), txMgtBytes (0), rxMgt (0), rxMgtBytes (0), beaconShift (0)
 
  287   "txOpen=\"" << txOpen << 
"\"" << std::endl <<
 
  288   "txConfirm=\"" << txConfirm << 
"\"" << std::endl <<
 
  289   "txClose=\"" << txClose << 
"\"" << std::endl <<
 
  290   "rxOpen=\"" << rxOpen << 
"\"" << std::endl <<
 
  291   "rxConfirm=\"" << rxConfirm << 
"\"" << std::endl <<
 
  292   "rxClose=\"" << rxClose << 
"\"" << std::endl <<
 
  293   "dropped=\"" << dropped << 
"\"" << std::endl <<
 
  294   "brokenMgt=\"" << brokenMgt << 
"\"" << std::endl <<
 
  295   "txMgt=\"" << txMgt << 
"\"" << std::endl <<
 
  296   "txMgtBytes=\"" << txMgtBytes << 
"\"" << std::endl <<
 
  297   "rxMgt=\"" << rxMgt << 
"\"" << std::endl <<
 
  298   "rxMgtBytes=\"" << rxMgtBytes << 
"\"" << std::endl <<
 
  299   "beaconShift=\"" << beaconShift << 
"\"/>" << std::endl;
 
  304   os << 
"<PeerManagementProtocolMac " 
  305   "address=\"" << 
m_parent->GetAddress () << 
"\">" << std::endl;
 
  307   os << 
"</PeerManagementProtocolMac>" << std::endl;
 
  317   return m_parent->GetLinkMetric (peerAddress);
 
uint32_t RemoveHeader(Header &header)
 
void AddInformationElement(Ptr< WifiInformationElement > ie)
Add information element. 
 
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. 
 
802.11s Peer link management frame 
 
void SetPlinkFrameSubtype(uint8_t subtype)
 
#define NS_ASSERT(condition)
 
uint32_t GetSize(void) const 
 
struct Statistics m_stats
 
int64_t AssignStreams(int64_t stream)
 
bool SubtypeIsOpen() const 
 
See 7.3.2.85 of draft 2.07. 
 
PeerManagementProtocolMac(uint32_t interface, Ptr< PeerManagementProtocol > protocol)
 
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
 
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 > Copy(void) const 
 
uint32_t PeekHeader(Header &header) const 
 
PlinkFrameStartFields GetFields() const 
 
void SendPeerLinkManagementFrame(Mac48Address peerAddress, Mac48Address peerMpAddress, uint16_t aid, IePeerManagement peerElement, IeConfiguration meshConfig)
 
Mac48Address GetAddress() const 
debug only, used to print established links 
 
void SetPlinkFrameStart(PlinkFrameStartFields)
 
Beacon is beacon header + list of arbitrary information elements. 
 
Ptr< MeshWifiInterfaceMac > m_parent
 
Time GetBeaconInterval() const 
Returns a beacon interval of wifi beacon. 
 
void TxOk(WifiMacHeader const &hdr)
 
void UpdateBeacon(MeshWifiBeacon &beacon) const 
Update beacon before it will be formed and sent. 
 
void Report(std::ostream &) const 
 
bool SubtypeIsClose() const 
 
Describes Mesh Configuration Element see 7.3.2.86 of 802.11s draft 3.0. 
 
void SetNeighborCount(uint8_t neighbors)
 
bool IsEqual(IeMeshId const &o) const 
 
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
 
PmpReasonCode GetReasonCode() const 
 
void AddHeader(const Header &header)
 
void Print(std::ostream &os) const 
 
bool SubtypeIsConfirm() const