12#include "IEEE802_11_Phy.h"
22 double dRxSensitivity;
23 PHY_MODULATION nModulation;
71 UINT numSampleSkipped;
76 UINT64 totalNumAttempt;
77 UINT64 totalNumSuccess;
80}HeRateInfo,*Ptr_HeRateInfo;
94 Ptr_HeRateInfo rateTable;
95}HE_GroupInfo,*Ptr_HE_GroupInfo;
98 NETSIM_ID remoteStationId;
100 NETSIM_ID stationInterface;
119 double nextStatsUpdate;
130 UINT64 totalPacketCount;
131 UINT64 samplePacketCount;
132 PIEEE802_11_PHY_VAR phy;
133}MinstrelHePerRemoteStation,*Ptr_MinstrelHePerRemoteStation;
138 NETSIM_ID interfaceId;
139 Ptr_MinstrelHePerRemoteStation *minstrelHeInfo;
140}MinstrelHeWifiStation,*Ptr_MinstrelHeWifiStation;
142double he_updateStatsTime;
143double he_lookAroundRate;
148void He_InitMinstrel(NETSIM_ID nDevId,NETSIM_ID nifid);
149static void He_CheckInit(Ptr_MinstrelHePerRemoteStation station,NETSIM_ID devid,NETSIM_ID ifid);
150static void He_InitSampleTable(Ptr_MinstrelHePerRemoteStation station);
151static void He_InitGroupTable(Ptr_MinstrelHePerRemoteStation station);
152static void He_UpdatePacketCounter(Ptr_MinstrelHePerRemoteStation station,UINT success,UINT failed);
153static void He_UpdateRetry(Ptr_MinstrelHePerRemoteStation station);
154static void He_UpdateStats(Ptr_MinstrelHePerRemoteStation station);
155static void He_UpdateRate(Ptr_MinstrelHePerRemoteStation station);
156static UINT He_FindRate(Ptr_MinstrelHePerRemoteStation station);
157static void He_SetStationThRate(Ptr_MinstrelHePerRemoteStation station);
158static void He_SetStationProbRate(Ptr_MinstrelHePerRemoteStation station);
159static UINT He_GetNextSample(Ptr_MinstrelHePerRemoteStation station);
160static void He_SetNextSample(Ptr_MinstrelHePerRemoteStation station);
161static double He_CalculateEwmsd(
double oldEwmsd,
double currentProb,
double ewmaProb,
double ewmaWeight);
162static double He_CalculateThroughput(Ptr_MinstrelHePerRemoteStation station,UINT grpId, UINT rateId);
163static void He_CalculateRetransmits(Ptr_MinstrelHePerRemoteStation station,UINT index);
164static UINT He_CountRetries(Ptr_MinstrelHePerRemoteStation station);
165static UINT He_GetLowestIndex(Ptr_MinstrelHePerRemoteStation station);
166static UINT He_GetHighestIndex(Ptr_MinstrelHePerRemoteStation station);
Data structure for physical layer parameters.
Ptr_HE_GroupInfo groupTable
Table of groups with stats.
UINT sampleSlow
Number of times a slow rate was sampled.
UINT sampleWait
How many transmission attempts to wait until a new sample.
double ampduLen
Number of MPDUs tried since last update.
double avgAmpduLen
Average number of MPDUs in an A-MPDU.
UINT sampleGroup
The group that the sample rate belongs to.
UINT ampduPacketCount
Number of A-MPDUs transmitted since last update.
UINT sampleTries
Number of sample tries after waiting sampleWait.
UINT sampleCount
Max number of samples per update interval.
UINT retryCount
Retry limit.
BOOL retryUpdated
If number of retries was updated already.
BOOL supported
If the rate is supported.
UINT adjustedRetryCount
Adjust the retry limit for this rate.
double throughput
Throughput of this rate (in pkts per second).
double prob
Current probability within last time interval. (# frame success )/(# total frames)
double ewmsdProb
Exponential weighted moving standard deviation of probability.