diff --git a/example/dce-cradle-simple.cc b/example/dce-cradle-simple.cc
--- a/example/dce-cradle-simple.cc
+++ b/example/dce-cradle-simple.cc
@@ -63,8 +63,8 @@
nodes.Create (2);
PointToPointHelper pointToPoint;
- pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("100Mbps"));
- pointToPoint.SetChannelAttribute ("Delay", StringValue ("100ms"));
+ pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("1Gbps"));
+ pointToPoint.SetChannelAttribute ("Delay", StringValue ("1ns"));
NetDeviceContainer devices;
devices = pointToPoint.Install (nodes);
diff --git a/example/dce-iperf.cc b/example/dce-iperf.cc
--- a/example/dce-iperf.cc
+++ b/example/dce-iperf.cc
@@ -31,6 +31,11 @@
// in source named Thread.c at line 412 in method named thread_rest
// you must add a sleep (1); to break the infinite loop....
// ===========================================================================
+void
+PrintTcpFlags (std::string key, std::string value)
+{
+ std::cout << key << "=" << value << std::endl;
+}
int main (int argc, char *argv[])
{
bool useKernel = 0;
@@ -46,8 +51,8 @@
nodes.Create (2);
PointToPointHelper pointToPoint;
- pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));
- pointToPoint.SetChannelAttribute ("Delay", StringValue ("1ms"));
+ pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("1Gbps"));
+ pointToPoint.SetChannelAttribute ("Delay", StringValue ("1ns"));
NetDeviceContainer devices;
devices = pointToPoint.Install (nodes);
@@ -66,6 +71,7 @@
dceManager.SetNetworkStack ("ns3::LinuxSocketFdFactory", "Library", StringValue ("liblinux.so"));
LinuxStackHelper stack;
stack.Install (nodes);
+
#else
NS_LOG_ERROR ("Linux kernel stack for DCE is not available. build with dce-linux module.");
// silently exit
@@ -88,6 +94,32 @@
dceManager.Install (nodes);
+ LinuxStackHelper stack;
+#if 0
+ stack.SysctlSet (nodes, ".net.core.rmem_max",
+ "26214400");
+ stack.SysctlSet (nodes, ".net.core.wmem_max",
+ "26214400");
+ stack.SysctlSet (nodes, ".net.ipv4.udp_rmem_min",
+ "4194304");
+ stack.SysctlSet (nodes, ".net.ipv4.udp_wmem_min",
+ "4194304");
+ LinuxStackHelper::SysctlGet (nodes.Get (0), Seconds (1),
+ ".net.ipv4.udp_rmem_min", &PrintTcpFlags);
+ LinuxStackHelper::SysctlGet (nodes.Get (0), Seconds (1),
+ ".net.ipv4.udp_wmem_min", &PrintTcpFlags);
+ LinuxStackHelper::SysctlGet (nodes.Get (0), Seconds (1),
+ ".net.core.rmem_max", &PrintTcpFlags);
+ LinuxStackHelper::SysctlGet (nodes.Get (0), Seconds (1),
+ ".net.core.wmem_max", &PrintTcpFlags);
+#endif
+// sysctl -w net.ipv4.tcp_dctcp_enable=1
+// sysctl -w net.ipv4.net.ipv4.tcp_ecn=1
+#if 0
+ stack.SysctlSet (nodes, ".net.ipv4.tcp_dctcp_enable", "1");
+ stack.SysctlSet (nodes, ".net.ipv4.net.ipv4.tcp_ecn", "1");
+#endif
+
DceApplicationHelper dce;
ApplicationContainer apps;
@@ -101,6 +133,10 @@
dce.AddArgument ("10.1.1.2");
dce.AddArgument ("-i");
dce.AddArgument ("1");
+ // dce.AddArgument ("-l");
+ // dce.AddArgument ("64");
+ dce.AddArgument ("-w");
+ dce.AddArgument ("100000");
dce.AddArgument ("--time");
dce.AddArgument ("10");
if (useUdp)
@@ -119,6 +155,10 @@
dce.ResetArguments ();
dce.ResetEnvironment ();
dce.AddArgument ("-s");
+ dce.AddArgument ("-w");
+ dce.AddArgument ("1000000");
+ // dce.AddArgument ("-l");
+ // dce.AddArgument ("64");
dce.AddArgument ("-P");
dce.AddArgument ("1");
if (useUdp)