diff --git a/src/wifi/model/aarf-wifi-manager.cc b/src/wifi/model/aarf-wifi-manager.cc index 1f3faaf..887f642 100644 --- a/src/wifi/model/aarf-wifi-manager.cc +++ b/src/wifi/model/aarf-wifi-manager.cc @@ -273,4 +273,24 @@ AarfWifiManager::IsLowLatency (void) const return true; } +void +AarfWifiManager::SetHtSupported (bool enable) +{ + //HT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support HT rates"); + } +} + +void +AarfWifiManager::SetVhtSupported (bool enable) +{ + //VHT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support VHT rates"); + } +} + } //namespace ns3 diff --git a/src/wifi/model/aarf-wifi-manager.h b/src/wifi/model/aarf-wifi-manager.h index ecabc3f..cef500c 100644 --- a/src/wifi/model/aarf-wifi-manager.h +++ b/src/wifi/model/aarf-wifi-manager.h @@ -33,6 +33,10 @@ namespace ns3 { * was initially described in IEEE 802.11 Rate Adaptation: * A Practical Approach, by M. Lacage, M.H. Manshaei, and * T. Turletti. + * + * This RAA does not support HT or VHT modes and will error exit + * if the user tries to configure this RAA with a Wi-Fi MAC that + * has VhtSupported or HtSupported set. */ class AarfWifiManager : public WifiRemoteStationManager { @@ -40,6 +44,10 @@ public: static TypeId GetTypeId (void); AarfWifiManager (); virtual ~AarfWifiManager (); + + // Inherited from WifiRemoteStationManager + virtual void SetHtSupported (bool enable); + virtual void SetVhtSupported (bool enable); private: //overriden from base class virtual WifiRemoteStation * DoCreateStation (void) const; diff --git a/src/wifi/model/aarfcd-wifi-manager.cc b/src/wifi/model/aarfcd-wifi-manager.cc index e282757..a8c0357 100644 --- a/src/wifi/model/aarfcd-wifi-manager.cc +++ b/src/wifi/model/aarfcd-wifi-manager.cc @@ -404,5 +404,26 @@ AarfcdWifiManager::ResetRtsWnd (AarfcdWifiRemoteStation *station) station->m_rtsWnd = m_minRtsWnd; } +void +AarfcdWifiManager::SetHtSupported (bool enable) +{ + //HT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support HT rates"); + } +} + +void +AarfcdWifiManager::SetVhtSupported (bool enable) +{ + //VHT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support VHT rates"); + } +} + + } //namespace ns3 diff --git a/src/wifi/model/aarfcd-wifi-manager.h b/src/wifi/model/aarfcd-wifi-manager.h index bd92d5a..8bbef99 100644 --- a/src/wifi/model/aarfcd-wifi-manager.h +++ b/src/wifi/model/aarfcd-wifi-manager.h @@ -35,6 +35,10 @@ struct AarfcdWifiRemoteStation; * The implementation available here was done by Federico Maguolo for a very early development * version of ns-3. Federico died before merging this work in ns-3 itself so his code was ported * to ns-3 later without his supervision. + * + * This RAA does not support HT or VHT modes and will error exit + * if the user tries to configure this RAA with a Wi-Fi MAC that + * has VhtSupported or HtSupported set. */ class AarfcdWifiManager : public WifiRemoteStationManager { @@ -43,6 +47,10 @@ public: AarfcdWifiManager (); virtual ~AarfcdWifiManager (); + // Inherited from WifiRemoteStationManager + virtual void SetHtSupported (bool enable); + virtual void SetVhtSupported (bool enable); + private: // overriden from base class virtual WifiRemoteStation * DoCreateStation (void) const; diff --git a/src/wifi/model/amrr-wifi-manager.cc b/src/wifi/model/amrr-wifi-manager.cc index 25591c8..af2770d 100644 --- a/src/wifi/model/amrr-wifi-manager.cc +++ b/src/wifi/model/amrr-wifi-manager.cc @@ -375,4 +375,25 @@ AmrrWifiManager::IsLowLatency (void) const return true; } +void +AmrrWifiManager::SetHtSupported (bool enable) +{ + //HT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support HT rates"); + } +} + +void +AmrrWifiManager::SetVhtSupported (bool enable) +{ + //VHT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support VHT rates"); + } +} + + } //namespace ns3 diff --git a/src/wifi/model/amrr-wifi-manager.h b/src/wifi/model/amrr-wifi-manager.h index 415b358..53539c8 100644 --- a/src/wifi/model/amrr-wifi-manager.h +++ b/src/wifi/model/amrr-wifi-manager.h @@ -36,6 +36,10 @@ struct AmrrWifiRemoteStation; * was initially described in IEEE 802.11 Rate Adaptation: * A Practical Approach, by M. Lacage, M.H. Manshaei, and * T. Turletti. + * + * This RAA does not support HT or VHT modes and will error exit + * if the user tries to configure this RAA with a Wi-Fi MAC that + * has VhtSupported or HtSupported set. */ class AmrrWifiManager : public WifiRemoteStationManager { @@ -44,6 +48,9 @@ public: AmrrWifiManager (); + // Inherited from WifiRemoteStationManager + virtual void SetHtSupported (bool enable); + virtual void SetVhtSupported (bool enable); private: //overriden from base class diff --git a/src/wifi/model/aparf-wifi-manager.cc b/src/wifi/model/aparf-wifi-manager.cc index d7970e8..67488f8 100644 --- a/src/wifi/model/aparf-wifi-manager.cc +++ b/src/wifi/model/aparf-wifi-manager.cc @@ -364,4 +364,24 @@ AparfWifiManager::IsLowLatency (void) const return true; } +void +AparfWifiManager::SetHtSupported (bool enable) +{ + //HT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support HT rates"); + } +} + +void +AparfWifiManager::SetVhtSupported (bool enable) +{ + //VHT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support VHT rates"); + } +} + } //namespace ns3 diff --git a/src/wifi/model/aparf-wifi-manager.h b/src/wifi/model/aparf-wifi-manager.h index 6c1584c..f18f694 100644 --- a/src/wifi/model/aparf-wifi-manager.h +++ b/src/wifi/model/aparf-wifi-manager.h @@ -38,6 +38,9 @@ struct AparfWifiRemoteStation; * Networks, Springer, 2005, 12, 123-145. * http://www.cs.mun.ca/~yzchen/papers/papers/rate_adaptation/80211_dynamic_rate_power_adjustment_chevillat_j2005.pdf * + * This RAA does not support HT or VHT modes and will error exit + * if the user tries to configure this RAA with a Wi-Fi MAC that + * has VhtSupported or HtSupported set. */ class AparfWifiManager : public WifiRemoteStationManager { @@ -50,7 +53,10 @@ public: AparfWifiManager (); virtual ~AparfWifiManager (); + // Inherited from WifiRemoteStationManager virtual void SetupPhy (Ptr phy); + virtual void SetHtSupported (bool enable); + virtual void SetVhtSupported (bool enable); /** * Enumeration of the possible states of the channel. diff --git a/src/wifi/model/arf-wifi-manager.cc b/src/wifi/model/arf-wifi-manager.cc index 9a54822..36b4e97 100644 --- a/src/wifi/model/arf-wifi-manager.cc +++ b/src/wifi/model/arf-wifi-manager.cc @@ -249,4 +249,24 @@ ArfWifiManager::IsLowLatency (void) const return true; } +void +ArfWifiManager::SetHtSupported (bool enable) +{ + //HT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support HT rates"); + } +} + +void +ArfWifiManager::SetVhtSupported (bool enable) +{ + //VHT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support VHT rates"); + } +} + } //namespace ns3 diff --git a/src/wifi/model/arf-wifi-manager.h b/src/wifi/model/arf-wifi-manager.h index 59f48c5..9996fc2 100644 --- a/src/wifi/model/arf-wifi-manager.h +++ b/src/wifi/model/arf-wifi-manager.h @@ -39,6 +39,10 @@ namespace ns3 { * in XXX (I cannot find back the original paper which described how * the time-based timer could be easily replaced with a packet-based * timer.) + * + * This RAA does not support HT or VHT modes and will error exit + * if the user tries to configure this RAA with a Wi-Fi MAC that + * has VhtSupported or HtSupported set. */ class ArfWifiManager : public WifiRemoteStationManager { @@ -47,6 +51,9 @@ public: ArfWifiManager (); virtual ~ArfWifiManager (); + // Inherited from WifiRemoteStationManager + virtual void SetHtSupported (bool enable); + virtual void SetVhtSupported (bool enable); private: //overriden from base class diff --git a/src/wifi/model/cara-wifi-manager.cc b/src/wifi/model/cara-wifi-manager.cc index b0f510e..00d1449 100644 --- a/src/wifi/model/cara-wifi-manager.cc +++ b/src/wifi/model/cara-wifi-manager.cc @@ -232,4 +232,24 @@ CaraWifiManager::IsLowLatency (void) const return true; } +void +CaraWifiManager::SetHtSupported (bool enable) +{ + //HT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support HT rates"); + } +} + +void +CaraWifiManager::SetVhtSupported (bool enable) +{ + //VHT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support VHT rates"); + } +} + } //namespace ns3 diff --git a/src/wifi/model/cara-wifi-manager.h b/src/wifi/model/cara-wifi-manager.h index 1827dad..2492d17 100644 --- a/src/wifi/model/cara-wifi-manager.h +++ b/src/wifi/model/cara-wifi-manager.h @@ -35,6 +35,10 @@ namespace ns3 { * * Originally implemented by Federico Maguolo for a very early * prototype version of ns-3. + * + * This RAA does not support HT or VHT modes and will error exit + * if the user tries to configure this RAA with a Wi-Fi MAC that + * has VhtSupported or HtSupported set. */ class CaraWifiManager : public WifiRemoteStationManager { @@ -43,6 +47,9 @@ public: CaraWifiManager (); virtual ~CaraWifiManager (); + // Inherited from WifiRemoteStationManager + virtual void SetHtSupported (bool enable); + virtual void SetVhtSupported (bool enable); private: //overriden from base class diff --git a/src/wifi/model/minstrel-wifi-manager.cc b/src/wifi/model/minstrel-wifi-manager.cc index 1127f1b..2c5331f 100644 --- a/src/wifi/model/minstrel-wifi-manager.cc +++ b/src/wifi/model/minstrel-wifi-manager.cc @@ -1071,4 +1071,25 @@ MinstrelWifiManager::PrintTable (MinstrelWifiRemoteStation *station) station->m_statsFile.flush (); } + +void +MinstrelWifiManager::SetHtSupported (bool enable) +{ + //HT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support HT rates"); + } +} + +void +MinstrelWifiManager::SetVhtSupported (bool enable) +{ + //VHT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support VHT rates"); + } +} + } //namespace ns3 diff --git a/src/wifi/model/minstrel-wifi-manager.h b/src/wifi/model/minstrel-wifi-manager.h index 249d11d..cdce58e 100644 --- a/src/wifi/model/minstrel-wifi-manager.h +++ b/src/wifi/model/minstrel-wifi-manager.h @@ -124,6 +124,8 @@ struct MinstrelWifiRemoteStation : public WifiRemoteStation * * Minstrel is appropriate for non-HT/VHT configurations; for HT/VHT * (i.e. 802.11n/ac), users should use MinstrelHtWifiManager instead. + * Minstrel will error exit if the user tries to configure it with a + * Wi-Fi MAC that has VhtSupported or HtSupported set. * * Some notes on this implementation follow. The implementation has * been adapted to bring it closer to the Linux implementation. @@ -161,6 +163,8 @@ public: // Inherited from WifiRemoteStationManager virtual void SetupPhy (Ptr phy); virtual void SetupMac (Ptr mac); + virtual void SetHtSupported (bool enable); + virtual void SetVhtSupported (bool enable); /** * Assign a fixed random variable stream number to the random variables diff --git a/src/wifi/model/onoe-wifi-manager.cc b/src/wifi/model/onoe-wifi-manager.cc index b5a6ba0..1ec186b 100644 --- a/src/wifi/model/onoe-wifi-manager.cc +++ b/src/wifi/model/onoe-wifi-manager.cc @@ -315,4 +315,24 @@ OnoeWifiManager::IsLowLatency (void) const return false; } +void +OnoeWifiManager::SetHtSupported (bool enable) +{ + //HT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support HT rates"); + } +} + +void +OnoeWifiManager::SetVhtSupported (bool enable) +{ + //VHT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support VHT rates"); + } +} + } //namespace ns3 diff --git a/src/wifi/model/onoe-wifi-manager.h b/src/wifi/model/onoe-wifi-manager.h index 6182311..b7cfba0 100644 --- a/src/wifi/model/onoe-wifi-manager.h +++ b/src/wifi/model/onoe-wifi-manager.h @@ -38,6 +38,10 @@ struct OnoeWifiRemoteStation; * rate control algorithm for the madwifi driver. I am not aware of * any publication or reference about this algorithm beyond the madwifi * source code. + * + * This RAA does not support HT or VHT modes and will error exit + * if the user tries to configure this RAA with a Wi-Fi MAC that + * has VhtSupported or HtSupported set. */ class OnoeWifiManager : public WifiRemoteStationManager { @@ -46,6 +50,9 @@ public: OnoeWifiManager (); + // Inherited from WifiRemoteStationManager + virtual void SetHtSupported (bool enable); + virtual void SetVhtSupported (bool enable); private: //overriden from base class diff --git a/src/wifi/model/parf-wifi-manager.cc b/src/wifi/model/parf-wifi-manager.cc index 1c5218b..eeeb5ae 100644 --- a/src/wifi/model/parf-wifi-manager.cc +++ b/src/wifi/model/parf-wifi-manager.cc @@ -336,4 +336,24 @@ ParfWifiManager::IsLowLatency (void) const return true; } +void +ParfWifiManager::SetHtSupported (bool enable) +{ + //HT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support HT rates"); + } +} + +void +ParfWifiManager::SetVhtSupported (bool enable) +{ + //VHT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support VHT rates"); + } +} + } //namespace ns3 diff --git a/src/wifi/model/parf-wifi-manager.h b/src/wifi/model/parf-wifi-manager.h index c93e955..398dda4 100644 --- a/src/wifi/model/parf-wifi-manager.h +++ b/src/wifi/model/parf-wifi-manager.h @@ -36,6 +36,9 @@ struct ParfWifiRemoteStation; * Wireless Networks, Kluwer Academic Publishers, 2007, 13, 737-755 * http://www.cs.odu.edu/~nadeem/classes/cs795-WNS-S13/papers/enter-006.pdf * + * This RAA does not support HT or VHT modes and will error exit + * if the user tries to configure this RAA with a Wi-Fi MAC that + * has VhtSupported or HtSupported set. */ class ParfWifiManager : public WifiRemoteStationManager { @@ -48,7 +51,10 @@ public: ParfWifiManager (); virtual ~ParfWifiManager (); + // Inherited from WifiRemoteStationManager virtual void SetupPhy (Ptr phy); + virtual void SetHtSupported (bool enable); + virtual void SetVhtSupported (bool enable); private: diff --git a/src/wifi/model/rraa-wifi-manager.cc b/src/wifi/model/rraa-wifi-manager.cc index 3113b90..ed5ac02 100644 --- a/src/wifi/model/rraa-wifi-manager.cc +++ b/src/wifi/model/rraa-wifi-manager.cc @@ -496,4 +496,24 @@ RraaWifiManager::IsLowLatency (void) const return true; } +void +RraaWifiManager::SetHtSupported (bool enable) +{ + //HT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support HT rates"); + } +} + +void +RraaWifiManager::SetVhtSupported (bool enable) +{ + //VHT is not supported by this algorithm. + if (enable) + { + NS_FATAL_ERROR ("WifiRemoteStationManager selected does not support VHT rates"); + } +} + } //namespace ns3 diff --git a/src/wifi/model/rraa-wifi-manager.h b/src/wifi/model/rraa-wifi-manager.h index 9955263..013b2db 100644 --- a/src/wifi/model/rraa-wifi-manager.h +++ b/src/wifi/model/rraa-wifi-manager.h @@ -36,6 +36,10 @@ struct RraaWifiRemoteStation; * "Robust rate adaptation for 802.11 wireless networks" * by "Starsky H. Y. Wong", "Hao Yang", "Songwu Lu", and, * "Vaduvur Bharghavan" published in Mobicom 06. + * + * This RAA does not support HT or VHT modes and will error exit + * if the user tries to configure this RAA with a Wi-Fi MAC that + * has VhtSupported or HtSupported set. */ class RraaWifiManager : public WifiRemoteStationManager { @@ -45,6 +49,9 @@ public: RraaWifiManager (); virtual ~RraaWifiManager (); + // Inherited from WifiRemoteStationManager + virtual void SetHtSupported (bool enable); + virtual void SetVhtSupported (bool enable); private: struct ThresholdsItem diff --git a/src/wifi/model/wifi-remote-station-manager.h b/src/wifi/model/wifi-remote-station-manager.h index 445777d..e7ec7d8 100644 --- a/src/wifi/model/wifi-remote-station-manager.h +++ b/src/wifi/model/wifi-remote-station-manager.h @@ -187,7 +187,7 @@ public: * * \param enable enable or disable HT capability support */ - void SetHtSupported (bool enable); + virtual void SetHtSupported (bool enable); /** * Return whether the device has HT capability support enabled. * @@ -199,7 +199,7 @@ public: * * \param enable enable or disable VHT capability support */ - void SetVhtSupported (bool enable); + virtual void SetVhtSupported (bool enable); /** * Return whether the device has VHT capability support enabled. *