def load_ttf(self): ''' loads topology transfer function ''' f = TF(1) f.load_from_json("%s/topology.tf.json" % self.settings["input_path"]) return f
def load_ttf(self): ''' loads topology transfer function ''' f = TF(1) f.load_from_json("%s/topology.tf.json"%self.settings["input_path"]) return f
def load_ntf(self): ''' load transfer functions into a emulated transfer function with @layer layers. ''' if "remove_duplicates" in self.settings.keys() and \ self.settings["remove_duplicates"]: emul_tf = emulated_tf(self.settings["num_layers"], True) else: emul_tf = emulated_tf(self.settings["num_layers"], False) emul_tf.set_fwd_engine_stage(self.settings["fwd_engine_layer"]) emul_tf.set_multipliers(self.settings["switch_id_multiplier"], \ self.settings["port_type_multiplier"], \ self.settings["out_port_type_const"]) for rtr_name in self.settings["rtr_names"]: f = TF(1) f.load_from_json("%s/%s.tf.json" % (self.settings["input_path"], rtr_name)) if "hash_table" in self.settings.keys(): f.activate_hash_table(self.settings["hash_table"]) emul_tf.append_tf(f) emul_tf.length = f.length return emul_tf
def load_ntf(self): ''' load transfer functions into a emulated transfer function with @layer layers. ''' if "remove_duplicates" in self.settings.keys() and \ self.settings["remove_duplicates"]: emul_tf = emulated_tf(self.settings["num_layers"],True) else: emul_tf = emulated_tf(self.settings["num_layers"],False) emul_tf.set_fwd_engine_stage(self.settings["fwd_engine_layer"]) emul_tf.set_multipliers(self.settings["switch_id_multiplier"], \ self.settings["port_type_multiplier"], \ self.settings["out_port_type_const"]) for rtr_name in self.settings["rtr_names"]: f = TF(1) f.load_from_json("%s/%s.tf.json"%(self.settings["input_path"], rtr_name)) if "hash_table" in self.settings.keys(): f.activate_hash_table(self.settings["hash_table"]) emul_tf.append_tf(f) emul_tf.length = f.length return emul_tf
mapf = json.load(f) inv_mapf = {} for rtr in mapf: for port in mapf[rtr]: inv_mapf[int(mapf[rtr][port])] = "%s-%s"%(rtr,port) inv_mapf[int(mapf[rtr][port])+OUTPORT_CONST] = "%s-%s"%(rtr,port) inv_mapf[int(mapf[rtr][port])+INTER_CONST] = "^%s-%s"%(rtr,port) fwd_id = get_fwd_port_id(int(mapf[rtr][port])) inv_mapf[fwd_id] = "FWD-ENGINE" tfs = {} files_in_dir = os.listdir(args.data_path) for file_in_dir in files_in_dir: if file_in_dir.endswith(".tf.json"): tf = TF(1) tf.load_from_json("%s/%s"%(args.data_path,file_in_dir)) tfs[file_in_dir[0:-8]] = tf command = args.exe_path + "/" + args.network if (args.in_header): header = make_header(args.in_header) command = command + " -h " + header.__str__(0) src_id = mapf[args.source[0]][args.source[1]] if (args.one_hop): if args.destination: sys.exit("Error: you need to specify a destination using -d arg.") command = command + " -o" if args.destination[1] == "^": dst_id = get_fwd_port_id(mapf[args.destination[0]].values()[0])
mapf = json.load(f) mapf_extended = copy.deepcopy(mapf) inv_mapf = {} for rtr in mapf: for port in mapf[rtr]: inv_mapf[int(mapf[rtr][port])] = "%s-%s"%(rtr,port) inv_mapf[int(mapf[rtr][port])+OUTPORT_CONST] = "%s-%s"%(rtr,port) inv_mapf[int(mapf[rtr][port])+INTER_CONST] = "^%s-%s"%(rtr,port) mapf_extended[rtr]["^%s"%port] = mapf[rtr][port] + INTER_CONST fwd_id = get_fwd_port_id(int(mapf[rtr][port])) inv_mapf[fwd_id] = "FWD-ENGINE" mapf_extended[rtr]["^"] = fwd_id f = TF(1) f.load_from_json("%s/%s.tf.json"%(args.data_path,args.rtr_name)) print "Modifying transfer function of router ",args.rtr_name if args.view: stage = args.view[0] i = 1 for rule in f.rules: if stage == get_stage(rule): print i,":",get_openflow_rule(rule,inv_mapf) i = i + 1; if args.rm: indices = args.rm[0].split(",") indices = [int(i) for i in indices] indices.sort(reverse=True) for index in indices: f.remove_rule(index-1)
mapf = json.load(f) inv_mapf = {} for rtr in mapf: for port in mapf[rtr]: inv_mapf[int(mapf[rtr][port])] = "%s-%s"%(rtr,port) inv_mapf[int(mapf[rtr][port])+OUTPORT_CONST] = "%s-%s"%(rtr,port) inv_mapf[int(mapf[rtr][port])+INTER_CONST] = "^%s-%s"%(rtr,port) fwd_id = get_fwd_port_id(int(mapf[rtr][port])) inv_mapf[fwd_id] = "FWD-ENGINE" tfs = {} files_in_dir = os.listdir(args.data_path) for file_in_dir in files_in_dir: if file_in_dir.endswith(".tf.json"): tf = TF(1) tf.load_from_json("%s/%s"%(args.data_path,file_in_dir)) tfs[file_in_dir[0:-8]] = tf command = args.exe_path + "/" + args.network if (args.loop): command = command + " -loop" if (args.in_header): header = make_header(args.in_header) command = command + " -h " + header.__str__(0) src_id = mapf[args.source[0]][args.source[1]] if (args.one_hop): if not args.destination: sys.exit("Error: you need to specify a destination using -d argument.")
f = open("%s/%s" % (args.data_path, args.map_file), 'r') mapf = json.load(f) mapf_extended = copy.deepcopy(mapf) inv_mapf = {} for rtr in mapf: for port in mapf[rtr]: inv_mapf[int(mapf[rtr][port])] = "%s-%s" % (rtr, port) inv_mapf[int(mapf[rtr][port]) + OUTPORT_CONST] = "%s-%s" % (rtr, port) inv_mapf[int(mapf[rtr][port]) + INTER_CONST] = "^%s-%s" % (rtr, port) mapf_extended[rtr]["^%s" % port] = mapf[rtr][port] + INTER_CONST fwd_id = get_fwd_port_id(int(mapf[rtr][port])) inv_mapf[fwd_id] = "FWD-ENGINE" mapf_extended[rtr]["^"] = fwd_id f = TF(1) f.load_from_json("%s/%s.tf.json" % (args.data_path, args.rtr_name)) print "Modifying transfer function of router ", args.rtr_name if args.view: stage = args.view[0] i = 1 for rule in f.rules: if stage == get_stage(rule): print i, ":", get_openflow_rule(rule, inv_mapf) i = i + 1 if args.rm: indices = args.rm[0].split(",") indices = [int(i) for i in indices] indices.sort(reverse=True) for index in indices: f.remove_rule(index - 1)