A Discrete-Event Network Simulator
API
ns3::dot11s::PeerLink Class Reference

Peer link model for 802.11s Peer Management protocol. More...

#include "peer-link.h"

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

Public Types

enum  PeerState {
  IDLE, OPN_SNT, CNF_RCVD, OPN_RCVD,
  ESTAB, HOLDING
}
 Peer Link state: More...
 

Public Member Functions

 PeerLink ()
 C-tor create empty link. More...
 
 ~PeerLink ()
 
void DoDispose ()
 Destructor implementation. More...
 
void Report (std::ostream &os) const
 Statistics. More...
 
void SetBeaconInformation (Time lastBeacon, Time BeaconInterval)
 Process beacon received from peer. More...
 
void SetLinkStatusCallback (Callback< void, uint32_t, Mac48Address, bool > cb)
 Method used to detect peer link changes. More...
 
Peer link getters/setters
void SetPeerAddress (Mac48Address macaddr)
 
void SetPeerMeshPointAddress (Mac48Address macaddr)
 
void SetInterface (uint32_t interface)
 
void SetLocalLinkId (uint16_t id)
 
void SetLocalAid (uint16_t aid)
 
uint16_t GetPeerAid () const
 
void SetBeaconTimingElement (IeBeaconTiming beaconTiming)
 
Mac48Address GetPeerAddress () const
 
uint16_t GetLocalAid () const
 
Time GetLastBeacon () const
 
Time GetBeaconInterval () const
 
IeBeaconTiming GetBeaconTimingElement () const
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose (void)
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator (void) const
 Get an iterator to the Objects aggregated to this one. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the most derived TypeId for this Object. More...
 
template<typename T >
Ptr< T > GetObject (void) const
 Get a pointer to the requested aggregated Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
void Initialize (void)
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized (void) const
 Check if the object has been initialized. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default 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 operator. 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
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising erros. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Static Public Attributes

static const char *const PeerStateNames [6] = { "IDLE", "OPN_SNT", "CNF_RCVD", "OPN_RCVD", "ESTAB", "HOLDING" }
 Literal names of Mesh Peer Management states for use in log messages. More...
 

Private Types

enum  PeerEvent {
  CNCL, ACTOPN, CLS_ACPT, OPN_ACPT,
  OPN_RJCT, REQ_RJCT, CNF_ACPT, CNF_RJCT,
  TOR1, TOR2, TOC, TOH
}
 Peer link events, see 802.11s draft 11B.3.3.2. More...
 

Private Member Functions

 PeerLink (const PeerLink &)
 type conversion operator More...
 
void BeaconLoss ()
 Several successive beacons were lost, close link. More...
 
bool LinkIsEstab () const
 
bool LinkIsIdle () const
 
PeerLinkoperator= (const PeerLink &link)
 assignment operator More...
 
void SetMacPlugin (Ptr< PeerManagementProtocolMac > plugin)
 Set pointer to MAC-plugin, which is responsible for sending peer link management frames. More...
 
void StateMachine (PeerEvent event, PmpReasonCode=REASON11S_RESERVED)
 State transition. More...
 
Link response to received management frames
Attention
In all this methods {local/peer}LinkID correspond to peer station, as written in received frame, e.g. I am peerLinkID and peer link is localLinkID .
void Close (uint16_t localLinkID, uint16_t peerLinkID, PmpReasonCode reason)
 Close link. More...
 
void OpenAccept (uint16_t localLinkId, IeConfiguration conf, Mac48Address peerMp)
 Accept open link. More...
 
void OpenReject (uint16_t localLinkId, IeConfiguration conf, Mac48Address peerMp, PmpReasonCode reason)
 Reject open link. More...
 
void ConfirmAccept (uint16_t localLinkId, uint16_t peerLinkId, uint16_t peerAid, IeConfiguration conf, Mac48Address peerMp)
 Confirm accept. More...
 
void ConfirmReject (uint16_t localLinkId, uint16_t peerLinkId, IeConfiguration conf, Mac48Address peerMp, PmpReasonCode reason)
 Confirm reject. More...
 
Event handlers
void ClearRetryTimer ()
 
void ClearConfirmTimer ()
 
void ClearHoldingTimer ()
 
void SetHoldingTimer ()
 
void SetRetryTimer ()
 
void SetConfirmTimer ()
 
Work with management frames
void SendPeerLinkClose (PmpReasonCode reasoncode)
 
void SendPeerLinkOpen ()
 
void SendPeerLinkConfirm ()
 
Timeout handlers
void HoldingTimeout ()
 
void RetryTimeout ()
 
void ConfirmTimeout ()
 

Private Attributes

uint16_t m_assocId
 My association ID. More...
 
Time m_beaconInterval
 Current beacon interval on corresponding interface. More...
 
IeBeaconTiming m_beaconTiming
 Beacon timing element received from the peer. Needed by BCA. More...
 
IeConfiguration m_configuration
 Mesh interface configuration. More...
 
uint32_t m_interface
 The number of interface I am associated with. More...
 
Time m_lastBeacon
 When last beacon was received. More...
 
SignalStatusCallback m_linkStatusCallback
 How to report my status change. More...
 
uint16_t m_localLinkId
 My ID of this link. More...
 
Ptr< PeerManagementProtocolMacm_macPlugin
 pointer to MAC plugin, which is responsible for peer management More...
 
uint16_t m_packetFail
 How many successive packets were failed to transmit. More...
 
Mac48Address m_peerAddress
 Peer address. More...
 
uint16_t m_peerAssocId
 Assoc Id assigned to me by peer. More...
 
uint16_t m_peerLinkId
 Peer ID of this link. More...
 
Mac48Address m_peerMeshPointAddress
 Mesh point address, equal to peer address in case of single interface mesh point. More...
 
PeerState m_state
 Current state. More...
 
Timers & counters used for internal state transitions
uint16_t m_dot11MeshMaxRetries
 
Time m_dot11MeshRetryTimeout
 
Time m_dot11MeshHoldingTimeout
 
Time m_dot11MeshConfirmTimeout
 
EventId m_retryTimer
 
EventId m_holdingTimer
 
EventId m_confirmTimer
 
uint16_t m_retryCounter
 
EventId m_beaconLossTimer
 
uint16_t m_maxBeaconLoss
 
uint16_t m_maxPacketFail
 

Friends

class PeerManagementProtocol
 allow PeerManagementProtocol class friend access More...
 

MLME

typedef Callback< void, uint32_t, Mac48Address, Mac48Address, PeerLink::PeerState, PeerLink::PeerStateSignalStatusCallback
 Callback type for MLME-SignalPeerLinkStatus event. More...
 
void MLMECancelPeerLink (PmpReasonCode reason)
 MLME-CancelPeerLink.request. More...
 
void MLMEActivePeerLinkOpen ()
 MLME-ActivePeerLinkOpen.request. More...
 
void MLMEPeeringRequestReject ()
 MLME-PeeringRequestReject. More...
 
void MLMESetSignalStatusCallback (SignalStatusCallback cb)
 Set callback. More...
 
void TransmissionSuccess ()
 Reports about transmission success/failure. More...
 
void TransmissionFailure ()
 Callback type for MLME-SignalPeerLinkStatus event. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object. More...
 
virtual void DoInitialize (void)
 Initialize() implementation. More...
 
virtual void NotifyNewAggregate (void)
 Notify all Objects aggregated to this one of a new Object being aggregated. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted (void)
 Notifier called once the ObjectBase is fully constructed. More...
 

Detailed Description

Peer link model for 802.11s Peer Management protocol.


Introspection did not find any typical Config paths.


Attributes

  • RetryTimeout: Retry timeout
    • Set with class: ns3::TimeValue
    • Underlying type: Time –9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +40960000.0ns
    • Flags: construct write read
  • HoldingTimeout: Holding timeout
    • Set with class: ns3::TimeValue
    • Underlying type: Time –9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +40960000.0ns
    • Flags: construct write read
  • ConfirmTimeout: Confirm timeout
    • Set with class: ns3::TimeValue
    • Underlying type: Time –9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +40960000.0ns
    • Flags: construct write read
  • MaxRetries: Maximum number of retries
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 4
    • Flags: construct write read
  • MaxBeaconLoss: Maximum number of lost beacons before link will be closed
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 1:65535
    • Initial value: 2
    • Flags: construct write read
  • MaxPacketFailure: Maximum number of failed packets before link will be closed
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 1:65535
    • Initial value: 2
    • Flags: construct write read

No TraceSources are defined for this type.
Size of this type is 328 bytes (on a 64-bit architecture).

Definition at line 43 of file peer-link.h.

Member Typedef Documentation

◆ SignalStatusCallback

Callback type for MLME-SignalPeerLinkStatus event.

Definition at line 117 of file peer-link.h.

Member Enumeration Documentation

◆ PeerEvent

Peer link events, see 802.11s draft 11B.3.3.2.

Enumerator
CNCL 

Cancel peer link.

ACTOPN 

Active peer link open.

CLS_ACPT 

PeerLinkClose_Accept.

OPN_ACPT 

PeerLinkOpen_Accept.

OPN_RJCT 

PeerLinkOpen_Reject.

REQ_RJCT 

PeerLinkOpenReject by internal reason.

CNF_ACPT 

PeerLinkConfirm_Accept.

CNF_RJCT 

PeerLinkConfirm_Reject.

TOR1 

Timeout of retry timer.

TOR2 

also timeout of retry timer

TOC 

Timeout of confirm timer.

TOH 

Timeout of holding (graceful closing) timer.

Definition at line 134 of file peer-link.h.

◆ PeerState

Peer Link state:

Enumerator
IDLE 
OPN_SNT 
CNF_RCVD 
OPN_RCVD 
ESTAB 
HOLDING 

Definition at line 58 of file peer-link.h.

Constructor & Destructor Documentation

◆ PeerLink() [1/2]

ns3::dot11s::PeerLink::PeerLink ( )

C-tor create empty link.

Definition at line 96 of file peer-link.cc.

References NS_LOG_FUNCTION.

◆ ~PeerLink()

ns3::dot11s::PeerLink::~PeerLink ( )

Definition at line 112 of file peer-link.cc.

◆ PeerLink() [2/2]

ns3::dot11s::PeerLink::PeerLink ( const PeerLink )
private

type conversion operator

Returns
the peer link

Member Function Documentation

◆ BeaconLoss()

void ns3::dot11s::PeerLink::BeaconLoss ( )
private

Several successive beacons were lost, close link.

Definition at line 166 of file peer-link.cc.

References CNCL, NS_LOG_FUNCTION, and StateMachine().

Referenced by SetBeaconInformation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ClearConfirmTimer()

void ns3::dot11s::PeerLink::ClearConfirmTimer ( )
private

Definition at line 627 of file peer-link.cc.

References ns3::EventId::Cancel(), and m_confirmTimer.

Referenced by StateMachine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ClearHoldingTimer()

void ns3::dot11s::PeerLink::ClearHoldingTimer ( )
private

Definition at line 632 of file peer-link.cc.

References ns3::EventId::Cancel(), and m_holdingTimer.

Referenced by StateMachine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ClearRetryTimer()

void ns3::dot11s::PeerLink::ClearRetryTimer ( )
private

Definition at line 622 of file peer-link.cc.

References ns3::EventId::Cancel(), and m_retryTimer.

Referenced by StateMachine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Close()

void ns3::dot11s::PeerLink::Close ( uint16_t  localLinkID,
uint16_t  peerLinkID,
PmpReasonCode  reason 
)
private

Close link.

Parameters
localLinkIDthe local link ID
peerLinkIDthe peer link ID
reasonthe reason to close

Definition at line 241 of file peer-link.cc.

References CLS_ACPT, m_localLinkId, m_peerLinkId, NS_LOG_FUNCTION, and StateMachine().

+ Here is the call graph for this function:

◆ ConfirmAccept()

void ns3::dot11s::PeerLink::ConfirmAccept ( uint16_t  localLinkId,
uint16_t  peerLinkId,
uint16_t  peerAid,
IeConfiguration  conf,
Mac48Address  peerMp 
)
private

Confirm accept.

Parameters
localLinkIdthe local link ID
peerLinkIdthe peer link ID
peerAidthe peer AID
confthe IE configuration
peerMpthe peer MP

Definition at line 297 of file peer-link.cc.

References CNF_ACPT, ns3::Mac48Address::GetBroadcast(), m_configuration, m_localLinkId, m_peerAssocId, m_peerLinkId, m_peerMeshPointAddress, NS_ASSERT, NS_LOG_FUNCTION, and StateMachine().

+ Here is the call graph for this function:

◆ ConfirmReject()

void ns3::dot11s::PeerLink::ConfirmReject ( uint16_t  localLinkId,
uint16_t  peerLinkId,
IeConfiguration  conf,
Mac48Address  peerMp,
PmpReasonCode  reason 
)
private

Confirm reject.

Parameters
localLinkIdthe local link ID
peerLinkIdthe peer link ID
confthe IE configuration
peerMpthe peer MP
reasonthe reason to close

Definition at line 329 of file peer-link.cc.

References CNF_RJCT, ns3::Mac48Address::GetBroadcast(), m_configuration, m_localLinkId, m_peerLinkId, m_peerMeshPointAddress, NS_ASSERT, NS_LOG_FUNCTION, and StateMachine().

+ Here is the call graph for this function:

◆ ConfirmTimeout()

void ns3::dot11s::PeerLink::ConfirmTimeout ( )
private

Definition at line 701 of file peer-link.cc.

References StateMachine(), and TOC.

Referenced by SetConfirmTimer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoDispose()

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

Destructor implementation.

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

Subclasses are expected to implement their real destruction code in an overridden 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 116 of file peer-link.cc.

References ns3::EventId::Cancel(), ns3::dot11s::IeBeaconTiming::ClearTimingElement(), m_beaconLossTimer, m_beaconTiming, m_confirmTimer, m_holdingTimer, m_retryTimer, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ GetBeaconInterval()

Time ns3::dot11s::PeerLink::GetBeaconInterval ( ) const

Definition at line 216 of file peer-link.cc.

References m_beaconInterval.

◆ GetBeaconTimingElement()

IeBeaconTiming ns3::dot11s::PeerLink::GetBeaconTimingElement ( ) const

Definition at line 221 of file peer-link.cc.

References m_beaconTiming.

◆ GetLastBeacon()

Time ns3::dot11s::PeerLink::GetLastBeacon ( ) const

Definition at line 211 of file peer-link.cc.

References m_lastBeacon.

◆ GetLocalAid()

uint16_t ns3::dot11s::PeerLink::GetLocalAid ( ) const

Definition at line 200 of file peer-link.cc.

References m_assocId.

◆ GetPeerAddress()

Mac48Address ns3::dot11s::PeerLink::GetPeerAddress ( void  ) const

Definition at line 195 of file peer-link.cc.

References m_peerAddress.

◆ GetPeerAid()

uint16_t ns3::dot11s::PeerLink::GetPeerAid ( ) const

Definition at line 205 of file peer-link.cc.

References m_peerAssocId.

◆ GetTypeId()

TypeId ns3::dot11s::PeerLink::GetTypeId ( void  )
static

◆ HoldingTimeout()

void ns3::dot11s::PeerLink::HoldingTimeout ( )
private

Definition at line 668 of file peer-link.cc.

References NS_LOG_FUNCTION, StateMachine(), and TOH.

Referenced by SetHoldingTimer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LinkIsEstab()

bool ns3::dot11s::PeerLink::LinkIsEstab ( ) const
private
Returns
True if link is established

Definition at line 357 of file peer-link.cc.

References ESTAB, and m_state.

◆ LinkIsIdle()

bool ns3::dot11s::PeerLink::LinkIsIdle ( ) const
private
Returns
True if link is idle. Link can be deleted in this state

Definition at line 362 of file peer-link.cc.

References IDLE, and m_state.

◆ MLMEActivePeerLinkOpen()

void ns3::dot11s::PeerLink::MLMEActivePeerLinkOpen ( )

MLME-ActivePeerLinkOpen.request.

Definition at line 231 of file peer-link.cc.

References ACTOPN, and StateMachine().

+ Here is the call graph for this function:

◆ MLMECancelPeerLink()

void ns3::dot11s::PeerLink::MLMECancelPeerLink ( PmpReasonCode  reason)

MLME-CancelPeerLink.request.

Parameters
reasonthe reason for the request

Definition at line 226 of file peer-link.cc.

References CNCL, and StateMachine().

+ Here is the call graph for this function:

◆ MLMEPeeringRequestReject()

void ns3::dot11s::PeerLink::MLMEPeeringRequestReject ( )

MLME-PeeringRequestReject.

Definition at line 236 of file peer-link.cc.

References ns3::dot11s::REASON11S_PEERING_CANCELLED, REQ_RJCT, and StateMachine().

+ Here is the call graph for this function:

◆ MLMESetSignalStatusCallback()

void ns3::dot11s::PeerLink::MLMESetSignalStatusCallback ( PeerLink::SignalStatusCallback  cb)

Set callback.

Parameters
cbthe callback function

Definition at line 161 of file peer-link.cc.

References m_linkStatusCallback.

◆ OpenAccept()

void ns3::dot11s::PeerLink::OpenAccept ( uint16_t  localLinkId,
IeConfiguration  conf,
Mac48Address  peerMp 
)
private

Accept open link.

Parameters
localLinkIdthe local link ID
confthe IE configuration
peerMpthe peer MP

Definition at line 262 of file peer-link.cc.

References ns3::Mac48Address::GetBroadcast(), m_configuration, m_peerLinkId, m_peerMeshPointAddress, NS_ASSERT, NS_LOG_FUNCTION, OPN_ACPT, and StateMachine().

+ Here is the call graph for this function:

◆ OpenReject()

void ns3::dot11s::PeerLink::OpenReject ( uint16_t  localLinkId,
IeConfiguration  conf,
Mac48Address  peerMp,
PmpReasonCode  reason 
)
private

Reject open link.

Parameters
localLinkIdthe local link ID
confthe IE configuration
peerMpthe peer MP
reasonthe reason to close

Definition at line 278 of file peer-link.cc.

References ns3::Mac48Address::GetBroadcast(), m_configuration, m_peerLinkId, m_peerMeshPointAddress, NS_ASSERT, NS_LOG_FUNCTION, OPN_RJCT, and StateMachine().

+ Here is the call graph for this function:

◆ operator=()

PeerLink& ns3::dot11s::PeerLink::operator= ( const PeerLink link)
private

assignment operator

Parameters
linkthe peer link
Returns
the peer link assigned

◆ Report()

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

◆ RetryTimeout()

void ns3::dot11s::PeerLink::RetryTimeout ( )
private

Definition at line 680 of file peer-link.cc.

References m_dot11MeshMaxRetries, m_retryCounter, NS_LOG_FUNCTION, NS_LOG_LOGIC(), StateMachine(), TOR1, and TOR2.

Referenced by SetRetryTimer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendPeerLinkClose()

void ns3::dot11s::PeerLink::SendPeerLinkClose ( PmpReasonCode  reasoncode)
private

Definition at line 637 of file peer-link.cc.

References m_assocId, m_configuration, m_localLinkId, m_macPlugin, m_peerAddress, m_peerLinkId, m_peerMeshPointAddress, ns3::dot11s::PeerManagementProtocolMac::SendPeerLinkManagementFrame(), and ns3::dot11s::IePeerManagement::SetPeerClose().

Referenced by StateMachine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendPeerLinkConfirm()

void ns3::dot11s::PeerLink::SendPeerLinkConfirm ( )
private

Definition at line 654 of file peer-link.cc.

References m_assocId, m_configuration, m_localLinkId, m_macPlugin, m_peerAddress, m_peerLinkId, m_peerMeshPointAddress, ns3::dot11s::PeerManagementProtocolMac::SendPeerLinkManagementFrame(), and ns3::dot11s::IePeerManagement::SetPeerConfirm().

Referenced by StateMachine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendPeerLinkOpen()

void ns3::dot11s::PeerLink::SendPeerLinkOpen ( )
private

Definition at line 645 of file peer-link.cc.

References m_assocId, m_configuration, m_localLinkId, m_macPlugin, m_peerAddress, m_peerMeshPointAddress, NS_ASSERT, ns3::dot11s::PeerManagementProtocolMac::SendPeerLinkManagementFrame(), and ns3::dot11s::IePeerManagement::SetPeerOpen().

Referenced by StateMachine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetBeaconInformation()

void ns3::dot11s::PeerLink::SetBeaconInformation ( Time  lastBeacon,
Time  BeaconInterval 
)

Process beacon received from peer.

Parameters
lastBeaconthe last beacon
BeaconIntervalthe beacon interval

Definition at line 151 of file peer-link.cc.

References BeaconLoss(), ns3::EventId::Cancel(), ns3::Time::GetMicroSeconds(), ns3::Time::GetSeconds(), m_beaconInterval, m_beaconLossTimer, m_lastBeacon, m_maxBeaconLoss, NS_ASSERT, ns3::Simulator::Schedule(), and ns3::Seconds().

+ Here is the call graph for this function:

◆ SetBeaconTimingElement()

void ns3::dot11s::PeerLink::SetBeaconTimingElement ( IeBeaconTiming  beaconTiming)

Definition at line 190 of file peer-link.cc.

References m_beaconTiming.

◆ SetConfirmTimer()

void ns3::dot11s::PeerLink::SetConfirmTimer ( )
private

Definition at line 695 of file peer-link.cc.

References ConfirmTimeout(), ns3::Time::GetMicroSeconds(), m_confirmTimer, m_dot11MeshConfirmTimeout, NS_ASSERT, and ns3::Simulator::Schedule().

Referenced by StateMachine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetHoldingTimer()

void ns3::dot11s::PeerLink::SetHoldingTimer ( )
private

Definition at line 662 of file peer-link.cc.

References ns3::Time::GetMicroSeconds(), HoldingTimeout(), m_dot11MeshHoldingTimeout, m_holdingTimer, NS_ASSERT, and ns3::Simulator::Schedule().

Referenced by StateMachine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetInterface()

void ns3::dot11s::PeerLink::SetInterface ( uint32_t  interface)

Definition at line 136 of file peer-link.cc.

References m_interface.

◆ SetLinkStatusCallback()

void ns3::dot11s::PeerLink::SetLinkStatusCallback ( Callback< void, uint32_t, Mac48Address, bool >  cb)

Method used to detect peer link changes.

Parameters
cbis a callback, which notifies, that on interface (uint32_t), peer link with address (Mac48Address) was opened (bool is true) or closed (bool is false)

◆ SetLocalAid()

void ns3::dot11s::PeerLink::SetLocalAid ( uint16_t  aid)

Definition at line 146 of file peer-link.cc.

References m_assocId.

◆ SetLocalLinkId()

void ns3::dot11s::PeerLink::SetLocalLinkId ( uint16_t  id)

Definition at line 141 of file peer-link.cc.

References m_localLinkId.

◆ SetMacPlugin()

void ns3::dot11s::PeerLink::SetMacPlugin ( Ptr< PeerManagementProtocolMac plugin)
private

Set pointer to MAC-plugin, which is responsible for sending peer link management frames.

Parameters
pluginthe peer management protocol MAC

Definition at line 367 of file peer-link.cc.

References m_macPlugin.

◆ SetPeerAddress()

void ns3::dot11s::PeerLink::SetPeerAddress ( Mac48Address  macaddr)

Definition at line 126 of file peer-link.cc.

References m_peerAddress.

◆ SetPeerMeshPointAddress()

void ns3::dot11s::PeerLink::SetPeerMeshPointAddress ( Mac48Address  macaddr)

Definition at line 131 of file peer-link.cc.

References m_peerMeshPointAddress.

◆ SetRetryTimer()

void ns3::dot11s::PeerLink::SetRetryTimer ( )
private

Definition at line 674 of file peer-link.cc.

References ns3::Time::GetMicroSeconds(), m_dot11MeshRetryTimeout, m_retryTimer, NS_ASSERT, RetryTimeout(), and ns3::Simulator::Schedule().

Referenced by StateMachine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ StateMachine()

◆ TransmissionFailure()

void ns3::dot11s::PeerLink::TransmissionFailure ( )

Callback type for MLME-SignalPeerLinkStatus event.

Definition at line 177 of file peer-link.cc.

References CNCL, m_maxPacketFail, m_packetFail, NS_LOG_DEBUG, NS_LOG_FUNCTION, and StateMachine().

+ Here is the call graph for this function:

◆ TransmissionSuccess()

void ns3::dot11s::PeerLink::TransmissionSuccess ( )

Reports about transmission success/failure.

Definition at line 172 of file peer-link.cc.

References m_packetFail.

Friends And Related Function Documentation

◆ PeerManagementProtocol

friend class PeerManagementProtocol
friend

allow PeerManagementProtocol class friend access

Definition at line 47 of file peer-link.h.

Member Data Documentation

◆ m_assocId

uint16_t ns3::dot11s::PeerLink::m_assocId
private

My association ID.

Definition at line 295 of file peer-link.h.

Referenced by GetLocalAid(), Report(), SendPeerLinkClose(), SendPeerLinkConfirm(), SendPeerLinkOpen(), and SetLocalAid().

◆ m_beaconInterval

Time ns3::dot11s::PeerLink::m_beaconInterval
private

Current beacon interval on corresponding interface.

Definition at line 302 of file peer-link.h.

Referenced by GetBeaconInterval(), and SetBeaconInformation().

◆ m_beaconLossTimer

EventId ns3::dot11s::PeerLink::m_beaconLossTimer
private

Definition at line 329 of file peer-link.h.

Referenced by DoDispose(), and SetBeaconInformation().

◆ m_beaconTiming

IeBeaconTiming ns3::dot11s::PeerLink::m_beaconTiming
private

Beacon timing element received from the peer. Needed by BCA.

Definition at line 314 of file peer-link.h.

Referenced by DoDispose(), GetBeaconTimingElement(), and SetBeaconTimingElement().

◆ m_configuration

IeConfiguration ns3::dot11s::PeerLink::m_configuration
private

Mesh interface configuration.

Attention
Is not used now, nothing to configure :)

Definition at line 312 of file peer-link.h.

Referenced by ConfirmAccept(), ConfirmReject(), OpenAccept(), OpenReject(), SendPeerLinkClose(), SendPeerLinkConfirm(), and SendPeerLinkOpen().

◆ m_confirmTimer

EventId ns3::dot11s::PeerLink::m_confirmTimer
private

Definition at line 327 of file peer-link.h.

Referenced by ClearConfirmTimer(), DoDispose(), and SetConfirmTimer().

◆ m_dot11MeshConfirmTimeout

Time ns3::dot11s::PeerLink::m_dot11MeshConfirmTimeout
private

Definition at line 323 of file peer-link.h.

Referenced by GetTypeId(), and SetConfirmTimer().

◆ m_dot11MeshHoldingTimeout

Time ns3::dot11s::PeerLink::m_dot11MeshHoldingTimeout
private

Definition at line 322 of file peer-link.h.

Referenced by GetTypeId(), and SetHoldingTimer().

◆ m_dot11MeshMaxRetries

uint16_t ns3::dot11s::PeerLink::m_dot11MeshMaxRetries
private

Definition at line 320 of file peer-link.h.

Referenced by GetTypeId(), and RetryTimeout().

◆ m_dot11MeshRetryTimeout

Time ns3::dot11s::PeerLink::m_dot11MeshRetryTimeout
private

Definition at line 321 of file peer-link.h.

Referenced by GetTypeId(), and SetRetryTimer().

◆ m_holdingTimer

EventId ns3::dot11s::PeerLink::m_holdingTimer
private

Definition at line 326 of file peer-link.h.

Referenced by ClearHoldingTimer(), DoDispose(), and SetHoldingTimer().

◆ m_interface

uint32_t ns3::dot11s::PeerLink::m_interface
private

The number of interface I am associated with.

Definition at line 282 of file peer-link.h.

Referenced by SetInterface(), and StateMachine().

◆ m_lastBeacon

Time ns3::dot11s::PeerLink::m_lastBeacon
private

When last beacon was received.

Definition at line 300 of file peer-link.h.

Referenced by GetLastBeacon(), Report(), and SetBeaconInformation().

◆ m_linkStatusCallback

SignalStatusCallback ns3::dot11s::PeerLink::m_linkStatusCallback
private

How to report my status change.

Definition at line 334 of file peer-link.h.

Referenced by MLMESetSignalStatusCallback(), and StateMachine().

◆ m_localLinkId

uint16_t ns3::dot11s::PeerLink::m_localLinkId
private

◆ m_macPlugin

Ptr<PeerManagementProtocolMac> ns3::dot11s::PeerLink::m_macPlugin
private

pointer to MAC plugin, which is responsible for peer management

Definition at line 284 of file peer-link.h.

Referenced by Report(), SendPeerLinkClose(), SendPeerLinkConfirm(), SendPeerLinkOpen(), and SetMacPlugin().

◆ m_maxBeaconLoss

uint16_t ns3::dot11s::PeerLink::m_maxBeaconLoss
private

Definition at line 330 of file peer-link.h.

Referenced by GetTypeId(), and SetBeaconInformation().

◆ m_maxPacketFail

uint16_t ns3::dot11s::PeerLink::m_maxPacketFail
private

Definition at line 331 of file peer-link.h.

Referenced by GetTypeId(), and TransmissionFailure().

◆ m_packetFail

uint16_t ns3::dot11s::PeerLink::m_packetFail
private

How many successive packets were failed to transmit.

Definition at line 304 of file peer-link.h.

Referenced by TransmissionFailure(), and TransmissionSuccess().

◆ m_peerAddress

Mac48Address ns3::dot11s::PeerLink::m_peerAddress
private

◆ m_peerAssocId

uint16_t ns3::dot11s::PeerLink::m_peerAssocId
private

Assoc Id assigned to me by peer.

Definition at line 297 of file peer-link.h.

Referenced by ConfirmAccept(), and GetPeerAid().

◆ m_peerLinkId

uint16_t ns3::dot11s::PeerLink::m_peerLinkId
private

Peer ID of this link.

Definition at line 293 of file peer-link.h.

Referenced by Close(), ConfirmAccept(), ConfirmReject(), OpenAccept(), OpenReject(), Report(), SendPeerLinkClose(), and SendPeerLinkConfirm().

◆ m_peerMeshPointAddress

Mac48Address ns3::dot11s::PeerLink::m_peerMeshPointAddress
private

Mesh point address, equal to peer address in case of single interface mesh point.

Definition at line 289 of file peer-link.h.

Referenced by ConfirmAccept(), ConfirmReject(), OpenAccept(), OpenReject(), Report(), SendPeerLinkClose(), SendPeerLinkConfirm(), SendPeerLinkOpen(), SetPeerMeshPointAddress(), and StateMachine().

◆ m_retryCounter

uint16_t ns3::dot11s::PeerLink::m_retryCounter
private

Definition at line 328 of file peer-link.h.

Referenced by RetryTimeout(), and StateMachine().

◆ m_retryTimer

EventId ns3::dot11s::PeerLink::m_retryTimer
private

Definition at line 325 of file peer-link.h.

Referenced by ClearRetryTimer(), DoDispose(), and SetRetryTimer().

◆ m_state

PeerState ns3::dot11s::PeerLink::m_state
private

Current state.

Definition at line 307 of file peer-link.h.

Referenced by LinkIsEstab(), LinkIsIdle(), Report(), and StateMachine().

◆ PeerStateNames

const char *const ns3::dot11s::PeerLink::PeerStateNames = { "IDLE", "OPN_SNT", "CNF_RCVD", "OPN_RCVD", "ESTAB", "HOLDING" }
static

Literal names of Mesh Peer Management states for use in log messages.

Definition at line 69 of file peer-link.h.


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