From ed5eadfbdeab2362c5a9de02293309a555e4d273 Mon Sep 17 00:00:00 2001 From: Nicola Baldo Date: Tue, 18 May 2010 11:35:47 +0200 Subject: [PATCH] fixed bug 843 --- examples/mpi/third-distributed.cc | 4 +--- examples/tap/tap-wifi-dumbbell.cc | 4 +--- examples/tutorial/third.cc | 4 +--- examples/wireless/mixed-wireless.cc | 4 +--- examples/wireless/simple-wifi-frame-aggregation.cc | 4 +--- examples/wireless/wifi-ap.cc | 4 +--- examples/wireless/wifi-blockack.cc | 3 +-- examples/wireless/wifi-simple-infra.cc | 4 +--- examples/wireless/wifi-wired-bridging.cc | 6 ++---- src/devices/wifi/nqap-wifi-mac.cc | 6 +++++- src/devices/wifi/qap-wifi-mac.cc | 6 +++++- 11 files changed, 20 insertions(+), 29 deletions(-) diff --git a/examples/mpi/third-distributed.cc b/examples/mpi/third-distributed.cc index 409630ba0..66a038ff6 100644 --- a/examples/mpi/third-distributed.cc +++ b/examples/mpi/third-distributed.cc @@ -139,9 +139,7 @@ main (int argc, char *argv[]) staDevices = wifi.Install (phy, mac, wifiStaNodes); mac.SetType ("ns3::NqapWifiMac", - "Ssid", SsidValue (ssid), - "BeaconGeneration", BooleanValue (true), - "BeaconInterval", TimeValue (Seconds (2.5))); + "Ssid", SsidValue (ssid)); NetDeviceContainer apDevices; apDevices = wifi.Install (phy, mac, wifiApNode); diff --git a/examples/tap/tap-wifi-dumbbell.cc b/examples/tap/tap-wifi-dumbbell.cc index 57ad07b5f..21542eec8 100644 --- a/examples/tap/tap-wifi-dumbbell.cc +++ b/examples/tap/tap-wifi-dumbbell.cc @@ -140,9 +140,7 @@ main (int argc, char *argv[]) wifi.SetRemoteStationManager ("ns3::ArfWifiManager"); wifiMac.SetType ("ns3::NqapWifiMac", - "Ssid", SsidValue (ssid), - "BeaconGeneration", BooleanValue (true), - "BeaconInterval", TimeValue (Seconds (2.5))); + "Ssid", SsidValue (ssid)); NetDeviceContainer devicesLeft = wifi.Install (wifiPhy, wifiMac, nodesLeft.Get (0)); diff --git a/examples/tutorial/third.cc b/examples/tutorial/third.cc index b3c05cb8f..97cceff6a 100644 --- a/examples/tutorial/third.cc +++ b/examples/tutorial/third.cc @@ -99,9 +99,7 @@ main (int argc, char *argv[]) staDevices = wifi.Install (phy, mac, wifiStaNodes); mac.SetType ("ns3::NqapWifiMac", - "Ssid", SsidValue (ssid), - "BeaconGeneration", BooleanValue (true), - "BeaconInterval", TimeValue (Seconds (2.5))); + "Ssid", SsidValue (ssid)); NetDeviceContainer apDevices; apDevices = wifi.Install (phy, mac, wifiApNode); diff --git a/examples/wireless/mixed-wireless.cc b/examples/wireless/mixed-wireless.cc index e348f1883..c17f34b27 100644 --- a/examples/wireless/mixed-wireless.cc +++ b/examples/wireless/mixed-wireless.cc @@ -283,9 +283,7 @@ main (int argc, char *argv[]) "ActiveProbing", BooleanValue (false)); NetDeviceContainer staDevices = wifiInfra.Install (wifiPhy, macInfra, stas); // setup ap. - macInfra.SetType ("ns3::NqapWifiMac", "Ssid", SsidValue (ssid), - "BeaconGeneration", BooleanValue (true), - "BeaconInterval", TimeValue (Seconds (2.5))); + macInfra.SetType ("ns3::NqapWifiMac", "Ssid", SsidValue (ssid)); NetDeviceContainer apDevices = wifiInfra.Install (wifiPhy, macInfra, backbone.Get (i)); // Collect all of these new devices NetDeviceContainer infraDevices (apDevices, staDevices); diff --git a/examples/wireless/simple-wifi-frame-aggregation.cc b/examples/wireless/simple-wifi-frame-aggregation.cc index b23e095a0..e991dcd28 100644 --- a/examples/wireless/simple-wifi-frame-aggregation.cc +++ b/examples/wireless/simple-wifi-frame-aggregation.cc @@ -78,9 +78,7 @@ int main (int argc, char *argv[]) staDevices = wifi.Install (phy, mac, wifiNodes); mac.SetType ("ns3::QapWifiMac", - "Ssid", SsidValue (ssid), - "BeaconGeneration", BooleanValue (true), - "BeaconInterval", TimeValue (Seconds (2.5))); + "Ssid", SsidValue (ssid)); mac.SetMsduAggregatorForAc (AC_BE, "ns3::MsduStandardAggregator", "MaxAmsduSize", UintegerValue (7935)); diff --git a/examples/wireless/wifi-ap.cc b/examples/wireless/wifi-ap.cc index 49ccaf377..a542f4c71 100644 --- a/examples/wireless/wifi-ap.cc +++ b/examples/wireless/wifi-ap.cc @@ -155,9 +155,7 @@ int main (int argc, char *argv[]) "ActiveProbing", BooleanValue (false)); staDevs = wifi.Install (wifiPhy, wifiMac, stas); // setup ap. - wifiMac.SetType ("ns3::NqapWifiMac", "Ssid", SsidValue (ssid), - "BeaconGeneration", BooleanValue (true), - "BeaconInterval", TimeValue (Seconds (2.5))); + wifiMac.SetType ("ns3::NqapWifiMac", "Ssid", SsidValue (ssid)); wifi.Install (wifiPhy, wifiMac, ap); // mobility. diff --git a/examples/wireless/wifi-blockack.cc b/examples/wireless/wifi-blockack.cc index 02b7983bd..cdd18c5be 100644 --- a/examples/wireless/wifi-blockack.cc +++ b/examples/wireless/wifi-blockack.cc @@ -77,8 +77,7 @@ int main (int argc, char const* argv[]) //mac.SetBlockAckInactivityTimeoutForAc (AC_BE, 3); NetDeviceContainer staDevice = wifi.Install (phy, mac, sta); - mac.SetType ("ns3::QapWifiMac", "Ssid", SsidValue (ssid), "BeaconGeneration", BooleanValue (true), - "BeaconInterval", TimeValue (Seconds (2.5))); + mac.SetType ("ns3::QapWifiMac", "Ssid", SsidValue (ssid)); mac.SetBlockAckThresholdForAc (AC_BE, 0); NetDeviceContainer apDevice = wifi.Install (phy, mac, ap); diff --git a/examples/wireless/wifi-simple-infra.cc b/examples/wireless/wifi-simple-infra.cc index f9ec5021f..c4cd9f0fa 100644 --- a/examples/wireless/wifi-simple-infra.cc +++ b/examples/wireless/wifi-simple-infra.cc @@ -160,9 +160,7 @@ int main (int argc, char *argv[]) NetDeviceContainer staDevice = wifi.Install (wifiPhy, wifiMac, c.Get(0)); NetDeviceContainer devices = staDevice; // setup ap. - wifiMac.SetType ("ns3::NqapWifiMac", "Ssid", SsidValue (ssid), - "BeaconGeneration", BooleanValue (true), - "BeaconInterval", TimeValue (Seconds (2.5))); + wifiMac.SetType ("ns3::NqapWifiMac", "Ssid", SsidValue (ssid)); NetDeviceContainer apDevice = wifi.Install (wifiPhy, wifiMac, c.Get(1)); devices.Add (apDevice); diff --git a/examples/wireless/wifi-wired-bridging.cc b/examples/wireless/wifi-wired-bridging.cc index 87438c548..92a2fb2a0 100644 --- a/examples/wireless/wifi-wired-bridging.cc +++ b/examples/wireless/wifi-wired-bridging.cc @@ -125,9 +125,7 @@ int main (int argc, char *argv[]) mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel"); mobility.Install (backboneNodes.Get (i)); wifiMac.SetType ("ns3::NqapWifiMac", - "Ssid", SsidValue (ssid), - "BeaconGeneration", BooleanValue (true), - "BeaconInterval", TimeValue (Seconds (2.5))); + "Ssid", SsidValue (ssid)); apDev = wifi.Install (wifiPhy, wifiMac, backboneNodes.Get (i)); NetDeviceContainer bridgeDev; @@ -191,7 +189,7 @@ int main (int argc, char *argv[]) os.open ("wifi-wired-bridging.mob"); MobilityHelper::EnableAsciiAll (os); - Simulator::Stop (Seconds (100.0)); + Simulator::Stop (Seconds (5.0)); Simulator::Run (); Simulator::Destroy (); } diff --git a/src/devices/wifi/nqap-wifi-mac.cc b/src/devices/wifi/nqap-wifi-mac.cc index 1f66944be..8903ff969 100644 --- a/src/devices/wifi/nqap-wifi-mac.cc +++ b/src/devices/wifi/nqap-wifi-mac.cc @@ -50,7 +50,7 @@ NqapWifiMac::GetTypeId (void) .SetParent () .AddConstructor () .AddAttribute ("BeaconInterval", "Delay between two beacons", - TimeValue (Seconds (0.1)), + TimeValue (MicroSeconds (102400)), MakeTimeAccessor (&NqapWifiMac::GetBeaconInterval, &NqapWifiMac::SetBeaconInterval), MakeTimeChecker ()) @@ -280,6 +280,10 @@ void NqapWifiMac::SetBeaconInterval (Time interval) { NS_LOG_FUNCTION (this << interval); + if ((interval.GetMicroSeconds () % 1024) != 0) + { + NS_LOG_WARN ("beacon interval should be multiple of 1024us, see IEEE Std. 802.11-2007, section 11.1.1.1"); + } m_beaconInterval = interval; } void diff --git a/src/devices/wifi/qap-wifi-mac.cc b/src/devices/wifi/qap-wifi-mac.cc index dff043919..9f2fb3ea8 100644 --- a/src/devices/wifi/qap-wifi-mac.cc +++ b/src/devices/wifi/qap-wifi-mac.cc @@ -52,7 +52,7 @@ QapWifiMac::GetTypeId (void) .SetParent () .AddConstructor () .AddAttribute ("BeaconInterval", "Delay between two beacons", - TimeValue (Seconds (0.1)), + TimeValue (MicroSeconds (102400)), MakeTimeAccessor (&QapWifiMac::GetBeaconInterval, &QapWifiMac::SetBeaconInterval), MakeTimeChecker ()) @@ -352,6 +352,10 @@ void QapWifiMac::SetBeaconInterval (Time interval) { NS_LOG_FUNCTION (this << interval); + if ((interval.GetMicroSeconds () % 1024) != 0) + { + NS_LOG_WARN ("beacon interval should be multiple of 1024us, see IEEE Std. 802.11-2007, section 11.1.1.1"); + } m_beaconInterval = interval; }