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
# 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()
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"