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
|
@@ -1,60 +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
|
-
module Trema
|
|
20
|
-
#
|
|
21
|
-
# As physical ports of the datapath are modified, the controller
|
|
22
|
-
# needs to be informed with this message.
|
|
23
|
-
#
|
|
24
|
-
class PortStatusModify < PortStatus
|
|
25
|
-
#
|
|
26
|
-
# Creates a port-modified message.
|
|
27
|
-
#
|
|
28
|
-
# @example
|
|
29
|
-
# PortStatusModify.new(
|
|
30
|
-
# :datapath_id => 0xabc,
|
|
31
|
-
# :transaction_id => 123,
|
|
32
|
-
# :phy_port => port
|
|
33
|
-
# )
|
|
34
|
-
#
|
|
35
|
-
# @param [Hash] options
|
|
36
|
-
# the options to create a message with.
|
|
37
|
-
#
|
|
38
|
-
# @option options [Number] :datapath_id
|
|
39
|
-
# message originator identifier.
|
|
40
|
-
#
|
|
41
|
-
# @option options [Number] :transaction_id
|
|
42
|
-
# unsolicited message transaction_id is zero.
|
|
43
|
-
#
|
|
44
|
-
# @option options [Port] :phy_port
|
|
45
|
-
# a {Port} object describing the properties of the port.
|
|
46
|
-
#
|
|
47
|
-
# @return [PortStatusModify]
|
|
48
|
-
#
|
|
49
|
-
def initialize(options)
|
|
50
|
-
super options.merge(:reason => OFPPR_MODIFY)
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
### Local variables:
|
|
57
|
-
### mode: Ruby
|
|
58
|
-
### coding: utf-8
|
|
59
|
-
### indent-tabs-mode: nil
|
|
60
|
-
### End:
|
data/ruby/trema/port-status.c
DELETED
|
@@ -1,192 +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
|
-
#include "port.h"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
extern VALUE mTrema;
|
|
25
|
-
VALUE cPortStatus;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
/*
|
|
29
|
-
* Creates a port status message.
|
|
30
|
-
*
|
|
31
|
-
* @overload initialize(options)
|
|
32
|
-
* @example
|
|
33
|
-
* PortStatus.new(
|
|
34
|
-
* :datapath_id => 0xabc,
|
|
35
|
-
* :transaction_id => 123,
|
|
36
|
-
* :reason => PortStatus::OFPPR_ADD,
|
|
37
|
-
* :phy_port => port
|
|
38
|
-
* )
|
|
39
|
-
*
|
|
40
|
-
* @param [Hash] options
|
|
41
|
-
* the options to create a message with.
|
|
42
|
-
*
|
|
43
|
-
* @option options [Number] :datapath_id
|
|
44
|
-
* message originator identifier.
|
|
45
|
-
*
|
|
46
|
-
* @option options [Number] :transaction_id
|
|
47
|
-
* unsolicited message transaction_id is zero.
|
|
48
|
-
*
|
|
49
|
-
* @option options [Number] :reason
|
|
50
|
-
* the reason why this message was sent.
|
|
51
|
-
*
|
|
52
|
-
* @option options [Port] :phy_port
|
|
53
|
-
* a {Port} object describing the properties of the port.
|
|
54
|
-
*
|
|
55
|
-
* @return [PortStatus]
|
|
56
|
-
*/
|
|
57
|
-
static VALUE
|
|
58
|
-
port_status_init( VALUE self, VALUE options ) {
|
|
59
|
-
if ( rb_hash_aref( options, ID2SYM( rb_intern( "datapath_id" ) ) ) == Qnil ) {
|
|
60
|
-
rb_raise( rb_eArgError, ":datapath_id is a mandatory option" );
|
|
61
|
-
}
|
|
62
|
-
if ( rb_hash_aref( options, ID2SYM( rb_intern( "transaction_id" ) ) ) == Qnil ) {
|
|
63
|
-
rb_raise( rb_eArgError, ":transaction_id is a mandatory option" );
|
|
64
|
-
}
|
|
65
|
-
if ( rb_hash_aref( options, ID2SYM( rb_intern( "reason" ) ) ) == Qnil ) {
|
|
66
|
-
rb_raise( rb_eArgError, ":reason is a mandatory option" );
|
|
67
|
-
}
|
|
68
|
-
if ( rb_hash_aref( options, ID2SYM( rb_intern( "phy_port" ) ) ) == Qnil ) {
|
|
69
|
-
rb_raise( rb_eArgError, ":phy_port is a mandatory option" );
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
rb_iv_set( self, "@attribute", options );
|
|
73
|
-
return self;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
/*
|
|
78
|
-
* Message originator identifier.
|
|
79
|
-
*
|
|
80
|
-
* @return [Number] the value of datapath_id.
|
|
81
|
-
*/
|
|
82
|
-
static VALUE
|
|
83
|
-
port_status_datapath_id( VALUE self ) {
|
|
84
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "datapath_id" ) ) );
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
/*
|
|
89
|
-
* For this asynchronous message the transaction_id is set to zero.
|
|
90
|
-
*
|
|
91
|
-
* @return [Number] the value of transaction_id.
|
|
92
|
-
*/
|
|
93
|
-
static VALUE
|
|
94
|
-
port_status_transaction_id( VALUE self ) {
|
|
95
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "transaction_id" ) ) );
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
/*
|
|
100
|
-
* The reason value specifies an addition, deletion or modification to a port.
|
|
101
|
-
*
|
|
102
|
-
* @return [Number] the value of reason.
|
|
103
|
-
*/
|
|
104
|
-
static VALUE
|
|
105
|
-
port_status_reason( VALUE self ) {
|
|
106
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "reason" ) ) );
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
/*
|
|
111
|
-
* Port detailed description, state.
|
|
112
|
-
*
|
|
113
|
-
* @return [Port] the value of phy_port.
|
|
114
|
-
*/
|
|
115
|
-
static VALUE
|
|
116
|
-
port_status_phy_port( VALUE self ) {
|
|
117
|
-
return rb_hash_aref( rb_iv_get( self, "@attribute" ), ID2SYM( rb_intern( "phy_port" ) ) );
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
/*
|
|
122
|
-
* Document-class: Trema::PortStatus
|
|
123
|
-
*/
|
|
124
|
-
void
|
|
125
|
-
Init_port_status() {
|
|
126
|
-
mTrema = rb_eval_string( "Trema" );
|
|
127
|
-
cPortStatus = rb_define_class_under( mTrema, "PortStatus", rb_cObject );
|
|
128
|
-
|
|
129
|
-
rb_define_const( cPortStatus, "OFPPR_ADD", INT2NUM( OFPPR_ADD ) );
|
|
130
|
-
rb_define_const( cPortStatus, "OFPPR_DELETE", INT2NUM( OFPPR_DELETE ) );
|
|
131
|
-
rb_define_const( cPortStatus, "OFPPR_MODIFY", INT2NUM( OFPPR_MODIFY ) );
|
|
132
|
-
|
|
133
|
-
rb_define_method( cPortStatus, "initialize", port_status_init, 1 );
|
|
134
|
-
rb_define_method( cPortStatus, "datapath_id", port_status_datapath_id, 0 );
|
|
135
|
-
rb_alias( cPortStatus, rb_intern( "dpid" ), rb_intern( "datapath_id" ) );
|
|
136
|
-
rb_define_method( cPortStatus, "transaction_id", port_status_transaction_id, 0 );
|
|
137
|
-
rb_alias( cPortStatus, rb_intern( "xid" ), rb_intern( "transaction_id" ) );
|
|
138
|
-
rb_define_method( cPortStatus, "reason", port_status_reason, 0 );
|
|
139
|
-
rb_define_method( cPortStatus, "phy_port", port_status_phy_port, 0 );
|
|
140
|
-
rb_alias( cPortStatus, rb_intern( "port" ), rb_intern( "phy_port" ) );
|
|
141
|
-
|
|
142
|
-
rb_require( "trema/port-status-add" );
|
|
143
|
-
rb_require( "trema/port-status-delete" );
|
|
144
|
-
rb_require( "trema/port-status-modify" );
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
/*
|
|
149
|
-
* Handler called when a port status message is received.
|
|
150
|
-
*/
|
|
151
|
-
void
|
|
152
|
-
handle_port_status(
|
|
153
|
-
uint64_t datapath_id,
|
|
154
|
-
uint32_t transaction_id,
|
|
155
|
-
uint8_t reason,
|
|
156
|
-
struct ofp_phy_port phy_port,
|
|
157
|
-
void *user_data
|
|
158
|
-
) {
|
|
159
|
-
VALUE controller = ( VALUE ) user_data;
|
|
160
|
-
|
|
161
|
-
if ( rb_respond_to( controller, rb_intern( "port_status" ) ) == Qfalse ) {
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
VALUE attributes = rb_hash_new();
|
|
166
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "datapath_id" ) ), ULL2NUM( datapath_id ) );
|
|
167
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "transaction_id" ) ), UINT2NUM( transaction_id ) );
|
|
168
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "phy_port" ) ), port_from( &phy_port, datapath_id ) );
|
|
169
|
-
|
|
170
|
-
VALUE port_status = Qnil;
|
|
171
|
-
if ( reason == OFPPR_ADD ) {
|
|
172
|
-
port_status = rb_funcall( rb_eval_string( "Trema::PortStatusAdd" ), rb_intern( "new" ), 1, attributes );
|
|
173
|
-
}
|
|
174
|
-
else if ( reason == OFPPR_DELETE ) {
|
|
175
|
-
port_status = rb_funcall( rb_eval_string( "Trema::PortStatusDelete" ), rb_intern( "new" ), 1, attributes );
|
|
176
|
-
}
|
|
177
|
-
else if ( reason == OFPPR_MODIFY ) {
|
|
178
|
-
port_status = rb_funcall( rb_eval_string( "Trema::PortStatusModify" ), rb_intern( "new" ), 1, attributes );
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
rb_raise( rb_eArgError, "Unknown port-status reason." );
|
|
182
|
-
}
|
|
183
|
-
rb_funcall( controller, rb_intern( "port_status" ), 2, ULL2NUM( datapath_id ), port_status );
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
/*
|
|
188
|
-
* Local variables:
|
|
189
|
-
* c-basic-offset: 2
|
|
190
|
-
* indent-tabs-mode: nil
|
|
191
|
-
* End:
|
|
192
|
-
*/
|
data/ruby/trema/port-status.h
DELETED
|
@@ -1,41 +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
|
-
|
|
22
|
-
|
|
23
|
-
extern VALUE cPortStatus;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
void Init_port_status( void );
|
|
27
|
-
void handle_port_status(
|
|
28
|
-
uint64_t datapath_id,
|
|
29
|
-
uint32_t transaction_id,
|
|
30
|
-
uint8_t reason,
|
|
31
|
-
struct ofp_phy_port phy_port,
|
|
32
|
-
void *user_data
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
/*
|
|
37
|
-
* Local variables:
|
|
38
|
-
* c-basic-offset: 2
|
|
39
|
-
* indent-tabs-mode: nil
|
|
40
|
-
* End:
|
|
41
|
-
*/
|
data/ruby/trema/port.c
DELETED
|
@@ -1,398 +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 cPort;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/*
|
|
28
|
-
* Creates a {Port} instance that encapsulates the properties of a physical port.
|
|
29
|
-
* The newly-created instance is initialized from an options hash.
|
|
30
|
-
*
|
|
31
|
-
* @overload initialize(options={})
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* Port.new(
|
|
35
|
-
* :number => 1,
|
|
36
|
-
* :datapath_id => 0x123,
|
|
37
|
-
* :hw_addr => Mac.new( "4e:1e:9a:7a:44:be" ),
|
|
38
|
-
* :name => "trema0-0",
|
|
39
|
-
* :config => 0,
|
|
40
|
-
* :state => 0,
|
|
41
|
-
* :curr => 192,
|
|
42
|
-
* :advertised => 0,
|
|
43
|
-
* :supported => 0,
|
|
44
|
-
* :peer => 0
|
|
45
|
-
* )
|
|
46
|
-
*
|
|
47
|
-
* @param [Hash] options the options hash.
|
|
48
|
-
*
|
|
49
|
-
* @option options [Number] :datapath_id
|
|
50
|
-
* the switch's datapath ID.
|
|
51
|
-
*
|
|
52
|
-
* @option options [Number] :number
|
|
53
|
-
* the port's unique number.
|
|
54
|
-
*
|
|
55
|
-
* @option options [Mac] :hw_addr
|
|
56
|
-
* the port's Ethernet address expressed as a {Mac} object.
|
|
57
|
-
*
|
|
58
|
-
* @option options [String] :name
|
|
59
|
-
* the port's human readable defined name.
|
|
60
|
-
*
|
|
61
|
-
* @option options [Number] :config
|
|
62
|
-
* the port's configuration as a 32-bit bitmap.
|
|
63
|
-
*
|
|
64
|
-
* @option options [Number] :state
|
|
65
|
-
* the port's state as a 32-bit bitmap.
|
|
66
|
-
*
|
|
67
|
-
* @option options [Number] :curr
|
|
68
|
-
* the port's current features as a 32-bit bitmap.
|
|
69
|
-
*
|
|
70
|
-
* @option options [Number] :advertised
|
|
71
|
-
* the port's advertised features as a 32-bit bitmap.
|
|
72
|
-
*
|
|
73
|
-
* @option options [Number] :supported
|
|
74
|
-
* the port's supported features as a 32-bit bitmap.
|
|
75
|
-
*
|
|
76
|
-
* @option options [Number] :peer
|
|
77
|
-
* the features advertised by the peer connected to the port as a 32-bit bitmap.
|
|
78
|
-
*
|
|
79
|
-
* @return [Port]
|
|
80
|
-
* an object that encapsulates the properties of a physical port.
|
|
81
|
-
*/
|
|
82
|
-
static VALUE
|
|
83
|
-
port_init( VALUE self, VALUE options ) {
|
|
84
|
-
VALUE number = rb_hash_aref( options, ID2SYM( rb_intern( "number" ) ) );
|
|
85
|
-
rb_iv_set( self, "@number", number );
|
|
86
|
-
|
|
87
|
-
VALUE datapath_id = rb_hash_aref( options, ID2SYM( rb_intern( "datapath_id" ) ) );
|
|
88
|
-
rb_iv_set( self, "@datapath_id", datapath_id );
|
|
89
|
-
|
|
90
|
-
VALUE hw_addr = rb_hash_aref( options, ID2SYM( rb_intern( "hw_addr" ) ) );
|
|
91
|
-
rb_iv_set( self, "@hw_addr", hw_addr );
|
|
92
|
-
|
|
93
|
-
VALUE name = rb_hash_aref( options, ID2SYM( rb_intern( "name" ) ) );
|
|
94
|
-
rb_iv_set( self, "@name", name );
|
|
95
|
-
|
|
96
|
-
VALUE config = rb_hash_aref( options, ID2SYM( rb_intern( "config" ) ) );
|
|
97
|
-
rb_iv_set( self, "@config", config );
|
|
98
|
-
|
|
99
|
-
VALUE state = rb_hash_aref( options, ID2SYM( rb_intern( "state" ) ) );
|
|
100
|
-
rb_iv_set( self, "@state", state );
|
|
101
|
-
|
|
102
|
-
VALUE curr = rb_hash_aref( options, ID2SYM( rb_intern( "curr" ) ) );
|
|
103
|
-
rb_iv_set( self, "@curr", curr );
|
|
104
|
-
|
|
105
|
-
VALUE advertised = rb_hash_aref( options, ID2SYM( rb_intern( "advertised" ) ) );
|
|
106
|
-
rb_iv_set( self, "@advertised", advertised );
|
|
107
|
-
|
|
108
|
-
VALUE supported = rb_hash_aref( options, ID2SYM( rb_intern( "supported" ) ) );
|
|
109
|
-
rb_iv_set( self, "@supported", supported );
|
|
110
|
-
|
|
111
|
-
VALUE peer = rb_hash_aref( options, ID2SYM( rb_intern( "peer" ) ) );
|
|
112
|
-
rb_iv_set( self, "@peer", peer );
|
|
113
|
-
return self;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
/*
|
|
118
|
-
* The port's unique number.
|
|
119
|
-
*
|
|
120
|
-
* @return [Number] the value of number.
|
|
121
|
-
*/
|
|
122
|
-
static VALUE
|
|
123
|
-
port_number( VALUE self ) {
|
|
124
|
-
return rb_iv_get( self, "@number" );
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
/*
|
|
129
|
-
* The switch's datapath ID.
|
|
130
|
-
*
|
|
131
|
-
* @return [Number] the value of number.
|
|
132
|
-
*/
|
|
133
|
-
static VALUE
|
|
134
|
-
port_datapath_id( VALUE self ) {
|
|
135
|
-
return rb_iv_get( self, "@datapath_id" );
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
/*
|
|
140
|
-
* The port's Ethernet address expressed as a {Mac} object.
|
|
141
|
-
*
|
|
142
|
-
* @return [Mac] the value of hw_addr.
|
|
143
|
-
*/
|
|
144
|
-
static VALUE
|
|
145
|
-
port_hw_addr( VALUE self ) {
|
|
146
|
-
return rb_iv_get( self, "@hw_addr" );
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
/*
|
|
151
|
-
* The port's human readable defined name.
|
|
152
|
-
*
|
|
153
|
-
* @return [String] the value of name.
|
|
154
|
-
*/
|
|
155
|
-
static VALUE
|
|
156
|
-
port_name( VALUE self ) {
|
|
157
|
-
return rb_iv_get( self, "@name" );
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
/*
|
|
162
|
-
* The port's configuration as a 32-bit bitmap.
|
|
163
|
-
*
|
|
164
|
-
* @return [Number] the value of config.
|
|
165
|
-
*/
|
|
166
|
-
static VALUE
|
|
167
|
-
port_config( VALUE self ) {
|
|
168
|
-
return rb_iv_get( self, "@config" );
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
/*
|
|
173
|
-
* The port's state as a 32-bit bitmap.
|
|
174
|
-
*
|
|
175
|
-
* @return [Number] the value of state.
|
|
176
|
-
*/
|
|
177
|
-
static VALUE
|
|
178
|
-
port_state( VALUE self ) {
|
|
179
|
-
return rb_iv_get( self, "@state" );
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
/*
|
|
184
|
-
* The port's current features as a 32-bit bitmap.
|
|
185
|
-
*
|
|
186
|
-
* @return [Number] the value of curr.
|
|
187
|
-
*/
|
|
188
|
-
static VALUE
|
|
189
|
-
port_curr( VALUE self ) {
|
|
190
|
-
return rb_iv_get( self, "@curr" );
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
/*
|
|
195
|
-
* The port's advertised features as a 32-bit bitmap.
|
|
196
|
-
*
|
|
197
|
-
* @return [Number] the value of advertised.
|
|
198
|
-
*/
|
|
199
|
-
static VALUE
|
|
200
|
-
port_advertised( VALUE self ) {
|
|
201
|
-
return rb_iv_get( self, "@advertised" );
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
/*
|
|
206
|
-
* The port's supported features as a 32-bit bitmap.
|
|
207
|
-
*
|
|
208
|
-
* @return [Number] the value of supported.
|
|
209
|
-
*/
|
|
210
|
-
static VALUE
|
|
211
|
-
port_supported( VALUE self ) {
|
|
212
|
-
return rb_iv_get( self, "@supported" );
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
/*
|
|
217
|
-
* The features advertised by the peer connected to the port as a 32-bit bitmap.
|
|
218
|
-
*
|
|
219
|
-
* @return [Number] the value of peer.
|
|
220
|
-
*/
|
|
221
|
-
static VALUE
|
|
222
|
-
port_peer( VALUE self ) {
|
|
223
|
-
return rb_iv_get( self, "@peer" );
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
/*
|
|
228
|
-
* Tests if the port is up.
|
|
229
|
-
*
|
|
230
|
-
* @return [Boolean] true if port is up otherwise false.
|
|
231
|
-
*/
|
|
232
|
-
static VALUE
|
|
233
|
-
port_up( VALUE self ) {
|
|
234
|
-
uint32_t config = ( uint16_t ) NUM2UINT( rb_iv_get( self, "@config" ) );
|
|
235
|
-
if ( ( config & OFPPC_PORT_DOWN ) == OFPPC_PORT_DOWN ) {
|
|
236
|
-
return Qfalse;
|
|
237
|
-
}
|
|
238
|
-
return Qtrue;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
/*
|
|
243
|
-
* Tests if the port is down.
|
|
244
|
-
*
|
|
245
|
-
* @return [Boolean] true if port is down otherwise false.
|
|
246
|
-
*/
|
|
247
|
-
static VALUE
|
|
248
|
-
port_down( VALUE self ) {
|
|
249
|
-
return port_up( self ) == Qfalse ? Qtrue : Qfalse;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
/*
|
|
254
|
-
* Tests if the link is up.
|
|
255
|
-
*
|
|
256
|
-
* @return [Boolean] true if link is up otherwise false.
|
|
257
|
-
*/
|
|
258
|
-
static VALUE
|
|
259
|
-
link_up( VALUE self ) {
|
|
260
|
-
uint32_t state = ( uint16_t ) NUM2UINT( rb_iv_get( self, "@state" ) );
|
|
261
|
-
if ( ( state & OFPPS_LINK_DOWN ) == OFPPS_LINK_DOWN ) {
|
|
262
|
-
return Qfalse;
|
|
263
|
-
}
|
|
264
|
-
return Qtrue;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
/*
|
|
269
|
-
* Tests if the link is down.
|
|
270
|
-
*
|
|
271
|
-
* @return [Boolean] true if link is down otherwise false.
|
|
272
|
-
*/
|
|
273
|
-
static VALUE
|
|
274
|
-
link_down( VALUE self ) {
|
|
275
|
-
return link_up( self ) == Qfalse ? Qtrue : Qfalse;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
/*
|
|
280
|
-
* Tests if the link and port are both up.
|
|
281
|
-
*
|
|
282
|
-
* @return [Boolean] true if link is up otherwise false.
|
|
283
|
-
*/
|
|
284
|
-
static VALUE
|
|
285
|
-
port_and_link_up( VALUE self ) {
|
|
286
|
-
if ( port_up( self ) == Qtrue && link_up( self ) == Qtrue ) {
|
|
287
|
-
return Qtrue;
|
|
288
|
-
}
|
|
289
|
-
return Qfalse;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
/*
|
|
294
|
-
* Tests if the link or port is down.
|
|
295
|
-
*
|
|
296
|
-
* @return [Boolean] true if link is up otherwise false.
|
|
297
|
-
*/
|
|
298
|
-
static VALUE
|
|
299
|
-
port_or_link_down( VALUE self ) {
|
|
300
|
-
return port_and_link_up( self ) == Qfalse ? Qtrue : Qfalse;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
/*
|
|
305
|
-
* Compares two ports by substracting their unique numbers.
|
|
306
|
-
*
|
|
307
|
-
* @return [Number] the result of the substraction. Zero ports are equal.
|
|
308
|
-
*/
|
|
309
|
-
static VALUE
|
|
310
|
-
port_compare( VALUE self, VALUE other ) {
|
|
311
|
-
uint16_t a = ( uint16_t ) NUM2UINT( rb_iv_get( self, "@number" ) );
|
|
312
|
-
uint16_t b = ( uint16_t ) NUM2UINT( rb_iv_get( other, "@number" ) );
|
|
313
|
-
return UINT2NUM( ( uint16_t ) ( a - b ) );
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
/*
|
|
318
|
-
* Document-class: Trema::Port
|
|
319
|
-
*/
|
|
320
|
-
void
|
|
321
|
-
Init_port() {
|
|
322
|
-
rb_require( "pio" );
|
|
323
|
-
|
|
324
|
-
mTrema = rb_eval_string( "Trema" );
|
|
325
|
-
cPort = rb_define_class_under( mTrema, "Port", rb_cObject );
|
|
326
|
-
|
|
327
|
-
rb_define_const( cPort, "OFPPC_PORT_DOWN", INT2NUM( OFPPC_PORT_DOWN ) );
|
|
328
|
-
rb_define_const( cPort, "OFPPC_NO_STP", INT2NUM( OFPPC_NO_STP ) );
|
|
329
|
-
rb_define_const( cPort, "OFPPC_NO_RECV", INT2NUM( OFPPC_NO_RECV ) );
|
|
330
|
-
rb_define_const( cPort, "OFPPC_NO_RECV_STP", INT2NUM( OFPPC_NO_RECV_STP ) );
|
|
331
|
-
rb_define_const( cPort, "OFPPC_NO_FLOOD", INT2NUM( OFPPC_NO_FLOOD ) );
|
|
332
|
-
rb_define_const( cPort, "OFPPC_NO_FWD", INT2NUM( OFPPC_NO_FWD ) );
|
|
333
|
-
rb_define_const( cPort, "OFPPC_NO_PACKET_IN", INT2NUM( OFPPC_NO_PACKET_IN ) );
|
|
334
|
-
rb_define_const( cPort, "OFPPS_LINK_DOWN", INT2NUM( OFPPS_LINK_DOWN ) );
|
|
335
|
-
rb_define_const( cPort, "OFPPS_STP_LISTEN", INT2NUM( OFPPS_STP_LISTEN ) );
|
|
336
|
-
rb_define_const( cPort, "OFPPS_STP_LEARN", INT2NUM( OFPPS_STP_LEARN ) );
|
|
337
|
-
rb_define_const( cPort, "OFPPS_STP_FORWARD", INT2NUM( OFPPS_STP_FORWARD ) );
|
|
338
|
-
rb_define_const( cPort, "OFPPS_STP_BLOCK", INT2NUM( OFPPS_STP_BLOCK ) );
|
|
339
|
-
rb_define_const( cPort, "OFPPS_STP_MASK", INT2NUM( OFPPS_STP_MASK ) );
|
|
340
|
-
rb_define_const( cPort, "OFPPF_10MB_HD", INT2NUM( OFPPF_10MB_HD ) );
|
|
341
|
-
rb_define_const( cPort, "OFPPF_10MB_FD", INT2NUM( OFPPF_10MB_FD ) );
|
|
342
|
-
rb_define_const( cPort, "OFPPF_100MB_HD", INT2NUM( OFPPF_100MB_HD ) );
|
|
343
|
-
rb_define_const( cPort, "OFPPF_100MB_FD", INT2NUM( OFPPF_100MB_FD ) );
|
|
344
|
-
rb_define_const( cPort, "OFPPF_1GB_HD", INT2NUM( OFPPF_1GB_HD ) );
|
|
345
|
-
rb_define_const( cPort, "OFPPF_1GB_FD", INT2NUM( OFPPF_1GB_FD ) );
|
|
346
|
-
rb_define_const( cPort, "OFPPF_10GB_FD", INT2NUM( OFPPF_10GB_FD ) );
|
|
347
|
-
rb_define_const( cPort, "OFPPF_COPPER", INT2NUM( OFPPF_COPPER ) );
|
|
348
|
-
rb_define_const( cPort, "OFPPF_FIBER", INT2NUM( OFPPF_FIBER ) );
|
|
349
|
-
rb_define_const( cPort, "OFPPF_AUTONEG", INT2NUM( OFPPF_AUTONEG ) );
|
|
350
|
-
rb_define_const( cPort, "OFPPF_PAUSE", INT2NUM( OFPPF_PAUSE ) );
|
|
351
|
-
rb_define_const( cPort, "OFPPF_PAUSE_ASYM", INT2NUM( OFPPF_PAUSE_ASYM ) );
|
|
352
|
-
|
|
353
|
-
rb_define_method( cPort, "initialize", port_init, 1 );
|
|
354
|
-
rb_define_method( cPort, "number", port_number, 0 );
|
|
355
|
-
rb_define_method( cPort, "datapath_id", port_datapath_id, 0 );
|
|
356
|
-
rb_define_method( cPort, "dpid", port_datapath_id, 0 );
|
|
357
|
-
rb_define_method( cPort, "hw_addr", port_hw_addr, 0 );
|
|
358
|
-
rb_define_method( cPort, "name", port_name, 0 );
|
|
359
|
-
rb_define_method( cPort, "config", port_config, 0 );
|
|
360
|
-
rb_define_method( cPort, "state", port_state, 0 );
|
|
361
|
-
rb_define_method( cPort, "curr", port_curr, 0 );
|
|
362
|
-
rb_define_method( cPort, "advertised", port_advertised, 0 );
|
|
363
|
-
rb_define_method( cPort, "supported", port_supported, 0 );
|
|
364
|
-
rb_define_method( cPort, "peer", port_peer, 0 );
|
|
365
|
-
rb_define_method( cPort, "port_up?", port_up, 0 );
|
|
366
|
-
rb_define_method( cPort, "port_down?", port_down, 0 );
|
|
367
|
-
rb_define_method( cPort, "link_up?", link_up, 0 );
|
|
368
|
-
rb_define_method( cPort, "link_down?", link_down, 0 );
|
|
369
|
-
rb_define_method( cPort, "up?", port_and_link_up, 0 );
|
|
370
|
-
rb_define_method( cPort, "down?", port_or_link_down, 0 );
|
|
371
|
-
rb_define_method( cPort, "<=>", port_compare, 1 );
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
VALUE
|
|
376
|
-
port_from( const struct ofp_phy_port *phy_port, uint64_t datapath_id ) {
|
|
377
|
-
VALUE attributes = rb_hash_new();
|
|
378
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "datapath_id" ) ), ULL2NUM( datapath_id ) );
|
|
379
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "number" ) ), UINT2NUM( phy_port->port_no ) );
|
|
380
|
-
VALUE hw_addr = rb_funcall( rb_eval_string( "Pio::Mac" ), rb_intern( "new" ), 1, ULL2NUM( mac_to_uint64( phy_port->hw_addr ) ) );
|
|
381
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "hw_addr" ) ), hw_addr );
|
|
382
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "name" ) ), rb_str_new2( phy_port->name ) );
|
|
383
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "config" ) ), UINT2NUM( phy_port->config ) );
|
|
384
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "state" ) ), UINT2NUM( phy_port->state ) );
|
|
385
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "curr" ) ), UINT2NUM( phy_port->curr ) );
|
|
386
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "advertised" ) ), UINT2NUM( phy_port->advertised ) );
|
|
387
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "supported" ) ), UINT2NUM( phy_port->supported ) );
|
|
388
|
-
rb_hash_aset( attributes, ID2SYM( rb_intern( "peer" ) ), UINT2NUM( phy_port->peer ) );
|
|
389
|
-
return rb_funcall( cPort, rb_intern( "new" ), 1, attributes );
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
/*
|
|
394
|
-
* Local variables:
|
|
395
|
-
* c-basic-offset: 2
|
|
396
|
-
* indent-tabs-mode: nil
|
|
397
|
-
* End:
|
|
398
|
-
*/
|