Exemple #1
0
def share_edge(s1, s2):
    """Determine whether two slices share a physical edge."""
    # This is only correct if we have a guarantee that the topologies are sane,
    # and only give us real internal edges.
    s1_ls = set(map_edges(edges_of_topo(s1.l_topo), s1.node_map, s1.port_map))
    s2_ls = set(map_edges(edges_of_topo(s2.l_topo), s2.node_map, s2.port_map))
    return not s1_ls.isdisjoint(s2_ls)
Exemple #2
0
def edge_in(edge, slic, memo=None):
    """Determine whether a slice uses a given physical edge"""
    if memo is not None:
        if slic not in memo:
            memo[slic] = set(map_edges(edges_of_topo(slic.l_topo),
                                       slic.node_map, slic.port_map))
        return edge in memo[slic]
    else:
        return edge in set(map_edges(edges_of_topo(slic.l_topo),
                                       slic.node_map, slic.port_map))