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,262 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* An OpenFlow switch interface library.
|
|
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 OPENFLOW_SWITCH_INTERFACE_H
|
|
22
|
-
#define OPENFLOW_SWITCH_INTERFACE_H
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
#include "bool.h"
|
|
26
|
-
#include "buffer.h"
|
|
27
|
-
#include "openflow.h"
|
|
28
|
-
#include "openflow_message.h"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
/********************************************************************************
|
|
32
|
-
* Functions for initializing/finalizing the OpenFlow switch interface.
|
|
33
|
-
********************************************************************************/
|
|
34
|
-
|
|
35
|
-
bool init_openflow_switch_interface( const uint64_t datapath_id, uint32_t controller_ip, uint16_t controller_port );
|
|
36
|
-
bool finalize_openflow_switch_interface( void );
|
|
37
|
-
bool openflow_switch_interface_is_initialized( void );
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/********************************************************************************
|
|
41
|
-
* Event handler definitions.
|
|
42
|
-
********************************************************************************/
|
|
43
|
-
|
|
44
|
-
typedef void ( *controller_connected_handler )(
|
|
45
|
-
void *user_data
|
|
46
|
-
);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
typedef void ( *controller_disconnected_handler )(
|
|
50
|
-
void *user_data
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
typedef void ( *hello_handler )(
|
|
55
|
-
uint32_t transaction_id,
|
|
56
|
-
uint8_t version,
|
|
57
|
-
void *user_data
|
|
58
|
-
);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
typedef void ( *error_handler )(
|
|
62
|
-
uint32_t transaction_id,
|
|
63
|
-
uint16_t type,
|
|
64
|
-
uint16_t code,
|
|
65
|
-
const buffer *data,
|
|
66
|
-
void *user_data
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
typedef void ( *echo_request_handler )(
|
|
71
|
-
uint32_t transaction_id,
|
|
72
|
-
const buffer *body,
|
|
73
|
-
void *user_data
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
typedef void ( *echo_reply_handler )(
|
|
78
|
-
uint32_t transaction_id,
|
|
79
|
-
const buffer *body,
|
|
80
|
-
void *user_data
|
|
81
|
-
);
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
typedef void ( *vendor_handler )(
|
|
85
|
-
uint32_t transaction_id,
|
|
86
|
-
uint32_t vendor,
|
|
87
|
-
const buffer *data,
|
|
88
|
-
void *user_data
|
|
89
|
-
);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
typedef void ( *features_request_handler )(
|
|
93
|
-
uint32_t transaction_id,
|
|
94
|
-
void *user_data
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
typedef void ( *get_config_request_handler )(
|
|
99
|
-
uint32_t transaction_id,
|
|
100
|
-
void *user_data
|
|
101
|
-
);
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
typedef void ( *set_config_handler )(
|
|
105
|
-
uint32_t transaction_id,
|
|
106
|
-
uint16_t flags,
|
|
107
|
-
uint16_t miss_send_len,
|
|
108
|
-
void *user_data
|
|
109
|
-
);
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
typedef void ( *packet_out_handler )(
|
|
113
|
-
uint32_t transaction_id,
|
|
114
|
-
uint32_t buffer_id,
|
|
115
|
-
uint16_t in_port,
|
|
116
|
-
const openflow_actions *actions,
|
|
117
|
-
const buffer *data,
|
|
118
|
-
void *user_data
|
|
119
|
-
);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
typedef void ( *flow_mod_handler )(
|
|
123
|
-
uint32_t transaction_id,
|
|
124
|
-
struct ofp_match match,
|
|
125
|
-
uint64_t cookie,
|
|
126
|
-
uint16_t command,
|
|
127
|
-
uint16_t idle_timeout,
|
|
128
|
-
uint16_t hard_timeout,
|
|
129
|
-
uint16_t priority,
|
|
130
|
-
uint32_t buffer_id,
|
|
131
|
-
uint16_t out_port,
|
|
132
|
-
uint16_t flags,
|
|
133
|
-
const openflow_actions *actions,
|
|
134
|
-
void *user_data
|
|
135
|
-
);
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
typedef void ( *port_mod_handler )(
|
|
139
|
-
uint32_t transaction_id,
|
|
140
|
-
uint16_t port_no,
|
|
141
|
-
uint8_t hw_addr[ OFP_ETH_ALEN ],
|
|
142
|
-
uint32_t config,
|
|
143
|
-
uint32_t mask,
|
|
144
|
-
uint32_t advertise,
|
|
145
|
-
void *user_data
|
|
146
|
-
);
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
typedef void ( *stats_request_handler )(
|
|
150
|
-
uint32_t transaction_id,
|
|
151
|
-
uint16_t type,
|
|
152
|
-
uint16_t flags,
|
|
153
|
-
const buffer *body,
|
|
154
|
-
void *user_data
|
|
155
|
-
);
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
typedef void ( *barrier_request_handler )(
|
|
159
|
-
uint32_t transaction_id,
|
|
160
|
-
void *user_data
|
|
161
|
-
);
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
typedef void ( *queue_get_config_request_handler )(
|
|
165
|
-
uint32_t transaction_id,
|
|
166
|
-
uint16_t port,
|
|
167
|
-
void *user_data
|
|
168
|
-
);
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
typedef struct {
|
|
172
|
-
controller_connected_handler controller_connected_callback;
|
|
173
|
-
void *controller_connected_user_data;
|
|
174
|
-
|
|
175
|
-
controller_disconnected_handler controller_disconnected_callback;
|
|
176
|
-
void *controller_disconnected_user_data;
|
|
177
|
-
|
|
178
|
-
hello_handler hello_callback;
|
|
179
|
-
void *hello_user_data;
|
|
180
|
-
|
|
181
|
-
error_handler error_callback;
|
|
182
|
-
void *error_user_data;
|
|
183
|
-
|
|
184
|
-
echo_request_handler echo_request_callback;
|
|
185
|
-
void *echo_request_user_data;
|
|
186
|
-
|
|
187
|
-
echo_reply_handler echo_reply_callback;
|
|
188
|
-
void *echo_reply_user_data;
|
|
189
|
-
|
|
190
|
-
vendor_handler vendor_callback;
|
|
191
|
-
void *vendor_user_data;
|
|
192
|
-
|
|
193
|
-
features_request_handler features_request_callback;
|
|
194
|
-
void *features_request_user_data;
|
|
195
|
-
|
|
196
|
-
get_config_request_handler get_config_request_callback;
|
|
197
|
-
void *get_config_request_user_data;
|
|
198
|
-
|
|
199
|
-
set_config_handler set_config_callback;
|
|
200
|
-
void *set_config_user_data;
|
|
201
|
-
|
|
202
|
-
packet_out_handler packet_out_callback;
|
|
203
|
-
void *packet_out_user_data;
|
|
204
|
-
|
|
205
|
-
flow_mod_handler flow_mod_callback;
|
|
206
|
-
void *flow_mod_user_data;
|
|
207
|
-
|
|
208
|
-
port_mod_handler port_mod_callback;
|
|
209
|
-
void *port_mod_user_data;
|
|
210
|
-
|
|
211
|
-
stats_request_handler stats_request_callback;
|
|
212
|
-
void *stats_request_user_data;
|
|
213
|
-
|
|
214
|
-
barrier_request_handler barrier_request_callback;
|
|
215
|
-
void *barrier_request_user_data;
|
|
216
|
-
|
|
217
|
-
queue_get_config_request_handler queue_get_config_request_callback;
|
|
218
|
-
void *queue_get_config_request_user_data;
|
|
219
|
-
} openflow_event_handlers;
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
/********************************************************************************
|
|
223
|
-
* Functions for setting callback functions for OpenFlow related events.
|
|
224
|
-
********************************************************************************/
|
|
225
|
-
|
|
226
|
-
bool switch_set_openflow_event_handlers( const openflow_event_handlers handlers );
|
|
227
|
-
bool set_controller_connected_handler( controller_connected_handler callback, void *user_data );
|
|
228
|
-
bool set_controller_disconnected_handler( controller_disconnected_handler callback, void *user_data );
|
|
229
|
-
bool set_hello_handler( hello_handler callback, void *user_data );
|
|
230
|
-
bool switch_set_error_handler( error_handler callback, void *user_data );
|
|
231
|
-
bool set_echo_request_handler( echo_request_handler callback, void *user_data );
|
|
232
|
-
bool switch_set_echo_reply_handler( echo_reply_handler callback, void *user_data );
|
|
233
|
-
bool switch_set_vendor_handler( vendor_handler callback, void *user_data );
|
|
234
|
-
bool set_features_request_handler( features_request_handler callback, void *user_data );
|
|
235
|
-
bool set_get_config_request_handler( get_config_request_handler callback, void *user_data );
|
|
236
|
-
bool set_set_config_handler( set_config_handler callback, void *user_data );
|
|
237
|
-
bool set_packet_out_handler( packet_out_handler callback, void *user_data );
|
|
238
|
-
bool set_flow_mod_handler( flow_mod_handler callback, void *user_data );
|
|
239
|
-
bool set_port_mod_handler( port_mod_handler callback, void *user_data );
|
|
240
|
-
bool set_stats_request_handler( stats_request_handler callback, void *user_data );
|
|
241
|
-
bool set_barrier_request_handler( barrier_request_handler callback, void *user_data );
|
|
242
|
-
bool set_queue_get_config_request_handler( queue_get_config_request_handler callback, void *user_data );
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
/********************************************************************************
|
|
246
|
-
* Function for sending/receiving OpenFlow messages.
|
|
247
|
-
********************************************************************************/
|
|
248
|
-
|
|
249
|
-
bool switch_send_openflow_message( buffer *message );
|
|
250
|
-
bool handle_secure_channel_message( buffer *message );
|
|
251
|
-
bool send_error_message( uint32_t transaction_id, uint16_t type, uint16_t code );
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
#endif // OPENFLOW_SWITCH_INTERFACE_H
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
/*
|
|
258
|
-
* Local variables:
|
|
259
|
-
* c-basic-offset: 2
|
|
260
|
-
* indent-tabs-mode: nil
|
|
261
|
-
* End:
|
|
262
|
-
*/
|
data/src/lib/packet_info.c
DELETED
|
@@ -1,336 +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 <assert.h>
|
|
20
|
-
#include "checks.h"
|
|
21
|
-
#include "packet_info.h"
|
|
22
|
-
#include "wrapper.h"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
void
|
|
26
|
-
free_packet_info( buffer *buf ) {
|
|
27
|
-
die_if_NULL( buf );
|
|
28
|
-
die_if_NULL( buf->user_data );
|
|
29
|
-
|
|
30
|
-
xfree( buf->user_data );
|
|
31
|
-
buf->user_data = NULL;
|
|
32
|
-
buf->user_data_free_function = NULL;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
void
|
|
37
|
-
calloc_packet_info( buffer *buf ) {
|
|
38
|
-
die_if_NULL( buf );
|
|
39
|
-
|
|
40
|
-
void *user_data = xcalloc( 1, sizeof( packet_info ) );
|
|
41
|
-
assert( user_data != NULL );
|
|
42
|
-
|
|
43
|
-
memset( user_data, 0, sizeof( packet_info ) );
|
|
44
|
-
|
|
45
|
-
buf->user_data = user_data;
|
|
46
|
-
buf->user_data_free_function = free_packet_info;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
packet_info
|
|
51
|
-
get_packet_info( const buffer *frame ) {
|
|
52
|
-
die_if_NULL( frame );
|
|
53
|
-
|
|
54
|
-
packet_info info;
|
|
55
|
-
|
|
56
|
-
if ( frame->user_data != NULL ) {
|
|
57
|
-
info = *( packet_info * ) frame->user_data;
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
memset( &info, 0, sizeof( info ) );
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return info;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
static bool
|
|
68
|
-
if_packet_type( const buffer *frame, const uint32_t type ) {
|
|
69
|
-
die_if_NULL( frame );
|
|
70
|
-
packet_info packet_info = get_packet_info( frame );
|
|
71
|
-
return ( ( packet_info.format & type ) == type );
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
bool
|
|
76
|
-
packet_type_eth_dix( const buffer *frame ) {
|
|
77
|
-
die_if_NULL( frame );
|
|
78
|
-
return if_packet_type( frame, ETH_DIX );
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
bool
|
|
83
|
-
packet_type_eth_vtag( const buffer *frame ) {
|
|
84
|
-
die_if_NULL( frame );
|
|
85
|
-
return if_packet_type( frame, ETH_8021Q );
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
bool
|
|
90
|
-
packet_type_eth_raw( const buffer *frame ) {
|
|
91
|
-
die_if_NULL( frame );
|
|
92
|
-
return if_packet_type( frame, ETH_8023_RAW );
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
bool
|
|
97
|
-
packet_type_eth_llc( const buffer *frame ) {
|
|
98
|
-
die_if_NULL( frame );
|
|
99
|
-
return if_packet_type( frame, ETH_8023_LLC );
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
bool
|
|
104
|
-
packet_type_ether( const buffer *frame ) {
|
|
105
|
-
die_if_NULL( frame );
|
|
106
|
-
return ( if_packet_type( frame, ETH_DIX ) |
|
|
107
|
-
if_packet_type( frame, ETH_8023_RAW ) |
|
|
108
|
-
if_packet_type( frame, ETH_8023_LLC ) |
|
|
109
|
-
if_packet_type( frame, ETH_8023_SNAP ) );
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
bool
|
|
114
|
-
packet_type_eth_snap( const buffer *frame ) {
|
|
115
|
-
die_if_NULL( frame );
|
|
116
|
-
return if_packet_type( frame, ETH_8023_SNAP );
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
bool
|
|
121
|
-
packet_type_arp( const buffer *frame ) {
|
|
122
|
-
die_if_NULL( frame );
|
|
123
|
-
return if_packet_type( frame, NW_ARP );
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
bool
|
|
128
|
-
packet_type_rarp( const buffer *frame ) {
|
|
129
|
-
die_if_NULL( frame );
|
|
130
|
-
return if_packet_type( frame, NW_RARP );
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
bool
|
|
135
|
-
packet_type_ipv4( const buffer *frame ) {
|
|
136
|
-
die_if_NULL( frame );
|
|
137
|
-
return if_packet_type( frame, NW_IPV4 );
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
bool
|
|
142
|
-
packet_type_ipv6( const buffer *frame ) {
|
|
143
|
-
die_if_NULL( frame );
|
|
144
|
-
return if_packet_type( frame, NW_IPV6 );
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
bool
|
|
149
|
-
packet_type_lldp( const buffer *frame ) {
|
|
150
|
-
die_if_NULL( frame );
|
|
151
|
-
return if_packet_type( frame, NW_LLDP );
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
bool
|
|
156
|
-
packet_type_icmpv4( const buffer *frame ) {
|
|
157
|
-
die_if_NULL( frame );
|
|
158
|
-
return if_packet_type( frame, NW_ICMPV4 );
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
bool
|
|
163
|
-
packet_type_igmp( const buffer *frame ) {
|
|
164
|
-
die_if_NULL( frame );
|
|
165
|
-
return if_packet_type( frame, NW_IGMP );
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
bool
|
|
170
|
-
packet_type_ipv4_tcp( const buffer *frame ) {
|
|
171
|
-
die_if_NULL( frame );
|
|
172
|
-
return if_packet_type( frame, NW_IPV4 | TP_TCP );
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
bool
|
|
177
|
-
packet_type_ipv6_tcp( const buffer *frame ) {
|
|
178
|
-
die_if_NULL( frame );
|
|
179
|
-
return if_packet_type( frame, NW_IPV6 | TP_TCP );
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
bool
|
|
184
|
-
packet_type_ipv4_udp( const buffer *frame ) {
|
|
185
|
-
die_if_NULL( frame );
|
|
186
|
-
return if_packet_type( frame, NW_IPV4 | TP_UDP );
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
bool
|
|
191
|
-
packet_type_ipv6_udp( const buffer *frame ) {
|
|
192
|
-
die_if_NULL( frame );
|
|
193
|
-
return if_packet_type( frame, NW_IPV6 | TP_UDP );
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
bool
|
|
198
|
-
packet_type_ipv4_etherip( const buffer *frame ) {
|
|
199
|
-
die_if_NULL( frame );
|
|
200
|
-
return if_packet_type( frame, NW_IPV4 | TP_ETHERIP );
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
static bool
|
|
205
|
-
if_arp_opcode( const buffer *frame, const uint32_t opcode ) {
|
|
206
|
-
die_if_NULL( frame );
|
|
207
|
-
packet_info packet_info = get_packet_info( frame );
|
|
208
|
-
return ( packet_info.arp_ar_op == opcode );
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
bool
|
|
213
|
-
packet_type_arp_request( const buffer *frame ) {
|
|
214
|
-
die_if_NULL( frame );
|
|
215
|
-
return ( if_packet_type( frame, NW_ARP ) &
|
|
216
|
-
if_arp_opcode( frame, ARP_OP_REQUEST ) );
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
bool
|
|
221
|
-
packet_type_arp_reply( const buffer *frame ) {
|
|
222
|
-
die_if_NULL( frame );
|
|
223
|
-
return ( if_packet_type( frame, NW_ARP ) &
|
|
224
|
-
if_arp_opcode( frame, ARP_OP_REPLY ) );
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
bool
|
|
229
|
-
packet_type_rarp_request( const buffer *frame ) {
|
|
230
|
-
die_if_NULL( frame );
|
|
231
|
-
return ( if_packet_type( frame, NW_RARP ) &
|
|
232
|
-
if_arp_opcode( frame, ARP_OP_RREQUEST ) );
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
bool
|
|
237
|
-
packet_type_rarp_reply( const buffer *frame ) {
|
|
238
|
-
die_if_NULL( frame );
|
|
239
|
-
return ( if_packet_type( frame, NW_RARP ) &
|
|
240
|
-
if_arp_opcode( frame, ARP_OP_RREPLY ) );
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
static bool
|
|
245
|
-
if_icmpv4_type( const buffer *frame, const uint32_t type ) {
|
|
246
|
-
die_if_NULL( frame );
|
|
247
|
-
packet_info packet_info = get_packet_info( frame );
|
|
248
|
-
return ( packet_info.icmpv4_type == type );
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
bool
|
|
253
|
-
packet_type_icmpv4_echo_reply( const buffer *frame ) {
|
|
254
|
-
die_if_NULL( frame );
|
|
255
|
-
return ( if_packet_type( frame, NW_ICMPV4 ) &
|
|
256
|
-
if_icmpv4_type( frame, ICMP_TYPE_ECHOREP ) );
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
bool
|
|
261
|
-
packet_type_icmpv4_dst_unreach( const buffer *frame ) {
|
|
262
|
-
die_if_NULL( frame );
|
|
263
|
-
return ( if_packet_type( frame, NW_ICMPV4 ) &
|
|
264
|
-
if_icmpv4_type( frame, ICMP_TYPE_UNREACH ) );
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
bool
|
|
269
|
-
packet_type_icmpv4_redirect( const buffer *frame ) {
|
|
270
|
-
die_if_NULL( frame );
|
|
271
|
-
return ( if_packet_type( frame, NW_ICMPV4 ) &
|
|
272
|
-
if_icmpv4_type( frame, ICMP_TYPE_REDIRECT ) );
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
bool
|
|
277
|
-
packet_type_icmpv4_echo_request( const buffer *frame ) {
|
|
278
|
-
die_if_NULL( frame );
|
|
279
|
-
return ( if_packet_type( frame, NW_ICMPV4 ) &
|
|
280
|
-
if_icmpv4_type( frame, ICMP_TYPE_ECHOREQ ) );
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
static bool
|
|
285
|
-
if_igmp_type( const buffer *frame, const uint32_t type ) {
|
|
286
|
-
die_if_NULL( frame );
|
|
287
|
-
packet_info packet_info = get_packet_info( frame );
|
|
288
|
-
return ( packet_info.igmp_type == type );
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
bool
|
|
293
|
-
packet_type_igmp_membership_query( const buffer *frame ) {
|
|
294
|
-
die_if_NULL( frame );
|
|
295
|
-
return ( if_packet_type( frame, NW_IGMP ) &
|
|
296
|
-
if_igmp_type( frame, IGMP_TYPE_MEMBERSHIP_QUERY ) );
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
bool
|
|
301
|
-
packet_type_igmp_v1_membership_report( const buffer *frame ) {
|
|
302
|
-
die_if_NULL( frame );
|
|
303
|
-
return ( if_packet_type( frame, NW_IGMP ) &
|
|
304
|
-
if_igmp_type( frame, IGMP_TYPE_V1_MEMBERSHIP_REPORT ) );
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
bool
|
|
308
|
-
packet_type_igmp_v2_membership_report( const buffer *frame ) {
|
|
309
|
-
die_if_NULL( frame );
|
|
310
|
-
return ( if_packet_type( frame, NW_IGMP ) &
|
|
311
|
-
if_igmp_type( frame, IGMP_TYPE_V2_MEMBERSHIP_REPORT ) );
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
bool
|
|
316
|
-
packet_type_igmp_v2_leave_group( const buffer *frame ) {
|
|
317
|
-
die_if_NULL( frame );
|
|
318
|
-
return ( if_packet_type( frame, NW_IGMP ) &
|
|
319
|
-
if_igmp_type( frame, IGMP_TYPE_V2_LEAVE_GROUP ) );
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
bool
|
|
324
|
-
packet_type_igmp_v3_membership_report( const buffer *frame ) {
|
|
325
|
-
die_if_NULL( frame );
|
|
326
|
-
return ( if_packet_type( frame, NW_IGMP ) &
|
|
327
|
-
if_igmp_type( frame, IGMP_TYPE_V3_MEMBERSHIP_REPORT ) );
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
/*
|
|
332
|
-
* Local variables:
|
|
333
|
-
* c-basic-offset: 2
|
|
334
|
-
* indent-tabs-mode: nil
|
|
335
|
-
* End:
|
|
336
|
-
*/
|