diff --git a/examples/wireless/80211e-txop.cc b/examples/wireless/80211e-txop.cc index 44f8eb0d4..dc477d5a1 100644 --- a/examples/wireless/80211e-txop.cc +++ b/examples/wireless/80211e-txop.cc @@ -62,12 +62,14 @@ int main (int argc, char *argv[]) uint64_t simulationTime = 10; //seconds double distance = 5; //meters bool enablePcap = 0; + bool verifyResults = 0; //used for regression CommandLine cmd; cmd.AddValue ("payloadSize", "Payload size in bytes", payloadSize); cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime); cmd.AddValue ("distance", "Distance in meters between the station and the access point", distance); cmd.AddValue ("enablePcap", "Enable/disable pcap file generation", enablePcap); + cmd.AddValue ("verifyResults", "Enable/disable results verification at the end of the simulation", verifyResults); cmd.Parse (argc, argv); NodeContainer wifiStaNode; @@ -310,7 +312,7 @@ int main (int argc, char *argv[]) uint32_t totalPacketsThrough = DynamicCast (serverAppA.Get (0))->GetReceived (); double throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); std::cout << "Throughput for AC_BE with default TXOP limit (0ms): " << throughput << " Mbit/s" << '\n'; - if (throughput < 28 || throughput > 29) + if (verifyResults && (throughput < 28 || throughput > 29)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -319,7 +321,7 @@ int main (int argc, char *argv[]) totalPacketsThrough = DynamicCast (serverAppB.Get (0))->GetReceived (); throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); std::cout << "Throughput for AC_BE with non-default TXOP limit (3.008ms): " << throughput << " Mbit/s" << '\n'; - if (throughput < 35.5 || throughput > 36.5) + if (verifyResults && (throughput < 35.5 || throughput > 36.5)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -328,7 +330,7 @@ int main (int argc, char *argv[]) totalPacketsThrough = DynamicCast (serverAppC.Get (0))->GetReceived (); throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); std::cout << "Throughput for AC_VI with default TXOP limit (3.008ms): " << throughput << " Mbit/s" << '\n'; - if (throughput < 36 || throughput > 37) + if (verifyResults && (throughput < 36 || throughput > 37)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -337,7 +339,7 @@ int main (int argc, char *argv[]) totalPacketsThrough = DynamicCast (serverAppD.Get (0))->GetReceived (); throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); std::cout << "Throughput for AC_VI with non-default TXOP limit (0ms): " << throughput << " Mbit/s" << '\n'; - if (throughput < 31.5 || throughput > 32.5) + if (verifyResults && (throughput < 31.5 || throughput > 32.5)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); diff --git a/examples/wireless/examples-to-run.py b/examples/wireless/examples-to-run.py index f8718f50f..ee5a5a36b 100755 --- a/examples/wireless/examples-to-run.py +++ b/examples/wireless/examples-to-run.py @@ -30,13 +30,13 @@ cpp_examples = [ ("ofdm-validation", "True", "True"), ("ofdm-vht-validation", "True", "True"), ("ofdm-he-validation", "True", "True"), - ("ht-wifi-network --simulationTime=0.1", "True", "True"), - ("vht-wifi-network --simulationTime=0.1", "True", "True"), - ("he-wifi-network --simulationTime=0.25", "True", "True"), - ("simple-ht-hidden-stations --simulationTime=1", "True", "True"), + ("ht-wifi-network --simulationTime=0.1 --minExpectedThroughput=5 --maxExpectedThroughput=134", "True", "True"), + ("vht-wifi-network --simulationTime=0.1 --minExpectedThroughput=5 --maxExpectedThroughput=555", "True", "True"), + ("he-wifi-network --simulationTime=0.25 --minExpectedThroughput=6.5 --maxExpectedThroughput=754", "True", "True"), + ("simple-ht-hidden-stations --simulationTime=1 --minExpectedThroughput=16.7 --maxExpectedThroughput=16.8", "True", "True"), ("mixed-network --simulationTime=1", "True", "True"), - ("wifi-aggregation --simulationTime=1", "True", "True"), - ("80211e-txop --simulationTime=1", "True", "True"), + ("wifi-aggregation --simulationTime=1 --verifyResults=1", "True", "True"), + ("80211e-txop --simulationTime=1 --verifyResults=1", "True", "True"), ("wifi-multi-tos --simulationTime=1 --nWifi=16 --useRts=1 --useShortGuardInterval=1", "True", "True"), ("wifi-tcp", "True", "True"), ("wifi-spectrum-per-example --distance=52 --index=3 --wifiType=ns3::SpectrumWifiPhy --simulationTime=1", "True", "True"), diff --git a/examples/wireless/he-wifi-network.cc b/examples/wireless/he-wifi-network.cc index cfbbb98d9..88d7fcb16 100644 --- a/examples/wireless/he-wifi-network.cc +++ b/examples/wireless/he-wifi-network.cc @@ -51,12 +51,16 @@ int main (int argc, char *argv[]) double simulationTime = 10; //seconds double distance = 1.0; //meters int mcs = -1; // -1 indicates an unset value + double minExpectedThroughput = 0; + double maxExpectedThroughput = 0; CommandLine cmd; cmd.AddValue ("distance", "Distance in meters between the station and the access point", distance); cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime); cmd.AddValue ("udp", "UDP if set to 1, TCP otherwise", udp); cmd.AddValue ("mcs", "if set, limit testing to a specific MCS (0-7)", mcs); + cmd.AddValue ("minExpectedThroughput", "if set, simulation fails if the lowest throughput is below this value", minExpectedThroughput); + cmd.AddValue ("maxExpectedThroughput", "if set, simulation fails if the highest throughput is above this value", maxExpectedThroughput); cmd.Parse (argc,argv); double prevThroughput [12]; @@ -216,18 +220,18 @@ int main (int argc, char *argv[]) double throughput = (rxBytes * 8) / (simulationTime * 1000000.0); //Mbit/s std::cout << mcs << "\t\t\t" << channelWidth << " MHz\t\t\t" << gi << " ns\t\t\t" << throughput << " Mbit/s" << std::endl; //test first element - if (udp && mcs == 0 && channelWidth == 20 && gi == 3200) + if (mcs == 0 && channelWidth == 20 && gi == 3200) { - if (throughput < 6 || throughput > 7) + if (throughput < minExpectedThroughput) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not expected!"); exit (1); } } //test last element - if (udp && mcs == 11 && channelWidth == 160 && gi == 800) + if (mcs == 11 && channelWidth == 160 && gi == 800) { - if (throughput < 750 || throughput > 800) + if (maxExpectedThroughput > 0 && throughput > maxExpectedThroughput) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not expected!"); exit (1); diff --git a/examples/wireless/ht-wifi-network.cc b/examples/wireless/ht-wifi-network.cc index 2ed274916..53063237e 100644 --- a/examples/wireless/ht-wifi-network.cc +++ b/examples/wireless/ht-wifi-network.cc @@ -53,6 +53,8 @@ int main (int argc, char *argv[]) double distance = 1.0; //meters double frequency = 5.0; //whether 2.4 or 5.0 GHz int mcs = -1; // -1 indicates an unset value + double minExpectedThroughput = 0; + double maxExpectedThroughput = 0; CommandLine cmd; cmd.AddValue ("frequency", "Whether working in the 2.4 or 5.0 GHz band (other values gets rejected)", frequency); @@ -60,6 +62,8 @@ int main (int argc, char *argv[]) cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime); cmd.AddValue ("udp", "UDP if set to 1, TCP otherwise", udp); cmd.AddValue ("mcs", "if set, limit testing to a specific MCS (0-7)", mcs); + cmd.AddValue ("minExpectedThroughput", "if set, simulation fails if the lowest throughput is below this value", minExpectedThroughput); + cmd.AddValue ("maxExpectedThroughput", "if set, simulation fails if the highest throughput is above this value", maxExpectedThroughput); cmd.Parse (argc,argv); double prevThroughput [8]; @@ -234,18 +238,18 @@ int main (int argc, char *argv[]) double throughput = (rxBytes * 8) / (simulationTime * 1000000.0); //Mbit/s std::cout << mcs << "\t\t\t" << channelWidth << " MHz\t\t\t" << sgi << "\t\t\t" << throughput << " Mbit/s" << std::endl; //test first element - if (udp && mcs == 0 && channelWidth == 20 && sgi == 0) + if (mcs == 0 && channelWidth == 20 && sgi == 0) { - if (throughput < 5.25 || throughput > 6.25) + if (throughput < minExpectedThroughput) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not expected!"); exit (1); } } //test last element - if (udp && mcs == 7 && channelWidth == 40 && sgi == 1) + if (mcs == 7 && channelWidth == 40 && sgi == 1) { - if (throughput < 133 || throughput > 135) + if (maxExpectedThroughput > 0 && throughput > maxExpectedThroughput) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not expected!"); exit (1); diff --git a/examples/wireless/mixed-network.cc b/examples/wireless/mixed-network.cc index 0af0b4721..8fd0464e8 100644 --- a/examples/wireless/mixed-network.cc +++ b/examples/wireless/mixed-network.cc @@ -415,11 +415,14 @@ int main (int argc, char *argv[]) params.isUdp = true; params.payloadSize = 1472; //bytes params.simulationTime = 10; //seconds + + bool verifyResults = 0; //used for regression CommandLine cmd; cmd.AddValue ("payloadSize", "Payload size in bytes", params.payloadSize); cmd.AddValue ("simulationTime", "Simulation time in seconds", params.simulationTime); cmd.AddValue ("isUdp", "UDP if set to 1, TCP otherwise", params.isUdp); + cmd.AddValue ("verifyResults", "Enable/disable results verification at the end of the simulation", verifyResults); cmd.Parse (argc, argv); Experiment experiment; @@ -427,7 +430,7 @@ int main (int argc, char *argv[]) params.testName = "g only with all g features disabled"; throughput = experiment.Run (params); - if (throughput < 22.5 || throughput > 23.5) + if (verifyResults && (throughput < 22.5 || throughput > 23.5)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -440,7 +443,7 @@ int main (int argc, char *argv[]) params.enableShortPlcpPreamble = false; params.nWifiB = 0; throughput = experiment.Run (params); - if (throughput < 29 || throughput > 30) + if (verifyResults && (throughput < 29 || throughput > 30)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -453,7 +456,7 @@ int main (int argc, char *argv[]) params.enableShortPlcpPreamble = false; params.nWifiB = 1; throughput = experiment.Run (params); - if (throughput < 22.5 || throughput > 23.5) + if (verifyResults && (throughput < 22.5 || throughput > 23.5)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -466,7 +469,7 @@ int main (int argc, char *argv[]) params.enableShortPlcpPreamble = true; params.nWifiB = 1; throughput = experiment.Run (params); - if (throughput < 22.5 || throughput > 23.5) + if (verifyResults && (throughput < 22.5 || throughput > 23.5)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -480,7 +483,7 @@ int main (int argc, char *argv[]) params.enableShortPlcpPreamble = false; params.nWifiB = 1; throughput = experiment.Run (params); - if (throughput < 19 || throughput > 20) + if (verifyResults && (throughput < 19 || throughput > 20)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -493,7 +496,7 @@ int main (int argc, char *argv[]) params.enableShortPlcpPreamble = true; params.nWifiB = 1; throughput = experiment.Run (params); - if (throughput < 19 || throughput > 20) + if (verifyResults && (throughput < 19 || throughput > 20)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -507,7 +510,7 @@ int main (int argc, char *argv[]) params.enableShortPlcpPreamble = false; params.nWifiB = 1; throughput = experiment.Run (params); - if (throughput < 20.5 || throughput > 21.5) + if (verifyResults && (throughput < 20.5 || throughput > 21.5)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -520,7 +523,7 @@ int main (int argc, char *argv[]) params.enableShortPlcpPreamble = true; params.nWifiB = 1; throughput = experiment.Run (params); - if (throughput < 20.5 || throughput > 21.5) + if (verifyResults && (throughput < 20.5 || throughput > 21.5)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -542,7 +545,7 @@ int main (int argc, char *argv[]) params.nWifiNGreenfield = 0; params.nGreenfieldHasTraffic = false; throughput = experiment.Run (params); - if (throughput < 43 || throughput > 44) + if (verifyResults && (throughput < 43 || throughput > 44)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -564,7 +567,7 @@ int main (int argc, char *argv[]) params.nWifiNGreenfield = 1; params.nGreenfieldHasTraffic = true; throughput = experiment.Run (params); - if (throughput < 44 || throughput > 45) + if (verifyResults && (throughput < 44 || throughput > 45)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -586,7 +589,7 @@ int main (int argc, char *argv[]) params.nWifiNGreenfield = 1; params.nGreenfieldHasTraffic = true; throughput = experiment.Run (params); - if (throughput < 43 || throughput > 44) + if (verifyResults && (throughput < 43 || throughput > 44)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -608,7 +611,7 @@ int main (int argc, char *argv[]) params.nWifiNGreenfield = 1; params.nGreenfieldHasTraffic = true; throughput = experiment.Run (params); - if (throughput < 43 || throughput > 44) + if (verifyResults && (throughput < 43 || throughput > 44)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -630,7 +633,7 @@ int main (int argc, char *argv[]) params.nWifiNGreenfield = 1; params.nGreenfieldHasTraffic = true; throughput = experiment.Run (params); - if (throughput < 44 || throughput > 45) + if (verifyResults && (throughput < 44 || throughput > 45)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -654,7 +657,7 @@ int main (int argc, char *argv[]) params.nWifiNGreenfield = 0; params.nGreenfieldHasTraffic = false; throughput = experiment.Run (params); - if (throughput < 44 || throughput > 45) + if (verifyResults && (throughput < 44 || throughput > 45)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -678,7 +681,7 @@ int main (int argc, char *argv[]) params.nWifiNGreenfield = 0; params.nGreenfieldHasTraffic = false; throughput = experiment.Run (params); - if (throughput < 44 || throughput > 45) + if (verifyResults && (throughput < 44 || throughput > 45)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -702,7 +705,7 @@ int main (int argc, char *argv[]) params.nWifiNGreenfield = 0; params.nGreenfieldHasTraffic = false; throughput = experiment.Run (params); - if (throughput < 43 || throughput > 44) + if (verifyResults && (throughput < 43 || throughput > 44)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); diff --git a/examples/wireless/simple-ht-hidden-stations.cc b/examples/wireless/simple-ht-hidden-stations.cc index c505cfb9b..f76e2c42c 100644 --- a/examples/wireless/simple-ht-hidden-stations.cc +++ b/examples/wireless/simple-ht-hidden-stations.cc @@ -52,12 +52,16 @@ int main (int argc, char *argv[]) uint32_t nMpdus = 1; uint32_t maxAmpduSize = 0; bool enableRts = 0; + double minExpectedThroughput = 0; + double maxExpectedThroughput = 0; CommandLine cmd; cmd.AddValue ("nMpdus", "Number of aggregated MPDUs", nMpdus); cmd.AddValue ("payloadSize", "Payload size in bytes", payloadSize); - cmd.AddValue ("enableRts", "Enable RTS/CTS", enableRts); // 1: RTS/CTS enabled; 0: RTS/CTS disabled + cmd.AddValue ("enableRts", "Enable RTS/CTS", enableRts); cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime); + cmd.AddValue ("minExpectedThroughput", "if set, simulation fails if the lowest throughput is below this value", minExpectedThroughput); + cmd.AddValue ("maxExpectedThroughput", "if set, simulation fails if the highest throughput is above this value", maxExpectedThroughput); cmd.Parse (argc, argv); if (!enableRts) @@ -166,7 +170,7 @@ int main (int argc, char *argv[]) uint32_t totalPacketsThrough = DynamicCast (serverApp.Get (0))->GetReceived (); double throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); std::cout << "Throughput: " << throughput << " Mbit/s" << '\n'; - if (throughput < 16.75 || throughput > 17) + if (throughput < minExpectedThroughput || (maxExpectedThroughput > 0 && throughput > maxExpectedThroughput)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); diff --git a/examples/wireless/vht-wifi-network.cc b/examples/wireless/vht-wifi-network.cc index 2bdab79e6..24502cd31 100644 --- a/examples/wireless/vht-wifi-network.cc +++ b/examples/wireless/vht-wifi-network.cc @@ -51,12 +51,16 @@ int main (int argc, char *argv[]) double simulationTime = 10; //seconds double distance = 1.0; //meters int mcs = -1; // -1 indicates an unset value + double minExpectedThroughput = 0; + double maxExpectedThroughput = 0; CommandLine cmd; cmd.AddValue ("distance", "Distance in meters between the station and the access point", distance); cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime); cmd.AddValue ("udp", "UDP if set to 1, TCP otherwise", udp); cmd.AddValue ("mcs", "if set, limit testing to a specific MCS (0-7)", mcs); + cmd.AddValue ("minExpectedThroughput", "if set, simulation fails if the lowest throughput is below this value", minExpectedThroughput); + cmd.AddValue ("maxExpectedThroughput", "if set, simulation fails if the highest throughput is above this value", maxExpectedThroughput); cmd.Parse (argc,argv); double prevThroughput [8]; @@ -221,18 +225,18 @@ int main (int argc, char *argv[]) double throughput = (rxBytes * 8) / (simulationTime * 1000000.0); //Mbit/s std::cout << mcs << "\t\t\t" << channelWidth << " MHz\t\t\t" << sgi << "\t\t\t" << throughput << " Mbit/s" << std::endl; //test first element - if (udp && mcs == 0 && channelWidth == 20 && sgi == 0) + if (mcs == 0 && channelWidth == 20 && sgi == 0) { - if (throughput < 5.1 || throughput > 6.1) + if (throughput < minExpectedThroughput) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not expected!"); exit (1); } } //test last element - if (udp && mcs == 9 && channelWidth == 160 && sgi == 1) + if (mcs == 9 && channelWidth == 160 && sgi == 1) { - if (throughput < 550 || throughput > 650) + if (maxExpectedThroughput > 0 && throughput > maxExpectedThroughput) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not expected!"); exit (1); diff --git a/examples/wireless/wifi-aggregation.cc b/examples/wireless/wifi-aggregation.cc index 7cf7f7620..1c49ddc7d 100644 --- a/examples/wireless/wifi-aggregation.cc +++ b/examples/wireless/wifi-aggregation.cc @@ -69,6 +69,7 @@ int main (int argc, char *argv[]) double distance = 5; //meters bool enableRts = 0; bool enablePcap = 0; + bool verifyResults = 0; //used for regression CommandLine cmd; cmd.AddValue ("payloadSize", "Payload size in bytes", payloadSize); @@ -76,6 +77,7 @@ int main (int argc, char *argv[]) cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime); cmd.AddValue ("distance", "Distance in meters between the station and the access point", distance); cmd.AddValue ("enablePcap", "Enable/disable pcap file generation", enablePcap); + cmd.AddValue ("verifyResults", "Enable/disable results verification at the end of the simulation", verifyResults); cmd.Parse (argc, argv); Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", enableRts ? StringValue ("0") : StringValue ("999999")); @@ -282,7 +284,7 @@ int main (int argc, char *argv[]) uint32_t totalPacketsThrough = DynamicCast (serverAppA.Get (0))->GetReceived (); double throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); std::cout << "Throughput with default configuration (A-MPDU aggregation enabled, 65kB): " << throughput << " Mbit/s" << '\n'; - if (throughput < 59.5 || throughput > 60.5) + if (verifyResults && (throughput < 59.5 || throughput > 60.5)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -291,7 +293,7 @@ int main (int argc, char *argv[]) totalPacketsThrough = DynamicCast (serverAppB.Get (0))->GetReceived (); throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); std::cout << "Throughput with aggregation disabled: " << throughput << " Mbit/s" << '\n'; - if (throughput < 30 || throughput > 30.5) + if (verifyResults && (throughput < 30 || throughput > 30.5)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -300,7 +302,7 @@ int main (int argc, char *argv[]) totalPacketsThrough = DynamicCast (serverAppC.Get (0))->GetReceived (); throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); std::cout << "Throughput with A-MPDU disabled and A-MSDU enabled (8kB): " << throughput << " Mbit/s" << '\n'; - if (throughput < 51 || throughput > 52) + if (verifyResults && (throughput < 51 || throughput > 52)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1); @@ -309,7 +311,7 @@ int main (int argc, char *argv[]) totalPacketsThrough = DynamicCast (serverAppD.Get (0))->GetReceived (); throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); std::cout << "Throughput with A-MPDU enabled (32kB) and A-MSDU enabled (4kB): " << throughput << " Mbit/s" << '\n'; - if (throughput < 58 || throughput > 59) + if (verifyResults && (throughput < 58 || throughput > 59)) { NS_LOG_ERROR ("Obtained throughput " << throughput << " is not in the expected boundaries!"); exit (1);