diff --git a/examples/wireless/wifi-80211e-txop.cc b/examples/wireless/wifi-80211e-txop.cc index a279d81fb..412249d21 100644 --- a/examples/wireless/wifi-80211e-txop.cc +++ b/examples/wireless/wifi-80211e-txop.cc @@ -49,8 +49,8 @@ // // The configuration is the following on the 4 networks: // - STA A sends AC_BE traffic to AP A with default AC_BE TXOP value of 0 (1 MSDU); -// - STA B sends AC_BE traffic to AP B with non-default AC_BE TXOP of 3.008 ms; -// - STA C sends AC_VI traffic to AP C with default AC_VI TXOP of 3.008 ms; +// - STA B sends AC_BE traffic to AP B with non-default AC_BE TXOP of 4096 us; +// - STA C sends AC_VI traffic to AP C with default AC_VI TXOP of 4096 us; // - STA D sends AC_VI traffic to AP D with non-default AC_VI TXOP value of 0 (1 MSDU); // // The user can select the distance between the stations and the APs, can enable/disable the RTS/CTS mechanism @@ -97,6 +97,7 @@ int main (int argc, char *argv[]) double distance = 5; //meters bool enablePcap = 0; bool verifyResults = 0; //used for regression + Time txopLimit = MicroSeconds (4096); CommandLine cmd (__FILE__); cmd.AddValue ("payloadSize", "Payload size in bytes", payloadSize); @@ -161,7 +162,7 @@ int main (int argc, char *argv[]) Ptr edca; wifi_mac->GetAttribute ("BE_Txop", ptr); edca = ptr.Get (); - edca->SetTxopLimit (MicroSeconds (3008)); + edca->SetTxopLimit (txopLimit); // Trace TXOP duration for BE on STA1 dev = wifiStaNodes.Get (1)->GetDevice (0); @@ -378,30 +379,30 @@ int main (int argc, char *argv[]) } throughput = totalPacketsThroughB * payloadSize * 8 / (simulationTime * 1000000.0); - std::cout << "AC_BE with non-default TXOP limit (3.008ms): " << '\n' + std::cout << "AC_BE with non-default TXOP limit (4.096ms): " << '\n' << " Throughput = " << throughput << " Mbit/s" << '\n'; - if (verifyResults && (throughput < 35 || throughput > 36)) + if (verifyResults && (throughput < 36.5 || throughput > 37)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); } std::cout << " Maximum TXOP duration = " << beTxopTracer.m_max.GetMicroSeconds () << " us" << '\n'; - if (verifyResults && (beTxopTracer.m_max < MicroSeconds (2700) || beTxopTracer.m_max > MicroSeconds (3008))) + if (verifyResults && (beTxopTracer.m_max < MicroSeconds (3008) || beTxopTracer.m_max > txopLimit)) { NS_LOG_ERROR ("Maximum TXOP duration " << beTxopTracer.m_max << " is not in the expected boundaries!"); exit (1); } throughput = totalPacketsThroughC * payloadSize * 8 / (simulationTime * 1000000.0); - std::cout << "AC_VI with default TXOP limit (3.008ms): " << '\n' + std::cout << "AC_VI with default TXOP limit (4.096ms): " << '\n' << " Throughput = " << throughput << " Mbit/s" << '\n'; - if (verifyResults && (throughput < 35.5 || throughput > 36.5)) + if (verifyResults && (throughput < 37.0 || throughput > 37.5)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); } std::cout << " Maximum TXOP duration = " << viTxopTracer.m_max.GetMicroSeconds () << " us" << '\n'; - if (verifyResults && (viTxopTracer.m_max < MicroSeconds (2700) || viTxopTracer.m_max > MicroSeconds (3008))) + if (verifyResults && (viTxopTracer.m_max < MicroSeconds (3008) || viTxopTracer.m_max > txopLimit)) { NS_LOG_ERROR ("Maximum TXOP duration " << viTxopTracer.m_max << " is not in the expected boundaries!"); exit (1); diff --git a/src/mesh/test/dot11s/hwmp-proactive-regression-test-0-1.pcap b/src/mesh/test/dot11s/hwmp-proactive-regression-test-0-1.pcap index d1e8c669b..7bb053ac4 100644 Binary files a/src/mesh/test/dot11s/hwmp-proactive-regression-test-0-1.pcap and b/src/mesh/test/dot11s/hwmp-proactive-regression-test-0-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-proactive-regression-test-1-1.pcap b/src/mesh/test/dot11s/hwmp-proactive-regression-test-1-1.pcap index 4bb587e50..5d1256467 100644 Binary files a/src/mesh/test/dot11s/hwmp-proactive-regression-test-1-1.pcap and b/src/mesh/test/dot11s/hwmp-proactive-regression-test-1-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-proactive-regression-test-2-1.pcap b/src/mesh/test/dot11s/hwmp-proactive-regression-test-2-1.pcap index 700b08bcd..f9b93200d 100644 Binary files a/src/mesh/test/dot11s/hwmp-proactive-regression-test-2-1.pcap and b/src/mesh/test/dot11s/hwmp-proactive-regression-test-2-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-proactive-regression-test-3-1.pcap b/src/mesh/test/dot11s/hwmp-proactive-regression-test-3-1.pcap index 00daca2f9..0d23240fa 100644 Binary files a/src/mesh/test/dot11s/hwmp-proactive-regression-test-3-1.pcap and b/src/mesh/test/dot11s/hwmp-proactive-regression-test-3-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-proactive-regression-test-4-1.pcap b/src/mesh/test/dot11s/hwmp-proactive-regression-test-4-1.pcap index 64a107b9a..6493dad22 100644 Binary files a/src/mesh/test/dot11s/hwmp-proactive-regression-test-4-1.pcap and b/src/mesh/test/dot11s/hwmp-proactive-regression-test-4-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-reactive-regression-test-0-1.pcap b/src/mesh/test/dot11s/hwmp-reactive-regression-test-0-1.pcap index 2ba9109b0..2de0d9a5a 100644 Binary files a/src/mesh/test/dot11s/hwmp-reactive-regression-test-0-1.pcap and b/src/mesh/test/dot11s/hwmp-reactive-regression-test-0-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-reactive-regression-test-1-1.pcap b/src/mesh/test/dot11s/hwmp-reactive-regression-test-1-1.pcap index 21381af29..15aa0b47e 100644 Binary files a/src/mesh/test/dot11s/hwmp-reactive-regression-test-1-1.pcap and b/src/mesh/test/dot11s/hwmp-reactive-regression-test-1-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-reactive-regression-test-2-1.pcap b/src/mesh/test/dot11s/hwmp-reactive-regression-test-2-1.pcap index e4d092b36..52f56cf5b 100644 Binary files a/src/mesh/test/dot11s/hwmp-reactive-regression-test-2-1.pcap and b/src/mesh/test/dot11s/hwmp-reactive-regression-test-2-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-reactive-regression-test-3-1.pcap b/src/mesh/test/dot11s/hwmp-reactive-regression-test-3-1.pcap index 7530ea0ab..fcbbbc4fb 100644 Binary files a/src/mesh/test/dot11s/hwmp-reactive-regression-test-3-1.pcap and b/src/mesh/test/dot11s/hwmp-reactive-regression-test-3-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-reactive-regression-test-4-1.pcap b/src/mesh/test/dot11s/hwmp-reactive-regression-test-4-1.pcap index 56deb39d1..2f0fb8e62 100644 Binary files a/src/mesh/test/dot11s/hwmp-reactive-regression-test-4-1.pcap and b/src/mesh/test/dot11s/hwmp-reactive-regression-test-4-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-reactive-regression-test-5-1.pcap b/src/mesh/test/dot11s/hwmp-reactive-regression-test-5-1.pcap index 74959bcc6..507039f6a 100644 Binary files a/src/mesh/test/dot11s/hwmp-reactive-regression-test-5-1.pcap and b/src/mesh/test/dot11s/hwmp-reactive-regression-test-5-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-simplest-regression-test-0-1.pcap b/src/mesh/test/dot11s/hwmp-simplest-regression-test-0-1.pcap index 32b58d0d0..664ad5954 100644 Binary files a/src/mesh/test/dot11s/hwmp-simplest-regression-test-0-1.pcap and b/src/mesh/test/dot11s/hwmp-simplest-regression-test-0-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-simplest-regression-test-1-1.pcap b/src/mesh/test/dot11s/hwmp-simplest-regression-test-1-1.pcap index e644070fb..c04cb9bd5 100644 Binary files a/src/mesh/test/dot11s/hwmp-simplest-regression-test-1-1.pcap and b/src/mesh/test/dot11s/hwmp-simplest-regression-test-1-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-target-flags-regression-test-0-1.pcap b/src/mesh/test/dot11s/hwmp-target-flags-regression-test-0-1.pcap index 8be1b42e7..bc55ea3db 100644 Binary files a/src/mesh/test/dot11s/hwmp-target-flags-regression-test-0-1.pcap and b/src/mesh/test/dot11s/hwmp-target-flags-regression-test-0-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-target-flags-regression-test-1-1.pcap b/src/mesh/test/dot11s/hwmp-target-flags-regression-test-1-1.pcap index f890372e3..0f7dbaf41 100644 Binary files a/src/mesh/test/dot11s/hwmp-target-flags-regression-test-1-1.pcap and b/src/mesh/test/dot11s/hwmp-target-flags-regression-test-1-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-target-flags-regression-test-2-1.pcap b/src/mesh/test/dot11s/hwmp-target-flags-regression-test-2-1.pcap index fb30a8da2..cb46d1545 100644 Binary files a/src/mesh/test/dot11s/hwmp-target-flags-regression-test-2-1.pcap and b/src/mesh/test/dot11s/hwmp-target-flags-regression-test-2-1.pcap differ diff --git a/src/mesh/test/dot11s/hwmp-target-flags-regression-test-3-1.pcap b/src/mesh/test/dot11s/hwmp-target-flags-regression-test-3-1.pcap index 4d36698d0..0ebb4197a 100644 Binary files a/src/mesh/test/dot11s/hwmp-target-flags-regression-test-3-1.pcap and b/src/mesh/test/dot11s/hwmp-target-flags-regression-test-3-1.pcap differ diff --git a/src/mesh/test/dot11s/pmp-regression-test-0-1.pcap b/src/mesh/test/dot11s/pmp-regression-test-0-1.pcap index 3c5eece19..58e4d132b 100644 Binary files a/src/mesh/test/dot11s/pmp-regression-test-0-1.pcap and b/src/mesh/test/dot11s/pmp-regression-test-0-1.pcap differ diff --git a/src/mesh/test/dot11s/pmp-regression-test-1-1.pcap b/src/mesh/test/dot11s/pmp-regression-test-1-1.pcap index 5603af183..3af641c1e 100644 Binary files a/src/mesh/test/dot11s/pmp-regression-test-1-1.pcap and b/src/mesh/test/dot11s/pmp-regression-test-1-1.pcap differ diff --git a/src/wifi/model/wifi-mac.cc b/src/wifi/model/wifi-mac.cc index 93c112f61..63167d152 100644 --- a/src/wifi/model/wifi-mac.cc +++ b/src/wifi/model/wifi-mac.cc @@ -615,14 +615,14 @@ WifiMac::ConfigureDcf (Ptr dcf, uint32_t cwmin, uint32_t cwmax, cwMaxValue = (cwmin + 1) / 2 - 1; aifsnValue = 2; txopLimitDsss = MicroSeconds (3264); - txopLimitNoDsss = MicroSeconds (1504); // TODO should be MicroSeconds (2080) + txopLimitNoDsss = MicroSeconds (2080); break; case AC_VI: cwMinValue = (cwmin + 1) / 2 - 1; cwMaxValue = cwmin; aifsnValue = 2; txopLimitDsss = MicroSeconds (6016); - txopLimitNoDsss = MicroSeconds (3008); // TODO should be MicroSeconds (4096) + txopLimitNoDsss = MicroSeconds (4096); break; case AC_BE: cwMinValue = cwmin; diff --git a/src/wifi/test/wifi-aggregation-test.cc b/src/wifi/test/wifi-aggregation-test.cc index b40f18693..5f8b5d970 100644 --- a/src/wifi/test/wifi-aggregation-test.cc +++ b/src/wifi/test/wifi-aggregation-test.cc @@ -38,6 +38,7 @@ #include "ns3/yans-wifi-helper.h" #include "ns3/mobility-helper.h" #include "ns3/pointer.h" +#include #include "ns3/packet-socket-server.h" #include "ns3/packet-socket-client.h" #include "ns3/packet-socket-helper.h" @@ -488,6 +489,8 @@ TwoLevelAggregationTest::DoRun (void) m_mac->SetAttribute ("VI_MaxAmsduSize", UintegerValue (3050)); // max 2 MSDUs per A-MSDU m_mac->SetAttribute ("VI_MaxAmpduSize", UintegerValue (65535)); + m_mac->GetVIQueue ()->SetAttribute ("TxopLimits", + AttributeContainerValue (std::vector