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,65 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* OpenFlow Switch Listener
|
|
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 SWITCH_LISTENER_H
|
|
22
|
-
#define SWITCH_LISTENER_H
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
#include <sys/types.h>
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
static const char SWITCH_MANAGER_NAME_OPTION[] = "--name=";
|
|
29
|
-
static const uint SWITCH_MANAGER_NAME_OPTION_STR_LEN = sizeof( SWITCH_MANAGER_NAME_OPTION );
|
|
30
|
-
static const char SWITCH_MANAGER_SOCKET_OPTION[] = "--socket=";
|
|
31
|
-
static const uint SWITCH_MANAGER_SOCKET_OPTION_STR_LEN = sizeof( SWITCH_MANAGER_SOCKET_OPTION );
|
|
32
|
-
static const char SWITCH_MANAGER_DAEMONIZE_OPTION[] = "--daemonize";
|
|
33
|
-
static const uint SWITCH_MANAGER_SOCKET_STR_LEN = sizeof( "2147483647" );
|
|
34
|
-
static const char SWITCH_MANAGER_COMMAND_PREFIX[] = "switch.";
|
|
35
|
-
static const uint SWITCH_MANAGER_COMMAND_PREFIX_STR_LEN = sizeof( SWITCH_MANAGER_COMMAND_PREFIX );
|
|
36
|
-
static const char SWITCH_MANAGER_PREFIX[] = "switch.";
|
|
37
|
-
static const uint SWITCH_MANAGER_PREFIX_STR_LEN = sizeof( SWITCH_MANAGER_PREFIX );
|
|
38
|
-
static const uint SWITCH_MANAGER_ADDR_STR_LEN = sizeof( "255.255.255.255:65535" );
|
|
39
|
-
|
|
40
|
-
static const char SWITCH_MANAGER_PATH[] = "objects/switch_manager/switch";
|
|
41
|
-
static const char SWITCH_MANAGER_STATE_PREFIX[] = "state_notify::";
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
struct listener_info {
|
|
45
|
-
const char *switch_daemon;
|
|
46
|
-
int switch_daemon_argc;
|
|
47
|
-
char **switch_daemon_argv;
|
|
48
|
-
uint16_t listen_port;
|
|
49
|
-
int listen_fd;
|
|
50
|
-
list_element *vendor_service_name_list; // vendor manager service
|
|
51
|
-
list_element *packetin_service_name_list; // packetin manager service
|
|
52
|
-
list_element *portstatus_service_name_list; // portstatus manager service
|
|
53
|
-
list_element *state_service_name_list; // switch state manager service
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
#endif // SWITCH_LISTENER_H
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
/*
|
|
61
|
-
* Local variables:
|
|
62
|
-
* c-basic-offset: 2
|
|
63
|
-
* indent-tabs-mode: nil
|
|
64
|
-
* End:
|
|
65
|
-
*/
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 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
|
-
#include "trema.h"
|
|
19
|
-
#include "switch_option.h"
|
|
20
|
-
|
|
21
|
-
struct option switch_long_options[] = {
|
|
22
|
-
{ "socket", 1, NULL, 's' },
|
|
23
|
-
{ "no-flow-cleanup", 0, NULL, NO_FLOW_CLEANUP_LONG_OPTION_VALUE },
|
|
24
|
-
{ "no-cookie-translation", 0, NULL, NO_COOKIE_TRANSLATION_LONG_OPTION_VALUE },
|
|
25
|
-
{ "no-packet_in", 0, NULL, NO_PACKET_IN_LONG_OPTION_VALUE },
|
|
26
|
-
{ NULL, 0, NULL, 0 },
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
char switch_short_options[] = "s:";
|
|
30
|
-
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 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
|
-
#ifndef SWITCH_OPTION_H_
|
|
19
|
-
#define SWITCH_OPTION_H_
|
|
20
|
-
|
|
21
|
-
#include <getopt.h>
|
|
22
|
-
|
|
23
|
-
enum switch_long_options_val {
|
|
24
|
-
NO_FLOW_CLEANUP_LONG_OPTION_VALUE = 1,
|
|
25
|
-
NO_COOKIE_TRANSLATION_LONG_OPTION_VALUE = 2,
|
|
26
|
-
NO_PACKET_IN_LONG_OPTION_VALUE = 3,
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
extern struct option switch_long_options[];
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
extern char switch_short_options[];
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
#define VENDOR_PREFIX "vendor::"
|
|
37
|
-
#define PACKET_IN_PREFIX "packet_in::"
|
|
38
|
-
#define PORTSTATUS_PREFIX "port_status::"
|
|
39
|
-
#define STATE_PREFIX "state_notify::"
|
|
40
|
-
|
|
41
|
-
#endif /* SWITCH_OPTION_H_ */
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* OpenFlow Switch Manager
|
|
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 SWITCHINFO_H
|
|
22
|
-
#define SWITCHINFO_H
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
#include "message_queue.h"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
#define SWITCH_STATE_CONNECTED 0
|
|
29
|
-
#define SWITCH_STATE_WAIT_HELLO 1
|
|
30
|
-
#define SWITCH_STATE_WAIT_FEATURES_REPLY 2
|
|
31
|
-
#define SWITCH_STATE_WAIT_REGISTRATION 3
|
|
32
|
-
#define SWITCH_STATE_COMPLETED 4
|
|
33
|
-
#define SWITCH_STATE_DISCONNECTED 5
|
|
34
|
-
#define SWITCH_STATE_CONNECTION_FAILED 6
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
struct switch_info {
|
|
38
|
-
list_element *vendor_service_name_list; // vender manager service
|
|
39
|
-
list_element *packetin_service_name_list; // packetin manager service
|
|
40
|
-
list_element *portstatus_service_name_list; // portstatus manager service
|
|
41
|
-
list_element *state_service_name_list; // switch state manager service
|
|
42
|
-
|
|
43
|
-
char *dpid_service_name; // service name of messenger
|
|
44
|
-
struct notify_info *notify_info;
|
|
45
|
-
|
|
46
|
-
int secure_channel_fd; // socket file descriptor of secure channel
|
|
47
|
-
|
|
48
|
-
bool flow_cleanup;
|
|
49
|
-
bool cookie_translation;
|
|
50
|
-
bool deny_packet_in_on_startup;
|
|
51
|
-
|
|
52
|
-
int state; // state of switch secure channel
|
|
53
|
-
uint64_t datapath_id;
|
|
54
|
-
|
|
55
|
-
uint16_t config_flags; // OFPC_* flags
|
|
56
|
-
uint16_t miss_send_len; /* Max bytes of new flow that datapath should
|
|
57
|
-
send to the controller. */
|
|
58
|
-
|
|
59
|
-
buffer *fragment_buf; /* openflow message fragmentation buffer of
|
|
60
|
-
secure channel receiver */
|
|
61
|
-
|
|
62
|
-
message_queue *send_queue;
|
|
63
|
-
message_queue *recv_queue;
|
|
64
|
-
|
|
65
|
-
bool running_timer;
|
|
66
|
-
|
|
67
|
-
uint32_t echo_request_xid;
|
|
68
|
-
|
|
69
|
-
int retry_count;
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
#endif // SWITCHINFO_H
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
/*
|
|
77
|
-
* Local variables:
|
|
78
|
-
* c-basic-offset: 2
|
|
79
|
-
* indent-tabs-mode: nil
|
|
80
|
-
* End:
|
|
81
|
-
*/
|
|
@@ -1,182 +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 <openflow.h>
|
|
21
|
-
#include <string.h>
|
|
22
|
-
#include "trema.h"
|
|
23
|
-
#include "xid_table.h"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
static uint32_t transaction_id = 0U;
|
|
27
|
-
|
|
28
|
-
#define XID_MAX_ENTRIES 4096
|
|
29
|
-
|
|
30
|
-
typedef struct xid_table {
|
|
31
|
-
xid_entry_t *entries[ XID_MAX_ENTRIES ];
|
|
32
|
-
hash_table *hash;
|
|
33
|
-
int next_index;
|
|
34
|
-
} xid_table_t;
|
|
35
|
-
|
|
36
|
-
static xid_table_t xid_table;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
uint32_t
|
|
40
|
-
generate_xid( void ) {
|
|
41
|
-
uint32_t initial_value = ( transaction_id != UINT32_MAX ) ? ++transaction_id : 0;
|
|
42
|
-
|
|
43
|
-
while ( lookup_xid_entry( transaction_id ) != NULL ) {
|
|
44
|
-
if ( transaction_id != UINT32_MAX ) {
|
|
45
|
-
transaction_id++;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
transaction_id = 0;
|
|
49
|
-
}
|
|
50
|
-
if ( initial_value == transaction_id ) {
|
|
51
|
-
error( "Failed to generate transaction id value." );
|
|
52
|
-
transaction_id = 0;
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
return transaction_id;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
static xid_entry_t *
|
|
62
|
-
allocate_xid_entry( uint32_t original_xid, char *service_name, int index ) {
|
|
63
|
-
xid_entry_t *new_entry;
|
|
64
|
-
|
|
65
|
-
new_entry = xmalloc( sizeof( xid_entry_t ) );
|
|
66
|
-
new_entry->xid = generate_xid();
|
|
67
|
-
new_entry->original_xid = original_xid;
|
|
68
|
-
new_entry->service_name = xstrdup( service_name );
|
|
69
|
-
new_entry->index = index;
|
|
70
|
-
|
|
71
|
-
return new_entry;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
static void
|
|
76
|
-
free_xid_entry( xid_entry_t *free_entry ) {
|
|
77
|
-
xfree( free_entry->service_name );
|
|
78
|
-
xfree( free_entry );
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
void
|
|
83
|
-
init_xid_table( void ) {
|
|
84
|
-
memset( &xid_table, 0, sizeof( xid_table_t ) );
|
|
85
|
-
xid_table.hash = create_hash( compare_uint32, hash_uint32 );
|
|
86
|
-
xid_table.next_index = 0;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
void
|
|
91
|
-
finalize_xid_table( void ) {
|
|
92
|
-
for ( int i = 0; i < XID_MAX_ENTRIES; i++ ) {
|
|
93
|
-
if ( xid_table.entries[ i ] != NULL ) {
|
|
94
|
-
free_xid_entry( xid_table.entries[ i ] );
|
|
95
|
-
xid_table.entries[ i ] = NULL;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
delete_hash( xid_table.hash );
|
|
99
|
-
xid_table.hash = NULL;
|
|
100
|
-
xid_table.next_index = 0;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
uint32_t
|
|
105
|
-
insert_xid_entry( uint32_t original_xid, char *service_name ) {
|
|
106
|
-
xid_entry_t *new_entry;
|
|
107
|
-
|
|
108
|
-
debug( "Inserting xid entry ( original_xid = %#" PRIx32 ", service_name = %s ).",
|
|
109
|
-
original_xid, service_name );
|
|
110
|
-
|
|
111
|
-
if ( xid_table.next_index >= XID_MAX_ENTRIES ) {
|
|
112
|
-
xid_table.next_index = 0;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
if ( xid_table.entries[ xid_table.next_index ] != NULL ) {
|
|
116
|
-
delete_xid_entry( xid_table.entries[ xid_table.next_index ] );
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
new_entry = allocate_xid_entry( original_xid, service_name, xid_table.next_index );
|
|
120
|
-
xid_entry_t *old = insert_hash_entry( xid_table.hash, &new_entry->xid, new_entry );
|
|
121
|
-
if ( old != NULL ) {
|
|
122
|
-
xid_table.entries[ old->index ] = NULL;
|
|
123
|
-
free_xid_entry( old );
|
|
124
|
-
}
|
|
125
|
-
xid_table.entries[ xid_table.next_index ] = new_entry;
|
|
126
|
-
xid_table.next_index++;
|
|
127
|
-
|
|
128
|
-
return new_entry->xid;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
void
|
|
133
|
-
delete_xid_entry( xid_entry_t *delete_entry ) {
|
|
134
|
-
debug( "Deleting xid entry ( xid = %#" PRIx32 ", original_xid = %#" PRIx32 ", service_name = %s, index = %d ).",
|
|
135
|
-
delete_entry->xid, delete_entry->original_xid, delete_entry->service_name, delete_entry->index );
|
|
136
|
-
|
|
137
|
-
xid_entry_t *deleted = delete_hash_entry( xid_table.hash, &delete_entry->xid );
|
|
138
|
-
|
|
139
|
-
if ( deleted == NULL ) {
|
|
140
|
-
error( "Failed to delete xid entry ( xid = %#" PRIx32 " ).", delete_entry->xid );
|
|
141
|
-
free_xid_entry( ( xid_entry_t * ) delete_entry );
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
xid_table.entries[ deleted->index ] = NULL;
|
|
146
|
-
free_xid_entry( deleted );
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
xid_entry_t *
|
|
151
|
-
lookup_xid_entry( uint32_t xid ) {
|
|
152
|
-
return lookup_hash_entry( xid_table.hash, &xid );
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
static void
|
|
157
|
-
dump_xid_entry( xid_entry_t *entry ) {
|
|
158
|
-
info( "xid = %#" PRIx32 ", original_xid = %#" PRIx32 ", service_name = %s, index = %d",
|
|
159
|
-
entry->xid, entry->original_xid, entry->service_name, entry->index );
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
void
|
|
164
|
-
dump_xid_table( void ) {
|
|
165
|
-
hash_iterator iter;
|
|
166
|
-
hash_entry *e;
|
|
167
|
-
|
|
168
|
-
info( "#### XID TABLE ####" );
|
|
169
|
-
init_hash_iterator( xid_table.hash, &iter );
|
|
170
|
-
while ( ( e = iterate_hash_next( &iter ) ) != NULL ) {
|
|
171
|
-
dump_xid_entry( e->value );
|
|
172
|
-
}
|
|
173
|
-
info( "#### END ####" );
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
/*
|
|
178
|
-
* Local variables:
|
|
179
|
-
* c-basic-offset: 2
|
|
180
|
-
* indent-tabs-mode: nil
|
|
181
|
-
* End:
|
|
182
|
-
*/
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* OpenFlow Switch Manager
|
|
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 XID_TABLE_H
|
|
22
|
-
#define XID_TABLE_H
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
#include "trema.h"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
typedef struct xid_entry {
|
|
29
|
-
uint32_t xid;
|
|
30
|
-
uint32_t original_xid;
|
|
31
|
-
char *service_name;
|
|
32
|
-
int index;
|
|
33
|
-
} xid_entry_t;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
uint32_t generate_xid( void );
|
|
37
|
-
void init_xid_table( void );
|
|
38
|
-
void finalize_xid_table( void );
|
|
39
|
-
uint32_t insert_xid_entry( uint32_t original_xid, char *service_name );
|
|
40
|
-
void delete_xid_entry( xid_entry_t *entry );
|
|
41
|
-
xid_entry_t *lookup_xid_entry( uint32_t xid );
|
|
42
|
-
void dump_xid_table( void );
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
#endif // XID_TABLE_H
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
/*
|
|
49
|
-
* Local variables:
|
|
50
|
-
* c-basic-offset: 2
|
|
51
|
-
* indent-tabs-mode: nil
|
|
52
|
-
* End:
|
|
53
|
-
*/
|