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()
Beispiel #2
0
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))
Beispiel #3
0
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.")
Beispiel #4
0
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()