Exemplo n.º 1
0
 def test_buffer_sizes_bw_delay_prod_unused_links(self):
     topo = fnss.Topology()
     topo.add_edge(1, 2, weight=100)
     topo.add_edge(2, 3, weight=1)
     topo.add_edge(3, 1, weight=1)
     fnss.set_capacities_constant(topo, 10)
     fnss.set_delays_constant(topo, 2)
     fnss.set_buffer_sizes_bw_delay_prod(topo)
     self.assertTrue(all((topo.adj[u][v]['buffer'] is not None
                      for (u, v) in topo.edges())))
Exemplo n.º 2
0
def parse(topo_path, xml_path, delay, buffer_type):
    topology = fnss.parse_topology_zoo(topo_path)
    topology = topology.to_undirected()
    fnss.set_capacities_edge_betweenness(topology, [200, 500, 1000],
                                         'Mbps')  # TODO: hardcode now
    fnss.set_weights_constant(topology, 1)
    fnss.set_delays_constant(topology, delay, 'ms')
    if buffer_type == 'bdp':
        fnss.set_buffer_sizes_bw_delay_prod(topology, 'packet', 1500)
    elif buffer_type == 'bw':
        fnss.set_buffer_sizes_link_bandwidth(topology, buffer_unit='packet')
    else:
        fnss.set_buffer_sizes_constant(topology, 1500, 'packet')
    fnss.write_topology(topology, xml_path)
Exemplo n.º 3
0
 def test_buffer_sizes_bw_delay_prod(self):
     fnss.set_buffer_sizes_bw_delay_prod(self.topo)
     self.assertTrue(
         all(self.topo.edge[u][v]['buffer'] is not None
             for (u, v) in self.topo.edges_iter()))
Exemplo n.º 4
0
=======================

This example shows how to generate a topology (a line in this case) and export
it to the ns-2 simulator
"""
import fnss

# create a line topology with 10 nodes
topology = fnss.line_topology(10)

# assign capacity of 10 Mbps to each link
fnss.set_capacities_constant(topology, 10, 'Mbps')

# assign delay of 2 ms to each link
fnss.set_delays_constant(topology, 2, 'ms')

# set buffers in each node (use packets, bytes not supported by ns-2)
fnss.set_buffer_sizes_bw_delay_prod(topology, 'packets', 1500)

# Add FTP application to first and last node of the line
tcp_stack_props = {'class': 'Agent/TCP', 'class_': 2, 'fid_': 1}
fnss.add_stack(topology, 0, 'tcp', tcp_stack_props)
fnss.add_stack(topology, 9, 'tcp', tcp_stack_props)

ftp_app_props = {'class': 'Application/FTP', 'type': 'FTP'}
fnss.add_application(topology, 0, 'ftp', ftp_app_props)
fnss.add_application(topology, 9, 'ftp', ftp_app_props)

# export topology to a Tcl script for ns-2
fnss.to_ns2(topology, 'ns2-script.tcl', stacks=True)
Exemplo n.º 5
0
 def test_buffer_sizes_bw_delay_prod(self):
     fnss.set_buffer_sizes_bw_delay_prod(self.topo)
     self.assertTrue(all(self.topo.adj[u][v]['buffer'] is not None
                      for (u, v) in self.topo.edges()))