def call_undo(): print ("#####################################################t") #SClist1 = "sea,kcy" SClist2 = e_SVC.get() #SVList = get_service_chain(SClist1) SVK = get_service_chain(SClist2) #SVList = get_key_point(SVList,src,dst) SVK = get_key_point(SVK,src,dst) #print(SVK) topo_2 = network_topo() logic_map_2 = map() phy_topy_2 = topy_load() phy_nodes_2 = topy_parse_node(phy_topy_2) phy_links_2 = topy_parse_links(phy_topy_2) # print(phy_nodes) logic_nodes_2 = logic_map_2.getNodes(phy_nodes_2) #print(logic_nodes) logic_links_2 = logic_map_2.getLinks(phy_links_2) #print(logic_links) topo_2.topo_discover(logic_nodes_2,logic_links_2) #topo.topo_discover(NodeList,LinkList) str_con = e_con.get() con_src = str_con.split('-')[0] con_dst = str_con.split('-')[1] logic_graph_2 = logic_topo_gen (topo_2.get_graph(),con_src,con_dst) #print(logic_graph.edges()) opt_path = cal_optimal_path(logic_graph_2,SVK) #topo.show_topo(topo.get_origin_path(src,dst)) color_list = ['r'] * 8 str_prefix = e_prefix.get() pathset_2 = path_config(opt_path,phy_nodes_2,phy_links_2,str_prefix) path_adjust_undo(pathset_2)
def topo_get(): topo = network_topo() logic_map = map() phy_topy = topy_load() phy_nodes = topy_parse_node(phy_topy) phy_links = topy_parse_links(phy_topy) # print(phy_nodes) logic_nodes = logic_map.getNodes(phy_nodes) #print(logic_nodes) logic_links = logic_map.getLinks(phy_links) #print(logic_links) topo.topo_discover(logic_nodes,logic_links) for item in phy_links: str_link='' str_link = str_link + item['src']['name'] + '('+ item['src']['port_ip'][0] +')' + '---->' \ + item['dst']['name'] + '('+ item['dst']['port_ip'][0] +')' + ' metrics:'+str(item['metric']) mylist.insert(END, str_link) origin_path = topo.get_origin_path(src,dst) str_path = "Path:" for node in origin_path: if origin_path.index(node) == len(origin_path)-1: str_path = str_path + node else: str_path = str_path + node + '->' var.set(str_path) current_name = 'orgin_path.png' topo.show_topo(origin_path,logic_nodes,logic_links,current_name) topo_pic = PhotoImage(file='orgin_path.png') label_pic.configure(image = topo_pic) root.update() time.sleep(5)
def congestion_proc(): #SClist1 = "sea,kcy" SClist2 = e_SVC.get() #SVList = get_service_chain(SClist1) SVK = get_service_chain(SClist2) #SVList = get_key_point(SVList,src,dst) SVK = get_key_point(SVK,src,dst) #print(SVK) topo_1 = network_topo() logic_map_1 = map() phy_topy_1 = topy_load() phy_nodes_1 = topy_parse_node(phy_topy_1) phy_links_1 = topy_parse_links(phy_topy_1) # print(phy_nodes) logic_nodes_1 = logic_map_1.getNodes(phy_nodes_1) #print(logic_nodes) logic_links_1 = logic_map_1.getLinks(phy_links_1) #print(logic_links) topo_1.topo_discover(logic_nodes_1,logic_links_1) #topo.topo_discover(NodeList,LinkList) str_con = e_con.get() con_src = str_con.split('-')[0] con_dst = str_con.split('-')[1] logic_graph_1 = logic_topo_gen (topo_1.get_graph(),con_src,con_dst) #print(logic_graph.edges()) opt_path = cal_optimal_path(logic_graph_1,SVK) str_path_opt = "Path:" for node in opt_path: if opt_path.index(node) == len(opt_path)-1: str_path_opt = str_path_opt + node else: str_path_opt = str_path_opt + node + '->' var.set(str_path_opt) print(opt_path) #topo.show_topo(topo.get_origin_path(src,dst)) color_list = ['r'] * 8 str_prefix = e_prefix.get() pathset = path_config(opt_path,phy_nodes_1,phy_links_1,str_prefix) #global_opt_path =copy.copy(pathset) #print(pathset) print ("------------------------------------------------t") print ("set path %s" %pathset) path_adjust(path_set) print ("------------------------------------------------t") print (global_opt_path) topo_1.show_topo(opt_path,logic_nodes_1,logic_links_1,'path_opt.png')
path_opt_config.append(node_item) path_set['path'] = path_opt_config return path_set if __name__ == "__main__": SClist1 = "sea,kcy" SClist2 = "sea" SVList = get_service_chain(SClist1) SVK = get_service_chain(SClist2) SVList = get_key_point(SVList, src, dst) SVK = get_key_point(SVK, src, dst) #print(SVK) topo = network_topo() logic_map = map() phy_topy = topy_load() phy_nodes = topy_parse_node(phy_topy) phy_links = topy_parse_links(phy_topy) # print(phy_nodes) logic_nodes = logic_map.getNodes(phy_nodes) #print(logic_nodes) logic_links = logic_map.getLinks(phy_links) #print(logic_links) ''' topo.topo_discover(NodeList,LinkList)
path_opt_config.append(node_item) path_set['path'] = path_opt_config return path_set if __name__ == "__main__": SClist1 = "sea,kcy" SClist2 = "sea" SVList = get_service_chain(SClist1) SVK = get_service_chain(SClist2) SVList = get_key_point(SVList,src,dst) SVK = get_key_point(SVK,src,dst) #print(SVK) topo = network_topo() logic_map = map() phy_topy = topy_load() phy_nodes = topy_parse_node(phy_topy) phy_links = topy_parse_links(phy_topy) # print(phy_nodes) logic_nodes = logic_map.getNodes(phy_nodes) #print(logic_nodes) logic_links = logic_map.getLinks(phy_links) #print(logic_links) '''