Ejemplo n.º 1
0
  def find_internal_events(self, replay_dag, wait_time_seconds):
    ''' Replay the replay_dag, then wait for wait_time_seconds and collect internal
        events that occur. Return the list of internal events. '''
    replayer = Replayer(self.simulation_cfg, replay_dag)
    log.debug("Replaying prefix")
    simulation = replayer.simulate()

    # Directly after the last input has been injected, flush the internal
    # event buffers in case there were unaccounted internal events
    # Note that there isn't a race condition between flush()'ing and
    # incoming internal events, since sts is single-threaded
    # TODO(cs): flush() is not longer needed!
    simulation.god_scheduler.flush()
    simulation.controller_sync_callback.flush()

    # Now set all internal event buffers (GodScheduler for
    # ControlMessageReceives and ReplaySyncCallback for state changes)
    # to "pass through + record"
    simulation.set_pass_through()

    # Note that this is the monkey patched version of time.sleep
    log.debug("peek()'ing for %f seconds" % wait_time_seconds)
    time.sleep(wait_time_seconds)

    # Now turn off those pass-through and grab the inferred events
    newly_inferred_events = simulation.unset_pass_through()
    simulation.clean_up()
    return newly_inferred_events
Ejemplo n.º 2
0
    def find_internal_events(self, replay_dag, wait_time_seconds):
        """ Replay the replay_dag, then wait for wait_time_seconds and collect internal
        events that occur. Return the list of internal events. """
        replayer = Replayer(self.simulation_cfg, replay_dag)
        log.debug("Replaying prefix")
        simulation = replayer.simulate()

        # Directly after the last input has been injected, flush the internal
        # event buffers in case there were unaccounted internal events
        # Note that there isn't a race condition between flush()'ing and
        # incoming internal events, since sts is single-threaded
        # TODO(cs): flush() is not longer needed!
        simulation.god_scheduler.flush()
        simulation.controller_sync_callback.flush()

        # Now set all internal event buffers (GodScheduler for
        # ControlMessageReceives and ReplaySyncCallback for state changes)
        # to "pass through + record"
        simulation.set_pass_through()

        # Note that this is the monkey patched version of time.sleep
        log.debug("peek()'ing for %f seconds" % wait_time_seconds)
        time.sleep(wait_time_seconds)

        # Now turn off those pass-through and grab the inferred events
        newly_inferred_events = simulation.unset_pass_through()
        simulation.clean_up()
        return newly_inferred_events
Ejemplo n.º 3
0
 def find_internal_events(self, replay_dag, inject_input, wait_time_seconds):
   ''' Replay the replay_dag, then wait for wait_time_seconds and collect internal
       events that occur. Return the list of internal events. '''
   replayer = Replayer(self.simulation_cfg, replay_dag)
   log.debug("Replaying prefix")
   simulation = replayer.simulate()
   newly_inferred_events = play_forward(simulation, inject_input, wait_time_seconds)
   return newly_inferred_events
Ejemplo n.º 4
0
 def find_internal_events(self, replay_dag, inject_input, wait_time_seconds):
   ''' Replay the replay_dag, then wait for wait_time_seconds and collect internal
       events that occur. Return the list of internal events. '''
   replayer = Replayer(self.simulation_cfg, replay_dag)
   log.debug("Replaying prefix")
   simulation = replayer.simulate()
   newly_inferred_events = play_forward(simulation, inject_input, wait_time_seconds)
   return newly_inferred_events
Ejemplo n.º 5
0
        def play_forward(results_dir, subsequence_id):
            # TODO(cs): need to serialize the parameters to Replayer rather than
            # wrapping them in a closure... otherwise, can't use RemoteForker
            # TODO(aw): MCSFinder needs to configure Simulation to always let DataplaneEvents pass through
            create_clean_python_dir(results_dir)

            # Copy stdout and stderr to a file "replay.out"
            tee = Tee(open(os.path.join(results_dir, "replay.out"), "w"))
            tee.tee_stdout()
            tee.tee_stderr()

            # Set up replayer.
            input_logger = InputLogger()
            replayer = Replayer(
                self.simulation_cfg,
                new_dag,
                wait_on_deterministic_values=self.wait_on_deterministic_values,
                input_logger=input_logger,
                allow_unexpected_messages=False,
                pass_through_whitelisted_messages=True,
                delay_flow_mods=self.delay_flow_mods,
                **self.kwargs)
            replayer.init_results(results_dir)
            self._runtime_stats = RuntimeStats(subsequence_id)
            violations = []
            simulation = None
            try:
                simulation = replayer.simulate()
                self._track_new_internal_events(simulation, replayer)
                # Wait a bit in case the bug takes awhile to happen
                self.log("Sleeping %d seconds after run" %
                         self.end_wait_seconds)
                time.sleep(self.end_wait_seconds)
                violations = self.invariant_check(simulation)
                if violations != []:
                    input_logger.log_input_event(
                        InvariantViolation(violations))
            except SystemExit:
                # One of the invariant checks bailed early. Oddly, this is not an
                # error for us, it just means that there were no violations...
                # [this logic is arguably broken]
                # Return no violations, and let Forker handle system exit for us.
                violations = []
            finally:
                input_logger.close(replayer,
                                   self.simulation_cfg,
                                   skip_mcs_cfg=True)
                if simulation is not None:
                    simulation.clean_up()
                tee.close()
            if self.strict_assertion_checking:
                test_serialize_response(violations,
                                        self._runtime_stats.client_dict())
            timed_out_internal = [
                e.label for e in new_dag.events if e.timed_out
            ]
            return (violations, self._runtime_stats.client_dict(),
                    timed_out_internal)
Ejemplo n.º 6
0
 def test_controller_crash(self):
     simulation = None
     try:
         self.write_controller_crash_superlog()
         simulation_cfg = self.setup_controller_simulation()
         replayer = Replayer(simulation_cfg, self.tmp_controller_superlog)
         simulation = replayer.simulate()
     finally:
         os.unlink(self.tmp_controller_superlog)
         if simulation is not None:
             simulation.clean_up()
Ejemplo n.º 7
0
 def test_basic(self):
     simulation = None
     try:
         self.write_simple_superlog()
         simulation_cfg = self.setup_simple_simulation()
         replayer = Replayer(simulation_cfg, self.tmp_basic_superlog)
         simulation = replayer.simulate()
     finally:
         os.unlink(self.tmp_basic_superlog)
         if simulation is not None:
             simulation.clean_up()
Ejemplo n.º 8
0
 def test_dataplane_injection(self):
     simulation = None
     try:
         self.write_dataplane_trace_superlog()
         simulation_cfg = self.setup_dataplane_simulation()
         replayer = Replayer(simulation_cfg, self.tmp_dataplane_superlog)
         simulation = replayer.simulate()
     finally:
         os.unlink(self.tmp_dataplane_superlog)
         if simulation is not None:
             simulation.clean_up()
Ejemplo n.º 9
0
  def replay(self, new_dag):
    # Run the simulation forward
    if self.transform_dag:
      new_dag = self.transform_dag(new_dag)

    # TODO(aw): MCSFinder needs to configure Simulation to always let DataplaneEvents pass through
    replayer = Replayer(self.simulation_cfg, new_dag, **self.kwargs)
    simulation = replayer.simulate()
    # Wait a bit in case the bug takes awhile to happen
    time.sleep(self.end_wait_seconds)
    violations = self.invariant_check(simulation)
    simulation.clean_up()
    return violations
Ejemplo n.º 10
0
    def play_forward(results_dir, subsequence_id):
      # TODO(cs): need to serialize the parameters to Replayer rather than
      # wrapping them in a closure... otherwise, can't use RemoteForker
      # TODO(aw): MCSFinder needs to configure Simulation to always let DataplaneEvents pass through
      create_clean_python_dir(results_dir)

      # Copy stdout and stderr to a file "replay.out"
      tee = Tee(open(os.path.join(results_dir, "replay.out"), "w"))
      tee.tee_stdout()
      tee.tee_stderr()

      # Set up replayer.
      input_logger = InputLogger()
      replayer = Replayer(self.simulation_cfg, new_dag,
                          wait_on_deterministic_values=self.wait_on_deterministic_values,
                          input_logger=input_logger,
                          allow_unexpected_messages=False,
                          pass_through_whitelisted_messages=True,
                          delay_flow_mods=self.delay_flow_mods,
                          **self.kwargs)
      replayer.init_results(results_dir)
      self._runtime_stats = RuntimeStats(subsequence_id)
      violations = []
      simulation = None
      try:
        simulation = replayer.simulate()
        self._track_new_internal_events(simulation, replayer)
        # Wait a bit in case the bug takes awhile to happen
        self.log("Sleeping %d seconds after run" % self.end_wait_seconds)
        time.sleep(self.end_wait_seconds)
        violations = self.invariant_check(simulation)
        if violations != []:
          input_logger.log_input_event(InvariantViolation(violations))
      except SystemExit:
        # One of the invariant checks bailed early. Oddly, this is not an
        # error for us, it just means that there were no violations...
        # [this logic is arguably broken]
        # Return no violations, and let Forker handle system exit for us.
        violations = []
      finally:
        input_logger.close(replayer, self.simulation_cfg, skip_mcs_cfg=True)
        if simulation is not None:
          simulation.clean_up()
        tee.close()
      if self.strict_assertion_checking:
        test_serialize_response(violations, self._runtime_stats.client_dict())
      timed_out_internal = [ e.label for e in new_dag.events if e.timed_out ]
      return (violations, self._runtime_stats.client_dict(), timed_out_internal)
Ejemplo n.º 11
0
 def test_migration(self):
     simulation = None
     try:
         self.write_migration_superlog()
         simulation_cfg = self.setup_migration_simulation()
         replayer = Replayer(simulation_cfg, self.tmp_migration_superlog)
         simulation = replayer.simulate()
         latest_switch = simulation.topology.get_switch(7)
         latest_port = latest_switch.ports[101]
         (host, interface) = simulation.topology.get_connected_port(
             latest_switch, latest_port)
         self.assertTrue(type(host) == Host)
     finally:
         os.unlink(self.tmp_migration_superlog)
         if simulation is not None:
             simulation.clean_up()
Ejemplo n.º 12
0
  def replay(self, new_dag):
    # Run the simulation forward
    if self.transform_dag:
      new_dag = self.transform_dag(new_dag)

    # TODO(aw): MCSFinder needs to configure Simulation to always let DataplaneEvents pass through
    replayer = Replayer(self.simulation_cfg, new_dag,
                        wait_on_deterministic_values=self.wait_on_deterministic_values,
                        **self.kwargs)
    simulation = replayer.simulate()
    self._track_new_internal_events(simulation, replayer)
    # Wait a bit in case the bug takes awhile to happen
    self.log("Sleeping %d seconds after run"  % self.end_wait_seconds)
    time.sleep(self.end_wait_seconds)
    violations = self.invariant_check(simulation)
    simulation.clean_up()
    return violations
Ejemplo n.º 13
0
 def replay_interval(self, simulation, dag_interval, initial_wait_seconds):
   assert(dag_interval.events != [])
   # TODO(cs): set EventScheduler's epsilon_seconds parameter?
   replayer = Replayer(self.simulation_cfg, dag_interval,
                       initial_wait=initial_wait_seconds,
                       **self.kwargs)
   replayer.simulation = simulation
   if 'pass_through_sends' in self.kwargs and self.kwargs['pass_through_sends']:
     replayer.set_pass_through_sends(simulation)
   replayer.run_simulation_forward()
Ejemplo n.º 14
0
    def play_forward(results_dir, subsequence_id):
      # TODO(cs): need to serialize the parameters to Replayer rather than
      # wrapping them in a closure... otherwise, can't use RemoteForker
      # TODO(aw): MCSFinder needs to configure Simulation to always let DataplaneEvents pass through
      create_clean_python_dir(results_dir)

      # Copy stdout and stderr to a file "replay.out"
      tee = Tee(open(os.path.join(results_dir, "replay.out"), "w"))
      tee.tee_stdout()
      tee.tee_stderr()

      # Set up replayer.
      input_logger = InputLogger()
      replayer = Replayer(self.simulation_cfg, new_dag,
                          input_logger=input_logger,
                          bug_signature=self.bug_signature,
                          invariant_check_name=self.invariant_check_name,
                          **self.kwargs)
      replayer.init_results(results_dir)
      self._runtime_stats = RuntimeStats(subsequence_id)
      simulation = None
      try:
        simulation = replayer.simulate()
        self._track_new_internal_events(simulation, replayer)
      except SystemExit:
        # One of the invariant checks bailed early. Oddly, this is not an
        # error for us, it just means that there were no violations...
        # [this logic is arguably broken]
        # Return no violations, and let Forker handle system exit for us.
        simulation.violation_found = False
      finally:
        input_logger.close(replayer, self.simulation_cfg, skip_mcs_cfg=True)
        if simulation is not None:
          simulation.clean_up()
        tee.close()
      if self.strict_assertion_checking:
        test_serialize_response(violations, self._runtime_stats.client_dict())
      timed_out_internal = [ e.label for e in new_dag.events if e.timed_out ]
      return (simulation.violation_found, self._runtime_stats.client_dict(), timed_out_internal)
Ejemplo n.º 15
0
    def play_forward(results_dir, subsequence_id):
      # TODO(cs): need to serialize the parameters to Replayer rather than
      # wrapping them in a closure... otherwise, can't use RemoteForker
      # TODO(aw): MCSFinder needs to configure Simulation to always let DataplaneEvents pass through
      create_clean_python_dir(results_dir)

      # Copy stdout and stderr to a file "replay.out"
      tee = Tee(open(os.path.join(results_dir, "replay.out"), "w"))
      tee.tee_stdout()
      tee.tee_stderr()

      # Set up replayer.
      input_logger = InputLogger()
      replayer = Replayer(self.simulation_cfg, new_dag,
                          input_logger=input_logger,
                          bug_signature=self.bug_signature,
                          invariant_check_name=self.invariant_check_name,
                          **self.kwargs)
      replayer.init_results(results_dir)
      self._runtime_stats = RuntimeStats(subsequence_id)
      simulation = None
      try:
        simulation = replayer.simulate()
        self._track_new_internal_events(simulation, replayer)
      except SystemExit:
        # One of the invariant checks bailed early. Oddly, this is not an
        # error for us, it just means that there were no violations...
        # [this logic is arguably broken]
        # Return no violations, and let Forker handle system exit for us.
        simulation.violation_found = False
      finally:
        input_logger.close(replayer, self.simulation_cfg, skip_mcs_cfg=True)
        if simulation is not None:
          simulation.clean_up()
        tee.close()
      if self.strict_assertion_checking:
        test_serialize_response(violations, self._runtime_stats.client_dict())
      timed_out_internal = [ e.label for e in new_dag.events if e.timed_out ]
      return (simulation.violation_found, self._runtime_stats.client_dict(), timed_out_internal)
Ejemplo n.º 16
0
  def find_internal_events(self, simulation, controller, dag_interval,
                           inject_input, wait_time_seconds):
    assert(dag_interval.events != [])
    initial_wait_seconds = (inject_input.time.as_float() -
                            dag_interval.events[-1].time.as_float())
    # TODO(cs): set EventScheduler's epsilon_seconds parameter?
    replayer = Replayer(self.simulation_cfg, dag_interval,
                        pass_through_whitelisted_messages=True,
                        default_dp_permit=self.default_dp_permit,
                        initial_wait=initial_wait_seconds)
    replayer.simulation = simulation
    if self.pass_through_sends:
      replayer.set_pass_through_sends(simulation)
    replayer.run_simulation_forward()

    # Now peek() for internal events following inject_input
    return self.snapshot_and_play_forward(simulation, controller,
                                          inject_input, wait_time_seconds)
Ejemplo n.º 17
0
                     cwd='/home/mininet/ONOS',
                     controller_type='onos',
                     kill_cmd='./start-onos.sh stop',
                     restart_cmd='./start-onos.sh stop'),
    ControllerConfig(start_cmd='./start-onos.sh start',
                     label='c2',
                     address='192.168.56.12',
                     cwd='/home/mininet/ONOS',
                     controller_type='onos',
                     kill_cmd='./start-onos.sh stop',
                     restart_cmd='./start-onos.sh stop')
],
                                     topology_class=MeshTopology,
                                     topology_params="num_switches=2",
                                     patch_panel_class=BufferedPatchPanel,
                                     multiplex_sockets=False,
                                     ignore_interposition=False,
                                     kill_controllers_on_exit=False)

control_flow = Replayer(
    simulation_config,
    "experiments/onos_id_bug_fixed_ids_no_traffic/events.trace",
    input_logger=InputLogger(),
    wait_on_deterministic_values=False,
    allow_unexpected_messages=False,
    delay_flow_mods=False,
    default_dp_permit=True,
    pass_through_whitelisted_messages=True,
    invariant_check_name='InvariantChecker.check_liveness',
    bug_signature="c1")
Ejemplo n.º 18
0
from sts.input_traces.input_logger import InputLogger

simulation_config = SimulationConfig(controller_configs=[
    ControllerConfig(
        start_cmd=
        './pox.py --verbose openflow.discovery forwarding.l2_multi_broken_floyd  sts.util.socket_mux.pox_monkeypatcher openflow.of_01 --address=__address__  --port=__port__',
        label='c1',
        address='127.0.0.1',
        cwd='pox')
],
                                     topology_class=MeshTopology,
                                     topology_params="num_switches=3",
                                     patch_panel_class=BufferedPatchPanel,
                                     multiplex_sockets=True,
                                     ignore_interposition=True,
                                     kill_controllers_on_exit=True)

control_flow = Replayer(
    simulation_config,
    "experiments/pox_broken_floyd_updated_mcs/intermcs_4_/mcs.trace.notimeouts",
    input_logger=InputLogger(),
    wait_on_deterministic_values=False,
    allow_unexpected_messages=False,
    delay_flow_mods=False,
    default_dp_permit=False,
    pass_through_whitelisted_messages=False,
    invariant_check_name='InvariantChecker.python_check_loops',
    bug_signature=
    "{'hs_history': [(x^L) - ([]), (dl_src:12:34:56:78:01:03,dl_dst:12:34:56:78:03:03,dl_vlan:65535,dl_vlan_pcp:0,dl_type:2048,nw_tos:0,nw_proto:1,nw_src:123.123.1.3/32,nw_dst:123.123.3.3/32,tp_src:0,tp_dst:0) - ([]), (dl_src:12:34:56:78:01:03,dl_dst:12:34:56:78:03:03,dl_vlan:65535,dl_vlan_pcp:0,dl_type:2048,nw_tos:0,nw_proto:1,nw_src:123.123.1.3/32,nw_dst:123.123.3.3/32,tp_src:0,tp_dst:0) - ([]), (dl_src:12:34:56:78:01:03,dl_dst:12:34:56:78:03:03,dl_vlan:65535,dl_vlan_pcp:0,dl_type:2048,nw_tos:0,nw_proto:1,nw_src:123.123.1.3/32,nw_dst:123.123.3.3/32,tp_src:0,tp_dst:0) - ([])], 'hdr': (dl_src:12:34:56:78:01:03,dl_dst:12:34:56:78:03:03,dl_vlan:65535,dl_vlan_pcp:0,dl_type:2048,nw_tos:0,nw_proto:1,nw_src:123.123.1.3/32,nw_dst:123.123.3.3/32,tp_src:0,tp_dst:0) - ([]), 'visits': [100003, 200002, 300001, 100001], 'port': 200002}"
)
Ejemplo n.º 19
0
from sts.simulation_state import SimulationConfig
from sts.input_traces.input_logger import InputLogger

simulation_config = SimulationConfig(controller_configs=[
    ControllerConfig(
        start_cmd=
        './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__',
        label='c1',
        address='127.0.0.1',
        cwd='old_pox',
        sync='tcp:localhost:18899')
],
                                     topology_class=MeshTopology,
                                     topology_params="num_switches=2",
                                     patch_panel_class=BufferedPatchPanel,
                                     multiplex_sockets=True,
                                     ignore_interposition=False,
                                     kill_controllers_on_exit=True)

control_flow = Replayer(
    simulation_config,
    "experiments/retrigger_debug_branch_loop/events.trace",
    input_logger=InputLogger(),
    wait_on_deterministic_values=False,
    allow_unexpected_messages=False,
    delay_flow_mods=False,
    default_dp_permit=False,
    pass_through_whitelisted_messages=False,
    invariant_check_name='check_for_blackholes_or_connectivity',
    bug_signature="")
Ejemplo n.º 20
0
  #cmd_exec.execute_command("echo 'sleeping for 10sec'; sleep 10")
  cmd_exec.execute_command("./scripts/conf_setup.sh 2;")
  cmd_exec.execute_command("zk start")
  cmd_exec.execute_command("cassandra  start")
  cmd_exec.execute_command("echo 'sleeping for 10sec'; sleep 10")
  cmd_exec.execute_command("cassandra cleandb;")
  cmd_exec.execute_command("echo 'sleeping for 10sec'; sleep 10")
  #cmd_exec.execute_command("onos start")
  #cmd_exec.execute_command("echo 'sleeping for 40sec'; sleep 40")

setup()


simulation_config = SimulationConfig(controller_configs=[ControllerConfig(start_cmd='./start-onos.sh start', label='c1', address='192.168.56.11', cwd='/home/mininet/ONOS', controller_type='onos', kill_cmd='./start-onos.sh stop', restart_cmd='./start-onos.sh stop'), ControllerConfig(start_cmd='./start-onos.sh start', label='c2', address='192.168.56.12', cwd='/home/mininet/ONOS', controller_type='onos', kill_cmd='./start-onos.sh stop', restart_cmd='./start-onos.sh stop')],
                 topology_class=MeshTopology,
                 topology_params="num_switches=2",
                 patch_panel_class=BufferedPatchPanel,
                 multiplex_sockets=False,
                 ignore_interposition=True,
                 kill_controllers_on_exit=False)

control_flow = Replayer(simulation_config, "experiments/onos_id_bug_fixed_ids_traffic/events.trace",
                        input_logger=InputLogger(),
                        wait_on_deterministic_values=False,
                        allow_unexpected_messages=False,
                        delay_flow_mods=False,
                        default_dp_permit=True,
                        pass_through_whitelisted_messages=True,]
                        invariant_check_name='InvariantChecker.check_liveness',
                        bug_signature="")
Ejemplo n.º 21
0
from sts.control_flow.replayer import Replayer
from sts.simulation_state import SimulationConfig
from sts.input_traces.input_logger import InputLogger

simulation_config = SimulationConfig(controller_configs=[
    ControllerConfig(
        start_cmd=
        'java -ea -Dlogback.configurationFile=./src/main/resources/logback-trace.xml -jar ./target/floodlight.jar -cf ./src/main/resources/trace_circuitpusher.properties',
        label='c1',
        address='127.0.0.1',
        cwd='../floodlight')
],
                                     topology_class=BinaryLeafTreeTopology,
                                     topology_params="num_levels=1",
                                     patch_panel_class=BufferedPatchPanel,
                                     multiplex_sockets=False,
                                     ignore_interposition=False,
                                     kill_controllers_on_exit=True)

control_flow = Replayer(
    simulation_config,
    "paper/trace_floodlight_circuitpusher-BinaryLeafTreeTopology1-steps200/events.trace",
    input_logger=InputLogger(),
    wait_on_deterministic_values=False,
    allow_unexpected_messages=False,
    delay_flow_mods=False,
    default_dp_permit=False,
    pass_through_whitelisted_messages=False,
    invariant_check_name='InvariantChecker.check_liveness',
    bug_signature="")
Ejemplo n.º 22
0
from sts.control_flow.replayer import Replayer
from sts.simulation_state import SimulationConfig
from sts.input_traces.input_logger import InputLogger

simulation_config = SimulationConfig(controller_configs=[
    ControllerConfig(
        start_cmd=
        './pox.py --verbose openflow.discovery forwarding.l2_multi_broken_floyd sts.util.socket_mux.pox_monkeypatcher openflow.of_01 --address=__address__ --port=7777',
        label='c1',
        address='127.0.0.1',
        cwd='pox')
],
                                     topology_class=MeshTopology,
                                     topology_params="num_switches=3",
                                     patch_panel_class=BufferedPatchPanel,
                                     multiplex_sockets=True,
                                     ignore_interposition=False,
                                     kill_controllers_on_exit=True)

control_flow = Replayer(
    simulation_config,
    "experiments/pox_broken_floyd_updated/events.trace",
    input_logger=InputLogger(),
    wait_on_deterministic_values=False,
    allow_unexpected_messages=False,
    delay_flow_mods=False,
    default_dp_permit=False,
    pass_through_whitelisted_messages=False,
    invariant_check_name='InvariantChecker.python_check_loops',
    bug_signature="")
Ejemplo n.º 23
0
from sts.control_flow.replayer import Replayer
from sts.simulation_state import SimulationConfig
from sts.input_traces.input_logger import InputLogger

simulation_config = SimulationConfig(controller_configs=[
    ControllerConfig(
        start_cmd=
        './pox.py --verbose openflow.discovery forwarding.l2_multi_null_pointer sts.util.socket_mux.pox_monkeypatcher openflow.of_01 --address=../sts_socket_pipe',
        label='c1',
        address='sts_socket_pipe',
        cwd='pox')
],
                                     topology_class=FatTree,
                                     topology_params="",
                                     patch_panel_class=BufferedPatchPanel,
                                     multiplex_sockets=True,
                                     ignore_interposition=True,
                                     kill_controllers_on_exit=True)

control_flow = Replayer(
    simulation_config,
    "experiments/pox_null_pointer_mcs_blackbox/intermcs_5_/mcs.trace.notimeouts",
    input_logger=InputLogger(),
    wait_on_deterministic_values=False,
    allow_unexpected_messages=False,
    delay_flow_mods=False,
    default_dp_permit=False,
    pass_through_whitelisted_messages=False,
    invariant_check_name='InvariantChecker.check_liveness',
    bug_signature="c1")
Ejemplo n.º 24
0
from config.experiment_config_lib import ControllerConfig
from sts.topology import *
from sts.control_flow.replayer import Replayer
from sts.simulation_state import SimulationConfig
from sts.input_traces.input_logger import InputLogger

simulation_config = SimulationConfig(controller_configs=[ControllerConfig(start_cmd='./pox.py --verbose  forwarding.consistency --consistent=True --deny=False  --update_wait=10 --update_once=True --consistent_sleep=5  openflow.of_01 --address=__address__ --port=__port__ ', label='c1', address='127.0.0.1', cwd='pox/')],
                 topology_class=ConsistencyTopology,
                 topology_params="",
                 patch_panel_class=BufferedPatchPanel,
                 multiplex_sockets=False,
                 ignore_interposition=False,
                 kill_controllers_on_exit=True)

control_flow = Replayer(simulation_config, "traces/trace_pox_hb_ConsistencyTopology-True-steps200/events.trace",
                        input_logger=InputLogger(),
                        wait_on_deterministic_values=False,
                        allow_unexpected_messages=False,
                        delay_flow_mods=False,
                        default_dp_permit=False,
                        pass_through_whitelisted_messages=False,
                        invariant_check_name='InvariantChecker.check_liveness',
                        bug_signature="")
Ejemplo n.º 25
0
from sts.control_flow.replayer import Replayer
from sts.simulation_state import SimulationConfig
from sts.input_traces.input_logger import InputLogger

simulation_config = SimulationConfig(controller_configs=[
    ControllerConfig(
        start_cmd=
        'java -ea -Dlogback.configurationFile=./src/main/resources/logback-trace.xml -jar ./target/floodlight.jar -cf ./src/main/resources/hb_learningswitch.properties',
        label='c1',
        address='127.0.0.1',
        cwd='../floodlight')
],
                                     topology_class=BinaryLeafTreeTopology,
                                     topology_params="num_levels=3",
                                     patch_panel_class=BufferedPatchPanel,
                                     multiplex_sockets=False,
                                     ignore_interposition=False,
                                     kill_controllers_on_exit=True)

control_flow = Replayer(
    simulation_config,
    "traces/floodlight_hb_circuitpusher-bintree3-traffic/events.trace",
    input_logger=InputLogger(),
    wait_on_deterministic_values=False,
    allow_unexpected_messages=False,
    delay_flow_mods=False,
    default_dp_permit=False,
    pass_through_whitelisted_messages=False,
    invariant_check_name='InvariantChecker.check_liveness',
    bug_signature="")
Ejemplo n.º 26
0
                     cwd='/home/mininet/ONOS',
                     controller_type='onos',
                     kill_cmd='./start-onos.sh stop',
                     restart_cmd='./start-onos.sh stop'),
    ControllerConfig(start_cmd='./start-onos.sh start',
                     label='c2',
                     address='192.168.56.12',
                     cwd='/home/mininet/ONOS',
                     controller_type='onos',
                     kill_cmd='./start-onos.sh stop',
                     restart_cmd='./start-onos.sh stop')
],
                                     topology_class=MeshTopology,
                                     topology_params="num_switches=2",
                                     patch_panel_class=BufferedPatchPanel,
                                     multiplex_sockets=False,
                                     ignore_interposition=False,
                                     kill_controllers_on_exit=False)

control_flow = Replayer(
    simulation_config,
    "experiments/onos_id_bug_fixed_ids_file_mcs4/interreplay_7_r_3/events.trace",
    input_logger=InputLogger(),
    wait_on_deterministic_values=False,
    allow_unexpected_messages=False,
    delay_flow_mods=False,
    default_dp_permit=False,
    pass_through_whitelisted_messages=False,
    invariant_check_name='check_for_file',
    bug_signature="bug_file_detected")
Ejemplo n.º 27
0
from config.experiment_config_lib import ControllerConfig
from sts.topology import *
from sts.control_flow.replayer import Replayer
from sts.simulation_state import SimulationConfig
from sts.input_traces.input_logger import InputLogger

simulation_config = SimulationConfig(controller_configs=[ControllerConfig(start_cmd='./start-onos.sh start', label='c1', address='192.168.56.11', cwd='/home/mininet/ONOS', controller_type='onos', kill_cmd='./start-onos.sh stop', restart_cmd='./start-onos.sh stop'), ControllerConfig(start_cmd='./start-onos.sh start', label='c2', address='192.168.56.12', cwd='/home/mininet/ONOS', controller_type='onos', kill_cmd='./start-onos.sh stop', restart_cmd='./start-onos.sh stop')],
                 topology_class=MeshTopology,
                 topology_params="num_switches=2",
                 patch_panel_class=BufferedPatchPanel,
                 multiplex_sockets=False,
                 ignore_interposition=False,
                 kill_controllers_on_exit=False)

control_flow = Replayer(simulation_config, "experiments/onos_controller_id_replay_2014_05_30_10_46_45/events.trace",
                        input_logger=InputLogger(),
                        wait_on_deterministic_values=False,
                        allow_unexpected_messages=False,
                        delay_flow_mods=False,
                        default_dp_permit=False,
                        pass_through_whitelisted_messages=False,
                        invariant_check_name='None',
                        bug_signature="")