ns3::IdealWifiManager Class Reference

Ideal rate control algorithm. More...

#include <ideal-wifi-manager.h>

Inheritance diagram for ns3::IdealWifiManager:
Inheritance graph
[legend]
Collaboration diagram for ns3::IdealWifiManager:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 IdealWifiManager ()
virtual ~IdealWifiManager ()
virtual void SetupPhy (Ptr< WifiPhy > phy)
double GetSnrThreshold (WifiMode mode) const
void AddModeSnrThreshold (WifiMode mode, double ber)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::IdealWifiManager.

Private Types

typedef std::vector< std::pair
< double, WifiMode > > 
Thresholds

Private Member Functions

virtual class WifiRemoteStationCreateStation (void)

Private Attributes

double m_ber
Thresholds m_thresholds
double m_minSnr
double m_maxSnr

Detailed Description

Ideal rate control algorithm.

This class implements an 'ideal' rate control algorithm similar to RBAR in spirit (see A rate-adaptive MAC protocol for multihop wireless networks by G. Holland, N. Vaidya, and P. Bahl.): every station keeps track of the snr of every packet received and sends back this snr to the original transmitter by an out-of-band mechanism. Each transmitter keeps track of the last snr sent back by a receiver and uses it to pick a transmission mode based on a set of snr thresholds built from a target ber and transmission mode-specific snr/ber curves.

Definition at line 44 of file ideal-wifi-manager.h.


Member Typedef Documentation

typedef std::vector<std::pair<double,WifiMode> > ns3::IdealWifiManager::Thresholds [private]

Definition at line 60 of file ideal-wifi-manager.h.


Constructor & Destructor Documentation

ns3::IdealWifiManager::IdealWifiManager (  ) 

Definition at line 40 of file ideal-wifi-manager.cc.

ns3::IdealWifiManager::~IdealWifiManager (  )  [virtual]

Definition at line 42 of file ideal-wifi-manager.cc.


Member Function Documentation

void ns3::IdealWifiManager::AddModeSnrThreshold ( WifiMode  mode,
double  ber 
)

Definition at line 79 of file ideal-wifi-manager.cc.

WifiRemoteStation * ns3::IdealWifiManager::CreateStation ( void   )  [private, virtual]

Implements ns3::WifiRemoteStationManager.

Definition at line 59 of file ideal-wifi-manager.cc.

double ns3::IdealWifiManager::GetSnrThreshold ( WifiMode  mode  )  const

Definition at line 65 of file ideal-wifi-manager.cc.

TypeId ns3::IdealWifiManager::GetTypeId ( void   )  [static]

This method returns the TypeId associated to ns3::IdealWifiManager.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3WifiNetDevice/RemoteStationManager/$ns3IdealWifiManager

Attributes defined for this type:

  • BerThreshold: The maximum Bit Error Rate acceptable at any transmission mode
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1e-05
    • Flags: construct write read

Attributes defined in parent class ns3::WifiRemoteStationManager:

  • IsLowLatency: If true, we attempt to modelize a so-called low-latency device: a device where decisions about tx parameters can be made on a per-packet basis and feedback about the transmission of each packet is obtained before sending the next. Otherwise, we modelize a high-latency device, that is a device where we cannot update our decision about tx parameters after every packet transmission.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write read
  • MaxSsrc: The maximum number of retransmission attempts for an RTS. This value will not have any effect on some rate control algorithms.
  • MaxSlrc: The maximum number of retransmission attempts for a DATA packet. This value will not have any effect on some rate control algorithms.
  • RtsCtsThreshold: If a data packet is bigger than this value, we use an RTS/CTS handshake before sending the data. This value will not have any effect on some rate control algorithms.
  • FragmentationThreshold: If a data packet is bigger than this value, we fragment it such that the size of the fragments are equal or smaller than this value. This value will not have any effect on some rate control algorithms.

No TraceSources defined for this type.

Reimplemented from ns3::WifiRemoteStationManager.

Definition at line 26 of file ideal-wifi-manager.cc.

References ns3::TypeId::AddAttribute(), m_ber, ns3::NS_OBJECT_ENSURE_REGISTERED(), and ns3::TypeId::SetParent().

void ns3::IdealWifiManager::SetupPhy ( Ptr< WifiPhy phy  )  [virtual]

Reimplemented from ns3::WifiRemoteStationManager.

Definition at line 46 of file ideal-wifi-manager.cc.


Member Data Documentation

double ns3::IdealWifiManager::m_ber [private]

Definition at line 62 of file ideal-wifi-manager.h.

Referenced by GetTypeId().

Definition at line 65 of file ideal-wifi-manager.h.

Definition at line 64 of file ideal-wifi-manager.h.


The documentation for this class was generated from the following files:
Generated on Thu Dec 3 14:11:03 2009 for NS-3 by  doxygen 1.6.3