diff -r 055af17f7225 -r 15221757964f src/devices/wifi/nqap-wifi-mac.cc --- a/src/devices/wifi/nqap-wifi-mac.cc Thu Aug 13 13:39:23 2009 +0200 +++ b/src/devices/wifi/nqap-wifi-mac.cc Fri Aug 14 12:21:39 2009 +0200 @@ -60,8 +60,7 @@ MakeBooleanChecker ()) .AddAttribute ("DcaTxop", "The DcaTxop object", PointerValue (), - MakePointerAccessor (&NqapWifiMac::GetDcaTxop, - &NqapWifiMac::SetDcaTxop), + MakePointerAccessor (&NqapWifiMac::GetDcaTxop), MakePointerChecker ()) ; return tid; @@ -85,6 +84,12 @@ m_beaconDca->SetMaxCw(0); m_beaconDca->SetLow (m_low); m_beaconDca->SetManager (m_dcfManager); + + m_dca = CreateObject (); + m_dca->SetLow (m_low); + m_dca->SetManager (m_dcfManager); + m_dca->SetTxOkCallback (MakeCallback (&NqapWifiMac::TxOk, this)); + m_dca->SetTxFailedCallback (MakeCallback (&NqapWifiMac::TxFailed, this)); } NqapWifiMac::~NqapWifiMac () { @@ -565,14 +570,28 @@ return m_dca; } -void -NqapWifiMac::SetDcaTxop (Ptr dcaTxop) +void +NqapWifiMac::FinishConfigureStandard (enum WifiPhyStandard standard) { - m_dca = dcaTxop; - m_dca->SetLow (m_low); - m_dca->SetManager (m_dcfManager); - m_dca->SetTxOkCallback (MakeCallback (&NqapWifiMac::TxOk, this)); - m_dca->SetTxFailedCallback (MakeCallback (&NqapWifiMac::TxFailed, this)); + 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