Implementation of Minstrel Rate Control AlgorithmPorting Minstrel from Madwifi and Linux Kernel http://linuxwireless.org/en/developers/Documentation/mac80211/RateControl/minstrel. More...
#include <minstrel-wifi-manager.h>
Public Member Functions | |
MinstrelWifiManager () | |
virtual | ~MinstrelWifiManager () |
int64_t | AssignStreams (int64_t stream) |
virtual void | SetupPhy (Ptr< WifiPhy > phy) |
![]() | |
WifiRemoteStationManager () | |
virtual | ~WifiRemoteStationManager () |
void | AddBasicMcs (uint8_t mcs) |
void | AddBasicMode (WifiMode mode) |
void | AddStationHtCapabilities (Mac48Address from, HtCapabilities htcapabilities) |
void | AddSupportedMcs (Mac48Address address, uint8_t mcs) |
void | AddSupportedMode (Mac48Address address, WifiMode mode) |
WifiTxVector | DoGetCtsToSelfTxVector (void) |
WifiTxVector | GetAckTxVector (Mac48Address address, WifiMode dataMode) |
uint8_t | GetBasicMcs (uint32_t i) const |
WifiMode | GetBasicMode (uint32_t i) const |
WifiTxVector | GetBlockAckTxVector (Mac48Address address, WifiMode dataMode) |
WifiTxVector | GetCtsToSelfTxVector (const WifiMacHeader *header, Ptr< const Packet > packet) |
WifiTxVector | GetCtsTxVector (Mac48Address address, WifiMode rtsMode) |
WifiTxVector | GetDataTxVector (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fullPacketSize) |
uint8_t | GetDefaultMcs (void) const |
WifiMode | GetDefaultMode (void) const |
uint8_t | GetDefaultTxPowerLevel (void) const |
uint32_t | GetFragmentationThreshold (void) const |
uint32_t | GetFragmentOffset (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fragmentNumber) |
uint32_t | GetFragmentSize (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fragmentNumber) |
bool | GetGreenfieldSupported (Mac48Address address) const |
WifiRemoteStationInfo | GetInfo (Mac48Address address) |
uint32_t | GetMaxSlrc (void) const |
uint32_t | GetMaxSsrc (void) const |
uint32_t | GetNBasicMcs (void) const |
uint32_t | GetNBasicModes (void) const |
WifiMode | GetNonUnicastMode (void) const |
uint32_t | GetNumberOfTransmitAntennas (void) |
uint32_t | GetRtsCtsThreshold (void) const |
WifiTxVector | GetRtsTxVector (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | HasHtSupported (void) const |
bool | IsAssociated (Mac48Address address) const |
bool | IsBrandNew (Mac48Address address) const |
bool | IsLastFragment (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fragmentNumber) |
bool | IsWaitAssocTxOk (Mac48Address address) const |
bool | NeedCtsToSelf (WifiTxVector txVector) |
bool | NeedDataRetransmission (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | NeedFragmentation (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | NeedRts (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | NeedRtsRetransmission (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
void | PrepareForQueue (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fullPacketSize) |
void | RecordDisassociated (Mac48Address address) |
void | RecordGotAssocTxFailed (Mac48Address address) |
void | RecordGotAssocTxOk (Mac48Address address) |
void | RecordWaitAssocTxOk (Mac48Address address) |
void | ReportDataFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportDataOk (Mac48Address address, const WifiMacHeader *header, double ackSnr, WifiMode ackMode, double dataSnr) |
void | ReportFinalDataFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportFinalRtsFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportRtsFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportRtsOk (Mac48Address address, const WifiMacHeader *header, double ctsSnr, WifiMode ctsMode, double rtsSnr) |
void | ReportRxOk (Mac48Address address, const WifiMacHeader *header, double rxSnr, WifiMode txMode) |
void | Reset (void) |
void | Reset (Mac48Address address) |
void | SetDefaultTxPowerLevel (uint8_t txPower) |
void | SetFragmentationThreshold (uint32_t threshold) |
void | SetHtSupported (bool enable) |
void | SetMaxSlrc (uint32_t maxSlrc) |
void | SetMaxSsrc (uint32_t maxSsrc) |
void | SetRtsCtsThreshold (uint32_t threshold) |
![]() | |
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) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
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 (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static void | Cleanup (void) |
![]() | |
static TypeId | GetTypeId (void) |
Private Types | |
typedef std::vector< std::pair < Time, WifiMode > > | TxTime |
Private Member Functions | |
void | AddCalcTxTime (WifiMode mode, Time t) |
void | CheckInit (MinstrelWifiRemoteStation *station) |
check for initializations More... | |
virtual WifiRemoteStation * | DoCreateStation (void) const |
virtual WifiTxVector | DoGetDataTxVector (WifiRemoteStation *station, uint32_t size) |
virtual WifiTxVector | DoGetRtsTxVector (WifiRemoteStation *station) |
virtual void | DoReportDataFailed (WifiRemoteStation *station) |
virtual void | DoReportDataOk (WifiRemoteStation *station, double ackSnr, WifiMode ackMode, double dataSnr) |
virtual void | DoReportFinalDataFailed (WifiRemoteStation *station) |
virtual void | DoReportFinalRtsFailed (WifiRemoteStation *station) |
virtual void | DoReportRtsFailed (WifiRemoteStation *station) |
virtual void | DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr) |
virtual void | DoReportRxOk (WifiRemoteStation *station, double rxSnr, WifiMode txMode) |
uint32_t | FindRate (MinstrelWifiRemoteStation *station) |
find a rate to use from Minstrel Table More... | |
Time | GetCalcTxTime (WifiMode mode) const |
for estimating the TxTime of a packet with a given mode More... | |
uint32_t | GetNextSample (MinstrelWifiRemoteStation *station) |
getting the next sample from Sample Table More... | |
void | InitSampleTable (MinstrelWifiRemoteStation *station) |
initialize Sample Table More... | |
virtual bool | IsLowLatency (void) const |
void | PrintSampleTable (MinstrelWifiRemoteStation *station) |
printing Sample Table More... | |
void | PrintTable (MinstrelWifiRemoteStation *station) |
printing Minstrel Table More... | |
void | RateInit (MinstrelWifiRemoteStation *station) |
initialize Minstrel Table More... | |
void | UpdateRetry (MinstrelWifiRemoteStation *station) |
update the number of retries and reset accordingly More... | |
void | UpdateStats (MinstrelWifiRemoteStation *station) |
updating the Minstrel Table every 1/10 seconds More... | |
Private Attributes | |
TxTime | m_calcTxTime |
to hold all the calculated TxTime for all modes More... | |
double | m_ewmaLevel |
exponential weighted moving average More... | |
double | m_lookAroundRate |
the % to try other rates than our current rate More... | |
MinstrelRate | m_minstrelTable |
minstrel table More... | |
uint32_t | m_nsupported |
modes supported More... | |
uint32_t | m_pktLen |
packet length used for calculate mode TxTime More... | |
uint32_t | m_sampleCol |
number of sample columns More... | |
SampleRate | m_sampleTable |
sample table More... | |
Ptr< UniformRandomVariable > | m_uniformRandomVariable |
Provides uniform random variables. More... | |
Time | m_updateStats |
how frequent do we calculate the stats(1/10 seconds) More... | |
Additional Inherited Members | |
![]() | |
virtual void | DoDispose (void) |
bool | GetGreenfield (const WifiRemoteStation *station) const |
uint32_t | GetLongRetryCount (const WifiRemoteStation *station) const |
uint8_t | GetMcsSupported (const WifiRemoteStation *station, uint32_t i) const |
uint32_t | GetNMcsSupported (const WifiRemoteStation *station) const |
uint32_t | GetNSupported (const WifiRemoteStation *station) const |
uint32_t | GetNumberOfReceiveAntennas (const WifiRemoteStation *station) const |
uint32_t | GetNumberOfTransmitAntennas (const WifiRemoteStation *station) const |
bool | GetShortGuardInterval (const WifiRemoteStation *station) const |
uint32_t | GetShortRetryCount (const WifiRemoteStation *station) const |
bool | GetStbc (const WifiRemoteStation *station) const |
WifiMode | GetSupported (const WifiRemoteStation *station, uint32_t i) const |
![]() | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
Implementation of Minstrel Rate Control Algorithm
Porting Minstrel from Madwifi and Linux Kernel http://linuxwireless.org/en/developers/Documentation/mac80211/RateControl/minstrel.
ns3::MinstrelWifiManager is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 87 of file minstrel-wifi-manager.h.
|
private |
Definition at line 155 of file minstrel-wifi-manager.h.
ns3::MinstrelWifiManager::MinstrelWifiManager | ( | ) |
Definition at line 118 of file minstrel-wifi-manager.cc.
References m_nsupported, and m_uniformRandomVariable.
|
virtual |
Definition at line 125 of file minstrel-wifi-manager.cc.
Definition at line 167 of file minstrel-wifi-manager.cc.
References m_calcTxTime.
Referenced by SetupPhy().
int64_t ns3::MinstrelWifiManager::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.
stream | first stream index to use |
Definition at line 144 of file minstrel-wifi-manager.cc.
References m_uniformRandomVariable, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
|
private |
check for initializations
Definition at line 200 of file minstrel-wifi-manager.cc.
References ns3::WifiRemoteStationManager::GetNSupported(), InitSampleTable(), ns3::MinstrelWifiRemoteStation::m_initialized, m_minstrelTable, m_nsupported, m_sampleCol, m_sampleTable, and RateInit().
Referenced by DoGetDataTxVector(), DoReportDataFailed(), and DoReportDataOk().
|
privatevirtual |
Implements ns3::WifiRemoteStationManager.
Definition at line 173 of file minstrel-wifi-manager.cc.
References ns3::MinstrelWifiRemoteStation::m_col, ns3::MinstrelWifiRemoteStation::m_currentRate, ns3::MinstrelWifiRemoteStation::m_err, ns3::MinstrelWifiRemoteStation::m_index, ns3::MinstrelWifiRemoteStation::m_initialized, ns3::MinstrelWifiRemoteStation::m_isSampling, ns3::MinstrelWifiRemoteStation::m_longRetry, ns3::MinstrelWifiRemoteStation::m_maxProbRate, ns3::MinstrelWifiRemoteStation::m_maxTpRate, ns3::MinstrelWifiRemoteStation::m_maxTpRate2, ns3::MinstrelWifiRemoteStation::m_nextStatsUpdate, ns3::MinstrelWifiRemoteStation::m_packetCount, ns3::MinstrelWifiRemoteStation::m_retry, ns3::MinstrelWifiRemoteStation::m_sampleCount, ns3::MinstrelWifiRemoteStation::m_sampleRate, ns3::MinstrelWifiRemoteStation::m_sampleRateSlower, ns3::MinstrelWifiRemoteStation::m_shortRetry, ns3::MinstrelWifiRemoteStation::m_txrate, m_updateStats, and ns3::Simulator::Now().
|
privatevirtual |
station | the station with which we need to communicate |
size | size of the packet or fragment we want to send |
Note: This method is called before sending a unicast packet or a fragment of a unicast packet to decide which transmission mode to use.
start the rate at half way
Implements ns3::WifiRemoteStationManager.
Definition at line 438 of file minstrel-wifi-manager.cc.
References CheckInit(), ns3::WifiRemoteStationManager::GetDefaultTxPowerLevel(), ns3::WifiRemoteStationManager::GetLongRetryCount(), ns3::WifiRemoteStationManager::GetNumberOfReceiveAntennas(), ns3::WifiRemoteStationManager::GetNumberOfTransmitAntennas(), ns3::WifiRemoteStationManager::GetShortGuardInterval(), ns3::WifiRemoteStationManager::GetStbc(), ns3::WifiRemoteStationManager::GetSupported(), ns3::MinstrelWifiRemoteStation::m_initialized, m_nsupported, ns3::MinstrelWifiRemoteStation::m_txrate, ns3::Min(), and UpdateStats().
|
privatevirtual |
station | the station with which we need to communicate |
Note: This method is called before sending an rts to a station to decide which transmission mode to use for the rts.
Implements ns3::WifiRemoteStationManager.
Definition at line 454 of file minstrel-wifi-manager.cc.
References ns3::WifiRemoteStationManager::GetDefaultTxPowerLevel(), ns3::WifiRemoteStationManager::GetNumberOfReceiveAntennas(), ns3::WifiRemoteStationManager::GetNumberOfTransmitAntennas(), ns3::WifiRemoteStationManager::GetShortGuardInterval(), ns3::WifiRemoteStationManager::GetShortRetryCount(), ns3::WifiRemoteStationManager::GetStbc(), ns3::WifiRemoteStationManager::GetSupported(), ns3::MinstrelWifiRemoteStation::m_txrate, ns3::Min(), and NS_LOG_DEBUG.
|
privatevirtual |
Retry Chain table is implemented here
Try | LOOKAROUND RATE | NORMAL RATE
1 | Best throughput | Random rate | Best throughput 2 | Random rate | Best throughput | Next best throughput 3 | Best probability | Best probability | Best probability 4 | Lowest Baserate | Lowest baserate | Lowest baserate
Note: For clarity, multiple blocks of if's and else's are used After a failing 7 times, DoReportFinalDataFailed will be called
for normal rate, we're not currently sampling random rates
use best throughput rate
< there's still a few retries left
use second best throughput rate
use best probability rate
use lowest base rate
for look-around rate, we're currently sampling random rates
current sampling rate is slower than the current best rate
use best throughput rate
< there are a few retries left
use random rate
use max probability rate
use lowest base rate
current sampling rate is better than current best rate
use random rate
< keep using it
use the best rate
use the best probability rate
use the lowest base rate
Implements ns3::WifiRemoteStationManager.
Definition at line 247 of file minstrel-wifi-manager.cc.
References CheckInit(), ns3::MinstrelWifiRemoteStation::m_initialized, ns3::MinstrelWifiRemoteStation::m_isSampling, ns3::MinstrelWifiRemoteStation::m_longRetry, ns3::MinstrelWifiRemoteStation::m_maxProbRate, ns3::MinstrelWifiRemoteStation::m_maxTpRate, ns3::MinstrelWifiRemoteStation::m_maxTpRate2, m_minstrelTable, ns3::MinstrelWifiRemoteStation::m_sampleRate, ns3::MinstrelWifiRemoteStation::m_sampleRateSlower, ns3::MinstrelWifiRemoteStation::m_txrate, and NS_LOG_DEBUG.
|
privatevirtual |
Implements ns3::WifiRemoteStationManager.
Definition at line 381 of file minstrel-wifi-manager.cc.
References CheckInit(), FindRate(), ns3::MinstrelWifiRemoteStation::m_initialized, ns3::MinstrelWifiRemoteStation::m_isSampling, m_minstrelTable, m_nsupported, ns3::MinstrelWifiRemoteStation::m_packetCount, ns3::MinstrelWifiRemoteStation::m_retry, ns3::MinstrelWifiRemoteStation::m_sampleRateSlower, ns3::MinstrelWifiRemoteStation::m_txrate, and UpdateRetry().
|
privatevirtual |
Implements ns3::WifiRemoteStationManager.
Definition at line 410 of file minstrel-wifi-manager.cc.
References FindRate(), ns3::MinstrelWifiRemoteStation::m_err, ns3::MinstrelWifiRemoteStation::m_isSampling, m_minstrelTable, m_nsupported, ns3::MinstrelWifiRemoteStation::m_retry, ns3::MinstrelWifiRemoteStation::m_sampleRateSlower, ns3::MinstrelWifiRemoteStation::m_txrate, NS_LOG_DEBUG, and UpdateRetry().
|
privatevirtual |
Implements ns3::WifiRemoteStationManager.
Definition at line 239 of file minstrel-wifi-manager.cc.
References ns3::MinstrelWifiRemoteStation::m_err, and UpdateRetry().
|
privatevirtual |
Implements ns3::WifiRemoteStationManager.
Definition at line 224 of file minstrel-wifi-manager.cc.
References ns3::MinstrelWifiRemoteStation::m_shortRetry, ns3::MinstrelWifiRemoteStation::m_txrate, and NS_LOG_DEBUG.
|
privatevirtual |
Implements ns3::WifiRemoteStationManager.
Definition at line 233 of file minstrel-wifi-manager.cc.
References NS_LOG_DEBUG.
|
privatevirtual |
Implements ns3::WifiRemoteStationManager.
Definition at line 217 of file minstrel-wifi-manager.cc.
References NS_LOG_DEBUG.
|
private |
find a rate to use from Minstrel Table
for determining when to try a sample rate
if we are below the target of look around rate percentage, look around note: do it randomly by flipping a coin instead sampling all at once until it reaches the look around rate
now go through the table and find an index rate
This if condition is used to make sure that we don't need to use the sample rate it is the same as our current rate
start sample count
set flag that we are currently sampling
bookeeping for resetting stuff
error check
set the rate that we're currently sampling
is this rate slower than the current best rate
using the best rate instead
continue using the best rate
Definition at line 488 of file minstrel-wifi-manager.cc.
References ns3::UniformRandomVariable::GetInteger(), GetNextSample(), ns3::MinstrelWifiRemoteStation::m_isSampling, m_lookAroundRate, ns3::MinstrelWifiRemoteStation::m_maxTpRate, ns3::MinstrelWifiRemoteStation::m_maxTpRate2, m_minstrelTable, m_nsupported, ns3::MinstrelWifiRemoteStation::m_packetCount, ns3::MinstrelWifiRemoteStation::m_sampleCount, ns3::MinstrelWifiRemoteStation::m_sampleRate, ns3::MinstrelWifiRemoteStation::m_sampleRateSlower, ns3::MinstrelWifiRemoteStation::m_txrate, m_uniformRandomVariable, and NS_LOG_DEBUG.
Referenced by DoReportDataOk(), and DoReportFinalDataFailed().
for estimating the TxTime of a packet with a given mode
Definition at line 152 of file minstrel-wifi-manager.cc.
References m_calcTxTime, and NS_ASSERT.
Referenced by RateInit().
|
private |
getting the next sample from Sample Table
bookeeping for m_index and m_col variables
Definition at line 468 of file minstrel-wifi-manager.cc.
References ns3::MinstrelWifiRemoteStation::m_col, ns3::MinstrelWifiRemoteStation::m_index, m_nsupported, m_sampleCol, and m_sampleTable.
Referenced by FindRate().
|
static |
Definition at line 84 of file minstrel-wifi-manager.cc.
References m_ewmaLevel, m_lookAroundRate, m_pktLen, m_sampleCol, m_updateStats, ns3::MakeTimeChecker(), and ns3::TypeId::SetParent().
|
private |
initialize Sample Table
for off-seting to make rates fall between 0 and numrates
The next two lines basically tries to generate a random number between 0 and the number of available rates
this loop is used for filling in other uninitilized places
Definition at line 738 of file minstrel-wifi-manager.cc.
References ns3::UniformRandomVariable::GetInteger(), ns3::MinstrelWifiRemoteStation::m_col, ns3::MinstrelWifiRemoteStation::m_index, m_nsupported, m_sampleCol, m_sampleTable, m_uniformRandomVariable, and NS_LOG_DEBUG.
Referenced by CheckInit().
|
privatevirtual |
Note: In this context, low vs high latency is defined in IEEE 802.11 Rate Adaptation: A Practical Approach, by M. Lacage, M.H. Manshaei, and T. Turletti.
Implements ns3::WifiRemoteStationManager.
Definition at line 463 of file minstrel-wifi-manager.cc.
|
private |
printing Sample Table
Definition at line 772 of file minstrel-wifi-manager.cc.
References m_nsupported, m_sampleCol, m_sampleTable, and NS_LOG_DEBUG.
|
private |
printing Minstrel Table
Definition at line 788 of file minstrel-wifi-manager.cc.
References m_minstrelTable, m_nsupported, and NS_LOG_DEBUG.
|
private |
initialize Minstrel Table
Definition at line 716 of file minstrel-wifi-manager.cc.
References GetCalcTxTime(), ns3::WifiRemoteStationManager::GetSupported(), m_minstrelTable, m_nsupported, and NS_LOG_DEBUG.
Referenced by CheckInit(), and UpdateStats().
Reimplemented from ns3::WifiRemoteStationManager.
Definition at line 130 of file minstrel-wifi-manager.cc.
References AddCalcTxTime(), ns3::WifiPhy::CalculateTxDuration(), ns3::WifiPhy::GetMode(), ns3::WifiPhy::GetNModes(), m_pktLen, ns3::WifiTxVector::SetMode(), ns3::WifiRemoteStationManager::SetupPhy(), and ns3::WIFI_PREAMBLE_LONG.
|
private |
update the number of retries and reset accordingly
Definition at line 430 of file minstrel-wifi-manager.cc.
References ns3::MinstrelWifiRemoteStation::m_longRetry, ns3::MinstrelWifiRemoteStation::m_retry, and ns3::MinstrelWifiRemoteStation::m_shortRetry.
Referenced by DoReportDataOk(), DoReportFinalDataFailed(), and DoReportFinalRtsFailed().
|
private |
updating the Minstrel Table every 1/10 seconds
calculate the perfect tx time for this rate
just for initialization
if we've attempted something
calculate the probability of success assume probability scales from 0 to 18000
bookeeping
ewma probability (cast for gcc 3.4 compatibility)
calculating throughput
bookeeping
Sample less often below 10% and above 95% of success
retry count denotes the number of retries permitted for each rate
if it's 0 allow one retry limit
go find max throughput, second maximum throughput, high probability succ
find the second highest max
reset it
Definition at line 576 of file minstrel-wifi-manager.cc.
References ns3::Time::GetMicroSeconds(), ns3::MinstrelWifiRemoteStation::m_currentRate, m_ewmaLevel, ns3::MinstrelWifiRemoteStation::m_initialized, ns3::MinstrelWifiRemoteStation::m_maxProbRate, ns3::MinstrelWifiRemoteStation::m_maxTpRate, ns3::MinstrelWifiRemoteStation::m_maxTpRate2, m_minstrelTable, ns3::MinstrelWifiRemoteStation::m_nextStatsUpdate, m_nsupported, ns3::MinstrelWifiRemoteStation::m_txrate, m_updateStats, ns3::Simulator::Now(), NS_LOG_DEBUG, RateInit(), and throughput.
Referenced by DoGetDataTxVector().
|
private |
to hold all the calculated TxTime for all modes
Definition at line 160 of file minstrel-wifi-manager.h.
Referenced by AddCalcTxTime(), and GetCalcTxTime().
|
private |
exponential weighted moving average
Definition at line 163 of file minstrel-wifi-manager.h.
Referenced by GetTypeId(), and UpdateStats().
|
private |
the % to try other rates than our current rate
Definition at line 162 of file minstrel-wifi-manager.h.
Referenced by FindRate(), and GetTypeId().
|
private |
minstrel table
Definition at line 156 of file minstrel-wifi-manager.h.
Referenced by CheckInit(), DoReportDataFailed(), DoReportDataOk(), DoReportFinalDataFailed(), FindRate(), PrintTable(), RateInit(), and UpdateStats().
|
private |
modes supported
Definition at line 166 of file minstrel-wifi-manager.h.
Referenced by CheckInit(), DoGetDataTxVector(), DoReportDataOk(), DoReportFinalDataFailed(), FindRate(), GetNextSample(), InitSampleTable(), MinstrelWifiManager(), PrintSampleTable(), PrintTable(), RateInit(), and UpdateStats().
|
private |
packet length used for calculate mode TxTime
Definition at line 165 of file minstrel-wifi-manager.h.
Referenced by GetTypeId(), and SetupPhy().
|
private |
number of sample columns
Definition at line 164 of file minstrel-wifi-manager.h.
Referenced by CheckInit(), GetNextSample(), GetTypeId(), InitSampleTable(), and PrintSampleTable().
|
private |
sample table
Definition at line 157 of file minstrel-wifi-manager.h.
Referenced by CheckInit(), GetNextSample(), InitSampleTable(), and PrintSampleTable().
|
private |
Provides uniform random variables.
Definition at line 169 of file minstrel-wifi-manager.h.
Referenced by AssignStreams(), FindRate(), InitSampleTable(), and MinstrelWifiManager().
|
private |
how frequent do we calculate the stats(1/10 seconds)
Definition at line 161 of file minstrel-wifi-manager.h.
Referenced by DoCreateStation(), GetTypeId(), and UpdateStats().