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

Airtime link metric calculator. More...

#include <airtime-metric.h>

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

Public Member Functions

 AirtimeLinkMetricCalculator ()
 
uint32_t CalculateMetric (Mac48Address peerAddress, Ptr< MeshWifiInterfaceMac > mac)
 
void SetHeaderTid (uint8_t tid)
 
void SetTestLength (uint16_t testLength)
 
- Public Member Functions inherited from ns3::Object
 Object ()
 
virtual ~Object ()
 
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 
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)
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 
 SimpleRefCount (const SimpleRefCount &o)
 
uint32_t GetReferenceCount (void) const
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 
void Ref (void) const
 
void Unref (void) const
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 
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)
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 

Private Attributes

Ptr< Packetm_testFrame
 
WifiMacHeader m_testHeader
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoDispose (void)
 
virtual void DoInitialize (void)
 
virtual void NotifyNewAggregate (void)
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 

Detailed Description

Airtime link metric calculator.

Airtime link metric is defined in 11B.10 of 802.11s Draft D3.0 as:

airtime = (O + Bt/r)* (1 + average retry counter), where:

  • o – the PHY dependent channel access which includes frame headers, training sequences, access protocol frames, etc.
  • bt – the test packet length in bits (8192 by default),
  • r – the current bitrate of the packet,

Final result is expressed in units of 0.01 Time Unit = 10.24 us (as required by 802.11s draft)

Doxygen introspection did not find any typical Config paths.

Attributes

  • TestLength: Rate should be estimated using test length.
  • Dot11MetricTid: TID used to calculate metric (data rate)

No TraceSources are defined for this type.

Definition at line 41 of file airtime-metric.h.

Constructor & Destructor Documentation

ns3::dot11s::AirtimeLinkMetricCalculator::AirtimeLinkMetricCalculator ( )

Definition at line 52 of file airtime-metric.cc.

Member Function Documentation

uint32_t ns3::dot11s::AirtimeLinkMetricCalculator::CalculateMetric ( Mac48Address  peerAddress,
Ptr< MeshWifiInterfaceMac mac 
)

Definition at line 69 of file airtime-metric.cc.

References ns3::Packet::GetSize(), ns3::Mac48Address::IsGroup(), m_testFrame, m_testHeader, NS_ASSERT, ns3::WifiTxVector::SetMode(), and ns3::WIFI_PREAMBLE_LONG.

Referenced by ns3::dot11s::HwmpProtocol::Install().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 30 of file airtime-metric.cc.

References SetHeaderTid(), ns3::TypeId::SetParent(), and SetTestLength().

+ Here is the call graph for this function:

void ns3::dot11s::AirtimeLinkMetricCalculator::SetHeaderTid ( uint8_t  tid)

Definition at line 56 of file airtime-metric.cc.

References m_testHeader, ns3::WifiMacHeader::SetDsFrom(), ns3::WifiMacHeader::SetDsTo(), ns3::WifiMacHeader::SetQosTid(), and ns3::WifiMacHeader::SetTypeData().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dot11s::AirtimeLinkMetricCalculator::SetTestLength ( uint16_t  testLength)

Definition at line 64 of file airtime-metric.cc.

References m_testFrame.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Member Data Documentation

Ptr<Packet> ns3::dot11s::AirtimeLinkMetricCalculator::m_testFrame
private

Definition at line 50 of file airtime-metric.h.

Referenced by CalculateMetric(), and SetTestLength().

WifiMacHeader ns3::dot11s::AirtimeLinkMetricCalculator::m_testHeader
private

Definition at line 51 of file airtime-metric.h.

Referenced by CalculateMetric(), and SetHeaderTid().


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