test/dce-cradle-test.cc
author Hajime Tazaki <tazaki@sfc.wide.ad.jp>
Tue, 07 Jan 2014 00:26:21 +0900
changeset 541 de7335a01743
parent 418 4359ef53a0af
child 543 52a8727261c4
permissions -rw-r--r--
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
418
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
     1
#include "ns3/test.h"
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
     2
#include "ns3/dce-module.h"
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
     3
#include "ns3/core-module.h"
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
     4
#include "ns3/network-module.h"
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
     5
#include "ns3/internet-module.h"
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
     6
#include "ns3/point-to-point-module.h"
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
     7
#include "ns3/applications-module.h"
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
     8
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
     9
static std::string g_testError;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    10
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    11
using namespace ns3;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    12
namespace ns3 {
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    13
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    14
class DceCradleTestCase : public TestCase
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    15
{
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    16
public:
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    17
  DceCradleTestCase (std::string testname, Time maxDuration, std::string sock_factory, bool skip);
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    18
private:
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    19
  virtual void DoRun (void);
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    20
  static void Finished (int *pstatus, uint16_t pid, int status);
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    21
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    22
  std::string m_testname;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    23
  Time m_maxDuration;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    24
  std::string m_sockf;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    25
  bool m_skip;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    26
};
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    27
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    28
DceCradleTestCase::DceCradleTestCase (std::string testname, Time maxDuration, std::string sock_factory, bool skip)
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    29
  : TestCase (std::string ("") + (skip ? "(SKIP) " : "" ) + 
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    30
              "Check that process \"" + testname +
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    31
              "\" completes correctly."),
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    32
    m_testname (testname), 
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    33
    m_maxDuration (maxDuration),
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    34
    m_sockf (sock_factory), 
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    35
    m_skip (skip)
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    36
{
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    37
//  mtrace ();
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    38
}
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    39
void
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    40
DceCradleTestCase::Finished (int *pstatus, uint16_t pid, int status)
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    41
{
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    42
  *pstatus = status;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    43
}
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    44
void
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    45
DceCradleTestCase::DoRun (void)
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    46
{
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    47
  if (m_skip)
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    48
    {
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    49
      return;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    50
    }
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    51
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    52
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    53
  std::string m_rate = "100Bps";
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    54
  NodeContainer nodes;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    55
  nodes.Create (2);
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    56
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    57
  PointToPointHelper pointToPoint;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    58
  pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("100Mbps"));
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    59
  pointToPoint.SetChannelAttribute ("Delay", StringValue ("100ms"));
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    60
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    61
  NetDeviceContainer devices;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    62
  devices = pointToPoint.Install (nodes);
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    63
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    64
  DceManagerHelper dceManager;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    65
  dceManager.SetNetworkStack("ns3::LinuxSocketFdFactory",
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    66
                             "Library", StringValue ("liblinux.so"));
541
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    67
  dceManager.Install (nodes);
418
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    68
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    69
  LinuxStackHelper stack;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    70
  stack.Install (nodes);
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    71
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    72
  Ipv4AddressHelper address;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    73
  address.SetBase ("10.1.1.0", "255.255.255.0");
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    74
  Ipv4InterfaceContainer interfaces = address.Assign (devices);
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    75
541
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    76
  Ipv6AddressHelper address6;
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    77
  address6.SetBase (Ipv6Address ("2001:1::"), Ipv6Prefix (64));
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    78
  Ipv6InterfaceContainer interfaces6 = address6.Assign (devices);
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    79
418
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    80
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    81
  ApplicationContainer apps;
541
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    82
  PacketSinkHelper sink = PacketSinkHelper (m_sockf,
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    83
                                            InetSocketAddress (Ipv4Address::GetAny (), 9));
418
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    84
  OnOffHelper onoff = OnOffHelper (m_sockf,
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
    85
                                   InetSocketAddress (interfaces.GetAddress (1), 9));
541
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    86
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    87
  if (m_testname.find ("6", 0) == std::string::npos)
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    88
    {
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    89
      onoff = OnOffHelper (m_sockf,
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    90
                           InetSocketAddress (interfaces.GetAddress (1), 9));
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    91
      sink = PacketSinkHelper (m_sockf,
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    92
                               InetSocketAddress (Ipv4Address::GetAny (), 9));
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    93
    }
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    94
  else
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    95
    {
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    96
      onoff = OnOffHelper (m_sockf,
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    97
                           Inet6SocketAddress (interfaces6.GetAddress (1, 1), 9));
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    98
      sink = PacketSinkHelper (m_sockf,
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
    99
                               Inet6SocketAddress (Ipv6Address::GetAny (), 9));
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   100
    }
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   101
418
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   102
  onoff.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]"));
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   103
  onoff.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]"));
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   104
  onoff.SetAttribute ("PacketSize", StringValue ("1024"));
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   105
  onoff.SetAttribute ("DataRate", StringValue (m_rate));
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   106
  apps = onoff.Install (nodes.Get (0));
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   107
  apps.Start (Seconds (4.0));
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   108
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   109
  apps = sink.Install (nodes.Get (1));
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   110
  apps.Start (Seconds (3.9999));
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   111
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   112
  if (m_maxDuration.IsStrictlyPositive ()) {
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   113
      Simulator::Stop (m_maxDuration);
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   114
    }
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   115
  Simulator::Run ();
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   116
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   117
  Ptr<PacketSink> pktsink;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   118
  pktsink = apps.Get (0)->GetObject<PacketSink> ();;
541
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   119
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   120
#if 0
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   121
  std::cout << "Total Rx(0) = " << pktsink->GetTotalRx () << 
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   122
    " bytes";
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   123
  std::cout << std::endl;
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   124
  pointToPoint.EnablePcapAll ("dce-cradle-test");
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   125
#endif
418
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   126
  Simulator::Destroy ();
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   127
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   128
  int status = (pktsink->GetTotalRx () > 0);
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   129
  NS_TEST_ASSERT_MSG_EQ (status, 1, "Process did not return successfully: " << g_testError);
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   130
}
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   131
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   132
static class DceCradleTestSuite : public TestSuite
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   133
{
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   134
public:
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   135
  DceCradleTestSuite ();
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   136
private:
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   137
} g_processTests;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   138
//
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   139
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   140
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   141
DceCradleTestSuite::DceCradleTestSuite ()
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   142
  : TestSuite ("dce-cradle", UNIT)
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   143
{
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   144
  typedef struct {
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   145
    const char *name;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   146
    const char *sockf;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   147
    int duration;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   148
    bool isSkip;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   149
  } testPair;
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   150
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   151
  const testPair tests[] = {
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   152
    {"raw", "ns3::LinuxIpv4RawSocketFactory", 30, false},
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   153
    {"udp", "ns3::LinuxUdpSocketFactory", 30, false},
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   154
    {"tcp", "ns3::LinuxTcpSocketFactory", 30, false},
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   155
    {"dccp", "ns3::LinuxDccpSocketFactory", 30, false},
541
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   156
    {"raw6", "ns3::LinuxIpv6RawSocketFactory", 20, false},
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   157
    {"udp6", "ns3::LinuxUdp6SocketFactory", 20, false},
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   158
    {"tcp6", "ns3::LinuxTcp6SocketFactory", 20, false},
de7335a01743 Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents: 418
diff changeset
   159
    {"dccp6", "ns3::LinuxDccp6SocketFactory", 20, false},
418
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   160
    // below are not supported yet (Nov. 9, 2012)
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   161
    {"sctp", "ns3::LinuxSctpSocketFactory", 20, true},
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   162
    {"sctp6", "ns3::LinuxSctp6SocketFactory", 20, true},
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   163
  };
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   164
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   165
  for (unsigned int i = 0; i < sizeof(tests)/sizeof(testPair); i++)
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   166
    {
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   167
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   168
      AddTestCase (new DceCradleTestCase (tests[i].name,
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   169
                                          Seconds (tests[i].duration),
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   170
                                          tests[i].sockf,
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   171
                                          tests[i].isSkip
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   172
                                          ));
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   173
    }
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   174
}
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   175
4359ef53a0af Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff changeset
   176
} // namespace ns3