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  void SetupPhy (const Ptr<WifiPhy> phy);
56  void SetHtSupported (bool enable);
57  void SetVhtSupported (bool enable);
58  void SetHeSupported (bool enable);
59 
60 
61 private:
62  //overriden from base class
63  WifiRemoteStation * DoCreateStation (void) const;
64  void DoReportRxOk (WifiRemoteStation *station,
65  double rxSnr, WifiMode txMode);
66  void DoReportRtsFailed (WifiRemoteStation *station);
67  void DoReportDataFailed (WifiRemoteStation *station);
68  void DoReportRtsOk (WifiRemoteStation *station,
69  double ctsSnr, WifiMode ctsMode, double rtsSnr);
70  void DoReportDataOk (WifiRemoteStation *station,
71  double ackSnr, WifiMode ackMode, double dataSnr);
76  bool IsLowLatency (void) const;
77 
82  void CheckInit (ParfWifiRemoteStation *station);
83 
84  uint32_t m_attemptThreshold;
85  uint32_t m_successThreshold;
86 
92  uint32_t m_minPower;
93 
97  uint32_t m_maxPower;
98 
107 };
108 
109 } //namespace ns3
110 
111 #endif /* PARF_WIFI_MANAGER_H */
Hold per-remote-station state for PARF Wifi manager.
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.
TracedCallback< DataRate, DataRate, Mac48Address > m_rateChange
The trace source fired when the transmission rate changes.
void CheckInit(ParfWifiRemoteStation *station)
Check for initializations.
TracedCallback< double, double, Mac48Address > m_powerChange
The trace source fired when the transmission power changes.
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
Definition: wifi-mode.h:97
void DoReportDataFailed(WifiRemoteStation *station)
This method is a pure virtual method that must be implemented by the sub-class.
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.
void SetVhtSupported(bool enable)
Enable or disable VHT capability support.
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.
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
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.
WifiRemoteStation * DoCreateStation(void) const
void DoReportRtsFailed(WifiRemoteStation *station)
This method is a pure virtual method that must be implemented by the sub-class.
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.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
PARF Rate control algorithm.
void SetHeSupported(bool enable)
Enable or disable HE capability support.
void SetupPhy(const Ptr< WifiPhy > phy)
Set up PHY associated with this device since it is the object that knows the full set of transmit rat...
static TypeId GetTypeId(void)
Register this type.
bool IsLowLatency(void) const
WifiTxVector DoGetRtsTxVector(WifiRemoteStation *station)
WifiTxVector DoGetDataTxVector(WifiRemoteStation *station)
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.