examples/tcp-nsc-zoo.cc
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Wed, 10 Dec 2008 01:34:04 -0800
changeset 4002 a12900ea255e
parent 3675 266033a58f24
child 4218 debf1a8a96d3
permissions -rw-r--r--
rescan python
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3580
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
     2
/*
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
     3
 * This program is free software; you can redistribute it and/or modify
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
     4
 * it under the terms of the GNU General Public License version 2 as
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
     5
 * published by the Free Software Foundation;
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
     6
 *
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
     7
 * This program is distributed in the hope that it will be useful,
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
     8
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
     9
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    10
 * GNU General Public License for more details.
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    11
 *
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    12
 * You should have received a copy of the GNU General Public License
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    13
 * along with this program; if not, write to the Free Software
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    14
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    15
 *
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    16
 */
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    17
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    18
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    19
// Network topology
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    20
//
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    21
//       n0    n1   n2   n3
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    22
//       |     |    |    |
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    23
//       =================
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    24
//              LAN
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    25
//
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    26
// - Pcap traces are saved as tcp-nsc-zoo-$n-0.pcap, where $n represents the node number
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    27
// - TCP flows from n0 to n1, n2, n3, from n1 to n0, n2, n3, etc.
3675
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    28
//  Usage (e.g.): ./waf --run 'tcp-nsc-zoo --nodes=5'
3580
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    29
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    30
#include <iostream>
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    31
#include <string>
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    32
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    33
#include "ns3/core-module.h"
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    34
#include "ns3/helper-module.h"
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    35
#include "ns3/node-module.h"
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    36
#include "ns3/global-route-manager.h"
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    37
#include "ns3/simulator-module.h"
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    38
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    39
using namespace ns3;
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    40
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    41
NS_LOG_COMPONENT_DEFINE ("TcpNscZoo");
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    42
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    43
// Simulates a diverse network with various stacks supported by NSC.
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    44
int main(int argc, char *argv[])
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    45
{
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    46
  CsmaHelper csma;
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    47
  unsigned int MaxNodes = 4;
3675
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    48
  unsigned int runtime = 3;
3580
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    49
3675
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    50
  RandomVariable::UseGlobalSeed (1, 1, 2, 3, 5, 8);
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    51
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    52
  Config::SetDefault ("ns3::OnOffApplication::PacketSize", UintegerValue (2048));
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    53
  Config::SetDefault ("ns3::OnOffApplication::DataRate", StringValue ("8kbps"));
3580
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    54
  CommandLine cmd;
3675
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    55
  // this allows the user to raise the number of nodes using --nodes=X command-line argument.
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    56
  cmd.AddValue("nodes", "Number of nodes in the network (must be > 1)", MaxNodes);
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    57
  cmd.AddValue("runtime", "How long the applications should send data (default 3 seconds)", runtime);
3580
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    58
  cmd.Parse (argc, argv);
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    59
3675
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    60
  if (MaxNodes < 2)
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    61
    {
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    62
       std::cerr << "--nodes: must be >= 2" << std::endl;
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    63
       return 1;
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    64
    }
3580
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    65
  csma.SetChannelAttribute ("DataRate", DataRateValue (DataRate(100 * 1000 * 1000)));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    66
  csma.SetChannelAttribute ("Delay", TimeValue (MicroSeconds (200)));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    67
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    68
  NodeContainer n;
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    69
  n.Create(MaxNodes);
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    70
  NetDeviceContainer ethInterfaces = csma.Install (n);
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    71
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    72
  InternetStackHelper internetStack;
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    73
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    74
  internetStack.SetNscStack ("liblinux2.6.26.so");
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    75
  // this switches nodes 0 and 1 to NSCs Linux 2.6.26 stack.
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    76
  internetStack.Install (n.Get(0));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    77
  internetStack.Install (n.Get(1));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    78
  // this disables TCP SACK, wscale and timestamps on node 1 (the attributes represent sysctl-values).
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    79
  Config::Set ("/NodeList/1/$ns3::Ns3NscStack<linux2.6.26>/net.ipv4.tcp_sack", StringValue ("0"));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    80
  Config::Set ("/NodeList/1/$ns3::Ns3NscStack<linux2.6.26>/net.ipv4.tcp_timestamps", StringValue ("0"));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
    81
  Config::Set ("/NodeList/1/$ns3::Ns3NscStack<linux2.6.26>/net.ipv4.tcp_window_scaling", StringValue ("0"));
3675
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    82
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    83
  if (MaxNodes > 2)
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    84
    {
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    85
      internetStack.Install (n.Get(2));
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    86
    }
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    87
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    88
  if (MaxNodes > 3)
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    89
    {
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    90
      // the next statement doesn't change anything for the nodes 0, 1, and 2; since they
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    91
      // already have a stack assigned.
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    92
      internetStack.SetNscStack ("liblinux2.6.18.so");
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    93
      // this switches node 3 to NSCs Linux 2.6.18 stack.
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    94
      internetStack.Install (n.Get(3));
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    95
      // and then agains disables sack/timestamps/wscale on node 3.
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    96
      Config::Set ("/NodeList/3/$ns3::Ns3NscStack<linux2.6.18>/net.ipv4.tcp_sack", StringValue ("0"));
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    97
      Config::Set ("/NodeList/3/$ns3::Ns3NscStack<linux2.6.18>/net.ipv4.tcp_timestamps", StringValue ("0"));
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    98
      Config::Set ("/NodeList/3/$ns3::Ns3NscStack<linux2.6.18>/net.ipv4.tcp_window_scaling", StringValue ("0"));
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
    99
    }
3580
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   100
  // the freebsd stack is not yet built by default, so its commented out for now.
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   101
  // internetStack.SetNscStack ("libfreebsd5.so");
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   102
  for (unsigned int i =4; i < MaxNodes; i++)
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   103
    {
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   104
      internetStack.Install (n.Get(i));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   105
    }
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   106
  Ipv4AddressHelper ipv4;
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   107
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   108
  ipv4.SetBase ("10.0.0.0", "255.255.255.0");
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   109
  Ipv4InterfaceContainer ipv4Interfaces = ipv4.Assign (ethInterfaces);
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   110
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   111
  GlobalRouteManager::PopulateRoutingTables ();
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   112
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   113
  uint16_t servPort = 8080;
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   114
  PacketSinkHelper sinkHelper ("ns3::TcpSocketFactory", InetSocketAddress (Ipv4Address::GetAny (), servPort));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   115
  // start a sink client on all nodes
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   116
  ApplicationContainer sinkApp = sinkHelper.Install (n);
3675
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
   117
  sinkApp.Start (Seconds (0));
3580
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   118
  sinkApp.Stop (Seconds (30.0));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   119
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   120
  // This tells every node on the network to start a flow to all other nodes on the network ...
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   121
  for (unsigned int i = 0 ; i < MaxNodes;i++)
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   122
    {
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   123
      for (unsigned int j = 0 ; j < MaxNodes;j++)
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   124
        {
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   125
          if (i == j)
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   126
            {  // ...but we don't want a node to talk to itself.
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   127
               continue;
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   128
            }
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   129
          Address remoteAddress(InetSocketAddress(ipv4Interfaces.GetAddress (j), servPort));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   130
          OnOffHelper clientHelper ("ns3::TcpSocketFactory", remoteAddress);
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   131
          clientHelper.SetAttribute 
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   132
            ("OnTime", RandomVariableValue (ConstantVariable (1)));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   133
          clientHelper.SetAttribute 
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   134
            ("OffTime", RandomVariableValue (ConstantVariable (0)));
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   135
          ApplicationContainer clientApp = clientHelper.Install(n.Get(i));
3675
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
   136
          clientApp.Start (Seconds (j)); /* delay startup depending on node number */
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
   137
          clientApp.Stop (Seconds (j + runtime));
3580
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   138
	}
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   139
    }
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   140
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   141
  CsmaHelper::EnablePcapAll ("tcp-nsc-zoo");
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   142
3675
266033a58f24 nsc: rework tcp-nsc-zoo example
Florian Westphal <fw@strlen.de>
parents: 3580
diff changeset
   143
  Simulator::Stop (Seconds(100));
3580
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   144
  Simulator::Run ();
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   145
  Simulator::Destroy ();
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   146
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   147
  return 0;
5818912ae9a3 nsc: example files.
Florian Westphal <fw@strlen.de>
parents:
diff changeset
   148
}