author | Hajime Tazaki <tazaki@sfc.wide.ad.jp> |
Tue, 07 Jan 2014 00:26:21 +0900 | |
changeset 541 | de7335a01743 |
parent 491 | 3e2d2616d9b0 |
child 546 | d7753e122d06 |
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 |
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
2 |
/* |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
3 |
* Copyright (c) 2012 NICT |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
4 |
* |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
5 |
* This program is free software; you can redistribute it and/or modify |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
6 |
* it under the terms of the GNU General Public License version 2 as |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation; |
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 |
* This program is distributed in the hope that it will be useful, |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
12 |
* GNU General Public License for more details. |
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 |
* You should have received a copy of the GNU General Public License |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
15 |
* along with this program; if not, write to the Free Software |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
16 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
17 |
* |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
18 |
* Author: Hajime Tazaki <tazaki@nict.go.jp> |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
19 |
*/ |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
20 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
21 |
#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
|
22 |
#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
|
23 |
#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
|
24 |
#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
|
25 |
#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
|
26 |
#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
|
27 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
28 |
using namespace ns3; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
29 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
30 |
NS_LOG_COMPONENT_DEFINE ("DceCradleSimple"); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
31 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
32 |
std::map<std::string,std::string> proto_sw; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
33 |
std::string m_proto = "udp"; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
34 |
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
|
35 |
bool m_dual = false; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
36 |
std::string m_ccid = "2"; |
491
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
37 |
bool m_bulk = false; |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
38 |
|
418
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
39 |
int |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
40 |
main (int argc, char *argv[]) |
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 |
// LogComponentEnable ("OnOffApplication", LOG_LEVEL_INFO); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
43 |
// LogComponentEnable ("PacketSink", LOG_LEVEL_INFO); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
44 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
45 |
proto_sw.insert (std::make_pair ("icmp", "ns3::LinuxIpv4RawSocketFactory")); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
46 |
proto_sw.insert (std::make_pair ("udp", "ns3::LinuxUdpSocketFactory")); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
47 |
proto_sw.insert (std::make_pair ("tcp", "ns3::LinuxTcpSocketFactory")); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
48 |
proto_sw.insert (std::make_pair ("dccp", "ns3::LinuxDccpSocketFactory")); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
49 |
proto_sw.insert (std::make_pair ("icmp6", "ns3::LinuxIpv6RawSocketFactory")); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
50 |
proto_sw.insert (std::make_pair ("udp6", "ns3::LinuxUdp6SocketFactory")); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
51 |
proto_sw.insert (std::make_pair ("tcp6", "ns3::LinuxTcp6SocketFactory")); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
52 |
proto_sw.insert (std::make_pair ("dccp6", "ns3::LinuxDccp6SocketFactory")); |
541
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
53 |
// below are not supported yet (Jan. 6, 2014) |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
54 |
proto_sw.insert (std::make_pair ("sctp", "ns3::LinuxSctpSocketFactory")); |
418
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
55 |
proto_sw.insert (std::make_pair ("sctp6", "ns3::LinuxSctp6SocketFactory")); |
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 |
CommandLine cmd; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
58 |
cmd.AddValue ("proto", "choose protocol socket factory", m_proto); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
59 |
cmd.AddValue ("rate", "tx rate", m_rate); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
60 |
cmd.AddValue ("dual", "dual flow or not (default: uni-directional)", m_dual); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
61 |
cmd.AddValue ("ccid", "CCID if dccp (default: 2)", m_ccid); |
491
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
62 |
cmd.AddValue ("bulk", "use BulkSendApp instead of OnOffApp", m_bulk); |
418
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
63 |
cmd.Parse (argc, argv); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
64 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
65 |
NodeContainer nodes; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
66 |
nodes.Create (2); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
67 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
68 |
PointToPointHelper pointToPoint; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
69 |
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
|
70 |
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
|
71 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
72 |
NetDeviceContainer devices; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
73 |
devices = pointToPoint.Install (nodes); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
74 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
75 |
DceManagerHelper dceManager; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
76 |
dceManager.SetNetworkStack ("ns3::LinuxSocketFdFactory", |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
77 |
"Library", StringValue ("liblinux.so")); |
541
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
78 |
dceManager.Install (nodes); |
418
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
79 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
80 |
LinuxStackHelper stack; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
81 |
stack.Install (nodes); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
82 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
83 |
Ipv4AddressHelper address; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
84 |
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
|
85 |
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
|
86 |
|
541
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
87 |
Ipv6AddressHelper address6; |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
88 |
address6.SetBase (Ipv6Address ("2001:1::"), Ipv6Prefix (64)); |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
89 |
Ipv6InterfaceContainer interfaces6 = address6.Assign (devices); |
418
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
90 |
|
541
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
91 |
LinuxStackHelper::RunIp (nodes.Get (0), Seconds (0.2), "link show"); |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
92 |
LinuxStackHelper::RunIp (nodes.Get (0), Seconds (0.3), "route show table all"); |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
93 |
LinuxStackHelper::RunIp (nodes.Get (0), Seconds (0.4), "addr list"); |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
94 |
|
418
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
95 |
stack.SysctlSet (nodes, ".net.dccp.default.rx_ccid", m_ccid); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
96 |
stack.SysctlSet (nodes, ".net.dccp.default.tx_ccid", m_ccid); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
97 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
98 |
ApplicationContainer apps; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
99 |
OnOffHelper onoff = OnOffHelper (proto_sw[m_proto], |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
100 |
InetSocketAddress (interfaces.GetAddress (1), 9)); |
541
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
101 |
PacketSinkHelper sink = PacketSinkHelper (proto_sw[m_proto], |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
102 |
InetSocketAddress (Ipv4Address::GetAny (), 9)); |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
103 |
|
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
104 |
if (m_proto.find ("6", 0) != std::string::npos) |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
105 |
{ |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
106 |
onoff.SetAttribute ("Remote", AddressValue (Inet6SocketAddress (interfaces6.GetAddress (1, 1), 9))); |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
107 |
sink.SetAttribute ("Local", AddressValue (Inet6SocketAddress (Ipv6Address::GetAny (), 9))); |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
108 |
} |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
109 |
|
491
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
110 |
if (!m_bulk) |
418
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
111 |
{ |
491
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
112 |
onoff.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]")); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
113 |
onoff.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]")); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
114 |
onoff.SetAttribute ("PacketSize", StringValue ("1024")); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
115 |
onoff.SetAttribute ("DataRate", StringValue (m_rate)); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
116 |
apps = onoff.Install (nodes.Get (0)); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
117 |
apps.Start (Seconds (4.0)); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
118 |
if (m_dual) |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
119 |
{ |
541
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
120 |
if (m_proto.find ("6", 0) != std::string::npos) |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
121 |
{ |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
122 |
onoff.SetAttribute ("Remote", AddressValue (Inet6SocketAddress (interfaces6.GetAddress (0, 1), 9))); |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
123 |
} |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
124 |
else |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
125 |
{ |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
126 |
onoff.SetAttribute ("Remote", AddressValue (InetSocketAddress (interfaces.GetAddress (0), 9))); |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
127 |
} |
491
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
128 |
apps = onoff.Install (nodes.Get (1)); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
129 |
apps.Start (Seconds (4.1)); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
130 |
} |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
131 |
} |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
132 |
else |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
133 |
{ |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
134 |
BulkSendHelper bulk (proto_sw[m_proto], |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
135 |
InetSocketAddress (interfaces.GetAddress (1), 9)); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
136 |
// Set the amount of data to send in bytes. Zero is unlimited. |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
137 |
bulk.SetAttribute ("MaxBytes", UintegerValue (1024)); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
138 |
apps = bulk.Install (nodes.Get (0)); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
139 |
apps.Start (Seconds (4.0)); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
140 |
if (m_dual) |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
141 |
{ |
541
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
142 |
if (m_proto.find ("6", 0) != std::string::npos) |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
143 |
{ |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
144 |
bulk.SetAttribute ("Remote", AddressValue (Inet6SocketAddress (interfaces6.GetAddress (0, 1), 9))); |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
145 |
} |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
146 |
else |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
147 |
{ |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
148 |
bulk.SetAttribute ("Remote", AddressValue (InetSocketAddress (interfaces.GetAddress (0), 9))); |
de7335a01743
Bug 1713 - Ipv6 address configuration support for LinuxStackHelper
Hajime Tazaki <tazaki@sfc.wide.ad.jp>
parents:
491
diff
changeset
|
149 |
} |
491
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
150 |
apps = bulk.Install (nodes.Get (1)); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
151 |
apps.Start (Seconds (4.1)); |
3e2d2616d9b0
Bug 1711 - Allow DCE cradle to support ns-3 based bulk send application
Hajime Tazaki <tazaki@nict.go.jp>
parents:
418
diff
changeset
|
152 |
} |
418
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
153 |
} |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
154 |
|
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
155 |
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
|
156 |
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
|
157 |
if (m_dual) |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
158 |
{ |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
159 |
ApplicationContainer tmp = sink.Install (nodes.Get (0)); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
160 |
tmp.Start (Seconds (3.9999)); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
161 |
apps.Add (tmp); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
162 |
} |
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 |
pointToPoint.EnablePcapAll ("dce-cradle-simple"); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
165 |
Simulator::Stop (Seconds (20.0)); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
166 |
Simulator::Run (); |
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 |
Ptr<PacketSink> pktsink; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
169 |
pktsink = apps.Get (0)->GetObject<PacketSink> (); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
170 |
std::cout << "Total Rx(0) = " << pktsink->GetTotalRx () |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
171 |
<< " bytes"; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
172 |
if (m_dual) |
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 |
pktsink = apps.Get (1)->GetObject<PacketSink> (); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
175 |
std::cout << " Total Rx(1) = " << pktsink->GetTotalRx () |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
176 |
<< " bytes"; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
177 |
} |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
178 |
std::cout << std::endl; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
179 |
Simulator::Destroy (); |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
180 |
return 0; |
4359ef53a0af
Bug 1449 - Use Linux kernel stack for ns-3 applications
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
181 |
} |