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.
*