def run_simulation(network): #print "distance between CCATCCA and URCOS", distance # Applications server = network.nodes["CCATCCA"] server_address = server.devices["Uuario Final PCMCIA"].interfaces[ 0].address echoServer = ns3.UdpEchoServerHelper(9) serverApps = echoServer.Install(server.ns3_node) serverApps.Start(ns3.Seconds(1.0)) serverApps.Stop(ns3.Seconds(10.0)) client = network.nodes["URCOS"] echoClient = ns3.UdpEchoClientHelper(server_address, 9) echoClient.SetAttribute("MaxPackets", ns3.UintegerValue(1)) echoClient.SetAttribute("Interval", ns3.TimeValue(ns3.Seconds(1.0))) echoClient.SetAttribute("PacketSize", ns3.UintegerValue(1024)) clientApps = echoClient.Install(client.ns3_node) clientApps.Start(ns3.Seconds(2.0)) clientApps.Stop(ns3.Seconds(10.0)) # Tracing josjo1 = network.nodes["JOSJOJAHUARINA 1"] device = josjo1.devices['Josjo 1 Sectorial PC'].ns3_device phy = josjo1.devices['Josjo 1 Sectorial PC'].phy_helper phy.EnablePcap("udp_echo", device) # Run simulation ns3.Simulator.Stop(ns3.Seconds(10.0)) ns3.Simulator.Run() ns3.Simulator.Destroy()
def udp_echo_app(network, client_node, server_node, server_device, start, stop, packets=1, interval=1.0, port=9, packet_size=1024): """Set up a UDP echo client/server.""" server = network.nodes[server_node] assert server_device in server.devices, \ "Device '%s' not found, available: %s" % (server_device, ", ".join(server.devices)) server_address = server.devices[server_device].interfaces[0].address echoServer = ns3.UdpEchoServerHelper(port) serverApps = echoServer.Install(server.ns3_node) serverApps.Start(ns3.Seconds(start)) serverApps.Stop(ns3.Seconds(stop)) client = network.nodes[client_node] echoClient = ns3.UdpEchoClientHelper(server_address, 9) echoClient.SetAttribute("MaxPackets", ns3.UintegerValue(packets)) echoClient.SetAttribute("Interval", ns3.TimeValue(ns3.Seconds(interval))) echoClient.SetAttribute("PacketSize", ns3.UintegerValue(packet_size)) clientApps = echoClient.Install(client.ns3_node) clientApps.Start(ns3.Seconds(start)) clientApps.Stop(ns3.Seconds(stop))
def main(argv): # # Allow the user to override any of the defaults and the above Bind() at # run-time, via command-line arguments # cmd = ns3.CommandLine() cmd.Parse(argv) # # But since this is a realtime script, don't allow the user to mess with # that. # ns3.GlobalValue.Bind("SimulatorImplementationType", ns3.StringValue("ns3::RealtimeSimulatorImpl")) # # Explicitly create the nodes required by the topology (shown above). # print "Create nodes." n = ns3.NodeContainer() n.Create(4) internet = ns3.InternetStackHelper() internet.Install(n) # # Explicitly create the channels required by the topology (shown above). # print("Create channels.") csma = ns3.CsmaHelper() csma.SetChannelAttribute("DataRate", ns3.DataRateValue(ns3.DataRate(5000000))) csma.SetChannelAttribute("Delay", ns3.TimeValue(ns3.MilliSeconds(2))) csma.SetDeviceAttribute("Mtu", ns3.UintegerValue(1400)) d = csma.Install(n) # # We've got the "hardware" in place. Now we need to add IP addresses. # print("Assign IP Addresses.") ipv4 = ns3.Ipv4AddressHelper() ipv4.SetBase(ns3.Ipv4Address("10.1.1.0"), ns3.Ipv4Mask("255.255.255.0")) i = ipv4.Assign(d) print("Create Applications.") # # Create a UdpEchoServer application on node one. # port = 9 # well-known echo port number server = ns3.UdpEchoServerHelper(port) apps = server.Install(n.Get(1)) apps.Start(ns3.Seconds(1.0)) apps.Stop(ns3.Seconds(10.0)) # # Create a UdpEchoClient application to send UDP datagrams from node zero to # node one. # packetSize = 1024 maxPacketCount = 500 interPacketInterval = ns3.Seconds(0.01) client = ns3.UdpEchoClientHelper(i.GetAddress(1), port) client.SetAttribute("MaxPackets", ns3.UintegerValue(maxPacketCount)) client.SetAttribute("Interval", ns3.TimeValue(interPacketInterval)) client.SetAttribute("PacketSize", ns3.UintegerValue(packetSize)) apps = client.Install(n.Get(0)) apps.Start(ns3.Seconds(2.0)) apps.Stop(ns3.Seconds(10.0)) ascii = ns3.AsciiTraceHelper() csma.EnableAsciiAll(ascii.CreateFileStream("realtime-udp-echo.tr")) csma.EnablePcapAll("realtime-udp-echo", False) # # Now, do the actual simulation. # print("Run Simulation.") ns3.Simulator.Run() ns3.Simulator.Destroy() print("Done.")
pointToPoint.SetDeviceAttribute("DataRate", ns3.StringValue("5Mbps")) pointToPoint.SetChannelAttribute("Delay", ns3.StringValue("2ms")) devices = pointToPoint.Install(nodes) stack = ns3.InternetStackHelper() stack.Install(nodes) address = ns3.Ipv4AddressHelper() address.SetBase(ns3.Ipv4Address("10.1.1.0"), ns3.Ipv4Mask("255.255.255.0")) interfaces = address.Assign(devices) echoServer = ns3.UdpEchoServerHelper(9) serverApps = echoServer.Install(nodes.Get(1)) serverApps.Start(ns3.Seconds(1.0)) serverApps.Stop(ns3.Seconds(10.0)) echoClient = ns3.UdpEchoClientHelper(interfaces.GetAddress(1), 9) echoClient.SetAttribute("MaxPackets", ns3.UintegerValue(1)) echoClient.SetAttribute("Interval", ns3.TimeValue(ns3.Seconds(1.0))) echoClient.SetAttribute("PacketSize", ns3.UintegerValue(1024)) clientApps = echoClient.Install(nodes.Get(0)) clientApps.Start(ns3.Seconds(2.0)) clientApps.Stop(ns3.Seconds(10.0)) ns3.Simulator.Run() ns3.Simulator.Destroy()