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 Start (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 ()
 This method returns the TypeId associated to ns3::dot11s::AirtimeLinkMetricCalculator.

Private Attributes

uint16_t m_headerLength
 header length (used in overhead)
uint16_t m_meshHeaderLength
 meshHeader length (minimum 6 octets)
uint32_t m_overheadNanosec
 Overhead expressed in nanoseconds:DIFS + SIFS + 2 * PREAMBLE + ACK.
Ptr< Packetm_testFrame
WifiMacHeader m_testHeader
uint32_t m_testLength
 Bt value.

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
virtual void DoDispose (void)
virtual void DoStart (void)
virtual void NotifyNewAggregate (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)

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

Constructor & Destructor Documentation

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

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

Member Function Documentation

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

This method returns the TypeId associated to ns3::dot11s::AirtimeLinkMetricCalculator.

Attributes defined for this type:

  • TestLength: Rate should be estimated using test length.
  • Dot11MetricTid: TID used to calculate metric (data rate)
  • Dot11sMeshHeaderLength: Length of the mesh header

No TraceSources defined for this type.

Reimplemented from ns3::Object.

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

References m_meshHeaderLength, 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 62 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 70 of file airtime-metric.cc.

References m_testFrame.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Member Data Documentation

uint16_t ns3::dot11s::AirtimeLinkMetricCalculator::m_headerLength
private

header length (used in overhead)

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

uint16_t ns3::dot11s::AirtimeLinkMetricCalculator::m_meshHeaderLength
private

meshHeader length (minimum 6 octets)

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

Referenced by GetTypeId().

uint32_t ns3::dot11s::AirtimeLinkMetricCalculator::m_overheadNanosec
private

Overhead expressed in nanoseconds:DIFS + SIFS + 2 * PREAMBLE + ACK.

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

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

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

Referenced by CalculateMetric(), and SetTestLength().

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

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

Referenced by CalculateMetric(), and SetHeaderTid().

uint32_t ns3::dot11s::AirtimeLinkMetricCalculator::m_testLength
private

Bt value.

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


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