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/features-reply.h
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Ruby wrapper class of OpenFlow features reply message.
|
|
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
|
-
#ifndef FEATURES_REPLY_H
|
|
22
|
-
#define FEATURES_REPLY_H
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
#include "ruby.h"
|
|
26
|
-
#include "trema.h"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
extern VALUE cFeaturesReply;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
void Init_features_reply( void );
|
|
33
|
-
void handle_switch_ready( uint64_t datapath_id, void *controller );
|
|
34
|
-
void handle_features_reply(
|
|
35
|
-
uint64_t datapath_id,
|
|
36
|
-
uint32_t transaction_id,
|
|
37
|
-
uint32_t n_buffers,
|
|
38
|
-
uint8_t n_tables,
|
|
39
|
-
uint32_t capabilities,
|
|
40
|
-
uint32_t actions,
|
|
41
|
-
const list_element *phy_ports,
|
|
42
|
-
void *controller
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
#endif // FEATURES_REPLY_H
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
/*
|
|
50
|
-
* Local variables:
|
|
51
|
-
* c-basic-offset: 2
|
|
52
|
-
* indent-tabs-mode: nil
|
|
53
|
-
* End:
|
|
54
|
-
*/
|
|
@@ -1,134 +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 "trema-ruby-utils.h"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
extern VALUE mTrema;
|
|
23
|
-
VALUE cFeaturesRequest;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
static VALUE
|
|
27
|
-
features_request_alloc( VALUE klass ) {
|
|
28
|
-
buffer *features_request = create_features_request( 0 );
|
|
29
|
-
return Data_Wrap_Struct( klass, NULL, free_buffer, features_request );
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/*
|
|
34
|
-
* Creates a FeaturesRequest OpenFlow message.
|
|
35
|
-
*
|
|
36
|
-
* @overload initialize()
|
|
37
|
-
* @example
|
|
38
|
-
* FeaturesRequest.new
|
|
39
|
-
*
|
|
40
|
-
* @overload initialize(transaction_id)
|
|
41
|
-
* @example
|
|
42
|
-
* FeaturesRequest.new( 123 )
|
|
43
|
-
* @param [Integer] transaction_id
|
|
44
|
-
* An unsigned 32-bit integer number associated with this message.
|
|
45
|
-
*
|
|
46
|
-
* @overload initialize(options)
|
|
47
|
-
* @example
|
|
48
|
-
* FeaturesRequest.new( :xid => 123 )
|
|
49
|
-
* FeaturesRequest.new( :transaction_id => 123 )
|
|
50
|
-
* @param [Hash] options
|
|
51
|
-
* the options to create a message with.
|
|
52
|
-
* @option options [Number] :xid an alias to transaction_id.
|
|
53
|
-
* @option options [Number] :transaction_id
|
|
54
|
-
* An unsigned 32-bit integer number associated with this message.
|
|
55
|
-
* If not specified, an auto-generated value is set.
|
|
56
|
-
*
|
|
57
|
-
* @raise [ArgumentError] if transaction ID is not an unsigned 32-bit integer.
|
|
58
|
-
* @raise [TypeError] if argument is not a Integer or a Hash.
|
|
59
|
-
* @return [FeaturesRequest]
|
|
60
|
-
*/
|
|
61
|
-
static VALUE
|
|
62
|
-
features_request_init( int argc, VALUE *argv, VALUE self ) {
|
|
63
|
-
buffer *features_request = NULL;
|
|
64
|
-
Data_Get_Struct( self, buffer, features_request );
|
|
65
|
-
VALUE options = Qnil;
|
|
66
|
-
|
|
67
|
-
if ( rb_scan_args( argc, argv, "01", &options ) == 0 ) {
|
|
68
|
-
set_xid( features_request, get_transaction_id() );
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
if ( options == Qnil ) {
|
|
72
|
-
set_xid( features_request, get_transaction_id() );
|
|
73
|
-
}
|
|
74
|
-
else if ( rb_obj_is_kind_of( options, rb_cInteger ) == Qtrue ) {
|
|
75
|
-
validate_xid( options );
|
|
76
|
-
set_xid( features_request, ( uint32_t ) NUM2UINT( options ) );
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
Check_Type( options, T_HASH );
|
|
80
|
-
VALUE tmp = Qnil;
|
|
81
|
-
VALUE xid = Qnil;
|
|
82
|
-
|
|
83
|
-
tmp = rb_hash_aref( options, ID2SYM( rb_intern( "transaction_id" ) ) );
|
|
84
|
-
if ( tmp != Qnil ) {
|
|
85
|
-
xid = tmp;
|
|
86
|
-
}
|
|
87
|
-
tmp = rb_hash_aref( options, ID2SYM( rb_intern( "xid" ) ) );
|
|
88
|
-
if ( tmp != Qnil ) {
|
|
89
|
-
xid = tmp;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
if ( xid != Qnil ) {
|
|
93
|
-
validate_xid( xid );
|
|
94
|
-
set_xid( features_request, ( uint32_t ) NUM2UINT( xid ) );
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
set_xid( features_request, get_transaction_id() );
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return self;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
/*
|
|
107
|
-
* Transaction ids, message sequence numbers matching requests to
|
|
108
|
-
* replies.
|
|
109
|
-
*
|
|
110
|
-
* @return [Number] the value of transaction ID.
|
|
111
|
-
*/
|
|
112
|
-
static VALUE
|
|
113
|
-
features_request_transaction_id( VALUE self ) {
|
|
114
|
-
return get_xid( self );
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
void
|
|
119
|
-
Init_features_request() {
|
|
120
|
-
mTrema = rb_define_module( "Trema" );
|
|
121
|
-
cFeaturesRequest = rb_define_class_under( mTrema, "FeaturesRequest", rb_cObject );
|
|
122
|
-
rb_define_alloc_func( cFeaturesRequest, features_request_alloc );
|
|
123
|
-
rb_define_method( cFeaturesRequest, "initialize", features_request_init, -1 );
|
|
124
|
-
rb_define_method( cFeaturesRequest, "transaction_id", features_request_transaction_id, 0 );
|
|
125
|
-
rb_alias( cFeaturesRequest, rb_intern( "xid" ), rb_intern( "transaction_id" ) );
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
/*
|
|
130
|
-
* Local variables:
|
|
131
|
-
* c-basic-offset: 2
|
|
132
|
-
* indent-tabs-mode: nil
|
|
133
|
-
* End:
|
|
134
|
-
*/
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Ruby wrapper class of OpenFlow features request message.
|
|
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
|
-
#ifndef FEATURES_REQUEST_H
|
|
22
|
-
#define FEATURES_REQUEST_H
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
#include "ruby.h"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
extern VALUE cFeaturesRequest;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
void Init_features_request( void );
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
#endif // FEATURES_REQUEST_H
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
/*
|
|
38
|
-
* Local variables:
|
|
39
|
-
* c-basic-offset: 2
|
|
40
|
-
* indent-tabs-mode: nil
|
|
41
|
-
* End:
|
|
42
|
-
*/
|
data/ruby/trema/flow-mod.c
DELETED
|
@@ -1,150 +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.h"
|
|
21
|
-
#include "trema-ruby-utils.h"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
extern VALUE mTrema;
|
|
25
|
-
VALUE cFlowMod;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
static VALUE
|
|
29
|
-
flow_mod_alloc( VALUE klass ) {
|
|
30
|
-
struct ofp_match match;
|
|
31
|
-
buffer *flow_mod = create_flow_mod(
|
|
32
|
-
0,
|
|
33
|
-
match,
|
|
34
|
-
0,
|
|
35
|
-
0,
|
|
36
|
-
0,
|
|
37
|
-
0,
|
|
38
|
-
UINT16_MAX,
|
|
39
|
-
UINT32_MAX,
|
|
40
|
-
OFPP_NONE,
|
|
41
|
-
0,
|
|
42
|
-
NULL
|
|
43
|
-
);
|
|
44
|
-
return Data_Wrap_Struct( klass, NULL, free_buffer, flow_mod );
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
static VALUE
|
|
49
|
-
flow_mod_init( int argc, VALUE *argv, VALUE self ) {
|
|
50
|
-
buffer *flow_mod = NULL;
|
|
51
|
-
Data_Get_Struct( self, buffer, flow_mod );
|
|
52
|
-
VALUE options = Qnil;
|
|
53
|
-
|
|
54
|
-
if ( rb_scan_args( argc, argv, "01", &options ) == 0 ) {
|
|
55
|
-
set_xid( flow_mod, get_transaction_id() );
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
if ( options == Qnil ) {
|
|
59
|
-
set_xid( flow_mod, get_transaction_id() );
|
|
60
|
-
}
|
|
61
|
-
else if ( rb_obj_is_kind_of( options, rb_cInteger ) == Qtrue ) {
|
|
62
|
-
validate_xid( options );
|
|
63
|
-
set_xid( flow_mod, ( uint32_t ) NUM2UINT( options ) );
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
Check_Type( options, T_HASH );
|
|
67
|
-
VALUE tmp = Qnil;
|
|
68
|
-
VALUE xid = Qnil;
|
|
69
|
-
|
|
70
|
-
tmp = rb_hash_aref( options, ID2SYM( rb_intern( "transaction_id" ) ) );
|
|
71
|
-
if ( tmp != Qnil ) {
|
|
72
|
-
xid = tmp;
|
|
73
|
-
}
|
|
74
|
-
tmp = rb_hash_aref( options, ID2SYM( rb_intern( "xid" ) ) );
|
|
75
|
-
if ( tmp != Qnil ) {
|
|
76
|
-
xid = tmp;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
tmp = rb_hash_aref( options, ID2SYM( rb_intern( "idle_timeout" ) ) );
|
|
80
|
-
if ( tmp != Qnil ) {
|
|
81
|
-
( ( struct ofp_flow_mod * ) ( flow_mod->data ) )->idle_timeout = ( uint16_t ) NUM2UINT( tmp );
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if ( xid != Qnil ) {
|
|
85
|
-
validate_xid( xid );
|
|
86
|
-
set_xid( flow_mod, ( uint32_t ) NUM2UINT( xid ) );
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
set_xid( flow_mod, get_transaction_id() );
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return self;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
static VALUE
|
|
99
|
-
flow_mod_transaction_id( VALUE self ) {
|
|
100
|
-
return get_xid( self );
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
static VALUE
|
|
105
|
-
flow_mod_command( VALUE self ) {
|
|
106
|
-
buffer *flow_mod;
|
|
107
|
-
Data_Get_Struct( self, buffer, flow_mod );
|
|
108
|
-
uint32_t command = ntohl( ( ( struct ofp_flow_mod * ) ( flow_mod->data ) )->command );
|
|
109
|
-
return UINT2NUM( command );
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
static VALUE
|
|
114
|
-
flow_mod_idle_timeout( VALUE self ) {
|
|
115
|
-
buffer *flow_mod;
|
|
116
|
-
Data_Get_Struct( self, buffer, flow_mod );
|
|
117
|
-
uint32_t idle_timeout = ntohl( ( ( struct ofp_flow_mod * ) ( flow_mod->data ) )->idle_timeout );
|
|
118
|
-
return UINT2NUM( idle_timeout );
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
static VALUE
|
|
123
|
-
flow_mod_hard_timeout( VALUE self ) {
|
|
124
|
-
buffer *flow_mod;
|
|
125
|
-
Data_Get_Struct( self, buffer, flow_mod );
|
|
126
|
-
uint32_t hard_timeout = ntohl( ( ( struct ofp_flow_mod * ) ( flow_mod->data ) )->hard_timeout );
|
|
127
|
-
return UINT2NUM( hard_timeout );
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
void
|
|
132
|
-
Init_flow_mod() {
|
|
133
|
-
mTrema = rb_define_module( "Trema" );
|
|
134
|
-
cFlowMod = rb_define_class_under( mTrema, "FlowMod", rb_cObject );
|
|
135
|
-
rb_define_alloc_func( cFlowMod, flow_mod_alloc );
|
|
136
|
-
rb_define_method( cFlowMod, "initialize", flow_mod_init, -1 );
|
|
137
|
-
rb_define_method( cFlowMod, "transaction_id", flow_mod_transaction_id, 0 );
|
|
138
|
-
rb_define_method( cFlowMod, "command", flow_mod_command, 0 );
|
|
139
|
-
rb_define_method( cFlowMod, "idle_timeout", flow_mod_idle_timeout, 0 );
|
|
140
|
-
rb_define_method( cFlowMod, "hard_timeout", flow_mod_hard_timeout, 0 );
|
|
141
|
-
rb_alias( cFlowMod, rb_intern( "xid" ), rb_intern( "transaction_id" ) );
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
/*
|
|
146
|
-
* Local variables:
|
|
147
|
-
* c-basic-offset: 2
|
|
148
|
-
* indent-tabs-mode: nil
|
|
149
|
-
* End:
|
|
150
|
-
*/
|
data/ruby/trema/flow-mod.h
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Ruby wrapper class of OpenFlow FlowMod message.
|
|
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
|
-
#ifndef RUBY_FLOW_MOD_H
|
|
22
|
-
#define RUBY_FLOW_MOD_H
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
#include "ruby.h"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
extern VALUE cFlowMod;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
void Init_flow_mod( void );
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
#endif // RUBY_FLOW_MOD_H
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
/*
|
|
38
|
-
* Local variables:
|
|
39
|
-
* c-basic-offset: 2
|
|
40
|
-
* indent-tabs-mode: nil
|
|
41
|
-
* End:
|
|
42
|
-
*/
|
data/ruby/trema/flow-removed.c
DELETED
|
@@ -1,280 +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 "trema.h"
|
|
20
|
-
#include "ruby.h"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
extern VALUE mTrema;
|
|
24
|
-
VALUE cFlowRemoved;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/*
|
|
28
|
-
* When a flow is deleted or expired a +OFPT_FLOW_REMOVED+ message is sent as long
|
|
29
|
-
* as the +OFPFF_SEND_FLOW_REM+ bit is toggled in the +flags+ bitmap during
|
|
30
|
-
* flow setup. A user would not explicitly instantiate a {FlowRemoved} object but
|
|
31
|
-
* would be created while parsing the +OPPT_FLOW_REMOVED+ message.
|
|
32
|
-
* Returns an object that encapsulates the +OPPT_FLOW_REMOVED+ OpenFlow message.
|
|
33
|
-
*
|
|
34
|
-
* @overload initialize(options={})
|
|
35
|
-
* @example
|
|
36
|
-
* FlowRemoved.new(
|
|
37
|
-
* :datapath_id => 0xabc,
|
|
38
|
-
* :transaction_id => 0,
|
|
39
|
-
* :match => Match,
|
|
40
|
-
* :cookie => 123456789,
|
|
41
|
-
* :priority => 65535,
|
|
42
|
-
* :reason => 0,
|
|
43
|
-
* :duration_sec => 1,
|
|
44
|
-
* :duration_nsec => 783000000,
|
|
45
|
-
* :idle_timeout => 1,
|
|
46
|
-
* :packet_count => 1
|
|
47
|
-
* :byte_count=> 64
|
|
48
|
-
* )
|
|
49
|
-
*
|
|
50
|
-
* @param [Hash] options
|
|
51
|
-
* the options to create a message with.
|
|
52
|
-
*
|
|
53
|
-
* @option options [Symbol] :datapath_id
|
|
54
|
-
* message originator identifier.
|
|
55
|
-
*
|
|
56
|
-
* @option options [Symbol] :transaction_id
|
|
57
|
-
* unsolicited message transaction_id is zero.
|
|
58
|
-
*
|
|
59
|
-
* @option options [Symbol] :match
|
|
60
|
-
* a {Match} object describing the flow fields copied from the corresponding
|
|
61
|
-
* flow setup message.
|
|
62
|
-
*
|
|
63
|
-
* @option options [Symbol] :cookie
|
|
64
|
-
* an opaque handle copied from the corresponding
|
|
65
|
-
* flow setup message.
|
|
66
|
-
*
|
|
67
|
-
* @option options [Symbol] :priority
|
|
68
|
-
* the priority level of the flow copied from the corresponding
|
|
69
|
-
* flow setup message.
|
|
70
|
-
*
|
|
71
|
-
* @option options [Symbol] :reason
|
|
72
|
-
* the reason why the flow is removed.
|
|
73
|
-
*
|
|
74
|
-
* @option options [Symbol] :duration_sec
|
|
75
|
-
* the number of seconds the flow was active.
|
|
76
|
-
*
|
|
77
|
-
* @option options [Symbol] :duration_nsec
|
|
78
|
-
* the number of nanoseconds the flow was active.
|
|
79
|
-
*
|
|
80
|
-
* @option options [Symbol] :idle_timeout
|
|
81
|
-
* time elapsed in seconds before the flow is removed, copied from the
|
|
82
|
-
* corresponding flow setup message.
|
|
83
|
-
*
|
|
84
|
-
* @option options [Symbol] :packet_count
|
|
85
|
-
* a counter of the total number of packets.
|
|
86
|
-
*
|
|
87
|
-
* @option options [Symbol] :byte_count
|
|
88
|
-
* a counter of the total number of bytes.
|
|
89
|
-
*
|
|
90
|
-
* @return [FlowRemoved] self
|
|
91
|
-
*/
|
|
92
|
-
static VALUE
|
|
93
|
-
flow_removed_init( VALUE self, VALUE options ) {
|
|
94
|
-
rb_iv_set( self, "@attribute", options );
|
|
95
|
-
return self;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
/*
|
|
100
|
-
* Message originator identifier.
|
|
101
|
-
*
|
|
102
|
-
* @return [Number] the value of datapath_id.
|
|
103
|
-
*/
|
|
104
|
-
static VALUE
|
|
105
|
-
flow_removed_datapath_id( VALUE self ) {
|
|
106
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "datapath_id" ) ) );
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
/*
|
|
111
|
-
* For this asynchronous message the transaction_id is set to zero.
|
|
112
|
-
*
|
|
113
|
-
* @return [Number] the value of transaction_id.
|
|
114
|
-
*/
|
|
115
|
-
static VALUE
|
|
116
|
-
flow_removed_transaction_id( VALUE self ) {
|
|
117
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "transaction_id" ) ) );
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
/*
|
|
122
|
-
* Flow fields matched.
|
|
123
|
-
*
|
|
124
|
-
* @return [Match] an object that encapsulates flow fields details.
|
|
125
|
-
*/
|
|
126
|
-
static VALUE
|
|
127
|
-
flow_removed_match( VALUE self ) {
|
|
128
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "match" ) ) );
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
/*
|
|
133
|
-
* An opaque handle copied from the corresponding flow setup message.
|
|
134
|
-
*
|
|
135
|
-
* @return [Number] the value of cookie.
|
|
136
|
-
*/
|
|
137
|
-
static VALUE
|
|
138
|
-
flow_removed_cookie( VALUE self ) {
|
|
139
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "cookie" ) ) );
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
/*
|
|
144
|
-
* The priority level of the flow copied from the corresponding flow setup
|
|
145
|
-
* message.
|
|
146
|
-
*
|
|
147
|
-
* @return [Number] the value of priority.
|
|
148
|
-
*/
|
|
149
|
-
static VALUE
|
|
150
|
-
flow_removed_priority( VALUE self ) {
|
|
151
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "priority" ) ) );
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
/*
|
|
156
|
-
* The reason why the flow is removed.
|
|
157
|
-
*
|
|
158
|
-
* @return [Number] the value of reason.
|
|
159
|
-
*/
|
|
160
|
-
static VALUE
|
|
161
|
-
flow_removed_reason( VALUE self ) {
|
|
162
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "reason" ) ) );
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
/*
|
|
167
|
-
* The number of seconds the flow was active.
|
|
168
|
-
*
|
|
169
|
-
* @return [Number] the value of duration_sec.
|
|
170
|
-
*/
|
|
171
|
-
static VALUE
|
|
172
|
-
flow_removed_duration_sec( VALUE self ) {
|
|
173
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "duration_sec" ) ) );
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
/*
|
|
178
|
-
* The number of nanoseconds the flow was active.
|
|
179
|
-
*
|
|
180
|
-
* @return [Number] the value of duration_nsec.
|
|
181
|
-
*/
|
|
182
|
-
static VALUE
|
|
183
|
-
flow_removed_duration_nsec( VALUE self ) {
|
|
184
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "duration_nsec" ) ) );
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
/*
|
|
189
|
-
* Time elapsed in seconds before the flow is removed.
|
|
190
|
-
*
|
|
191
|
-
* @return [Number] the value of idle_timeout.
|
|
192
|
-
*/
|
|
193
|
-
static VALUE
|
|
194
|
-
flow_removed_idle_timeout( VALUE self ) {
|
|
195
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "idle_timeout" ) ) );
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
/*
|
|
200
|
-
* A counter of the total number of packets.
|
|
201
|
-
*
|
|
202
|
-
* @return [Number] the value of packet_count.
|
|
203
|
-
*/
|
|
204
|
-
static VALUE
|
|
205
|
-
flow_removed_packet_count( VALUE self ) {
|
|
206
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "packet_count" ) ) );
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
/*
|
|
211
|
-
* A counter of the total number of bytes.
|
|
212
|
-
*
|
|
213
|
-
* @return [Number] the value of byte_count.
|
|
214
|
-
*/
|
|
215
|
-
static VALUE
|
|
216
|
-
flow_removed_byte_count( VALUE self ) {
|
|
217
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "byte_count" ) ) );
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
/*
|
|
222
|
-
* Document-class: Trema::FlowRemoved
|
|
223
|
-
*/
|
|
224
|
-
void
|
|
225
|
-
Init_flow_removed() {
|
|
226
|
-
mTrema = rb_eval_string( "Trema" );
|
|
227
|
-
cFlowRemoved = rb_define_class_under( mTrema, "FlowRemoved", rb_cObject );
|
|
228
|
-
rb_define_const( cFlowRemoved, "OFPRR_IDLE_TIMEOUT", INT2NUM( OFPRR_IDLE_TIMEOUT ) );
|
|
229
|
-
rb_define_const( cFlowRemoved, "OFPRR_HARD_TIMEOUT", INT2NUM( OFPRR_HARD_TIMEOUT ) );
|
|
230
|
-
rb_define_const( cFlowRemoved, "OFPRR_DELETE", INT2NUM( OFPRR_DELETE ) );
|
|
231
|
-
rb_define_method( cFlowRemoved, "initialize", flow_removed_init, 1 );
|
|
232
|
-
rb_define_method( cFlowRemoved, "datapath_id", flow_removed_datapath_id, 0 );
|
|
233
|
-
rb_define_method( cFlowRemoved, "transaction_id", flow_removed_transaction_id, 0 );
|
|
234
|
-
rb_define_method( cFlowRemoved, "match", flow_removed_match, 0 );
|
|
235
|
-
rb_define_method( cFlowRemoved, "cookie", flow_removed_cookie, 0 );
|
|
236
|
-
rb_define_method( cFlowRemoved, "priority", flow_removed_priority, 0 );
|
|
237
|
-
rb_define_method( cFlowRemoved, "reason", flow_removed_reason, 0 );
|
|
238
|
-
rb_define_method( cFlowRemoved, "duration_sec", flow_removed_duration_sec, 0 );
|
|
239
|
-
rb_define_method( cFlowRemoved, "duration_nsec", flow_removed_duration_nsec, 0 );
|
|
240
|
-
rb_define_method( cFlowRemoved, "idle_timeout", flow_removed_idle_timeout, 0 );
|
|
241
|
-
rb_define_method( cFlowRemoved, "packet_count", flow_removed_packet_count, 0 );
|
|
242
|
-
rb_define_method( cFlowRemoved, "byte_count", flow_removed_byte_count, 0 );
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
void
|
|
247
|
-
handle_flow_removed( uint64_t datapath_id, flow_removed message ) {
|
|
248
|
-
VALUE controller = ( VALUE ) message.user_data;
|
|
249
|
-
if ( rb_respond_to( controller, rb_intern( "flow_removed" ) ) == Qfalse ) {
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
VALUE attributes = rb_hash_new();
|
|
254
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "datapath_id" ) ), ULL2NUM( datapath_id ) );
|
|
255
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "transaction_id" ) ), UINT2NUM( message.transaction_id ) );
|
|
256
|
-
|
|
257
|
-
VALUE match_obj = rb_eval_string( "Match.new" );
|
|
258
|
-
rb_funcall( match_obj, rb_intern( "replace" ), 1, Data_Wrap_Struct( cFlowRemoved, NULL, NULL, &message.match ) );
|
|
259
|
-
|
|
260
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "match" ) ), match_obj );
|
|
261
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "cookie" ) ), ULL2NUM( message.cookie ) );
|
|
262
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "priority" ) ), UINT2NUM( message.priority ) );
|
|
263
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "reason" ) ), UINT2NUM( message.reason ) );
|
|
264
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "duration_sec" ) ), UINT2NUM( message.duration_sec ) );
|
|
265
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "duration_nsec" ) ), UINT2NUM( message.duration_nsec ) );
|
|
266
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "idle_timeout" ) ), UINT2NUM( message.idle_timeout ) );
|
|
267
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "packet_count" ) ), ULL2NUM( message.packet_count ) );
|
|
268
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "byte_count" ) ), ULL2NUM( message.byte_count ) );
|
|
269
|
-
|
|
270
|
-
VALUE r_message = rb_funcall( cFlowRemoved, rb_intern( "new" ), 1, attributes );
|
|
271
|
-
rb_funcall( controller, rb_intern( "flow_removed" ), 2, ULL2NUM( datapath_id ), r_message );
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
/*
|
|
276
|
-
* Local variables:
|
|
277
|
-
* c-basic-offset: 2
|
|
278
|
-
* indent-tabs-mode: nil
|
|
279
|
-
* End:
|
|
280
|
-
*/
|