24 #include "ns3/socket-factory.h"
25 #include "ns3/tcp-socket-factory.h"
26 #include "ns3/simulator.h"
27 #include "ns3/simple-channel.h"
28 #include "ns3/simple-net-device.h"
29 #include "ns3/config.h"
30 #include "ns3/ipv4-static-routing.h"
31 #include "ns3/ipv4-list-routing.h"
32 #include "ns3/ipv6-static-routing.h"
33 #include "ns3/ipv6-list-routing.h"
35 #include "ns3/inet-socket-address.h"
36 #include "ns3/inet6-socket-address.h"
37 #include "ns3/uinteger.h"
40 #include "ns3/arp-l3-protocol.h"
41 #include "ns3/ipv4-l3-protocol.h"
42 #include "ns3/ipv6-l3-protocol.h"
43 #include "ns3/icmpv4-l4-protocol.h"
44 #include "ns3/icmpv6-l4-protocol.h"
45 #include "ns3/udp-l4-protocol.h"
46 #include "ns3/tcp-l4-protocol.h"
47 #include "ns3/traffic-control-layer.h"
66 virtual void DoRun (
void);
67 virtual void DoTeardown (
void);
130 arp->SetTrafficControl (tc);
136 ipv4->SetRoutingProtocol (ipv4Routing);
138 ipv4Routing->AddRoutingProtocol (ipv4staticRouting, 0);
158 ipv6->SetRoutingProtocol (ipv6Routing);
160 ipv6Routing->AddRoutingProtocol (ipv6staticRouting, 0);
168 ipv6->RegisterExtensions ();
169 ipv6->RegisterOptions ();
183 uint32_t ndid = ipv4->AddInterface (dev);
185 ipv4->AddAddress (ndid, ipv4Addr);
189 ndid = ipv6->AddInterface (dev);
191 ipv6->AddAddress (ndid, ipv6Addr);
215 server1 = sockFactory0->CreateSocket ();
216 server2 = sockFactory0->CreateSocket ();
217 server3 = sockFactory0->CreateSocket ();
218 server4 = sockFactory0->CreateSocket ();
220 source1 = sockFactory1->CreateSocket ();
221 source2 = sockFactory1->CreateSocket ();
222 source3 = sockFactory1->CreateSocket ();
223 source4 = sockFactory1->CreateSocket ();
231 receivedAddr1 = addr;
238 receivedAddr2 = addr;
245 receivedAddr3 = addr;
252 receivedAddr4 = addr;
271 uint16_t port1 = 5000;
272 uint16_t port2 = 5001;
273 uint16_t port3 = 5002;
274 uint16_t port4 = 5003;
334 Simulator::Destroy ();
void SetUpSim()
Setup the test.
void ServerHandleConnectionCreated1(Ptr< Socket > s, const Address &addr)
Handle connection created (1).
Ptr< Socket > server4
Server socket (4).
Ptr< Socket > server2
Server socket (2).
void ServerHandleConnectionCreated3(Ptr< Socket > s, const Address &addr)
Handle connection created (3).
Address receivedAddr3
Received address (3).
Ptr< Socket > server3
Server socket (3).
void ServerHandleConnectionCreated4(Ptr< Socket > s, const Address &addr)
Handle connection created (4).
Address receivedAddr4
Received address (4).
Ptr< Socket > source1
Sending socket (1).
virtual void DoRun(void)
Implementation to actually run this TestCase.
void ServerHandleConnectionCreated2(Ptr< Socket > s, const Address &addr)
Handle connection created (2).
virtual void DoTeardown(void)
Implementation to do any local setup required for this TestCase.
Ptr< Socket > source2
Sending socket (2).
Ptr< Socket > server1
Server socket (1).
Address receivedAddr2
Received address (2).
Address receivedAddr1
Received address (1).
Ptr< Socket > source3
Sending socket (3).
Ptr< Socket > source4
Sending socket (4).
IPv6 dual stack TestSuite.
a polymophic address class
bool IsInvalid(void) const
Ipv4 addresses are stored in host order in this class.
Access to the IPv4 forwarding table, interfaces, and configuration.
a class to store IPv4 address information on an interface
a class to represent an Ipv4 address mask
Describes an IPv6 address.
Access to the IPv6 forwarding table, interfaces, and configuration.
IPv6 address associated with an interface.
Describes an IPv6 prefix.
static Mac48Address Allocate(void)
Allocate a new Mac48Address.
static Mac48Address ConvertFrom(const Address &address)
uint32_t AddDevice(Ptr< NetDevice > device)
Associate a NetDevice to this node.
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
void AggregateObject(Ptr< Object > other)
Aggregate two Objects together.
void SetAcceptCallback(Callback< bool, Ptr< Socket >, const Address & > connectionRequest, Callback< void, Ptr< Socket >, const Address & > newConnectionCreated)
Accept connection requests from remote hosts.
virtual int Listen(void)=0
Listen for incoming connections.
virtual int Connect(const Address &address)=0
Initiate a connection to a remote host.
virtual int Bind(const Address &address)=0
Allocate a local endpoint for this socket.
API to create TCP socket instances.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
@ UNIT
This test suite implements a Unit Test.
Callback< R, Ts... > MakeNullCallback(void)
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not.
Ptr< Node > CreateDualStackNode()
static Ipv6DualStackTestSuite g_ipv6DualStackTestSuite
Static variable for test initialization.
Ptr< SimpleNetDevice > AddSimpleNetDevice(Ptr< Node > node, Ipv4Address v4Addr, Ipv4Mask v4Mask, Ipv6Address v6Addr, Ipv6Prefix v6Prefix)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Callback< R, Ts... > MakeCallback(R(T::*memPtr)(Ts...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...