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
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# rubocop:disable LineLength
|
|
2
|
+
|
|
3
|
+
Then(/^the number of packets sent from "(.*?)" should be:$/) do |host_name, table|
|
|
4
|
+
command = "trema show_stats #{host_name}"
|
|
5
|
+
step "I successfully run `#{command}`"
|
|
6
|
+
|
|
7
|
+
result = {}
|
|
8
|
+
in_current_dir do
|
|
9
|
+
output_from(command).split("\n").each do |each|
|
|
10
|
+
case each
|
|
11
|
+
when /Packets sent/
|
|
12
|
+
next
|
|
13
|
+
when /Packets recevied/
|
|
14
|
+
break
|
|
15
|
+
when /-> (\S+) = (\d+) packet/
|
|
16
|
+
result[Regexp.last_match(1)] = Regexp.last_match(2).to_i
|
|
17
|
+
else
|
|
18
|
+
fail "Failed to parse line '#{each}'"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
table.hashes.each do |each|
|
|
23
|
+
ip_address = each.fetch('destination')
|
|
24
|
+
expect(result.fetch(ip_address)).to eq(each.fetch('#packets').to_i)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
Then(/^the number of packets received by "(.*?)" should be:$/) do |host_name, table|
|
|
29
|
+
command = "trema show_stats #{host_name}"
|
|
30
|
+
step "I successfully run `#{command}`"
|
|
31
|
+
|
|
32
|
+
result = Hash.new(0)
|
|
33
|
+
in_current_dir do
|
|
34
|
+
received = false
|
|
35
|
+
output_from(command).split("\n").each do |each|
|
|
36
|
+
case each
|
|
37
|
+
when /Packets sent/
|
|
38
|
+
next
|
|
39
|
+
when /Packets received/
|
|
40
|
+
received = true
|
|
41
|
+
next
|
|
42
|
+
when /(\S+) -> (\S+) = (\d+) packet/
|
|
43
|
+
next unless received
|
|
44
|
+
result[Regexp.last_match(1)] = Regexp.last_match(3).to_i
|
|
45
|
+
else
|
|
46
|
+
fail "Failed to parse line '#{each}'"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
table.hashes.each do |each|
|
|
51
|
+
ip_address = each.fetch('source')
|
|
52
|
+
expect(result[ip_address]).to eq(each.fetch('#packets').to_i)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# rubocop:enable LineLength
|
data/features/support/env.rb
CHANGED
|
@@ -1,74 +1 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (C) 2008-2013 NEC Corporation
|
|
3
|
-
#
|
|
4
|
-
# This program is free software; you can redistribute it and/or modify
|
|
5
|
-
# it under the terms of the GNU General Public License, version 2, as
|
|
6
|
-
# published by the Free Software Foundation.
|
|
7
|
-
#
|
|
8
|
-
# This program is distributed in the hope that it will be useful,
|
|
9
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
-
# GNU General Public License for more details.
|
|
12
|
-
#
|
|
13
|
-
# You should have received a copy of the GNU General Public License along
|
|
14
|
-
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
require 'bundler'
|
|
20
|
-
begin
|
|
21
|
-
Bundler.setup :default, :development
|
|
22
|
-
rescue Bundler::BundlerError => e
|
|
23
|
-
$stderr.puts e.message
|
|
24
|
-
$stderr.puts 'Run `bundle install` to install missing gems'
|
|
25
|
-
exit e.status_code
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + '/../../ruby'))
|
|
30
|
-
|
|
31
|
-
|
|
32
1
|
require 'aruba/cucumber'
|
|
33
|
-
require 'rspec'
|
|
34
|
-
require 'tempfile'
|
|
35
|
-
require 'trema/executables'
|
|
36
|
-
require 'trema/monkey-patch/string'
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
def run(command)
|
|
40
|
-
fail "Failed to execute #{ command }" unless system(command)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def ps_entry_of(name)
|
|
45
|
-
`ps -ef | grep -w "#{ name } " | grep -v grep`
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
def cucumber_log(name)
|
|
50
|
-
File.join Trema.log, name
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
def new_tmp_log
|
|
55
|
-
system "rm #{ Trema.log }/tmp.*" # cleanup
|
|
56
|
-
`mktemp --tmpdir=#{ Trema.log }`.chomp
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
# show_stats output format:
|
|
61
|
-
# ip_dst,tp_dst,ip_src,tp_src,n_pkts,n_octets
|
|
62
|
-
def count_packets(stats)
|
|
63
|
-
return 0 if stats.split.size <= 1
|
|
64
|
-
stats.split[ 1..-1].inject(0) do | sum, each |
|
|
65
|
-
sum += each.split(',')[ 4].to_i
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
### Local variables:
|
|
71
|
-
### mode: Ruby
|
|
72
|
-
### coding: utf-8-unix
|
|
73
|
-
### indent-tabs-mode: nil
|
|
74
|
-
### End:
|
data/features/support/hooks.rb
CHANGED
|
@@ -1,57 +1,13 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (C) 2008-2013 NEC Corporation
|
|
3
|
-
#
|
|
4
|
-
# This program is free software; you can redistribute it and/or modify
|
|
5
|
-
# it under the terms of the GNU General Public License, version 2, as
|
|
6
|
-
# published by the Free Software Foundation.
|
|
7
|
-
#
|
|
8
|
-
# This program is distributed in the hope that it will be useful,
|
|
9
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
-
# GNU General Public License for more details.
|
|
12
|
-
#
|
|
13
|
-
# You should have received a copy of the GNU General Public License along
|
|
14
|
-
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
require 'trema/path'
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def wait_until_all_pid_files_are_deleted(timeout = 12)
|
|
23
|
-
elapsed = 0
|
|
24
|
-
loop do
|
|
25
|
-
fail 'Failed to clean up remaining processes.' if elapsed > timeout
|
|
26
|
-
break if Dir.glob(File.join(Trema.pid, '*.pid')).empty?
|
|
27
|
-
sleep 0.1
|
|
28
|
-
elapsed += 0.1
|
|
29
|
-
end
|
|
30
|
-
sleep 1
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
|
|
34
1
|
Before do
|
|
35
|
-
@aruba_timeout_seconds =
|
|
36
|
-
run 'trema killall'
|
|
37
|
-
wait_until_all_pid_files_are_deleted
|
|
2
|
+
@aruba_timeout_seconds = 5
|
|
38
3
|
end
|
|
39
4
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
@
|
|
5
|
+
Before('@sudo') do
|
|
6
|
+
fail 'sudo authentication failed' unless system 'sudo -v'
|
|
7
|
+
@aruba_timeout_seconds = 10
|
|
43
8
|
end
|
|
44
9
|
|
|
45
|
-
|
|
46
10
|
After do
|
|
47
|
-
run 'trema killall'
|
|
48
|
-
|
|
49
|
-
processes.clear
|
|
11
|
+
run 'trema killall --all'
|
|
12
|
+
sleep 5
|
|
50
13
|
end
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
### Local variables:
|
|
54
|
-
### mode: Ruby
|
|
55
|
-
### coding: utf-8-unix
|
|
56
|
-
### indent-tabs-mode: nil
|
|
57
|
-
### End:
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Feature: trema start command
|
|
2
|
+
Background:
|
|
3
|
+
Given I set the environment variables to:
|
|
4
|
+
| variable | value |
|
|
5
|
+
| TREMA_LOG_DIR | . |
|
|
6
|
+
| TREMA_PID_DIR | . |
|
|
7
|
+
| TREMA_SOCKET_DIR | . |
|
|
8
|
+
And a file named "packet_in_controller.rb" with:
|
|
9
|
+
"""
|
|
10
|
+
class PacketInController < Trema::Controller
|
|
11
|
+
def packet_in(dpid, message)
|
|
12
|
+
logger.info 'new packet_in'
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
"""
|
|
16
|
+
And a file named "trema.conf" with:
|
|
17
|
+
"""
|
|
18
|
+
vswitch { datapath_id 0xabc }
|
|
19
|
+
vhost('host1') { ip '192.168.0.1' }
|
|
20
|
+
vhost('host2') { ip '192.168.0.2' }
|
|
21
|
+
link '0xabc', 'host1'
|
|
22
|
+
link '0xabc', 'host2'
|
|
23
|
+
"""
|
|
24
|
+
And I run `trema run packet_in_controller.rb -c trema.conf -d`
|
|
25
|
+
|
|
26
|
+
@sudo
|
|
27
|
+
Scenario: trema delete_link 0xabc host1
|
|
28
|
+
When I successfully run `trema delete_link 0xabc host1`
|
|
29
|
+
And I successfully run `trema send_packets --source host1 --dest host2`
|
|
30
|
+
Then the file "PacketInController.log" should not contain "new packet_in"
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
Feature: trema killall command
|
|
2
|
+
Background:
|
|
3
|
+
Given I set the environment variables to:
|
|
4
|
+
| variable | value |
|
|
5
|
+
| TREMA_LOG_DIR | . |
|
|
6
|
+
| TREMA_PID_DIR | . |
|
|
7
|
+
| TREMA_SOCKET_DIR | . |
|
|
8
|
+
And a file named "null_controller.rb" with:
|
|
9
|
+
"""
|
|
10
|
+
class NullController < Trema::Controller; end
|
|
11
|
+
"""
|
|
12
|
+
And a file named "trema.conf" with:
|
|
13
|
+
"""
|
|
14
|
+
vswitch { datapath_id 0xabc }
|
|
15
|
+
vhost('host1') { ip '192.168.0.1' }
|
|
16
|
+
vhost('host2') { ip '192.168.0.2' }
|
|
17
|
+
link '0xabc', 'host1'
|
|
18
|
+
link '0xabc', 'host2'
|
|
19
|
+
"""
|
|
20
|
+
And I run `trema run null_controller.rb -c trema.conf -d`
|
|
21
|
+
And a file named "void_controller.rb" with:
|
|
22
|
+
"""
|
|
23
|
+
class VoidController < Trema::Controller; end
|
|
24
|
+
"""
|
|
25
|
+
And I run `trema run void_controller.rb -p 6654 -d`
|
|
26
|
+
|
|
27
|
+
@sudo
|
|
28
|
+
Scenario: killall controller_name
|
|
29
|
+
When I successfully run `trema killall NullController`
|
|
30
|
+
Then virtual links should not exist
|
|
31
|
+
And I successfully run `ls`
|
|
32
|
+
And the following files should not exist:
|
|
33
|
+
| NullController.pid |
|
|
34
|
+
| vhost.host1.pid |
|
|
35
|
+
| vhost.host2.pid |
|
|
36
|
+
And the following files should exist:
|
|
37
|
+
| VoidController.pid |
|
|
38
|
+
|
|
39
|
+
@sudo
|
|
40
|
+
Scenario: killall --all
|
|
41
|
+
When I successfully run `trema killall --all`
|
|
42
|
+
Then virtual links should not exist
|
|
43
|
+
And the following files should not exist:
|
|
44
|
+
| NullController.pid |
|
|
45
|
+
| VoidController.pid |
|
|
46
|
+
| vhost.host1.pid |
|
|
47
|
+
| vhost.host2.pid |
|
|
48
|
+
|
|
49
|
+
@sudo
|
|
50
|
+
Scenario: killall NO_SUCH_NAME
|
|
51
|
+
When I run `trema killall NO_SUCH_NAME`
|
|
52
|
+
Then the exit status should not be 0
|
|
53
|
+
And the output should contain:
|
|
54
|
+
"""
|
|
55
|
+
Controller process "NO_SUCH_NAME" does not exist.
|
|
56
|
+
"""
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
Feature: trema run command
|
|
2
|
+
Background:
|
|
3
|
+
Given I set the environment variables to:
|
|
4
|
+
| variable | value |
|
|
5
|
+
| TREMA_LOG_DIR | . |
|
|
6
|
+
| TREMA_PID_DIR | . |
|
|
7
|
+
| TREMA_SOCKET_DIR | . |
|
|
8
|
+
|
|
9
|
+
@sudo
|
|
10
|
+
Scenario: the default port
|
|
11
|
+
Given a file named "switch_ready.rb" with:
|
|
12
|
+
"""
|
|
13
|
+
class SwitchReady < Trema::Controller
|
|
14
|
+
def switch_ready(dpid)
|
|
15
|
+
logger.info format('Hello %s!', dpid.to_hex)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
"""
|
|
19
|
+
And a file named "trema.conf" with:
|
|
20
|
+
"""
|
|
21
|
+
vswitch { datapath_id 0xabc }
|
|
22
|
+
"""
|
|
23
|
+
When I successfully run `trema -v run switch_ready.rb -c trema.conf -d`
|
|
24
|
+
And I run `sleep 5`
|
|
25
|
+
Then the file "SwitchReady.log" should contain "Hello 0xabc!"
|
|
26
|
+
|
|
27
|
+
@sudo
|
|
28
|
+
Scenario: -p option
|
|
29
|
+
Given a file named "switch_ready.rb" with:
|
|
30
|
+
"""
|
|
31
|
+
class SwitchReady < Trema::Controller
|
|
32
|
+
def switch_ready(dpid)
|
|
33
|
+
logger.info format('Hello %s!', dpid.to_hex)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
"""
|
|
37
|
+
And a file named "trema.conf" with:
|
|
38
|
+
"""
|
|
39
|
+
vswitch {
|
|
40
|
+
datapath_id 0xabc
|
|
41
|
+
port 1234
|
|
42
|
+
}
|
|
43
|
+
"""
|
|
44
|
+
When I successfully run `trema -v run -p 1234 switch_ready.rb -c trema.conf -d`
|
|
45
|
+
And I run `sleep 5`
|
|
46
|
+
Then the file "SwitchReady.log" should contain "Hello 0xabc!"
|
|
47
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
Feature: trema start command
|
|
2
|
+
Background:
|
|
3
|
+
Given I set the environment variables to:
|
|
4
|
+
| variable | value |
|
|
5
|
+
| TREMA_LOG_DIR | . |
|
|
6
|
+
| TREMA_PID_DIR | . |
|
|
7
|
+
| TREMA_SOCKET_DIR | . |
|
|
8
|
+
And a file named "switch_ready_controller.rb" with:
|
|
9
|
+
"""
|
|
10
|
+
class SwitchReadyController < Trema::Controller
|
|
11
|
+
def switch_ready(dpid)
|
|
12
|
+
if @reconnect
|
|
13
|
+
logger.info "Switch #{dpid.to_hex} connected again."
|
|
14
|
+
else
|
|
15
|
+
logger.info "Switch #{dpid.to_hex} connected."
|
|
16
|
+
@reconnect = true
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
"""
|
|
21
|
+
And a file named "trema.conf" with:
|
|
22
|
+
"""
|
|
23
|
+
vswitch { datapath_id 0xabc }
|
|
24
|
+
vhost('host1') { ip '192.168.0.1' }
|
|
25
|
+
link '0xabc', 'host1'
|
|
26
|
+
"""
|
|
27
|
+
And I run `trema run switch_ready_controller.rb -c trema.conf -d`
|
|
28
|
+
|
|
29
|
+
@sudo
|
|
30
|
+
Scenario: trema stop and start switch_name
|
|
31
|
+
Given I successfully run `trema stop 0xabc`
|
|
32
|
+
When I successfully run `trema start 0xabc`
|
|
33
|
+
And I successfully run `sleep 10`
|
|
34
|
+
Then the file "SwitchReadyController.log" should contain:
|
|
35
|
+
"""
|
|
36
|
+
Switch 0xabc connected again.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
@sudo
|
|
40
|
+
Scenario: trema stop and start host_name
|
|
41
|
+
Given I successfully run `trema stop host1`
|
|
42
|
+
And I successfully run `sleep 3`
|
|
43
|
+
When I successfully run `trema start host1`
|
|
44
|
+
And I successfully run `sleep 10`
|
|
45
|
+
Then the following files should exist:
|
|
46
|
+
| vhost.host1.pid |
|
|
47
|
+
|
|
48
|
+
@sudo
|
|
49
|
+
Scenario: start switch_name (already running)
|
|
50
|
+
When I run `trema start 0xabc`
|
|
51
|
+
Then the exit status should not be 0
|
|
52
|
+
And the output should contain:
|
|
53
|
+
"""
|
|
54
|
+
error: Open vSwitch (dpid = 2748) is already running!
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
@sudo
|
|
58
|
+
Scenario: start host_name (already running)
|
|
59
|
+
When I run `trema start host1`
|
|
60
|
+
Then the exit status should not be 0
|
|
61
|
+
# And the output should contain:
|
|
62
|
+
# """
|
|
63
|
+
# error: vhost "host1" is already running!
|
|
64
|
+
# """
|
|
65
|
+
|
|
66
|
+
@sudo
|
|
67
|
+
Scenario: start NO_SUCH_NAME
|
|
68
|
+
When I run `trema start NO_SUCH_NAME`
|
|
69
|
+
Then the exit status should not be 0
|
|
70
|
+
And the output should contain:
|
|
71
|
+
"""
|
|
72
|
+
"NO_SUCH_NAME" does not exist.
|
|
73
|
+
"""
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
Feature: trema stop command
|
|
2
|
+
Background:
|
|
3
|
+
Given I set the environment variables to:
|
|
4
|
+
| variable | value |
|
|
5
|
+
| TREMA_LOG_DIR | . |
|
|
6
|
+
| TREMA_PID_DIR | . |
|
|
7
|
+
| TREMA_SOCKET_DIR | . |
|
|
8
|
+
And a file named "switch_disconnected_controller.rb" with:
|
|
9
|
+
"""
|
|
10
|
+
class SwitchDisconnectedController < Trema::Controller
|
|
11
|
+
def switch_disconnected(dpid)
|
|
12
|
+
logger.info "Switch #{dpid.to_hex} is disconnected."
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
"""
|
|
16
|
+
And a file named "trema.conf" with:
|
|
17
|
+
"""
|
|
18
|
+
vswitch { datapath_id 0xabc }
|
|
19
|
+
|
|
20
|
+
vhost('host1') { ip '192.168.0.1' }
|
|
21
|
+
vhost('host2') { ip '192.168.0.2' }
|
|
22
|
+
|
|
23
|
+
link '0xabc', 'host1'
|
|
24
|
+
link '0xabc', 'host2'
|
|
25
|
+
"""
|
|
26
|
+
And I run `trema run switch_disconnected_controller.rb -c trema.conf -d`
|
|
27
|
+
|
|
28
|
+
@sudo
|
|
29
|
+
Scenario: stop switch_name
|
|
30
|
+
When I successfully run `trema stop 0xabc`
|
|
31
|
+
And I successfully run `sleep 10`
|
|
32
|
+
Then the file "SwitchDisconnectedController.log" should contain:
|
|
33
|
+
"""
|
|
34
|
+
Switch 0xabc is disconnected.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
@sudo
|
|
38
|
+
Scenario: stop host_name
|
|
39
|
+
When I successfully run `trema stop host1`
|
|
40
|
+
And I successfully run `sleep 5`
|
|
41
|
+
Then the file "vhost.host1.pid" should not exist
|
|
42
|
+
|
|
43
|
+
@sudo
|
|
44
|
+
Scenario: stop NO_SUCH_NAME
|
|
45
|
+
When I run `trema stop NO_SUCH_NAME`
|
|
46
|
+
Then the exit status should not be 0
|
|
47
|
+
And the output should contain:
|
|
48
|
+
"""
|
|
49
|
+
"NO_SUCH_NAME" does not exist.
|
|
50
|
+
"""
|