src/devices/wifi/adhoc-wifi-mac.cc
changeset 4720 15221757964f
parent 4460 d7ad6e210086
child 5671 b1fce73037f8
--- a/src/devices/wifi/adhoc-wifi-mac.cc	Thu Aug 13 13:39:23 2009 +0200
+++ b/src/devices/wifi/adhoc-wifi-mac.cc	Fri Aug 14 12:21:39 2009 +0200
@@ -46,8 +46,7 @@
     .AddConstructor<AdhocWifiMac> ()
     .AddAttribute ("DcaTxop", "The DcaTxop object",
                    PointerValue (),
-                   MakePointerAccessor (&AdhocWifiMac::GetDcaTxop,
-                                        &AdhocWifiMac::SetDcaTxop),
+                   MakePointerAccessor (&AdhocWifiMac::GetDcaTxop),
                    MakePointerChecker<DcaTxop> ()) 
     ;
   return tid;
@@ -64,6 +63,10 @@
 
   m_dcfManager = new DcfManager ();
   m_dcfManager->SetupLowListener (m_low);
+
+  m_dca = CreateObject<DcaTxop> ();
+  m_dca->SetLow (m_low);
+  m_dca->SetManager (m_dcfManager);
 }
 AdhocWifiMac::~AdhocWifiMac ()
 {}
@@ -251,12 +254,27 @@
   return m_dca;
 }
 
-void
-AdhocWifiMac::SetDcaTxop (Ptr<DcaTxop> dcaTxop)
+void 
+AdhocWifiMac::FinishConfigureStandard (enum WifiPhyStandard standard)
 {
-  m_dca = dcaTxop;
-  m_dca->SetLow (m_low);
-  m_dca->SetManager (m_dcfManager);
+  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;
+    }
 }