Assignment 2 - 119CS0143
Assignment 2 - 119CS0143
#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/csma-module.h"
#include "ns3/internet-module.h"
#include "ns3/point-to-point-module.h"
#include "ns3/applications-module.h"
#include "ns3/ipv4-global-routing-helper.h"
#include "ns3/netanim-module.h"
NS_LOG_COMPONENT_DEFINE ("SecondScriptExample");
int
main (int argc, char *argv[])
{
bool verbose = true;
uint32_t nCsma = 5;
bool tracing = true;
CommandLine cmd;
cmd.AddValue ("nCsma", "Number of \"extra\" CSMA nodes/devices", nCsma);
Assignment 2 - 119CS0143 1
cmd.AddValue ("verbose", "Tell echo applications to log if true", verbose);
cmd.AddValue("tracing", "Enable pcap tracing", tracing);
cmd.Parse (argc,argv);
if (verbose)
{
LogComponentEnable ("UdpEchoClientApplication", LOG_LEVEL_INFO);
LogComponentEnable ("UdpEchoServerApplication", LOG_LEVEL_INFO);
}
NodeContainer p2pNodes;
p2pNodes.Create (2);
NodeContainer csmaNodes;
csmaNodes.Add (p2pNodes.Get (1));
csmaNodes.Create (nCsma);
PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));
pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));
NetDeviceContainer p2pDevices;
p2pDevices = pointToPoint.Install (p2pNodes);
CsmaHelper csma;
csma.SetChannelAttribute ("DataRate", StringValue ("100Mbps"));
csma.SetChannelAttribute ("Delay", TimeValue (NanoSeconds (6560)));
NetDeviceContainer csmaDevices;
csmaDevices = csma.Install (csmaNodes);
InternetStackHelper stack;
stack.Install (p2pNodes.Get (0));
stack.Install (csmaNodes);
Ipv4AddressHelper address;
address.SetBase ("10.1.1.0", "255.255.255.0");
Ipv4InterfaceContainer p2pInterfaces;
p2pInterfaces = address.Assign (p2pDevices);
Assignment 2 - 119CS0143 2
echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));
echoClient.SetAttribute ("PacketSize", UintegerValue (1024));
Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
AnimationInterface anim("anim2.xml");
anim.SetConstantPosition(p2pNodes.Get (0), 10.0, 10.0);
anim.SetConstantPosition(p2pNodes.Get (1), 20.0, 20.0);
anim.SetConstantPosition(csmaNodes.Get (1), 30.0, 30.0);
anim.SetConstantPosition(csmaNodes.Get (2), 30.0, 40.0);
anim.SetConstantPosition(csmaNodes.Get (3), 30.0, 50.0);
anim.SetConstantPosition(csmaNodes.Get (4), 30.0, 60.0);
anim.SetConstantPosition(csmaNodes.Get (5), 30.0, 70.0);
AsciiTraceHelper ascii;
pointToPoint.EnableAsciiAll(ascii.CreateFileStream("trace2.tr"));
if(tracing==true)
{
pointToPoint.EnablePcapAll("trace2");
}
Simulator::Run ();
Simulator::Destroy ();
return 0;
}
Assignment 2 - 119CS0143 3
Assignment 2 - 119CS0143 4
Assignment 2 - 119CS0143 5