Classes

Topology

class Topology(data=None, name='', **kwargs)[source]

Base class for undirected topology

Attributes:
name

Methods

add_cycle(nodes, **attr) Add a cycle.
add_edge(u, v[, attr_dict]) Add an edge between u and v.
add_edges_from(ebunch[, attr_dict]) Add all the edges in ebunch.
add_node(n[, attr_dict]) Add a single node n and update node attributes.
add_nodes_from(nodes, **attr) Add multiple nodes.
add_path(nodes, **attr) Add a path.
add_star(nodes, **attr) Add a star.
add_weighted_edges_from(ebunch[, weight]) Add all the edges in ebunch as weighted edges with specified weights.
adjacency_iter() Return an iterator of (node, adjacency dict) tuples for all nodes.
adjacency_list() Return an adjacency list representation of the graph.
adjlist_dict_factory alias of __builtin__.dict
applications() Return a dictionary of all applications deployed, keyed by node
buffers() Return a dictionary of all buffer sizes, keyed by interface
capacities() Return a dictionary of all link capacities, keyed by link
clear() Remove all nodes and edges from the graph.
copy() Return a copy of the topology.
degree([nbunch, weight]) Return the degree of a node or nodes.
degree_iter([nbunch, weight]) Return an iterator for (node, degree).
delays() Return a dictionary of all link delays, keyed by link
edge_attr_dict_factory alias of __builtin__.dict
edges([nbunch, data, default]) Return a list of edges.
edges_iter([nbunch, data, default]) Return an iterator over the edges.
get_edge_data(u, v[, default]) Return the attribute dictionary associated with edge (u,v).
has_edge(u, v) Return True if the edge (u,v) is in the graph.
has_node(n) Return True if the graph contains the node n.
is_directed() Return True if graph is directed, False otherwise.
is_multigraph() Return True if graph is a multigraph, False otherwise.
nbunch_iter([nbunch]) Return an iterator of nodes contained in nbunch that are also in the graph.
neighbors(n) Return a list of the nodes connected to the node n.
neighbors_iter(n) Return an iterator over all neighbors of node n.
node_dict_factory alias of __builtin__.dict
nodes([data]) Return a list of the nodes in the graph.
nodes_iter([data]) Return an iterator over the nodes.
nodes_with_selfloops() Return a list of nodes with self loops.
number_of_edges([u, v]) Return the number of edges between two nodes.
number_of_nodes() Return the number of nodes in the graph.
number_of_selfloops() Return the number of selfloop edges.
order() Return the number of nodes in the graph.
remove_edge(u, v) Remove the edge between u and v.
remove_edges_from(ebunch) Remove all edges specified in ebunch.
remove_node(n) Remove node n.
remove_nodes_from(nodes) Remove multiple nodes.
selfloop_edges([data, default]) Return a list of selfloop edges.
size([weight]) Return the number of edges.
stacks() Return a dictionary of all node stacks, keyed by node
subgraph(nbunch) Return the subgraph induced on nodes in nbunch.
to_directed() Return a directed representation of the topology.
to_undirected() Return an undirected copy of the topology.
weights() Return a dictionary of all link weights, keyed by link

DirectedTopology

class DirectedTopology(data=None, name='', **kwargs)[source]

Base class for directed topology

Attributes:
name

Methods

add_cycle(nodes, **attr) Add a cycle.
add_edge(u, v[, attr_dict]) Add an edge between u and v.
add_edges_from(ebunch[, attr_dict]) Add all the edges in ebunch.
add_node(n[, attr_dict]) Add a single node n and update node attributes.
add_nodes_from(nodes, **attr) Add multiple nodes.
add_path(nodes, **attr) Add a path.
add_star(nodes, **attr) Add a star.
add_weighted_edges_from(ebunch[, weight]) Add all the edges in ebunch as weighted edges with specified weights.
adjacency_iter() Return an iterator of (node, adjacency dict) tuples for all nodes.
adjacency_list() Return an adjacency list representation of the graph.
adjlist_dict_factory alias of __builtin__.dict
applications() Return a dictionary of all applications deployed, keyed by node
buffers() Return a dictionary of all buffer sizes, keyed by interface
capacities() Return a dictionary of all link capacities, keyed by link
clear() Remove all nodes and edges from the graph.
copy() Return a copy of the topology.
degree([nbunch, weight]) Return the degree of a node or nodes.
degree_iter([nbunch, weight]) Return an iterator for (node, degree).
delays() Return a dictionary of all link delays, keyed by link
edge_attr_dict_factory alias of __builtin__.dict
edges([nbunch, data, default]) Return a list of edges.
edges_iter([nbunch, data, default]) Return an iterator over the edges.
get_edge_data(u, v[, default]) Return the attribute dictionary associated with edge (u,v).
has_edge(u, v) Return True if the edge (u,v) is in the graph.
has_node(n) Return True if the graph contains the node n.
has_predecessor(u, v) Return True if node u has predecessor v.
has_successor(u, v) Return True if node u has successor v.
in_degree([nbunch, weight]) Return the in-degree of a node or nodes.
in_degree_iter([nbunch, weight]) Return an iterator for (node, in-degree).
in_edges([nbunch, data]) Return a list of the incoming edges.
in_edges_iter([nbunch, data]) Return an iterator over the incoming edges.
is_directed() Return True if graph is directed, False otherwise.
is_multigraph() Return True if graph is a multigraph, False otherwise.
nbunch_iter([nbunch]) Return an iterator of nodes contained in nbunch that are also in the graph.
neighbors(n) Return a list of successor nodes of n.
neighbors_iter(n) Return an iterator over successor nodes of n.
node_dict_factory alias of __builtin__.dict
nodes([data]) Return a list of the nodes in the graph.
nodes_iter([data]) Return an iterator over the nodes.
nodes_with_selfloops() Return a list of nodes with self loops.
number_of_edges([u, v]) Return the number of edges between two nodes.
number_of_nodes() Return the number of nodes in the graph.
number_of_selfloops() Return the number of selfloop edges.
order() Return the number of nodes in the graph.
out_degree([nbunch, weight]) Return the out-degree of a node or nodes.
out_degree_iter([nbunch, weight]) Return an iterator for (node, out-degree).
out_edges([nbunch, data, default]) Return a list of edges.
out_edges_iter([nbunch, data, default]) Return an iterator over the edges.
predecessors(n) Return a list of predecessor nodes of n.
predecessors_iter(n) Return an iterator over predecessor nodes of n.
remove_edge(u, v) Remove the edge between u and v.
remove_edges_from(ebunch) Remove all edges specified in ebunch.
remove_node(n) Remove node n.
remove_nodes_from(nbunch) Remove multiple nodes.
reverse([copy]) Return the reverse of the graph.
selfloop_edges([data, default]) Return a list of selfloop edges.
size([weight]) Return the number of edges.
stacks() Return a dictionary of all node stacks, keyed by node
subgraph(nbunch) Return the subgraph induced on nodes in nbunch.
successors(n) Return a list of successor nodes of n.
successors_iter(n) Return an iterator over successor nodes of n.
to_directed() Return a directed representation of the topology.
to_undirected() Return an undirected copy of the topology.
weights() Return a dictionary of all link weights, keyed by link

DatacenterTopology

class DatacenterTopology(data=None, name='', **kwargs)[source]

Represent a datacenter topology

Attributes:
name

Methods

add_cycle(nodes, **attr) Add a cycle.
add_edge(u, v[, attr_dict]) Add an edge between u and v.
add_edges_from(ebunch[, attr_dict]) Add all the edges in ebunch.
add_node(n[, attr_dict]) Add a single node n and update node attributes.
add_nodes_from(nodes, **attr) Add multiple nodes.
add_path(nodes, **attr) Add a path.
add_star(nodes, **attr) Add a star.
add_weighted_edges_from(ebunch[, weight]) Add all the edges in ebunch as weighted edges with specified weights.
adjacency_iter() Return an iterator of (node, adjacency dict) tuples for all nodes.
adjacency_list() Return an adjacency list representation of the graph.
adjlist_dict_factory alias of __builtin__.dict
applications() Return a dictionary of all applications deployed, keyed by node
buffers() Return a dictionary of all buffer sizes, keyed by interface
capacities() Return a dictionary of all link capacities, keyed by link
clear() Remove all nodes and edges from the graph.
copy() Return a copy of the topology.
degree([nbunch, weight]) Return the degree of a node or nodes.
degree_iter([nbunch, weight]) Return an iterator for (node, degree).
delays() Return a dictionary of all link delays, keyed by link
edge_attr_dict_factory alias of __builtin__.dict
edges([nbunch, data, default]) Return a list of edges.
edges_iter([nbunch, data, default]) Return an iterator over the edges.
get_edge_data(u, v[, default]) Return the attribute dictionary associated with edge (u,v).
has_edge(u, v) Return True if the edge (u,v) is in the graph.
has_node(n) Return True if the graph contains the node n.
hosts() Return the list of host nodes in the topology
is_directed() Return True if graph is directed, False otherwise.
is_multigraph() Return True if graph is a multigraph, False otherwise.
nbunch_iter([nbunch]) Return an iterator of nodes contained in nbunch that are also in the graph.
neighbors(n) Return a list of the nodes connected to the node n.
neighbors_iter(n) Return an iterator over all neighbors of node n.
node_dict_factory alias of __builtin__.dict
nodes([data]) Return a list of the nodes in the graph.
nodes_iter([data]) Return an iterator over the nodes.
nodes_with_selfloops() Return a list of nodes with self loops.
number_of_edges([u, v]) Return the number of edges between two nodes.
number_of_hosts() Return the number of hosts in the topology
number_of_nodes() Return the number of nodes in the graph.
number_of_selfloops() Return the number of selfloop edges.
number_of_switches() Return the number of switches in the topology
order() Return the number of nodes in the graph.
remove_edge(u, v) Remove the edge between u and v.
remove_edges_from(ebunch) Remove all edges specified in ebunch.
remove_node(n) Remove node n.
remove_nodes_from(nodes) Remove multiple nodes.
selfloop_edges([data, default]) Return a list of selfloop edges.
size([weight]) Return the number of edges.
stacks() Return a dictionary of all node stacks, keyed by node
subgraph(nbunch) Return the subgraph induced on nodes in nbunch.
switches() Return the list of switch nodes in the topology
to_directed() Return a directed representation of the topology.
to_undirected() Return an undirected copy of the topology.
weights() Return a dictionary of all link weights, keyed by link

TrafficMatrix

class TrafficMatrix(volume_unit='Mbps', flows=None)[source]

Class representing a single traffic matrix.

It simply contains a set of traffic volumes being exchanged between origin-destination pairs

Parameters:
volume_unit : str

The unit in which traffic volumes are expressed

flows : dict, optional

The traffic volumes or the matrix, keyed by origin-destination pair. The origin-destination pair is a tuple whose two elements are respectively the identifier of the origin and destination nodes and volumes are all expressed in the same unit

Methods

add_flow(origin, destination, volume) Add a flow to the traffic matrix
flows() Return the flows of the traffic matrix
od_pairs() Return all OD pairs of the traffic matrix
pop_flow(origin, destination) Pop a flow from the traffic matrix and return the volume of the flow removed.

TrafficMatrixSequence

class TrafficMatrixSequence(interval=None, t_unit='min')[source]

Class representing a sequence of traffic matrices.

Parameters:
interval : float or int, optional

The time interval elapsed between subsequent traffic matrices of the sequence

t_unit : str, optional

The unit of the interval value (e.g. ‘sec’ or ‘min’)

Methods

append(tm) Append a traffic matrix at the end of the sequence
get(i) Return a specific traffic matrix in a specific position of the sequence
insert(i, tm) Insert a traffic matrix in the sequence at a specified position
pop(i) Removes the traffic matrix in a specific position of the sequence

EventSchedule

class EventSchedule(t_start=0, t_unit='ms')[source]

Class representing an event schedule. This class is simply a wrapper for a list of events.

Methods

add(time, event[, absolute_time]) Adds an event to the schedule.
add_schedule(event_schedule) Merge with another event schedule.
events_between(t_start, t_end) Return an event schedule comprising all events scheduled between a start time (included) and an end time (excluded).
number_of_events() Return the number of events in the schedule
pop(i) Remove from the schedule the event in a specific position