example/dce-sctp-simple.cc
author Hajime Tazaki <tazaki@sfc.wide.ad.jp>
Mon, 21 Nov 2016 16:01:12 +0900
changeset 772 274220a5a949
parent 544 9952fad1036b
permissions -rw-r--r--
follow up fix for waf-1.8 upgrade
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
544
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
     1
#include "ns3/core-module.h"
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
     2
#include "ns3/network-module.h"
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
     3
#include "ns3/dce-module.h"
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
     4
#include "ns3/point-to-point-module.h"
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
     5
#include "ns3/internet-module.h"
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
     6
#include <fstream>
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
     7
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
     8
using namespace ns3;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
     9
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    10
static void RunIp (Ptr<Node> node, Time at, std::string str)
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    11
{
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    12
  DceApplicationHelper process;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    13
  ApplicationContainer apps;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    14
  process.SetBinary ("ip");
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    15
  process.SetStackSize (1<<16);
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    16
  process.ResetArguments();
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    17
  process.ParseArguments(str.c_str ());
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    18
  apps = process.Install (node);
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    19
  apps.Start (at);
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    20
}
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    21
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    22
int main (int argc, char *argv[])
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    23
{
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    24
  CommandLine cmd;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    25
  cmd.Parse (argc, argv);
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    26
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    27
  NodeContainer nodes;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    28
  nodes.Create (2);
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    29
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    30
  NetDeviceContainer devices;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    31
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    32
  PointToPointHelper p2p;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    33
  p2p.SetDeviceAttribute ("DataRate", StringValue ("5Gbps"));
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    34
  p2p.SetChannelAttribute ("Delay", StringValue ("1ms"));
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    35
  devices = p2p.Install (nodes);
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    36
  p2p.EnablePcapAll ("dce-sctp-simple");
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    37
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    38
  DceManagerHelper processManager;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    39
  processManager.SetTaskManagerAttribute ("FiberManagerType",
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    40
                                          StringValue ("UcontextFiberManager"));
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    41
  // processManager.SetLoader ("ns3::DlmLoaderFactory");
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    42
  processManager.SetNetworkStack("ns3::LinuxSocketFdFactory", "Library", StringValue ("liblinux.so"));
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    43
  LinuxStackHelper stack;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    44
  stack.Install (nodes);
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    45
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    46
  Ipv4AddressHelper address;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    47
  address.SetBase ("10.0.0.0", "255.255.255.0");
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    48
  Ipv4InterfaceContainer interfaces = address.Assign (devices);
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    49
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    50
  processManager.Install (nodes);
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    51
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    52
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    53
  for (int n=0; n < 2; n++)
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    54
    {
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    55
      RunIp (nodes.Get (n), Seconds (0.2), "link show");
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    56
      RunIp (nodes.Get (n), Seconds (0.3), "route show table all");
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    57
      RunIp (nodes.Get (n), Seconds (0.4), "addr list");
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    58
    }
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    59
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    60
  DceApplicationHelper process;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    61
  ApplicationContainer apps;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    62
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    63
  process.SetBinary ("sctp-server");
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    64
  process.ResetArguments ();
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    65
  process.SetStackSize (1<<16);
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    66
  apps = process.Install (nodes.Get (0));
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    67
  apps.Start (Seconds (1.0));
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    68
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    69
  process.SetBinary ("sctp-client");
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    70
  process.ResetArguments ();
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    71
  process.ParseArguments ("10.0.0.1");
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    72
  apps = process.Install (nodes.Get (1));
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    73
  apps.Start (Seconds (1.5));
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    74
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    75
  Simulator::Stop (Seconds (2000000.0));
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    76
  Simulator::Run ();
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    77
  Simulator::Destroy ();
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    78
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    79
  return 0;
9952fad1036b Bug 1827 - Linux SCTP support over DCE
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
diff changeset
    80
}