--- 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;
+ }
}