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/ruby/trema/echo-reply.h
DELETED
|
@@ -1,40 +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
|
-
#ifndef ECHO_REPLY_H
|
|
20
|
-
#define ECHO_REPLY_H
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
#include "ruby.h"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
extern VALUE cEchoReply;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
void Init_echo_reply( void );
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
#endif // ECHO_REPLY_H
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/*
|
|
36
|
-
* Local variables:
|
|
37
|
-
* c-basic-offset: 2
|
|
38
|
-
* indent-tabs-mode: nil
|
|
39
|
-
* End:
|
|
40
|
-
*/
|
data/ruby/trema/echo-request.c
DELETED
|
@@ -1,117 +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
|
-
#include "echo.h"
|
|
20
|
-
#include "trema-ruby-utils.h"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
extern VALUE mTrema;
|
|
24
|
-
VALUE cEchoRequest;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
static VALUE
|
|
28
|
-
echo_request_alloc( VALUE klass ) {
|
|
29
|
-
return Data_Wrap_Struct( klass, NULL, free_buffer, create_echo_request( 0, NULL ) );
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
#if 0
|
|
34
|
-
/*
|
|
35
|
-
* Creates a EchoRequest OpenFlow message. This message can be used to
|
|
36
|
-
* measure the bandwidth of a controller/switch connection as well as
|
|
37
|
-
* to verify its liveness.
|
|
38
|
-
*
|
|
39
|
-
* @overload initialize()
|
|
40
|
-
* @example
|
|
41
|
-
* EchoRequest.new
|
|
42
|
-
*
|
|
43
|
-
* @overload initialize(transaction_id)
|
|
44
|
-
* @example
|
|
45
|
-
* EchoRequest.new( 123 )
|
|
46
|
-
* @param [Integer] transaction_id
|
|
47
|
-
* An unsigned 32-bit integer number associated with this message.
|
|
48
|
-
*
|
|
49
|
-
* @overload initialize(options)
|
|
50
|
-
* @example
|
|
51
|
-
* EchoRequest.new(
|
|
52
|
-
* :transaction_id => transaction_id,
|
|
53
|
-
* :user_data => "Thu Aug 25 13:09:00 +0900 2011"
|
|
54
|
-
* )
|
|
55
|
-
* @param [Hash] options
|
|
56
|
-
* the options to create a message with.
|
|
57
|
-
* @option options [Number] :xid an alias to transaction_id.
|
|
58
|
-
* @option options [Number] :transaction_id
|
|
59
|
-
* An unsigned 32-bit integer number associated with this message.
|
|
60
|
-
* If not specified, an auto-generated value is set.
|
|
61
|
-
* @option options [String] :user_data
|
|
62
|
-
* the user data field specified as a String may be a message timestamp to check latency,
|
|
63
|
-
* various lengths to measure bandwidth or zero-size(nil) to verify liveness between
|
|
64
|
-
* the switch and controller.
|
|
65
|
-
*
|
|
66
|
-
* @raise [ArgumentError] if transaction ID is not an unsigned 32-bit integer.
|
|
67
|
-
* @raise [ArgumentError] if user data is not a string.
|
|
68
|
-
* @raise [TypeError] if argument is not a hash.
|
|
69
|
-
* @return [EchoRequest]
|
|
70
|
-
*/
|
|
71
|
-
VALUE
|
|
72
|
-
echo_init( int argc, VALUE *argv, VALUE self ) {}
|
|
73
|
-
#endif
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
#if 0
|
|
77
|
-
/*
|
|
78
|
-
* Transaction ids, message sequence numbers matching requests to
|
|
79
|
-
* replies.
|
|
80
|
-
*
|
|
81
|
-
* @return [Number] the value of transaction id.
|
|
82
|
-
*/
|
|
83
|
-
VALUE
|
|
84
|
-
echo_transaction_id( VALUE self ) {}
|
|
85
|
-
#endif
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
#if 0
|
|
89
|
-
/*
|
|
90
|
-
* An arbitrary length user data payload.
|
|
91
|
-
*
|
|
92
|
-
* @return [String] a user data payload is set.
|
|
93
|
-
* @return [nil] a user data payload is not set.
|
|
94
|
-
*/
|
|
95
|
-
VALUE
|
|
96
|
-
echo_user_data( VALUE self ) {}
|
|
97
|
-
#endif
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
void
|
|
101
|
-
Init_echo_request() {
|
|
102
|
-
mTrema = rb_define_module( "Trema" );
|
|
103
|
-
cEchoRequest = rb_define_class_under( mTrema, "EchoRequest", rb_cObject );
|
|
104
|
-
rb_define_alloc_func( cEchoRequest, echo_request_alloc );
|
|
105
|
-
rb_define_method( cEchoRequest, "initialize", echo_init, -1 );
|
|
106
|
-
rb_define_method( cEchoRequest, "transaction_id", echo_transaction_id, 0 );
|
|
107
|
-
rb_alias( cEchoRequest, rb_intern( "xid" ), rb_intern( "transaction_id" ) );
|
|
108
|
-
rb_define_method( cEchoRequest, "user_data", echo_user_data, 0 );
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
/*
|
|
113
|
-
* Local variables:
|
|
114
|
-
* c-basic-offset: 2
|
|
115
|
-
* indent-tabs-mode: nil
|
|
116
|
-
* End:
|
|
117
|
-
*/
|
data/ruby/trema/echo-request.h
DELETED
|
@@ -1,40 +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
|
-
#ifndef ECHO_REQUEST_H
|
|
20
|
-
#define ECHO_REQUEST_H
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
#include "ruby.h"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
extern VALUE cEchoRequest;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
void Init_echo_request( void );
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
#endif // ECHO_REQUEST_H
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/*
|
|
36
|
-
* Local variables:
|
|
37
|
-
* c-basic-offset: 2
|
|
38
|
-
* indent-tabs-mode: nil
|
|
39
|
-
* End:
|
|
40
|
-
*/
|
data/ruby/trema/echo.c
DELETED
|
@@ -1,99 +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
|
-
#include "ruby.h"
|
|
20
|
-
#include "trema-ruby-utils.h"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
VALUE
|
|
24
|
-
echo_init( int argc, VALUE *argv, VALUE self ) {
|
|
25
|
-
buffer *echo = NULL;
|
|
26
|
-
Data_Get_Struct( self, buffer, echo );
|
|
27
|
-
VALUE options = Qnil;
|
|
28
|
-
|
|
29
|
-
if ( rb_scan_args( argc, argv, "01", &options ) == 0 ) {
|
|
30
|
-
set_xid( echo, get_transaction_id() );
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
if ( options == Qnil ) {
|
|
34
|
-
set_xid( echo, get_transaction_id() );
|
|
35
|
-
}
|
|
36
|
-
else if ( rb_obj_is_kind_of( options, rb_cInteger ) == Qtrue ) {
|
|
37
|
-
validate_xid( options );
|
|
38
|
-
set_xid( echo, ( uint32_t ) NUM2UINT( options ) );
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
Check_Type( options, T_HASH );
|
|
42
|
-
VALUE tmp = Qnil;
|
|
43
|
-
VALUE xid = Qnil;
|
|
44
|
-
|
|
45
|
-
tmp = rb_hash_aref( options, ID2SYM( rb_intern( "transaction_id" ) ) );
|
|
46
|
-
if ( tmp != Qnil ) {
|
|
47
|
-
xid = tmp;
|
|
48
|
-
}
|
|
49
|
-
tmp = rb_hash_aref( options, ID2SYM( rb_intern( "xid" ) ) );
|
|
50
|
-
if ( tmp != Qnil ) {
|
|
51
|
-
xid = tmp;
|
|
52
|
-
}
|
|
53
|
-
if ( xid != Qnil ) {
|
|
54
|
-
validate_xid( xid );
|
|
55
|
-
set_xid( echo, ( uint32_t ) NUM2UINT( xid ) );
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
set_xid( echo, get_transaction_id() );
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
VALUE user_data = rb_hash_aref( options, ID2SYM( rb_intern( "user_data" ) ) );
|
|
62
|
-
if ( user_data != Qnil ) {
|
|
63
|
-
Check_Type( user_data, T_STRING );
|
|
64
|
-
uint16_t length = ( uint16_t ) RSTRING_LEN( user_data );
|
|
65
|
-
append_back_buffer( echo, length );
|
|
66
|
-
set_length( echo, ( uint16_t ) ( sizeof( struct ofp_header ) + length ) );
|
|
67
|
-
memcpy( ( char * ) echo->data + sizeof( struct ofp_header ), RSTRING_PTR( user_data ), length );
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return self;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
VALUE
|
|
77
|
-
echo_transaction_id( VALUE self ) {
|
|
78
|
-
return get_xid( self );
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
VALUE
|
|
83
|
-
echo_user_data( VALUE self ) {
|
|
84
|
-
buffer *echo;
|
|
85
|
-
Data_Get_Struct( self, buffer, echo );
|
|
86
|
-
if ( echo->length > sizeof( struct ofp_header ) ) {
|
|
87
|
-
return rb_str_new( ( char * ) echo->data + sizeof( struct ofp_header ),
|
|
88
|
-
( long ) ( echo->length - sizeof( struct ofp_header ) ) );
|
|
89
|
-
}
|
|
90
|
-
return Qnil;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
/*
|
|
95
|
-
* Local variables:
|
|
96
|
-
* c-basic-offset: 2
|
|
97
|
-
* indent-tabs-mode: nil
|
|
98
|
-
* End:
|
|
99
|
-
*/
|
data/ruby/trema/echo.h
DELETED
|
@@ -1,39 +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
|
-
#ifndef ECHO_H
|
|
20
|
-
#define ECHO_H
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
#include "ruby.h"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
VALUE echo_init( int argc, VALUE *argv, VALUE self );
|
|
27
|
-
VALUE echo_transaction_id( VALUE self );
|
|
28
|
-
VALUE echo_user_data( VALUE self );
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
#endif // ECHO_H
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
/*
|
|
35
|
-
* Local variables:
|
|
36
|
-
* c-basic-offset: 2
|
|
37
|
-
* indent-tabs-mode: nil
|
|
38
|
-
* End:
|
|
39
|
-
*/
|
data/ruby/trema/enqueue.rb
DELETED
|
@@ -1,87 +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 'trema/action'
|
|
20
|
-
require 'trema/monkey-patch/integer'
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
module Trema
|
|
24
|
-
#
|
|
25
|
-
# An action to enqueue the packet on the specified queue attached to
|
|
26
|
-
# a port.
|
|
27
|
-
#
|
|
28
|
-
class Enqueue < Action
|
|
29
|
-
attr_reader :port_number
|
|
30
|
-
attr_reader :queue_id
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
#
|
|
34
|
-
# Creates an action to enqueue the packet on the specified queue
|
|
35
|
-
# attached to a port. When a queue is configured the user can
|
|
36
|
-
# associate a flow with this action to forward a packet through
|
|
37
|
-
# the specific queue in that port.
|
|
38
|
-
#
|
|
39
|
-
# @example
|
|
40
|
-
# Enqueue.new( :port_number => 1, :queue_id => 2 )
|
|
41
|
-
#
|
|
42
|
-
# @param [Hash] options
|
|
43
|
-
# the options hash to create this action class instance with.
|
|
44
|
-
#
|
|
45
|
-
# @option options [Number] :port_number
|
|
46
|
-
# the port the queue is attached to.
|
|
47
|
-
#
|
|
48
|
-
# @option options [Number] :queue_id
|
|
49
|
-
# the configured queue. Currently only minimum rate queues provided.
|
|
50
|
-
#
|
|
51
|
-
# @raise [TypeError] if options is not a Hash.
|
|
52
|
-
# @raise [ArgumentError] if both port_number and queue_id arguments not supplied.
|
|
53
|
-
# @raise [ArgumentError] if port_number is not an unsigned 16-bit integer.
|
|
54
|
-
# @raise [ArgumentError] if queue id is not an unsigned 32-bit integer.
|
|
55
|
-
#
|
|
56
|
-
def initialize(options)
|
|
57
|
-
if options.is_a?(Hash)
|
|
58
|
-
@port_number = options[ :port_number]
|
|
59
|
-
@queue_id = options[ :queue_id]
|
|
60
|
-
if @port_number.nil?
|
|
61
|
-
fail ArgumentError, 'Port number is a mandatory option'
|
|
62
|
-
end
|
|
63
|
-
unless @port_number.unsigned_16bit?
|
|
64
|
-
fail ArgumentError, 'Port number must be an unsigned 16-bit integer'
|
|
65
|
-
end
|
|
66
|
-
if @queue_id.nil?
|
|
67
|
-
fail ArgumentError, 'Queue ID is a mandatory option'
|
|
68
|
-
end
|
|
69
|
-
unless @queue_id.unsigned_32bit?
|
|
70
|
-
fail ArgumentError, 'Queue ID must be an unsigned 32-bit integer'
|
|
71
|
-
end
|
|
72
|
-
else
|
|
73
|
-
fail 'Invalid option'
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
ActionEnqueue = Enqueue
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
### Local variables:
|
|
84
|
-
### mode: Ruby
|
|
85
|
-
### coding: utf-8-unix
|
|
86
|
-
### indent-tabs-mode: nil
|
|
87
|
-
### End:
|
data/ruby/trema/error.c
DELETED
|
@@ -1,262 +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
|
-
#include "ruby.h"
|
|
20
|
-
#include "trema-ruby-utils.h"
|
|
21
|
-
#include "trema.h"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
extern VALUE mTrema;
|
|
25
|
-
VALUE cError;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
static VALUE
|
|
29
|
-
error_alloc( VALUE klass ) {
|
|
30
|
-
buffer *error = create_error( 0, 0, 0, NULL );
|
|
31
|
-
return Data_Wrap_Struct( klass, NULL, free_buffer, error );
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/*
|
|
36
|
-
* @overload initialize(options)
|
|
37
|
-
* @example
|
|
38
|
-
* Error.new(
|
|
39
|
-
* :type => OFPET_BAD_REQUEST,
|
|
40
|
-
* :code => OFPBRC_BAD_TYPE,
|
|
41
|
-
* )
|
|
42
|
-
* Error.new(
|
|
43
|
-
* :type => OFPET_BAD_REQUEST,
|
|
44
|
-
* :code => OFPBRC_BAD_TYPE,
|
|
45
|
-
* :transcation_id => 123
|
|
46
|
-
* )
|
|
47
|
-
* Error.new(
|
|
48
|
-
* :type => OFPET_BAD_REQUEST,
|
|
49
|
-
* :code => OFPBRC_BAD_TYPE,
|
|
50
|
-
* :transcation_id => 123
|
|
51
|
-
* :data => "Error!!"
|
|
52
|
-
* )
|
|
53
|
-
* @param [Hash] options
|
|
54
|
-
* the options to create a message with.
|
|
55
|
-
* @option options [Number] :type
|
|
56
|
-
* a command or action that failed.
|
|
57
|
-
* @option options [Number] :code
|
|
58
|
-
* the reason of the failed type error.
|
|
59
|
-
* @option options [String] :data
|
|
60
|
-
* a more user friendly explanation of the error. Defaults to nil
|
|
61
|
-
* if not specified.
|
|
62
|
-
* @option options [Number] :xid
|
|
63
|
-
* @option options [Number] :transaction_id
|
|
64
|
-
* An unsigned 32bit integer number associated with this message.
|
|
65
|
-
* If not specified, an auto-generated value is set.
|
|
66
|
-
* @raise [ArgumentError] if transaction ID is not an unsigned 32bit integer.
|
|
67
|
-
* @raise [ArgumentError] if type and code are not supplied.
|
|
68
|
-
* @raise [ArgumentError] if user data is not a string.
|
|
69
|
-
* @raise [TypeError] if options is not a hash.
|
|
70
|
-
* @return [Error]
|
|
71
|
-
*/
|
|
72
|
-
static VALUE
|
|
73
|
-
error_init( int argc, VALUE *argv, VALUE self ) {
|
|
74
|
-
buffer *error = NULL;
|
|
75
|
-
Data_Get_Struct( self, buffer, error );
|
|
76
|
-
VALUE options;
|
|
77
|
-
|
|
78
|
-
if ( rb_scan_args( argc, argv, "01", &options ) == 1 ) {
|
|
79
|
-
Check_Type( options, T_HASH );
|
|
80
|
-
VALUE tmp = Qnil;
|
|
81
|
-
|
|
82
|
-
tmp = rb_hash_aref( options, ID2SYM( rb_intern( "type" ) ) );
|
|
83
|
-
if ( tmp != Qnil ) {
|
|
84
|
-
( ( struct ofp_error_msg * ) error->data )->type = htons( ( uint16_t ) NUM2UINT( tmp ) );
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
rb_raise( rb_eArgError, "Type is a mandatory option" );
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
tmp = rb_hash_aref( options, ID2SYM( rb_intern( "code" ) ) );
|
|
91
|
-
if ( tmp != Qnil ) {
|
|
92
|
-
( ( struct ofp_error_msg * ) error->data )->code = htons( ( uint16_t ) NUM2UINT( tmp ) );
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
rb_raise( rb_eArgError, "Code is a mandatory option" );
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
VALUE xid = Qnil;
|
|
99
|
-
tmp = rb_hash_aref( options, ID2SYM( rb_intern( "transaction_id" ) ) );
|
|
100
|
-
if ( tmp != Qnil ) {
|
|
101
|
-
xid = tmp;
|
|
102
|
-
}
|
|
103
|
-
tmp = rb_hash_aref( options, ID2SYM( rb_intern( "xid" ) ) );
|
|
104
|
-
if ( tmp != Qnil ) {
|
|
105
|
-
xid = tmp;
|
|
106
|
-
}
|
|
107
|
-
if ( xid != Qnil ) {
|
|
108
|
-
validate_xid( xid );
|
|
109
|
-
set_xid( error, ( uint32_t ) NUM2UINT( xid ) );
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
set_xid( error, get_transaction_id() );
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
VALUE data = rb_hash_aref( options, ID2SYM( rb_intern( "data" ) ) );
|
|
116
|
-
if ( data != Qnil ) {
|
|
117
|
-
Check_Type( data, T_STRING );
|
|
118
|
-
uint16_t length = ( uint16_t ) RSTRING_LEN( data );
|
|
119
|
-
append_back_buffer( error, length );
|
|
120
|
-
( ( struct ofp_header * ) ( error->data ) )->length = htons( ( uint16_t ) ( offsetof( struct ofp_error_msg, data ) + length ) );
|
|
121
|
-
memcpy( ( char * ) error->data + offsetof( struct ofp_error_msg, data ), RSTRING_PTR( data ), length );
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
rb_raise( rb_eArgError, "Type and code are mandatory options" );
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
return self;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
static struct ofp_error_msg *
|
|
133
|
-
get_error( VALUE self ) {
|
|
134
|
-
buffer *error;
|
|
135
|
-
Data_Get_Struct( self, buffer, error );
|
|
136
|
-
return ( struct ofp_error_msg * ) error->data;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
/*
|
|
141
|
-
* Transaction ids, message sequence numbers matching requests to replies.
|
|
142
|
-
*
|
|
143
|
-
* @return [Number] the value of transaction id.
|
|
144
|
-
*/
|
|
145
|
-
static VALUE
|
|
146
|
-
error_transaction_id( VALUE self ) {
|
|
147
|
-
struct ofp_error_msg *error = get_error( self );
|
|
148
|
-
uint32_t xid = ntohl( error->header.xid );
|
|
149
|
-
return UINT2NUM( xid );
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
/*
|
|
154
|
-
* An optional user data payload field, possibly detailed explanation of the error.
|
|
155
|
-
*
|
|
156
|
-
* @return [String] user data payload is set.
|
|
157
|
-
* @return [nil] user data payload is not set.
|
|
158
|
-
*/
|
|
159
|
-
static VALUE
|
|
160
|
-
error_data( VALUE self ) {
|
|
161
|
-
struct ofp_error_msg *error = get_error( self );
|
|
162
|
-
long length = ( long ) ( ntohs( error->header.length ) - sizeof( struct ofp_error_msg ) );
|
|
163
|
-
if ( length > 0 ) {
|
|
164
|
-
return rb_str_new( ( char * ) error->data, length );
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
return Qnil;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
/*
|
|
173
|
-
* Indicates the command or action that failed.
|
|
174
|
-
*
|
|
175
|
-
* @return [Number] the value of error type.
|
|
176
|
-
*/
|
|
177
|
-
static VALUE
|
|
178
|
-
error_type( VALUE self ) {
|
|
179
|
-
struct ofp_error_msg *error = get_error( self );
|
|
180
|
-
return UINT2NUM( ntohs( error->type ) );
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
/*
|
|
185
|
-
* Reason of the failed type error.
|
|
186
|
-
*
|
|
187
|
-
* @return [Number] the value of error code.
|
|
188
|
-
*/
|
|
189
|
-
static VALUE
|
|
190
|
-
error_code( VALUE self ) {
|
|
191
|
-
struct ofp_error_msg *error = get_error( self );
|
|
192
|
-
return UINT2NUM( ntohs( error->code ) );
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
/*
|
|
197
|
-
* Document-class: Trema::Error
|
|
198
|
-
*/
|
|
199
|
-
void
|
|
200
|
-
Init_error() {
|
|
201
|
-
mTrema = rb_eval_string( "Trema" );
|
|
202
|
-
rb_define_const( mTrema, "OFPET_HELLO_FAILED", INT2NUM( OFPET_HELLO_FAILED ) );
|
|
203
|
-
rb_define_const( mTrema, "OFPHFC_INCOMPATIBLE", INT2NUM( OFPHFC_INCOMPATIBLE ) );
|
|
204
|
-
rb_define_const( mTrema, "OFPHFC_EPERM", INT2NUM( OFPHFC_EPERM ) );
|
|
205
|
-
|
|
206
|
-
rb_define_const( mTrema, "OFPET_BAD_REQUEST", INT2NUM( OFPET_BAD_REQUEST ) );
|
|
207
|
-
rb_define_const( mTrema, "OFPBRC_BAD_VERSION", INT2NUM( OFPBRC_BAD_VERSION ) );
|
|
208
|
-
rb_define_const( mTrema, "OFPBRC_BAD_TYPE", INT2NUM( OFPBRC_BAD_TYPE ) );
|
|
209
|
-
rb_define_const( mTrema, "OFPBRC_BAD_STAT", INT2NUM( OFPBRC_BAD_STAT ) );
|
|
210
|
-
rb_define_const( mTrema, "OFPBRC_BAD_VENDOR", INT2NUM( OFPBRC_BAD_VENDOR ) );
|
|
211
|
-
rb_define_const( mTrema, "OFPBRC_BAD_SUBTYPE", INT2NUM( OFPBRC_BAD_SUBTYPE ) );
|
|
212
|
-
rb_define_const( mTrema, "OFPBRC_EPERM", INT2NUM( OFPBRC_EPERM ) );
|
|
213
|
-
rb_define_const( mTrema, "OFPBRC_BAD_LEN", INT2NUM( OFPBRC_BAD_LEN ) );
|
|
214
|
-
rb_define_const( mTrema, "OFPBRC_BUFFER_EMPTY", INT2NUM( OFPBRC_BUFFER_EMPTY ) );
|
|
215
|
-
rb_define_const( mTrema, "OFPBRC_BUFFER_UNKNOWN", INT2NUM( OFPBRC_BUFFER_UNKNOWN ) );
|
|
216
|
-
|
|
217
|
-
rb_define_const( mTrema, "OFPET_BAD_ACTION", INT2NUM( OFPET_BAD_ACTION ) );
|
|
218
|
-
rb_define_const( mTrema, "OFPBAC_BAD_TYPE", INT2NUM( OFPBAC_BAD_TYPE ) );
|
|
219
|
-
rb_define_const( mTrema, "OFPBAC_BAD_LEN", INT2NUM( OFPBAC_BAD_LEN ) );
|
|
220
|
-
rb_define_const( mTrema, "OFPBAC_BAD_VENDOR", INT2NUM( OFPBAC_BAD_VENDOR ) );
|
|
221
|
-
rb_define_const( mTrema, "OFPBAC_BAD_VENDOR_TYPE", INT2NUM( OFPBAC_BAD_VENDOR_TYPE ) );
|
|
222
|
-
rb_define_const( mTrema, "OFPBAC_BAD_OUT_PORT", INT2NUM( OFPBAC_BAD_OUT_PORT ) );
|
|
223
|
-
rb_define_const( mTrema, "OFPBAC_BAD_ARGUMENT", INT2NUM( OFPBAC_BAD_ARGUMENT ) );
|
|
224
|
-
rb_define_const( mTrema, "OFPBAC_EPERM", INT2NUM( OFPBAC_EPERM ) );
|
|
225
|
-
rb_define_const( mTrema, "OFPBAC_TOO_MANY", INT2NUM( OFPBAC_TOO_MANY ) );
|
|
226
|
-
rb_define_const( mTrema, "OFPBAC_BAD_QUEUE", INT2NUM( OFPBAC_BAD_QUEUE ) );
|
|
227
|
-
|
|
228
|
-
rb_define_const( mTrema, "OFPET_FLOW_MOD_FAILED", INT2NUM( OFPET_FLOW_MOD_FAILED ) );
|
|
229
|
-
rb_define_const( mTrema, "OFPFMFC_ALL_TABLES_FULL", INT2NUM( OFPFMFC_ALL_TABLES_FULL ) );
|
|
230
|
-
rb_define_const( mTrema, "OFPFMFC_OVERLAP", INT2NUM( OFPFMFC_OVERLAP ) );
|
|
231
|
-
rb_define_const( mTrema, "OFPFMFC_EPERM", INT2NUM( OFPFMFC_EPERM ) );
|
|
232
|
-
rb_define_const( mTrema, "OFPFMFC_BAD_EMERG_TIMEOUT", INT2NUM( OFPFMFC_BAD_EMERG_TIMEOUT ) );
|
|
233
|
-
rb_define_const( mTrema, "OFPFMFC_BAD_COMMAND", INT2NUM( OFPFMFC_BAD_COMMAND ) );
|
|
234
|
-
rb_define_const( mTrema, "OFPFMFC_UNSUPPORTED", INT2NUM( OFPFMFC_UNSUPPORTED ) );
|
|
235
|
-
|
|
236
|
-
rb_define_const( mTrema, "OFPET_PORT_MOD_FAILED", INT2NUM( OFPET_PORT_MOD_FAILED ) );
|
|
237
|
-
rb_define_const( mTrema, "OFPPMFC_BAD_PORT", INT2NUM( OFPPMFC_BAD_PORT ) );
|
|
238
|
-
rb_define_const( mTrema, "OFPPMFC_BAD_HW_ADDR", INT2NUM( OFPPMFC_BAD_HW_ADDR ) );
|
|
239
|
-
|
|
240
|
-
rb_define_const( mTrema, "OFPET_QUEUE_OP_FAILED", INT2NUM( OFPET_QUEUE_OP_FAILED ) );
|
|
241
|
-
rb_define_const( mTrema, "OFPQOFC_BAD_PORT", INT2NUM( OFPQOFC_BAD_PORT ) );
|
|
242
|
-
rb_define_const( mTrema, "OFPQOFC_BAD_QUEUE", INT2NUM( OFPQOFC_BAD_QUEUE ) );
|
|
243
|
-
rb_define_const( mTrema, "OFPQOFC_EPERM", INT2NUM( OFPQOFC_EPERM ) );
|
|
244
|
-
|
|
245
|
-
cError = rb_define_class_under( mTrema, "Error", rb_cObject );
|
|
246
|
-
|
|
247
|
-
rb_define_alloc_func( cError, error_alloc );
|
|
248
|
-
rb_define_method( cError, "initialize", error_init, -1 );
|
|
249
|
-
rb_define_method( cError, "transaction_id", error_transaction_id, 0 );
|
|
250
|
-
rb_alias( cError, rb_intern( "xid" ), rb_intern( "transaction_id" ) );
|
|
251
|
-
rb_define_method( cError, "data", error_data, 0 );
|
|
252
|
-
rb_define_method( cError, "error_type", error_type, 0 );
|
|
253
|
-
rb_define_method( cError, "code", error_code, 0 );
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
/*
|
|
258
|
-
* Local variables:
|
|
259
|
-
* c-basic-offset: 2
|
|
260
|
-
* indent-tabs-mode: nil
|
|
261
|
-
* End:
|
|
262
|
-
*/
|