MacParameters -> WifiMacParameters
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu, 28 Feb 2008 06:18:02 +0100
changeset 2508 18b690d1e74b
parent 2505 984b364e3111
child 2509 a72ee2fc1f30
MacParameters -> WifiMacParameters
src/devices/wifi/dca-txop.cc
src/devices/wifi/dca-txop.h
src/devices/wifi/dcf-manager-test.cc
src/devices/wifi/dcf-manager.cc
src/devices/wifi/mac-low.cc
src/devices/wifi/mac-low.h
src/devices/wifi/mac-parameters.cc
src/devices/wifi/mac-parameters.h
src/devices/wifi/mac-stations.cc
src/devices/wifi/mac-stations.h
src/devices/wifi/wifi-mac-parameters.cc
src/devices/wifi/wifi-mac-parameters.h
src/devices/wifi/wifi-mac-queue.h
src/devices/wifi/wifi-net-device.cc
src/devices/wifi/wifi-net-device.h
src/devices/wifi/wscript
--- a/src/devices/wifi/dca-txop.cc	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/dca-txop.cc	Thu Feb 28 06:18:02 2008 +0100
@@ -27,7 +27,7 @@
 
 #include "dca-txop.h"
 #include "dcf-manager.h"
-#include "mac-parameters.h"
+#include "wifi-mac-parameters.h"
 #include "mac-low.h"
 #include "wifi-mac-queue.h"
 #include "mac-tx-middle.h"
@@ -131,7 +131,7 @@
   m_low = low;
 }
 void 
-DcaTxop::SetParameters (MacParameters *parameters)
+DcaTxop::SetParameters (WifiMacParameters *parameters)
 {
   m_parameters = parameters;
 }
@@ -213,7 +213,7 @@
   return m_low;
 }
 
-MacParameters *
+WifiMacParameters *
 DcaTxop::Parameters (void)
 {
   return m_parameters;
--- a/src/devices/wifi/dca-txop.h	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/dca-txop.h	Thu Feb 28 06:18:02 2008 +0100
@@ -36,7 +36,7 @@
 class DcfManager;
 class WifiMacQueue;
 class MacLow;
-class MacParameters;
+class WifiMacParameters;
 class MacTxMiddle;
 class RandomStream;
 class MacStation;
@@ -82,7 +82,7 @@
   ~DcaTxop ();
 
   void SetLow (Ptr<MacLow> low);
-  void SetParameters (MacParameters *parameters);
+  void SetParameters (WifiMacParameters *parameters);
   void SetStations (MacStations *stations);
   void SetTxMiddle (MacTxMiddle *txMiddle);
   /**
@@ -119,7 +119,7 @@
   // Inherited from ns3::Object
   virtual Ptr<TraceResolver> GetTraceResolver (void) const;  
   Ptr<MacLow> Low (void);
-  MacParameters *Parameters (void);
+  WifiMacParameters *Parameters (void);
 
   /* dcf notifications forwarded here */
   bool NeedsAccess (void) const;
@@ -156,7 +156,7 @@
   MacTxMiddle *m_txMiddle;
   Ptr <MacLow> m_low;
   MacStations *m_stations;
-  MacParameters *m_parameters;
+  WifiMacParameters *m_parameters;
   TransmissionListener *m_transmissionListener;
   RandomStream *m_rng;
   
--- a/src/devices/wifi/dcf-manager-test.cc	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/dcf-manager-test.cc	Thu Feb 28 06:18:02 2008 +0100
@@ -4,7 +4,7 @@
 #include "ns3/test.h"
 #include "ns3/simulator.h"
 #include "dcf-manager.h"
-#include "mac-parameters.h"
+#include "wifi-mac-parameters.h"
 
 
 namespace ns3 {
@@ -67,7 +67,7 @@
   typedef std::vector<DcfStateTest *> DcfStates;
 
   DcfManager *m_dcfManager;
-  MacParameters *m_parameters;
+  WifiMacParameters *m_parameters;
   DcfStates m_dcfStates;
   bool m_result;
 };
--- a/src/devices/wifi/dcf-manager.cc	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/dcf-manager.cc	Thu Feb 28 06:18:02 2008 +0100
@@ -6,7 +6,7 @@
 #include <math.h>
 
 #include "dcf-manager.h"
-#include "mac-parameters.h"
+#include "wifi-mac-parameters.h"
 
 NS_LOG_COMPONENT_DEFINE ("DcfManager");
 
--- a/src/devices/wifi/mac-low.cc	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/mac-low.cc	Thu Feb 28 06:18:02 2008 +0100
@@ -30,7 +30,7 @@
 #include "wifi-mac-trailer.h"
 #include "wifi-net-device.h"
 #include "mac-stations.h"
-#include "mac-parameters.h"
+#include "wifi-mac-parameters.h"
 #include "ns3/composite-trace-resolver.h"
 
 NS_LOG_COMPONENT_DEFINE ("MacLow");
@@ -320,7 +320,7 @@
   m_phy = phy;
 }
 void 
-MacLow::SetParameters (MacParameters *parameters)
+MacLow::SetParameters (WifiMacParameters *parameters)
 {
   m_parameters = parameters;
 }
--- a/src/devices/wifi/mac-low.h	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/mac-low.h	Thu Feb 28 06:18:02 2008 +0100
@@ -40,7 +40,7 @@
 class PacketLogger;
 class MacStations;
 class MacStation;
-class MacParameters;
+class WifiMacParameters;
 
 /**
  * \brief listen to events coming from ns3::MacLow.
@@ -280,7 +280,7 @@
   void SetDevice (Ptr<WifiNetDevice> device);
   void SetPhy (Ptr<WifiPhy> phy);
   void SetStations (MacStations *stations);
-  void SetParameters (MacParameters *parameters);
+  void SetParameters (WifiMacParameters *parameters);
   Ptr<NetDevice> GetDevice (void) const;
   /**
    * \param callback the callback which receives every incoming packet.
@@ -389,7 +389,7 @@
   Ptr<WifiNetDevice> m_device;
   Ptr<WifiPhy> m_phy;
   MacStations *m_stations;
-  MacParameters *m_parameters;
+  WifiMacParameters *m_parameters;
   MacLowRxCallback m_rxCallback;
   typedef std::vector<MacLowNavListener *>::const_iterator NavListenersCI;
   typedef std::vector<MacLowNavListener *> NavListeners;
--- a/src/devices/wifi/mac-parameters.cc	Wed Feb 27 20:39:06 2008 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2005 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: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
- */
-
-#include "ns3/assert.h"
-#include "mac-parameters.h"
-#include "wifi-default-parameters.h"
-
-namespace ns3 {
-
-MacParameters::MacParameters ()
-{
-  m_rtsCtsThreshold = WifiDefaultParameters::GetRtsCtsThreshold ();
-  m_fragmentationThreshold = WifiDefaultParameters::GetFragmentationThreshold ();
-  m_maxSsrc = WifiDefaultParameters::GetMaxSsrc ();
-  m_maxSlrc = WifiDefaultParameters::GetMaxSlrc ();
-
-  // ensure something not too stupid is set by default.
-  NS_ASSERT (WifiDefaultParameters::GetPhyStandard () == WIFI_PHY_STANDARD_80211a ||
-             WifiDefaultParameters::GetPhyStandard () == WIFI_PHY_STANDARD_holland);
-  uint32_t ctsAckSize = (2 + 2 + 6) * 8; // bits
-  double dataRate = (6e6 / 2); // mb/s
-  Time delay = Seconds (ctsAckSize / dataRate);
-
-  Initialize (delay, delay);
-}
-void 
-MacParameters::Initialize (Time ctsDelay, Time ackDelay)
-{
-  NS_ASSERT (WifiDefaultParameters::GetPhyStandard () == WIFI_PHY_STANDARD_80211a ||
-             WifiDefaultParameters::GetPhyStandard () == WIFI_PHY_STANDARD_holland);
-
-  // these values are really 802.11a specific
-  m_sifs = MicroSeconds (16);
-  m_slot = MicroSeconds (9);
-
-
-  /* see section 9.2.10 ieee 802.11-1999 */
-  m_pifs = m_sifs + m_slot;
-  // 1000m 
-  m_maxPropagationDelay = Seconds (1000.0 / 300000000.0);
-  /* Cts_Timeout and Ack_Timeout are specified in the Annex C 
-     (Formal description of MAC operation, see details on the 
-     Trsp timer setting at page 346)
-  */
-  m_ctsTimeout = m_sifs;
-  m_ctsTimeout += ctsDelay;
-  m_ctsTimeout += m_maxPropagationDelay * Scalar (2);
-  m_ctsTimeout += m_slot;
-
-  m_ackTimeout = m_sifs;
-  m_ackTimeout += ackDelay;
-  m_ackTimeout += m_maxPropagationDelay * Scalar (2);
-  m_ackTimeout += m_slot;
-}
-
-void 
-MacParameters::SetSlotTime (Time slotTime)
-{
-  m_slot = slotTime;
-}
-
-
-Time
-MacParameters::GetPifs (void) const
-{
-  return m_pifs;
-}
-Time
-MacParameters::GetSifs (void) const
-{
-  return m_sifs;
-}
-Time
-MacParameters::GetSlotTime (void) const
-{
-  return m_slot;
-}
-Time
-MacParameters::GetCtsTimeout (void) const
-{
-  return m_ctsTimeout;
-}
-Time
-MacParameters::GetAckTimeout (void) const
-{
-  return m_ackTimeout;
-}
-
-Time
-MacParameters::GetBeaconInterval (void) const
-{
-  return Seconds (1);
-}
-uint32_t 
-MacParameters::GetMaxSsrc (void) const
-{
-  return m_maxSsrc;
-}
-uint32_t 
-MacParameters::GetMaxSlrc (void) const
-{
-  return m_maxSlrc;
-}
-uint32_t 
-MacParameters::GetRtsCtsThreshold (void) const
-{
-  return m_rtsCtsThreshold;
-}
-uint32_t 
-MacParameters::GetFragmentationThreshold (void) const
-{
-  NS_ASSERT (GetMaxMsduSize () / 16 < m_fragmentationThreshold);
-  return m_fragmentationThreshold;
-}
-Time
-MacParameters::GetMsduLifetime (void) const
-{
-  return Seconds (10);
-}
-Time
-MacParameters::GetMaxPropagationDelay (void) const
-{
-  return m_maxPropagationDelay;
-}
-
-uint32_t 
-MacParameters::GetMaxMsduSize (void) const
-{
-  return 2304;
-}
-double 
-MacParameters::GetCapLimit (void) const
-{
-  return 0.4;
-}
-double 
-MacParameters::GetMinEdcaTrafficProportion (void) const
-{
-  return 0.4;
-}
-
-} // namespace ns3
--- a/src/devices/wifi/mac-parameters.h	Wed Feb 27 20:39:06 2008 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2005 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: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
- */
-#ifndef MAC_PARAMETERS_H
-#define MAC_PARAMETERS_H
-
-#include <stdint.h>
-#include "ns3/nstime.h"
-
-namespace ns3 {
-
-class MacParameters 
-{
-public:
-  MacParameters ();
-
-  void Initialize (Time ctsDelay, Time ackDelay);
-  void SetSlotTime (Time slotTime);
-
-  // XXX AP-specific
-  Time GetBeaconInterval (void) const;
-
-  Time GetPifs (void) const;
-  Time GetSifs (void) const;
-  Time GetSlotTime (void) const;
-
-  uint32_t GetMaxSsrc (void) const;
-  uint32_t GetMaxSlrc (void) const;
-  uint32_t GetRtsCtsThreshold (void) const;
-  uint32_t GetFragmentationThreshold (void) const;
-  Time GetCtsTimeout (void) const;
-  Time GetAckTimeout (void) const;
-  Time GetMsduLifetime (void) const;
-  Time GetMaxPropagationDelay (void) const;
-
-  uint32_t GetMaxMsduSize (void) const;
-  double GetCapLimit (void) const;
-  double GetMinEdcaTrafficProportion (void) const;
-private:
-  void Initialize80211a (void);
-  Time m_ctsTimeout;
-  Time m_ackTimeout;
-  Time m_sifs;
-  Time m_pifs;
-  Time m_slot;
-  uint32_t m_maxSsrc;
-  uint32_t m_maxSlrc;
-  uint32_t m_rtsCtsThreshold;
-  uint32_t m_fragmentationThreshold;
-  Time m_maxPropagationDelay;
-  static const double SPEED_OF_LIGHT; // m/s
-};
-
-} // namespace ns3
-
-#endif /* MAC_PARAMETERS_H */
--- a/src/devices/wifi/mac-stations.cc	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/mac-stations.cc	Thu Feb 28 06:18:02 2008 +0100
@@ -20,7 +20,7 @@
 
 #include "mac-stations.h"
 #include "wifi-default-parameters.h"
-#include "mac-parameters.h"
+#include "wifi-mac-parameters.h"
 #include "ns3/assert.h"
 #include "ns3/log.h"
 #include "ns3/tag.h"
@@ -219,7 +219,7 @@
   return m_isLowLatency;
 }
 void 
-MacStations::SetParameters (MacParameters *parameters)
+MacStations::SetParameters (WifiMacParameters *parameters)
 {
   m_parameters = parameters;
 }
@@ -309,7 +309,7 @@
 {}
 
 void 
-MacStation::SetParameters (MacParameters *parameters)
+MacStation::SetParameters (WifiMacParameters *parameters)
 {
   m_parameters = parameters;
 }
--- a/src/devices/wifi/mac-stations.h	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/mac-stations.h	Thu Feb 28 06:18:02 2008 +0100
@@ -30,7 +30,7 @@
 
 class MacStation;
 class NonUnicastMacStation;
-class MacParameters;
+class WifiMacParameters;
 
 class MacStations 
 {
@@ -41,7 +41,7 @@
 
   MacStations (WifiMode defaultTxMode);
   virtual ~MacStations ();
-  void SetParameters (MacParameters *parameters);
+  void SetParameters (WifiMacParameters *parameters);
   
   // Invoked in a STA upon dis-association
   // or in an AP upon reboot
@@ -71,7 +71,7 @@
   NonUnicastMacStation *m_nonUnicast;
   BasicModes m_basicModes;
   bool m_isLowLatency;
-  MacParameters *m_parameters;
+  WifiMacParameters *m_parameters;
 };
 
 } // namespace ns3
@@ -92,7 +92,7 @@
   // The set of supported modes includes
   // the BSSBasicRateSet.
   void AddSupportedMode (WifiMode mode);
-  void SetParameters (MacParameters *parameters);
+  void SetParameters (WifiMacParameters *parameters);
 
   bool IsBrandNew (void) const;
   bool IsAssociated (void) const;
@@ -145,7 +145,7 @@
     GOT_ASSOC_TX_OK
   } m_state;
   SupportedModes m_modes;
-  MacParameters *m_parameters;
+  WifiMacParameters *m_parameters;
 };
 
 } // namespace ns3 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/devices/wifi/wifi-mac-parameters.cc	Thu Feb 28 06:18:02 2008 +0100
@@ -0,0 +1,159 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2005 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: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
+
+#include "ns3/assert.h"
+#include "wifi-mac-parameters.h"
+#include "wifi-default-parameters.h"
+
+namespace ns3 {
+
+WifiMacParameters::WifiMacParameters ()
+{
+  m_rtsCtsThreshold = WifiDefaultParameters::GetRtsCtsThreshold ();
+  m_fragmentationThreshold = WifiDefaultParameters::GetFragmentationThreshold ();
+  m_maxSsrc = WifiDefaultParameters::GetMaxSsrc ();
+  m_maxSlrc = WifiDefaultParameters::GetMaxSlrc ();
+
+  // ensure something not too stupid is set by default.
+  NS_ASSERT (WifiDefaultParameters::GetPhyStandard () == WIFI_PHY_STANDARD_80211a ||
+             WifiDefaultParameters::GetPhyStandard () == WIFI_PHY_STANDARD_holland);
+  uint32_t ctsAckSize = (2 + 2 + 6) * 8; // bits
+  double dataRate = (6e6 / 2); // mb/s
+  Time delay = Seconds (ctsAckSize / dataRate);
+
+  Initialize (delay, delay);
+}
+void 
+WifiMacParameters::Initialize (Time ctsDelay, Time ackDelay)
+{
+  NS_ASSERT (WifiDefaultParameters::GetPhyStandard () == WIFI_PHY_STANDARD_80211a ||
+             WifiDefaultParameters::GetPhyStandard () == WIFI_PHY_STANDARD_holland);
+
+  // these values are really 802.11a specific
+  m_sifs = MicroSeconds (16);
+  m_slot = MicroSeconds (9);
+
+
+  /* see section 9.2.10 ieee 802.11-1999 */
+  m_pifs = m_sifs + m_slot;
+  // 1000m 
+  m_maxPropagationDelay = Seconds (1000.0 / 300000000.0);
+  /* Cts_Timeout and Ack_Timeout are specified in the Annex C 
+     (Formal description of MAC operation, see details on the 
+     Trsp timer setting at page 346)
+  */
+  m_ctsTimeout = m_sifs;
+  m_ctsTimeout += ctsDelay;
+  m_ctsTimeout += m_maxPropagationDelay * Scalar (2);
+  m_ctsTimeout += m_slot;
+
+  m_ackTimeout = m_sifs;
+  m_ackTimeout += ackDelay;
+  m_ackTimeout += m_maxPropagationDelay * Scalar (2);
+  m_ackTimeout += m_slot;
+}
+
+void 
+WifiMacParameters::SetSlotTime (Time slotTime)
+{
+  m_slot = slotTime;
+}
+
+
+Time
+WifiMacParameters::GetPifs (void) const
+{
+  return m_pifs;
+}
+Time
+WifiMacParameters::GetSifs (void) const
+{
+  return m_sifs;
+}
+Time
+WifiMacParameters::GetSlotTime (void) const
+{
+  return m_slot;
+}
+Time
+WifiMacParameters::GetCtsTimeout (void) const
+{
+  return m_ctsTimeout;
+}
+Time
+WifiMacParameters::GetAckTimeout (void) const
+{
+  return m_ackTimeout;
+}
+
+Time
+WifiMacParameters::GetBeaconInterval (void) const
+{
+  return Seconds (1);
+}
+uint32_t 
+WifiMacParameters::GetMaxSsrc (void) const
+{
+  return m_maxSsrc;
+}
+uint32_t 
+WifiMacParameters::GetMaxSlrc (void) const
+{
+  return m_maxSlrc;
+}
+uint32_t 
+WifiMacParameters::GetRtsCtsThreshold (void) const
+{
+  return m_rtsCtsThreshold;
+}
+uint32_t 
+WifiMacParameters::GetFragmentationThreshold (void) const
+{
+  NS_ASSERT (GetMaxMsduSize () / 16 < m_fragmentationThreshold);
+  return m_fragmentationThreshold;
+}
+Time
+WifiMacParameters::GetMsduLifetime (void) const
+{
+  return Seconds (10);
+}
+Time
+WifiMacParameters::GetMaxPropagationDelay (void) const
+{
+  return m_maxPropagationDelay;
+}
+
+uint32_t 
+WifiMacParameters::GetMaxMsduSize (void) const
+{
+  return 2304;
+}
+double 
+WifiMacParameters::GetCapLimit (void) const
+{
+  return 0.4;
+}
+double 
+WifiMacParameters::GetMinEdcaTrafficProportion (void) const
+{
+  return 0.4;
+}
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/devices/wifi/wifi-mac-parameters.h	Thu Feb 28 06:18:02 2008 +0100
@@ -0,0 +1,72 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2005 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: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
+#ifndef MAC_PARAMETERS_H
+#define MAC_PARAMETERS_H
+
+#include <stdint.h>
+#include "ns3/nstime.h"
+
+namespace ns3 {
+
+class WifiMacParameters 
+{
+public:
+  WifiMacParameters ();
+
+  void Initialize (Time ctsDelay, Time ackDelay);
+  void SetSlotTime (Time slotTime);
+
+  // XXX AP-specific
+  Time GetBeaconInterval (void) const;
+
+  Time GetPifs (void) const;
+  Time GetSifs (void) const;
+  Time GetSlotTime (void) const;
+
+  uint32_t GetMaxSsrc (void) const;
+  uint32_t GetMaxSlrc (void) const;
+  uint32_t GetRtsCtsThreshold (void) const;
+  uint32_t GetFragmentationThreshold (void) const;
+  Time GetCtsTimeout (void) const;
+  Time GetAckTimeout (void) const;
+  Time GetMsduLifetime (void) const;
+  Time GetMaxPropagationDelay (void) const;
+
+  uint32_t GetMaxMsduSize (void) const;
+  double GetCapLimit (void) const;
+  double GetMinEdcaTrafficProportion (void) const;
+private:
+  void Initialize80211a (void);
+  Time m_ctsTimeout;
+  Time m_ackTimeout;
+  Time m_sifs;
+  Time m_pifs;
+  Time m_slot;
+  uint32_t m_maxSsrc;
+  uint32_t m_maxSlrc;
+  uint32_t m_rtsCtsThreshold;
+  uint32_t m_fragmentationThreshold;
+  Time m_maxPropagationDelay;
+  static const double SPEED_OF_LIGHT; // m/s
+};
+
+} // namespace ns3
+
+#endif /* MAC_PARAMETERS_H */
--- a/src/devices/wifi/wifi-mac-queue.h	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/wifi-mac-queue.h	Thu Feb 28 06:18:02 2008 +0100
@@ -28,7 +28,7 @@
 
 namespace ns3 {
 
-class MacParameters;
+class WifiMacParameters;
 
 /**
  * \brief a 802.11e-specific queue.
@@ -75,7 +75,7 @@
   typedef std::deque<struct Item>::reverse_iterator PacketQueueRI;
   typedef std::deque<struct Item>::iterator PacketQueueI;
   PacketQueue m_queue;
-  MacParameters *m_parameters;
+  WifiMacParameters *m_parameters;
   uint32_t m_size;
   uint32_t m_maxSize;
   Time m_maxDelay;
--- a/src/devices/wifi/wifi-net-device.cc	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/wifi-net-device.cc	Thu Feb 28 06:18:02 2008 +0100
@@ -27,7 +27,7 @@
 #include "wifi-channel.h"
 #include "mac-stations.h"
 #include "mac-low.h"
-#include "mac-parameters.h"
+#include "wifi-mac-parameters.h"
 #include "mac-rx-middle.h"
 #include "mac-tx-middle.h"
 #include "mac-high-adhoc.h"
@@ -225,8 +225,8 @@
     break;
   }
 
-  // MacParameters
-  MacParameters *parameters = new MacParameters ();
+  // WifiMacParameters
+  WifiMacParameters *parameters = new WifiMacParameters ();
   WifiMacHeader hdr;
   hdr.SetType (WIFI_MAC_CTL_CTS);
   Time ctsDelay = m_phy->CalculateTxDuration (hdr.GetSize () + 4, m_phy->GetMode (0), WIFI_PREAMBLE_LONG);
--- a/src/devices/wifi/wifi-net-device.h	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/wifi-net-device.h	Thu Feb 28 06:18:02 2008 +0100
@@ -36,7 +36,7 @@
 class MacLow;
 class MacRxMiddle;
 class MacTxMiddle;
-class MacParameters;
+class WifiMacParameters;
 class DcaTxop;
 class MacHighAdhoc;
 class MacHighNqsta;
@@ -149,7 +149,7 @@
   Ptr<MacLow> m_low;
   MacRxMiddle *m_rxMiddle;
   MacTxMiddle *m_txMiddle;
-  MacParameters *m_parameters;
+  WifiMacParameters *m_parameters;
   DcfManager *m_manager;
   PhyListener *m_phyListener;
   NavListener *m_navListener;
--- a/src/devices/wifi/wscript	Wed Feb 27 20:39:06 2008 -0800
+++ b/src/devices/wifi/wscript	Thu Feb 28 06:18:02 2008 +0100
@@ -15,7 +15,7 @@
         'aarf-mac-stations.cc',
         'wifi-mac-header.cc',
         'wifi-mac-trailer.cc',
-        'mac-parameters.cc',
+        'wifi-mac-parameters.cc',
         'mac-low.cc',
         'wifi-mac-queue.cc',
         'mac-tx-middle.cc',