src/devices/wifi/rraa-mac-stations.h
changeset 2545 7a38029a2e5b
parent 2544 2e6e1a6e0d94
child 2546 3fc951966b1b
--- a/src/devices/wifi/rraa-mac-stations.h	Mon Mar 03 04:03:39 2008 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2005,2006 INRIA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as 
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Federico Maguolo <maguolof@dei.unipd.it>
- */
-#ifndef RRAA_MAC_STATIONS_H
-#define RRAA_MAC_STATIONS_H
-
-#include "ns3/nstime.h"
-#include "mac-stations.h"
-
-namespace ns3 {
-
-struct ThresholdsItem {
-  uint32_t datarate;
-  double pori;
-  double pmtl;
-  uint32_t ewnd;
-};
-
-typedef std::vector<ThresholdsItem> Thresholds;
-
-/**
- * \brief Robust Rate Adaptation Algorithm
- *
- * This is an implementation of RRAA as described in
- * "Robust rate adaptation for 802.11 wireless networks"
- * by "Starsky H. Y. Wong", "Hao Yang", "Songwu Lu", and,
- * "Vaduvur Bharghavan" published in Mobicom 06.
- */
-class RraaMacStations : public MacStations {
-public:
-  RraaMacStations (WifiMode defaultTxMode);
-  virtual ~RraaMacStations ();
-  void DoConstruct ();
-  bool OnlyBasic (void);
-  double GetTimeout (void);
-  ThresholdsItem GetThresholds (WifiMode mode);
-private:
-  virtual class MacStation *CreateStation (void);  
-  Thresholds m_thresholds;
-  bool m_basic;
-  double m_timeout;
-};
-
-
-class RraaMacStation : public MacStation
-{
-public:
-  RraaMacStation (RraaMacStations *stations, Thresholds thresholds);
-  virtual ~RraaMacStation ();
-
-  virtual void ReportRxOk (double rxSnr, WifiMode txMode);
-  virtual void ReportRtsFailed (void);
-  virtual void ReportDataFailed (void);
-  virtual void ReportRtsOk (double ctsSnr, WifiMode ctsMode, double rtsSnr);
-  virtual void ReportDataOk (double ackSnr, WifiMode ackMode, double dataSnr);
-  virtual void ReportFinalRtsFailed (void);
-  virtual void ReportFinalDataFailed (void);
-  virtual bool NeedRts (Ptr<const Packet> packet);
-
-private:
-  virtual RraaMacStations *GetStations (void) const;
-  virtual WifiMode DoGetDataMode (uint32_t size);
-  virtual WifiMode DoGetRtsMode (void);
-  uint32_t GetMaxRate (void);
-  uint32_t GetMinRate (void);
-  ThresholdsItem GetThresholds (uint32_t rate);
-  void CheckTimeout (void);
-  void RunBasicAlgorithm (void);
-  void ARts (void);
-  void ResetCountersBasic (void);
-
-  uint32_t m_counter;
-  uint32_t m_failed;
-  uint32_t m_rtsWnd;
-  uint32_t m_rtsCounter;
-  Time m_lastReset;
-  bool m_rtsOn;
-  bool m_lastFrameFail;
-  bool m_initialized;
-
-  uint32_t m_rate;
-
-  RraaMacStations *m_stations;
-};
-
-} // namespace ns3
-
-#endif /* RRAA_MAC_STATIONS_H */