예제 #1
0
src = raw_input("src: ")
dst = raw_input("dst: ")
srcNode = topo.getNode(src + "@es.net")
dstNode = topo.getNode(dst + "@es.net")

start = DateTime.now()
end = start.plusHours(2)
reserved = OSCARSReservations(topo).getReserved(start, end)

maxReservable = -1

# Calculate max bandwidth possible from source to destination

tgraph = topo.getGraph(start, end, TopologyProvider.WeightType.MaxBandwidth)

md = ModifiedDijkstra(tgraph, srcNode, dstNode)
maxBandwidth = md.getBandwidth()

# iterate through path to calculate what is the max bandwidth available and the path corresponding
for link in maxBandwidth:
    print "link: ", link.getId()
    port = topo.getPortByLink(link.getId())
    portReservation = reserved.get(port)
    if portReservation == None:
        continue
    remainTo = portReservation.maxReservable - portReservation.alreadyReserved[
        0]
    print "reservable: ", remainTo
    if (maxReservable == -1) or (maxReservable > remainTo):
        maxReservable = remainTo
예제 #2
0
파일: viewTopo.py 프로젝트: esnet/enos
# Created by davidhua on 7/17/14.
#

# Run by calling viewtopo.py in netshell (No arguments); viewtopo.py [path] [source] [dest]; or viewtopo.py [bandwidth] [source] [dest].

topology = TopologyFactory.instance()
topo = topology.retrieveTopologyProvider("localLayer2")

command_args = sys.argv

if len(command_args) == 2:
    graph = topo.getGraph(TopologyProvider.WeightType.TrafficEngineering)
    viewer = GraphViewer(graph)
    viewer.init()
elif len(command_args) == 5:
    srcNode = topo.getNode(command_args[3]+"@es.net");
    dstNode = topo.getNode(command_args[4]+"@es.net");
    if command_args[2] == "path":
        graph = topo.getGraph(TopologyProvider.WeightType.TrafficEngineering)
        path = DijkstraShortestPath(graph, srcNode, dstNode)
        thispath = path.getPath()
        viewer = GraphViewer(thispath, graph)
    elif command_args[2] == "bandwidth":
        graph = topo.getGraph(TopologyProvider.WeightType.MaxBandwidth)
        md = ModifiedDijkstra(graph, srcNode, dstNode)
        maxBandwidth = md.getPath()
        viewer = GraphViewer(maxBandwidth, graph)
    viewer.init()
else:
    sys.exit()
예제 #3
0
파일: maxbandwidth.py 프로젝트: esnet/enos
src = raw_input("src: ")
dst = raw_input("dst: ")
srcNode = topo.getNode(src+"@es.net");
dstNode = topo.getNode(dst+"@es.net");

start = DateTime.now()
end = start.plusHours(2)
reserved = OSCARSReservations(topo).getReserved(start,end)

maxReservable = -1

# Calculate max bandwidth possible from source to destination

tgraph = topo.getGraph(start, end, TopologyProvider.WeightType.MaxBandwidth)

md = ModifiedDijkstra(tgraph, srcNode, dstNode)
maxBandwidth = md.getBandwidth()

# iterate through path to calculate what is the max bandwidth available and the path corresponding
for link in maxBandwidth:
    print "link: " , link.getId()
    port = topo.getPortByLink(link.getId())
    portReservation = reserved.get(port)
    if portReservation == None:
        continue
    remainTo = portReservation.maxReservable - portReservation.alreadyReserved[0]
    print "reservable: ", remainTo
    if (maxReservable == -1) or (maxReservable > remainTo):
        maxReservable = remainTo;

print "Max. reservable= " + str(maxReservable) + " bits/sec"