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