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
data/spec/trema_spec.rb
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
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 File.join(File.dirname(__FILE__), 'spec_helper')
|
|
20
|
-
require 'trema'
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
describe Trema do
|
|
24
|
-
it { should have_constant :OFPC_FLOW_STATS }
|
|
25
|
-
it { should have_constant :OFPC_TABLE_STATS }
|
|
26
|
-
it { should have_constant :OFPC_PORT_STATS }
|
|
27
|
-
it { should have_constant :OFPC_STP }
|
|
28
|
-
it { should have_constant :OFPC_RESERVED }
|
|
29
|
-
it { should have_constant :OFPC_IP_REASM }
|
|
30
|
-
it { should have_constant :OFPC_QUEUE_STATS }
|
|
31
|
-
it { should have_constant :OFPC_ARP_MATCH_IP }
|
|
32
|
-
|
|
33
|
-
it { should have_constant :OFPAT_OUTPUT }
|
|
34
|
-
it { should have_constant :OFPAT_SET_VLAN_VID }
|
|
35
|
-
it { should have_constant :OFPAT_SET_VLAN_PCP }
|
|
36
|
-
it { should have_constant :OFPAT_STRIP_VLAN }
|
|
37
|
-
it { should have_constant :OFPAT_SET_DL_SRC }
|
|
38
|
-
it { should have_constant :OFPAT_SET_DL_DST }
|
|
39
|
-
it { should have_constant :OFPAT_SET_NW_SRC }
|
|
40
|
-
it { should have_constant :OFPAT_SET_NW_DST }
|
|
41
|
-
it { should have_constant :OFPAT_SET_NW_TOS }
|
|
42
|
-
it { should have_constant :OFPAT_SET_TP_DST }
|
|
43
|
-
it { should have_constant :OFPAT_ENQUEUE }
|
|
44
|
-
it { should have_constant :OFPAT_VENDOR }
|
|
45
|
-
|
|
46
|
-
it { should have_constant :OFPET_HELLO_FAILED }
|
|
47
|
-
it { should have_constant :OFPHFC_INCOMPATIBLE }
|
|
48
|
-
it { should have_constant :OFPHFC_EPERM }
|
|
49
|
-
|
|
50
|
-
it { should have_constant :OFPET_BAD_REQUEST }
|
|
51
|
-
it { should have_constant :OFPBRC_BAD_VERSION }
|
|
52
|
-
it { should have_constant :OFPBRC_BAD_TYPE }
|
|
53
|
-
it { should have_constant :OFPBRC_BAD_STAT }
|
|
54
|
-
it { should have_constant :OFPBRC_BAD_VENDOR }
|
|
55
|
-
it { should have_constant :OFPBRC_BAD_SUBTYPE }
|
|
56
|
-
it { should have_constant :OFPBRC_EPERM }
|
|
57
|
-
it { should have_constant :OFPBRC_BAD_LEN }
|
|
58
|
-
it { should have_constant :OFPBRC_BUFFER_EMPTY }
|
|
59
|
-
it { should have_constant :OFPBRC_BUFFER_UNKNOWN }
|
|
60
|
-
|
|
61
|
-
it { should have_constant :OFPET_BAD_ACTION }
|
|
62
|
-
it { should have_constant :OFPBAC_BAD_TYPE }
|
|
63
|
-
it { should have_constant :OFPBAC_BAD_LEN }
|
|
64
|
-
it { should have_constant :OFPBAC_BAD_VENDOR }
|
|
65
|
-
it { should have_constant :OFPBAC_BAD_VENDOR_TYPE }
|
|
66
|
-
it { should have_constant :OFPBAC_BAD_OUT_PORT }
|
|
67
|
-
it { should have_constant :OFPBAC_BAD_ARGUMENT }
|
|
68
|
-
it { should have_constant :OFPBAC_EPERM }
|
|
69
|
-
it { should have_constant :OFPBAC_TOO_MANY }
|
|
70
|
-
it { should have_constant :OFPBAC_BAD_QUEUE }
|
|
71
|
-
|
|
72
|
-
it { should have_constant :OFPET_FLOW_MOD_FAILED }
|
|
73
|
-
it { should have_constant :OFPFMFC_ALL_TABLES_FULL }
|
|
74
|
-
it { should have_constant :OFPFMFC_OVERLAP }
|
|
75
|
-
it { should have_constant :OFPFMFC_BAD_EMERG_TIMEOUT }
|
|
76
|
-
it { should have_constant :OFPFMFC_BAD_COMMAND }
|
|
77
|
-
it { should have_constant :OFPFMFC_UNSUPPORTED }
|
|
78
|
-
|
|
79
|
-
it { should have_constant :OFPET_PORT_MOD_FAILED }
|
|
80
|
-
it { should have_constant :OFPPMFC_BAD_PORT }
|
|
81
|
-
it { should have_constant :OFPPMFC_BAD_HW_ADDR }
|
|
82
|
-
|
|
83
|
-
it { should have_constant :OFPET_QUEUE_OP_FAILED }
|
|
84
|
-
it { should have_constant :OFPQOFC_BAD_PORT }
|
|
85
|
-
it { should have_constant :OFPQOFC_BAD_QUEUE }
|
|
86
|
-
it { should have_constant :OFPQOFC_EPERM }
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
### Local variables:
|
|
91
|
-
### mode: Ruby
|
|
92
|
-
### coding: utf-8-unix
|
|
93
|
-
### indent-tabs-mode: nil
|
|
94
|
-
### End:
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
This directory includes a dedicated OpenFlow controller implementation
|
|
2
|
-
for "cbench" OpenFlow controller benchmark suite.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
# How to Run
|
|
6
|
-
|
|
7
|
-
Run this controller
|
|
8
|
-
|
|
9
|
-
% ./trema run ./objects/examples/cbench_switch/cbench_switch
|
|
10
|
-
|
|
11
|
-
then, on another terminal
|
|
12
|
-
|
|
13
|
-
% ./objects/oflops/bin/cbench --switches 1 --loops 10 --delay 1000
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
or, the following automatically executes a series of benchmarks:
|
|
17
|
-
|
|
18
|
-
% ./build.rb cbench
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
Enjoy!
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# A simple openflow controller for benchmarking.
|
|
3
|
-
#
|
|
4
|
-
# Copyright (C) 2008-2013 NEC Corporation
|
|
5
|
-
#
|
|
6
|
-
# This program is free software; you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU General Public License, version 2, as
|
|
8
|
-
# published by the Free Software Foundation.
|
|
9
|
-
#
|
|
10
|
-
# This program is distributed in the hope that it will be useful,
|
|
11
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
# GNU General Public License for more details.
|
|
14
|
-
#
|
|
15
|
-
# You should have received a copy of the GNU General Public License along
|
|
16
|
-
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
17
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class CbenchSwitch < Controller
|
|
22
|
-
def packet_in(datapath_id, message)
|
|
23
|
-
send_flow_mod_add(
|
|
24
|
-
datapath_id,
|
|
25
|
-
:cookie => 0,
|
|
26
|
-
:match => ExactMatch.from(message),
|
|
27
|
-
:buffer_id => message.buffer_id,
|
|
28
|
-
:actions => ActionOutput.new(:port => message.in_port + 1)
|
|
29
|
-
)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
### Local variables:
|
|
35
|
-
### mode: Ruby
|
|
36
|
-
### coding: utf-8-unix
|
|
37
|
-
### indent-tabs-mode: nil
|
|
38
|
-
### End:
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* A simple OpenFlow controller for "cbench" benchmark.
|
|
3
|
-
*
|
|
4
|
-
* Copyright (C) 2008-2013 NEC Corporation
|
|
5
|
-
*
|
|
6
|
-
* This program is free software; you can redistribute it and/or modify
|
|
7
|
-
* it under the terms of the GNU General Public License, version 2, as
|
|
8
|
-
* published by the Free Software Foundation.
|
|
9
|
-
*
|
|
10
|
-
* This program is distributed in the hope that it will be useful,
|
|
11
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
* GNU General Public License for more details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU General Public License along
|
|
16
|
-
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
17
|
-
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
#include "trema.h"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
static void
|
|
25
|
-
handle_packet_in( uint64_t datapath_id, packet_in message ) {
|
|
26
|
-
openflow_actions *actions = create_actions();
|
|
27
|
-
append_action_output( actions, ( uint16_t ) ( message.in_port + 1 ), UINT16_MAX );
|
|
28
|
-
|
|
29
|
-
struct ofp_match match;
|
|
30
|
-
set_match_from_packet( &match, message.in_port, 0, message.data );
|
|
31
|
-
|
|
32
|
-
buffer *flow_mod = create_flow_mod(
|
|
33
|
-
get_transaction_id(),
|
|
34
|
-
match,
|
|
35
|
-
0,
|
|
36
|
-
OFPFC_ADD,
|
|
37
|
-
0,
|
|
38
|
-
0,
|
|
39
|
-
UINT16_MAX,
|
|
40
|
-
message.buffer_id,
|
|
41
|
-
OFPP_NONE,
|
|
42
|
-
0,
|
|
43
|
-
actions
|
|
44
|
-
);
|
|
45
|
-
send_openflow_message( datapath_id, flow_mod );
|
|
46
|
-
|
|
47
|
-
free_buffer( flow_mod );
|
|
48
|
-
delete_actions( actions );
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
int
|
|
53
|
-
main( int argc, char *argv[] ) {
|
|
54
|
-
init_trema( &argc, &argv );
|
|
55
|
-
set_packet_in_handler( handle_packet_in, NULL );
|
|
56
|
-
start_trema();
|
|
57
|
-
return 0;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
/*
|
|
62
|
-
* Local variables:
|
|
63
|
-
* c-basic-offset: 2
|
|
64
|
-
* indent-tabs-mode: nil
|
|
65
|
-
* End:
|
|
66
|
-
*/
|
|
@@ -1,362 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Sample OpenFlow event dumper.
|
|
3
|
-
*
|
|
4
|
-
* Copyright (C) 2008-2013 NEC Corporation
|
|
5
|
-
*
|
|
6
|
-
* This program is free software; you can redistribute it and/or modify
|
|
7
|
-
* it under the terms of the GNU General Public License, version 2, as
|
|
8
|
-
* published by the Free Software Foundation.
|
|
9
|
-
*
|
|
10
|
-
* This program is distributed in the hope that it will be useful,
|
|
11
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
* GNU General Public License for more details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU General Public License along
|
|
16
|
-
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
17
|
-
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
#include <inttypes.h>
|
|
22
|
-
#include <stdarg.h>
|
|
23
|
-
#include <stdio.h>
|
|
24
|
-
#include <string.h>
|
|
25
|
-
#include "trema.h"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
#define dump info
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
void
|
|
32
|
-
usage() {
|
|
33
|
-
printf(
|
|
34
|
-
"OpenFlow Event Dumper.\n"
|
|
35
|
-
"Usage: %s [OPTION]...\n"
|
|
36
|
-
"\n"
|
|
37
|
-
" -n, --name=SERVICE_NAME service name\n"
|
|
38
|
-
" -d, --daemonize run in the background\n"
|
|
39
|
-
" -l, --logging_level=LEVEL set logging level\n"
|
|
40
|
-
" -g, --syslog output log messages to syslog\n"
|
|
41
|
-
" -f, --logging_facility=FACILITY set syslog facility\n"
|
|
42
|
-
" -h, --help display this help and exit\n"
|
|
43
|
-
, get_executable_name()
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
static void
|
|
49
|
-
dump_phy_port( const struct ofp_phy_port *phy_port ) {
|
|
50
|
-
dump( "port_no: %u", phy_port->port_no );
|
|
51
|
-
dump( " hw_addr: %02x:%02x:%02x:%02x:%02x:%02x",
|
|
52
|
-
phy_port->hw_addr[ 0 ], phy_port->hw_addr[ 1 ], phy_port->hw_addr[ 2 ],
|
|
53
|
-
phy_port->hw_addr[ 3 ], phy_port->hw_addr[ 4 ], phy_port->hw_addr[ 5 ] );
|
|
54
|
-
dump( " name: %s", phy_port->name );
|
|
55
|
-
dump( " config: %#x", phy_port->config );
|
|
56
|
-
dump( " state: %#x", phy_port->state );
|
|
57
|
-
dump( " curr: %#x", phy_port->curr );
|
|
58
|
-
dump( " advertised: %#x", phy_port->advertised );
|
|
59
|
-
dump( " supported: %#x", phy_port->supported );
|
|
60
|
-
dump( " peer: %#x", phy_port->peer );
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
static void
|
|
65
|
-
dump_packet_queue( const struct ofp_packet_queue *packet_queue ) {
|
|
66
|
-
uint16_t properties_length;
|
|
67
|
-
struct ofp_queue_prop_header *prop_header, *properties_head;
|
|
68
|
-
struct ofp_queue_prop_min_rate *prop_min_rate;
|
|
69
|
-
|
|
70
|
-
dump( "queue_id: %#x", packet_queue->queue_id );
|
|
71
|
-
dump( " len: %u", packet_queue->len );
|
|
72
|
-
dump( " properties:" );
|
|
73
|
-
|
|
74
|
-
properties_length =
|
|
75
|
-
( uint16_t ) ( packet_queue->len -
|
|
76
|
-
offsetof( struct ofp_packet_queue, properties ) );
|
|
77
|
-
|
|
78
|
-
properties_head = ( struct ofp_queue_prop_header * ) xmalloc( properties_length );
|
|
79
|
-
memcpy( properties_head, packet_queue->properties, properties_length );
|
|
80
|
-
prop_header = properties_head;
|
|
81
|
-
|
|
82
|
-
while ( properties_length > 0 ) {
|
|
83
|
-
dump( " property: %#x", prop_header->property );
|
|
84
|
-
dump( " len: %#x", prop_header->len );
|
|
85
|
-
|
|
86
|
-
if ( prop_header->property == OFPQT_MIN_RATE ) {
|
|
87
|
-
prop_min_rate = ( struct ofp_queue_prop_min_rate * ) prop_header;
|
|
88
|
-
dump( " rate: %u", prop_min_rate->rate );
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
properties_length = ( uint16_t ) ( properties_length - prop_header->len );
|
|
92
|
-
prop_header =
|
|
93
|
-
( struct ofp_queue_prop_header * ) ( ( char * ) prop_header +
|
|
94
|
-
prop_header->len );
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
xfree( properties_head );
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
static void
|
|
102
|
-
handle_switch_ready( uint64_t datapath_id, void *user_data ) {
|
|
103
|
-
UNUSED( user_data );
|
|
104
|
-
|
|
105
|
-
dump( "[switch_ready]" );
|
|
106
|
-
dump( "datapath_id: %#" PRIx64, datapath_id );
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
static void
|
|
111
|
-
handle_switch_disconnected( uint64_t datapath_id, void *user_data ) {
|
|
112
|
-
UNUSED( user_data );
|
|
113
|
-
|
|
114
|
-
dump( "[switch_disconnected]" );
|
|
115
|
-
dump( "datapath_id: %#" PRIx64, datapath_id );
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
static void
|
|
120
|
-
handle_error( uint64_t datapath_id, uint32_t transaction_id,
|
|
121
|
-
uint16_t type, uint16_t code, const buffer *data,
|
|
122
|
-
void *user_data ) {
|
|
123
|
-
UNUSED( user_data );
|
|
124
|
-
|
|
125
|
-
dump( "[error]" );
|
|
126
|
-
dump( "datapath_id: %#" PRIx64, datapath_id );
|
|
127
|
-
dump( "transaction_id: %#x", transaction_id );
|
|
128
|
-
dump( "type: %#x", type );
|
|
129
|
-
dump( "code: %#x", code );
|
|
130
|
-
dump( "data:" );
|
|
131
|
-
dump_buffer( data, dump );
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
static void
|
|
136
|
-
handle_vendor( uint64_t datapath_id, uint32_t transaction_id,
|
|
137
|
-
uint32_t vendor, const buffer *data, void *user_data ) {
|
|
138
|
-
UNUSED( user_data );
|
|
139
|
-
|
|
140
|
-
dump( "[vendor]" );
|
|
141
|
-
dump( "datapath_id: %#" PRIx64, datapath_id );
|
|
142
|
-
dump( "transaction_id: %#x", transaction_id );
|
|
143
|
-
dump( "vendor: %#x", vendor );
|
|
144
|
-
dump( "data:" );
|
|
145
|
-
dump_buffer( data, dump );
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
static void
|
|
150
|
-
handle_features_reply( uint64_t datapath_id, uint32_t transaction_id,
|
|
151
|
-
uint32_t n_buffers, uint8_t n_tables, uint32_t capabilities,
|
|
152
|
-
uint32_t actions, const list_element *phy_ports,
|
|
153
|
-
void *user_data ) {
|
|
154
|
-
UNUSED( user_data );
|
|
155
|
-
|
|
156
|
-
list_element *element, *phy_ports_head;
|
|
157
|
-
struct ofp_phy_port *phy_port;
|
|
158
|
-
|
|
159
|
-
dump( "[features_reply]" );
|
|
160
|
-
dump( "datapath_id: %#" PRIx64, datapath_id );
|
|
161
|
-
dump( "transaction_id: %#x", transaction_id );
|
|
162
|
-
dump( "n_buffers: %u", n_buffers );
|
|
163
|
-
dump( "n_tables: %u", n_tables );
|
|
164
|
-
dump( "capabilities: %#x", capabilities );
|
|
165
|
-
dump( "actions: %#x", actions );
|
|
166
|
-
|
|
167
|
-
phy_ports_head = ( list_element * ) xmalloc( sizeof( list_element ) );
|
|
168
|
-
memcpy( phy_ports_head, phy_ports, sizeof( list_element ) );
|
|
169
|
-
|
|
170
|
-
element = phy_ports_head;
|
|
171
|
-
while ( element != NULL ) {
|
|
172
|
-
phy_port = ( struct ofp_phy_port * ) element->data;
|
|
173
|
-
|
|
174
|
-
dump_phy_port( phy_port );
|
|
175
|
-
|
|
176
|
-
element = element->next;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
xfree( phy_ports_head );
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
static void
|
|
184
|
-
handle_get_config_reply( uint64_t datapath_id, uint32_t transaction_id,
|
|
185
|
-
uint16_t flags, uint16_t miss_send_len,
|
|
186
|
-
void *user_data ) {
|
|
187
|
-
UNUSED( user_data );
|
|
188
|
-
|
|
189
|
-
dump( "[get_config_reply]" );
|
|
190
|
-
dump( "datapath_id: %#" PRIx64, datapath_id );
|
|
191
|
-
dump( "transaction_id: %#x", transaction_id );
|
|
192
|
-
dump( "flags: %#x", flags );
|
|
193
|
-
dump( "miss_send_len: %u", miss_send_len );
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
static void
|
|
198
|
-
handle_packet_in(
|
|
199
|
-
uint64_t datapath_id,
|
|
200
|
-
uint32_t transaction_id,
|
|
201
|
-
uint32_t buffer_id,
|
|
202
|
-
uint16_t total_len,
|
|
203
|
-
uint16_t in_port,
|
|
204
|
-
uint8_t reason,
|
|
205
|
-
const buffer *data,
|
|
206
|
-
void *user_data
|
|
207
|
-
) {
|
|
208
|
-
UNUSED( user_data );
|
|
209
|
-
|
|
210
|
-
dump( "[packet_in]" );
|
|
211
|
-
dump( " datapath_id: %#" PRIx64, datapath_id );
|
|
212
|
-
dump( " transaction_id: %#x", transaction_id );
|
|
213
|
-
dump( " buffer_id: %#x", buffer_id );
|
|
214
|
-
dump( " total_len: %u", total_len );
|
|
215
|
-
dump( " in_port: %u", in_port );
|
|
216
|
-
dump( " reason: %#x", reason );
|
|
217
|
-
dump( " data:" );
|
|
218
|
-
dump_buffer( data, dump );
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
static void
|
|
223
|
-
handle_flow_removed( uint64_t datapath_id, flow_removed message ) {
|
|
224
|
-
dump( "[flow_removed]" );
|
|
225
|
-
dump( "datapath_id: %#" PRIx64, datapath_id );
|
|
226
|
-
dump( "transaction_id: %#x", message.transaction_id );
|
|
227
|
-
|
|
228
|
-
dump( "match:" );
|
|
229
|
-
dump( " wildcards: %#x", message.match.wildcards );
|
|
230
|
-
dump( " in_port: %u", message.match.in_port );
|
|
231
|
-
dump( " dl_src: %02x:%02x:%02x:%02x:%02x:%02x",
|
|
232
|
-
message.match.dl_src[ 0 ], message.match.dl_src[ 1 ], message.match.dl_src[ 2 ],
|
|
233
|
-
message.match.dl_src[ 3 ], message.match.dl_src[ 4 ], message.match.dl_src[ 5 ] );
|
|
234
|
-
dump( " dl_dst: %02x:%02x:%02x:%02x:%02x:%02x",
|
|
235
|
-
message.match.dl_dst[ 0 ], message.match.dl_dst[ 1 ], message.match.dl_dst[ 2 ],
|
|
236
|
-
message.match.dl_dst[ 3 ], message.match.dl_dst[ 4 ], message.match.dl_dst[ 5 ] );
|
|
237
|
-
dump( " dl_vlan: %u", message.match.dl_vlan );
|
|
238
|
-
dump( " dl_vlan_pcp: %u", message.match.dl_vlan_pcp );
|
|
239
|
-
dump( " dl_type: %#x", message.match.dl_type );
|
|
240
|
-
dump( " nw_tos: %u", message.match.nw_tos );
|
|
241
|
-
dump( " nw_proto: %#x", message.match.nw_proto );
|
|
242
|
-
dump( " nw_src: %#x", message.match.nw_src );
|
|
243
|
-
dump( " nw_dst: %#x", message.match.nw_dst );
|
|
244
|
-
dump( " tp_src: %u", message.match.tp_src );
|
|
245
|
-
dump( " tp_dst: %u", message.match.tp_dst );
|
|
246
|
-
|
|
247
|
-
dump( "cookie: %#" PRIx64, message.cookie );
|
|
248
|
-
dump( "priority: %u", message.priority );
|
|
249
|
-
dump( "reason: %#x", message.reason );
|
|
250
|
-
dump( "duration_sec: %u", message.duration_sec );
|
|
251
|
-
dump( "duration_nsec: %u", message.duration_nsec );
|
|
252
|
-
dump( "idle_timeout: %u", message.idle_timeout );
|
|
253
|
-
dump( "packet_count: %" PRIu64, message.packet_count );
|
|
254
|
-
dump( "byte_count: %" PRIu64, message.byte_count );
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
static void
|
|
259
|
-
handle_port_status( uint64_t datapath_id, uint32_t transaction_id,
|
|
260
|
-
uint8_t reason, struct ofp_phy_port phy_port,
|
|
261
|
-
void *user_data ) {
|
|
262
|
-
UNUSED( user_data );
|
|
263
|
-
|
|
264
|
-
dump( "[port_status]" );
|
|
265
|
-
dump( "datapath_id: %#" PRIx64, datapath_id );
|
|
266
|
-
dump( "transaction_id: %#x", transaction_id );
|
|
267
|
-
dump( "reason: %#x", reason );
|
|
268
|
-
dump( "phy_port:" );
|
|
269
|
-
dump_phy_port( &phy_port );
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
static void
|
|
274
|
-
handle_stats_reply( uint64_t datapath_id, uint32_t transaction_id,
|
|
275
|
-
uint16_t type, uint16_t flags, const buffer *data,
|
|
276
|
-
void *user_data ) {
|
|
277
|
-
UNUSED( user_data );
|
|
278
|
-
|
|
279
|
-
dump( "[stats_reply]" );
|
|
280
|
-
dump( "datapath_id: %#" PRIx64, datapath_id );
|
|
281
|
-
dump( "transaction_id: %#x", transaction_id );
|
|
282
|
-
dump( "type: %#x", type );
|
|
283
|
-
dump( "flags: %#x", flags );
|
|
284
|
-
dump( "data:" );
|
|
285
|
-
dump_buffer( data, dump );
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
static void
|
|
290
|
-
handle_barrier_reply( uint64_t datapath_id, uint32_t transaction_id,
|
|
291
|
-
void *user_data ) {
|
|
292
|
-
UNUSED( user_data );
|
|
293
|
-
|
|
294
|
-
dump( "[barrier_reply]" );
|
|
295
|
-
dump( "datapath_id: %#" PRIx64, datapath_id );
|
|
296
|
-
dump( "transaction_id: %#x", transaction_id );
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
static void
|
|
301
|
-
handle_queue_get_config_reply( uint64_t datapath_id, uint32_t transaction_id,
|
|
302
|
-
uint16_t port, const list_element *queues,
|
|
303
|
-
void *user_data ) {
|
|
304
|
-
UNUSED( user_data );
|
|
305
|
-
|
|
306
|
-
list_element *queues_head, *element;
|
|
307
|
-
struct ofp_packet_queue *packet_queue;
|
|
308
|
-
|
|
309
|
-
dump( "[queue_get_config_reply]" );
|
|
310
|
-
dump( "datapath_id: %#" PRIx64, datapath_id );
|
|
311
|
-
dump( "transaction_id: %#x", transaction_id );
|
|
312
|
-
dump( "port: %u", port );
|
|
313
|
-
dump( "queues:" );
|
|
314
|
-
|
|
315
|
-
queues_head = ( list_element * ) xmalloc( sizeof( list_element ) );
|
|
316
|
-
memcpy( queues_head, queues, sizeof( list_element ) );
|
|
317
|
-
|
|
318
|
-
element = queues_head;
|
|
319
|
-
while ( element != NULL ) {
|
|
320
|
-
packet_queue = ( struct ofp_packet_queue * ) element->data;
|
|
321
|
-
|
|
322
|
-
dump_packet_queue( packet_queue );
|
|
323
|
-
|
|
324
|
-
element = element->next;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
xfree( queues_head );
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
int
|
|
332
|
-
main( int argc, char *argv[] ) {
|
|
333
|
-
// Initialize the Trema world
|
|
334
|
-
init_trema( &argc, &argv );
|
|
335
|
-
|
|
336
|
-
// Set event handlers
|
|
337
|
-
set_switch_ready_handler( handle_switch_ready, NULL );
|
|
338
|
-
set_switch_disconnected_handler( handle_switch_disconnected, NULL );
|
|
339
|
-
set_error_handler( handle_error, NULL );
|
|
340
|
-
set_vendor_handler( handle_vendor, NULL );
|
|
341
|
-
set_features_reply_handler( handle_features_reply, NULL );
|
|
342
|
-
set_get_config_reply_handler( handle_get_config_reply, NULL );
|
|
343
|
-
set_packet_in_handler( handle_packet_in, NULL );
|
|
344
|
-
set_flow_removed_handler( handle_flow_removed, NULL );
|
|
345
|
-
set_port_status_handler( handle_port_status, NULL );
|
|
346
|
-
set_stats_reply_handler( handle_stats_reply, NULL );
|
|
347
|
-
set_barrier_reply_handler( handle_barrier_reply, NULL );
|
|
348
|
-
set_queue_get_config_reply_handler( handle_queue_get_config_reply, NULL );
|
|
349
|
-
|
|
350
|
-
// Main loop
|
|
351
|
-
start_trema();
|
|
352
|
-
|
|
353
|
-
return 0;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
/*
|
|
358
|
-
* Local variables:
|
|
359
|
-
* c-basic-offset: 2
|
|
360
|
-
* indent-tabs-mode: nil
|
|
361
|
-
* End:
|
|
362
|
-
*/
|