branch merge
authorCraig Dowell <craigdo@ee.washington.edu>
Mon, 31 Mar 2008 16:22:24 -0700
changeset 2858 eaa1a8467872
parent 2857 2c9890f41feb (current diff)
parent 2844 6e2d19edddae (diff)
child 2859 095e1e3692f7
branch merge
examples/simple-point-to-point.cc
src/devices/csma/csma-ipv4-topology.cc
src/devices/csma/csma-ipv4-topology.h
src/devices/csma/csma-topology.cc
src/devices/csma/csma-topology.h
src/devices/point-to-point/point-to-point-topology.cc
src/devices/point-to-point/point-to-point-topology.h
src/internet-node/internet-node.cc
src/internet-node/internet-node.h
tutorial/energy-model.cc
tutorial/energy-model.h
tutorial/energy.cc
tutorial/point-to-point-ipv4-topology.cc
tutorial/point-to-point-ipv4-topology.h
--- a/AUTHORS	Mon Mar 31 16:22:06 2008 -0700
+++ b/AUTHORS	Mon Mar 31 16:22:24 2008 -0700
@@ -5,4 +5,6 @@
 Joe Kopena (tjkopena@cs.drexel.edu)
 Mathieu Lacage (mathieu.lacage@sophia.inria.fr)
 Emmanuelle Laprise (emmmanuelle.laprise@bluekazoo.ca)
+Federico Maguolo (maguolof@dei.unipd.it)
 George F. Riley (riley@ece.gatech.edu)
+Guillaume Vu-Brugier (gvubrugier@gmail.com)
--- a/README	Mon Mar 31 16:22:06 2008 -0700
+++ b/README	Mon Mar 31 16:22:24 2008 -0700
@@ -81,14 +81,15 @@
 
 The current codebase is expected to build and run on the
 following set of platforms:
-  - linux x86 gcc 4.2, 4.1, and, 3.4.
-  - linux x86_64 gcc 4.0
+  - linux x86 gcc 4.2, 4.1, and, 3.4.6.
+  - linux x86_64 gcc 4.1.3, 4.2.1, 3.4.6
   - MacOS X ppc and x86
-  - cygwin
+  - cygwin gcc 3.4.4 (debug only)
 
 The current codebase is expected to fail to build on
 the following platforms:
   - gcc 3.3 and earlier
+  - optimized builds on gcc 3.4.4 and 3.4.5
   - optimized builds on linux x86 gcc 4.0 
 
 Other platforms may or may not work: we welcome 
@@ -102,11 +103,11 @@
 should be easy to run the sample programs with the
 following command:
 
-./waf --run simple-point-to-point
+./waf --run simple-global-routing
 
-That program should generate a simple-point-to-point.tr text 
-trace file and a set of simple-point-to-point-xx-xx.pcap binary
-pcap trace files, which can be read by tcpdump.
+That program should generate a simple-global-routing.tr text 
+trace file and a set of simple-global-routing-xx-xx.pcap binary
+pcap trace files, which can be read by tcpdump -tt -r filename.pcap
 
 5) Getting access to the ns-3 documentation
 -------------------------------------------
--- a/RELEASE_NOTES	Mon Mar 31 16:22:06 2008 -0700
+++ b/RELEASE_NOTES	Mon Mar 31 16:22:24 2008 -0700
@@ -3,6 +3,17 @@
 
 This file contains ns-3 release notes (most recent releases first).
 
+Release 3.0.12 (2008/03/31)
+========================
+    - Add Attribute support to the TypeId metadata system and add
+attribute support to all in-tree models
+    - Add a mid-level helper API to build simulation topologies 
+and perform simple ascii and pcap link-level tracing.
+    - Large amount of structural changes to accomodate the needs
+of the upcoming python bindings
+    - new rate control algorithm (RRAA) and a jakes propagation model
+in the 802.11 model (Federico Maguolo).
+
 Release 3.0.11 (2008/02/15)
 ========================
     - Initial port of GTNetS TCP implementation (initial version 
--- a/VERSION	Mon Mar 31 16:22:06 2008 -0700
+++ b/VERSION	Mon Mar 31 16:22:24 2008 -0700
@@ -1,1 +1,1 @@
-3.0.11
+3.0.12
--- a/examples/csma-broadcast.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/examples/csma-broadcast.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -133,7 +133,7 @@
   // The output files will be named 
   // csma-broadcast.pcap-<nodeId>-<interfaceId>
   // and can be read by the "tcpdump -tt -r" command 
-  CsmaHelper::EnablePcap ("csma-broadcast.pcap");
+  CsmaHelper::EnablePcap ("csma-broadcast");
   std::ofstream ascii;
   ascii.open ("csma-broadcast.tr");
   CsmaHelper::EnableAscii (ascii);
--- a/examples/csma-multicast.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/examples/csma-multicast.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -173,7 +173,7 @@
   //     csma-multicast.pcap-<nodeId>-<interfaceId>
   // and can be read by the "tcpdump -r" command (use "-tt" option to
   // display timestamps correctly)
-  CsmaHelper::EnablePcap ("csma-multicast.pcap");
+  CsmaHelper::EnablePcap ("csma-multicast");
   //
   // Now, do the actual simulation.
   //
--- a/examples/csma-one-subnet.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/examples/csma-one-subnet.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -131,7 +131,7 @@
 // and can be read by the "tcpdump -r" command (use "-tt" option to
 // display timestamps correctly)
 //
-  CsmaHelper::EnablePcap ("csma-one-subnet.pcap");
+  CsmaHelper::EnablePcap ("csma-one-subnet");
 //
 // Now, do the actual simulation.
 //
--- a/examples/mixed-global-routing.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/examples/mixed-global-routing.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -154,9 +154,9 @@
 
   std::ofstream ascii;
   ascii.open ("mixed-global-routing.tr");
-  PointToPointHelper::EnablePcap ("mixed-global-routing.pcap");
+  PointToPointHelper::EnablePcap ("mixed-global-routing");
   PointToPointHelper::EnableAscii (ascii);
-  CsmaHelper::EnablePcap ("mixed-global-routing.pcap");
+  CsmaHelper::EnablePcap ("mixed-global-routing");
   CsmaHelper::EnableAscii (ascii);
 
 
--- a/examples/simple-alternate-routing.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/examples/simple-alternate-routing.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -177,7 +177,7 @@
 
   std::ofstream ascii;
   ascii.open ("simple-alternate-routing.tr");
-  PointToPointHelper::EnablePcap ("simple-alternate-routing.pcap");
+  PointToPointHelper::EnablePcap ("simple-alternate-routing");
   PointToPointHelper::EnableAscii (ascii);
 
 
--- a/examples/simple-error-model.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/examples/simple-error-model.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -163,7 +163,7 @@
 
   std::ofstream ascii;
   ascii.open ("simple-error-model.tr");
-  PointToPointHelper::EnablePcap ("simple-error-model.pcap");
+  PointToPointHelper::EnablePcap ("simple-error-model");
   PointToPointHelper::EnableAscii (ascii);
 
   NS_LOG_INFO ("Run Simulation.");
--- a/examples/simple-global-routing.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/examples/simple-global-routing.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -93,9 +93,6 @@
   CommandLine cmd;
   cmd.Parse (argc, argv);
 
-  std::ofstream ascii;
-  ascii.open ("simple-global-routing.tr");
-
   // Here, we will explicitly create four nodes.  In more sophisticated
   // topologies, we could configure a node factory.
   NS_LOG_INFO ("Create nodes.");
@@ -111,8 +108,6 @@
   // We create the channels first without any IP addressing information
   NS_LOG_INFO ("Create channels.");
   PointToPointHelper p2p;
-  p2p.EnablePcap ("simple-global-routing.pcap");
-  p2p.EnableAscii (ascii);
   p2p.SetChannelParameter ("BitRate", DataRate (5000000));
   p2p.SetChannelParameter ("Delay", MilliSeconds (2));
   NetDeviceContainer d0d2 = p2p.Build (n0n2);
@@ -152,7 +147,6 @@
   apps.Stop (Seconds (10.0));
 
   // Create a packet sink to receive these packets
-  // The last argument "true" disables output from the Receive callback
   PacketSinkHelper sink;
   sink.SetupUdp (Ipv4Address::GetAny (), port);
   apps = sink.Build (c.Get (3));
@@ -170,6 +164,10 @@
   apps.Start (Seconds (1.1));
   apps.Stop (Seconds (10.0));
 
+  std::ofstream ascii;
+  ascii.open ("simple-global-routing.tr");
+  PointToPointHelper::EnablePcap ("simple-global-routing");
+  PointToPointHelper::EnableAscii (ascii);
 
   NS_LOG_INFO ("Run Simulation.");
   Simulator::Run ();
--- a/examples/simple-point-to-point-olsr.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/examples/simple-point-to-point-olsr.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -35,38 +35,20 @@
 // - UDP packet size of 210 bytes, with per-packet interval 0.00375 sec.
 //   (i.e., DataRate of 448,000 bps)
 // - DropTail queues 
-// - Tracing of queues and packet receptions to file 
-//   "simple-point-to-point.tr"
-
-#include "ns3/log.h"
-#include "ns3/command-line.h"
-#include "ns3/ptr.h"
-#include "ns3/random-variable.h"
-#include "ns3/config.h"
-#include "ns3/string.h"
-
-#include "ns3/simulator.h"
-#include "ns3/nstime.h"
-#include "ns3/data-rate.h"
+// - Tracing of queues and packet receptions to file "simple-point-to-point-olsr.tr"
 
-#include "ns3/ascii-trace.h"
-#include "ns3/pcap-trace.h"
-#include "ns3/internet-node.h"
-#include "ns3/point-to-point-channel.h"
-#include "ns3/point-to-point-net-device.h"
-#include "ns3/ipv4-address.h"
-#include "ns3/inet-socket-address.h"
-#include "ns3/ipv4.h"
-#include "ns3/socket.h"
-#include "ns3/ipv4-route.h"
-#include "ns3/point-to-point-topology.h"
-#include "ns3/onoff-application.h"
-#include "ns3/packet-sink.h"
-#include "ns3/olsr-helper.h"
+#include <iostream>
+#include <fstream>
+#include <string>
+#include <cassert>
+
+#include "ns3/core-module.h"
+#include "ns3/simulator-module.h"
+#include "ns3/helper-module.h"
 
 using namespace ns3;
 
-NS_LOG_COMPONENT_DEFINE ("SimplePointToPointExample");
+NS_LOG_COMPONENT_DEFINE ("SimpleGlobalRoutingExample");
 
 int 
 main (int argc, char *argv[])
@@ -74,7 +56,7 @@
   // Users may find it convenient to turn on explicit debugging
   // for selected modules; the below lines suggest how to do this
 #if 0 
-  LogComponentEnable ("SimplePointToPointExample", LOG_LEVEL_INFO);
+  LogComponentEnable ("SimpleGlobalRoutingExample", LOG_LEVEL_INFO);
 
   LogComponentEnable("Object", LOG_LEVEL_ALL);
   LogComponentEnable("Queue", LOG_LEVEL_ALL);
@@ -98,125 +80,104 @@
   LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_ALL);
   LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_ALL);
 #endif
-
-  // Set up some default values for the simulation.
+  // Set up some default values for the simulation.  Use the 
 
-  Config::SetDefault ("ns3::OnOffApplication::PacketSize", String ("210"));
-  Config::SetDefault ("ns3::OnOffApplication::DataRate", String ("448kb/s"));
+  Config::SetDefault ("ns3::OnOffApplication::PacketSize", Uinteger (210));
+  Config::SetDefault ("ns3::OnOffApplication::DataRate", DataRate ("448kb/s"));
 
   //DefaultValue::Bind ("DropTailQueue::m_maxPackets", 30);   
 
   // Allow the user to override any of the defaults and the above
-  // Bind()s at run-time, via command-line arguments
+  // DefaultValue::Bind ()s at run-time, via command-line arguments
   CommandLine cmd;
   cmd.Parse (argc, argv);
 
   // Here, we will explicitly create four nodes.  In more sophisticated
   // topologies, we could configure a node factory.
   NS_LOG_INFO ("Create nodes.");
-  Ptr<Node> n0 = CreateObject<InternetNode> ();
-  Ptr<Node> n1 = CreateObject<InternetNode> (); 
-  Ptr<Node> n2 = CreateObject<InternetNode> (); 
-  Ptr<Node> n3 = CreateObject<InternetNode> ();
-  Ptr<Node> n4 = CreateObject<InternetNode> ();
+  NodeContainer c;
+  c.Create (5);
+  NodeContainer n02 = NodeContainer (c.Get(0), c.Get (2));
+  NodeContainer n12 = NodeContainer (c.Get(1), c.Get (2));
+  NodeContainer n32 = NodeContainer (c.Get(3), c.Get (2));
+  NodeContainer n34 = NodeContainer (c.Get (3), c.Get (4));
+
+  InternetStackHelper internet;
+  internet.Build (c);
 
   // We create the channels first without any IP addressing information
   NS_LOG_INFO ("Create channels.");
-  Ptr<PointToPointChannel> channel0 = 
-    PointToPointTopology::AddPointToPointLink (
-      n0, n2, DataRate(5000000), MilliSeconds(2));
-
-  Ptr<PointToPointChannel> channel1 = 
-    PointToPointTopology::AddPointToPointLink (
-      n1, n2, DataRate(5000000), MilliSeconds(2));
-  
-  Ptr<PointToPointChannel> channel2 = 
-    PointToPointTopology::AddPointToPointLink (
-      n2, n3, DataRate(1500000), MilliSeconds(10));
-
-  Ptr<PointToPointChannel> channel3 = 
-    PointToPointTopology::AddPointToPointLink (
-      n3, n4, DataRate(1500000), MilliSeconds(10));
+  PointToPointHelper p2p;
+  p2p.SetChannelParameter ("BitRate", DataRate (5000000));
+  p2p.SetChannelParameter ("Delay", MilliSeconds (2));
+  NetDeviceContainer nd02 = p2p.Build (n02);
+  NetDeviceContainer nd12 = p2p.Build (n12);
+  p2p.SetChannelParameter ("BitRate", DataRate (1500000));
+  p2p.SetChannelParameter ("Delay", MilliSeconds (10));
+  NetDeviceContainer nd32 = p2p.Build (n32);
+  NetDeviceContainer nd34 = p2p.Build (n34);
   
   // Later, we add IP addresses.  
   NS_LOG_INFO ("Assign IP Addresses.");
-  PointToPointTopology::AddIpv4Addresses (
-      channel0, n0, Ipv4Address("10.1.1.1"),
-      n2, Ipv4Address("10.1.1.2"));
-  
-  PointToPointTopology::AddIpv4Addresses (
-      channel1, n1, Ipv4Address("10.1.2.1"),
-      n2, Ipv4Address("10.1.2.2"));
+  Ipv4AddressHelper ipv4;
+  ipv4.SetBase ("10.1.1.0", "255.255.255.0");
+  Ipv4InterfaceContainer i02 = ipv4.Allocate (nd02);
+
+  ipv4.SetBase ("10.1.2.0", "255.255.255.0");
+  Ipv4InterfaceContainer i12 = ipv4.Allocate (nd12);
   
-  PointToPointTopology::AddIpv4Addresses (
-      channel2, n2, Ipv4Address("10.1.3.1"),
-      n3, Ipv4Address("10.1.3.2"));
+  ipv4.SetBase ("10.1.3.0", "255.255.255.0");
+  Ipv4InterfaceContainer i32 = ipv4.Allocate (nd32);
 
-  PointToPointTopology::AddIpv4Addresses (
-      channel3, n3, Ipv4Address("10.1.4.1"),
-      n4, Ipv4Address("10.1.4.2"));
+  ipv4.SetBase ("10.1.4.0", "255.255.255.0");
+  Ipv4InterfaceContainer i34 = ipv4.Allocate (nd34);
 
   // Enable OLSR
   NS_LOG_INFO ("Enabling OLSR Routing.");
   OlsrHelper olsr;
   olsr.EnableAll ();
 
-
   // Create the OnOff application to send UDP datagrams of size
   // 210 bytes at a rate of 448 Kb/s
   NS_LOG_INFO ("Create Applications.");
   uint16_t port = 9;   // Discard port (RFC 863)
-  Ptr<OnOffApplication> ooff = 
-    CreateObject<OnOffApplication> ("Remote", Address (InetSocketAddress ("10.1.4.2", port)), 
-                                    "Protocol", TypeId::LookupByName ("ns3::Udp"),
-                                    "OnTime", ConstantVariable(1), 
-                                    "OffTime", ConstantVariable(0));
-  n0->AddApplication (ooff);
-  // Start the application
-  ooff->Start(Seconds(1.0));
+  OnOffHelper onoff;
+  onoff.SetAppAttribute ("OnTime", ConstantVariable (1));
+  onoff.SetAppAttribute ("OffTime", ConstantVariable (0));
+  onoff.SetUdpRemote (i34.GetAddress (1), port);
+  ApplicationContainer apps = onoff.Build (c.Get (0));
+  apps.Start (Seconds (1.0));
+  apps.Stop (Seconds (10.0));
 
-  // Create an optional packet sink to receive these packets
-  Ptr<PacketSink> sink = 
-    CreateObject<PacketSink> ("Local", Address (InetSocketAddress (Ipv4Address::GetAny (), port)),
-                              "Protocol", TypeId::LookupByName ("ns3::Udp"));
-  n3->AddApplication (sink);
-  // Start the sink
-  sink->Start (Seconds (1.0));
+  // Create a packet sink to receive these packets
+  PacketSinkHelper sink;
+  sink.SetupUdp (Ipv4Address::GetAny (), port);
+  apps = sink.Build (c.Get (3));
+  apps.Start (Seconds (1.0));
+  apps.Stop (Seconds (10.0));
 
   // Create a similar flow from n3 to n1, starting at time 1.1 seconds
-  ooff = CreateObject<OnOffApplication> ("Remote", Address (InetSocketAddress ("10.1.2.1", port)), 
-                                         "Protocol", TypeId::LookupByName ("ns3::Udp"),
-                                         "OnTime", ConstantVariable(1), 
-                                         "OffTime", ConstantVariable(0));
-  n3->AddApplication (ooff);
-  // Start the application
-  ooff->Start (Seconds(1.1));
+  onoff.SetUdpRemote (i12.GetAddress (0), port);
+  apps = onoff.Build (c.Get (3));
+  apps.Start (Seconds (1.1));
+  apps.Stop (Seconds (10.0));
 
   // Create a packet sink to receive these packets
-  sink = CreateObject<PacketSink> ("Local", Address (InetSocketAddress (Ipv4Address::GetAny (), port)),
-                                   "Protocol", TypeId::LookupByName ("ns3::Udp"));
-  n1->AddApplication (sink);
-  // Start the sink
-  sink->Start (Seconds (1.1));
+  apps = sink.Build (c.Get (1));
+  apps.Start (Seconds (1.1));
+  apps.Stop (Seconds (10.0));
 
-  // Configure tracing of all enqueue, dequeue, and NetDevice receive events
-  // Trace output will be sent to the simple-point-to-point.tr file
-  NS_LOG_INFO ("Configure Tracing.");
-  AsciiTrace asciitrace ("simple-point-to-point-olsr.tr");
-  asciitrace.TraceAllQueues ();
-  asciitrace.TraceAllNetDeviceRx ();
+  std::ofstream ascii;
+  ascii.open ("simple-point-to-point-olsr.tr");
+  PointToPointHelper::EnablePcap ("simple-point-to-point-olsr");
+  PointToPointHelper::EnableAscii (ascii);
 
-  // Also configure some tcpdump traces; each interface will be traced
-  // The output files will be named 
-  // simple-point-to-point.pcap-<nodeId>-<interfaceId>
-  // and can be read by the "tcpdump -r" command (use "-tt" option to
-  // display timestamps correctly)
-  PcapTrace pcaptrace ("simple-point-to-point-olsr.pcap");
-  pcaptrace.TraceAllIp ();
+  Simulator::StopAt (Seconds (30));
 
   NS_LOG_INFO ("Run Simulation.");
-  Simulator::StopAt (Seconds (30));
   Simulator::Run ();
   Simulator::Destroy ();
   NS_LOG_INFO ("Done.");
+
+  return 0;
 }
--- a/examples/simple-point-to-point.cc	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * ns-2 simple.tcl script (ported from ns-2)
- * Originally authored by Steve McCanne, 12/19/1996
- */
-
-// Port of ns-2/tcl/ex/simple.tcl to ns-3
-//
-// Network topology
-//
-//  n0
-//     \ 5 Mb/s, 2ms
-//      \          1.5Mb/s, 10ms
-//       n2 -------------------------n3
-//      /
-//     / 5 Mb/s, 2ms
-//   n1
-//
-// - all links are point-to-point links with indicated one-way BW/delay
-// - CBR/UDP flows from n0 to n3, and from n3 to n1
-// - FTP/TCP flow from n0 to n3, starting at time 1.2 to time 1.35 sec.
-// - UDP packet size of 210 bytes, with per-packet interval 0.00375 sec.
-//   (i.e., DataRate of 448,000 bps)
-// - DropTail queues 
-// - Tracing of queues and packet receptions to file 
-//   "simple-point-to-point.tr"
-
-#include "ns3/log.h"
-#include "ns3/command-line.h"
-#include "ns3/ptr.h"
-#include "ns3/random-variable.h"
-#include "ns3/config.h"
-#include "ns3/string.h"
-
-#include "ns3/simulator.h"
-#include "ns3/nstime.h"
-#include "ns3/data-rate.h"
-
-#include "ns3/ascii-trace.h"
-#include "ns3/pcap-trace.h"
-#include "ns3/internet-node.h"
-#include "ns3/point-to-point-channel.h"
-#include "ns3/point-to-point-net-device.h"
-#include "ns3/ipv4-address.h"
-#include "ns3/inet-socket-address.h"
-#include "ns3/ipv4.h"
-#include "ns3/socket.h"
-#include "ns3/ipv4-route.h"
-#include "ns3/point-to-point-topology.h"
-#include "ns3/onoff-application.h"
-#include "ns3/packet-sink.h"
-
-using namespace ns3;
-
-NS_LOG_COMPONENT_DEFINE ("SimplePointToPointExample");
-
-int 
-main (int argc, char *argv[])
-{
-  // Users may find it convenient to turn on explicit debugging
-  // for selected modules; the below lines suggest how to do this
-#if 0 
-  LogComponentEnable ("SimplePointToPointExample", LOG_LEVEL_ALL);
-#endif
-
-  // Set up some default values for the simulation.
-
-  Config::SetDefault ("ns3::OnOffApplication::PacketSize", String ("210"));
-  Config::SetDefault ("ns3::OnOffApplication::DataRate", String ("448kb/s"));
-
-  // Allow the user to override any of the defaults and the above
-  // Bind()s at run-time, via command-line arguments
-  CommandLine cmd;
-  cmd.Parse (argc, argv);
-
-  // Here, we will explicitly create four nodes.  In more sophisticated
-  // topologies, we could configure a node factory.
-  NS_LOG_INFO ("Create nodes.");
-  Ptr<Node> n0 = CreateObject<InternetNode> ();
-  Ptr<Node> n1 = CreateObject<InternetNode> (); 
-  Ptr<Node> n2 = CreateObject<InternetNode> (); 
-  Ptr<Node> n3 = CreateObject<InternetNode> ();
-
-  // We create the channels first without any IP addressing information
-  NS_LOG_INFO ("Create channels.");
-  Ptr<PointToPointChannel> channel0 = 
-    PointToPointTopology::AddPointToPointLink (
-      n0, n2, DataRate(5000000), MilliSeconds(2));
-
-  Ptr<PointToPointChannel> channel1 = 
-    PointToPointTopology::AddPointToPointLink (
-      n1, n2, DataRate(5000000), MilliSeconds(2));
-  
-  Ptr<PointToPointChannel> channel2 = 
-    PointToPointTopology::AddPointToPointLink (
-      n2, n3, DataRate(1500000), MilliSeconds(10));
-  
-  // Later, we add IP addresses.  
-  NS_LOG_INFO ("Assign IP Addresses.");
-  PointToPointTopology::AddIpv4Addresses (
-      channel0, n0, Ipv4Address("10.1.1.1"),
-      n2, Ipv4Address("10.1.1.2"));
-  
-  PointToPointTopology::AddIpv4Addresses (
-      channel1, n1, Ipv4Address("10.1.2.1"),
-      n2, Ipv4Address("10.1.2.2"));
-  
-  PointToPointTopology::AddIpv4Addresses (
-      channel2, n2, Ipv4Address("10.1.3.1"),
-      n3, Ipv4Address("10.1.3.2"));
-
-  // Finally, we add static routes.  These three steps (Channel and
-  // NetDevice creation, IP Address assignment, and routing) are 
-  // separated because there may be a need to postpone IP Address
-  // assignment (emulation) or modify to use dynamic routing
-  NS_LOG_INFO ("Add Static Routes.");
-  PointToPointTopology::AddIpv4Routes(n0, n2, channel0);
-  PointToPointTopology::AddIpv4Routes(n1, n2, channel1);
-  PointToPointTopology::AddIpv4Routes(n2, n3, channel2);
-
-  // Create the OnOff application to send UDP datagrams of size
-  // 210 bytes at a rate of 448 Kb/s
-  NS_LOG_INFO ("Create Applications.");
-  uint16_t port = 9;   // Discard port (RFC 863)
-  Ptr<OnOffApplication> ooff = 
-    CreateObject<OnOffApplication> ("Remote", Address (InetSocketAddress ("10.1.3.2", port)), 
-                                    "Protocol", TypeId::LookupByName ("ns3::Udp"),
-                                    "OnTime", ConstantVariable(1), 
-                                    "OffTime", ConstantVariable(0));
-  n0->AddApplication (ooff);
-  // Start the application
-  ooff->Start (Seconds(1.0));
-
-  // Create an optional packet sink to receive these packets
-  Ptr<PacketSink> sink = 
-    CreateObject<PacketSink> ("Local", Address (InetSocketAddress (Ipv4Address::GetAny (), port)),
-                              "Protocol", TypeId::LookupByName ("ns3::Udp"));
-  n3->AddApplication (sink);
-  // Start the sink
-  sink->Start (Seconds (1.0));
-
-  // Create a similar flow from n3 to n1, starting at time 1.1 seconds
-  ooff = CreateObject<OnOffApplication> ("Remote", Address (InetSocketAddress ("10.1.2.1", port)), 
-                                         "Protocol", TypeId::LookupByName ("ns3::Udp"),
-                                         "OnTime", ConstantVariable(1), 
-                                         "OffTime", ConstantVariable(0));
-  n3->AddApplication (ooff);
-  // Start the application
-  ooff->Start(Seconds(1.1));
-
-  // Create a packet sink to receive these packets
-  sink = CreateObject<PacketSink> ("Local", Address (InetSocketAddress (Ipv4Address::GetAny (), port)),
-                                   "Protocol", TypeId::LookupByName ("ns3::Udp"));
-  n1->AddApplication (sink);
-  // Start the sink
-  sink->Start (Seconds (1.1));
-
-  // TCP
-  // Create a file transfer from n0 to n3, starting at time 1.2
-  uint16_t servPort = 500;
-
-  ooff = CreateObject<OnOffApplication> ("Remote", Address (InetSocketAddress ("10.1.3.2", servPort)), 
-                                         "Protocol", TypeId::LookupByName ("ns3::Tcp"),
-                                         "OnTime", ConstantVariable(1), 
-                                         "OffTime", ConstantVariable(0));
-  n0->AddApplication (ooff);
-  // Start the application
-  ooff->Start (Seconds(1.2));
-  ooff->Stop (Seconds(1.35));
-
-  // Create a packet sink to receive these TCP packets
-  sink = CreateObject<PacketSink> ("Local", Address (InetSocketAddress (Ipv4Address::GetAny (), servPort)),
-                                   "Protocol", TypeId::LookupByName ("ns3::Tcp"));
-  n3->AddApplication (sink);
-  sink->Start (Seconds (1.2));
-
-  // Here, finish off packet routing configuration
-  // This will likely set by some global StaticRouting object in the future
-  NS_LOG_INFO ("Set Default Routes.");
-  Ptr<Ipv4> ipv4;
-  ipv4 = n0->GetObject<Ipv4> ();
-  ipv4->SetDefaultRoute (Ipv4Address ("10.1.1.2"), 1);
-  ipv4 = n3->GetObject<Ipv4> ();
-  ipv4->SetDefaultRoute (Ipv4Address ("10.1.3.1"), 1);
-  
-  // Configure tracing of all enqueue, dequeue, and NetDevice receive events
-  // Trace output will be sent to the simple-point-to-point.tr file
-  NS_LOG_INFO ("Configure Tracing.");
-  AsciiTrace asciitrace ("simple-point-to-point.tr");
-  asciitrace.TraceAllQueues ();
-  asciitrace.TraceAllNetDeviceRx ();
-
-  // Also configure some tcpdump traces; each interface will be traced
-  // The output files will be named 
-  // simple-point-to-point.pcap-<nodeId>-<interfaceId>
-  // and can be read by the "tcpdump -r" command (use "-tt" option to
-  // display timestamps correctly)
-  PcapTrace pcaptrace ("simple-point-to-point.pcap");
-  pcaptrace.TraceAllIp ();
-
-  NS_LOG_INFO ("Run Simulation.");
-  Simulator::StopAt (Seconds (3.0));
-  Simulator::Run ();    
-  Simulator::Destroy ();
-  NS_LOG_INFO ("Done.");
-}
--- a/examples/tcp-large-transfer.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/examples/tcp-large-transfer.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -182,7 +182,7 @@
 
   std::ofstream ascii;
   ascii.open ("tcp-large-transfer.tr");
-  PointToPointHelper::EnablePcap ("tcp-large-transfer.pcap");
+  PointToPointHelper::EnablePcap ("tcp-large-transfer");
   PointToPointHelper::EnableAscii (ascii);
 
 
--- a/examples/udp-echo.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/examples/udp-echo.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -128,7 +128,7 @@
 
   std::ofstream ascii;
   ascii.open ("udp-echo.tr");
-  CsmaHelper::EnablePcap ("udp-echo.pcap");
+  CsmaHelper::EnablePcap ("udp-echo");
   CsmaHelper::EnableAscii (ascii);
 
 //
--- a/examples/wscript	Mon Mar 31 16:22:06 2008 -0700
+++ b/examples/wscript	Mon Mar 31 16:22:24 2008 -0700
@@ -10,10 +10,6 @@
         ['point-to-point', 'internet-node', 'global-routing'])
     obj.source = 'simple-alternate-routing.cc'
 
-    obj = bld.create_ns3_program('simple-point-to-point',
-        ['point-to-point', 'internet-node'])
-    obj.source = 'simple-point-to-point.cc'
-
     obj = bld.create_ns3_program('simple-error-model',
         ['point-to-point', 'internet-node'])
     obj.source = 'simple-error-model.cc'
--- a/samples/main-packet-printer.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/samples/main-packet-printer.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006,2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/samples/main-tw.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/samples/main-tw.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 University of Washington
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/data-rate.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/data-rate.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/common/data-rate.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/data-rate.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/common/data-writer.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/data-writer.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/data-writer.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/data-writer.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/header.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/header.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/packet-metadata.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/packet-metadata.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006,2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/packet.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/packet.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/packet.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/packet.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/pcap-writer.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/pcap-writer.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/pcap-writer.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/pcap-writer.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/tag-registry.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/tag-registry.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/tag-registry.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/tag-registry.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/tag.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/tag.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/tags.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/tags.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/tags.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/tags.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/common/trailer.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/common/trailer.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/assert.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/assert.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/attribute-list.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/attribute-list.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2008 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/attribute-list.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/attribute-list.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2008 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/breakpoint.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/breakpoint.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006,2007 INRIA, INESC Porto
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/breakpoint.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/breakpoint.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006,2007 INESC Porto, INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/callback-test.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/callback-test.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/callback.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/callback.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/fatal-error.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/fatal-error.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/ptr.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/ptr.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/ptr.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/ptr.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/singleton.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/singleton.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/system-wall-clock-ms.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/system-wall-clock-ms.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/test.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/test.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/test.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/test.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/traced-callback.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/traced-callback.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/traced-callback.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/traced-callback.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006,2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/type-id.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/type-id.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2008 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/type-id.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/type-id.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2008 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/uid-manager.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/uid-manager.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/uid-manager.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/uid-manager.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/unix-system-wall-clock-ms.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/unix-system-wall-clock-ms.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/core/win32-system-wall-clock-ms.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/core/win32-system-wall-clock-ms.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/devices/csma/backoff.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/devices/csma/backoff.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007, Emmanuelle Laprise
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/devices/csma/csma-channel.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/devices/csma/csma-channel.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 Emmanuelle Laprise
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/devices/csma/csma-ipv4-topology.cc	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-//
-// Copyright (c) 2007 Emmanuelle Laprise
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2 as
-// published by the Free Software Foundation;
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-//
-// Author: Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
-//
-
-#include <algorithm>
-#include "ns3/assert.h"
-#include "ns3/fatal-error.h"
-#include "ns3/nstime.h"
-#include "ns3/internet-node.h"
-#include "ns3/ipv4-address.h"
-#include "ns3/ipv4.h"
-#include "ns3/queue.h"
-#include "ns3/drop-tail-queue.h"
-#include "ns3/string.h"
-
-#include "csma-channel.h"
-#include "csma-net-device.h"
-#include "csma-ipv4-topology.h"
-
-namespace ns3 {
-
-uint32_t
-CsmaIpv4Topology::AddIpv4CsmaNetDevice(
-  Ptr<Node> node,
-  Ptr<CsmaChannel> channel,
-  Mac48Address addr)
-{
-  Ptr<Queue> q = CreateObject<DropTailQueue> ();
-
-  // assume full-duplex
-  Ptr<CsmaNetDevice> nd = CreateObject<CsmaNetDevice> ("Address", addr, 
-                                                       "EncapsulationMode", String ("IpArp"));
-  node->AddDevice (nd);
-
-  nd->AddQueue(q);
-  nd->Attach (channel);
-  return nd->GetIfIndex ();
-}
-
-
-void
-CsmaIpv4Topology::AddIpv4LlcCsmaNode(Ptr<Node> n1,
-                                     Ptr<CsmaChannel> ch,
-                                     Mac48Address addr)
-{
-  Ptr<Queue> q = CreateObject<DropTailQueue> ();
-
-  Ptr<CsmaNetDevice> nd0 = CreateObject<CsmaNetDevice> ("Address", addr,
-                                                        "EncapsulationMode", String ("Llc"));
-  n1->AddDevice (nd0);
-  nd0->SetSendEnable (true);
-  nd0->SetReceiveEnable (false);
-  nd0->AddQueue(q);
-  nd0->Attach (ch);
-
-  Ptr<CsmaNetDevice> nd1 = CreateObject<CsmaNetDevice> ("Address", addr,
-                                                        "EncapsulationMode", String ("Llc"));
-  n1->AddDevice (nd1);
-  nd1->SetSendEnable (false);
-  nd1->SetReceiveEnable (true);
-  nd1->AddQueue(q);
-  nd1->Attach (ch);
-}
-
-void
-CsmaIpv4Topology::AddIpv4RawCsmaNode(Ptr<Node> n1,
-                                     Ptr<CsmaChannel> ch,
-                                     Mac48Address addr)
-{
-  Ptr<Queue> q = CreateObject<DropTailQueue> ();
-
-  Ptr<CsmaNetDevice> nd0 = CreateObject<CsmaNetDevice> ("Address", addr,
-                                                        "EncapsulationMode", String ("Raw"));
-  n1->AddDevice (nd0);
-  nd0->SetSendEnable (true);
-  nd0->SetReceiveEnable (false);
-  nd0->AddQueue(q);
-  nd0->Attach (ch);
-
-  Ptr<CsmaNetDevice> nd1 = CreateObject<CsmaNetDevice> ("Address", addr,
-                                                        "EncapsulationMode", String ("Raw"));
-  n1->AddDevice (nd1);
-  nd1->SetSendEnable (false);
-  nd1->SetReceiveEnable (true);
-
-  nd1->AddQueue(q);
-  nd1->Attach (ch);
-}
-
-uint32_t
-CsmaIpv4Topology::AddIpv4Address(
-  Ptr<Node>             node,
-  uint32_t              netDeviceNumber,
-  const Ipv4Address     address,
-  const Ipv4Mask        mask,
-  uint16_t              metric)
-{
-  Ptr<NetDevice> nd = node->GetDevice(netDeviceNumber);
-
-  Ptr<Ipv4> ipv4 = node->GetObject<Ipv4> ();
-  uint32_t ifIndex = ipv4->AddInterface (nd);
-
-  ipv4->SetAddress (ifIndex, address);
-  ipv4->SetNetworkMask (ifIndex, mask);
-  ipv4->SetMetric (ifIndex, metric);
-  ipv4->SetUp (ifIndex);
-  return ifIndex;
-}
-
-void
-CsmaIpv4Topology::AddIpv4Routes (
-  Ptr<NetDevice> nd1, Ptr<NetDevice> nd2)
-{ 
-  // Assert that both are Ipv4 nodes
-  Ptr<Ipv4> ip1 = nd1->GetNode ()->GetObject<Ipv4> ();
-  Ptr<Ipv4> ip2 = nd2->GetNode ()->GetObject<Ipv4> ();
-  NS_ASSERT(ip1 != 0 && ip2 != 0);
-
-  // Get interface indexes for both nodes corresponding to the right channel
-  uint32_t index1 = 0;
-  bool found = false;
-  for (uint32_t i = 0; i < ip1->GetNInterfaces (); i++)
-    {
-      if (ip1 ->GetNetDevice (i) == nd1)
-        {
-          index1 = i;
-          found = true;
-        }
-    }
-  NS_ASSERT (found);
-
-  uint32_t index2 = 0;
-  found = false;
-  for (uint32_t i = 0; i < ip2->GetNInterfaces (); i++)
-    {
-      if (ip2 ->GetNetDevice (i) == nd2)
-        {
-          index2 = i;
-          found = true;
-        }
-    }
-  NS_ASSERT (found);
-
-  ip1->AddHostRouteTo (ip2-> GetAddress (index2), index1);
-  ip2->AddHostRouteTo (ip1-> GetAddress (index1), index2); 
-}
-
-} // namespace ns3
- 
--- a/src/devices/csma/csma-ipv4-topology.h	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-//
-// Copyright (c) 2007 Emmanuelle Laprise
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2 as
-// published by the Free Software Foundation;
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-//
-// Author: Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
-//
-
-#ifndef __CSMA_IPV4_TOPOLOGY_H__
-#define __CSMA_IPV4_TOPOLOGY_H__
-
-#include "ns3/ptr.h"
-#include "ns3/ipv4-address.h"
-#include "ns3/ipv4.h"
-#include "ns3/ipv4-route.h"
-#include "ns3/internet-node.h"
-#include "ns3/csma-net-device.h"
-
-// The topology class consists of only static methods thar are used to
-// create the topology and data flows for an ns3 simulation
-
-namespace ns3 {
-
-class CsmaIpv4Channel;
-class Node;
-class IPAddr;
-class DataRate;
-class Queue;
-
-/**
- * \brief A helper class to create Topologies based on the
- * InternetNodes and CsmaChannels. Either the
- * SimpleCsmaNetDevice or the LLCCsmaNetDevice can be used
- * when constructing these topologies.
- */
-class CsmaIpv4Topology {
-public:
-
-  /**
-   * \param node Node to be attached to the Csma channel
-   * \param channel CsmaChannel to which node n1 should be attached
-   * \param addr Mac address of the node
-   *
-   * Add a Csma node to a Csma channel. This function adds
-   * a EthernetCsmaNetDevice to the nodes so that they can
-   * connect to a CsmaChannel. This means that Ethernet headers
-   * and trailers will be added to the packet before sending out on
-   * the net device.
-   * 
-   * \return ifIndex of the device
-   */
-  static uint32_t AddIpv4CsmaNetDevice(Ptr<Node> node,
-                                       Ptr<CsmaChannel> channel,
-                                       Mac48Address addr);
-
-  /**
-   * \param n1 Node to be attached to the Csma channel
-   * \param ch CsmaChannel to which node n1 should be attached
-   * \param addr Mac address of the node
-   *
-   * Add a Csma node to a Csma channel. This function adds
-   * a RawCsmaNetDevice to the nodes so that they can connect
-   * to a CsmaChannel.
-   */
-  static void AddIpv4RawCsmaNode( Ptr<Node> n1,
-                                    Ptr<CsmaChannel> ch,
-                                    Mac48Address addr);
-
-  /**
-   * \param n1 Node to be attached to the Csma channel
-   * \param ch CsmaChannel to which node n1 should be attached
-   * \param addr Mac address of the node
-   *
-   * Add a Csma node to a Csma channel. This function adds
-   * a LlcCsmaNetDevice to the nodes so that they can connect
-   * to a CsmaChannel.
-   */
-  static void AddIpv4LlcCsmaNode( Ptr<Node> n1,
-                                    Ptr<CsmaChannel> ch,
-                                    Mac48Address addr);
-
-
-
-  /** 
-   * \brief Create an Ipv4 interface for a net device and assign an 
-   * Ipv4Address to that interface.
-   *
-   * \param node The node to which to add the new address and corresponding 
-   *        interface.
-   * \param netDeviceNumber The NetDevice index number with which to associate
-   *        the address.
-   * \param address The Ipv4 Address for the interface.
-   * \param mask The network mask for the interface
-   * \param metric (optional) metric (cost) to assign for routing calculations
-   * 
-   * Add an Ipv4Address to the Ipv4 interface associated with the
-   * ndNum CsmaIpv4NetDevices on the provided CsmaIpv4Channel
-   */
-  static uint32_t AddIpv4Address(Ptr<Node> node,
-                                 uint32_t netDeviceNumber, 
-                                 const Ipv4Address address,
-                                 const Ipv4Mask mask,
-                                 uint16_t metric = 1);
-
-  /**
-   * \param nd1 Node
-   * \param nd2 Node
-   * 
-   * Add an IPV4 host route between the two specified net devices
-   */
-  static void AddIpv4Routes (Ptr<NetDevice> nd1, Ptr<NetDevice> nd2);
-};
-
-} // namespace ns3
-
-#endif
-
--- a/src/devices/csma/csma-net-device.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/devices/csma/csma-net-device.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 Emmanuelle Laprise
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/devices/csma/csma-topology.cc	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-//
-// Copyright (c) 2007 Emmanuelle Laprise
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2 as
-// published by the Free Software Foundation;
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-//
-// Author: Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
-//
-
-//
-// Topology helper for Csma channels in ns3.
-
-#include "ns3/assert.h"
-#include "ns3/queue.h"
-
-#include "csma-channel.h"
-#include "csma-net-device.h"
-#include "csma-topology.h"
-#include "ns3/socket-factory.h"
-
-namespace ns3 {
-
-Ptr<CsmaChannel>
-CsmaTopology::CreateCsmaChannel(
-  const DataRate& bps,
-  const Time& delay)
-{
-  Ptr<CsmaChannel> channel = CreateObject<CsmaChannel> ("BitRate", bps, "Delay", delay);
-
-  return channel;
-}
-
-#if 0
-Ptr<CsmaNetDevice>
-CsmaTopology::AddCsmaEthernetNode(
-  Ptr<Node> n1,
-  Ptr<CsmaChannel> ch,
-  Mac48Address addr)
-{
-  Ptr<CsmaNetDevice> nd1 = CreateObject<CsmaNetDevice> ("Address", addr, 
-                                                        "EncapsulationMode", "EthernetV1");
-
-  Ptr<Queue> q = Queue::CreateDefault ();
-  nd1->AddQueue(q);
-  nd1->Attach (ch);
-  
-  return nd1;
-}
-
-Ptr<PacketSocket>
-CsmaTopology::ConnectPacketSocket(Ptr<PacketSocketApp> app, 
-                                  Ptr<CsmaNetDevice> ndSrc,
-                                  Ptr<CsmaNetDevice> ndDest)
-{
-  Ptr<PacketSocket> socket = CreateObject<PacketSocket> ();
-  socket->Bind(ndSrc);
-  socket->Connect(ndDest->GetAddress());
-  app->Connect(socket);
-
-  return socket;
-}
-
-Ptr<PacketSocket>
-CsmaTopology::ConnectPacketSocket(Ptr<PacketSocketApp> app,
-                                        Ptr<CsmaNetDevice> ndSrc,
-                                        MacAddress macAddr)
-{
-  Ptr<PacketSocket> socket = CreateObject<PacketSocket> ();
-  socket->Bind(ndSrc);
-  socket->Connect(macAddr);
-  app->Connect(socket);
-
-  return socket;
-}
-
-Ptr<Socket>
-CsmaTopology::CreatePacketSocket(Ptr<Node> n1, std::string tid_name)
-{
-  TypeId tid = TypeId::LookupByName (tid_name);
-
-  Ptr<SocketFactory> socketFactory =
-    n1->GetObject<SocketFactory> (tid);
-
-  Ptr<Socket> socket = socketFactory->CreateSocket ();
-
-  return socket;
-}
-#endif
-
-} // namespace ns3
- 
--- a/src/devices/csma/csma-topology.h	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-//
-// Copyright (c) 2007 Emmanuelle Laprise
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2 as
-// published by the Free Software Foundation;
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-//
-// Author: Emmanuelle Laprise <emmanuelle.laprise@bluekazoo.ca>
-//
-// Topology helper for multipoint channels in ns3.
-// 
-#ifndef CSMA_TOPOLOGY_H
-#define CSMA_TOPOLOGY_H
-
-#include "ns3/ptr.h"
-#include "ns3/csma-net-device.h"
-#include "ns3/node.h"
-
-// The topology class consists of only static methods thar are used to
-// create the topology and data flows for an ns3 simulation
-
-namespace ns3 {
-
-class CsmaChannel;
-class Node;
-class DataRate;
-class Queue;
-
-/**
- * \brief A helper class to create Csma Topologies 
- *
- * Csma topologies are created based on the
- * ns3::CsmaNetDevice subclasses and ns3::CsmaChannel
- * objects.  This class uses the EthernetNetDevice and
- * PacketSocket classes in order to create logical connections between
- * net devices. The PacketSocket class generates the data and the
- * EthernetNetDevice class creates ethernet packets from the
- * data, filling in source and destination addresses. The
- * EthernetNetDevice class filters received data packets
- * according to its destination Mac addresses.
- */
-class CsmaTopology {
-public:
-  /** 
-   * \param dataRate Maximum transmission link rate 
-   * \param delay propagation delay between any two nodes 
-   * \return Pointer to the created CsmaChannel
-   * 
-   * Create a CsmaChannel. All nodes connected to a multipoint
-   * channels will receive all packets written to that channel
-   */
-  static Ptr<CsmaChannel> CreateCsmaChannel(
-    const DataRate& dataRate, const Time& delay);
-
-#if 0
-  /**
-   * \param n1 Node to be attached to the multipoint channel
-   * \param ch CsmaChannel to which node n1 should be attached 
-   * \param addr MacAddress that should be assigned to the
-   * EthernetNetDevice that will be added to the node.
-   *
-   * Add a multipoint node to a multipoint channel
-   */
-  static Ptr<CsmaNetDevice> AddCsmaEthernetNode(Ptr<Node> n1, 
-                                                    Ptr<CsmaChannel> ch,
-                                                    MacAddress addr);
-
-  /**
-   * \param app Application that will be sending data to the agent
-   * \param ndSrc Net Device that will be sending the packets onto the
-   * network
-   * \param ndDest Net Device to which ndSrc will be sending the packets
-   * \return A pointer to the PacketSocket
-   *
-   * Creates an PacketSocket and configure it to send packets between
-   * two net devices
-   */
-static Ptr<PacketSocket> ConnectPacketSocket(Ptr<PacketSocketApp> app,
-                                      Ptr<CsmaNetDevice> ndSrc,
-                                      Ptr<CsmaNetDevice> ndDest);
-
-  /**
-   * \param app Application that will be sending data to the agent
-   * \param ndSrc Net Device that will be sending the packets onto the
-   * network 
-   * \param macAddr Mac destination address for the packets send by
-   * the ndSrc net device \return a Pointer to the created
-   * PacketSocket
-   *
-   * Creates an PacketSocket and configure it to send packets from a
-   * net device to a destination MacAddress
-   */
-static Ptr<PacketSocket> ConnectPacketSocket(Ptr<PacketSocketApp> app,
-                                      Ptr<CsmaNetDevice> ndSrc,
-                                      MacAddress macAddr);
-
-  /**
-   * \param n1 Node from which socketfactory should be tested.
-   * \param tid_name Interface identifier ("ns3::PacketSocketFactory", in this case)
-   *
-   * This is a test function to make sure that a socket can be created
-   * by using the socketfactory interface provided in the
-   * netdevicenode.
-   */
-static  Ptr<Socket> CreatePacketSocket(Ptr<Node> n1, 
-                                       std::string tid_name);
-#endif
-
-};
-} // namespace ns3
-
-#endif
-
--- a/src/devices/csma/wscript	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/devices/csma/wscript	Mon Mar 31 16:22:24 2008 -0700
@@ -6,8 +6,6 @@
         'backoff.cc',
         'csma-net-device.cc',
         'csma-channel.cc',
-        'csma-topology.cc',
-        'csma-ipv4-topology.cc',
         ]
     headers = bld.create_obj('ns3header')
     headers.module = 'csma'
@@ -15,6 +13,4 @@
         'backoff.h',
         'csma-net-device.h',
         'csma-channel.h',
-        'csma-topology.h',
-        'csma-ipv4-topology.h',
         ]
--- a/src/devices/point-to-point/point-to-point-channel.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/devices/point-to-point/point-to-point-channel.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 University of Washington
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/devices/point-to-point/point-to-point-net-device.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/devices/point-to-point/point-to-point-net-device.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/devices/point-to-point/point-to-point-topology.cc	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-//
-// Copyright (c) 2006 Georgia Tech Research Corporation
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2 as
-// published by the Free Software Foundation;
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-//
-// Author: George F. Riley<riley@ece.gatech.edu>
-//
-
-//
-// Topology helper for ns3.
-// George F. Riley, Georgia Tech, Spring 2007
-
-#include <algorithm>
-#include "ns3/assert.h"
-#include "ns3/log.h"
-#include "ns3/fatal-error.h"
-#include "ns3/nstime.h"
-#include "ns3/internet-node.h"
-#include "ns3/ipv4-address.h"
-#include "ns3/ipv4.h"
-#include "ns3/queue.h"
-#include "ns3/drop-tail-queue.h"
-
-#include "point-to-point-channel.h"
-#include "point-to-point-net-device.h"
-#include "point-to-point-topology.h"
-
-namespace ns3 {
-
-Ptr<PointToPointChannel>
-PointToPointTopology::AddPointToPointLink(
-  Ptr<Node> n1,
-  Ptr<Node> n2,
-  const DataRate& bps,
-  const Time& delay)
-{
-  Ptr<PointToPointChannel> channel = CreateObject<PointToPointChannel> ("BitRate", bps, "Delay", delay);
-
-  Ptr<PointToPointNetDevice> net1 = CreateObject<PointToPointNetDevice> ("Address", Mac48Address::Allocate ());
-  n1->AddDevice (net1);
-
-  Ptr<Queue> q = CreateObject<DropTailQueue> ();
-  net1->AddQueue(q);
-  net1->Attach (channel);
-  
-  Ptr<PointToPointNetDevice> net2 = CreateObject<PointToPointNetDevice> ("Address", Mac48Address::Allocate ());
-  n2->AddDevice (net2);
-
-  q = CreateObject<DropTailQueue> ();
-  net2->AddQueue(q);
-  net2->Attach (channel);
-
-  return channel;
-}
-
-Ptr<PointToPointNetDevice> 
-PointToPointTopology::GetNetDevice (Ptr<Node> n, Ptr<PointToPointChannel> chan)
-{
-  Ptr<PointToPointNetDevice> found = 0;
-
-  // The PointToPoint channel is used to find the relevant NetDevice
-  NS_ASSERT (chan->GetNDevices () == 2);
-  Ptr<PointToPointNetDevice> nd1 = chan->GetPointToPointDevice (0);
-  Ptr<PointToPointNetDevice> nd2 = chan->GetPointToPointDevice (1);
-  if ( nd1->GetNode ()->GetId () == n->GetId () ) 
-    {
-      found = nd1;
-    }
-  else if ( nd2->GetNode ()->GetId () == n->GetId () ) 
-    {
-      found = nd2;
-    }
-  else
-    {
-      NS_ASSERT (found);
-    }
-  return found;
-}
-
-void
-PointToPointTopology::AddIpv4Addresses(
-  Ptr<const PointToPointChannel> chan,
-  Ptr<Node> n1, const Ipv4Address& addr1,
-  Ptr<Node> n2, const Ipv4Address& addr2)
-{
-
-  // Duplex link is assumed to be subnetted as a /30
-  // May run this unnumbered in the future?
-  Ipv4Mask netmask("255.255.255.252");
-  NS_ASSERT (netmask.IsMatch(addr1,addr2));
-
-  // The PointToPoint channel is used to find the relevant NetDevices
-  NS_ASSERT (chan->GetNDevices () == 2);
-  Ptr<NetDevice> nd1 = chan->GetDevice (0);
-  Ptr<NetDevice> nd2 = chan->GetDevice (1);
-  // Make sure that nd1 belongs to n1 and nd2 to n2
-  if ( (nd1->GetNode ()->GetId () == n2->GetId () ) && 
-       (nd2->GetNode ()->GetId () == n1->GetId () ) )
-    {
-      std::swap(nd1, nd2);
-    }
-  NS_ASSERT (nd1->GetNode ()->GetId () == n1->GetId ());
-  NS_ASSERT (nd2->GetNode ()->GetId () == n2->GetId ());
-  
-  Ptr<Ipv4> ip1 = n1->GetObject<Ipv4> ();
-  uint32_t index1 = ip1->AddInterface (nd1);
-
-  ip1->SetAddress (index1, addr1);
-  ip1->SetNetworkMask (index1, netmask);
-  ip1->SetUp (index1);
-
-  Ptr<Ipv4> ip2 = n2->GetObject<Ipv4> ();
-  uint32_t index2 = ip2->AddInterface (nd2);
-
-  ip2->SetAddress (index2, addr2);
-  ip2->SetNetworkMask (index2, netmask);
-  ip2->SetUp (index2);
-  
-}
-
-void
-PointToPointTopology::SetIpv4Metric(
-  Ptr<const PointToPointChannel> chan,
-  Ptr<Node> n1, Ptr<Node> n2, uint16_t metric)
-{
-
-  // The PointToPoint channel is used to find the relevant NetDevices
-  NS_ASSERT (chan->GetNDevices () == 2);
-  Ptr<NetDevice> nd1 = chan->GetDevice (0);
-  Ptr<NetDevice> nd2 = chan->GetDevice (1);
-  // Make sure that nd1 belongs to n1 and nd2 to n2
-  if ( (nd1->GetNode ()->GetId () == n2->GetId () ) && 
-       (nd2->GetNode ()->GetId () == n1->GetId () ) )
-    {
-      std::swap(nd1, nd2);
-    }
-  NS_ASSERT (nd1->GetNode ()->GetId () == n1->GetId ());
-  NS_ASSERT (nd2->GetNode ()->GetId () == n2->GetId ());
-  
-  // The NetDevice ifIndex does not correspond to the
-  // ifIndex used by Ipv4.  Therefore, we have to iterate
-  // through the NetDevices until we find the Ipv4 ifIndex
-  // that corresponds to NetDevice nd1
-  // Get interface indexes for both nodes corresponding to the right channel
-  uint32_t index = 0;
-  bool found = false;
-  Ptr<Ipv4> ip1 = n1->GetObject<Ipv4> ();
-  for (uint32_t i = 0; i < ip1->GetNInterfaces (); i++)
-    {
-      if (ip1 ->GetNetDevice (i) == nd1)
-        {
-          index = i;
-          found = true;
-        }
-    }
-  NS_ASSERT(found);
-  ip1->SetMetric (index, metric);
-
-  index = 0;
-  found = false;
-  Ptr<Ipv4> ip2 = n2->GetObject<Ipv4> ();
-  for (uint32_t i = 0; i < ip2->GetNInterfaces (); i++)
-    {
-      if (ip2 ->GetNetDevice (i) == nd2)
-        {
-          index = i;
-          found = true;
-        }
-    }
-  NS_ASSERT(found);
-  ip2->SetMetric (index, metric);
-}
-
-void
-PointToPointTopology::AddIpv4Routes (
-  Ptr<Node> n1, Ptr<Node> n2, Ptr<const PointToPointChannel> chan)
-{ 
-  // The PointToPoint channel is used to find the relevant NetDevices
-  NS_ASSERT (chan->GetNDevices () == 2);
-  Ptr<NetDevice> nd1 = chan->GetDevice (0);
-  Ptr<NetDevice> nd2 = chan->GetDevice (1);
-
-  // Assert that n1 is the Node owning one of the two NetDevices
-  // and make sure that nd1 corresponds to it
-  if (nd1->GetNode ()->GetId () == n1->GetId ())
-    {
-      ; // Do nothing
-    }
-  else if (nd2->GetNode ()->GetId () == n1->GetId ())
-    {
-      std::swap(nd1, nd2);
-    }
-  else
-    {
-      NS_FATAL_ERROR("P2PTopo: Node does not contain an interface on Channel");
-    }
-
-   // Assert that n2 is the Node owning one of the two NetDevices
-   // and make sure that nd2 corresponds to it
-  if (nd2->GetNode ()->GetId () != n2->GetId ())
-    {
-      NS_FATAL_ERROR("P2PTopo: Node does not contain an interface on Channel");
-    }
-
-  // Assert that both are Ipv4 nodes
-  Ptr<Ipv4> ip1 = nd1->GetNode ()->GetObject<Ipv4> ();
-  Ptr<Ipv4> ip2 = nd2->GetNode ()->GetObject<Ipv4> ();
-  NS_ASSERT(ip1 != 0 && ip2 != 0);
-
-  // Get interface indexes for both nodes corresponding to the right channel
-  uint32_t index1 = 0;
-  bool found = false;
-  for (uint32_t i = 0; i < ip1->GetNInterfaces (); i++)
-    {
-      if (ip1 ->GetNetDevice (i) == nd1)
-        {
-          index1 = i;
-          found = true;
-        }
-    }
-  NS_ASSERT(found);
-
-  uint32_t index2 = 0;
-  found = false;
-  for (uint32_t i = 0; i < ip2->GetNInterfaces (); i++)
-    {
-      if (ip2 ->GetNetDevice (i) == nd2)
-        {
-          index2 = i;
-          found = true;
-        }
-    }
-  NS_ASSERT(found);
-
-  ip1->AddHostRouteTo (ip2-> GetAddress (index2), index1);
-  ip2->AddHostRouteTo (ip1-> GetAddress (index1), index2); 
-}
-
-} // namespace ns3
- 
--- a/src/devices/point-to-point/point-to-point-topology.h	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-//
-// Copyright (c) 2006 Georgia Tech Research Corporation
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2 as
-// published by the Free Software Foundation;
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-//
-// Author: George F. Riley<riley@ece.gatech.edu>
-//
-// Topology helper for ns3.
-// George F. Riley, Georgia Tech, Spring 2007
-#ifndef __POINT_TO_POINT_TOPOLOGY_H__
-#define __POINT_TO_POINT_TOPOLOGY_H__
-
-#include "ns3/ptr.h"
-
-// The topology class consists of only static methods thar are used to
-// create the topology and data flows for an ns3 simulation
-
-namespace ns3 {
-
-class PointToPointChannel;
-class Node;
-class IPAddr;
-class DataRate;
-class Queue;
-
-/**
- * \brief A helper class to create Topologies based on the 
- * ns3::PointToPointNetDevice and  ns3::PointToPointChannel objects.
- */
-class PointToPointTopology {
-public:
-  /** 
-   * \param n1 Node
-   * \param n2 Node
-   * \param dataRate Maximum transmission link rate 
-   * \param delay one-way propagation delay 
-   * \return Pointer to the underlying PointToPointChannel
-   * 
-   * Add a full-duplex point-to-point link between two nodes
-   * and attach PointToPointNetDevices to the resulting
-   * PointToPointChannel.  
-   */
-  static Ptr<PointToPointChannel> AddPointToPointLink(
-    Ptr<Node> n1, Ptr<Node> n2, const DataRate& dataRate, const Time& delay);
-
-  /** 
-   * \param n Node
-   * \param chan PointToPointChannel connected to node n
-   * \return Pointer to the corresponding PointToPointNetDevice
-   * 
-   * Utility function to retrieve a PointToPointNetDevice pointer
-   * corresponding to the input parameters
-   */
-  static Ptr<PointToPointNetDevice> GetNetDevice(
-    Ptr<Node> n, Ptr<PointToPointChannel> chan);
-
-  /** 
-   * \param chan PointToPointChannel to use
-   * \param n1 Node
-   * \param addr1 Ipv4 Address for n1
-   * \param n2 Node
-   * \param addr2 Ipv4 Address for n2
-   * 
-   * Add Ipv4Addresses to the Ipv4 interfaces associated with the 
-   * two PointToPointNetDevices on the provided PointToPointChannel
-   */
-  static void AddIpv4Addresses(
-    Ptr<const PointToPointChannel> chan,
-    Ptr<Node> n1, const Ipv4Address& addr1,
-    Ptr<Node> n2, const Ipv4Address& addr2);
-
-  /** 
-   * \param chan PointToPointChannel to use
-   * \param n1 Node
-   * \param n2 Node
-   * \param metric link metric to assign on Ipv4Link on chan between n1 and n2
-   * 
-   * Add a non-unit-cost link metric (bidirectionally) to the Ipv4 
-   * interfaces associated with the two PointToPointNetDevices on the 
-   * provided PointToPointChannel
-   */
-  static void SetIpv4Metric(
-    Ptr<const PointToPointChannel> chan,
-    Ptr<Node> n1, Ptr<Node> n2, uint16_t metric);
-
-  /**
-   * \param channel PointToPointChannel to use
-   * \param n1 Node
-   * \param n2 Node
-   * 
-   * For the given PointToPointChannel, for each Node, add an 
-   * IPv4 host route to the IPv4 address of the peer node.  
-   */
-  static void AddIpv4Routes (Ptr<Node> n1, Ptr<Node> n2, Ptr<const PointToPointChannel> channel);
-};
-
-} // namespace ns3
-
-#endif
-
--- a/src/devices/point-to-point/wscript	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/devices/point-to-point/wscript	Mon Mar 31 16:22:24 2008 -0700
@@ -6,7 +6,6 @@
     module.source = [
         'point-to-point-net-device.cc',
         'point-to-point-channel.cc',
-        'point-to-point-topology.cc',
         'point-to-point-test.cc',
         ]
     headers = bld.create_obj('ns3header')
@@ -14,6 +13,5 @@
     headers.source = [
         'point-to-point-net-device.h',
         'point-to-point-channel.h',
-        'point-to-point-topology.h',
         ]
 
--- a/src/devices/wifi/wifi-trace.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/devices/wifi/wifi-trace.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-	Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/devices/wifi/wifi-trace.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/devices/wifi/wifi-trace.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-	Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/helper/application-container.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/application-container.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "application-container.h"
 
 namespace ns3 {
--- a/src/helper/application-container.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/application-container.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef APPLICATION_CONTAINER_H
 #define APPLICATION_CONTAINER_H
 
@@ -42,7 +61,7 @@
    */
   void Add (ApplicationContainer other);
   /**
-   * \param device another netdevice pointer.
+   * \param application another netdevice pointer.
    *
    * Append to the end of this container the input netdevice pointer.
    */
--- a/src/helper/csma-helper.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/csma-helper.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "csma-helper.h"
 #include "ns3/simulator.h"
 #include "ns3/object-factory.h"
@@ -48,7 +67,7 @@
 CsmaHelper::EnablePcap (std::string filename, uint32_t nodeid, uint32_t deviceid)
 {
   std::ostringstream oss;
-  oss << filename << "-" << nodeid << "-" << deviceid;
+  oss << filename << "-" << nodeid << "-" << deviceid << ".pcap";
   Ptr<PcapWriter> pcap = Create<PcapWriter> ();
   pcap->Open (oss.str ());
   pcap->WriteEthernetHeader ();
--- a/src/helper/csma-helper.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/csma-helper.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef CSMA_HELPER_H
 #define CSMA_HELPER_H
 
@@ -67,7 +86,7 @@
    *
    * Generate a pcap file which contains the link-level data observed
    * by the specified deviceid within the specified nodeid. The pcap
-   * data is stored in the file prefix-nodeid-deviceid.
+   * data is stored in the file prefix-nodeid-deviceid.pcap.
    *
    * This method should be invoked after the network topology has 
    * been fully constructed.
--- a/src/helper/internet-stack-helper.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/internet-stack-helper.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "internet-stack-helper.h"
 #include "ns3/internet-stack.h"
 #include "ns3/packet-socket-factory.h"
--- a/src/helper/internet-stack-helper.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/internet-stack-helper.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef INTERNET_STACK_HELPER_H
 #define INTERNET_STACK_HELPER_H
 
--- a/src/helper/mobility-helper.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/mobility-helper.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "ns3/mobility-helper.h"
 #include "ns3/mobility-model.h"
 #include "ns3/mobility-model-notifier.h"
--- a/src/helper/mobility-helper.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/mobility-helper.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef MOBILITY_HELPER_H
 #define MOBILITY_HELPER_H
 
--- a/src/helper/net-device-container.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/net-device-container.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "net-device-container.h"
 
 namespace ns3 {
--- a/src/helper/net-device-container.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/net-device-container.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef NET_DEVICE_CONTAINER_H
 #define NET_DEVICE_CONTAINER_H
 
--- a/src/helper/node-container.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/node-container.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "node-container.h"
 #include "ns3/node-list.h"
 
--- a/src/helper/node-container.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/node-container.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef NODE_CONTAINER_H
 #define NODE_CONTAINER_H
 
--- a/src/helper/ns2-mobility-helper.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/ns2-mobility-helper.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/helper/ns2-mobility-helper.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/ns2-mobility-helper.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/helper/olsr-helper.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/olsr-helper.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "olsr-helper.h"
 #include "ns3/olsr-agent.h"
 #include "ns3/node-list.h"
--- a/src/helper/olsr-helper.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/olsr-helper.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef OLSR_HELPER_H
 #define OLSR_HELPER_H
 
--- a/src/helper/on-off-helper.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/on-off-helper.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "on-off-helper.h"
 #include "ns3/inet-socket-address.h"
 #include "ns3/packet-socket-address.h"
--- a/src/helper/on-off-helper.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/on-off-helper.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef ON_OFF_HELPER_H
 #define ON_OFF_HELPER_H
 
--- a/src/helper/packet-sink-helper.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/packet-sink-helper.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "packet-sink-helper.h"
 #include "ns3/string.h"
 #include "ns3/inet-socket-address.h"
--- a/src/helper/packet-sink-helper.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/packet-sink-helper.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef PACKET_SINK_HELPER_H
 #define PACKET_SINK_HELPER_H
 
--- a/src/helper/point-to-point-helper.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/point-to-point-helper.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "point-to-point-helper.h"
 #include "ns3/simulator.h"
 #include "ns3/point-to-point-net-device.h"
@@ -48,7 +67,7 @@
 PointToPointHelper::EnablePcap (std::string filename, uint32_t nodeid, uint32_t deviceid)
 {
   std::ostringstream oss;
-  oss << filename << "-" << nodeid << "-" << deviceid;
+  oss << filename << "-" << nodeid << "-" << deviceid << ".pcap";
   Ptr<PcapWriter> pcap = Create<PcapWriter> ();
   pcap->Open (oss.str ());
   pcap->WriteEthernetHeader ();
--- a/src/helper/point-to-point-helper.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/point-to-point-helper.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef POINT_TO_POINT_HELPER_H
 #define POINT_TO_POINT_HELPER_H
 
@@ -66,7 +85,7 @@
    *
    * Generate a pcap file which contains the link-level data observed
    * by the specified deviceid within the specified nodeid. The pcap
-   * data is stored in the file prefix-nodeid-deviceid.
+   * data is stored in the file prefix-nodeid-deviceid.pcap.
    *
    * This method should be invoked after the network topology has 
    * been fully constructed.
--- a/src/helper/static-multicast-route-helper.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/static-multicast-route-helper.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 University of Washington
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Tom Henderson <tomhend@u.washington.edu>
+ */
 
 #include <vector>
 #include "ns3/ptr.h"
--- a/src/helper/static-multicast-route-helper.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/static-multicast-route-helper.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 University of Washington
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Tom Henderson <tomhend@u.washington.edu>
+ */
 #ifndef STATIC_MULTICAST_ROUTE_HELPER_H
 #define STATIC_MULTICAST_ROUTE_HELPER_H
 
--- a/src/helper/udp-echo-helper.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/udp-echo-helper.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "udp-echo-helper.h"
 #include "ns3/udp-echo-server.h"
 #include "ns3/udp-echo-client.h"
--- a/src/helper/udp-echo-helper.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/udp-echo-helper.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef UDP_ECHO_HELPER_H
 #define UDP_ECHO_HELPER_H
 
--- a/src/helper/wifi-helper.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/wifi-helper.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "wifi-helper.h"
 #include "ns3/wifi-net-device.h"
 #include "ns3/wifi-mac.h"
@@ -12,6 +31,7 @@
 #include "ns3/wifi-mode.h"
 #include "ns3/wifi-preamble.h"
 #include "ns3/config.h"
+#include "ns3/simulator.h"
 
 
 
@@ -38,14 +58,14 @@
 			     WifiMode mode, WifiPreamble preamble, 
 			     uint8_t txLevel)
 {
-  *os << context << " " << *packet << std::endl;
+  *os << "+ " << Simulator::Now () << " " << context << " " << *packet << std::endl;
 }
 
 static void AsciiPhyRxOkEvent (std::ostream *os, std::string context, 
 			       Ptr<const Packet> packet, double snr, WifiMode mode, 
 			       enum WifiPreamble preamble)
 {
-  *os << context << " " << *packet << std::endl;
+  *os << "r " << Simulator::Now () << " " << context << " " << *packet << std::endl;
 }
 
 
@@ -129,7 +149,7 @@
 WifiHelper::EnablePcap (std::string filename, uint32_t nodeid, uint32_t deviceid)
 {
   std::ostringstream oss;
-  oss << filename << "-" << nodeid << "-" << deviceid;
+  oss << filename << "-" << nodeid << "-" << deviceid << ".pcap";
   Ptr<PcapWriter> pcap = Create<PcapWriter> ();
   pcap->Open (oss.str ());
   pcap->WriteWifiHeader ();
--- a/src/helper/wifi-helper.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/helper/wifi-helper.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #ifndef WIFI_HELPER_H
 #define WIFI_HELPER_H
 
@@ -128,7 +147,7 @@
    *
    * Generate a pcap file which contains the link-level data observed
    * by the specified deviceid within the specified nodeid. The pcap
-   * data is stored in the file prefix-nodeid-deviceid.
+   * data is stored in the file prefix-nodeid-deviceid.pcap.
    *
    * This method should be invoked after the network topology has 
    * been fully constructed.
--- a/src/internet-node/arp-cache.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/arp-cache.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/arp-cache.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/arp-cache.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/arp-header.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/arp-header.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/arp-header.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/arp-header.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/arp-ipv4-interface.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/arp-ipv4-interface.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/arp-ipv4-interface.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/arp-ipv4-interface.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/arp-l3-protocol.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/arp-l3-protocol.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/arp-l3-protocol.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/arp-l3-protocol.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ascii-trace.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ascii-trace.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-	Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ascii-trace.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ascii-trace.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-	Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/internet-node.cc	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-// -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
-//
-// Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2 as
-// published by the Free Software Foundation;
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-//
-// Author: George F. Riley<riley@ece.gatech.edu>
-//
-// Implementation of the InternetNode class for ns3.
-// George F. Riley, Georgia Tech, Fall 2006
-
-#include "ns3/net-device.h"
-#include "ns3/callback.h"
-#include "internet-node.h"
-#include "internet-stack.h"
-
-
-namespace ns3 {
-
-InternetNode::InternetNode()
-{
-  AddInternetStack (this);
-}
-
-
-}//namespace ns3
--- a/src/internet-node/internet-node.h	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-// -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
-//
-// Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2 as
-// published by the Free Software Foundation;
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-//
-// Author: George F. Riley<riley@ece.gatech.edu>
-//
-// Define a basic "Internet" node, with a protocol stack (l3 and l4),
-// network device list, process list, and routing.
-
-#ifndef INTERNET_NODE_H
-#define INTERNET_NODE_H
-
-#include <list>
-#include <string>
-
-#include "ns3/node.h"
-
-namespace ns3 {
-
-/**
- * \ingroup internetNode
- *
- * \section InternetNode Overview
- *
- * The InternetNode module contains an implementation of TCP, UDP, and
- * IPv4.  ns-3 Applications sit above this module, and ns-3 NetDevices
- * sit below it...
- *
- * InternetNode is implemented as a subclass of Node but this may be
- * refactored in the future to 
- */
-
-/*
- * \brief Container class for various TCP/IP objects and interfaces
- * aggregated to a Node.
- *
- * This class exists primarily to assemble the layer-3/4 stack of a Node 
- * from constituent parts, including implementations of TCP, IPv4, UDP, 
- * and ARP.  It provides only constructors and destructors as its public
- * API.  Internally, the various protocols are instantiated, aggregated
- * to a Node, and plumbed together.
- */
-class InternetNode : public Node 
-{
-public:
-  InternetNode();
-};
-
-}//namespace ns3
-
-#endif /* INTERNET_NODE_H */
--- a/src/internet-node/internet-stack.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/internet-stack.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 // -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
@@ -21,9 +20,9 @@
 
 #include "ns3/net-device.h"
 #include "ns3/callback.h"
+#include "ns3/node.h"
 
 #include "ipv4-l4-demux.h"
-#include "internet-node.h"
 #include "udp-l4-protocol.h"
 #include "tcp-l4-protocol.h"
 #include "ipv4-l3-protocol.h"
--- a/src/internet-node/internet-stack.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/internet-stack.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 // -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-checksum.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-checksum.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006,2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-checksum.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-checksum.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006,2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-end-point-demux.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-end-point-demux.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-end-point-demux.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-end-point-demux.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-end-point.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-end-point.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-end-point.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-end-point.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-header.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-header.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-header.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-header.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-impl.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-impl.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-impl.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-impl.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-interface.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-interface.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006,2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-interface.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-interface.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006,2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-l3-protocol.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-l3-protocol.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 // -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-l3-protocol.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-l3-protocol.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 // -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-l4-demux.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-l4-demux.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 // -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-l4-demux.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-l4-demux.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 // -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-l4-protocol.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-l4-protocol.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 // -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-l4-protocol.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-l4-protocol.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 // -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-loopback-interface.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-loopback-interface.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-loopback-interface.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-loopback-interface.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-static-routing.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-static-routing.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 // -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/ipv4-static-routing.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/ipv4-static-routing.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 // -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*-
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/pcap-trace.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/pcap-trace.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-	Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/pcap-trace.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/pcap-trace.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-	Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/pending-data.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/pending-data.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/pending-data.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/pending-data.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/sequence-number.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/sequence-number.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/sequence-number.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/sequence-number.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 //
 // Copyright (c) 2006 Georgia Tech Research Corporation
-// All rights reserved.
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/udp-header.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/udp-header.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/udp-header.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/udp-header.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/udp-impl.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/udp-impl.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/udp-impl.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/udp-impl.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/udp-l4-protocol.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/udp-l4-protocol.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/udp-l4-protocol.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/udp-l4-protocol.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006,2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/udp-socket.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/udp-socket.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -352,13 +351,13 @@
 #ifdef RUN_SELF_TESTS
 
 #include "ns3/test.h"
-#include "ns3/internet-node.h"
 #include "ns3/socket-factory.h"
 #include "ns3/udp.h"
 #include "ns3/simulator.h"
 #include "ns3/simple-channel.h"
 #include "ns3/simple-net-device.h"
 #include "ns3/drop-tail-queue.h"
+#include "internet-stack.h"
 #include <string>
 
 namespace ns3 {
@@ -399,7 +398,8 @@
   // Create topology
   
   // Receiver Node
-  Ptr<Node> rxNode = CreateObject<InternetNode> ();
+  Ptr<Node> rxNode = CreateObject<Node> ();
+  AddInternetStack (rxNode);
   Ptr<SimpleNetDevice> rxDev1, rxDev2;
   { // first interface
     rxDev1 = CreateObject<SimpleNetDevice> ();
@@ -424,7 +424,8 @@
   }
   
   // Sender Node
-  Ptr<Node> txNode = CreateObject<InternetNode> ();
+  Ptr<Node> txNode = CreateObject<Node> ();
+  AddInternetStack (txNode);
   Ptr<SimpleNetDevice> txDev1;
   {
     txDev1 = CreateObject<SimpleNetDevice> ();
--- a/src/internet-node/udp-socket.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/udp-socket.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/internet-node/wscript	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/internet-node/wscript	Mon Mar 31 16:22:24 2008 -0700
@@ -4,7 +4,6 @@
 def build(bld):
     obj = bld.create_ns3_module('internet-node', ['node'])
     obj.source = [
-        'internet-node.cc',
         'internet-stack.cc',
         'ipv4-l4-demux.cc',
         'ipv4-l4-protocol.cc',
@@ -39,7 +38,6 @@
     headers = bld.create_obj('ns3header')
     headers.module = 'internet-node'
     headers.source = [
-        'internet-node.h',
         'internet-stack.h',
         'ascii-trace.h',
         'pcap-trace.h',
--- a/src/mobility/random-direction-2d-mobility-model.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/mobility/random-direction-2d-mobility-model.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/mobility/random-direction-2d-mobility-model.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/mobility/random-direction-2d-mobility-model.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/mobility/random-walk-2d-mobility-model.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/mobility/random-walk-2d-mobility-model.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006,2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/mobility/random-walk-2d-mobility-model.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/mobility/random-walk-2d-mobility-model.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006,2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/mobility/random-waypoint-mobility-model.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/mobility/random-waypoint-mobility-model.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/address-utils.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/address-utils.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/address-utils.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/address-utils.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/drop-tail-queue.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/drop-tail-queue.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 University of Washington
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/drop-tail-queue.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/drop-tail-queue.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 University of Washington
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/ethernet-header.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/ethernet-header.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/ethernet-header.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/ethernet-header.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 Emmanuelle Laprise
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/ethernet-trailer.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/ethernet-trailer.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/ethernet-trailer.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/ethernet-trailer.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 Emmanuelle Laprise
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/inet-socket-address.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/inet-socket-address.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/inet-socket-address.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/inet-socket-address.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/ipv4-address.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/ipv4-address.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/ipv4-address.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/ipv4-address.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/ipv4-route.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/ipv4-route.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/ipv4-route.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/ipv4-route.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/ipv4.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/ipv4.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/ipv4.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/ipv4.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/llc-snap-header.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/llc-snap-header.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/llc-snap-header.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/llc-snap-header.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/net-device.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/net-device.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/net-device.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/net-device.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005,2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/node-list.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/node-list.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/node-list.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/node-list.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/packet-socket-factory.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/packet-socket-factory.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 Emmanuelle Laprise
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/packet-socket-factory.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/packet-socket-factory.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 Emmanuelle Laprise
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/queue.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/queue.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 University of Washington
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/queue.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/queue.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 University of Washington
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/simple-net-device.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/simple-net-device.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,3 +1,22 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
 #include "simple-net-device.h"
 #include "simple-channel.h"
 #include "node.h"
@@ -153,6 +172,14 @@
   m_rxCallback = cb;
 }
 
+void
+SimpleNetDevice::DoDispose (void)
+{
+  m_channel = 0;
+  m_node = 0;
+  NetDevice::DoDispose ();
+}
+
 
 
 } // namespace ns3
--- a/src/node/simple-net-device.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/simple-net-device.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,5 +1,24 @@
-#ifndef TEST_NET_DEVICE_H
-#define TEST_NET_DEVICE_H
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2008 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
+#ifndef SIMPLE_NET_DEVICE_H
+#define SIMPLE_NET_DEVICE_H
 
 #include "net-device.h"
 #include "mac48-address.h"
@@ -44,6 +63,8 @@
   virtual bool NeedsArp (void) const;
   virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
 
+protected:
+  virtual void DoDispose (void);
 private:
   Ptr<SimpleChannel> m_channel;
   NetDevice::ReceiveCallback m_rxCallback;
@@ -56,4 +77,4 @@
 
 } // namespace ns3
 
-#endif /* TEST_NET_DEVICE_H */
+#endif /* SIMPLE_NET_DEVICE_H */
--- a/src/node/socket-factory.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/socket-factory.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/socket-factory.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/socket-factory.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/udp.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/udp.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/node/udp.h	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/node/udp.h	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/src/routing/global-routing/global-router-interface.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/routing/global-routing/global-router-interface.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -22,7 +22,7 @@
 #include "ns3/assert.h"
 #include "ns3/channel.h"
 #include "ns3/net-device.h"
-#include "ns3/internet-node.h"
+#include "ns3/node.h"
 #include "ns3/ipv4.h"
 #include "global-router-interface.h"
 
--- a/src/routing/olsr/olsr-agent-impl.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/src/routing/olsr/olsr-agent-impl.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -32,7 +32,6 @@
 #include "olsr-agent-impl.h"
 #include "ns3/socket-factory.h"
 #include "ns3/udp.h"
-#include "ns3/internet-node.h"
 #include "ns3/simulator.h"
 #include "ns3/log.h"
 #include "ns3/random-variable.h"
--- a/tutorial/energy-model.cc	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2007 University of Washington
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include "ns3/log.h"
-#include "energy-model.h"
-
-NS_LOG_COMPONENT_DEFINE("EnergyModel");
-
-namespace ns3 {
-
-//
-// Some dimensional analysis ...
-//
-// 1 [watt] = 1 [joule] / [second]
-// 1 [watt] = 1 [volt] * 1 [amp]
-// 1 [amp] = 1 [coulomb] / 1 [second]
-// 1 [watt-second] = 1 [joule] / [second] * [second] = 1 [joule]
-//
-// A watt has dimensions of energy per second.  A watt-second has dimensions
-// of energy.
-//
-// 1 [amp-hour] = 1 [coulomb] / 1 [second] * 1 [hour]
-// 1 [amp-hour] = 1 [coulomb] / 1 [second] * 3600 [seconds]
-// 1 [amp-hour] = 3600 [amp-seconds]
-// 1 [watt-second] = 1 [amp-seconds] * 1 [volt]
-//
-// To get the energy capacity of your battery in watt-seconds from its 
-// amp-hour rating, multiply by 3600 and then the voltage.  For example, your
-// Alkaline AAA battery may be rated at 1.5 volts and 900 milli-amp-hours;
-// so the energy capacity will be .9 * 3600 * 1.5 = 4860 watt-seconds.
-//
-// In a very simple battery model, we'll take this naively to mean that this
-// battery can supply one watt continuously for 4860 seconds and then will die
-// instantaneously.
-//
-// We'll assume our transmitter is measured in watts.  When it is turned on
-// it draws some amount of power, 100 milliwatts for example.  If it transmits
-// for one second, it will suck up .1 watt-seconds of our precious energy.
-// 
-
-const InterfaceId EnergyModel::iid = 
-  MakeInterfaceId ("EnergyModel", Object::iid);
-
-
-EnergyModel::EnergyModel (
-  double ampHours, 
-  double volts,
-  double idlePower,
-  double receivePower,
-  double transmitPower)
-:
-  m_capacity (ampHours * 3600. * volts),
-  m_idlePower (idlePower),
-  m_receivePower (receivePower),
-  m_transmitPower (transmitPower),
-  m_totalTransmitPower (0.),
-  m_totalReceivePower (0.)
-{
-  NS_LOG_FUNCTION;
-  SetInterfaceId (EnergyModel::iid);
-}
-
-EnergyModel::~EnergyModel ()
-{
-  NS_LOG_FUNCTION;
-}
-
-  double
-EnergyModel::GetCapacity (Time t)
-{
-  NS_LOG_FUNCTION;
-  double c = m_capacity - m_idlePower * t.GetSeconds ();
-  return c >= 0. ? c : 0.;
-}
-
-  double
-EnergyModel::GetTotalIdlePower (Time t)
-{
-  NS_LOG_FUNCTION;
-  return m_idlePower * t.GetSeconds ();
-}
-
-  double
-EnergyModel::GetTotalReceivePower (void)
-{
-  NS_LOG_FUNCTION;
-  return m_totalReceivePower;
-}
-
-  double
-EnergyModel::GetTotalTransmitPower (void)
-{
-  NS_LOG_FUNCTION;
-  return m_totalTransmitPower;
-}
-
-  bool
-EnergyModel::DrawTransmitPower (Time t)
-{
-  NS_LOG_FUNCTION;
-  double power = m_transmitPower * t.GetSeconds ();
-  m_totalTransmitPower += power;
-  m_capacity -= power;
-  return m_capacity - m_idlePower * t.GetSeconds () >= 0. ? true : false;
-}
-
-  bool
-EnergyModel::DrawReceivePower (Time t)
-{
-  NS_LOG_FUNCTION;
-  double power = m_receivePower * t.GetSeconds ();
-  m_totalReceivePower += power;
-  m_capacity -= power;
-  return m_capacity - m_idlePower * t.GetSeconds () >= 0. ? true : false;
-}
-
-}; // namespace ns3
--- a/tutorial/energy-model.h	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2007 University of Washington
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef ENERGY_MODEL_H
-#define ENERGY_MODEL_H
-
-#include "ns3/object.h"
-#include "ns3/ptr.h"
-#include "ns3/nstime.h"
-
-namespace ns3 {
-
-class EnergyModel : public Object
-{
-public:
-  static const InterfaceId iid;
-
-  EnergyModel (
-    double ampHours, 
-    double volts,
-    double idlePower,
-    double receivePower,
-    double transmitPower);
-
-  virtual ~EnergyModel ();
-
-  double GetCapacity (Time t);
-
-  double GetTotalIdlePower (Time t);
-  double GetTotalTransmitPower (void);
-  double GetTotalReceivePower (void);
-
-  bool DrawTransmitPower (Time t);
-  bool DrawReceivePower (Time t);
-
-private:
-  double m_capacity;
-  double m_idlePower;
-  double m_receivePower;
-  double m_transmitPower;
-  double m_totalTransmitPower;
-  double m_totalReceivePower;
-};
-
-}; // namespace ns3
-
-#endif /* ENERGY_MODEL_H */
--- a/tutorial/energy.cc	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include "ns3/log.h"
-#include "ns3/ptr.h"
-#include "ns3/internet-node.h"
-#include "ns3/point-to-point-channel.h"
-#include "ns3/mac48-address.h"
-#include "ns3/point-to-point-net-device.h"
-#include "ns3/point-to-point-topology.h"
-#include "ns3/udp-echo-client.h"
-#include "ns3/udp-echo-server.h"
-#include "ns3/simulator.h"
-#include "ns3/nstime.h"
-#include "ns3/ascii-trace.h"
-#include "ns3/pcap-trace.h"
-#include "ns3/global-route-manager.h"
-
-#include "energy-model.h"
-
-NS_LOG_COMPONENT_DEFINE ("EnergyModelInterfaceExample");
-
-using namespace ns3;
-
-// Network topology
-//
-//                       point to point
-//                      +--------------+
-//                      |              |
-//                     n0             n1
-//
-int 
-main (int argc, char *argv[])
-{
-  LogComponentEnable ("EnergyModelInterfaceExample", LOG_LEVEL_ALL);
-  //  LogComponentEnable ("EnergyModel", LOG_LEVEL_ALL);
-
-  NS_LOG_INFO ("Energy Model Interface Example");
-
-  NS_LOG_INFO ("Creating Nodes");
-  Ptr<Node> n0 = CreateObject<InternetNode> ();
-  Ptr<Node> n1 = CreateObject<InternetNode> ();
-
-  NS_LOG_INFO ("Creating Channel");
-  Ptr<PointToPointChannel> link = PointToPointTopology::AddPointToPointLink (
-    n0, n1, DataRate (38400), MilliSeconds (20));
-
-  PointToPointTopology::AddIpv4Addresses (link, n0, "10.1.1.1", 
-    n1, "10.1.1.2");
-
-  NS_LOG_INFO ("Creating Applications");
-  uint16_t port = 7;
-
-  Ptr<UdpEchoClient> client = CreateObject<UdpEchoClient> (n0, "10.1.1.2", 
-    port, 1, Seconds(1.), 1024);
-
-  Ptr<UdpEchoServer> server = CreateObject<UdpEchoServer> (n1, port);
-
-  server->Start(Seconds(1.));
-  client->Start(Seconds(2.));
-
-  server->Stop (Seconds(10.));
-  client->Stop (Seconds(10.));
-
-  NS_LOG_INFO ("Initializing Tracing");
-  AsciiTrace asciitrace ("energy.tr");
-  asciitrace.TraceAllQueues ();
-  asciitrace.TraceAllNetDeviceRx ();
-//  
-// Pick a battery out of the air and use some somewhat real numbers found on
-// data sheets on the web.
-//
-// 2 AAA battery (900 mAh * 2, with imaginary wireless device that uses
-// 0.350 W at idle power, 0.025 W additional during receive, and 0.2 W 
-// additional power during transmission (10 mW TX power).
-//
-  NS_LOG_INFO ("Initializing Energy Models");
-  Ptr<EnergyModel> e0 = CreateObject<EnergyModel> (1.8, 1.5, 0.35, 0.025, 0.2);
-  n0->AddInterface (e0);
-
-  Ptr<EnergyModel> e1 = CreateObject<EnergyModel> (1.8, 1.5, 0.35, 0.025, 0.2);
-  n1->AddInterface (e1);
-
-#if 0
-//
-// As simulation progresses, the battereis draw idle power.  Down in the 
-// net device, we will want to call DrawTransmitPower and DrawReceivePower
-// as required.
-//
-// This is just some example code showing how to draw power and check 
-// consumption.
-//
-  NS_LOG_INFO("Node zero energy: " << e0->GetCapacity (Seconds (0.)) << 
-    " watt-seconds");
-  NS_LOG_INFO("Node one energy: " << e1->GetCapacity (Seconds (0.)) << 
-    " watt-seconds");
-
-  e0->DrawTransmitPower (Seconds (0.1));
-  e1->DrawReceivePower (Seconds (0.1));
-  e1->DrawTransmitPower (Seconds (0.1));
-  e0->DrawReceivePower (Seconds (0.1));
-
-  NS_LOG_INFO("Node zero energy: " << e0->GetCapacity (Seconds (10.)) << 
-    " watt-seconds");
-  NS_LOG_INFO("Node one energy: " << e1->GetCapacity (Seconds (10.)) << 
-    " watt-seconds");
-#endif
-
-  Simulator::Run ();
-  Simulator::Destroy ();
-}
--- a/tutorial/hello-simulator.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/tutorial/hello-simulator.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -14,7 +14,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include "ns3/log.h"
+#include "ns3/core-module.h"
 
 NS_LOG_COMPONENT_DEFINE ("HelloSimulator");
 
--- a/tutorial/point-to-point-ipv4-topology.cc	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include "ns3/assert.h"
-#include "ns3/log.h"
-#include "ns3/nstime.h"
-#include "ns3/internet-node.h"
-#include "ns3/ipv4-address.h"
-#include "ns3/ipv4.h"
-#include "ns3/queue.h"
-#include "ns3/drop-tail-queue.h"
-
-#include "ns3/point-to-point-channel.h"
-#include "ns3/point-to-point-net-device.h"
-#include "point-to-point-ipv4-topology.h"
-
-namespace ns3 {
-
-  Ptr<PointToPointChannel>
-PointToPointIpv4Topology::CreateChannel (
-  const DataRate& bps,
-  const Time& delay)
-{
-  return CreateObject<PointToPointChannel> ("BitRate", bps, "Delay", delay);
-}
-
-  uint32_t
-PointToPointIpv4Topology::AddNetDevice (
-  Ptr<Node> node,
-  Ptr<PointToPointChannel> channel)
-{
-  NS_ASSERT (channel->GetNDevices () <= 1);
-
-  Ptr<PointToPointNetDevice> nd = 
-    CreateObject<PointToPointNetDevice> ("Address", Mac48Address::Allocate ());
-  node->AddDevice (nd);
-  Ptr<Queue> q = CreateObject<DropTailQueue> ();
-  nd->AddQueue(q);
-  nd->Attach (channel);
-
-  return nd->GetIfIndex ();
-}
-
-  uint32_t
-PointToPointIpv4Topology::AddAddress (
-  Ptr<Node> node,
-  uint32_t netDeviceNumber,
-  Ipv4Address address,
-  Ipv4Mask mask)
-{
-  Ptr<NetDevice> nd = node->GetDevice(netDeviceNumber);
-  Ptr<Ipv4> ipv4 = node->GetObject<Ipv4> ();
-  uint32_t ifIndex = ipv4->AddInterface (nd);
-
-  ipv4->SetAddress (ifIndex, address);
-  ipv4->SetNetworkMask (ifIndex, mask);
-  ipv4->SetUp (ifIndex);
-
-  return ifIndex;
-}
-
-} // namespace ns3
--- a/tutorial/point-to-point-ipv4-topology.h	Mon Mar 31 16:22:06 2008 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef POINT_TO_POINT_IPV4_TOPOLOGY_H
-#define POINT_TO_POINT_IPV4_TOPOLOGY_H
-
-#include "ns3/ptr.h"
-
-namespace ns3 {
-
-class PointToPointChannel;
-class Node;
-class Ipv4Address;
-class Ipv4Mask;
-class DataRate;
-
-class PointToPointIpv4Topology {
-public:
-  static Ptr<PointToPointChannel> CreateChannel (
-    const DataRate& dataRate, const Time& delay);
-
-  static uint32_t AddNetDevice(
-    Ptr<Node> node,
-    Ptr<PointToPointChannel> channel);
-
-  static uint32_t AddAddress(
-    Ptr<Node> node,
-    uint32_t ndIndex,
-    Ipv4Address address,
-    Ipv4Mask mask);
-};
-
-} // namespace ns3
-
-#endif // POINT_TO_POINT_IPV4_TOPOLOGY_H
-
--- a/tutorial/tutorial-csma-echo-ascii-trace.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/tutorial/tutorial-csma-echo-ascii-trace.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -14,21 +14,11 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include "ns3/log.h"
-#include "ns3/ptr.h"
-#include "ns3/internet-node.h"
-#include "ns3/csma-channel.h"
-#include "ns3/mac48-address.h"
-#include "ns3/csma-net-device.h"
-#include "ns3/csma-topology.h"
-#include "ns3/csma-ipv4-topology.h"
-#include "ns3/udp-echo-client.h"
-#include "ns3/udp-echo-server.h"
-#include "ns3/simulator.h"
-#include "ns3/nstime.h"
-#include "ns3/ascii-trace.h"
-#include "ns3/inet-socket-address.h"
-#include "ns3/uinteger.h"
+#include <fstream>
+
+#include "ns3/core-module.h"
+#include "ns3/simulator-module.h"
+#include "ns3/helper-module.h"
 
 NS_LOG_COMPONENT_DEFINE ("UdpEchoSimulation");
 
@@ -41,55 +31,42 @@
 
   NS_LOG_INFO ("UDP Echo Simulation");
 
-  Ptr<Node> n0 = CreateObject<InternetNode> ();
-  Ptr<Node> n1 = CreateObject<InternetNode> ();
-  Ptr<Node> n2 = CreateObject<InternetNode> ();
-  Ptr<Node> n3 = CreateObject<InternetNode> ();
+  NodeContainer n;
+  n.Create (4);
 
-  Ptr<CsmaChannel> lan = 
-    CsmaTopology::CreateCsmaChannel (DataRate (5000000), MilliSeconds (2));
-
-  uint32_t nd0 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n0, lan, 
-    "08:00:2e:00:00:00");
+  InternetStackHelper internet;
+  internet.Build (n);
 
-  uint32_t nd1 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n1, lan, 
-    "08:00:2e:00:00:01");
-
-  uint32_t nd2 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n2, lan, 
-    "08:00:2e:00:00:02");
+  CsmaHelper csma;
+  csma.SetChannelParameter ("BitRate", DataRate (5000000));
+  csma.SetChannelParameter ("Delay", MilliSeconds (2));
+  NetDeviceContainer nd = csma.Build (n);
 
-  uint32_t nd3 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n3, lan, 
-    "08:00:2e:00:00:03");
-
-  CsmaIpv4Topology::AddIpv4Address (n0, nd0, "10.1.1.1", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n1, nd1, "10.1.1.2", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n2, nd2, "10.1.1.3", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n3, nd3, "10.1.1.4", "255.255.255.0");
+  Ipv4AddressHelper ipv4;
+  ipv4.SetBase ("10.1.1.0", "255.255.255.0");
+  Ipv4InterfaceContainer i = ipv4.Allocate (nd);
 
   uint16_t port = 7;
 
-  Ptr<UdpEchoClient> client = 
-    CreateObject<UdpEchoClient> ("RemoteIpv4", Ipv4Address ("10.1.1.2"),
-                                 "RemotePort", Uinteger (port), 
-                                 "MaxPackets", Uinteger (1), 
-                                 "Interval", Seconds(1.), 
-                                 "PacketSize", Uinteger (1024));
-  n0->AddApplication (client);
+  UdpEchoClientHelper client;
+  client.SetRemote (i.GetAddress (1), port);
+  client.SetAppAttribute ("MaxPackets", Uinteger (1));
+  client.SetAppAttribute ("Interval", Seconds (1.0));
+  client.SetAppAttribute ("PacketSize", Uinteger (1024));
+  ApplicationContainer apps = client.Build (n.Get (0));
+  apps.Start (Seconds (2.0));
+  apps.Stop (Seconds (10.0));
 
-  Ptr<UdpEchoServer> server = 
-    CreateObject<UdpEchoServer> ("Port", Uinteger (port));
-  n1->AddApplication (server);
-
-  server->Start(Seconds(1.));
-  client->Start(Seconds(2.));
+  UdpEchoServerHelper server;
+  server.SetPort (port);
+  apps = server.Build (n.Get (1));
+  apps.Start (Seconds (1.0));
+  apps.Stop (Seconds (10.0));
 
-  server->Stop (Seconds(10.));
-  client->Stop (Seconds(10.));
-
-  AsciiTrace asciitrace ("tutorial.tr");
-  asciitrace.TraceAllQueues ();
-  asciitrace.TraceAllNetDeviceRx ();
-
+  std::ofstream os;
+  os.open ("tutorial.tr");
+  CsmaHelper::EnableAscii (os);
+  
   Simulator::Run ();
   Simulator::Destroy ();
 }
--- a/tutorial/tutorial-csma-echo-pcap-trace.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/tutorial/tutorial-csma-echo-pcap-trace.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -14,22 +14,9 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include "ns3/log.h"
-#include "ns3/ptr.h"
-#include "ns3/internet-node.h"
-#include "ns3/csma-channel.h"
-#include "ns3/mac48-address.h"
-#include "ns3/csma-net-device.h"
-#include "ns3/csma-topology.h"
-#include "ns3/csma-ipv4-topology.h"
-#include "ns3/udp-echo-client.h"
-#include "ns3/udp-echo-server.h"
-#include "ns3/simulator.h"
-#include "ns3/nstime.h"
-#include "ns3/ascii-trace.h"
-#include "ns3/pcap-trace.h"
-#include "ns3/inet-socket-address.h"
-#include "ns3/uinteger.h"
+#include "ns3/core-module.h"
+#include "ns3/simulator-module.h"
+#include "ns3/helper-module.h"
 
 NS_LOG_COMPONENT_DEFINE ("UdpEchoSimulation");
 
@@ -42,60 +29,40 @@
 
   NS_LOG_INFO ("UDP Echo Simulation");
 
-  Ptr<Node> n0 = CreateObject<InternetNode> ();
-  Ptr<Node> n1 = CreateObject<InternetNode> ();
-  Ptr<Node> n2 = CreateObject<InternetNode> ();
-  Ptr<Node> n3 = CreateObject<InternetNode> ();
+  NodeContainer n;
+  n.Create (4);
 
-  Ptr<CsmaChannel> lan = 
-    CsmaTopology::CreateCsmaChannel (DataRate (5000000), MilliSeconds (2));
-
-  uint32_t nd0 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n0, lan, 
-    "08:00:2e:00:00:00");
+  InternetStackHelper internet;
+  internet.Build (n);
 
-  uint32_t nd1 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n1, lan, 
-    "08:00:2e:00:00:01");
-
-  uint32_t nd2 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n2, lan, 
-    "08:00:2e:00:00:02");
+  CsmaHelper csma;
+  csma.SetChannelParameter ("BitRate", DataRate (5000000));
+  csma.SetChannelParameter ("Delay", MilliSeconds (2));
+  NetDeviceContainer nd = csma.Build (n);
 
-  uint32_t nd3 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n3, lan, 
-    "08:00:2e:00:00:03");
-
-  CsmaIpv4Topology::AddIpv4Address (n0, nd0, "10.1.1.1", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n1, nd1, "10.1.1.2", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n2, nd2, "10.1.1.3", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n3, nd3, "10.1.1.4", "255.255.255.0");
+  Ipv4AddressHelper ipv4;
+  ipv4.SetBase ("10.1.1.0", "255.255.255.0");
+  Ipv4InterfaceContainer i = ipv4.Allocate (nd);
 
   uint16_t port = 7;
 
-  Ptr<UdpEchoClient> client = 
-    CreateObject<UdpEchoClient> ("RemoteIpv4", Ipv4Address ("10.1.1.2"),
-                                 "RemotePort", Uinteger (port), 
-                                 "MaxPackets", Uinteger (1), 
-                                 "Interval", Seconds(1.), 
-                                 "PacketSize", Uinteger (1024));
-  n0->AddApplication (client);
-
-  Ptr<UdpEchoServer> server = 
-    CreateObject<UdpEchoServer> ("Port", Uinteger (port));
-  n1->AddApplication (server);
+  UdpEchoClientHelper client;
+  client.SetRemote (i.GetAddress (1), port);
+  client.SetAppAttribute ("MaxPackets", Uinteger (1));
+  client.SetAppAttribute ("Interval", Seconds (1.0));
+  client.SetAppAttribute ("PacketSize", Uinteger (1024));
+  ApplicationContainer apps = client.Build (n.Get (0));
+  apps.Start (Seconds (2.0));
+  apps.Stop (Seconds (10.0));
 
-  server->Start(Seconds(1.));
-  client->Start(Seconds(2.));
-
-  server->Stop (Seconds(10.));
-  client->Stop (Seconds(10.));
+  UdpEchoServerHelper server;
+  server.SetPort (port);
+  apps = server.Build (n.Get (1));
+  apps.Start (Seconds (1.0));
+  apps.Stop (Seconds (10.0));
 
-  AsciiTrace asciitrace ("tutorial.tr");
-  asciitrace.TraceAllQueues ();
-#if 0
-  asciitrace.TraceAllNetDeviceRx ();
-#endif
-
-  PcapTrace pcaptrace ("tutorial.pcap");
-  pcaptrace.TraceAllIp ();
-
+  CsmaHelper::EnablePcap ("tutorial");
+  
   Simulator::Run ();
   Simulator::Destroy ();
 }
--- a/tutorial/tutorial-csma-echo.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/tutorial/tutorial-csma-echo.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -14,20 +14,9 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include "ns3/log.h"
-#include "ns3/ptr.h"
-#include "ns3/internet-node.h"
-#include "ns3/csma-channel.h"
-#include "ns3/mac48-address.h"
-#include "ns3/csma-net-device.h"
-#include "ns3/csma-topology.h"
-#include "ns3/csma-ipv4-topology.h"
-#include "ns3/udp-echo-client.h"
-#include "ns3/udp-echo-server.h"
-#include "ns3/simulator.h"
-#include "ns3/nstime.h"
-#include "ns3/uinteger.h"
-#include "ns3/inet-socket-address.h"
+#include "ns3/core-module.h"
+#include "ns3/simulator-module.h"
+#include "ns3/helper-module.h"
 
 NS_LOG_COMPONENT_DEFINE ("UdpEchoSimulation");
 
@@ -40,51 +29,38 @@
 
   NS_LOG_INFO ("UDP Echo Simulation");
 
-  Ptr<Node> n0 = CreateObject<InternetNode> ();
-  Ptr<Node> n1 = CreateObject<InternetNode> ();
-  Ptr<Node> n2 = CreateObject<InternetNode> ();
-  Ptr<Node> n3 = CreateObject<InternetNode> ();
+  NodeContainer n;
+  n.Create (4);
 
-  Ptr<CsmaChannel> lan = 
-    CsmaTopology::CreateCsmaChannel (DataRate (5000000), MilliSeconds (2));
-
-  uint32_t nd0 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n0, lan, 
-    "08:00:2e:00:00:00");
+  InternetStackHelper internet;
+  internet.Build (n);
 
-  uint32_t nd1 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n1, lan, 
-    "08:00:2e:00:00:01");
-
-  uint32_t nd2 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n2, lan, 
-    "08:00:2e:00:00:02");
+  CsmaHelper csma;
+  csma.SetChannelParameter ("BitRate", DataRate (5000000));
+  csma.SetChannelParameter ("Delay", MilliSeconds (2));
+  NetDeviceContainer nd = csma.Build (n);
 
-  uint32_t nd3 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n3, lan, 
-    "08:00:2e:00:00:03");
-
-  CsmaIpv4Topology::AddIpv4Address (n0, nd0, "10.1.1.1", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n1, nd1, "10.1.1.2", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n2, nd2, "10.1.1.3", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n3, nd3, "10.1.1.4", "255.255.255.0");
+  Ipv4AddressHelper ipv4;
+  ipv4.SetBase ("10.1.1.0", "255.255.255.0");
+  Ipv4InterfaceContainer i = ipv4.Allocate (nd);
 
   uint16_t port = 7;
 
-  Ptr<UdpEchoClient> client = 
-    CreateObject<UdpEchoClient> ("RemoteIpv4", Ipv4Address ("10.1.1.2"),
-                                 "RemotePort", Uinteger (port), 
-                                 "MaxPackets", Uinteger (1), 
-                                 "Interval", Seconds(1.), 
-                                 "PacketSize", Uinteger (1024));
-  n0->AddApplication (client);
+  UdpEchoClientHelper client;
+  client.SetRemote (i.GetAddress (1), port);
+  client.SetAppAttribute ("MaxPackets", Uinteger (1));
+  client.SetAppAttribute ("Interval", Seconds (1.0));
+  client.SetAppAttribute ("PacketSize", Uinteger (1024));
+  ApplicationContainer apps = client.Build (n.Get (0));
+  apps.Start (Seconds (2.0));
+  apps.Stop (Seconds (10.0));
 
-  Ptr<UdpEchoServer> server = 
-    CreateObject<UdpEchoServer> ("Port", Uinteger (port));
-  n1->AddApplication (server);
-
-  server->Start(Seconds(1.));
-  client->Start(Seconds(2.));
-
-  server->Stop (Seconds(10.));
-  client->Stop (Seconds(10.));
-
+  UdpEchoServerHelper server;
+  server.SetPort (port);
+  apps = server.Build (n.Get (1));
+  apps.Start (Seconds (1.0));
+  apps.Stop (Seconds (10.0));
+  
   Simulator::Run ();
   Simulator::Destroy ();
 }
--- a/tutorial/tutorial-linear-dumbbell.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/tutorial/tutorial-linear-dumbbell.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -14,26 +14,14 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include "ns3/log.h"
-#include "ns3/ptr.h"
-#include "ns3/internet-node.h"
-#include "ns3/point-to-point-channel.h"
-#include "ns3/csma-channel.h"
-#include "ns3/mac48-address.h"
-#include "ns3/point-to-point-net-device.h"
-#include "ns3/csma-net-device.h"
-#include "ns3/point-to-point-topology.h"
-#include "ns3/csma-topology.h"
-#include "ns3/csma-ipv4-topology.h"
-#include "ns3/udp-echo-client.h"
-#include "ns3/udp-echo-server.h"
-#include "ns3/simulator.h"
-#include "ns3/nstime.h"
-#include "ns3/ascii-trace.h"
-#include "ns3/pcap-trace.h"
+#include <fstream>
+
+#include "ns3/core-module.h"
+#include "ns3/node-module.h"
+#include "ns3/helper-module.h"
+#include "ns3/simulator-module.h"
 #include "ns3/global-route-manager.h"
-#include "ns3/inet-socket-address.h"
-#include "ns3/uinteger.h"
+
 
 NS_LOG_COMPONENT_DEFINE ("DumbbellSimulation");
 
@@ -58,65 +46,44 @@
 //
 // Create the lan on the left side of the dumbbell.
 //
-  Ptr<Node> n0 = CreateObject<InternetNode> ();
-  Ptr<Node> n1 = CreateObject<InternetNode> ();
-  Ptr<Node> n2 = CreateObject<InternetNode> ();
-  Ptr<Node> n3 = CreateObject<InternetNode> ();
+  NodeContainer lan1;
+  lan1.Create (4);
 
-  Ptr<CsmaChannel> lan1 = 
-    CsmaTopology::CreateCsmaChannel (DataRate (10000000), MilliSeconds (2));
-
-  uint32_t nd0 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n0, lan1, 
-    "08:00:2e:00:00:00");
+  InternetStackHelper internet;
+  internet.Build (lan1);
 
-  uint32_t nd1 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n1, lan1, 
-    "08:00:2e:00:00:01");
-
-  uint32_t nd2 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n2, lan1, 
-    "08:00:2e:00:00:02");
+  CsmaHelper csma;
+  csma.SetChannelParameter ("BitRate", DataRate (10000000));
+  csma.SetChannelParameter ("Delay", MilliSeconds (2));
+  NetDeviceContainer dev1 = csma.Build (lan1);
+  Ipv4AddressHelper ipv4;
+  ipv4.SetBase ("10.1.1.0", "255.255.255.0");
+  Ipv4InterfaceContainer i1 = ipv4.Allocate (dev1);
 
-  uint32_t nd3 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n3, lan1, 
-    "08:00:2e:00:00:03");
 
-  CsmaIpv4Topology::AddIpv4Address (n0, nd0, "10.1.1.1", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n1, nd1, "10.1.1.2", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n2, nd2, "10.1.1.3", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n3, nd3, "10.1.1.4", "255.255.255.0");
 //
 // Create the lan on the right side of the dumbbell.
 //
-  Ptr<Node> n4 = CreateObject<InternetNode> ();
-  Ptr<Node> n5 = CreateObject<InternetNode> ();
-  Ptr<Node> n6 = CreateObject<InternetNode> ();
-  Ptr<Node> n7 = CreateObject<InternetNode> ();
-
-  Ptr<CsmaChannel> lan2 = 
-    CsmaTopology::CreateCsmaChannel (DataRate (10000000), MilliSeconds (2));
-
-  uint32_t nd4 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n4, lan2, 
-    "08:00:2e:00:00:04");
+  NodeContainer lan2;
+  lan2.Create (4);
+  internet.Build (lan2);
 
-  uint32_t nd5 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n5, lan2, 
-    "08:00:2e:00:00:05");
-
-  uint32_t nd6 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n6, lan2, 
-    "08:00:2e:00:00:06");
+  NetDeviceContainer dev2 = csma.Build (lan2);
+  ipv4.SetBase ("10.1.2.0", "255.255.255.0");
+  Ipv4InterfaceContainer i2 = ipv4.Allocate (dev2);
 
-  uint32_t nd7 = CsmaIpv4Topology::AddIpv4CsmaNetDevice (n7, lan2, 
-    "08:00:2e:00:00:07");
 
-  CsmaIpv4Topology::AddIpv4Address (n4, nd4, "10.1.2.1", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n5, nd5, "10.1.2.2", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n6, nd6, "10.1.2.3", "255.255.255.0");
-  CsmaIpv4Topology::AddIpv4Address (n7, nd7, "10.1.2.4", "255.255.255.0");
 //
 // Create the point-to-point link to connect the two lans.
 //
-  Ptr<PointToPointChannel> link = PointToPointTopology::AddPointToPointLink (
-    n3, n4, DataRate (38400), MilliSeconds (20));
+  NodeContainer backbone = NodeContainer (lan1.Get (3), lan2.Get (0));
+  PointToPointHelper p2p;
+  p2p.SetChannelParameter ("BitRate", DataRate (38400));
+  p2p.SetChannelParameter ("Delay", MilliSeconds (20));
+  NetDeviceContainer dev3 = p2p.Build (backbone);
+  ipv4.SetBase ("10.1.3.0", "255.255.255.0");
+  ipv4.Allocate (dev3);
 
-  PointToPointTopology::AddIpv4Addresses (link, n3, "10.1.3.1", 
-    n4, "10.1.3.2");
 //
 // Create data flows across the link:
 //   n0 ==> n4 ==> n0
@@ -126,77 +93,56 @@
 //
   uint16_t port = 7;
 
-  Ptr<UdpEchoClient> client0 = 
-    CreateObject<UdpEchoClient> ("RemoteIpv4", Ipv4Address ("10.1.2.1"),
-                                 "RemotePort", Uinteger (port),
-                                 "MaxPackets", Uinteger (100),
-                                 "Interval", Seconds (0.01),
-                                 "PacketSize", Uinteger (1024));
-  n0->AddApplication (client0);
-  Ptr<UdpEchoClient> client1 = 
-    CreateObject<UdpEchoClient> ("RemoteIpv4", Ipv4Address ("10.1.2.2"),
-                                 "RemotePort", Uinteger (port),
-                                 "MaxPackets", Uinteger (100),
-                                 "Interval", Seconds (0.01),
-                                 "PacketSize", Uinteger (1024));
-  n1->AddApplication (client1);
-  Ptr<UdpEchoClient> client2 = 
-    CreateObject<UdpEchoClient> ("RemoteIpv4", Ipv4Address ("10.1.2.3"),
-                                 "RemotePort", Uinteger (port),
-                                 "MaxPackets", Uinteger (100),
-                                 "Interval", Seconds (0.01),
-                                 "PacketSize", Uinteger (1024));
-  n2->AddApplication (client2);
-  Ptr<UdpEchoClient> client3 = 
-    CreateObject<UdpEchoClient> ("RemoteIpv4", Ipv4Address ("10.1.2.4"),
-                                 "RemotePort", Uinteger (port),
-                                 "MaxPackets", Uinteger (100),
-                                 "Interval", Seconds (0.01),
-                                 "PacketSize", Uinteger (1024));
-  n3->AddApplication (client3);
+  UdpEchoClientHelper client;
+  client.SetRemote (i2.GetAddress (0), port);
+  client.SetAppAttribute ("MaxPackets", Uinteger (100));
+  client.SetAppAttribute ("Interval", Seconds (0.01));
+  client.SetAppAttribute ("PacketSize", Uinteger (1024));
+  ApplicationContainer apps = client.Build (lan1.Get (0));
+  apps.Start (Seconds(2.));
+  apps.Stop (Seconds (10.0));
+
+  client.SetRemote (i2.GetAddress (1), port);
+  apps = client.Build (lan1.Get (1));
+  apps.Start (Seconds(2.1));
+  apps.Stop (Seconds (10.0));
+  
+  client.SetRemote (i2.GetAddress (2), port);
+  apps = client.Build (lan1.Get (2));
+  apps.Start (Seconds(2.2));
+  apps.Stop (Seconds (10.0));
 
-  Ptr<UdpEchoServer> server4 = 
-    CreateObject<UdpEchoServer> ("Port", Uinteger (port));
-  n4->AddApplication (server4);
-  Ptr<UdpEchoServer> server5 = 
-    CreateObject<UdpEchoServer> ("Port", Uinteger (port));
-  n5->AddApplication (server5);
-  Ptr<UdpEchoServer> server6 = 
-    CreateObject<UdpEchoServer> ("Port", Uinteger (port));
-  n6->AddApplication (server6);
-  Ptr<UdpEchoServer> server7 = 
-    CreateObject<UdpEchoServer> ("Port", Uinteger (port));
-  n7->AddApplication (server7);
+  client.SetRemote (i2.GetAddress (3), port);
+  apps = client.Build (lan1.Get (3));
+  apps.Start (Seconds(2.3));
+  apps.Stop (Seconds (10.0));
 
-  server4->Start(Seconds(1.));
-  server5->Start(Seconds(1.));
-  server6->Start(Seconds(1.));
-  server7->Start(Seconds(1.));
 
-  client0->Start(Seconds(2.));
-  client1->Start(Seconds(2.1));
-  client2->Start(Seconds(2.2));
-  client3->Start(Seconds(2.3));
-
-  server4->Stop (Seconds(10.));
-  server5->Stop (Seconds(10.));
-  server6->Stop (Seconds(10.));
-  server7->Stop (Seconds(10.));
-
-  client0->Stop (Seconds(10.));
-  client1->Stop (Seconds(10.));
-  client2->Stop (Seconds(10.));
-  client3->Stop (Seconds(10.));
-
-  AsciiTrace asciitrace ("tutorial.tr");
-  asciitrace.TraceAllQueues ();
-  asciitrace.TraceAllNetDeviceRx ();
-
-  PcapTrace pcaptrace ("tutorial.pcap");
-  pcaptrace.TraceAllIp ();
+  UdpEchoServerHelper server;
+  server.SetPort (port);
+  apps = server.Build (lan2.Get (0));
+  apps.Start (Seconds (1.0));
+  apps.Stop (Seconds (10.0));
+  apps = server.Build (lan2.Get (1));
+  apps.Start (Seconds (1.0));
+  apps.Stop (Seconds (10.0));
+  apps = server.Build (lan2.Get (2));
+  apps.Start (Seconds (1.0));
+  apps.Stop (Seconds (10.0));
+  apps = server.Build (lan2.Get (3));
+  apps.Start (Seconds (1.0));
+  apps.Stop (Seconds (10.0));
 
   GlobalRouteManager::PopulateRoutingTables ();
 
+  std::ofstream os;
+  os.open ("tutorial.tr");
+  PointToPointHelper::EnableAscii (os);
+  CsmaHelper::EnableAscii (os);
+
+  PointToPointHelper::EnablePcap ("tutorial");
+  CsmaHelper::EnablePcap ("tutorial");
+
   Simulator::Run ();
   Simulator::Destroy ();
 }
--- a/tutorial/tutorial-point-to-point.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/tutorial/tutorial-point-to-point.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -14,22 +14,11 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include "ns3/log.h"
-#include "ns3/ptr.h"
-#include "ns3/internet-node.h"
-#include "ns3/point-to-point-channel.h"
-#include "ns3/mac48-address.h"
-#include "ns3/point-to-point-net-device.h"
-#include "ns3/point-to-point-topology.h"
-#include "ns3/udp-echo-client.h"
-#include "ns3/udp-echo-server.h"
-#include "ns3/simulator.h"
-#include "ns3/nstime.h"
-#include "ns3/ascii-trace.h"
-#include "ns3/pcap-trace.h"
-#include "ns3/global-route-manager.h"
-#include "ns3/inet-socket-address.h"
-#include "ns3/uinteger.h"
+#include <fstream>
+
+#include "ns3/core-module.h"
+#include "ns3/simulator-module.h"
+#include "ns3/helper-module.h"
 
 NS_LOG_COMPONENT_DEFINE ("PointToPointSimulation");
 
@@ -49,38 +38,40 @@
 
   NS_LOG_INFO ("Point to Point Topology Simulation");
 
-  Ptr<Node> n0 = CreateObject<InternetNode> ();
-  Ptr<Node> n1 = CreateObject<InternetNode> ();
+  NodeContainer n;
+  n.Create (2);
+
+  InternetStackHelper internet;
+  internet.Build (n);
 
-  Ptr<PointToPointChannel> link = PointToPointTopology::AddPointToPointLink (
-    n0, n1, DataRate (38400), MilliSeconds (20));
+  PointToPointHelper p2p;
+  p2p.SetChannelParameter ("BitRate", DataRate (38400));
+  p2p.SetChannelParameter ("Delay", MilliSeconds (20));
+  NetDeviceContainer nd = p2p.Build (n);
 
-  PointToPointTopology::AddIpv4Addresses (link, n0, "10.1.1.1", 
-    n1, "10.1.1.2");
+  Ipv4AddressHelper ipv4;
+  ipv4.SetBase ("10.1.1.0", "255.255.255.252");
+  Ipv4InterfaceContainer i = ipv4.Allocate (nd);
 
   uint16_t port = 7;
-
-  Ptr<UdpEchoClient> client = 
-    CreateObject<UdpEchoClient> ("RemoteIpv4", Ipv4Address ("10.1.1.2"), 
-                                 "RemotePort", Uinteger (port), 
-                                 "MaxPackets", Uinteger (1), 
-                                 "Interval", Seconds(1.), 
-                                 "PacketSize", Uinteger (1024));
-  n0->AddApplication (client);
+  UdpEchoClientHelper client;
+  client.SetRemote (i.GetAddress (1), port);
+  client.SetAppAttribute ("MaxPackets", Uinteger (1));
+  client.SetAppAttribute ("Interval", Seconds (1.0));
+  client.SetAppAttribute ("PacketSize", Uinteger (1024));
+  ApplicationContainer apps = client.Build (n.Get (0));
+  apps.Start (Seconds (2.0));
+  apps.Stop (Seconds (10.0));
+  
+  UdpEchoServerHelper server;
+  server.SetPort (port);
+  apps = server.Build (n.Get (1));
+  apps.Start (Seconds (1.0));
+  apps.Stop (Seconds (10.0));
 
-  Ptr<UdpEchoServer> server = 
-    CreateObject<UdpEchoServer> ("Port", Uinteger (port));
-  n1->AddApplication (server);
-
-  server->Start(Seconds(1.));
-  client->Start(Seconds(2.));
-
-  server->Stop (Seconds(10.));
-  client->Stop (Seconds(10.));
-
-  AsciiTrace asciitrace ("tutorial.tr");
-  asciitrace.TraceAllQueues ();
-  asciitrace.TraceAllNetDeviceRx ();
+  std::ofstream ascii;
+  ascii.open ("tutorial.tr");
+  PointToPointHelper::EnableAscii (ascii);
 
   Simulator::Run ();
   Simulator::Destroy ();
--- a/tutorial/tutorial-star.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/tutorial/tutorial-star.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -14,25 +14,14 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include "ns3/log.h"
-#include "ns3/ptr.h"
-#include "ns3/internet-node.h"
-#include "ns3/point-to-point-channel.h"
-#include "ns3/mac48-address.h"
-#include "ns3/point-to-point-net-device.h"
-#include "ns3/udp-echo-client.h"
-#include "ns3/udp-echo-server.h"
-#include "ns3/simulator.h"
-#include "ns3/nstime.h"
-#include "ns3/ascii-trace.h"
-#include "ns3/pcap-trace.h"
-#include "ns3/global-route-manager.h"
-#include "ns3/inet-socket-address.h"
-#include "ns3/uinteger.h"
+#include <fstream>
 
-#include "point-to-point-ipv4-topology.h"
+#include "ns3/core-module.h"
+#include "ns3/node-module.h"
+#include "ns3/helper-module.h"
+#include "ns3/simulator-module.h"
 
-NS_LOG_COMPONENT_DEFINE ("StarSimulation");
+NS_LOG_COMPONENT_DEFINE ("StarRoutingSimulation");
 
 using namespace ns3;
 
@@ -49,125 +38,67 @@
 int 
 main (int argc, char *argv[])
 {
-  LogComponentEnable ("StarSimulation", LOG_LEVEL_INFO);
-
-  NS_LOG_INFO ("Star Topology Simulation");
+  LogComponentEnable ("StarRoutingSimulation", LOG_LEVEL_INFO);
 
-  Ptr<Node> n0 = CreateObject<InternetNode> ();
-  Ptr<Node> n1 = CreateObject<InternetNode> ();
-  Ptr<Node> n2 = CreateObject<InternetNode> ();
-  Ptr<Node> n3 = CreateObject<InternetNode> ();
-  Ptr<Node> n4 = CreateObject<InternetNode> ();
-  Ptr<Node> n5 = CreateObject<InternetNode> ();
-  Ptr<Node> n6 = CreateObject<InternetNode> ();
-
-  Ptr<PointToPointChannel> link01 = 
-    PointToPointIpv4Topology::CreateChannel (DataRate (38400), 
-    MilliSeconds (20));
-
-  uint32_t nd01 = PointToPointIpv4Topology::AddNetDevice (n0,
-    link01);
-
-  Ptr<PointToPointChannel> link02 = 
-    PointToPointIpv4Topology::CreateChannel (DataRate (38400), 
-    MilliSeconds (20));
+  NS_LOG_INFO ("Star Topology with Routing Simulation");
 
-  uint32_t nd02 = PointToPointIpv4Topology::AddNetDevice (n0,
-    link02);
-
-  Ptr<PointToPointChannel> link03 = 
-    PointToPointIpv4Topology::CreateChannel (DataRate (38400), 
-    MilliSeconds (20));
-
-  uint32_t nd03 = PointToPointIpv4Topology::AddNetDevice (n0,
-    link03);
+  NodeContainer n;
+  n.Create (7);
+  NodeContainer n01 = NodeContainer (n.Get (0), n.Get (1));
+  NodeContainer n02 = NodeContainer (n.Get (0), n.Get (2));
+  NodeContainer n03 = NodeContainer (n.Get (0), n.Get (3));
+  NodeContainer n04 = NodeContainer (n.Get (0), n.Get (4));
+  NodeContainer n05 = NodeContainer (n.Get (0), n.Get (5));
+  NodeContainer n06 = NodeContainer (n.Get (0), n.Get (6));
 
-  Ptr<PointToPointChannel> link04 = 
-    PointToPointIpv4Topology::CreateChannel (DataRate (38400), 
-    MilliSeconds (20));
-
-  uint32_t nd04 = PointToPointIpv4Topology::AddNetDevice (n0, 
-    link04);
+  InternetStackHelper internet;
+  internet.Build (n);
 
-  Ptr<PointToPointChannel> link05 = 
-    PointToPointIpv4Topology::CreateChannel (DataRate (38400), 
-    MilliSeconds (20));
-
-  uint32_t nd05 = PointToPointIpv4Topology::AddNetDevice (n0,
-    link05);
+  PointToPointHelper p2p;
+  p2p.SetChannelParameter ("BitRate", DataRate (38400));
+  p2p.SetChannelParameter ("Delay", MilliSeconds (20));
 
-  Ptr<PointToPointChannel> link06 = 
-    PointToPointIpv4Topology::CreateChannel (DataRate (38400), 
-    MilliSeconds (20));
-
-  uint32_t nd06 = PointToPointIpv4Topology::AddNetDevice (n0, link06);
-
-  uint32_t nd1 = PointToPointIpv4Topology::AddNetDevice (n1, link01);
-  uint32_t nd2 = PointToPointIpv4Topology::AddNetDevice (n2, link02);
-  uint32_t nd3 = PointToPointIpv4Topology::AddNetDevice (n3, link03);
-  uint32_t nd4 = PointToPointIpv4Topology::AddNetDevice (n4, link04);
-  uint32_t nd5 = PointToPointIpv4Topology::AddNetDevice (n5, link05);
-  uint32_t nd6 = PointToPointIpv4Topology::AddNetDevice (n6, link06);
-
-  PointToPointIpv4Topology::AddAddress (n0, nd01, "10.1.1.1", 
-    "255.255.255.252");
-
-  PointToPointIpv4Topology::AddAddress (n1, nd1, "10.1.1.2", 
-    "255.255.255.252");
-
-  PointToPointIpv4Topology::AddAddress (n0, nd02, "10.1.2.1", 
-    "255.255.255.252");
+  NetDeviceContainer d01 = p2p.Build (n01);
+  NetDeviceContainer d02 = p2p.Build (n02);
+  NetDeviceContainer d03 = p2p.Build (n03);
+  NetDeviceContainer d04 = p2p.Build (n04);
+  NetDeviceContainer d05 = p2p.Build (n05);
+  NetDeviceContainer d06 = p2p.Build (n06);
 
-  PointToPointIpv4Topology::AddAddress (n2, nd2, "10.1.2.2", 
-    "255.255.255.252");
-
-  PointToPointIpv4Topology::AddAddress (n0, nd03, "10.1.3.1", 
-    "255.255.255.252");
-
-  PointToPointIpv4Topology::AddAddress (n3, nd3, "10.1.2.2", 
-    "255.255.255.252");
-
-  PointToPointIpv4Topology::AddAddress (n0, nd04, "10.1.4.1", 
-    "255.255.255.252");
-
-  PointToPointIpv4Topology::AddAddress (n4, nd4, "10.1.4.2", 
-    "255.255.255.252");
-
-  PointToPointIpv4Topology::AddAddress (n0, nd05, "10.1.5.1", 
-    "255.255.255.252");
-
-  PointToPointIpv4Topology::AddAddress (n5, nd5, "10.1.5.2", 
-    "255.255.255.252");
-
-  PointToPointIpv4Topology::AddAddress (n0, nd06, "10.1.6.1", 
-    "255.255.255.252");
-
-  PointToPointIpv4Topology::AddAddress (n6, nd6, "10.1.6.2", 
-    "255.255.255.252");
+  Ipv4AddressHelper ipv4;
+  ipv4.SetBase ("10.1.1.0", "255.255.255.252");
+  Ipv4InterfaceContainer i01 = ipv4.Allocate (d01);
+  ipv4.SetBase ("10.1.2.0", "255.255.255.252");
+  Ipv4InterfaceContainer i02 = ipv4.Allocate (d02);
+  ipv4.SetBase ("10.1.3.0", "255.255.255.252");
+  Ipv4InterfaceContainer i03 = ipv4.Allocate (d03);
+  ipv4.SetBase ("10.1.4.0", "255.255.255.252");
+  Ipv4InterfaceContainer i04 = ipv4.Allocate (d04);
+  ipv4.SetBase ("10.1.5.0", "255.255.255.252");
+  Ipv4InterfaceContainer i05 = ipv4.Allocate (d05);
+  ipv4.SetBase ("10.1.6.0", "255.255.255.252");
+  Ipv4InterfaceContainer i06 = ipv4.Allocate (d06);
 
   uint16_t port = 7;
 
-  Ptr<UdpEchoClient> client = 
-    CreateObject<UdpEchoClient> ("RemoteIpv4", Ipv4Address ("10.1.1.2"),
-                                 "RemotePort", Uinteger (port), 
-                                 "MaxPackets", Uinteger (1), 
-                                 "Interval", Seconds(1.), 
-                                 "PacketSize", Uinteger (1024));
-  n0->AddApplication (client);
+  UdpEchoServerHelper server;
+  server.SetPort (port);
+  ApplicationContainer apps = server.Build (n.Get (1));
+  apps.Start (Seconds (1.0));
+  apps.Stop (Seconds (10.0));
 
-  Ptr<UdpEchoServer> server = 
-    CreateObject<UdpEchoServer> ("Port", Uinteger (port));
-  n1->AddApplication (server);
-
-  server->Start(Seconds(1.));
-  client->Start(Seconds(2.));
+  UdpEchoClientHelper client;
+  client.SetRemote (i01.GetAddress (1), port);
+  client.SetAppAttribute ("MaxPackets", Uinteger (1));
+  client.SetAppAttribute ("Interval", Seconds (1.0));
+  client.SetAppAttribute ("PacketSize", Uinteger (1024));
+  apps = client.Build (n.Get (0));
+  apps.Start (Seconds (2.0));
+  apps.Stop (Seconds (10.0));
 
-  server->Stop (Seconds(10.));
-  client->Stop (Seconds(10.));
-
-  AsciiTrace asciitrace ("tutorial.tr");
-  asciitrace.TraceAllQueues ();
-  asciitrace.TraceAllNetDeviceRx ();
+  std::ofstream ascii;
+  ascii.open ("tutorial.tr");
+  PointToPointHelper::EnableAscii (ascii);
 
   Simulator::Run ();
   Simulator::Destroy ();
--- a/tutorial/wscript	Mon Mar 31 16:22:06 2008 -0700
+++ b/tutorial/wscript	Mon Mar 31 16:22:24 2008 -0700
@@ -17,12 +17,10 @@
     obj.source = 'tutorial-point-to-point.cc'
 
     obj = bld.create_ns3_program('tutorial-star', ['internet-node', 'point-to-point'])
-    obj.source = ['tutorial-star.cc',
-                  'point-to-point-ipv4-topology.cc']
+    obj.source = ['tutorial-star.cc']
 
     obj = bld.create_ns3_program('tutorial-star-routing', ['internet-node', 'point-to-point'])
-    obj.source = ['tutorial-star-routing.cc',
-                  'point-to-point-ipv4-topology.cc']
+    obj.source = ['tutorial-star-routing.cc']
 
     obj = bld.create_ns3_program('tutorial-linear-dumbbell', ['internet-node', 'point-to-point'])
     obj.source = 'tutorial-linear-dumbbell.cc'
--- a/utils/bench-packets.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/utils/bench-packets.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/utils/bench-simulator.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/utils/bench-simulator.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/utils/mobility-generator.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/utils/mobility-generator.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2007 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/utils/replay-simulation.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/utils/replay-simulation.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2006 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
--- a/utils/run-tests.cc	Mon Mar 31 16:22:06 2008 -0700
+++ b/utils/run-tests.cc	Mon Mar 31 16:22:24 2008 -0700
@@ -1,7 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
  * Copyright (c) 2005 INRIA
- * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as