trema 0.4.7 → 0.4.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
data/features/.nav
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
- trema_commands:
|
2
|
-
- version_option.feature
|
3
|
-
- help_option.feature
|
4
|
-
- run.feature
|
5
|
-
- kill.feature
|
6
|
-
- up.feature
|
7
|
-
- killall.feature
|
8
|
-
- send_packets.feature
|
9
|
-
- port_up.feature
|
10
|
-
- port_down.feature
|
11
|
-
- show_stats.feature
|
12
|
-
- reset_stats.feature
|
13
|
-
- dump_flows.feature
|
14
|
-
- version.feature
|
15
|
-
- help.feature
|
16
|
-
- dsl:
|
17
|
-
- switch_port_specifier.feature
|
18
|
-
- examples:
|
19
|
-
- hello_trema.feature
|
20
|
-
- list_switches.feature
|
21
|
-
- switch_monitor.feature
|
22
|
-
- switch_info.feature
|
23
|
-
- patch_panel.feature
|
24
|
-
- packet_in.feature
|
25
|
-
- dumper.feature
|
26
|
-
- repeater_hub.feature
|
27
|
-
- learning_switch.feature
|
28
|
-
- multi_learning_switch.feature
|
29
|
-
- openflow_message.hello.feature
|
30
|
-
- openflow_message.echo.feature
|
31
|
-
- openflow_message.features_request.feature
|
32
|
-
- message.set_config.feature
|
33
|
-
- message.vendor-action.feature
|
34
|
-
- packetin_filter_config.feature
|
35
|
-
- switch_event:
|
36
|
-
- add_forward_entry.feature
|
37
|
-
- delete_forward_entry.feature
|
38
|
-
- dump_forward_entries.feature
|
39
|
-
- set_forward_entries.feature
|
40
|
-
- C-add_forward_entry.feature
|
41
|
-
- C-delete_forward_entry.feature
|
42
|
-
- C-dump_forward_entries.feature
|
43
|
-
- C-set_forward_entries.feature
|
44
|
-
- handlers:
|
45
|
-
- switch_ready.feature
|
46
|
-
- core:
|
47
|
-
- switch_manager.feature
|
48
|
-
- packetin_filter.feature
|
49
|
-
- trema-config.feature
|
50
|
-
- get_pid_by_trema_name.feature
|
data/features/README.md
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
## Issues
|
2
|
-
|
3
|
-
This documentation is
|
4
|
-
[open source](https://github.com/trema/trema/tree/develop/features),
|
5
|
-
and a work in progress. If you find it incomplete or confusing, please
|
6
|
-
[submit an isssue](https://github.com/trema/trema/issues), or, better
|
7
|
-
yet, [a pull request](https://github.com/trema/trema/pulls).
|
@@ -1,137 +0,0 @@
|
|
1
|
-
Feature: get_pid_by_trema_name()
|
2
|
-
|
3
|
-
The function get_pid_by_trema_name() returns the PID of the process
|
4
|
-
specified by its `name` argument.
|
5
|
-
If the `name` is not found, the function returns -1.
|
6
|
-
|
7
|
-
pid_t get_pid_by_trema_name( const char *name )
|
8
|
-
|
9
|
-
The `name` argument refers to controller process name called *trema-name*.
|
10
|
-
In the trema framework the trema-name is a unique identifier assigned to
|
11
|
-
each controller process.
|
12
|
-
It is determined automatically by the following rules:
|
13
|
-
|
14
|
-
**Rule 1:** When you start a Ruby controller:
|
15
|
-
|
16
|
-
class TopologyController < Controller
|
17
|
-
...
|
18
|
-
end
|
19
|
-
|
20
|
-
$ trema run topology-controller.rb
|
21
|
-
|
22
|
-
then its trema-name is set to "TopologyController",
|
23
|
-
which is the same as the class name.
|
24
|
-
|
25
|
-
**Rule 2:** When you start a C controller:
|
26
|
-
|
27
|
-
$ trema run topology_controller
|
28
|
-
|
29
|
-
then its trema-name is set to "topology_controller",
|
30
|
-
which is same as the executable name.
|
31
|
-
|
32
|
-
**Rule 3:** Trema-name can be overwritten using the `-n` or `--name`
|
33
|
-
option given by the `trema run` command.
|
34
|
-
|
35
|
-
$ trema run "topology_controller -n topology"
|
36
|
-
$ trema run "topology_controller --name=topology"
|
37
|
-
|
38
|
-
Background:
|
39
|
-
Given a file named "print_pid.c" with:
|
40
|
-
"""
|
41
|
-
#include <stdio.h>
|
42
|
-
#include "trema.h"
|
43
|
-
|
44
|
-
int
|
45
|
-
main( int argc, char* argv[] ) {
|
46
|
-
init_trema( &argc, &argv );
|
47
|
-
|
48
|
-
if ( argc >= 2 ) {
|
49
|
-
pid_t pid = get_pid_by_trema_name( argv[ 1 ] );
|
50
|
-
if ( pid == -1 ) {
|
51
|
-
printf( "No such process : %s\n", argv[ 1 ] );
|
52
|
-
}
|
53
|
-
else {
|
54
|
-
printf( "PID of %s = %d\n", argv[ 1 ], pid );
|
55
|
-
}
|
56
|
-
}
|
57
|
-
|
58
|
-
finalize_trema();
|
59
|
-
return 0;
|
60
|
-
}
|
61
|
-
"""
|
62
|
-
And I compile "print_pid.c" into "print_pid"
|
63
|
-
And a file named "c_controller.c" with:
|
64
|
-
"""
|
65
|
-
#include "trema.h"
|
66
|
-
|
67
|
-
int
|
68
|
-
main( int argc, char* argv[] ) {
|
69
|
-
init_trema( &argc, &argv );
|
70
|
-
start_trema();
|
71
|
-
return 0;
|
72
|
-
}
|
73
|
-
"""
|
74
|
-
And I compile "c_controller.c" into "c_controller"
|
75
|
-
|
76
|
-
Scenario: Getting the PID of a Ruby controller process with a default name.
|
77
|
-
Given a file named "RubyController.rb" with:
|
78
|
-
"""
|
79
|
-
class RubyController < Controller
|
80
|
-
end
|
81
|
-
"""
|
82
|
-
And I run `trema run ./RubyController.rb -d`
|
83
|
-
And wait until "RubyController" is up
|
84
|
-
When I run `trema run "./print_pid RubyController"`
|
85
|
-
Then the output should match:
|
86
|
-
"""
|
87
|
-
PID of RubyController = \d+
|
88
|
-
"""
|
89
|
-
|
90
|
-
Scenario: Getting the PID of a C controller process with a default name.
|
91
|
-
Given I run `trema run "./c_controller" -d`
|
92
|
-
And wait until "c_controller" is up
|
93
|
-
When I run `trema run "./print_pid c_controller"`
|
94
|
-
Then the output should match:
|
95
|
-
"""
|
96
|
-
PID of c_controller = \d+
|
97
|
-
"""
|
98
|
-
|
99
|
-
Scenario: Getting the PID of a C controller process renamed through CLI option '-n'.
|
100
|
-
Given I run `trema run "./c_controller -n NewName" -d`
|
101
|
-
And wait until "NewName" is up
|
102
|
-
When I run `trema run "./print_pid NewName"`
|
103
|
-
Then the output should match:
|
104
|
-
"""
|
105
|
-
PID of NewName = \d+
|
106
|
-
"""
|
107
|
-
|
108
|
-
Scenario: Getting the PID of a C controller process renamed through CLI option '--name'.
|
109
|
-
Given I run `trema run "./c_controller --name=NewName" -d`
|
110
|
-
And wait until "NewName" is up
|
111
|
-
When I run `trema run "./print_pid NewName"`
|
112
|
-
Then the output should match:
|
113
|
-
"""
|
114
|
-
PID of NewName = \d+
|
115
|
-
"""
|
116
|
-
|
117
|
-
@wip
|
118
|
-
Scenario: Getting the PID of a Ruby controller process renamed through CLI option '-n'.
|
119
|
-
Given a file named "RubyController.rb" with:
|
120
|
-
"""
|
121
|
-
class RubyController < Controller
|
122
|
-
end
|
123
|
-
"""
|
124
|
-
And I run `trema run "./RubyController.rb -n NewName" -d`
|
125
|
-
And wait until "NewName" is up
|
126
|
-
When I run `trema run "./print_pid NewName"`
|
127
|
-
Then the output should match:
|
128
|
-
"""
|
129
|
-
PID of NewName = \d+
|
130
|
-
"""
|
131
|
-
|
132
|
-
Scenario: Getting the PID of non-existent controller returns an error code -1.
|
133
|
-
When I run `trema run "./print_pid NO_SUCH_TREMA_PROCESS"`
|
134
|
-
Then the output should match:
|
135
|
-
"""
|
136
|
-
No such process : NO_SUCH_TREMA_PROCESS
|
137
|
-
"""
|
@@ -1,55 +0,0 @@
|
|
1
|
-
Feature: packetin_filter help
|
2
|
-
|
3
|
-
As a Trema user
|
4
|
-
I want to see the help message of packetin_filter command
|
5
|
-
So that I can learn how to use packetin_filter
|
6
|
-
|
7
|
-
@wip
|
8
|
-
Scenario: packetin_filter --help
|
9
|
-
When I try to run "./objects/packetin_filter/packetin_filter --help"
|
10
|
-
Then the output should be:
|
11
|
-
"""
|
12
|
-
OpenFlow Packet in Filter.
|
13
|
-
Usage: packetin_filter [OPTION]... [PACKETIN-FILTER-RULE]...
|
14
|
-
|
15
|
-
-n, --name=SERVICE_NAME service name
|
16
|
-
-d, --daemonize run in the background
|
17
|
-
-l, --logging_level=LEVEL set logging level
|
18
|
-
-g, --syslog output log messages to syslog
|
19
|
-
-f, --logging_facility=FACILITY set syslog facility
|
20
|
-
-h, --help display this help and exit
|
21
|
-
|
22
|
-
PACKETIN-FILTER-RULE:
|
23
|
-
match-type::destination-service-name
|
24
|
-
|
25
|
-
match-type:
|
26
|
-
lldp LLDP ethernet frame type and priority is 0x8000
|
27
|
-
packet_in any packet and priority is zero
|
28
|
-
|
29
|
-
destination-service-name destination service name
|
30
|
-
"""
|
31
|
-
|
32
|
-
@wip
|
33
|
-
Scenario: packetin_filter -h
|
34
|
-
When I try to run "./objects/packetin_filter/packetin_filter -h"
|
35
|
-
Then the output should be:
|
36
|
-
"""
|
37
|
-
OpenFlow Packet in Filter.
|
38
|
-
Usage: packetin_filter [OPTION]... [PACKETIN-FILTER-RULE]...
|
39
|
-
|
40
|
-
-n, --name=SERVICE_NAME service name
|
41
|
-
-d, --daemonize run in the background
|
42
|
-
-l, --logging_level=LEVEL set logging level
|
43
|
-
-g, --syslog output log messages to syslog
|
44
|
-
-f, --logging_facility=FACILITY set syslog facility
|
45
|
-
-h, --help display this help and exit
|
46
|
-
|
47
|
-
PACKETIN-FILTER-RULE:
|
48
|
-
match-type::destination-service-name
|
49
|
-
|
50
|
-
match-type:
|
51
|
-
lldp LLDP ethernet frame type and priority is 0x8000
|
52
|
-
packet_in any packet and priority is zero
|
53
|
-
|
54
|
-
destination-service-name destination service name
|
55
|
-
"""
|
@@ -1,41 +0,0 @@
|
|
1
|
-
Feature: switch_manager help
|
2
|
-
|
3
|
-
As a Trema user
|
4
|
-
I want to see the help message of switch_manager command
|
5
|
-
So that I can learn how to use switch_manager
|
6
|
-
|
7
|
-
@wip
|
8
|
-
Scenario: switch_manager --help
|
9
|
-
When I try to run "./objects/switch_manager/switch_manager --help"
|
10
|
-
Then the output should be:
|
11
|
-
"""
|
12
|
-
OpenFlow Switch Manager.
|
13
|
-
Usage: switch_manager [OPTION]... [-- SWITCH_MANAGER_OPTION]...
|
14
|
-
|
15
|
-
-s, --switch=PATH the command path of switch
|
16
|
-
-n, --name=SERVICE_NAME service name
|
17
|
-
-p, --port=PORT server listen port (default 6653)
|
18
|
-
-d, --daemonize run in the background
|
19
|
-
-l, --logging_level=LEVEL set logging level
|
20
|
-
-g, --syslog output log messages to syslog
|
21
|
-
-f, --logging_facility=FACILITY set syslog facility
|
22
|
-
-h, --help display this help and exit
|
23
|
-
"""
|
24
|
-
|
25
|
-
@wip
|
26
|
-
Scenario: switch_manager -h
|
27
|
-
When I try to run "./objects/switch_manager/switch_manager -h"
|
28
|
-
Then the output should be:
|
29
|
-
"""
|
30
|
-
OpenFlow Switch Manager.
|
31
|
-
Usage: switch_manager [OPTION]... [-- SWITCH_MANAGER_OPTION]...
|
32
|
-
|
33
|
-
-s, --switch=PATH the command path of switch
|
34
|
-
-n, --name=SERVICE_NAME service name
|
35
|
-
-p, --port=PORT server listen port (default 6653)
|
36
|
-
-d, --daemonize run in the background
|
37
|
-
-l, --logging_level=LEVEL set logging level
|
38
|
-
-g, --syslog output log messages to syslog
|
39
|
-
-f, --logging_facility=FACILITY set syslog facility
|
40
|
-
-h, --help display this help and exit
|
41
|
-
"""
|
@@ -1,55 +0,0 @@
|
|
1
|
-
Feature: trema-config command
|
2
|
-
|
3
|
-
In order to specify C compiler options easily
|
4
|
-
As a developer using Trema
|
5
|
-
I want to use trema-config command
|
6
|
-
|
7
|
-
Scenario: trema-config --cflags
|
8
|
-
When I run `trema-config --cflags`
|
9
|
-
Then the output should match /^-I\S+lib -I\S+openflow$/
|
10
|
-
|
11
|
-
Scenario: trema-config -c
|
12
|
-
When I run `trema-config -c`
|
13
|
-
Then the output should match /^-I\S+lib -I\S+openflow$/
|
14
|
-
|
15
|
-
Scenario: trema-config --libs
|
16
|
-
When I run `trema-config --libs`
|
17
|
-
Then the output should match /^-L\S+lib -l.*/
|
18
|
-
|
19
|
-
Scenario: trema-config -l
|
20
|
-
When I run `trema-config -l`
|
21
|
-
Then the output should match /^-L\S+lib -l.*/
|
22
|
-
|
23
|
-
Scenario: trema-config --cflags --libs
|
24
|
-
When I run `trema-config --cflags --libs`
|
25
|
-
Then the output should match /^-I\S+lib -I\S+openflow -L\S+lib -l.*/
|
26
|
-
|
27
|
-
Scenario: trema-config -c --libs
|
28
|
-
When I run `trema-config -c --libs`
|
29
|
-
Then the output should match /^-I\S+lib -I\S+openflow -L\S+lib -l.*/
|
30
|
-
|
31
|
-
Scenario: trema-config --cflags -l
|
32
|
-
When I run `trema-config --cflags -l`
|
33
|
-
Then the output should match /^-I\S+lib -I\S+openflow -L\S+lib -l.*/
|
34
|
-
|
35
|
-
Scenario: trema-config -c -l
|
36
|
-
When I run `trema-config -c -l`
|
37
|
-
Then the output should match /^-I\S+lib -I\S+openflow -L\S+lib -l.*/
|
38
|
-
|
39
|
-
Scenario: trema-config --help
|
40
|
-
When I run `trema-config --help`
|
41
|
-
Then the output should contain:
|
42
|
-
"""
|
43
|
-
Usage: trema-config [OPTIONS ...]
|
44
|
-
-c, --cflags
|
45
|
-
-l, --libs
|
46
|
-
"""
|
47
|
-
|
48
|
-
Scenario: trema-config -h
|
49
|
-
When I run `trema-config -h`
|
50
|
-
Then the output should contain:
|
51
|
-
"""
|
52
|
-
Usage: trema-config [OPTIONS ...]
|
53
|
-
-c, --cflags
|
54
|
-
-l, --libs
|
55
|
-
"""
|
@@ -1,15 +0,0 @@
|
|
1
|
-
@wip @ruby
|
2
|
-
Feature: Switch Port Specifier
|
3
|
-
By adding a postfix (`:port#`) to the switch's name found in the `link` directive you can specify the exact port number to be used when the link is created.
|
4
|
-
|
5
|
-
vswitch( "switch" ) { dpid 0xabc }
|
6
|
-
vhost "host1"
|
7
|
-
vhost "host2"
|
8
|
-
vhost "host3"
|
9
|
-
link "host1", "switch:1" # Connects host1 to switch-port #1
|
10
|
-
link "host2", "switch:2" # Connects host2 to switch-port #2
|
11
|
-
link "host3", "switch:3" # Connects host3 to switch-port #3
|
12
|
-
|
13
|
-
The reason why this feature required is that if the port number is not explicitly specified, trema randomly determines this. Which might be sufficient for some simple test cases but it is inadequate for other complex test cases.
|
14
|
-
|
15
|
-
Therefore, if you wish to test your controllers rigorously on a configured virtual network you might find the `switch_name:port_number` syntax useful. It is also useful to be able to send packets to destined hosts or switches via the specified ports by using `SendOutPort` actions.
|
@@ -1,35 +0,0 @@
|
|
1
|
-
Feature: "Dumper" sample application
|
2
|
-
|
3
|
-
In order to learn how to dump miscellaneous OpenFlow messages
|
4
|
-
As a developer using Trema
|
5
|
-
I want to execute "Dumper" sample application
|
6
|
-
|
7
|
-
Background:
|
8
|
-
Given a file named "dumper.conf" with:
|
9
|
-
"""
|
10
|
-
vswitch("dumper") { datapath_id 0xabc }
|
11
|
-
|
12
|
-
vhost("host1")
|
13
|
-
vhost("host2")
|
14
|
-
|
15
|
-
link "dumper", "host1"
|
16
|
-
link "dumper", "host2"
|
17
|
-
"""
|
18
|
-
|
19
|
-
@slow_process @critical @ruby
|
20
|
-
Scenario: Run "Dumper" Ruby example
|
21
|
-
Given I run `trema run ../../src/examples/dumper/dumper.rb -c dumper.conf -d`
|
22
|
-
And wait until "Dumper" is up
|
23
|
-
When I send 1 packet from host1 to host2
|
24
|
-
Then the file "../../tmp/log/Dumper.log" should contain "[switch_ready]"
|
25
|
-
And the file "../../tmp/log/Dumper.log" should contain "[packet_in]"
|
26
|
-
And the file "../../tmp/log/Dumper.log" should contain "datapath_id: 0xabc"
|
27
|
-
|
28
|
-
@slow_process
|
29
|
-
Scenario: Run "Dumper" C example
|
30
|
-
Given I run `trema run ../../objects/examples/dumper/dumper -c dumper.conf -d`
|
31
|
-
And wait until "dumper" is up
|
32
|
-
When I send 1 packet from host1 to host2
|
33
|
-
Then the file "../../tmp/log/dumper.log" should contain "[switch_ready]"
|
34
|
-
And the file "../../tmp/log/dumper.log" should contain "[packet_in]"
|
35
|
-
And the file "../../tmp/log/dumper.log" should contain "datapath_id: 0xabc"
|
@@ -1,23 +0,0 @@
|
|
1
|
-
Feature: "Hello Trema!" example
|
2
|
-
|
3
|
-
The "Hello Trema!" example ([trema]/src/examples/hello_trema/) is one
|
4
|
-
of the simplest OpenFlow controller implementation. The basic
|
5
|
-
functionality of this controller is to establish a secure channel connection
|
6
|
-
with an OpenFlow switch and output the "Hello [switch's dpid]!" message.
|
7
|
-
|
8
|
-
This demonstrates a minimum template for Trema applications written in Ruby
|
9
|
-
or C. Hence it's a good starting point to learn about Trema programming.
|
10
|
-
|
11
|
-
Background:
|
12
|
-
Given I cd to "../../src/examples/hello_trema/"
|
13
|
-
|
14
|
-
@slow_process @critical @ruby
|
15
|
-
Scenario: Run the Ruby example
|
16
|
-
When I run `trema run ./hello-trema.rb -c sample.conf` interactively
|
17
|
-
Then the output should contain "Hello 0xabc!" within the timeout period
|
18
|
-
|
19
|
-
@slow_process
|
20
|
-
Scenario: Run the C example
|
21
|
-
Given I compile "hello_trema.c" into "hello_trema"
|
22
|
-
When I run `trema run ./hello_trema -c sample.conf` interactively
|
23
|
-
Then the output should contain "Hello 0xabc!" within the timeout period
|
@@ -1,37 +0,0 @@
|
|
1
|
-
Feature: "Learning Switch" sample application
|
2
|
-
|
3
|
-
In order to learn how to implement software L2 switch
|
4
|
-
As a developer using Trema
|
5
|
-
I want to execute "Learning Switch" sample application
|
6
|
-
|
7
|
-
Background:
|
8
|
-
Given a file named "learning_switch.conf" with:
|
9
|
-
"""
|
10
|
-
vswitch("learning") { datapath_id "0xabc" }
|
11
|
-
|
12
|
-
vhost("host1") { ip "192.168.0.1" }
|
13
|
-
vhost("host2") { ip "192.168.0.2" }
|
14
|
-
|
15
|
-
link "learning", "host1"
|
16
|
-
link "learning", "host2"
|
17
|
-
"""
|
18
|
-
|
19
|
-
@slow_process @ruby
|
20
|
-
Scenario: Run "Learning Switch" Ruby example
|
21
|
-
Given I run `trema run ../../src/examples/learning_switch/learning-switch.rb -c learning_switch.conf -d`
|
22
|
-
And wait until "LearningSwitch" is up
|
23
|
-
When I send 1 packet from host1 to host2
|
24
|
-
And I run `trema show_stats host1 --tx`
|
25
|
-
And I run `trema show_stats host2 --rx`
|
26
|
-
Then the output from "trema show_stats host1 --tx" should contain "192.168.0.2,1,192.168.0.1,1,1,50"
|
27
|
-
And the output from "trema show_stats host2 --rx" should contain "192.168.0.2,1,192.168.0.1,1,1,50"
|
28
|
-
|
29
|
-
@slow_process
|
30
|
-
Scenario: Run "Learning Switch" C example
|
31
|
-
Given I run `trema run ../../objects/examples/learning_switch/learning_switch -c learning_switch.conf -d`
|
32
|
-
And wait until "learning_switch" is up
|
33
|
-
When I send 1 packet from host1 to host2
|
34
|
-
And I run `trema show_stats host1 --tx`
|
35
|
-
And I run `trema show_stats host2 --rx`
|
36
|
-
Then the output from "trema show_stats host1 --tx" should contain "192.168.0.2,1,192.168.0.1,1,1,50"
|
37
|
-
And the output from "trema show_stats host2 --rx" should contain "192.168.0.2,1,192.168.0.1,1,1,50"
|