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