A Discrete-Event Network Simulator
API
parf-wifi-manager.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2014 Universidad de la República - Uruguay
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Matias Richart <mrichart@fing.edu.uy>
19  */
20 
21 #ifndef PARF_WIFI_MANAGER_H
22 #define PARF_WIFI_MANAGER_H
23 
25 
26 namespace ns3 {
27 
28 struct ParfWifiRemoteStation;
44 {
45 public:
50  static TypeId GetTypeId (void);
51  ParfWifiManager ();
52  virtual ~ParfWifiManager ();
53 
54  // Inherited from WifiRemoteStationManager
55  virtual void SetupPhy (Ptr<WifiPhy> phy);
56  virtual void SetHtSupported (bool enable);
57  virtual void SetVhtSupported (bool enable);
58 
59 
60 private:
61  //overriden from base class
62  virtual WifiRemoteStation * DoCreateStation (void) const;
63  virtual void DoReportRxOk (WifiRemoteStation *station,
64  double rxSnr, WifiMode txMode);
65  virtual void DoReportRtsFailed (WifiRemoteStation *station);
66  virtual void DoReportDataFailed (WifiRemoteStation *station);
67  virtual void DoReportRtsOk (WifiRemoteStation *station,
68  double ctsSnr, WifiMode ctsMode, double rtsSnr);
69  virtual void DoReportDataOk (WifiRemoteStation *station,
70  double ackSnr, WifiMode ackMode, double dataSnr);
71  virtual void DoReportFinalRtsFailed (WifiRemoteStation *station);
72  virtual void DoReportFinalDataFailed (WifiRemoteStation *station);
75  virtual bool IsLowLatency (void) const;
76 
81  void CheckInit (ParfWifiRemoteStation *station);
82 
83  uint32_t m_attemptThreshold;
84  uint32_t m_successThreshold;
85 
91  uint32_t m_minPower;
92 
96  uint32_t m_maxPower;
97 
106 
107 };
108 
109 } //namespace ns3
110 
111 #endif /* PARF_WIFI_MANAGER_H */
Hold per-remote-station state for PARF Wifi manager.
virtual void SetupPhy(Ptr< WifiPhy > phy)
Set up PHY associated with this device since it is the object that knows the full set of transmit rat...
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
uint32_t m_maxPower
Maximal power level.
Forward calls to a chain of Callback.
void CheckInit(ParfWifiRemoteStation *station)
Check for initializations.
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
Definition: wifi-mode.h:99
virtual void DoReportDataFailed(WifiRemoteStation *station)
virtual void DoReportDataOk(WifiRemoteStation *station, double ackSnr, WifiMode ackMode, double dataSnr)
This method is a pure virtual method that must be implemented by the sub-class.
virtual void SetVhtSupported(bool enable)
Enable or disable VHT capability support.
virtual void DoReportRtsOk(WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr)
This method is a pure virtual method that must be implemented by the sub-class.
virtual void DoReportRxOk(WifiRemoteStation *station, double rxSnr, WifiMode txMode)
This method is a pure virtual method that must be implemented by the sub-class.
tuple phy
Definition: third.py:86
virtual void SetHtSupported(bool enable)
Enable or disable HT capability support.
uint32_t m_successThreshold
The minimum number of successful transmissions to try a new power or rate.
virtual WifiRemoteStation * DoCreateStation(void) const
virtual void DoReportRtsFailed(WifiRemoteStation *station)
This method is a pure virtual method that must be implemented by the sub-class.
virtual void DoReportFinalDataFailed(WifiRemoteStation *station)
This method is a pure virtual method that must be implemented by the sub-class.
hold a list of per-remote-station state.
uint32_t m_minPower
Minimal power level.
TracedCallback< uint8_t, Mac48Address > m_powerChange
The trace source fired when the transmission power changes....
Every class exported by the ns3 library is enclosed in the ns3 namespace.
PARF Rate control algorithm.
TracedCallback< uint32_t, Mac48Address > m_rateChange
The trace source fired when the transmission rate changes.
static TypeId GetTypeId(void)
Register this type.
virtual bool IsLowLatency(void) const
virtual WifiTxVector DoGetRtsTxVector(WifiRemoteStation *station)
virtual WifiTxVector DoGetDataTxVector(WifiRemoteStation *station)
virtual void DoReportFinalRtsFailed(WifiRemoteStation *station)
This method is a pure virtual method that must be implemented by the sub-class.
a unique identifier for an interface.
Definition: type-id.h:58
hold per-remote-station state.
uint32_t m_attemptThreshold
The minimum number of transmission attempts to try a new power or rate.