From b1643b280486bd08edcdbf93fd999c6a071e16f0 Mon Sep 17 00:00:00 2001
From: Pasquale Imputato
Date: Wed, 27 Sep 2017 21:49:58 -0700
Subject: [PATCH] traffic-control: Set sane defaults for codel vs pfifo basic
test
---
.../examples/codel-vs-pfifo-basic-test.cc | 23 ++++++++++++++-----
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/src/traffic-control/examples/codel-vs-pfifo-basic-test.cc b/src/traffic-control/examples/codel-vs-pfifo-basic-test.cc
index fb1e6c751..209d2205f 100644
--- a/src/traffic-control/examples/codel-vs-pfifo-basic-test.cc
+++ b/src/traffic-control/examples/codel-vs-pfifo-basic-test.cc
@@ -84,10 +84,11 @@ int main (int argc, char *argv[])
std::string accessDelay = "0.1ms";
std::string queueDiscType = "PfifoFast"; //PfifoFast or CoDel
- uint32_t queueSize = 1000; //in packets
+ uint32_t queueDiscSize = 1000; //in packets
+ uint32_t queueSize = 10; //in packets
uint32_t pktSize = 1458; //in bytes. 1458 to prevent fragments
float startTime = 0.1;
- float simDuration = 60; //in seconds
+ float simDuration = 60; //in seconds
bool isPcapEnabled = true;
std::string pcapFileName = "pcapFilePfifoFast.pcap";
@@ -99,8 +100,9 @@ int main (int argc, char *argv[])
cmd.AddValue ("bottleneckDelay", "Bottleneck delay", bottleneckDelay);
cmd.AddValue ("accessBandwidth", "Access link bandwidth", accessBandwidth);
cmd.AddValue ("accessDelay", "Access link delay", accessDelay);
- cmd.AddValue ("queueDiscType", "Queue disc type: PfifoFast, CoDel", queueDiscType);
- cmd.AddValue ("queueSize", "Queue size in packets", queueSize);
+ cmd.AddValue ("queueDiscType", "Bottleneck queue disc type: PfifoFast, CoDel", queueDiscType);
+ cmd.AddValue ("queueDiscSize", "Bottleneck queue disc size in packets", queueDiscSize);
+ cmd.AddValue ("queueSize", "Devices queue size in packets", queueSize);
cmd.AddValue ("pktSize", "Packet size in bytes", pktSize);
cmd.AddValue ("startTime", "Simulation start time", startTime);
cmd.AddValue ("simDuration", "Simulation duration in seconds", simDuration);
@@ -126,6 +128,7 @@ int main (int argc, char *argv[])
GlobalValue::Bind ("ChecksumEnabled", BooleanValue (true));
}
+ // Devices queue configuration
Config::SetDefault ("ns3::QueueBase::Mode", StringValue ("QUEUE_MODE_PACKETS"));
Config::SetDefault ("ns3::QueueBase::MaxPackets", UintegerValue (queueSize));
@@ -149,11 +152,18 @@ int main (int argc, char *argv[])
InternetStackHelper stack;
stack.InstallAll ();
+ // Access link traffic control configuration
+ TrafficControlHelper tchPfifoFastAccess;
+ tchPfifoFastAccess.SetRootQueueDisc ("ns3::PfifoFastQueueDisc", "Limit", UintegerValue (1000));
+
+ // Bottleneck link traffic control configuration
TrafficControlHelper tchPfifo;
- tchPfifo.SetRootQueueDisc ("ns3::PfifoFastQueueDisc");
+ tchPfifo.SetRootQueueDisc ("ns3::PfifoFastQueueDisc", "Limit", UintegerValue (queueDiscSize));
TrafficControlHelper tchCoDel;
tchCoDel.SetRootQueueDisc ("ns3::CoDelQueueDisc");
+ Config::SetDefault ("ns3::CoDelQueueDisc::Mode", EnumValue (CoDelQueueDisc::QUEUE_DISC_MODE_PACKETS));
+ Config::SetDefault ("ns3::CoDelQueueDisc::MaxPackets", UintegerValue (queueDiscSize));
Ipv4AddressHelper address;
address.SetBase ("10.0.0.0", "255.255.255.0");
@@ -165,12 +175,13 @@ int main (int argc, char *argv[])
NetDeviceContainer devicesAccessLink, devicesBottleneckLink;
devicesAccessLink = accessLink.Install (source.Get (0), gateway.Get (0));
- tchPfifo.Install (devicesAccessLink);
+ tchPfifoFastAccess.Install (devicesAccessLink);
address.NewNetwork ();
Ipv4InterfaceContainer interfaces = address.Assign (devicesAccessLink);
devicesBottleneckLink = bottleneckLink.Install (gateway.Get (0), sink.Get (0));
address.NewNetwork ();
+
if (queueDiscType.compare ("PfifoFast") == 0)
{
tchPfifo.Install (devicesBottleneckLink);