--- 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