Esempio n. 1
0
    dataplane_trace=None,
    snapshot_service=None,
    multiplex_sockets=False,
    violation_persistence_threshold=None,
    kill_controllers_on_exit=True,
    interpose_on_controllers=False,
    ignore_interposition=False,
    hb_logger_class=HappensBeforeLogger,
    hb_logger_params=results_dir,
    apps=apps)

# Manual, interactive mode
# control_flow = Interactive(simulation_config, input_logger=InputLogger())

control_flow = Fuzzer(
    simulation_config,
    input_logger=InputLogger(),
    initialization_rounds=20,
    send_all_to_all=
    True,  # needs to be True otherwise circuitpusher will throw errors.
    check_interval=10,
    delay=0.1,
    halt_on_violation=True,
    send_init_packets=False,
    steps=steps,  # if no circuits are installed, increase this number.
    #                       invariant_check_name="check_everything",
    invariant_check_name="InvariantChecker.check_liveness",
    apps=apps)
raise RuntimeError(
    "Please add this parameter to Fuzzer: fuzzer_params='paper/trace_floodlight_circuitpusher-StarTopology4-steps200/fuzzer_params.py'"
)
Esempio n. 2
0
    controller_patch_panel_class=UserSpaceControllerPatchPanel,
    dataplane_trace=None,
    snapshot_service=None,
    multiplex_sockets=False,
    violation_persistence_threshold=None,
    kill_controllers_on_exit=True,
    interpose_on_controllers=False,
    ignore_interposition=False,
    hb_logger_class=HappensBeforeLogger,
    hb_logger_params=results_dir,
    apps=apps)

# Manual, interactive mode
# control_flow = Interactive(simulation_config, input_logger=InputLogger())

control_flow = Fuzzer(
    simulation_config,
    input_logger=InputLogger(),
    initialization_rounds=100,
    send_all_to_all=False,
    check_interval=10,
    delay=0.1,
    halt_on_violation=True,
    send_init_packets=False,
    steps=steps,
    #                       invariant_check_name="check_everything",
    invariant_check_name="InvariantChecker.check_liveness",
    apps=apps)
raise RuntimeError(
    "Please add this parameter to Fuzzer: fuzzer_params='traces/trace_pox_eel_l2_multi_fixed-MeshTopology2-steps200/fuzzer_params.py'"
)
Esempio n. 3
0
from config.experiment_config_lib import ControllerConfig
from sts.topology import MeshTopology
from sts.control_flow.fuzzer import Fuzzer
from sts.input_traces.input_logger import InputLogger
from sts.simulation_state import SimulationConfig

# Use POX as our controller
start_cmd = ('''./pox.py samples.buggy '''
             '''openflow.of_01 --address=__address__ --port=__port__''')
controllers = [ControllerConfig(start_cmd, cwd="pox/")]

topology_class = MeshTopology
topology_params = "num_switches=2"

simulation_config = SimulationConfig(controller_configs=controllers,
                                     topology_class=topology_class,
                                     topology_params=topology_params)

control_flow = Fuzzer(simulation_config,
                      input_logger=InputLogger(),
                      invariant_check_name="InvariantChecker.check_liveness",
                      check_interval=5,
                      halt_on_violation=True)
Esempio n. 4
0
    'branch' : backtick("git rev-parse --abbrev-ref HEAD", cwd="old_pox")
  }


# Use POX as our controller
command_line = ('''./pox.py --verbose '''
                '''sts.syncproto.pox_syncer --blocking=False '''
                '''openflow.discovery forwarding.l2_multi '''
                '''sts.util.socket_mux.pox_monkeypatcher '''
                '''openflow.of_01 --address=__address__ --port=__port__''')
controllers = [ControllerConfig(command_line, cwd="old_pox", sync="tcp:localhost:18899")]
topology_class = MeshTopology
topology_params = "num_switches=2"
dataplane_trace = "experiments/debug_branch_loop/dataplane.trace"

simulation_config = SimulationConfig(controller_configs=controllers,
                                     topology_class=topology_class,
                                     topology_params=topology_params,
                                     dataplane_trace=dataplane_trace,
                                     violation_persistence_threshold=20,
                                     multiplex_sockets=True)

control_flow = Fuzzer(simulation_config, check_interval=3,
                      halt_on_violation=True,
                      input_logger=InputLogger(),
                      invariant_check_name="check_for_blackholes_or_connectivity",
                      #steps=141,
                      #random_seed=466448715
                      )

raise RuntimeError("Please add this parameter to Fuzzer: fuzzer_params='experiments/retrigger_debug_branch_loop/fuzzer_params.py'")
Esempio n. 5
0
except ImportError as e:
  try:
    # module path might not have been specified. Try again with path prepended
    config = __import__("config.%s" % args.config, globals(), locals(), ["*"])
  except ImportError:
    raise e

# Set up the experiment results directories
experiment_setup.setup_experiment(args, config)

# Simulator controls the simulation
if hasattr(config, 'control_flow'):
  simulator = config.control_flow
else:
  # We default to a Fuzzer
  simulator = Fuzzer(SimulationConfig())

# Set an interrupt handler
def handle_int(signal, frame):
  import os
  from sts.util.rpc_forker import LocalForker
  sys.stderr.write("Caught signal %d, stopping sdndebug (pid %d)\n" %
                    (signal, os.getpid()))
  if (simulator.simulation_cfg.current_simulation is not None):
    simulator.simulation_cfg.current_simulation.clean_up()
  # kill fork()ed procs
  LocalForker.kill_all()
  sys.exit(13)

signal.signal(signal.SIGINT, handle_int)
signal.signal(signal.SIGTERM, handle_int)
Esempio n. 6
0
topology_params = "num_switches=2"


setup()

simulation_config = SimulationConfig(controller_configs=controllers,
                                     topology_class=topology_class,
                                     topology_params=topology_params,
                                     #violation_persistence_threshold=1,
                                     kill_controllers_on_exit=False,
                                     bug_file="/mnt/ahassany/vagrant_onosdev/ONOS/BUG_TRIGGERED")


'''
control_flow = Interactive(simulation_config, input_logger=InputLogger(),
                           pass_through_of_messages=True, default_dp_permit=True)
'''

control_flow = Fuzzer(simulation_config, check_interval=5,
                      halt_on_violation=True,
                      input_logger=InputLogger(),
                      #steps=100,
                      delay=3.0,
                      initialization_rounds=2,
                      invariant_check_name="check_for_file")
                      #invariant_check_name="check_for_flow_entry")
                      #invariant_check_name="InvariantChecker.check_connectivity")
                      #invariant_check_name="check_everything")


raise RuntimeError("Please add this parameter to Fuzzer: fuzzer_params='experiments/onos_id_bug_fixed_ids_file/fuzzer_params.py'")
Esempio n. 7
0
        'commit': backtick("git rev-parse HEAD", cwd=path),
        'branch': backtick("git rev-parse --abbrev-ref HEAD", cwd=path),
        'remote': backtick("git remote show origin", cwd=path),
    }


# Use NOX as our controller
start_cmd = "./nox_core -v -i ptcp:6633 sample_routing"
controllers = [
    ControllerConfig(start_cmd,
                     cwd="nox_classic/build/src",
                     address="127.0.0.1",
                     port=6633)
]

topology_class = MeshTopology
topology_params = "num_switches=4"
dataplane_trace = "dataplane_traces/ping_pong_same_subnet_4_switches.trace"

simulation_config = SimulationConfig(controller_configs=controllers,
                                     topology_class=topology_class,
                                     topology_params=topology_params,
                                     dataplane_trace=dataplane_trace)

# Use a Fuzzer (already the default)
control_flow = Fuzzer(
    simulation_config,
    input_logger=InputLogger(),
    check_interval=80,
    invariant_check_name="InvariantChecker.python_check_connectivity")
Esempio n. 8
0
topology_params = "num_switches=2"

setup()

simulation_config = SimulationConfig(
    controller_configs=controllers,
    topology_class=topology_class,
    topology_params=topology_params,
    #violation_persistence_threshold=1,
    kill_controllers_on_exit=False)
'''
control_flow = Interactive(simulation_config, input_logger=InputLogger(),
                           pass_through_of_messages=True, default_dp_permit=True)
'''

control_flow = Fuzzer(
    simulation_config,
    check_interval=50,
    halt_on_violation=True,
    input_logger=InputLogger(),
    #steps=100,
    delay=3.0,
    initialization_rounds=20,
    invariant_check_name="InvariantChecker.check_liveness")
#invariant_check_name="check_for_flow_entry")
#invariant_check_name="InvariantChecker.check_connectivity")
#invariant_check_name="check_everything")

raise RuntimeError(
    "Please add this parameter to Fuzzer: fuzzer_params='experiments/onos_id_bug_wride_cid_no_traffic/fuzzer_params.py'"
)
Esempio n. 9
0
# Use POX as our controller
start_cmd = (
    '''./pox.py --verbose '''
    #'''sts.syncproto.pox_syncer --blocking=False '''
    '''openflow.discovery forwarding.l2_multi_broken_floyd '''
    '''sts.util.socket_mux.pox_monkeypatcher '''
    '''openflow.of_01 --address=__address__ --port=7777''')

controllers = [ControllerConfig(start_cmd, cwd="pox", port=7777)]
topology_class = MeshTopology
topology_params = "num_switches=3"

simulation_config = SimulationConfig(controller_configs=controllers,
                                     topology_class=topology_class,
                                     topology_params=topology_params,
                                     multiplex_sockets=True,
                                     ignore_interposition=True)

control_flow = Fuzzer(
    simulation_config,
    check_interval=1,
    halt_on_violation=True,
    input_logger=InputLogger(),
    initialization_rounds=70,
    fuzzer_params='experiments/pox_broken_floyd/fuzzer_params.py',
    invariant_check_name="InvariantChecker.python_check_loops")

raise RuntimeError(
    "Please add this parameter to Fuzzer: fuzzer_params='experiments/pox_broken_floyd_updated/fuzzer_params.py'"
)
Esempio n. 10
0
    return {
        'commit': backtick("git rev-parse HEAD", cwd=path),
        'branch': backtick("git rev-parse --abbrev-ref HEAD", cwd=path),
        'remote': backtick("git remote show origin", cwd=path),
    }


# Use POX as our controller
start_cmd = (
    '''./pox.py --verbose --unthreaded-sh '''
    '''sts.util.socket_mux.pox_monkeypatcher  '''
    # --snapshot_address=/Users/cs/Research/UCB/code/sts/snapshot_socket'''
    #'''sts.syncproto.pox_syncer --blocking=False '''
    '''openflow.discovery forwarding.topo_proactive '''
    '''openflow.of_01 --address=__address__ --port=__port__''')

controllers = [ControllerConfig(start_cmd, cwd="dart_pox")]
topology_class = FatTree
topology_params = "num_pods=3,use_portland_addressing=False"

simulation_config = SimulationConfig(controller_configs=controllers,
                                     topology_class=topology_class,
                                     multiplex_sockets=True,
                                     topology_params=topology_params)

control_flow = Fuzzer(simulation_config,
                      check_interval=1,
                      halt_on_violation=True,
                      input_logger=InputLogger(),
                      invariant_check_name="check_everything")
Esempio n. 11
0
    try:
        # module path might not have been specified. Try again with path prepended
        config = __import__("config.%s" % args.config, globals(), locals(),
                            ["*"])
    except ImportError:
        raise e

# Set up the experiment results directories
experiment_setup.setup_experiment(args, config)

# Simulator controls the simulation
if hasattr(config, 'control_flow'):
    simulator = config.control_flow
else:
    # We default to a Fuzzer
    simulator = Fuzzer(SimulationConfig())


# Set an interrupt handler
def handle_int(signal, frame):
    import os
    from sts.util.rpc_forker import LocalForker
    sys.stderr.write("Caught signal %d, stopping sdndebug (pid %d)\n" %
                     (signal, os.getpid()))
    if (simulator.simulation_cfg.current_simulation is not None):
        simulator.simulation_cfg.current_simulation.clean_up()
    # kill fork()ed procs
    LocalForker.kill_all()
    sys.exit(13)