## Working with first.cc Step 1 - Copy first.cc file from tutorial to scratch forlder. note- never edit tutorials files. #include "ns3/applications-module.h" #include "ns3/core-module.h" #include "ns3/internet-module.h" #include "ns3/network-module.h" #include "ns3/point-to-point-module.h" // Default Network Topology // // 10.1.1.0 // n0 -------------- n1 // point-to-point // using namespace ns3; NS_LOG_COMPONENT_DEFINE("FirstScriptExample"); int main(int argc, char* argv[]) { CommandLine cmd(__FILE__); cmd.Parse(argc, argv); Time::SetResolution(Time::NS); LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO); LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_INFO); NodeContainer nodes; nodes.Create(2); PointToPointHelper pointToPoint; pointToPoint.SetDeviceAttribute("DataRate", StringValue("5Mbps")); pointToPoint.SetChannelAttribute("Delay", StringValue("2ms")); NetDeviceContainer devices; devices = pointToPoint.Install(nodes); InternetStackHelper stack; stack.Install(nodes); Ipv4AddressHelper address; address.SetBase("10.1.1.0", "255.255.255.0"); Ipv4InterfaceContainer interfaces = address.Assign(devices); UdpEchoServerHelper echoServer(9); ApplicationContainer serverApps = echoServer.Install(nodes.Get(1)); serverApps.Start(Seconds(1.0)); serverApps.Stop(Seconds(10.0)); UdpEchoClientHelper echoClient(interfaces.GetAddress(1), 9); echoClient.SetAttribute("MaxPackets", UintegerValue(1)); echoClient.SetAttribute("Interval", TimeValue(Seconds(1.0))); echoClient.SetAttribute("PacketSize", UintegerValue(1024)); ApplicationContainer clientApps = echoClient.Install(nodes.Get(0)); clientApps.Start(Seconds(2.0)); clientApps.Stop(Seconds(10.0)); Simulator::Run(); Simulator::Destroy(); return 0; } ![image](https://hackmd.io/_uploads/B193MdpyA.png) ### Changing port from 9 to 3689 ![Uploading file..._4ws5xyauo]() ![image](https://hackmd.io/_uploads/Bku7VuTJR.png) ### Code for network Animation- Add this code to first.cc ``` #include "ns3/netanim-module.h" AnimationInterface anim("first.xml"); anim.SetConstantPosition(nodes.Get(0),10.0,10.0); anim.SetConstantPosition(nodes.Get(1),20.0,20.0); ``` $ ./ns3 run scratch/first This will generate first.xml file. Execute first.xml by NetAnim tool. $ ./NetAnim ![image](https://hackmd.io/_uploads/HJN99YpkC.png) ![image](https://hackmd.io/_uploads/SJqn5KTJC.png) ![image](https://hackmd.io/_uploads/rk4lsKp10.png) Ascii Formate tracing ``` AsciiTraceHelper ascii; pointToPoint.EnableAsciiAll(ascii.CreateFileStream("First.tr")); ``` ![image](https://hackmd.io/_uploads/Ska15cpJ0.png) ### TraceMetrics 1- Download tracemetrics- https://sourceforge.net/projects/tracemetrics/ 2- Extract $ cd tracemetrics $ java -jar tracemetrics.jar Choose the file to run. ![image](https://hackmd.io/_uploads/B1HhK5aJ0.png)