def __init__(self, args, kwargs): self.add_calls = 0 self.results_folder = args.results_folder self.disjoint_enabled = args.disjoint_enabled self.default_enabled = args.default_enabled self.integrate_enabled = args.integrate_enabled self.multitable_enabled = args.multitable_enabled self.ragel_enabled = args.ragel_enabled self.partition_enabled = args.partition_enabled self.switch_cnt = args.switch_cnt self.cache_enabled = args.cache_enabled self.edge_contraction_enabled = args.edge_contraction_enabled self.preddecomp_enabled = args.preddecomp_enabled self.use_pyretic = args.use_pyretic if args.write_log: self.write_log = args.write_log else: self.write_log = os.path.join('pyretic/evaluations', self.results_folder, 'rt_log.txt') self.use_fdd = args.use_fdd opt_flags = (self.disjoint_enabled, self.default_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled, self.partition_enabled, self.switch_cnt, self.cache_enabled, self.edge_contraction_enabled, self.preddecomp_enabled) """ Start the frenetic compiler-server """ netkat_out = None if not self.use_pyretic: netkat_cmd = "bash ~/pyretic/start-frenetic.sh" try: netkat_out = subprocess.Popen(netkat_cmd, shell=True, stderr=subprocess.STDOUT) except Exception as e: print "Could not start frenetic server successfully." print e sys.exit(1) Stat.start(self.results_folder, (self.disjoint_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled)) self.runtime = Runtime(None, eval_path.main, eval_path.path_main, kwargs, opt_flags=opt_flags, mode='proactive0', use_pyretic=self.use_pyretic, use_fdd=self.use_fdd, offline=True, write_log=self.write_log, restart_frenetic=False) Stat.stop() if netkat_out: netkat_out.kill() self.kill_netkat_server()
def main(): global of_client (op, options, args, kwargs_to_pass) = parseArgs() if options.mode == 'i': options.mode = 'interpreted' elif options.mode == 'r0': options.mode = 'reactive0' try: module_name = args[0] except IndexError: print 'Module must be specified' print '' op.print_usage() sys.exit(1) try: module = import_module(module_name) except ImportError: print 'Must be a valid python module' print 'e.g, full module name,' print ' no .py suffix,' print ' located on the system PYTHONPATH' print '' op.print_usage() sys.exit(1) main = module.main kwargs = { k: v for [k, v] in [i.lstrip('--').split('=') for i in kwargs_to_pass] } sys.setrecursionlimit( 1500) #INCREASE THIS IF "maximum recursion depth exceeded" runtime = Runtime(Backend(), main, kwargs, options.mode, options.verbosity, False, False) if not options.frontend_only: try: output = subprocess.check_output('echo $PYTHONPATH', shell=True).strip() except: print 'Error: Unable to obtain PYTHONPATH' sys.exit(1) poxpath = None for p in output.split(':'): if re.match('.*pox/?$', p): poxpath = os.path.abspath(p) break if poxpath is None: print 'Error: pox not found in PYTHONPATH' sys.exit(1) pox_exec = os.path.join(poxpath, 'pox.py') python = sys.executable of_client = subprocess.Popen( [python, pox_exec, 'of_client.pox_client'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) signal.signal(signal.SIGINT, signal_handler) signal.pause()
def __init__(self, args, kwargs): self.add_calls = 0 self.results_folder = args.results_folder self.disjoint_enabled = args.disjoint_enabled self.default_enabled = args.default_enabled self.integrate_enabled = args.integrate_enabled self.multitable_enabled = args.multitable_enabled self.ragel_enabled = args.ragel_enabled self.partition_enabled = args.partition_enabled self.switch_cnt = args.switch_cnt self.cache_enabled = args.cache_enabled self.edge_contraction_enabled = args.edge_contraction_enabled self.preddecomp_enabled = args.preddecomp_enabled self.use_pyretic = args.use_pyretic if args.write_log: self.write_log = args.write_log else: self.write_log = os.path.join('pyretic/evaluations', self.results_folder, 'rt_log.txt') self.use_fdd = args.use_fdd opt_flags = (self.disjoint_enabled, self.default_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled, self.partition_enabled, self.switch_cnt, self.cache_enabled, self.edge_contraction_enabled, self.preddecomp_enabled ) """ Start the frenetic compiler-server """ netkat_out = None if not self.use_pyretic: netkat_cmd = "bash ~/pyretic/start-frenetic.sh" try: netkat_out = subprocess.Popen(netkat_cmd, shell=True, stderr=subprocess.STDOUT) except Exception as e: print "Could not start frenetic server successfully." print e sys.exit(1) Stat.start(self.results_folder, (self.disjoint_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled)) self.runtime = Runtime(None, eval_path.main, eval_path.path_main, kwargs, opt_flags = opt_flags, mode = 'proactive0', use_pyretic = self.use_pyretic, use_fdd = self.use_fdd, offline=True, write_log = self.write_log, restart_frenetic = False) Stat.stop() if netkat_out: netkat_out.kill() self.kill_netkat_server()
def __init__(self, args, kwargs): self.add_calls = 0 self.results_folder = args.results_folder self.disjoint_enabled = args.disjoint_enabled self.default_enabled = args.default_enabled self.integrate_enabled = args.integrate_enabled self.multitable_enabled = args.multitable_enabled self.ragel_enabled = args.ragel_enabled self.partition_enabled = args.partition_enabled self.switch_cnt = args.switch_cnt self.cache_enabled = args.cache_enabled self.edge_contraction_enabled = args.edge_contraction_enabled self.use_pyretic = args.use_pyretic opt_flags = (self.disjoint_enabled, self.default_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled, self.partition_enabled, self.switch_cnt, self.cache_enabled, self.edge_contraction_enabled, ) """ Start the frenetic compiler-server """ if not self.use_pyretic: netkat_cmd = "bash start-frenetic.sh" try: output = subprocess.Popen(netkat_cmd, shell=True, stderr=subprocess.STDOUT) except Exception as e: print "Could not start frenetic server successfully." print e sys.exit(1) Stat.start(self.results_folder, (self.disjoint_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled)) self.runtime = Runtime(None, eval_path.main, eval_path.path_main, kwargs, opt_flags = opt_flags, mode = 'proactive0', use_pyretic = self.use_pyretic, offline=True) Stat.stop()
class eval_compilation: def __init__(self, args, kwargs): self.add_calls = 0 self.results_folder = args.results_folder self.disjoint_enabled = args.disjoint_enabled self.default_enabled = args.default_enabled self.integrate_enabled = args.integrate_enabled self.multitable_enabled = args.multitable_enabled self.ragel_enabled = args.ragel_enabled self.partition_enabled = args.partition_enabled self.switch_cnt = args.switch_cnt self.cache_enabled = args.cache_enabled self.edge_contraction_enabled = args.edge_contraction_enabled self.preddecomp_enabled = args.preddecomp_enabled self.use_pyretic = args.use_pyretic if args.write_log: self.write_log = args.write_log else: self.write_log = os.path.join('pyretic/evaluations', self.results_folder, 'rt_log.txt') self.use_fdd = args.use_fdd opt_flags = (self.disjoint_enabled, self.default_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled, self.partition_enabled, self.switch_cnt, self.cache_enabled, self.edge_contraction_enabled, self.preddecomp_enabled) """ Start the frenetic compiler-server """ netkat_out = None if not self.use_pyretic: netkat_cmd = "bash ~/pyretic/start-frenetic.sh" try: netkat_out = subprocess.Popen(netkat_cmd, shell=True, stderr=subprocess.STDOUT) except Exception as e: print "Could not start frenetic server successfully." print e sys.exit(1) Stat.start(self.results_folder, (self.disjoint_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled)) self.runtime = Runtime(None, eval_path.main, eval_path.path_main, kwargs, opt_flags=opt_flags, mode='proactive0', use_pyretic=self.use_pyretic, use_fdd=self.use_fdd, offline=True, write_log=self.write_log, restart_frenetic=False) Stat.stop() if netkat_out: netkat_out.kill() self.kill_netkat_server() def kill_netkat_server(self): print "Killing frenetic.." kill_cmd = "sudo bash kill-frenetic.sh" try: netkat_out = subprocess.check_output(shlex.split(kill_cmd)) except Exception as e: print "Could not kill the frenetic server." print e sys.exit(1) def recompile_paths(self): """ Recompile DFA based on new path policy, which in turns updates the runtime's policy member. """ policy_fragments = pathcomp.add_query( self.path_policy, NUM_PATH_TAGS, self.disjoint_enabled, self.default_enabled, self.multitable_enabled and self.integrate_enabled, self.ragel_enabled, self.partition_enabled) if self.multitable_enabled and self.integrate_enabled: (self.runtime.path_in_table.policy, self.runtime.path_out_table.policy) = policy_fragments else: (in_tag, in_cap, out_tag, out_cap) = policy_fragments self.runtime.path_in_tagging.policy = in_tag self.runtime.path_in_capture.policy = in_cap self.runtime.path_out_tagging.policy = out_tag self.runtime.path_out_capture.policy = out_cap self.runtime.path_in_table.policy = in_tag + in_cap self.runtime.path_out_table.policy = out_tag + out_cap def add(self, **aparams): self.path_policy = eval_path.path_main(**aparams) self.add_calls += 1 results_folder = "%s_%d" % (self.results_folder[:-1], self.add_calls) Stat.start(results_folder, (self.disjoint_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled)) self.recompile_paths() self.runtime.get_subpolicy_compile_stats(eval_path.path_main) Stat.stop() def get_vf_tagging_policy(self): return None def get_vf_untagging_policy(self): return None
stderr=subprocess.STDOUT) except Exception as e: print "Could not start frenetic server successfully." print e sys.exit(1) """ Start the runtime. """ opt_flags_arg = (options.disjoint_enabled, options.default_enabled, options.integrate_enabled, options.multitable_enabled, options.ragel_enabled, options.partition_enabled, options.switch_cnt, options.cache_enabled, options.edge_contraction_enabled) runtime = Runtime(Backend(), main, path_main, kwargs, mode=options.mode, verbosity=options.verbosity, opt_flags=opt_flags_arg, use_nx=options.nx, pipeline=options.pipeline, use_pyretic=options.use_pyretic) """ Start pox backend. """ if not options.frontend_only: try: output = subprocess.check_output('echo $PYTHONPATH', shell=True).strip() except: print 'Error: Unable to obtain PYTHONPATH' sys.exit(1) poxpath = None for p in output.split(':'): if re.match('.*pox/?$', p):
class eval_compilation: def __init__(self, args, kwargs): self.add_calls = 0 self.results_folder = args.results_folder self.disjoint_enabled = args.disjoint_enabled self.default_enabled = args.default_enabled self.integrate_enabled = args.integrate_enabled self.multitable_enabled = args.multitable_enabled self.ragel_enabled = args.ragel_enabled self.partition_enabled = args.partition_enabled self.switch_cnt = args.switch_cnt self.cache_enabled = args.cache_enabled self.edge_contraction_enabled = args.edge_contraction_enabled self.preddecomp_enabled = args.preddecomp_enabled self.use_pyretic = args.use_pyretic if args.write_log: self.write_log = args.write_log else: self.write_log = os.path.join('pyretic/evaluations', self.results_folder, 'rt_log.txt') self.use_fdd = args.use_fdd opt_flags = (self.disjoint_enabled, self.default_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled, self.partition_enabled, self.switch_cnt, self.cache_enabled, self.edge_contraction_enabled, self.preddecomp_enabled ) """ Start the frenetic compiler-server """ netkat_out = None if not self.use_pyretic: netkat_cmd = "bash ~/pyretic/start-frenetic.sh" try: netkat_out = subprocess.Popen(netkat_cmd, shell=True, stderr=subprocess.STDOUT) except Exception as e: print "Could not start frenetic server successfully." print e sys.exit(1) Stat.start(self.results_folder, (self.disjoint_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled)) self.runtime = Runtime(None, eval_path.main, eval_path.path_main, kwargs, opt_flags = opt_flags, mode = 'proactive0', use_pyretic = self.use_pyretic, use_fdd = self.use_fdd, offline=True, write_log = self.write_log, restart_frenetic = False) Stat.stop() if netkat_out: netkat_out.kill() self.kill_netkat_server() def kill_netkat_server(self): print "Killing frenetic.." kill_cmd = "sudo bash kill-frenetic.sh" try: netkat_out = subprocess.check_output(shlex.split(kill_cmd)) except Exception as e: print "Could not kill the frenetic server." print e sys.exit(1) def recompile_paths(self): """ Recompile DFA based on new path policy, which in turns updates the runtime's policy member. """ policy_fragments = pathcomp.add_query(self.path_policy, NUM_PATH_TAGS, self.disjoint_enabled, self.default_enabled, self.multitable_enabled and self.integrate_enabled, self.ragel_enabled, self.partition_enabled) if self.multitable_enabled and self.integrate_enabled: (self.runtime.path_in_table.policy, self.runtime.path_out_table.policy) = policy_fragments else: (in_tag, in_cap, out_tag, out_cap) = policy_fragments self.runtime.path_in_tagging.policy = in_tag self.runtime.path_in_capture.policy = in_cap self.runtime.path_out_tagging.policy = out_tag self.runtime.path_out_capture.policy = out_cap self.runtime.path_in_table.policy = in_tag + in_cap self.runtime.path_out_table.policy = out_tag + out_cap def add(self, **aparams): self.path_policy = eval_path.path_main(**aparams) self.add_calls += 1 results_folder = "%s_%d" % (self.results_folder[:-1], self.add_calls) Stat.start(results_folder, (self.disjoint_enabled, self.integrate_enabled, self.multitable_enabled, self.ragel_enabled)) self.recompile_paths() self.runtime.get_subpolicy_compile_stats(eval_path.path_main) Stat.stop() def get_vf_tagging_policy(self): return None def get_vf_untagging_policy(self): return None
print "\nkilling log" import sys sys.exit(0) logger.handle(to_log) log_level = verbosity_map.get(options.verbosity, logging.DEBUG) log_process = Process(target=log_writer,args=(logging_queue, log_level,)) log_process.daemon = True log_process.start() # Set default handler. logger = logging.getLogger() handler = util.QueueStreamHandler(logging_queue) logger.addHandler(handler) logger.setLevel(log_level) runtime = Runtime(Backend(),main,path_main,kwargs,options.mode,options.verbosity) if not options.frontend_only: try: output = subprocess.check_output('echo $PYTHONPATH',shell=True).strip() except: print 'Error: Unable to obtain PYTHONPATH' sys.exit(1) poxpath = None for p in output.split(':'): if re.match('.*pox/?$',p): poxpath = os.path.abspath(p) break if poxpath is None: print 'Error: pox not found in PYTHONPATH' sys.exit(1) pox_exec = os.path.join(poxpath,'pox.py')
except ImportError, e: print 'Must be a valid python module' print 'e.g, full module name,' print ' no .py suffix,' print ' located on the system PYTHONPATH' print '' print 'Exception message for ImportError was:' print e sys.exit(1) main = module.main kwargs = { k : v for [k,v] in [ i.lstrip('--').split('=') for i in kwargs_to_pass ]} sys.setrecursionlimit(1500) #INCREASE THIS IF "maximum recursion depth exceeded" runtime = Runtime(Backend(),main,kwargs,options.mode,options.verbosity,False,False) if not options.frontend_only: try: output = subprocess.check_output('echo $PYTHONPATH',shell=True).strip() except: print 'Error: Unable to obtain PYTHONPATH' sys.exit(1) poxpath = None for p in output.split(':'): if re.match('.*pox/?$',p): poxpath = os.path.abspath(p) break if poxpath is None: print 'Error: pox not found in PYTHONPATH' sys.exit(1) pox_exec = os.path.join(poxpath,'pox.py')