--- a/examples/csma-broadcast.cc Mon Mar 31 16:31:34 2008 -0700
+++ b/examples/csma-broadcast.cc Mon Mar 31 17:48:21 2008 -0700
@@ -47,30 +47,12 @@
// for selected modules; the below lines suggest how to do this
#if 0
LogComponentEnable ("CsmaBroadcastExample", LOG_LEVEL_INFO);
-
- LogComponentEnable("Object", LOG_LEVEL_ALL);
- LogComponentEnable("Queue", LOG_LEVEL_ALL);
- LogComponentEnable("DropTailQueue", LOG_LEVEL_ALL);
- LogComponentEnable("Channel", LOG_LEVEL_ALL);
- LogComponentEnable("CsmaChannel", LOG_LEVEL_ALL);
- LogComponentEnable("NetDevice", LOG_LEVEL_ALL);
- LogComponentEnable("CsmaNetDevice", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4L3Protocol", LOG_LEVEL_ALL);
- LogComponentEnable("PacketSocket", LOG_LEVEL_ALL);
- LogComponentEnable("Socket", LOG_LEVEL_ALL);
- LogComponentEnable("UdpSocket", LOG_LEVEL_ALL);
- LogComponentEnable("UdpL4Protocol", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4L3Protocol", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4StaticRouting", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4Interface", LOG_LEVEL_ALL);
- LogComponentEnable("ArpIpv4Interface", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4LoopbackInterface", LOG_LEVEL_ALL);
- LogComponentEnable("OnOffApplication", LOG_LEVEL_ALL);
- // Enable the below logging command to see the packets being received
- LogComponentEnable("PacketSinkApplication", LOG_LEVEL_ALL);
#endif
- // Set up some default values for the simulation. Use the Bind()
+ //
+ // Make the random number generators generate reproducible results.
+ //
+ RandomVariable::UseGlobalSeed (1, 1, 2, 3, 5, 8);
// Allow the user to override any of the defaults and the above
// Bind()s at run-time, via command-line arguments
--- a/examples/csma-multicast.cc Mon Mar 31 16:31:34 2008 -0700
+++ b/examples/csma-multicast.cc Mon Mar 31 17:48:21 2008 -0700
@@ -50,6 +50,11 @@
// LogComponentEnable ("CsmaMulticastExample", LOG_LEVEL_INFO);
//
+ // Make the random number generators generate reproducible results.
+ //
+ RandomVariable::UseGlobalSeed (1, 1, 2, 3, 5, 8);
+
+ //
// Set up default values for the simulation.
//
// Select Ethernet II-style encapsulation (no LLC/Snap header)
--- a/examples/csma-one-subnet.cc Mon Mar 31 16:31:34 2008 -0700
+++ b/examples/csma-one-subnet.cc Mon Mar 31 17:48:21 2008 -0700
@@ -47,6 +47,9 @@
LogComponentEnable ("CsmaOneSubnetExample", LOG_LEVEL_INFO);
#endif
//
+// Make the random number generators generate reproducible results.
+//
+ RandomVariable::UseGlobalSeed (1, 1, 2, 3, 5, 8);
//
// Allow the user to override any of the defaults and the above Bind() at
// run-time, via command-line arguments
--- a/examples/csma-packet-socket.cc Mon Mar 31 16:31:34 2008 -0700
+++ b/examples/csma-packet-socket.cc Mon Mar 31 17:48:21 2008 -0700
@@ -49,29 +49,12 @@
{
#if 0
LogComponentEnable ("CsmaPacketSocketExample", LOG_LEVEL_INFO);
+#endif
- LogComponentEnable("Object", LOG_LEVEL_ALL);
- LogComponentEnable("Queue", LOG_LEVEL_ALL);
- LogComponentEnable("DropTailQueue", LOG_LEVEL_ALL);
- LogComponentEnable("Channel", LOG_LEVEL_ALL);
- LogComponentEnable("CsmaChannel", LOG_LEVEL_ALL);
- LogComponentEnable("NetDevice", LOG_LEVEL_ALL);
- LogComponentEnable("CsmaNetDevice", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4L3Protocol", LOG_LEVEL_ALL);
- LogComponentEnable("PacketSocket", LOG_LEVEL_ALL);
- LogComponentEnable("Socket", LOG_LEVEL_ALL);
- LogComponentEnable("UdpSocket", LOG_LEVEL_ALL);
- LogComponentEnable("UdpL4Protocol", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4L3Protocol", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4StaticRouting", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4Interface", LOG_LEVEL_ALL);
- LogComponentEnable("ArpIpv4Interface", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4LoopbackInterface", LOG_LEVEL_ALL);
- LogComponentEnable("OnOffApplication", LOG_LEVEL_ALL);
- LogComponentEnable("PacketSinkApplication", LOG_LEVEL_ALL);
- LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_ALL);
- LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_ALL);
-#endif
+ //
+ // Make the random number generators generate reproducible results.
+ //
+ RandomVariable::UseGlobalSeed (1, 1, 2, 3, 5, 8);
CommandLine cmd;
cmd.Parse (argc, argv);
--- a/examples/simple-point-to-point-olsr.cc Mon Mar 31 16:31:34 2008 -0700
+++ b/examples/simple-point-to-point-olsr.cc Mon Mar 31 17:48:21 2008 -0700
@@ -57,29 +57,13 @@
// for selected modules; the below lines suggest how to do this
#if 0
LogComponentEnable ("SimpleGlobalRoutingExample", LOG_LEVEL_INFO);
+#endif
- LogComponentEnable("Object", LOG_LEVEL_ALL);
- LogComponentEnable("Queue", LOG_LEVEL_ALL);
- LogComponentEnable("DropTailQueue", LOG_LEVEL_ALL);
- LogComponentEnable("Channel", LOG_LEVEL_ALL);
- LogComponentEnable("CsmaChannel", LOG_LEVEL_ALL);
- LogComponentEnable("NetDevice", LOG_LEVEL_ALL);
- LogComponentEnable("CsmaNetDevice", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4L3Protocol", LOG_LEVEL_ALL);
- LogComponentEnable("PacketSocket", LOG_LEVEL_ALL);
- LogComponentEnable("Socket", LOG_LEVEL_ALL);
- LogComponentEnable("UdpSocket", LOG_LEVEL_ALL);
- LogComponentEnable("UdpL4Protocol", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4L3Protocol", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4StaticRouting", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4Interface", LOG_LEVEL_ALL);
- LogComponentEnable("ArpIpv4Interface", LOG_LEVEL_ALL);
- LogComponentEnable("Ipv4LoopbackInterface", LOG_LEVEL_ALL);
- LogComponentEnable("OnOffApplication", LOG_LEVEL_ALL);
- LogComponentEnable("PacketSinkApplication", LOG_LEVEL_ALL);
- LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_ALL);
- LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_ALL);
-#endif
+ //
+ // Make the random number generators generate reproducible results.
+ //
+ RandomVariable::UseGlobalSeed (1, 1, 2, 3, 5, 8);
+
// Set up some default values for the simulation. Use the
Config::SetDefault ("ns3::OnOffApplication::PacketSize", Uinteger (210));
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/regression/tests/test-csma-broadcast.py Mon Mar 31 17:48:21 2008 -0700
@@ -0,0 +1,41 @@
+#! /usr/bin/env python
+
+"""Generic trace-comparison-type regression test."""
+
+import os
+import shutil
+
+def run(verbose, generate):
+ """Execute a test."""
+
+ testName = "csma-broadcast"
+ repoName = "ns-3-ref-traces/"
+ refDirName = testName + ".ref"
+
+ if not os.path.exists(repoName):
+ print"No reference trace repository"
+ return 1
+
+ if generate:
+ if not os.path.exists(repoName + refDirName):
+ print "creating new " + repoName + refDirName
+ os.mkdir(repoName + refDirName)
+
+ os.system("./waf --cwd regression/" + repoName + refDirName +
+ " --run " + testName + " >& /dev/null")
+
+ print "Remember to commit " + repoName + refDirName
+ return 0
+ else:
+ if not os.path.exists(repoName + refDirName):
+ print "Cannot locate reference traces"
+ return 1
+
+ shutil.rmtree("traces");
+ os.mkdir("traces")
+
+ os.system("./waf --cwd regression/traces --run " +
+ testName + " >& /dev/null")
+
+ return os.system("diff -q traces " + repoName + refDirName +
+ " >& /dev/null")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/regression/tests/test-csma-multicast.py Mon Mar 31 17:48:21 2008 -0700
@@ -0,0 +1,41 @@
+#! /usr/bin/env python
+
+"""Generic trace-comparison-type regression test."""
+
+import os
+import shutil
+
+def run(verbose, generate):
+ """Execute a test."""
+
+ testName = "csma-multicast"
+ repoName = "ns-3-ref-traces/"
+ refDirName = testName + ".ref"
+
+ if not os.path.exists(repoName):
+ print"No reference trace repository"
+ return 1
+
+ if generate:
+ if not os.path.exists(repoName + refDirName):
+ print "creating new " + repoName + refDirName
+ os.mkdir(repoName + refDirName)
+
+ os.system("./waf --cwd regression/" + repoName + refDirName +
+ " --run " + testName + " >& /dev/null")
+
+ print "Remember to commit " + repoName + refDirName
+ return 0
+ else:
+ if not os.path.exists(repoName + refDirName):
+ print "Cannot locate reference traces"
+ return 1
+
+ shutil.rmtree("traces");
+ os.mkdir("traces")
+
+ os.system("./waf --cwd regression/traces --run " +
+ testName + " >& /dev/null")
+
+ return os.system("diff -q traces " + repoName + refDirName +
+ " >& /dev/null")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/regression/tests/test-csma-packet-socket.py Mon Mar 31 17:48:21 2008 -0700
@@ -0,0 +1,41 @@
+#! /usr/bin/env python
+
+"""Generic trace-comparison-type regression test."""
+
+import os
+import shutil
+
+def run(verbose, generate):
+ """Execute a test."""
+
+ testName = "csma-packet-socket"
+ repoName = "ns-3-ref-traces/"
+ refDirName = testName + ".ref"
+
+ if not os.path.exists(repoName):
+ print"No reference trace repository"
+ return 1
+
+ if generate:
+ if not os.path.exists(repoName + refDirName):
+ print "creating new " + repoName + refDirName
+ os.mkdir(repoName + refDirName)
+
+ os.system("./waf --cwd regression/" + repoName + refDirName +
+ " --run " + testName + " >& /dev/null")
+
+ print "Remember to commit " + repoName + refDirName
+ return 0
+ else:
+ if not os.path.exists(repoName + refDirName):
+ print "Cannot locate reference traces"
+ return 1
+
+ shutil.rmtree("traces");
+ os.mkdir("traces")
+
+ os.system("./waf --cwd regression/traces --run " +
+ testName + " >& /dev/null")
+
+ return os.system("diff -q traces " + repoName + refDirName +
+ " >& /dev/null")
--- a/src/applications/onoff/onoff-application.cc Mon Mar 31 16:31:34 2008 -0700
+++ b/src/applications/onoff/onoff-application.cc Mon Mar 31 17:48:21 2008 -0700
@@ -208,6 +208,7 @@
NS_LOG_FUNCTION;
Time onInterval = Seconds(m_onTime.GetValue());
+ NS_LOG_LOGIC ("stop at " << onInterval);
Simulator::Schedule(onInterval, &OnOffApplication::StopSending, this);
}
@@ -215,7 +216,7 @@
void OnOffApplication::SendPacket()
{
NS_LOG_FUNCTION;
-
+ NS_LOG_LOGIC ("sending packet at " << Simulator::Now());
NS_ASSERT (m_sendEvent.IsExpired ());
Ptr<Packet> packet = Create<Packet> (m_pktSize);
m_txTrace (packet);