src/devices/wifi/nqsta-wifi-mac.cc
changeset 4720 15221757964f
parent 4687 02bf728f7e39
child 5819 514ec98954ab
--- a/src/devices/wifi/nqsta-wifi-mac.cc	Thu Aug 13 13:39:23 2009 +0200
+++ b/src/devices/wifi/nqsta-wifi-mac.cc	Fri Aug 14 12:21:39 2009 +0200
@@ -89,8 +89,7 @@
                    MakeBooleanChecker ())
     .AddAttribute ("DcaTxop", "The DcaTxop object",
                    PointerValue (),
-                   MakePointerAccessor (&NqstaWifiMac::GetDcaTxop,
-                                        &NqstaWifiMac::SetDcaTxop),
+                   MakePointerAccessor (&NqstaWifiMac::GetDcaTxop),
                    MakePointerChecker<DcaTxop> ()) 
     .AddTraceSource ("Assoc", "Associated with an access point.",
                      MakeTraceSourceAccessor (&NqstaWifiMac::m_assocLogger))
@@ -115,6 +114,10 @@
 
   m_dcfManager = new DcfManager ();
   m_dcfManager->SetupLowListener (m_low);
+
+  m_dca = CreateObject<DcaTxop> ();
+  m_dca->SetLow (m_low);
+  m_dca->SetManager (m_dcfManager);
 }
 
 NqstaWifiMac::~NqstaWifiMac ()
@@ -208,13 +211,6 @@
 {
   return m_dca;
 }
-void
-NqstaWifiMac::SetDcaTxop (Ptr<DcaTxop> dcaTxop)
-{
-  m_dca = dcaTxop;
-  m_dca->SetLow (m_low);
-  m_dca->SetManager (m_dcfManager);
-}
 void 
 NqstaWifiMac::SetWifiPhy (Ptr<WifiPhy> phy)
 {
@@ -668,4 +664,27 @@
   m_state = value;
 }
 
+void 
+NqstaWifiMac::FinishConfigureStandard (enum WifiPhyStandard standard)
+{
+  switch (standard)
+    {
+    case WIFI_PHY_STANDARD_holland:
+      // fall through
+    case WIFI_PHY_STANDARD_80211_10Mhz: 
+      // fall through
+    case WIFI_PHY_STANDARD_80211_5Mhz:
+      // fall through
+    case WIFI_PHY_STANDARD_80211a:
+      ConfigureDcf (m_dca, 15, 1023, AC_BE_NQOS);
+      break;
+    case WIFI_PHY_STANDARD_80211b:
+      ConfigureDcf (m_dca, 31, 1023, AC_BE_NQOS);
+      break;
+    default:
+      NS_ASSERT (false);
+      break;
+    }
+}
+
 } // namespace ns3