24 #include "ns3/address.h"
25 #include "ns3/application-container.h"
26 #include "ns3/bridge-helper.h"
27 #include "ns3/callback.h"
28 #include "ns3/config.h"
29 #include "ns3/csma-helper.h"
30 #include "ns3/csma-star-helper.h"
31 #include "ns3/inet-socket-address.h"
32 #include "ns3/internet-stack-helper.h"
33 #include "ns3/ipv4-address-helper.h"
34 #include "ns3/ipv4-global-routing-helper.h"
35 #include "ns3/ipv4-static-routing-helper.h"
37 #include "ns3/data-rate.h"
38 #include "ns3/node-container.h"
39 #include "ns3/on-off-helper.h"
40 #include "ns3/packet.h"
41 #include "ns3/packet-sink-helper.h"
42 #include "ns3/packet-socket-helper.h"
43 #include "ns3/packet-socket-address.h"
44 #include "ns3/pointer.h"
45 #include "ns3/simple-channel.h"
46 #include "ns3/simulator.h"
47 #include "ns3/string.h"
49 #include "ns3/uinteger.h"
50 #include "ns3/v4ping-helper.h"
61 virtual void DoRun (
void);
68 :
TestCase (
"Bridge example for Carrier Sense Multiple Access (CSMA) networks"), m_count (0)
110 for (
int i = 0; i < 4; i++)
113 terminalDevices.
Add (link.
Get (0));
114 switchDevices.
Add (link.
Get (1));
120 bridge.
Install (switchNode, switchDevices);
126 ipv4.
SetBase (
"10.1.1.0",
"255.255.255.0");
127 ipv4.
Assign (terminalDevices);
140 app.
Start (Seconds (1.0));
141 app.
Stop (Seconds (10.0));
146 app.
Start (Seconds (0.0));
152 Simulator::Destroy ();
165 virtual void DoRun (
void);
176 :
TestCase (
"Broadcast example for Carrier Sense Multiple Access (CSMA) networks"), m_countNode1 (0), m_countNode2 (0), m_drops (0)
225 csma.SetChannelAttribute (
"Delay",
TimeValue (MilliSeconds (2)));
234 ipv4.
SetBase (
"10.1.0.0",
"255.255.255.0");
236 ipv4.
SetBase (
"192.168.1.0",
"255.255.255.0");
255 app.
Start (Seconds (1.0));
256 app.
Stop (Seconds (10.0));
263 app.
Start (Seconds (1.0));
264 app.
Stop (Seconds (10.0));
271 Simulator::Destroy ();
285 virtual void DoRun (
void);
294 :
TestCase (
"Multicast example for Carrier Sense Multiple Access (CSMA) networks"), m_count (0), m_drops (0)
346 csma.SetChannelAttribute (
"Delay",
TimeValue (MilliSeconds (2)));
356 ipv4Addr.
SetBase (
"10.1.1.0",
"255.255.255.0");
358 ipv4Addr.
SetBase (
"10.1.2.0",
"255.255.255.0");
383 outputDevices.
Add (nd1.
Get (0));
386 multicastGroup, inputIf, outputDevices);
398 uint16_t multicastPort = 9;
413 srcC.
Start (Seconds (1.));
414 srcC.
Stop (Seconds (10.));
422 sinkC.
Start (Seconds (1.0));
423 sinkC.
Stop (Seconds (10.0));
432 Simulator::Destroy ();
445 virtual void DoRun (
void);
456 :
TestCase (
"One subnet example for Carrier Sense Multiple Access (CSMA) networks"), m_countNode0 (0), m_countNode1 (0), m_drops (0)
513 ipv4.
SetBase (
"10.1.1.0",
"255.255.255.0");
530 app.
Start (Seconds (1.0));
531 app.
Stop (Seconds (10.0));
537 app.
Start (Seconds (0.0));
542 onoff.SetAttribute (
"Remote",
544 app = onoff.Install (nodes.
Get (3));
545 app.
Start (Seconds (1.1));
546 app.
Stop (Seconds (10.0));
549 app.
Start (Seconds (0.0));
559 Simulator::Destroy ();
573 virtual void DoRun (
void);
582 :
TestCase (
"Packet socket example for Carrier Sense Multiple Access (CSMA) networks"), m_count (0), m_drops (0)
644 apps.
Start (Seconds (1.0));
645 apps.
Stop (Seconds (10.0));
652 apps.
Start (Seconds (1.0));
653 apps.
Stop (Seconds (10.0));
658 apps.
Start (Seconds (0.0));
659 apps.
Stop (Seconds (20.0));
666 Simulator::Destroy ();
679 virtual void DoRun (
void);
690 :
TestCase (
"Ping example for Carrier Sense Multiple Access (CSMA) networks"), m_countSinkRx (0), m_countPingRtt (0), m_drops (0)
745 ip.
SetBase (
"192.168.1.0",
"255.255.255.0");
755 onoff.SetConstantRate (
DataRate (5000));
758 apps.
Start (Seconds (1.0));
759 apps.
Stop (Seconds (10.0));
763 apps.
Start (Seconds (0.0));
764 apps.
Stop (Seconds (11.0));
769 pingers.Add (c.
Get (1));
770 pingers.Add (c.
Get (3));
772 apps.
Start (Seconds (2.0));
773 apps.
Stop (Seconds (5.0));
784 Simulator::Destroy ();
800 virtual void DoRun (
void);
809 :
TestCase (
"Raw internet protocol socket example for Carrier Sense Multiple Access (CSMA) networks"), m_count (0), m_drops (0)
859 ip.
SetBase (
"192.168.1.0",
"255.255.255.0");
869 onoff.SetConstantRate (
DataRate (5000));
872 apps.
Start (Seconds (1.0));
873 apps.
Stop (Seconds (10.0));
877 apps.
Start (Seconds (0.0));
878 apps.
Stop (Seconds (12.0));
885 Simulator::Destroy ();
898 virtual void DoRun (
void);
907 :
TestCase (
"Star example for Carrier Sense Multiple Access (CSMA) networks"), m_count (0), m_drops (0)
950 uint32_t nSpokes = 7;
973 fillNodes.
Add (newNodes);
974 fillDevices.
Add (csma.
Install (newNodes, csmaChannel));
994 for(uint32_t i = 0; i < star.
SpokeCount (); ++i)
996 std::ostringstream subnet;
997 subnet <<
"10.1." << i <<
".0";
998 address.
SetBase (subnet.str ().c_str (),
"255.255.255.0",
"0.0.0.3");
1000 for (uint32_t j = 0; j < nFill; ++j)
1002 address.
Assign (fillDevices.
Get (i * nFill + j));
1009 uint16_t
port = 50000;
1011 PacketSinkHelper packetSinkHelper (
"ns3::TcpSocketFactory", hubLocalAddress);
1013 hubApp.
Start (Seconds (1.0));
1014 hubApp.
Stop (Seconds (10.0));
1026 for (uint32_t i = 0; i < star.
SpokeCount (); ++i)
1033 spokeApps.
Start (Seconds (1.0));
1034 spokeApps.
Stop (Seconds (10.0));
1046 for (uint32_t i = 0; i < fillNodes.
GetN (); ++i)
1053 fillApps.
Start (Seconds (1.0));
1054 fillApps.
Stop (Seconds (10.0));
1059 Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
1066 Simulator::Destroy ();