A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::dot11s::PeerManagementProtocol Class Reference

802.11s Peer Management Protocol model More...

#include <peer-management-protocol.h>

+ Inheritance diagram for ns3::dot11s::PeerManagementProtocol:
+ Collaboration diagram for ns3::dot11s::PeerManagementProtocol:

Classes

struct  BeaconInfo
 Keeps information about beacon of peer station: beacon interval, association ID, last time we have received a beacon. More...
 
struct  Statistics
 

Public Member Functions

 PeerManagementProtocol ()
 
 ~PeerManagementProtocol ()
 
void DoDispose ()
 This method is called by Object::Dispose or by the object's destructor, whichever comes first. More...
 
bool Install (Ptr< MeshPointDevice >)
 Install PMP on given mesh point. More...
 
This methods interact with MAC_layer plug-in

Methods that handle beacon sending/receiving procedure.

Ptr< IeBeaconTimingGetBeaconTimingElement (uint32_t interface)
 When we are sending a beacon - we fill beacon timing element. More...
 
void ReceiveBeacon (uint32_t interface, Mac48Address peerAddress, Time beaconInterval, Ptr< IeBeaconTiming > beaconTiming)
 To initiate peer link we must notify about received beacon. More...
 
void ReceivePeerLinkFrame (uint32_t interface, Mac48Address peerAddress, Mac48Address peerMeshPointAddress, uint16_t aid, IePeerManagement peerManagementElement, IeConfiguration meshConfig)
 Methods that handle Peer link management frames interaction: More...
 
void ConfigurationMismatch (uint32_t interface, Mac48Address peerAddress)
 Cancels peer link due to broken configuration (Mesh ID or Supported rates) More...
 
void TransmissionFailure (uint32_t interface, const Mac48Address peerAddress)
 Cancels peer link due to successive transmission failures. More...
 
void TransmissionSuccess (uint32_t interface, const Mac48Address peerAddress)
 resets transmission failure statistics More...
 
bool IsActiveLink (uint32_t interface, Mac48Address peerAddress)
 Checks if there is established link. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 
virtual ~Object ()
 
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 Run the DoDispose methods of this object and all the objects aggregated to it. More...
 
AggregateIterator GetAggregateIterator (void) const
 
virtual TypeId GetInstanceTypeId (void) const
 
template<typename T >
Ptr< T > GetObject (void) const
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 
void Initialize (void)
 This method calls the virtual DoInitialize method on all the objects aggregated to this object. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId ()
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Types

typedef TracedCallback
< Mac48Address, Mac48Address
LinkEventCallback
 Simple link open/close trace source type. Addresses are: src interface, dst interface. More...
 
Private structures
typedef std::vector< Ptr
< PeerLink > > 
PeerLinksOnInterface
 We keep a vector of pointers to PeerLink class. More...
 
typedef std::map< uint32_t,
PeerLinksOnInterface
PeerLinksMap
 This map keeps all peer links. More...
 
typedef std::map< Mac48Address,
BeaconInfo
BeaconsOnInterface
 This map keeps relationship between peer address and its beacon information. More...
 
typedef std::map< uint32_t,
BeaconsOnInterface
BeaconInfoMap
 This map keeps beacon information on all interfaces. More...
 
typedef std::map< uint32_t,
Ptr< PeerManagementProtocolMac > > 
PeerManagementProtocolMacMap
 this vector keeps pointers to MAC-plugins More...
 

Private Member Functions

 PeerManagementProtocol (const PeerManagementProtocol &)
 
void CheckBeaconCollisions (uint32_t interface)
 BCA. More...
 
Ptr< PeerLinkInitiateLink (uint32_t interface, Mac48Address peerAddress, Mac48Address peerMeshPointAddress)
 
void NotifyLinkClose (Mac48Address peerMp, Mac48Address peerIface, Mac48Address myIface, uint32_t interface)
 Aux. method to register closed links. More...
 
void NotifyLinkOpen (Mac48Address peerMp, Mac48Address peerIface, Mac48Address myIface, uint32_t interface)
 Aux. method to register open links. More...
 
PeerManagementProtocoloperator= (const PeerManagementProtocol &)
 
void PeerLinkStatus (uint32_t interface, Mac48Address peerAddress, Mac48Address peerMeshPointAddres, PeerLink::PeerState ostate, PeerLink::PeerState nstate)
 Indicates changes in peer links. More...
 
void ShiftOwnBeacon (uint32_t interface)
 
External peer-chooser
bool ShouldSendOpen (uint32_t interface, Mac48Address peerAddress)
 
bool ShouldAcceptOpen (uint32_t interface, Mac48Address peerAddress, PmpReasonCode &reasonCode)
 
Time<-->TU converters:
Time TuToTime (int x)
 
int TimeToTu (Time x)
 

Private Attributes

Mac48Address m_address
 
std::map< uint32_t, Timem_beaconInterval
 Beacon interval at each interface. More...
 
Ptr< UniformRandomVariablem_beaconShift
 Add randomness to beacon shift. More...
 
bool m_enableBca
 Flag which enables BCA. More...
 
uint16_t m_lastAssocId
 
std::map< uint32_t, Timem_lastBeacon
 Last beacon at each interface. More...
 
uint16_t m_lastLocalLinkId
 
LinkEventCallback m_linkCloseTraceSrc
 LinkClose trace source. More...
 
LinkEventCallback m_linkOpenTraceSrc
 LinkOpen trace source. More...
 
uint16_t m_maxBeaconShift
 Beacon can be shifted at [-m_maxBeaconShift; +m_maxBeaconShift] TUs. More...
 
uint8_t m_maxNumberOfPeerLinks
 
Ptr< IeMeshIdm_meshId
 
Callback< void, Mac48Address,
Mac48Address, uint32_t, bool > 
m_peerStatusCallback
 Callback to notify about peer link changes: Mac48Address is peer address of mesh point, Mac48Address is peer address of interface, uint32_t - interface ID, bool is status - true when new link has appeared, false - when link was closed,. More...
 
PeerManagementProtocolMacMap m_plugins
 
Peer Links
PeerLinksMap m_peerLinks
 
Statistics:
struct Statistics m_stats
 

Interface to other protocols (MLME)

void SetPeerLinkStatusCallback (Callback< void, Mac48Address, Mac48Address, uint32_t, bool > cb)
 Set peer link status change callback. More...
 
Ptr< PeerLinkFindPeerLink (uint32_t interface, Mac48Address peerAddress)
 Find active peer link by my interface and peer interface MAC. More...
 
std::vector< Ptr< PeerLink > > GetPeerLinks () const
 Get list of all active peer links. More...
 
std::vector< Mac48AddressGetPeers (uint32_t interface) const
 Get list of active peers of my given interface. More...
 
Mac48Address GetAddress ()
 Get mesh point address. More...
 
uint8_t GetNumberOfLinks ()
 Set peer link status change callback. More...
 
void SetMeshId (std::string s)
 Set peer link status change callback. More...
 
Ptr< IeMeshIdGetMeshId () const
 Set peer link status change callback. More...
 
void SetBeaconCollisionAvoidance (bool enable)
 Enable or disable beacon collision avoidance. More...
 
bool GetBeaconCollisionAvoidance () const
 Set peer link status change callback. More...
 
void NotifyBeaconSent (uint32_t interface, Time beaconInterval)
 Notify about beacon send event, needed to schedule BCA. More...
 
void Report (std::ostream &) const
 : Report statistics More...
 
void ResetStats ()
 Set peer link status change callback. More...
 
int64_t AssignStreams (int64_t stream)
 Assign a fixed random variable stream number to the random variables used by this model. More...
 
virtual void DoInitialize ()
 Set peer link status change callback. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void NotifyNewAggregate (void)
 This method is invoked whenever two sets of objects are aggregated together. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 

Detailed Description

802.11s Peer Management Protocol model

Doxygen introspection did not find any typical Config paths.


Attributes

  • MaxNumberOfPeerLinks: Maximum number of peer links
  • MaxBeaconShiftValue: Maximum number of TUs for beacon shifting
  • EnableBeaconCollisionAvoidance: Enable/Disable Beacon collision avoidance.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write read

TraceSources

  • LinkOpen: New peer link opened
  • LinkClose: New peer link closed

Definition at line 49 of file peer-management-protocol.h.

Member Typedef Documentation

This map keeps beacon information on all interfaces.

Definition at line 185 of file peer-management-protocol.h.

This map keeps relationship between peer address and its beacon information.

Definition at line 183 of file peer-management-protocol.h.

Simple link open/close trace source type. Addresses are: src interface, dst interface.

Definition at line 259 of file peer-management-protocol.h.

This map keeps all peer links.

Definition at line 181 of file peer-management-protocol.h.

We keep a vector of pointers to PeerLink class.

This vector keeps all peer links at a given interface.

Definition at line 179 of file peer-management-protocol.h.

this vector keeps pointers to MAC-plugins

Definition at line 187 of file peer-management-protocol.h.

Constructor & Destructor Documentation

ns3::dot11s::PeerManagementProtocol::PeerManagementProtocol ( )

Definition at line 86 of file peer-management-protocol.cc.

References m_beaconShift.

ns3::dot11s::PeerManagementProtocol::~PeerManagementProtocol ( )

Definition at line 91 of file peer-management-protocol.cc.

References m_meshId.

ns3::dot11s::PeerManagementProtocol::PeerManagementProtocol ( const PeerManagementProtocol )
private

Member Function Documentation

int64_t ns3::dot11s::PeerManagementProtocol::AssignStreams ( int64_t  stream)

Assign a fixed random variable stream number to the random variables used by this model.

Return the number of streams (possibly zero) that have been assigned.

Parameters
streamfirst stream index to use
Returns
the number of stream indices assigned by this model

Definition at line 583 of file peer-management-protocol.cc.

References m_beaconShift, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().

+ Here is the call graph for this function:

void ns3::dot11s::PeerManagementProtocol::CheckBeaconCollisions ( uint32_t  interface)
private

BCA.

Definition at line 379 of file peer-management-protocol.cc.

References GetBeaconCollisionAvoidance(), m_beaconInterval, m_lastBeacon, m_maxBeaconShift, m_peerLinks, m_plugins, NS_ASSERT, NS_ASSERT_MSG, ShiftOwnBeacon(), TimeToTu(), and TuToTime().

Referenced by NotifyBeaconSent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dot11s::PeerManagementProtocol::ConfigurationMismatch ( uint32_t  interface,
Mac48Address  peerAddress 
)

Cancels peer link due to broken configuration (Mesh ID or Supported rates)

Definition at line 236 of file peer-management-protocol.cc.

References FindPeerLink(), and ns3::dot11s::REASON11S_MESH_CAPABILITY_POLICY_VIOLATION.

+ Here is the call graph for this function:

void ns3::dot11s::PeerManagementProtocol::DoDispose ( void  )
virtual

This method is called by Object::Dispose or by the object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.

It is safe to call GetObject from within this method.

Reimplemented from ns3::Object.

Definition at line 96 of file peer-management-protocol.cc.

References m_peerLinks, and m_plugins.

void ns3::dot11s::PeerManagementProtocol::DoInitialize ( void  )
privatevirtual

Set peer link status change callback.

Reimplemented from ns3::Object.

Definition at line 591 of file peer-management-protocol.cc.

References m_beaconShift, m_maxBeaconShift, and ns3::ObjectBase::SetAttribute().

+ Here is the call graph for this function:

Ptr< PeerLink > ns3::dot11s::PeerManagementProtocol::FindPeerLink ( uint32_t  interface,
Mac48Address  peerAddress 
)

Find active peer link by my interface and peer interface MAC.

Definition at line 291 of file peer-management-protocol.cc.

References m_peerLinks, and NS_ASSERT.

Referenced by ConfigurationMismatch(), InitiateLink(), IsActiveLink(), PeerLinkStatus(), ReceiveBeacon(), ReceivePeerLinkFrame(), TransmissionFailure(), and TransmissionSuccess().

+ Here is the caller graph for this function:

Mac48Address ns3::dot11s::PeerManagementProtocol::GetAddress ( void  )

Get mesh point address.

Todo:
this used by plugins only. Now MAC plugins can ask MP addrress directly from main MAC

Definition at line 530 of file peer-management-protocol.cc.

References m_address.

Referenced by TransmissionFailure(), and TransmissionSuccess().

+ Here is the caller graph for this function:

bool ns3::dot11s::PeerManagementProtocol::GetBeaconCollisionAvoidance ( ) const

Set peer link status change callback.

Definition at line 606 of file peer-management-protocol.cc.

References m_enableBca.

Referenced by CheckBeaconCollisions(), GetBeaconTimingElement(), GetTypeId(), and ReceiveBeacon().

+ Here is the caller graph for this function:

Ptr< IeBeaconTiming > ns3::dot11s::PeerManagementProtocol::GetBeaconTimingElement ( uint32_t  interface)

When we are sending a beacon - we fill beacon timing element.

Returns
IeBeaconTiming is a beacon timing element that should be present in beacon
Parameters
interfaceis a interface sending a beacon

Definition at line 141 of file peer-management-protocol.cc.

References GetBeaconCollisionAvoidance(), m_peerLinks, and NS_ASSERT.

+ Here is the call graph for this function:

Ptr< IeMeshId > ns3::dot11s::PeerManagementProtocol::GetMeshId ( ) const

Set peer link status change callback.

Definition at line 519 of file peer-management-protocol.cc.

References m_meshId, and NS_ASSERT.

uint8_t ns3::dot11s::PeerManagementProtocol::GetNumberOfLinks ( )

Set peer link status change callback.

Definition at line 514 of file peer-management-protocol.cc.

References ns3::dot11s::PeerManagementProtocol::Statistics::linksTotal, and m_stats.

std::vector< Ptr< PeerLink > > ns3::dot11s::PeerManagementProtocol::GetPeerLinks ( ) const

Get list of all active peer links.

Definition at line 337 of file peer-management-protocol.cc.

References m_peerLinks.

std::vector< Mac48Address > ns3::dot11s::PeerManagementProtocol::GetPeers ( uint32_t  interface) const

Get list of active peers of my given interface.

Definition at line 321 of file peer-management-protocol.cc.

References m_peerLinks, and NS_ASSERT.

Referenced by ns3::Dot11sStack::InstallStack().

+ Here is the caller graph for this function:

TypeId ns3::dot11s::PeerManagementProtocol::GetTypeId ( void  )
static
Ptr< PeerLink > ns3::dot11s::PeerManagementProtocol::InitiateLink ( uint32_t  interface,
Mac48Address  peerAddress,
Mac48Address  peerMeshPointAddress 
)
private

Definition at line 265 of file peer-management-protocol.cc.

References FindPeerLink(), m_lastAssocId, m_lastLocalLinkId, m_peerLinks, m_plugins, ns3::MakeCallback(), NS_ASSERT, NS_FATAL_ERROR, and PeerLinkStatus().

Referenced by ReceiveBeacon(), and ReceivePeerLinkFrame().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::dot11s::PeerManagementProtocol::Install ( Ptr< MeshPointDevice mp)

Install PMP on given mesh point.

Installing protocol cause installing its interface MAC plugins.

Also MP aggregates all installed protocols, PMP protocol can be accessed via MeshPointDevice::GetObject<PeerManagementProtocol>();

Definition at line 113 of file peer-management-protocol.cc.

References ns3::Mac48Address::ConvertFrom(), first::interfaces, m_address, m_peerLinks, and m_plugins.

+ Here is the call graph for this function:

bool ns3::dot11s::PeerManagementProtocol::IsActiveLink ( uint32_t  interface,
Mac48Address  peerAddress 
)

Checks if there is established link.

Definition at line 351 of file peer-management-protocol.cc.

References FindPeerLink().

+ Here is the call graph for this function:

void ns3::dot11s::PeerManagementProtocol::NotifyBeaconSent ( uint32_t  interface,
Time  beaconInterval 
)

Notify about beacon send event, needed to schedule BCA.

Definition at line 535 of file peer-management-protocol.cc.

References CheckBeaconCollisions(), m_beaconInterval, m_lastBeacon, m_maxBeaconShift, ns3::Simulator::Now(), ns3::Simulator::Schedule(), and TuToTime().

+ Here is the call graph for this function:

void ns3::dot11s::PeerManagementProtocol::NotifyLinkClose ( Mac48Address  peerMp,
Mac48Address  peerIface,
Mac48Address  myIface,
uint32_t  interface 
)
private
void ns3::dot11s::PeerManagementProtocol::NotifyLinkOpen ( Mac48Address  peerMp,
Mac48Address  peerIface,
Mac48Address  myIface,
uint32_t  interface 
)
private
PeerManagementProtocol& ns3::dot11s::PeerManagementProtocol::operator= ( const PeerManagementProtocol )
private
void ns3::dot11s::PeerManagementProtocol::PeerLinkStatus ( uint32_t  interface,
Mac48Address  peerAddress,
Mac48Address  peerMeshPointAddres,
PeerLink::PeerState  ostate,
PeerLink::PeerState  nstate 
)
private

Indicates changes in peer links.

Definition at line 491 of file peer-management-protocol.cc.

References FindPeerLink(), m_address, m_plugins, NS_ASSERT, and NS_LOG_DEBUG.

Referenced by InitiateLink().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dot11s::PeerManagementProtocol::ReceiveBeacon ( uint32_t  interface,
Mac48Address  peerAddress,
Time  beaconInterval,
Ptr< IeBeaconTiming beaconTiming 
)

To initiate peer link we must notify about received beacon.

Parameters
interfacethe interface where a beacon was received from
peerAddressaddress of station, which sent a beacon
beaconIntervalbeacon interval (needed by beacon loss counter)
beaconTimingbeacon timing element (needed by BCA)

Definition at line 165 of file peer-management-protocol.cc.

References FindPeerLink(), GetBeaconCollisionAvoidance(), ns3::Mac48Address::GetBroadcast(), InitiateLink(), m_plugins, ns3::Simulator::Now(), ns3::PeekPointer(), and ShouldSendOpen().

+ Here is the call graph for this function:

void ns3::dot11s::PeerManagementProtocol::ReceivePeerLinkFrame ( uint32_t  interface,
Mac48Address  peerAddress,
Mac48Address  peerMeshPointAddress,
uint16_t  aid,
IePeerManagement  peerManagementElement,
IeConfiguration  meshConfig 
)

Methods that handle Peer link management frames interaction:

Deliver Peer link management information to the protocol-part

Parameters
interfaceis a interface ID of a given MAC (interfaceID rather than MAC address, because many interfaces may have the same MAC)
peerAddressis address of peer
peerMeshPointAddressis address of peer mesh point device (equal to peer address when only one interface)
aidis association ID, which peer has assigned to us
peerManagementElementis peer link management element
meshConfigis mesh configuration element taken from the peer management frame

Definition at line 197 of file peer-management-protocol.cc.

References FindPeerLink(), ns3::dot11s::IePeerManagement::GetLocalLinkId(), ns3::dot11s::IePeerManagement::GetPeerLinkId(), ns3::dot11s::IePeerManagement::GetReasonCode(), InitiateLink(), ns3::dot11s::REASON11S_RESERVED, ShouldAcceptOpen(), ns3::dot11s::IePeerManagement::SubtypeIsClose(), ns3::dot11s::IePeerManagement::SubtypeIsConfirm(), and ns3::dot11s::IePeerManagement::SubtypeIsOpen().

+ Here is the call graph for this function:

void ns3::dot11s::PeerManagementProtocol::Report ( std::ostream &  os) const

: Report statistics

Definition at line 554 of file peer-management-protocol.cc.

References m_peerLinks, m_plugins, m_stats, NS_ASSERT, visualizer.base::plugins, and ns3::dot11s::PeerManagementProtocol::Statistics::Print().

+ Here is the call graph for this function:

void ns3::dot11s::PeerManagementProtocol::ResetStats ( )

Set peer link status change callback.

Definition at line 573 of file peer-management-protocol.cc.

References ns3::dot11s::PeerManagementProtocol::Statistics::linksTotal, m_plugins, m_stats, and visualizer.base::plugins.

void ns3::dot11s::PeerManagementProtocol::SetBeaconCollisionAvoidance ( bool  enable)

Enable or disable beacon collision avoidance.

Definition at line 601 of file peer-management-protocol.cc.

References m_enableBca.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::dot11s::PeerManagementProtocol::SetMeshId ( std::string  s)

Set peer link status change callback.

Definition at line 525 of file peer-management-protocol.cc.

References m_meshId, and s.

void ns3::dot11s::PeerManagementProtocol::SetPeerLinkStatusCallback ( Callback< void, Mac48Address, Mac48Address, uint32_t, bool >  cb)

Set peer link status change callback.

Definition at line 314 of file peer-management-protocol.cc.

References m_peerStatusCallback.

void ns3::dot11s::PeerManagementProtocol::ShiftOwnBeacon ( uint32_t  interface)
private

Definition at line 439 of file peer-management-protocol.cc.

References ns3::UniformRandomVariable::GetValue(), m_beaconShift, m_plugins, NS_ASSERT, and TuToTime().

Referenced by CheckBeaconCollisions().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::dot11s::PeerManagementProtocol::ShouldAcceptOpen ( uint32_t  interface,
Mac48Address  peerAddress,
PmpReasonCode reasonCode 
)
private
bool ns3::dot11s::PeerManagementProtocol::ShouldSendOpen ( uint32_t  interface,
Mac48Address  peerAddress 
)
private

Definition at line 361 of file peer-management-protocol.cc.

References ns3::dot11s::PeerManagementProtocol::Statistics::linksTotal, m_maxNumberOfPeerLinks, and m_stats.

Referenced by ReceiveBeacon().

+ Here is the caller graph for this function:

int ns3::dot11s::PeerManagementProtocol::TimeToTu ( Time  x)
private

Definition at line 459 of file peer-management-protocol.cc.

References ns3::Time::GetMicroSeconds().

Referenced by CheckBeaconCollisions().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dot11s::PeerManagementProtocol::TransmissionFailure ( uint32_t  interface,
const Mac48Address  peerAddress 
)

Cancels peer link due to successive transmission failures.

Definition at line 245 of file peer-management-protocol.cc.

References FindPeerLink(), GetAddress(), and NS_LOG_DEBUG.

+ Here is the call graph for this function:

void ns3::dot11s::PeerManagementProtocol::TransmissionSuccess ( uint32_t  interface,
const Mac48Address  peerAddress 
)

resets transmission failure statistics

Definition at line 255 of file peer-management-protocol.cc.

References FindPeerLink(), GetAddress(), and NS_LOG_DEBUG.

+ Here is the call graph for this function:

Time ns3::dot11s::PeerManagementProtocol::TuToTime ( int  x)
private

Definition at line 454 of file peer-management-protocol.cc.

Referenced by CheckBeaconCollisions(), NotifyBeaconSent(), and ShiftOwnBeacon().

+ Here is the caller graph for this function:

Member Data Documentation

Mac48Address ns3::dot11s::PeerManagementProtocol::m_address
private

Definition at line 226 of file peer-management-protocol.h.

Referenced by GetAddress(), Install(), and PeerLinkStatus().

std::map<uint32_t, Time> ns3::dot11s::PeerManagementProtocol::m_beaconInterval
private

Beacon interval at each interface.

Definition at line 239 of file peer-management-protocol.h.

Referenced by CheckBeaconCollisions(), and NotifyBeaconSent().

Ptr<UniformRandomVariable> ns3::dot11s::PeerManagementProtocol::m_beaconShift
private

Add randomness to beacon shift.

Definition at line 278 of file peer-management-protocol.h.

Referenced by AssignStreams(), DoInitialize(), PeerManagementProtocol(), and ShiftOwnBeacon().

bool ns3::dot11s::PeerManagementProtocol::m_enableBca
private

Flag which enables BCA.

Definition at line 233 of file peer-management-protocol.h.

Referenced by GetBeaconCollisionAvoidance(), and SetBeaconCollisionAvoidance().

uint16_t ns3::dot11s::PeerManagementProtocol::m_lastAssocId
private

Definition at line 229 of file peer-management-protocol.h.

Referenced by InitiateLink().

std::map<uint32_t, Time> ns3::dot11s::PeerManagementProtocol::m_lastBeacon
private

Last beacon at each interface.

Definition at line 237 of file peer-management-protocol.h.

Referenced by CheckBeaconCollisions(), and NotifyBeaconSent().

uint16_t ns3::dot11s::PeerManagementProtocol::m_lastLocalLinkId
private

Definition at line 230 of file peer-management-protocol.h.

Referenced by InitiateLink().

LinkEventCallback ns3::dot11s::PeerManagementProtocol::m_linkCloseTraceSrc
private

LinkClose trace source.

Definition at line 263 of file peer-management-protocol.h.

Referenced by GetTypeId(), and NotifyLinkClose().

LinkEventCallback ns3::dot11s::PeerManagementProtocol::m_linkOpenTraceSrc
private

LinkOpen trace source.

Definition at line 261 of file peer-management-protocol.h.

Referenced by GetTypeId(), and NotifyLinkOpen().

uint16_t ns3::dot11s::PeerManagementProtocol::m_maxBeaconShift
private

Beacon can be shifted at [-m_maxBeaconShift; +m_maxBeaconShift] TUs.

Definition at line 235 of file peer-management-protocol.h.

Referenced by CheckBeaconCollisions(), DoInitialize(), GetTypeId(), and NotifyBeaconSent().

uint8_t ns3::dot11s::PeerManagementProtocol::m_maxNumberOfPeerLinks
private

Definition at line 231 of file peer-management-protocol.h.

Referenced by GetTypeId(), ShouldAcceptOpen(), and ShouldSendOpen().

Ptr<IeMeshId> ns3::dot11s::PeerManagementProtocol::m_meshId
private

Definition at line 227 of file peer-management-protocol.h.

Referenced by GetMeshId(), SetMeshId(), and ~PeerManagementProtocol().

PeerLinksMap ns3::dot11s::PeerManagementProtocol::m_peerLinks
private
Callback<void, Mac48Address, Mac48Address, uint32_t, bool> ns3::dot11s::PeerManagementProtocol::m_peerStatusCallback
private

Callback to notify about peer link changes: Mac48Address is peer address of mesh point, Mac48Address is peer address of interface, uint32_t - interface ID, bool is status - true when new link has appeared, false - when link was closed,.

Definition at line 256 of file peer-management-protocol.h.

Referenced by NotifyLinkClose(), NotifyLinkOpen(), and SetPeerLinkStatusCallback().

PeerManagementProtocolMacMap ns3::dot11s::PeerManagementProtocol::m_plugins
private
struct Statistics ns3::dot11s::PeerManagementProtocol::m_stats
private

The documentation for this class was generated from the following files: