trema 0.4.7 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +33 -54
- data/.hound.yml +3 -0
- data/.rspec +3 -0
- data/.rubocop.yml +17 -1
- data/.travis.yml +14 -18
- data/CHANGELOG.md +10 -0
- data/Gemfile +1 -26
- data/README.md +25 -241
- data/Rakefile +4 -1056
- data/bin/.gitignore +3 -0
- data/bin/trema +163 -237
- data/features/cleanup_on_failure.feature +118 -0
- data/features/logging.feature +73 -0
- data/features/open_flow13.feature +21 -0
- data/features/step_definitions/.gitignore +35 -0
- data/features/step_definitions/.rubocop.yml +5 -0
- data/features/step_definitions/.travis.yml +19 -0
- data/features/step_definitions/Gemfile +9 -0
- data/features/step_definitions/Guardfile +4 -0
- data/features/step_definitions/LICENSE +675 -0
- data/features/step_definitions/README.md +7 -0
- data/features/step_definitions/Rakefile +10 -0
- data/features/step_definitions/show_stats_steps.rb +56 -0
- data/features/step_definitions/virtual_link_steps.rb +8 -0
- data/features/support/env.rb +0 -73
- data/features/support/hooks.rb +6 -50
- data/features/trema_delete_link.feature +30 -0
- data/features/trema_killall.feature +56 -0
- data/features/trema_run.feature +47 -0
- data/features/trema_start.feature +73 -0
- data/features/trema_stop.feature +50 -0
- data/lib/trema.rb +4 -0
- data/lib/trema/command.rb +184 -0
- data/lib/trema/controller.rb +289 -0
- data/lib/trema/dirs.rb +14 -0
- data/lib/trema/drb.rb +32 -0
- data/lib/trema/logger.rb +63 -0
- data/lib/trema/monkey_patch/integer.rb +8 -0
- data/lib/trema/monkey_patch/integer/base_conversions.rb +12 -0
- data/lib/trema/monkey_patch/integer/durations.rb +12 -0
- data/lib/trema/switch.rb +83 -0
- data/lib/trema/version.rb +5 -0
- data/spec/spec_helper.rb +9 -178
- data/spec/trema/controller_spec.rb +4 -53
- data/tasks/.gitignore +34 -0
- data/tasks/LICENSE +675 -0
- data/tasks/README.md +6 -0
- data/tasks/cucumber.rake +14 -0
- data/tasks/flay.rake +15 -0
- data/tasks/flog.rake +25 -0
- data/tasks/gem.rake +15 -0
- data/tasks/reek.rake +11 -0
- data/tasks/relish.rake +8 -0
- data/tasks/rspec.rake +8 -0
- data/tasks/rubocop.rake +2 -16
- data/tasks/yard.rake +11 -0
- data/trema.gemspec +24 -23
- metadata +180 -720
- data/.yardopts +0 -4
- data/Doxyfile +0 -1679
- data/Guardfile +0 -14
- data/bin/quality +0 -31
- data/bin/trema-config +0 -59
- data/build.rb +0 -32
- data/cruise.rb +0 -409
- data/features/.nav +0 -50
- data/features/README.md +0 -7
- data/features/core/get_pid_by_trema_name.feature +0 -137
- data/features/core/packetin_filter.feature +0 -55
- data/features/core/switch_manager.feature +0 -41
- data/features/core/trema-config.feature +0 -55
- data/features/dsl/switch_port_specifier.feature +0 -15
- data/features/examples/dumper.feature +0 -35
- data/features/examples/hello_trema.feature +0 -23
- data/features/examples/learning_switch.feature +0 -37
- data/features/examples/list_switches.feature +0 -24
- data/features/examples/message.set_config.feature +0 -27
- data/features/examples/message.vendor-action.feature +0 -25
- data/features/examples/message.vendor-stats-request.feature +0 -20
- data/features/examples/multi_learning_switch.feature +0 -107
- data/features/examples/openflow_message.echo.feature +0 -59
- data/features/examples/openflow_message.features_request.feature +0 -35
- data/features/examples/openflow_message.hello.feature +0 -59
- data/features/examples/packet_in.feature +0 -33
- data/features/examples/packetin_filter_config.feature +0 -95
- data/features/examples/patch_panel.feature +0 -29
- data/features/examples/repeater_hub.feature +0 -52
- data/features/examples/switch_info.feature +0 -51
- data/features/examples/switch_monitor.feature +0 -35
- data/features/examples/transparent_firewall.feature +0 -73
- data/features/handlers/switch_ready.feature +0 -40
- data/features/step_definitions/misc_steps.rb +0 -85
- data/features/step_definitions/send_packets_steps.rb +0 -33
- data/features/step_definitions/stats_steps.rb +0 -39
- data/features/switch_event/C-add_forward_entry.feature +0 -114
- data/features/switch_event/C-delete_forward_entry.feature +0 -85
- data/features/switch_event/C-dump_forward_entries.feature +0 -72
- data/features/switch_event/C-set_forward_entries.feature +0 -77
- data/features/switch_event/README.md +0 -40
- data/features/switch_event/add_forward_entry.feature +0 -160
- data/features/switch_event/delete_forward_entry.feature +0 -160
- data/features/switch_event/dump_forward_entries.feature +0 -103
- data/features/switch_event/set_forward_entries.feature +0 -102
- data/features/trema_commands/README.md +0 -8
- data/features/trema_commands/dump_flows.feature +0 -41
- data/features/trema_commands/help.feature +0 -27
- data/features/trema_commands/help_option.feature +0 -20
- data/features/trema_commands/kill.feature +0 -56
- data/features/trema_commands/killall.feature +0 -32
- data/features/trema_commands/port_down.feature +0 -71
- data/features/trema_commands/port_up.feature +0 -75
- data/features/trema_commands/reset_stats.feature +0 -56
- data/features/trema_commands/run.feature +0 -56
- data/features/trema_commands/send_packets.feature +0 -46
- data/features/trema_commands/show_stats.feature +0 -66
- data/features/trema_commands/up.feature +0 -34
- data/features/trema_commands/version.feature +0 -10
- data/features/trema_commands/version_option.feature +0 -8
- data/rubocop-todo.yml +0 -159
- data/ruby/.gitignore +0 -4
- data/ruby/blocker.rb +0 -74
- data/ruby/extconf.rb +0 -80
- data/ruby/sub-process.rb +0 -289
- data/ruby/trema/action-common.c +0 -46
- data/ruby/trema/action-common.h +0 -38
- data/ruby/trema/action.rb +0 -33
- data/ruby/trema/aggregate-stats-reply.rb +0 -68
- data/ruby/trema/app.rb +0 -114
- data/ruby/trema/barrier-reply.c +0 -98
- data/ruby/trema/barrier-reply.h +0 -44
- data/ruby/trema/barrier-request.c +0 -135
- data/ruby/trema/barrier-request.h +0 -42
- data/ruby/trema/cli.rb +0 -267
- data/ruby/trema/command.rb +0 -41
- data/ruby/trema/command/dump_flows.rb +0 -43
- data/ruby/trema/command/kill.rb +0 -75
- data/ruby/trema/command/killall.rb +0 -38
- data/ruby/trema/command/netns.rb +0 -38
- data/ruby/trema/command/port_down.rb +0 -43
- data/ruby/trema/command/port_up.rb +0 -43
- data/ruby/trema/command/reset_stats.rb +0 -41
- data/ruby/trema/command/ruby.rb +0 -38
- data/ruby/trema/command/run.rb +0 -110
- data/ruby/trema/command/send_packets.rb +0 -46
- data/ruby/trema/command/shell.rb +0 -57
- data/ruby/trema/command/show_stats.rb +0 -65
- data/ruby/trema/command/up.rb +0 -44
- data/ruby/trema/command/version.rb +0 -35
- data/ruby/trema/compat.h +0 -36
- data/ruby/trema/controller.c +0 -691
- data/ruby/trema/controller.h +0 -42
- data/ruby/trema/controller.rb +0 -255
- data/ruby/trema/custom-switch.rb +0 -56
- data/ruby/trema/daemon.rb +0 -184
- data/ruby/trema/default-logger.c +0 -161
- data/ruby/trema/default-logger.h +0 -42
- data/ruby/trema/default-logger.rb +0 -29
- data/ruby/trema/default_openflow_channel_port.rb +0 -26
- data/ruby/trema/desc-stats-reply.rb +0 -75
- data/ruby/trema/dsl.rb +0 -32
- data/ruby/trema/dsl/configuration.rb +0 -145
- data/ruby/trema/dsl/context.rb +0 -69
- data/ruby/trema/dsl/custom-switch.rb +0 -44
- data/ruby/trema/dsl/link.rb +0 -39
- data/ruby/trema/dsl/netns.rb +0 -78
- data/ruby/trema/dsl/parser.rb +0 -70
- data/ruby/trema/dsl/rswitch.rb +0 -47
- data/ruby/trema/dsl/run.rb +0 -47
- data/ruby/trema/dsl/runner.rb +0 -178
- data/ruby/trema/dsl/stanza.rb +0 -51
- data/ruby/trema/dsl/switch.rb +0 -76
- data/ruby/trema/dsl/syntax-error.rb +0 -31
- data/ruby/trema/dsl/syntax.rb +0 -128
- data/ruby/trema/dsl/vhost.rb +0 -106
- data/ruby/trema/dsl/vswitch.rb +0 -45
- data/ruby/trema/echo-reply.c +0 -122
- data/ruby/trema/echo-reply.h +0 -40
- data/ruby/trema/echo-request.c +0 -117
- data/ruby/trema/echo-request.h +0 -40
- data/ruby/trema/echo.c +0 -99
- data/ruby/trema/echo.h +0 -39
- data/ruby/trema/enqueue.rb +0 -87
- data/ruby/trema/error.c +0 -262
- data/ruby/trema/error.h +0 -42
- data/ruby/trema/exact-match.rb +0 -34
- data/ruby/trema/executables.rb +0 -99
- data/ruby/trema/features-reply.c +0 -330
- data/ruby/trema/features-reply.h +0 -54
- data/ruby/trema/features-request.c +0 -134
- data/ruby/trema/features-request.h +0 -42
- data/ruby/trema/flow-mod.c +0 -150
- data/ruby/trema/flow-mod.h +0 -42
- data/ruby/trema/flow-removed.c +0 -280
- data/ruby/trema/flow-removed.h +0 -44
- data/ruby/trema/flow-stats-reply.rb +0 -107
- data/ruby/trema/flow.rb +0 -65
- data/ruby/trema/get-config-reply.c +0 -158
- data/ruby/trema/get-config-reply.h +0 -50
- data/ruby/trema/get-config-request.c +0 -136
- data/ruby/trema/get-config-request.h +0 -42
- data/ruby/trema/hardware-switch.rb +0 -86
- data/ruby/trema/hello.c +0 -133
- data/ruby/trema/hello.h +0 -42
- data/ruby/trema/host.rb +0 -263
- data/ruby/trema/link.rb +0 -177
- data/ruby/trema/list-switches-reply.c +0 -44
- data/ruby/trema/list-switches-reply.h +0 -38
- data/ruby/trema/mac.rb +0 -29
- data/ruby/trema/match.c +0 -621
- data/ruby/trema/match.h +0 -34
- data/ruby/trema/monkey-patch/integer.rb +0 -35
- data/ruby/trema/monkey-patch/integer/base-conversions.rb +0 -34
- data/ruby/trema/monkey-patch/integer/ranges.rb +0 -49
- data/ruby/trema/monkey-patch/integer/validators.rb +0 -36
- data/ruby/trema/monkey-patch/module.rb +0 -33
- data/ruby/trema/monkey-patch/module/class-method.rb +0 -38
- data/ruby/trema/monkey-patch/module/deprecation.rb +0 -39
- data/ruby/trema/monkey-patch/string.rb +0 -31
- data/ruby/trema/monkey-patch/string/inflectors.rb +0 -52
- data/ruby/trema/netns.rb +0 -127
- data/ruby/trema/network-component.rb +0 -151
- data/ruby/trema/ofctl.rb +0 -70
- data/ruby/trema/open-vswitch.rb +0 -160
- data/ruby/trema/openflow-error.c +0 -193
- data/ruby/trema/openflow-error.h +0 -51
- data/ruby/trema/openflow-switch.rb +0 -35
- data/ruby/trema/ordered-hash.rb +0 -75
- data/ruby/trema/packet-in.c +0 -1365
- data/ruby/trema/packet-in.h +0 -44
- data/ruby/trema/packet-queue.rb +0 -181
- data/ruby/trema/packetin-filter.rb +0 -124
- data/ruby/trema/path.rb +0 -85
- data/ruby/trema/phost.rb +0 -76
- data/ruby/trema/port-mod.c +0 -232
- data/ruby/trema/port-mod.h +0 -34
- data/ruby/trema/port-stats-reply.rb +0 -109
- data/ruby/trema/port-status-add.rb +0 -60
- data/ruby/trema/port-status-delete.rb +0 -60
- data/ruby/trema/port-status-modify.rb +0 -60
- data/ruby/trema/port-status.c +0 -192
- data/ruby/trema/port-status.h +0 -41
- data/ruby/trema/port.c +0 -398
- data/ruby/trema/port.h +0 -45
- data/ruby/trema/process.rb +0 -103
- data/ruby/trema/queue-get-config-reply.c +0 -205
- data/ruby/trema/queue-get-config-reply.h +0 -45
- data/ruby/trema/queue-get-config-request.c +0 -141
- data/ruby/trema/queue-get-config-request.h +0 -42
- data/ruby/trema/queue-stats-reply.rb +0 -76
- data/ruby/trema/ruby-switch.rb +0 -62
- data/ruby/trema/send-out-port.rb +0 -113
- data/ruby/trema/set-config.c +0 -174
- data/ruby/trema/set-config.h +0 -42
- data/ruby/trema/set-eth-addr.rb +0 -54
- data/ruby/trema/set-eth-dst-addr.rb +0 -52
- data/ruby/trema/set-eth-src-addr.rb +0 -53
- data/ruby/trema/set-ip-addr.rb +0 -54
- data/ruby/trema/set-ip-dst-addr.rb +0 -53
- data/ruby/trema/set-ip-src-addr.rb +0 -52
- data/ruby/trema/set-ip-tos.rb +0 -64
- data/ruby/trema/set-transport-dst-port.rb +0 -53
- data/ruby/trema/set-transport-port.rb +0 -53
- data/ruby/trema/set-transport-src-port.rb +0 -54
- data/ruby/trema/set-vlan-priority.rb +0 -66
- data/ruby/trema/set-vlan-vid.rb +0 -65
- data/ruby/trema/shell.rb +0 -37
- data/ruby/trema/shell/down.rb +0 -37
- data/ruby/trema/shell/killall.rb +0 -38
- data/ruby/trema/shell/link.rb +0 -59
- data/ruby/trema/shell/reset_stats.rb +0 -49
- data/ruby/trema/shell/run.rb +0 -67
- data/ruby/trema/shell/send_packets.rb +0 -40
- data/ruby/trema/shell/show_stats.rb +0 -47
- data/ruby/trema/shell/up.rb +0 -41
- data/ruby/trema/shell/vhost.rb +0 -42
- data/ruby/trema/shell/vswitch.rb +0 -47
- data/ruby/trema/stats-helper.rb +0 -63
- data/ruby/trema/stats-reply.c +0 -540
- data/ruby/trema/stats-reply.h +0 -51
- data/ruby/trema/stats-request.c +0 -715
- data/ruby/trema/stats-request.h +0 -40
- data/ruby/trema/strip-vlan-header.rb +0 -41
- data/ruby/trema/switch-daemon.rb +0 -90
- data/ruby/trema/switch-disconnected.c +0 -38
- data/ruby/trema/switch-disconnected.h +0 -36
- data/ruby/trema/switch-event.c +0 -648
- data/ruby/trema/switch-event.h +0 -27
- data/ruby/trema/switch-manager.rb +0 -119
- data/ruby/trema/switch.c +0 -197
- data/ruby/trema/switch.h +0 -40
- data/ruby/trema/switch.rb +0 -56
- data/ruby/trema/table-stats-reply.rb +0 -85
- data/ruby/trema/timers.rb +0 -95
- data/ruby/trema/trema-ruby-utils.c +0 -66
- data/ruby/trema/trema-ruby-utils.h +0 -42
- data/ruby/trema/trema.c +0 -126
- data/ruby/trema/tremashark.rb +0 -46
- data/ruby/trema/util.rb +0 -116
- data/ruby/trema/vendor-action.rb +0 -82
- data/ruby/trema/vendor-stats-reply.rb +0 -64
- data/ruby/trema/vendor.c +0 -230
- data/ruby/trema/vendor.h +0 -48
- data/ruby/trema/version.rb +0 -28
- data/spec/support/action.rb +0 -49
- data/spec/support/mandatory-option.rb +0 -53
- data/spec/support/matchers/constant.rb +0 -25
- data/spec/support/openflow-message.rb +0 -173
- data/spec/support/port-status.rb +0 -35
- data/spec/trema/app_spec.rb +0 -88
- data/spec/trema/barrier-reply_spec.rb +0 -43
- data/spec/trema/barrier-request_spec.rb +0 -92
- data/spec/trema/cli_spec.rb +0 -156
- data/spec/trema/default-logger_spec.rb +0 -46
- data/spec/trema/dsl/configuration_spec.rb +0 -120
- data/spec/trema/dsl/link_spec.rb +0 -50
- data/spec/trema/dsl/run_spec.rb +0 -72
- data/spec/trema/dsl/runner_spec.rb +0 -247
- data/spec/trema/dsl/switch_spec.rb +0 -69
- data/spec/trema/dsl/syntax_spec.rb +0 -110
- data/spec/trema/dsl/vhost_spec.rb +0 -144
- data/spec/trema/dsl/vswitch_spec.rb +0 -80
- data/spec/trema/echo-reply_spec.rb +0 -84
- data/spec/trema/echo-request_spec.rb +0 -128
- data/spec/trema/enqueue_spec.rb +0 -76
- data/spec/trema/error_spec.rb +0 -81
- data/spec/trema/executables_spec.rb +0 -54
- data/spec/trema/features-reply_spec.rb +0 -91
- data/spec/trema/features-request_spec.rb +0 -93
- data/spec/trema/flow-mod_spec.rb +0 -99
- data/spec/trema/flow-removed_spec.rb +0 -144
- data/spec/trema/get-config-reply_spec.rb +0 -43
- data/spec/trema/get-config-request_spec.rb +0 -92
- data/spec/trema/hardware-switch_spec.rb +0 -54
- data/spec/trema/hello_spec.rb +0 -63
- data/spec/trema/host_spec.rb +0 -191
- data/spec/trema/link_spec.rb +0 -62
- data/spec/trema/list-switches-reply_spec.rb +0 -46
- data/spec/trema/match_spec.rb +0 -111
- data/spec/trema/open-vswitch_spec.rb +0 -121
- data/spec/trema/openflow-error_spec.rb +0 -141
- data/spec/trema/packet-in_spec.rb +0 -717
- data/spec/trema/packet-out_spec.rb +0 -125
- data/spec/trema/packetin-filter_spec.rb +0 -39
- data/spec/trema/port-mod_spec.rb +0 -98
- data/spec/trema/port-status-add_spec.rb +0 -32
- data/spec/trema/port-status-delete_spec.rb +0 -32
- data/spec/trema/port-status-modify_spec.rb +0 -71
- data/spec/trema/port-status_spec.rb +0 -38
- data/spec/trema/port_spec.rb +0 -59
- data/spec/trema/process_spec.rb +0 -69
- data/spec/trema/queue-get-config-reply_spec.rb +0 -65
- data/spec/trema/queue-get-config-request_spec.rb +0 -67
- data/spec/trema/send-out-port_spec.rb +0 -106
- data/spec/trema/set-config_spec.rb +0 -78
- data/spec/trema/set-eth-addr_spec.rb +0 -62
- data/spec/trema/set-ip-addr_spec.rb +0 -81
- data/spec/trema/set-ip-tos_spec.rb +0 -70
- data/spec/trema/set-transport-dst-port_spec.rb +0 -65
- data/spec/trema/set-transport-src-port_spec.rb +0 -65
- data/spec/trema/set-vlan-priority_spec.rb +0 -65
- data/spec/trema/set-vlan-vid_spec.rb +0 -65
- data/spec/trema/shell/vhost_spec.rb +0 -58
- data/spec/trema/shell/vswitch_spec.rb +0 -87
- data/spec/trema/stats-reply_spec.rb +0 -363
- data/spec/trema/stats-request_spec.rb +0 -166
- data/spec/trema/strip-vlan-header_spec.rb +0 -44
- data/spec/trema/switch-daemon_spec.rb +0 -81
- data/spec/trema/switch-disconnected_spec.rb +0 -56
- data/spec/trema/switch-manager_spec.rb +0 -41
- data/spec/trema/tremashark_spec.rb +0 -39
- data/spec/trema/util_spec.rb +0 -88
- data/spec/trema/vendor-action_spec.rb +0 -75
- data/spec/trema/vendor_spec.rb +0 -76
- data/spec/trema_spec.rb +0 -94
- data/src/examples/cbench_switch/README +0 -21
- data/src/examples/cbench_switch/cbench-switch.rb +0 -38
- data/src/examples/cbench_switch/cbench_switch.c +0 -66
- data/src/examples/dumper/dumper.c +0 -362
- data/src/examples/dumper/dumper.conf +0 -7
- data/src/examples/dumper/dumper.rb +0 -195
- data/src/examples/hello_trema/.gitignore +0 -2
- data/src/examples/hello_trema/README.md +0 -2
- data/src/examples/hello_trema/hello-trema.rb +0 -30
- data/src/examples/hello_trema/hello_trema.c +0 -48
- data/src/examples/hello_trema/sample.conf +0 -1
- data/src/examples/learning_switch/README +0 -15
- data/src/examples/learning_switch/fdb.rb +0 -110
- data/src/examples/learning_switch/learning-switch.rb +0 -90
- data/src/examples/learning_switch/learning_switch.c +0 -217
- data/src/examples/learning_switch/learning_switch.conf +0 -18
- data/src/examples/list_switches/README +0 -19
- data/src/examples/list_switches/list-switches.rb +0 -43
- data/src/examples/list_switches/list_switches.c +0 -79
- data/src/examples/list_switches/list_switches.conf +0 -15
- data/src/examples/match_compare/match-compare.conf +0 -30
- data/src/examples/match_compare/match-compare.rb +0 -97
- data/src/examples/multi_learning_switch/README +0 -14
- data/src/examples/multi_learning_switch/multi-learning-switch.rb +0 -94
- data/src/examples/multi_learning_switch/multi_learning_switch.c +0 -294
- data/src/examples/multi_learning_switch/multi_learning_switch.conf +0 -17
- data/src/examples/openflow_message/README +0 -11
- data/src/examples/openflow_message/echo.c +0 -80
- data/src/examples/openflow_message/echo.rb +0 -56
- data/src/examples/openflow_message/example.rb +0 -60
- data/src/examples/openflow_message/features-request.rb +0 -96
- data/src/examples/openflow_message/features_request.c +0 -167
- data/src/examples/openflow_message/hello.c +0 -68
- data/src/examples/openflow_message/hello.rb +0 -43
- data/src/examples/openflow_message/set-config.rb +0 -57
- data/src/examples/openflow_message/set_config.c +0 -68
- data/src/examples/openflow_message/vendor-action.rb +0 -43
- data/src/examples/openflow_message/vendor-stats-request.rb +0 -66
- data/src/examples/openflow_message/vendor_action.c +0 -103
- data/src/examples/openflow_switch/echo_switch.c +0 -89
- data/src/examples/openflow_switch/hello_switch.c +0 -85
- data/src/examples/packet_in/README +0 -15
- data/src/examples/packet_in/packet-in.rb +0 -37
- data/src/examples/packet_in/packet_in.c +0 -53
- data/src/examples/packet_in/packet_in.conf +0 -15
- data/src/examples/packetin_filter_config/README +0 -12
- data/src/examples/packetin_filter_config/add_filter.c +0 -71
- data/src/examples/packetin_filter_config/delete_filter.c +0 -63
- data/src/examples/packetin_filter_config/delete_filter_strict.c +0 -73
- data/src/examples/packetin_filter_config/dump_filter.c +0 -63
- data/src/examples/packetin_filter_config/dump_filter_strict.c +0 -73
- data/src/examples/packetin_filter_config/packetin_filter_config.c +0 -132
- data/src/examples/packetin_filter_config/packetin_filter_config.conf +0 -7
- data/src/examples/packetin_filter_config/utils.c +0 -100
- data/src/examples/packetin_filter_config/utils.h +0 -40
- data/src/examples/patch_panel/network.conf +0 -14
- data/src/examples/patch_panel/patch-panel.conf +0 -1
- data/src/examples/patch_panel/patch-panel.rb +0 -59
- data/src/examples/repeater_hub/README +0 -8
- data/src/examples/repeater_hub/repeater-hub.rb +0 -41
- data/src/examples/repeater_hub/repeater-hub_spec.rb +0 -154
- data/src/examples/repeater_hub/repeater_hub.c +0 -81
- data/src/examples/repeater_hub/repeater_hub.conf +0 -28
- data/src/examples/simple_router/README +0 -18
- data/src/examples/simple_router/arp-table.rb +0 -81
- data/src/examples/simple_router/interface.rb +0 -90
- data/src/examples/simple_router/routing-table.rb +0 -60
- data/src/examples/simple_router/simple-router.rb +0 -191
- data/src/examples/simple_router/simple_router.conf +0 -24
- data/src/examples/simple_router/simple_router_netns.conf +0 -15
- data/src/examples/simple_router/simple_router_network.conf +0 -6
- data/src/examples/switch_event_config/.gitignore +0 -6
- data/src/examples/switch_event_config/add_forward_entry.c +0 -227
- data/src/examples/switch_event_config/delete_forward_entry.c +0 -226
- data/src/examples/switch_event_config/dump_forward_entries.c +0 -190
- data/src/examples/switch_event_config/network.conf +0 -2
- data/src/examples/switch_event_config/set_forward_entries.c +0 -210
- data/src/examples/switch_info/README +0 -13
- data/src/examples/switch_info/switch-info.rb +0 -44
- data/src/examples/switch_info/switch_info.c +0 -78
- data/src/examples/switch_info/switch_info.conf +0 -3
- data/src/examples/switch_monitor/switch-monitor.conf +0 -3
- data/src/examples/switch_monitor/switch-monitor.rb +0 -56
- data/src/examples/switch_monitor/switch_monitor.c +0 -152
- data/src/examples/traffic_monitor/counter.c +0 -72
- data/src/examples/traffic_monitor/counter.h +0 -46
- data/src/examples/traffic_monitor/counter.rb +0 -44
- data/src/examples/traffic_monitor/fdb.c +0 -74
- data/src/examples/traffic_monitor/fdb.h +0 -48
- data/src/examples/traffic_monitor/fdb.rb +0 -42
- data/src/examples/traffic_monitor/traffic-monitor.rb +0 -98
- data/src/examples/traffic_monitor/traffic_monitor.c +0 -161
- data/src/examples/traffic_monitor/traffic_monitor.conf +0 -16
- data/src/examples/transparent_firewall/README.md +0 -61
- data/src/examples/transparent_firewall/aggregated-delegated-afrinic.txt +0 -713
- data/src/examples/transparent_firewall/aggregated-delegated-apnic.txt +0 -3440
- data/src/examples/transparent_firewall/aggregated-delegated-arin.txt +0 -11342
- data/src/examples/transparent_firewall/aggregated-delegated-lacnic.txt +0 -1937
- data/src/examples/transparent_firewall/aggregated-delegated-ripencc.txt +0 -7329
- data/src/examples/transparent_firewall/block-rfc1918.rb +0 -86
- data/src/examples/transparent_firewall/pass-delegated.rb +0 -178
- data/src/examples/transparent_firewall/regen_aggregated.sh +0 -53
- data/src/examples/transparent_firewall/stats-to-cidrs.rb +0 -59
- data/src/lib/arp.h +0 -64
- data/src/lib/bool.h +0 -47
- data/src/lib/buffer.c +0 -304
- data/src/lib/buffer.h +0 -54
- data/src/lib/byteorder.c +0 -571
- data/src/lib/byteorder.h +0 -108
- data/src/lib/checks.h +0 -40
- data/src/lib/chibach.c +0 -392
- data/src/lib/chibach.h +0 -69
- data/src/lib/chibach_private.c +0 -168
- data/src/lib/chibach_private.h +0 -50
- data/src/lib/daemon.c +0 -429
- data/src/lib/daemon.h +0 -40
- data/src/lib/doubly_linked_list.c +0 -284
- data/src/lib/doubly_linked_list.h +0 -86
- data/src/lib/ether.c +0 -47
- data/src/lib/ether.h +0 -92
- data/src/lib/etherip.h +0 -44
- data/src/lib/event_forward_interface.c +0 -788
- data/src/lib/event_forward_interface.h +0 -138
- data/src/lib/event_handler.c +0 -419
- data/src/lib/event_handler.h +0 -57
- data/src/lib/external_callback.c +0 -126
- data/src/lib/external_callback.h +0 -46
- data/src/lib/hash_table.c +0 -415
- data/src/lib/hash_table.h +0 -136
- data/src/lib/icmp.h +0 -72
- data/src/lib/igmp.h +0 -48
- data/src/lib/ipv4.h +0 -64
- data/src/lib/ipv6.h +0 -46
- data/src/lib/linked_list.c +0 -244
- data/src/lib/linked_list.h +0 -84
- data/src/lib/log.c +0 -636
- data/src/lib/log.h +0 -77
- data/src/lib/management_interface.c +0 -359
- data/src/lib/management_interface.h +0 -40
- data/src/lib/management_service_interface.c +0 -102
- data/src/lib/management_service_interface.h +0 -134
- data/src/lib/match.h +0 -82
- data/src/lib/match_table.c +0 -606
- data/src/lib/match_table.h +0 -49
- data/src/lib/message_queue.c +0 -143
- data/src/lib/message_queue.h +0 -59
- data/src/lib/messenger.c +0 -1821
- data/src/lib/messenger.h +0 -145
- data/src/lib/openflow_application_interface.c +0 -1800
- data/src/lib/openflow_application_interface.h +0 -359
- data/src/lib/openflow_message.c +0 -4240
- data/src/lib/openflow_message.h +0 -291
- data/src/lib/openflow_service_interface.h +0 -58
- data/src/lib/openflow_switch_interface.c +0 -1378
- data/src/lib/openflow_switch_interface.h +0 -262
- data/src/lib/packet_info.c +0 -336
- data/src/lib/packet_info.h +0 -233
- data/src/lib/packet_parser.c +0 -522
- data/src/lib/packetin_filter_interface.c +0 -292
- data/src/lib/packetin_filter_interface.h +0 -125
- data/src/lib/persistent_storage.c +0 -478
- data/src/lib/persistent_storage.h +0 -44
- data/src/lib/secure_channel.c +0 -496
- data/src/lib/secure_channel.h +0 -43
- data/src/lib/stat.c +0 -248
- data/src/lib/stat.h +0 -51
- data/src/lib/tcp.h +0 -62
- data/src/lib/timer.c +0 -349
- data/src/lib/timer.h +0 -51
- data/src/lib/trema.c +0 -776
- data/src/lib/trema.h +0 -80
- data/src/lib/trema.hpp +0 -49
- data/src/lib/trema_private.c +0 -175
- data/src/lib/trema_private.h +0 -64
- data/src/lib/trema_wrapper.c +0 -59
- data/src/lib/trema_wrapper.h +0 -66
- data/src/lib/udp.h +0 -41
- data/src/lib/utility.c +0 -625
- data/src/lib/utility.h +0 -84
- data/src/lib/wrapper.c +0 -121
- data/src/lib/wrapper.h +0 -76
- data/src/management/application.c +0 -222
- data/src/management/echo.c +0 -183
- data/src/management/set_logging_level.c +0 -151
- data/src/management/show_stats.c +0 -148
- data/src/management/trema_manager +0 -184
- data/src/packetin_filter/README +0 -17
- data/src/packetin_filter/packetin_filter.c +0 -575
- data/src/switch_manager/README +0 -20
- data/src/switch_manager/cookie_table.c +0 -290
- data/src/switch_manager/cookie_table.h +0 -70
- data/src/switch_manager/dpid_table.c +0 -108
- data/src/switch_manager/dpid_table.h +0 -43
- data/src/switch_manager/event_forward_entry_manipulation.c +0 -120
- data/src/switch_manager/event_forward_entry_manipulation.h +0 -31
- data/src/switch_manager/ofpmsg_recv.c +0 -497
- data/src/switch_manager/ofpmsg_recv.h +0 -39
- data/src/switch_manager/ofpmsg_send.c +0 -274
- data/src/switch_manager/ofpmsg_send.h +0 -51
- data/src/switch_manager/secure_channel_listener.c +0 -296
- data/src/switch_manager/secure_channel_listener.h +0 -40
- data/src/switch_manager/secure_channel_receiver.c +0 -129
- data/src/switch_manager/secure_channel_receiver.h +0 -40
- data/src/switch_manager/secure_channel_sender.c +0 -131
- data/src/switch_manager/secure_channel_sender.h +0 -41
- data/src/switch_manager/service_interface.c +0 -180
- data/src/switch_manager/service_interface.h +0 -44
- data/src/switch_manager/switch.c +0 -988
- data/src/switch_manager/switch.h +0 -50
- data/src/switch_manager/switch_manager.c +0 -643
- data/src/switch_manager/switch_manager.h +0 -65
- data/src/switch_manager/switch_option.c +0 -30
- data/src/switch_manager/switch_option.h +0 -41
- data/src/switch_manager/switchinfo.h +0 -81
- data/src/switch_manager/xid_table.c +0 -182
- data/src/switch_manager/xid_table.h +0 -53
- data/src/tremashark/README +0 -79
- data/src/tremashark/packet_capture.c +0 -358
- data/src/tremashark/pcap_private.h +0 -45
- data/src/tremashark/pcap_queue.c +0 -195
- data/src/tremashark/pcap_queue.h +0 -56
- data/src/tremashark/plugin/.gitignore +0 -6
- data/src/tremashark/plugin/packet-trema/.gitignore +0 -5
- data/src/tremashark/plugin/packet-trema/Makefile +0 -77
- data/src/tremashark/plugin/packet-trema/Makefile.am +0 -110
- data/src/tremashark/plugin/packet-trema/Makefile.common +0 -29
- data/src/tremashark/plugin/packet-trema/moduleinfo.h +0 -39
- data/src/tremashark/plugin/packet-trema/packet-trema.c +0 -1671
- data/src/tremashark/plugin/packet-trema/plugin.c +0 -31
- data/src/tremashark/plugin/user_dlts +0 -2
- data/src/tremashark/queue.c +0 -167
- data/src/tremashark/queue.h +0 -58
- data/src/tremashark/stdin_relay.c +0 -257
- data/src/tremashark/syslog_relay.c +0 -247
- data/src/tremashark/tremashark.c +0 -554
- data/trema +0 -11
- data/trema-config +0 -11
- data/unittests/buffer_stubs.c +0 -72
- data/unittests/cmockery_trema.c +0 -121
- data/unittests/cmockery_trema.h +0 -95
- data/unittests/lib/buffer_test.c +0 -368
- data/unittests/lib/byteorder_test.c +0 -1798
- data/unittests/lib/daemon_test.c +0 -804
- data/unittests/lib/doubly_linked_list_test.c +0 -348
- data/unittests/lib/ether_test.c +0 -125
- data/unittests/lib/event_forward_interface_test.c +0 -1676
- data/unittests/lib/external_callback_test.c +0 -282
- data/unittests/lib/hash_table_test.c +0 -278
- data/unittests/lib/linked_list_test.c +0 -434
- data/unittests/lib/log_test.c +0 -672
- data/unittests/lib/management_interface_test.c +0 -238
- data/unittests/lib/management_service_interface_test.c +0 -317
- data/unittests/lib/match_table_test.c +0 -1507
- data/unittests/lib/message_queue_test.c +0 -381
- data/unittests/lib/messenger_test.c +0 -623
- data/unittests/lib/openflow_application_interface_test.c +0 -3713
- data/unittests/lib/openflow_message_test.c +0 -8047
- data/unittests/lib/packet_info_test.c +0 -558
- data/unittests/lib/packet_parser_test.c +0 -784
- data/unittests/lib/packetin_filter_interface_test.c +0 -721
- data/unittests/lib/persistent_storage_test.c +0 -800
- data/unittests/lib/stat_test.c +0 -433
- data/unittests/lib/test_packets/arp_rep.cap +0 -0
- data/unittests/lib/test_packets/arp_req.cap +0 -0
- data/unittests/lib/test_packets/icmp6_echo_rep.cap +0 -0
- data/unittests/lib/test_packets/icmp6_echo_req.cap +0 -0
- data/unittests/lib/test_packets/icmp_echo_rep.cap +0 -0
- data/unittests/lib/test_packets/icmp_echo_req.cap +0 -0
- data/unittests/lib/test_packets/igmp_query_v2.cap +0 -0
- data/unittests/lib/test_packets/ipx.cap +0 -0
- data/unittests/lib/test_packets/lldp.cap +0 -0
- data/unittests/lib/test_packets/lldp_over_ip.cap +0 -0
- data/unittests/lib/test_packets/rarp_req.cap +0 -0
- data/unittests/lib/test_packets/tcp.cap +0 -0
- data/unittests/lib/test_packets/tcp_syn.cap +0 -0
- data/unittests/lib/test_packets/udp.cap +0 -0
- data/unittests/lib/test_packets/udp_frag_head.cap +0 -0
- data/unittests/lib/test_packets/udp_frag_next.cap +0 -0
- data/unittests/lib/test_packets/vtag_icmp_echo_rep.cap +0 -0
- data/unittests/lib/test_packets/vtag_icmp_echo_req.cap +0 -0
- data/unittests/lib/timer_test.c +0 -246
- data/unittests/lib/trema_private_test.c +0 -321
- data/unittests/lib/trema_test.c +0 -1030
- data/unittests/lib/utility_test.c +0 -711
- data/unittests/lib/wrapper_test.c +0 -228
- data/unittests/packetin_filter/packetin_filter_test.c +0 -476
- data/unittests/switch_manager/switch_manager_test.c +0 -1183
- data/unittests/wrapper_stubs.c +0 -37
- data/vendor/.gitignore +0 -6
- data/vendor/README.md +0 -29
- data/vendor/cmockery-20110428.tar.gz +0 -0
- data/vendor/oflops-0.03.trema1.tar.gz +0 -0
- data/vendor/oflops_no_snmp+1.0.0.diff +0 -340
- data/vendor/openflow-1.0.0.tar.gz +0 -0
- data/vendor/openflow.git.tar.gz +0 -0
- data/vendor/openvswitch-1.2.2.trema1.tar.gz +0 -0
- data/vendor/openvswitch-1.2.2_librt-check.diff +0 -21
- data/vendor/packet-openflow.diff +0 -13
- data/vendor/ruby-ifconfig-1.2/COPYING +0 -340
- data/vendor/ruby-ifconfig-1.2/Changelog +0 -16
- data/vendor/ruby-ifconfig-1.2/INSTALL +0 -239
- data/vendor/ruby-ifconfig-1.2/README +0 -38
- data/vendor/ruby-ifconfig-1.2/Rakefile +0 -14
- data/vendor/ruby-ifconfig-1.2/TODO +0 -8
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/darwin.txt +0 -17
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/dragonflybsd.txt +0 -10
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/dragonflybsd_netstat.txt +0 -14
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/freebsd.txt +0 -17
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/freebsd_netstat.txt +0 -24
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/linux.txt +0 -60
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/linux_ethernet.txt +0 -20
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/netbsd.txt +0 -10
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/openbsd.txt +0 -36
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/sunos.txt +0 -10
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig.rb +0 -71
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/bsd/ifconfig.rb +0 -72
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/bsd/interface_types.rb +0 -69
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/bsd/network_types.rb +0 -3
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/common/ifconfig.rb +0 -84
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/common/interface_types.rb +0 -130
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/common/network_types.rb +0 -49
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/linux/ifconfig.rb +0 -43
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/linux/interface_types.rb +0 -112
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/linux/network_types.rb +0 -55
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/sunos/ifconfig.rb +0 -38
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/sunos/interface_types.rb +0 -77
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/sunos/network_types.rb +0 -4
- data/vendor/ruby-ifconfig-1.2/setup.rb +0 -1306
- data/vendor/ruby-ifconfig-1.2/test/test_bsd.rb +0 -35
- data/vendor/ruby-ifconfig-1.2/test/test_darwin.rb +0 -33
- data/vendor/ruby-ifconfig-1.2/test/test_dragonflybsd.rb +0 -35
- data/vendor/ruby-ifconfig-1.2/test/test_helper.rb +0 -4
- data/vendor/ruby-ifconfig-1.2/test/test_linux.rb +0 -31
- data/vendor/ruby-ifconfig-1.2/test/test_netbsd.rb +0 -33
- data/vendor/ruby-ifconfig-1.2/test/test_openbsd.rb +0 -33
- data/vendor/ruby-ifconfig-1.2/test/test_sunos.rb +0 -35
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_darwin.rb +0 -40
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_dragonflybsd.rb +0 -39
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_freebsd.rb +0 -40
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_linux.rb +0 -49
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_netbsd.rb +0 -39
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_openbsd.rb +0 -39
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_sunos.rb +0 -44
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
@ruby
|
|
2
|
-
Feature: kill command
|
|
3
|
-
|
|
4
|
-
In order to test event handling or just kill unwanted processes
|
|
5
|
-
As a developer using Trema
|
|
6
|
-
I want to execute "trema kill" command
|
|
7
|
-
|
|
8
|
-
Background:
|
|
9
|
-
Given a file named "switch_monitor.conf" with:
|
|
10
|
-
"""
|
|
11
|
-
vswitch { datapath_id 0x1 }
|
|
12
|
-
vswitch { datapath_id 0x2 }
|
|
13
|
-
vswitch { datapath_id 0x3 }
|
|
14
|
-
|
|
15
|
-
vhost "host1"
|
|
16
|
-
vhost "host2"
|
|
17
|
-
vhost "host3"
|
|
18
|
-
|
|
19
|
-
link "0x1", "host1"
|
|
20
|
-
link "0x2", "host2"
|
|
21
|
-
link "0x3", "host3"
|
|
22
|
-
"""
|
|
23
|
-
And I successfully run `trema run ../../src/examples/switch_monitor/switch-monitor.rb -c switch_monitor.conf -d`
|
|
24
|
-
|
|
25
|
-
@slow_process
|
|
26
|
-
Scenario: kill a switch
|
|
27
|
-
When I run `trema kill 0x1`
|
|
28
|
-
And *** sleep 1 ***
|
|
29
|
-
Then the vswitch "0x1" is terminated
|
|
30
|
-
|
|
31
|
-
@slow_process
|
|
32
|
-
Scenario: kill a host
|
|
33
|
-
When I run `trema kill host1`
|
|
34
|
-
And *** sleep 1 ***
|
|
35
|
-
Then the vhost "host1" is terminated
|
|
36
|
-
|
|
37
|
-
@slow_process
|
|
38
|
-
Scenario: kill hosts
|
|
39
|
-
When I run `trema kill host1 host2`
|
|
40
|
-
And *** sleep 1 ***
|
|
41
|
-
Then the vhost "host1" is terminated
|
|
42
|
-
And the vhost "host2" is terminated
|
|
43
|
-
|
|
44
|
-
@slow_process
|
|
45
|
-
Scenario: kill a controller
|
|
46
|
-
When I run `trema kill SwitchMonitor`
|
|
47
|
-
And *** sleep 1 ***
|
|
48
|
-
Then the controller "SwitchMonitor" is terminated
|
|
49
|
-
|
|
50
|
-
Scenario: no argument
|
|
51
|
-
When I run `trema kill`
|
|
52
|
-
Then the output should contain "name is required"
|
|
53
|
-
|
|
54
|
-
Scenario: wrong name
|
|
55
|
-
When I run `trema kill nosuchname`
|
|
56
|
-
Then the output should contain "unknown name: nosuchname"
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
@ruby
|
|
2
|
-
Feature: killall command
|
|
3
|
-
|
|
4
|
-
In order to cleanup the previous trema session
|
|
5
|
-
As a developer using Trema
|
|
6
|
-
I want to execute "trema killall" command
|
|
7
|
-
|
|
8
|
-
@slow_process
|
|
9
|
-
Scenario: trema killall
|
|
10
|
-
Given a file named "switch_monitor.conf" with:
|
|
11
|
-
"""
|
|
12
|
-
vswitch { datapath_id 0x1 }
|
|
13
|
-
vswitch { datapath_id 0x2 }
|
|
14
|
-
vswitch { datapath_id 0x3 }
|
|
15
|
-
|
|
16
|
-
vhost "host1"
|
|
17
|
-
vhost "host2"
|
|
18
|
-
vhost "host3"
|
|
19
|
-
|
|
20
|
-
link "0x1", "host1"
|
|
21
|
-
link "0x2", "host2"
|
|
22
|
-
link "0x3", "host3"
|
|
23
|
-
"""
|
|
24
|
-
And I successfully run `trema run ../../objects/examples/switch_monitor/switch_monitor -c switch_monitor.conf -d`
|
|
25
|
-
And wait until "switch_monitor" is up
|
|
26
|
-
When I run `trema killall`
|
|
27
|
-
And *** sleep 1 ***
|
|
28
|
-
Then switch_manager is terminated
|
|
29
|
-
And switch is terminated
|
|
30
|
-
And phost is terminated
|
|
31
|
-
And ovs-openflowd is terminated
|
|
32
|
-
And switch_monitor is terminated
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
@ruby
|
|
2
|
-
Feature: port_down command
|
|
3
|
-
|
|
4
|
-
Use this command to ensure that your controller detects network
|
|
5
|
-
topology changes i.e., failures in switches.
|
|
6
|
-
|
|
7
|
-
Trema emulated network offers a set of commands that can change the
|
|
8
|
-
status of any arbitrary switch port. The `trema port_down` is one
|
|
9
|
-
such command and its command syntax is as follows:
|
|
10
|
-
|
|
11
|
-
$ trema port_down --switch DATAPATH_ID --port PORT_NUMBER
|
|
12
|
-
|
|
13
|
-
The above command brings the switch's specified port down. By using
|
|
14
|
-
this command one can easily test the :port_status handler defined in
|
|
15
|
-
controllers.
|
|
16
|
-
|
|
17
|
-
Background:
|
|
18
|
-
Given a file named "sample.conf" with:
|
|
19
|
-
"""
|
|
20
|
-
vswitch { datapath_id 0x1 }
|
|
21
|
-
vswitch { datapath_id 0x2 }
|
|
22
|
-
|
|
23
|
-
link "0x1", "0x2"
|
|
24
|
-
"""
|
|
25
|
-
And a file named "port-observer.rb" with:
|
|
26
|
-
"""
|
|
27
|
-
class PortObserver < Controller
|
|
28
|
-
def switch_ready dpid
|
|
29
|
-
info "Switch %#x is UP", dpid
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def port_status dpid, message
|
|
34
|
-
if message.phy_port.down?
|
|
35
|
-
info "Port #{ message.phy_port.number } (Switch %#x) is DOWN", dpid
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
"""
|
|
40
|
-
|
|
41
|
-
@slow_process
|
|
42
|
-
Scenario: trema port_down --switch 0x1 --port 1
|
|
43
|
-
Given I run `trema run ./port-observer.rb -c sample.conf` interactively
|
|
44
|
-
And I wait for output to contain "Switch 0x1 is UP"
|
|
45
|
-
When I run `trema port_down --switch 0x1 --port 1`
|
|
46
|
-
Then the output should contain "Port 1 (Switch 0x1) is DOWN" within the timeout period
|
|
47
|
-
|
|
48
|
-
@slow_process
|
|
49
|
-
Scenario: trema port_down --switch UNKNOWN --port 1 (unknown switch error)
|
|
50
|
-
Given I run `trema run ./port-observer.rb -c sample.conf -d`
|
|
51
|
-
When I run `trema port_down --switch UNKNOWN --port 1`
|
|
52
|
-
Then the output should contain "error: unknown switch: UNKNOWN"
|
|
53
|
-
|
|
54
|
-
@slow_process
|
|
55
|
-
Scenario: trema port_down --switch 0x1 --port 100 (unknown port error)
|
|
56
|
-
Given I run `trema run ./port-observer.rb -c sample.conf -d`
|
|
57
|
-
When I run `trema port_down --switch 0x1 --port 100`
|
|
58
|
-
Then the output should contain "error: ovs-ofctl: vsw_0x1: couldn't find port `100'"
|
|
59
|
-
|
|
60
|
-
@slow_process
|
|
61
|
-
Scenario: trema port_down --switch 0x1 (no --port option error)
|
|
62
|
-
Given I run `trema run ./port-observer.rb -c sample.conf -d`
|
|
63
|
-
When I run `trema port_down --switch 0x1`
|
|
64
|
-
Then the output should contain "error: --port option is mandatory"
|
|
65
|
-
|
|
66
|
-
@slow_process
|
|
67
|
-
Scenario: trema port_down --port 1 (no --switch option error)
|
|
68
|
-
Given I run `trema run ./port-observer.rb -c sample.conf -d`
|
|
69
|
-
When I run `trema port_down --port 1`
|
|
70
|
-
Then the output should contain "error: --switch option is mandatory"
|
|
71
|
-
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
@ruby
|
|
2
|
-
Feature: port_up command
|
|
3
|
-
|
|
4
|
-
Use this command to ensure that your controller detects network
|
|
5
|
-
topology changes i.e., failures in switches.
|
|
6
|
-
|
|
7
|
-
Trema emulated network offers a set of commands that can change the
|
|
8
|
-
status of any arbitrary switch port. The `trema port_up` is one such
|
|
9
|
-
command and its command syntax is as follows:
|
|
10
|
-
|
|
11
|
-
$ trema port_up --switch DATAPATH_ID --port PORT_NUMBER
|
|
12
|
-
|
|
13
|
-
The above command brings the switch's specified port up. By using
|
|
14
|
-
this command one can easily test the :port_status handler defined in
|
|
15
|
-
controllers.
|
|
16
|
-
|
|
17
|
-
Background:
|
|
18
|
-
Given a file named "sample.conf" with:
|
|
19
|
-
"""
|
|
20
|
-
vswitch { datapath_id 0x1 }
|
|
21
|
-
vswitch { datapath_id 0x2 }
|
|
22
|
-
|
|
23
|
-
link "0x1", "0x2"
|
|
24
|
-
"""
|
|
25
|
-
And a file named "port-observer.rb" with:
|
|
26
|
-
"""
|
|
27
|
-
class PortObserver < Controller
|
|
28
|
-
def switch_ready dpid
|
|
29
|
-
info "Switch %#x is UP", dpid
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def port_status dpid, message
|
|
34
|
-
if message.phy_port.up?
|
|
35
|
-
info "Port #{ message.phy_port.number } (Switch %#x) is UP", dpid
|
|
36
|
-
elsif message.phy_port.down?
|
|
37
|
-
info "Port #{ message.phy_port.number } (Switch %#x) is DOWN", dpid
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
"""
|
|
42
|
-
|
|
43
|
-
@slow_process
|
|
44
|
-
Scenario: trema port_up --switch 0x1 --port 1
|
|
45
|
-
Given I run `trema run ./port-observer.rb -c sample.conf` interactively
|
|
46
|
-
And I wait for output to contain "Switch 0x1 is UP"
|
|
47
|
-
And I run `trema port_down --switch 0x1 --port 1`
|
|
48
|
-
And I wait for output to contain "Port 1 (Switch 0x1) is DOWN"
|
|
49
|
-
When I run `trema port_up --switch 0x1 --port 1`
|
|
50
|
-
Then the output should contain "Port 1 (Switch 0x1) is UP" within the timeout period
|
|
51
|
-
|
|
52
|
-
@slow_process
|
|
53
|
-
Scenario: trema port_up --switch UNKNOWN --port 1 (unknown switch error)
|
|
54
|
-
Given I run `trema run ./port-observer.rb -c sample.conf -d`
|
|
55
|
-
When I run `trema port_up --switch UNKNOWN --port 1`
|
|
56
|
-
Then the output should contain "error: unknown switch: UNKNOWN"
|
|
57
|
-
|
|
58
|
-
@slow_process
|
|
59
|
-
Scenario: trema port_up --switch 0x1 --port 100 (unknown port error)
|
|
60
|
-
Given I run `trema run ./port-observer.rb -c sample.conf -d`
|
|
61
|
-
When I run `trema port_up --switch 0x1 --port 100`
|
|
62
|
-
Then the output should contain "error: ovs-ofctl: vsw_0x1: couldn't find port `100'"
|
|
63
|
-
|
|
64
|
-
@slow_process
|
|
65
|
-
Scenario: trema port_up --switch 0x1 (no --port option error)
|
|
66
|
-
Given I run `trema run ./port-observer.rb -c sample.conf -d`
|
|
67
|
-
When I run `trema port_up --switch 0x1`
|
|
68
|
-
Then the output should contain "error: --port option is mandatory"
|
|
69
|
-
|
|
70
|
-
@slow_process
|
|
71
|
-
Scenario: trema port_up --port 1 (no --switch option error)
|
|
72
|
-
Given I run `trema run ./port-observer.rb -c sample.conf -d`
|
|
73
|
-
When I run `trema port_up --port 1`
|
|
74
|
-
Then the output should contain "error: --switch option is mandatory"
|
|
75
|
-
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
@ruby
|
|
2
|
-
Feature: reset_stats command
|
|
3
|
-
|
|
4
|
-
In order to reset the stats of sent/received packets
|
|
5
|
-
As a developer using Trema
|
|
6
|
-
I want to execute "trema reset_stats" command
|
|
7
|
-
|
|
8
|
-
Background:
|
|
9
|
-
Given a file named "learning_switch.conf" with:
|
|
10
|
-
"""
|
|
11
|
-
vswitch { datapath_id 0xabc }
|
|
12
|
-
|
|
13
|
-
vhost("host1") { ip "192.168.0.1" }
|
|
14
|
-
vhost("host2") { ip "192.168.0.2" }
|
|
15
|
-
|
|
16
|
-
link "0xabc", "host1"
|
|
17
|
-
link "0xabc", "host2"
|
|
18
|
-
"""
|
|
19
|
-
And I run `trema run ../../src/examples/learning_switch/learning-switch.rb -c learning_switch.conf -d`
|
|
20
|
-
And I run `trema send_packets --source host1 --dest host2`
|
|
21
|
-
And *** sleep 1 ***
|
|
22
|
-
|
|
23
|
-
@slow_process
|
|
24
|
-
Scenario: reset_stats host1
|
|
25
|
-
When I run `trema reset_stats host1`
|
|
26
|
-
And I run `trema show_stats host1`
|
|
27
|
-
Then the output should contain exactly "Sent packets:\n\nReceived packets:\n\n"
|
|
28
|
-
|
|
29
|
-
@slow_process
|
|
30
|
-
Scenario: reset_stats host1 host2
|
|
31
|
-
When I run `trema reset_stats host1 host2`
|
|
32
|
-
And I run `trema show_stats host1`
|
|
33
|
-
Then the output should contain exactly "Sent packets:\n\nReceived packets:\n\n"
|
|
34
|
-
|
|
35
|
-
@slow_process
|
|
36
|
-
Scenario: reset_stats host1 host2
|
|
37
|
-
When I run `trema reset_stats host1 host2`
|
|
38
|
-
And I run `trema show_stats host2`
|
|
39
|
-
Then the output should contain exactly "Sent packets:\n\nReceived packets:\n\n"
|
|
40
|
-
|
|
41
|
-
@slow_process
|
|
42
|
-
Scenario: no argument
|
|
43
|
-
When I run `trema reset_stats`
|
|
44
|
-
And I run `trema show_stats host1`
|
|
45
|
-
Then the output should contain exactly "Sent packets:\n\nReceived packets:\n\n"
|
|
46
|
-
|
|
47
|
-
@slow_process
|
|
48
|
-
Scenario: no argument
|
|
49
|
-
When I run `trema reset_stats`
|
|
50
|
-
And I run `trema show_stats host2`
|
|
51
|
-
Then the output should contain exactly "Sent packets:\n\nReceived packets:\n\n"
|
|
52
|
-
|
|
53
|
-
@slow_process
|
|
54
|
-
Scenario: wrong name
|
|
55
|
-
When I run `trema reset_stats nosuchhost`
|
|
56
|
-
Then the output should contain "unknown host: nosuchhost"
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
@ruby
|
|
2
|
-
Feature: run command
|
|
3
|
-
|
|
4
|
-
In order to launch trema applications
|
|
5
|
-
As a developer using Trema
|
|
6
|
-
I want to use `trema run` command
|
|
7
|
-
|
|
8
|
-
Background:
|
|
9
|
-
Given a file named "network.conf" with:
|
|
10
|
-
"""
|
|
11
|
-
vswitch { datapath_id 0xabc }
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
@slow_process
|
|
15
|
-
Scenario: trema run launches switch_manager and an application
|
|
16
|
-
When I run `trema run ../../objects/examples/dumper/dumper -c network.conf -d`
|
|
17
|
-
And wait until "dumper" is up
|
|
18
|
-
Then switch_manager is started
|
|
19
|
-
And dumper is started
|
|
20
|
-
|
|
21
|
-
@slow_process
|
|
22
|
-
Scenario: trema run launches switch_manager and an application with proper options
|
|
23
|
-
When I run `trema -v run ../../objects/examples/learning_switch/learning_switch -c network.conf -d`
|
|
24
|
-
And wait until "learning_switch" is up
|
|
25
|
-
Then the output should contain:
|
|
26
|
-
"""
|
|
27
|
-
switch_manager --daemonize --port=6653 -- port_status::learning_switch packet_in::learning_switch state_notify::learning_switch vendor::learning_switch
|
|
28
|
-
"""
|
|
29
|
-
And the output should contain:
|
|
30
|
-
"""
|
|
31
|
-
learning_switch --name learning_switch -d
|
|
32
|
-
"""
|
|
33
|
-
|
|
34
|
-
@slow_process
|
|
35
|
-
Scenario: The --port option can override the default openflow channel port
|
|
36
|
-
When I run `which trema`
|
|
37
|
-
When I run `trema -v run ../../objects/examples/learning_switch/learning_switch -c network.conf --port 6633 -d`
|
|
38
|
-
And wait until "learning_switch" is up
|
|
39
|
-
Then the output should contain:
|
|
40
|
-
"""
|
|
41
|
-
switch_manager --daemonize --port=6633 -- port_status::learning_switch packet_in::learning_switch state_notify::learning_switch vendor::learning_switch
|
|
42
|
-
"""
|
|
43
|
-
|
|
44
|
-
@slow_process
|
|
45
|
-
Scenario: The -p option can override the default openflow channel port
|
|
46
|
-
When I run `trema -v run ../../objects/examples/learning_switch/learning_switch -c network.conf -p 6633 -d`
|
|
47
|
-
And wait until "learning_switch" is up
|
|
48
|
-
Then the output should contain:
|
|
49
|
-
"""
|
|
50
|
-
switch_manager --daemonize --port=6633 -- port_status::learning_switch packet_in::learning_switch state_notify::learning_switch vendor::learning_switch
|
|
51
|
-
"""
|
|
52
|
-
|
|
53
|
-
@slow_process
|
|
54
|
-
Scenario: switch_manager is killed when trema session is closed
|
|
55
|
-
When I run `trema -v run /bin/true -c network.conf`
|
|
56
|
-
Then the output should contain "Shutting down switch_manager..."
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
@ruby
|
|
2
|
-
Feature: send_packets command
|
|
3
|
-
|
|
4
|
-
In order to send/receive packets between virtual hosts
|
|
5
|
-
As a developer using Trema
|
|
6
|
-
I want to execute "trema send_packets" command
|
|
7
|
-
|
|
8
|
-
Background:
|
|
9
|
-
Given a file named "learning_switch.conf" with:
|
|
10
|
-
"""
|
|
11
|
-
vswitch("learning") { datapath_id 0xabc }
|
|
12
|
-
|
|
13
|
-
vhost("host1") { ip "192.168.0.1" }
|
|
14
|
-
vhost("host2") { ip "192.168.0.2" }
|
|
15
|
-
|
|
16
|
-
link "learning", "host1"
|
|
17
|
-
link "learning", "host2"
|
|
18
|
-
"""
|
|
19
|
-
And I run `trema run ../../src/examples/learning_switch/learning-switch.rb -c learning_switch.conf -d`
|
|
20
|
-
|
|
21
|
-
@slow_process @critical
|
|
22
|
-
Scenario: Sending packets
|
|
23
|
-
When I run `trema send_packets --source host1 --dest host2 --n_pkts=2`
|
|
24
|
-
And I run `trema send_packets --source host2 --dest host1 --n_pkts=1`
|
|
25
|
-
Then the total number of tx packets should be:
|
|
26
|
-
| host1 | host2 |
|
|
27
|
-
| 2 | 1 |
|
|
28
|
-
And the total number of rx packets should be:
|
|
29
|
-
| host1 | host2 |
|
|
30
|
-
| 1 | 2 |
|
|
31
|
-
|
|
32
|
-
@slow_process
|
|
33
|
-
Scenario: unknown host error (--source)
|
|
34
|
-
When I run `trema send_packets --source NO_SUCH_HOST --dest host2`
|
|
35
|
-
Then the output should contain:
|
|
36
|
-
"""
|
|
37
|
-
unknown host: NO_SUCH_HOST
|
|
38
|
-
"""
|
|
39
|
-
|
|
40
|
-
@slow_process
|
|
41
|
-
Scenario: unknown host error (--dest)
|
|
42
|
-
When I run `trema send_packets --source host1 --dest NO_SUCH_HOST`
|
|
43
|
-
Then the output should contain:
|
|
44
|
-
"""
|
|
45
|
-
unknown host: NO_SUCH_HOST
|
|
46
|
-
"""
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
@ruby
|
|
2
|
-
Feature: show_stats command
|
|
3
|
-
|
|
4
|
-
In order to get the stats of sent/received packets
|
|
5
|
-
As a developer using Trema
|
|
6
|
-
I want to execute "trema show_stats" command
|
|
7
|
-
|
|
8
|
-
Background:
|
|
9
|
-
Given a file named "learning_switch.conf" with:
|
|
10
|
-
"""
|
|
11
|
-
vswitch { datapath_id 0xabc }
|
|
12
|
-
|
|
13
|
-
vhost("host1") { ip "192.168.0.1" }
|
|
14
|
-
vhost("host2") { ip "192.168.0.2" }
|
|
15
|
-
|
|
16
|
-
link "0xabc", "host1"
|
|
17
|
-
link "0xabc", "host2"
|
|
18
|
-
"""
|
|
19
|
-
And I run `trema run ../../src/examples/learning_switch/learning-switch.rb -c learning_switch.conf -d`
|
|
20
|
-
|
|
21
|
-
@slow_process
|
|
22
|
-
Scenario: show_stats hostname
|
|
23
|
-
When I run `trema send_packets --source host1 --dest host2`
|
|
24
|
-
And I run `trema show_stats host1`
|
|
25
|
-
Then the output should contain:
|
|
26
|
-
"""
|
|
27
|
-
Sent packets:
|
|
28
|
-
ip_dst,tp_dst,ip_src,tp_src,n_pkts,n_octets
|
|
29
|
-
192.168.0.2,1,192.168.0.1,1,1,50
|
|
30
|
-
Received packets:
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
@slow_process
|
|
34
|
-
Scenario: show_stats hostname --tx
|
|
35
|
-
When I run `trema send_packets --source host1 --dest host2`
|
|
36
|
-
And I run `trema show_stats host1 --tx`
|
|
37
|
-
Then the output should contain:
|
|
38
|
-
"""
|
|
39
|
-
ip_dst,tp_dst,ip_src,tp_src,n_pkts,n_octets
|
|
40
|
-
192.168.0.2,1,192.168.0.1,1,1,50
|
|
41
|
-
"""
|
|
42
|
-
|
|
43
|
-
@slow_process
|
|
44
|
-
Scenario: show_stats hostname --rx
|
|
45
|
-
When I run `trema send_packets --source host1 --dest host2`
|
|
46
|
-
And *** sleep 1 ***
|
|
47
|
-
And I run `trema show_stats host2 --rx`
|
|
48
|
-
Then the output should contain:
|
|
49
|
-
"""
|
|
50
|
-
ip_dst,tp_dst,ip_src,tp_src,n_pkts,n_octets
|
|
51
|
-
192.168.0.2,1,192.168.0.1,1,1,50
|
|
52
|
-
"""
|
|
53
|
-
|
|
54
|
-
Scenario: argument error
|
|
55
|
-
Then I run `trema show_stats`
|
|
56
|
-
Then the output should contain:
|
|
57
|
-
"""
|
|
58
|
-
host is required
|
|
59
|
-
"""
|
|
60
|
-
|
|
61
|
-
Scenario: unknown host error
|
|
62
|
-
Then I run `trema show_stats NO_SUCH_HOST`
|
|
63
|
-
Then the output should contain:
|
|
64
|
-
"""
|
|
65
|
-
unknown host: NO_SUCH_HOST
|
|
66
|
-
"""
|