src/devices/wifi/aarf-wifi-manager.h
changeset 6065 0f012e7d9128
parent 4340 8a1b890c99cc
child 6339 84cbcc1a3f16
equal deleted inserted replaced
6064:ddec96840ebd 6065:0f012e7d9128
    30  * This class implements the AARF rate control algorithm which
    30  * This class implements the AARF rate control algorithm which
    31  * was initially described in <i>IEEE 802.11 Rate Adaptation:
    31  * was initially described in <i>IEEE 802.11 Rate Adaptation:
    32  * A Practical Approach</i>, by M. Lacage, M.H. Manshaei, and 
    32  * A Practical Approach</i>, by M. Lacage, M.H. Manshaei, and 
    33  * T. Turletti.
    33  * T. Turletti.
    34  */
    34  */
    35 class AarfWifiManager : public ArfWifiManager 
    35 class AarfWifiManager : public WifiRemoteStationManager 
    36 {
    36 {
    37 public:
    37 public:
    38   static TypeId GetTypeId (void);
    38   static TypeId GetTypeId (void);
    39   AarfWifiManager ();
    39   AarfWifiManager ();
    40   virtual ~AarfWifiManager ();
    40   virtual ~AarfWifiManager ();
    41 private:
    41 private:
    42   friend class AarfWifiRemoteStation;
    42   // overriden from base class
    43   virtual class WifiRemoteStation *CreateStation (void);
    43   virtual class WifiRemoteStation *DoCreateStation (void) const;
       
    44   virtual void DoReportRxOk (WifiRemoteStation *station, 
       
    45                              double rxSnr, WifiMode txMode);
       
    46   virtual void DoReportRtsFailed (WifiRemoteStation *station);
       
    47   virtual void DoReportDataFailed (WifiRemoteStation *station);
       
    48   virtual void DoReportRtsOk (WifiRemoteStation *station,
       
    49                               double ctsSnr, WifiMode ctsMode, double rtsSnr);
       
    50   virtual void DoReportDataOk (WifiRemoteStation *station,
       
    51                                double ackSnr, WifiMode ackMode, double dataSnr);
       
    52   virtual void DoReportFinalRtsFailed (WifiRemoteStation *station);
       
    53   virtual void DoReportFinalDataFailed (WifiRemoteStation *station);
       
    54   virtual WifiMode DoGetDataMode (WifiRemoteStation *station, uint32_t size);
       
    55   virtual WifiMode DoGetRtsMode (WifiRemoteStation *station);
       
    56   virtual bool IsLowLatency (void) const;
       
    57 
    44   uint32_t m_minTimerThreshold;
    58   uint32_t m_minTimerThreshold;
    45   uint32_t m_minSuccessThreshold;
    59   uint32_t m_minSuccessThreshold;
    46   double m_successK;
    60   double m_successK;
    47   uint32_t m_maxSuccessThreshold;
    61   uint32_t m_maxSuccessThreshold;
    48   double m_timerK;
    62   double m_timerK;
    49 };
    63 };
    50 
    64 
    51 class AarfWifiRemoteStation : public ArfWifiRemoteStation
       
    52 {
       
    53 public:
       
    54   AarfWifiRemoteStation (Ptr<AarfWifiManager> stations);
       
    55   virtual ~AarfWifiRemoteStation ();
       
    56 
       
    57 private:
       
    58   virtual void ReportRecoveryFailure (void);
       
    59   virtual void ReportFailure (void);
       
    60   virtual Ptr<WifiRemoteStationManager> GetManager (void) const;
       
    61 
       
    62   Ptr<AarfWifiManager> m_manager;
       
    63 };
       
    64 
       
    65 } // namespace ns3
    65 } // namespace ns3
    66 
    66 
    67 
    67 
    68 #endif /* AARF_WIFI_MANAGER_H */
    68 #endif /* AARF_WIFI_MANAGER_H */