trema 0.4.7 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +33 -54
- data/.hound.yml +3 -0
- data/.rspec +3 -0
- data/.rubocop.yml +17 -1
- data/.travis.yml +14 -18
- data/CHANGELOG.md +10 -0
- data/Gemfile +1 -26
- data/README.md +25 -241
- data/Rakefile +4 -1056
- data/bin/.gitignore +3 -0
- data/bin/trema +163 -237
- data/features/cleanup_on_failure.feature +118 -0
- data/features/logging.feature +73 -0
- data/features/open_flow13.feature +21 -0
- data/features/step_definitions/.gitignore +35 -0
- data/features/step_definitions/.rubocop.yml +5 -0
- data/features/step_definitions/.travis.yml +19 -0
- data/features/step_definitions/Gemfile +9 -0
- data/features/step_definitions/Guardfile +4 -0
- data/features/step_definitions/LICENSE +675 -0
- data/features/step_definitions/README.md +7 -0
- data/features/step_definitions/Rakefile +10 -0
- data/features/step_definitions/show_stats_steps.rb +56 -0
- data/features/step_definitions/virtual_link_steps.rb +8 -0
- data/features/support/env.rb +0 -73
- data/features/support/hooks.rb +6 -50
- data/features/trema_delete_link.feature +30 -0
- data/features/trema_killall.feature +56 -0
- data/features/trema_run.feature +47 -0
- data/features/trema_start.feature +73 -0
- data/features/trema_stop.feature +50 -0
- data/lib/trema.rb +4 -0
- data/lib/trema/command.rb +184 -0
- data/lib/trema/controller.rb +289 -0
- data/lib/trema/dirs.rb +14 -0
- data/lib/trema/drb.rb +32 -0
- data/lib/trema/logger.rb +63 -0
- data/lib/trema/monkey_patch/integer.rb +8 -0
- data/lib/trema/monkey_patch/integer/base_conversions.rb +12 -0
- data/lib/trema/monkey_patch/integer/durations.rb +12 -0
- data/lib/trema/switch.rb +83 -0
- data/lib/trema/version.rb +5 -0
- data/spec/spec_helper.rb +9 -178
- data/spec/trema/controller_spec.rb +4 -53
- data/tasks/.gitignore +34 -0
- data/tasks/LICENSE +675 -0
- data/tasks/README.md +6 -0
- data/tasks/cucumber.rake +14 -0
- data/tasks/flay.rake +15 -0
- data/tasks/flog.rake +25 -0
- data/tasks/gem.rake +15 -0
- data/tasks/reek.rake +11 -0
- data/tasks/relish.rake +8 -0
- data/tasks/rspec.rake +8 -0
- data/tasks/rubocop.rake +2 -16
- data/tasks/yard.rake +11 -0
- data/trema.gemspec +24 -23
- metadata +180 -720
- data/.yardopts +0 -4
- data/Doxyfile +0 -1679
- data/Guardfile +0 -14
- data/bin/quality +0 -31
- data/bin/trema-config +0 -59
- data/build.rb +0 -32
- data/cruise.rb +0 -409
- data/features/.nav +0 -50
- data/features/README.md +0 -7
- data/features/core/get_pid_by_trema_name.feature +0 -137
- data/features/core/packetin_filter.feature +0 -55
- data/features/core/switch_manager.feature +0 -41
- data/features/core/trema-config.feature +0 -55
- data/features/dsl/switch_port_specifier.feature +0 -15
- data/features/examples/dumper.feature +0 -35
- data/features/examples/hello_trema.feature +0 -23
- data/features/examples/learning_switch.feature +0 -37
- data/features/examples/list_switches.feature +0 -24
- data/features/examples/message.set_config.feature +0 -27
- data/features/examples/message.vendor-action.feature +0 -25
- data/features/examples/message.vendor-stats-request.feature +0 -20
- data/features/examples/multi_learning_switch.feature +0 -107
- data/features/examples/openflow_message.echo.feature +0 -59
- data/features/examples/openflow_message.features_request.feature +0 -35
- data/features/examples/openflow_message.hello.feature +0 -59
- data/features/examples/packet_in.feature +0 -33
- data/features/examples/packetin_filter_config.feature +0 -95
- data/features/examples/patch_panel.feature +0 -29
- data/features/examples/repeater_hub.feature +0 -52
- data/features/examples/switch_info.feature +0 -51
- data/features/examples/switch_monitor.feature +0 -35
- data/features/examples/transparent_firewall.feature +0 -73
- data/features/handlers/switch_ready.feature +0 -40
- data/features/step_definitions/misc_steps.rb +0 -85
- data/features/step_definitions/send_packets_steps.rb +0 -33
- data/features/step_definitions/stats_steps.rb +0 -39
- data/features/switch_event/C-add_forward_entry.feature +0 -114
- data/features/switch_event/C-delete_forward_entry.feature +0 -85
- data/features/switch_event/C-dump_forward_entries.feature +0 -72
- data/features/switch_event/C-set_forward_entries.feature +0 -77
- data/features/switch_event/README.md +0 -40
- data/features/switch_event/add_forward_entry.feature +0 -160
- data/features/switch_event/delete_forward_entry.feature +0 -160
- data/features/switch_event/dump_forward_entries.feature +0 -103
- data/features/switch_event/set_forward_entries.feature +0 -102
- data/features/trema_commands/README.md +0 -8
- data/features/trema_commands/dump_flows.feature +0 -41
- data/features/trema_commands/help.feature +0 -27
- data/features/trema_commands/help_option.feature +0 -20
- data/features/trema_commands/kill.feature +0 -56
- data/features/trema_commands/killall.feature +0 -32
- data/features/trema_commands/port_down.feature +0 -71
- data/features/trema_commands/port_up.feature +0 -75
- data/features/trema_commands/reset_stats.feature +0 -56
- data/features/trema_commands/run.feature +0 -56
- data/features/trema_commands/send_packets.feature +0 -46
- data/features/trema_commands/show_stats.feature +0 -66
- data/features/trema_commands/up.feature +0 -34
- data/features/trema_commands/version.feature +0 -10
- data/features/trema_commands/version_option.feature +0 -8
- data/rubocop-todo.yml +0 -159
- data/ruby/.gitignore +0 -4
- data/ruby/blocker.rb +0 -74
- data/ruby/extconf.rb +0 -80
- data/ruby/sub-process.rb +0 -289
- data/ruby/trema/action-common.c +0 -46
- data/ruby/trema/action-common.h +0 -38
- data/ruby/trema/action.rb +0 -33
- data/ruby/trema/aggregate-stats-reply.rb +0 -68
- data/ruby/trema/app.rb +0 -114
- data/ruby/trema/barrier-reply.c +0 -98
- data/ruby/trema/barrier-reply.h +0 -44
- data/ruby/trema/barrier-request.c +0 -135
- data/ruby/trema/barrier-request.h +0 -42
- data/ruby/trema/cli.rb +0 -267
- data/ruby/trema/command.rb +0 -41
- data/ruby/trema/command/dump_flows.rb +0 -43
- data/ruby/trema/command/kill.rb +0 -75
- data/ruby/trema/command/killall.rb +0 -38
- data/ruby/trema/command/netns.rb +0 -38
- data/ruby/trema/command/port_down.rb +0 -43
- data/ruby/trema/command/port_up.rb +0 -43
- data/ruby/trema/command/reset_stats.rb +0 -41
- data/ruby/trema/command/ruby.rb +0 -38
- data/ruby/trema/command/run.rb +0 -110
- data/ruby/trema/command/send_packets.rb +0 -46
- data/ruby/trema/command/shell.rb +0 -57
- data/ruby/trema/command/show_stats.rb +0 -65
- data/ruby/trema/command/up.rb +0 -44
- data/ruby/trema/command/version.rb +0 -35
- data/ruby/trema/compat.h +0 -36
- data/ruby/trema/controller.c +0 -691
- data/ruby/trema/controller.h +0 -42
- data/ruby/trema/controller.rb +0 -255
- data/ruby/trema/custom-switch.rb +0 -56
- data/ruby/trema/daemon.rb +0 -184
- data/ruby/trema/default-logger.c +0 -161
- data/ruby/trema/default-logger.h +0 -42
- data/ruby/trema/default-logger.rb +0 -29
- data/ruby/trema/default_openflow_channel_port.rb +0 -26
- data/ruby/trema/desc-stats-reply.rb +0 -75
- data/ruby/trema/dsl.rb +0 -32
- data/ruby/trema/dsl/configuration.rb +0 -145
- data/ruby/trema/dsl/context.rb +0 -69
- data/ruby/trema/dsl/custom-switch.rb +0 -44
- data/ruby/trema/dsl/link.rb +0 -39
- data/ruby/trema/dsl/netns.rb +0 -78
- data/ruby/trema/dsl/parser.rb +0 -70
- data/ruby/trema/dsl/rswitch.rb +0 -47
- data/ruby/trema/dsl/run.rb +0 -47
- data/ruby/trema/dsl/runner.rb +0 -178
- data/ruby/trema/dsl/stanza.rb +0 -51
- data/ruby/trema/dsl/switch.rb +0 -76
- data/ruby/trema/dsl/syntax-error.rb +0 -31
- data/ruby/trema/dsl/syntax.rb +0 -128
- data/ruby/trema/dsl/vhost.rb +0 -106
- data/ruby/trema/dsl/vswitch.rb +0 -45
- data/ruby/trema/echo-reply.c +0 -122
- data/ruby/trema/echo-reply.h +0 -40
- data/ruby/trema/echo-request.c +0 -117
- data/ruby/trema/echo-request.h +0 -40
- data/ruby/trema/echo.c +0 -99
- data/ruby/trema/echo.h +0 -39
- data/ruby/trema/enqueue.rb +0 -87
- data/ruby/trema/error.c +0 -262
- data/ruby/trema/error.h +0 -42
- data/ruby/trema/exact-match.rb +0 -34
- data/ruby/trema/executables.rb +0 -99
- data/ruby/trema/features-reply.c +0 -330
- data/ruby/trema/features-reply.h +0 -54
- data/ruby/trema/features-request.c +0 -134
- data/ruby/trema/features-request.h +0 -42
- data/ruby/trema/flow-mod.c +0 -150
- data/ruby/trema/flow-mod.h +0 -42
- data/ruby/trema/flow-removed.c +0 -280
- data/ruby/trema/flow-removed.h +0 -44
- data/ruby/trema/flow-stats-reply.rb +0 -107
- data/ruby/trema/flow.rb +0 -65
- data/ruby/trema/get-config-reply.c +0 -158
- data/ruby/trema/get-config-reply.h +0 -50
- data/ruby/trema/get-config-request.c +0 -136
- data/ruby/trema/get-config-request.h +0 -42
- data/ruby/trema/hardware-switch.rb +0 -86
- data/ruby/trema/hello.c +0 -133
- data/ruby/trema/hello.h +0 -42
- data/ruby/trema/host.rb +0 -263
- data/ruby/trema/link.rb +0 -177
- data/ruby/trema/list-switches-reply.c +0 -44
- data/ruby/trema/list-switches-reply.h +0 -38
- data/ruby/trema/mac.rb +0 -29
- data/ruby/trema/match.c +0 -621
- data/ruby/trema/match.h +0 -34
- data/ruby/trema/monkey-patch/integer.rb +0 -35
- data/ruby/trema/monkey-patch/integer/base-conversions.rb +0 -34
- data/ruby/trema/monkey-patch/integer/ranges.rb +0 -49
- data/ruby/trema/monkey-patch/integer/validators.rb +0 -36
- data/ruby/trema/monkey-patch/module.rb +0 -33
- data/ruby/trema/monkey-patch/module/class-method.rb +0 -38
- data/ruby/trema/monkey-patch/module/deprecation.rb +0 -39
- data/ruby/trema/monkey-patch/string.rb +0 -31
- data/ruby/trema/monkey-patch/string/inflectors.rb +0 -52
- data/ruby/trema/netns.rb +0 -127
- data/ruby/trema/network-component.rb +0 -151
- data/ruby/trema/ofctl.rb +0 -70
- data/ruby/trema/open-vswitch.rb +0 -160
- data/ruby/trema/openflow-error.c +0 -193
- data/ruby/trema/openflow-error.h +0 -51
- data/ruby/trema/openflow-switch.rb +0 -35
- data/ruby/trema/ordered-hash.rb +0 -75
- data/ruby/trema/packet-in.c +0 -1365
- data/ruby/trema/packet-in.h +0 -44
- data/ruby/trema/packet-queue.rb +0 -181
- data/ruby/trema/packetin-filter.rb +0 -124
- data/ruby/trema/path.rb +0 -85
- data/ruby/trema/phost.rb +0 -76
- data/ruby/trema/port-mod.c +0 -232
- data/ruby/trema/port-mod.h +0 -34
- data/ruby/trema/port-stats-reply.rb +0 -109
- data/ruby/trema/port-status-add.rb +0 -60
- data/ruby/trema/port-status-delete.rb +0 -60
- data/ruby/trema/port-status-modify.rb +0 -60
- data/ruby/trema/port-status.c +0 -192
- data/ruby/trema/port-status.h +0 -41
- data/ruby/trema/port.c +0 -398
- data/ruby/trema/port.h +0 -45
- data/ruby/trema/process.rb +0 -103
- data/ruby/trema/queue-get-config-reply.c +0 -205
- data/ruby/trema/queue-get-config-reply.h +0 -45
- data/ruby/trema/queue-get-config-request.c +0 -141
- data/ruby/trema/queue-get-config-request.h +0 -42
- data/ruby/trema/queue-stats-reply.rb +0 -76
- data/ruby/trema/ruby-switch.rb +0 -62
- data/ruby/trema/send-out-port.rb +0 -113
- data/ruby/trema/set-config.c +0 -174
- data/ruby/trema/set-config.h +0 -42
- data/ruby/trema/set-eth-addr.rb +0 -54
- data/ruby/trema/set-eth-dst-addr.rb +0 -52
- data/ruby/trema/set-eth-src-addr.rb +0 -53
- data/ruby/trema/set-ip-addr.rb +0 -54
- data/ruby/trema/set-ip-dst-addr.rb +0 -53
- data/ruby/trema/set-ip-src-addr.rb +0 -52
- data/ruby/trema/set-ip-tos.rb +0 -64
- data/ruby/trema/set-transport-dst-port.rb +0 -53
- data/ruby/trema/set-transport-port.rb +0 -53
- data/ruby/trema/set-transport-src-port.rb +0 -54
- data/ruby/trema/set-vlan-priority.rb +0 -66
- data/ruby/trema/set-vlan-vid.rb +0 -65
- data/ruby/trema/shell.rb +0 -37
- data/ruby/trema/shell/down.rb +0 -37
- data/ruby/trema/shell/killall.rb +0 -38
- data/ruby/trema/shell/link.rb +0 -59
- data/ruby/trema/shell/reset_stats.rb +0 -49
- data/ruby/trema/shell/run.rb +0 -67
- data/ruby/trema/shell/send_packets.rb +0 -40
- data/ruby/trema/shell/show_stats.rb +0 -47
- data/ruby/trema/shell/up.rb +0 -41
- data/ruby/trema/shell/vhost.rb +0 -42
- data/ruby/trema/shell/vswitch.rb +0 -47
- data/ruby/trema/stats-helper.rb +0 -63
- data/ruby/trema/stats-reply.c +0 -540
- data/ruby/trema/stats-reply.h +0 -51
- data/ruby/trema/stats-request.c +0 -715
- data/ruby/trema/stats-request.h +0 -40
- data/ruby/trema/strip-vlan-header.rb +0 -41
- data/ruby/trema/switch-daemon.rb +0 -90
- data/ruby/trema/switch-disconnected.c +0 -38
- data/ruby/trema/switch-disconnected.h +0 -36
- data/ruby/trema/switch-event.c +0 -648
- data/ruby/trema/switch-event.h +0 -27
- data/ruby/trema/switch-manager.rb +0 -119
- data/ruby/trema/switch.c +0 -197
- data/ruby/trema/switch.h +0 -40
- data/ruby/trema/switch.rb +0 -56
- data/ruby/trema/table-stats-reply.rb +0 -85
- data/ruby/trema/timers.rb +0 -95
- data/ruby/trema/trema-ruby-utils.c +0 -66
- data/ruby/trema/trema-ruby-utils.h +0 -42
- data/ruby/trema/trema.c +0 -126
- data/ruby/trema/tremashark.rb +0 -46
- data/ruby/trema/util.rb +0 -116
- data/ruby/trema/vendor-action.rb +0 -82
- data/ruby/trema/vendor-stats-reply.rb +0 -64
- data/ruby/trema/vendor.c +0 -230
- data/ruby/trema/vendor.h +0 -48
- data/ruby/trema/version.rb +0 -28
- data/spec/support/action.rb +0 -49
- data/spec/support/mandatory-option.rb +0 -53
- data/spec/support/matchers/constant.rb +0 -25
- data/spec/support/openflow-message.rb +0 -173
- data/spec/support/port-status.rb +0 -35
- data/spec/trema/app_spec.rb +0 -88
- data/spec/trema/barrier-reply_spec.rb +0 -43
- data/spec/trema/barrier-request_spec.rb +0 -92
- data/spec/trema/cli_spec.rb +0 -156
- data/spec/trema/default-logger_spec.rb +0 -46
- data/spec/trema/dsl/configuration_spec.rb +0 -120
- data/spec/trema/dsl/link_spec.rb +0 -50
- data/spec/trema/dsl/run_spec.rb +0 -72
- data/spec/trema/dsl/runner_spec.rb +0 -247
- data/spec/trema/dsl/switch_spec.rb +0 -69
- data/spec/trema/dsl/syntax_spec.rb +0 -110
- data/spec/trema/dsl/vhost_spec.rb +0 -144
- data/spec/trema/dsl/vswitch_spec.rb +0 -80
- data/spec/trema/echo-reply_spec.rb +0 -84
- data/spec/trema/echo-request_spec.rb +0 -128
- data/spec/trema/enqueue_spec.rb +0 -76
- data/spec/trema/error_spec.rb +0 -81
- data/spec/trema/executables_spec.rb +0 -54
- data/spec/trema/features-reply_spec.rb +0 -91
- data/spec/trema/features-request_spec.rb +0 -93
- data/spec/trema/flow-mod_spec.rb +0 -99
- data/spec/trema/flow-removed_spec.rb +0 -144
- data/spec/trema/get-config-reply_spec.rb +0 -43
- data/spec/trema/get-config-request_spec.rb +0 -92
- data/spec/trema/hardware-switch_spec.rb +0 -54
- data/spec/trema/hello_spec.rb +0 -63
- data/spec/trema/host_spec.rb +0 -191
- data/spec/trema/link_spec.rb +0 -62
- data/spec/trema/list-switches-reply_spec.rb +0 -46
- data/spec/trema/match_spec.rb +0 -111
- data/spec/trema/open-vswitch_spec.rb +0 -121
- data/spec/trema/openflow-error_spec.rb +0 -141
- data/spec/trema/packet-in_spec.rb +0 -717
- data/spec/trema/packet-out_spec.rb +0 -125
- data/spec/trema/packetin-filter_spec.rb +0 -39
- data/spec/trema/port-mod_spec.rb +0 -98
- data/spec/trema/port-status-add_spec.rb +0 -32
- data/spec/trema/port-status-delete_spec.rb +0 -32
- data/spec/trema/port-status-modify_spec.rb +0 -71
- data/spec/trema/port-status_spec.rb +0 -38
- data/spec/trema/port_spec.rb +0 -59
- data/spec/trema/process_spec.rb +0 -69
- data/spec/trema/queue-get-config-reply_spec.rb +0 -65
- data/spec/trema/queue-get-config-request_spec.rb +0 -67
- data/spec/trema/send-out-port_spec.rb +0 -106
- data/spec/trema/set-config_spec.rb +0 -78
- data/spec/trema/set-eth-addr_spec.rb +0 -62
- data/spec/trema/set-ip-addr_spec.rb +0 -81
- data/spec/trema/set-ip-tos_spec.rb +0 -70
- data/spec/trema/set-transport-dst-port_spec.rb +0 -65
- data/spec/trema/set-transport-src-port_spec.rb +0 -65
- data/spec/trema/set-vlan-priority_spec.rb +0 -65
- data/spec/trema/set-vlan-vid_spec.rb +0 -65
- data/spec/trema/shell/vhost_spec.rb +0 -58
- data/spec/trema/shell/vswitch_spec.rb +0 -87
- data/spec/trema/stats-reply_spec.rb +0 -363
- data/spec/trema/stats-request_spec.rb +0 -166
- data/spec/trema/strip-vlan-header_spec.rb +0 -44
- data/spec/trema/switch-daemon_spec.rb +0 -81
- data/spec/trema/switch-disconnected_spec.rb +0 -56
- data/spec/trema/switch-manager_spec.rb +0 -41
- data/spec/trema/tremashark_spec.rb +0 -39
- data/spec/trema/util_spec.rb +0 -88
- data/spec/trema/vendor-action_spec.rb +0 -75
- data/spec/trema/vendor_spec.rb +0 -76
- data/spec/trema_spec.rb +0 -94
- data/src/examples/cbench_switch/README +0 -21
- data/src/examples/cbench_switch/cbench-switch.rb +0 -38
- data/src/examples/cbench_switch/cbench_switch.c +0 -66
- data/src/examples/dumper/dumper.c +0 -362
- data/src/examples/dumper/dumper.conf +0 -7
- data/src/examples/dumper/dumper.rb +0 -195
- data/src/examples/hello_trema/.gitignore +0 -2
- data/src/examples/hello_trema/README.md +0 -2
- data/src/examples/hello_trema/hello-trema.rb +0 -30
- data/src/examples/hello_trema/hello_trema.c +0 -48
- data/src/examples/hello_trema/sample.conf +0 -1
- data/src/examples/learning_switch/README +0 -15
- data/src/examples/learning_switch/fdb.rb +0 -110
- data/src/examples/learning_switch/learning-switch.rb +0 -90
- data/src/examples/learning_switch/learning_switch.c +0 -217
- data/src/examples/learning_switch/learning_switch.conf +0 -18
- data/src/examples/list_switches/README +0 -19
- data/src/examples/list_switches/list-switches.rb +0 -43
- data/src/examples/list_switches/list_switches.c +0 -79
- data/src/examples/list_switches/list_switches.conf +0 -15
- data/src/examples/match_compare/match-compare.conf +0 -30
- data/src/examples/match_compare/match-compare.rb +0 -97
- data/src/examples/multi_learning_switch/README +0 -14
- data/src/examples/multi_learning_switch/multi-learning-switch.rb +0 -94
- data/src/examples/multi_learning_switch/multi_learning_switch.c +0 -294
- data/src/examples/multi_learning_switch/multi_learning_switch.conf +0 -17
- data/src/examples/openflow_message/README +0 -11
- data/src/examples/openflow_message/echo.c +0 -80
- data/src/examples/openflow_message/echo.rb +0 -56
- data/src/examples/openflow_message/example.rb +0 -60
- data/src/examples/openflow_message/features-request.rb +0 -96
- data/src/examples/openflow_message/features_request.c +0 -167
- data/src/examples/openflow_message/hello.c +0 -68
- data/src/examples/openflow_message/hello.rb +0 -43
- data/src/examples/openflow_message/set-config.rb +0 -57
- data/src/examples/openflow_message/set_config.c +0 -68
- data/src/examples/openflow_message/vendor-action.rb +0 -43
- data/src/examples/openflow_message/vendor-stats-request.rb +0 -66
- data/src/examples/openflow_message/vendor_action.c +0 -103
- data/src/examples/openflow_switch/echo_switch.c +0 -89
- data/src/examples/openflow_switch/hello_switch.c +0 -85
- data/src/examples/packet_in/README +0 -15
- data/src/examples/packet_in/packet-in.rb +0 -37
- data/src/examples/packet_in/packet_in.c +0 -53
- data/src/examples/packet_in/packet_in.conf +0 -15
- data/src/examples/packetin_filter_config/README +0 -12
- data/src/examples/packetin_filter_config/add_filter.c +0 -71
- data/src/examples/packetin_filter_config/delete_filter.c +0 -63
- data/src/examples/packetin_filter_config/delete_filter_strict.c +0 -73
- data/src/examples/packetin_filter_config/dump_filter.c +0 -63
- data/src/examples/packetin_filter_config/dump_filter_strict.c +0 -73
- data/src/examples/packetin_filter_config/packetin_filter_config.c +0 -132
- data/src/examples/packetin_filter_config/packetin_filter_config.conf +0 -7
- data/src/examples/packetin_filter_config/utils.c +0 -100
- data/src/examples/packetin_filter_config/utils.h +0 -40
- data/src/examples/patch_panel/network.conf +0 -14
- data/src/examples/patch_panel/patch-panel.conf +0 -1
- data/src/examples/patch_panel/patch-panel.rb +0 -59
- data/src/examples/repeater_hub/README +0 -8
- data/src/examples/repeater_hub/repeater-hub.rb +0 -41
- data/src/examples/repeater_hub/repeater-hub_spec.rb +0 -154
- data/src/examples/repeater_hub/repeater_hub.c +0 -81
- data/src/examples/repeater_hub/repeater_hub.conf +0 -28
- data/src/examples/simple_router/README +0 -18
- data/src/examples/simple_router/arp-table.rb +0 -81
- data/src/examples/simple_router/interface.rb +0 -90
- data/src/examples/simple_router/routing-table.rb +0 -60
- data/src/examples/simple_router/simple-router.rb +0 -191
- data/src/examples/simple_router/simple_router.conf +0 -24
- data/src/examples/simple_router/simple_router_netns.conf +0 -15
- data/src/examples/simple_router/simple_router_network.conf +0 -6
- data/src/examples/switch_event_config/.gitignore +0 -6
- data/src/examples/switch_event_config/add_forward_entry.c +0 -227
- data/src/examples/switch_event_config/delete_forward_entry.c +0 -226
- data/src/examples/switch_event_config/dump_forward_entries.c +0 -190
- data/src/examples/switch_event_config/network.conf +0 -2
- data/src/examples/switch_event_config/set_forward_entries.c +0 -210
- data/src/examples/switch_info/README +0 -13
- data/src/examples/switch_info/switch-info.rb +0 -44
- data/src/examples/switch_info/switch_info.c +0 -78
- data/src/examples/switch_info/switch_info.conf +0 -3
- data/src/examples/switch_monitor/switch-monitor.conf +0 -3
- data/src/examples/switch_monitor/switch-monitor.rb +0 -56
- data/src/examples/switch_monitor/switch_monitor.c +0 -152
- data/src/examples/traffic_monitor/counter.c +0 -72
- data/src/examples/traffic_monitor/counter.h +0 -46
- data/src/examples/traffic_monitor/counter.rb +0 -44
- data/src/examples/traffic_monitor/fdb.c +0 -74
- data/src/examples/traffic_monitor/fdb.h +0 -48
- data/src/examples/traffic_monitor/fdb.rb +0 -42
- data/src/examples/traffic_monitor/traffic-monitor.rb +0 -98
- data/src/examples/traffic_monitor/traffic_monitor.c +0 -161
- data/src/examples/traffic_monitor/traffic_monitor.conf +0 -16
- data/src/examples/transparent_firewall/README.md +0 -61
- data/src/examples/transparent_firewall/aggregated-delegated-afrinic.txt +0 -713
- data/src/examples/transparent_firewall/aggregated-delegated-apnic.txt +0 -3440
- data/src/examples/transparent_firewall/aggregated-delegated-arin.txt +0 -11342
- data/src/examples/transparent_firewall/aggregated-delegated-lacnic.txt +0 -1937
- data/src/examples/transparent_firewall/aggregated-delegated-ripencc.txt +0 -7329
- data/src/examples/transparent_firewall/block-rfc1918.rb +0 -86
- data/src/examples/transparent_firewall/pass-delegated.rb +0 -178
- data/src/examples/transparent_firewall/regen_aggregated.sh +0 -53
- data/src/examples/transparent_firewall/stats-to-cidrs.rb +0 -59
- data/src/lib/arp.h +0 -64
- data/src/lib/bool.h +0 -47
- data/src/lib/buffer.c +0 -304
- data/src/lib/buffer.h +0 -54
- data/src/lib/byteorder.c +0 -571
- data/src/lib/byteorder.h +0 -108
- data/src/lib/checks.h +0 -40
- data/src/lib/chibach.c +0 -392
- data/src/lib/chibach.h +0 -69
- data/src/lib/chibach_private.c +0 -168
- data/src/lib/chibach_private.h +0 -50
- data/src/lib/daemon.c +0 -429
- data/src/lib/daemon.h +0 -40
- data/src/lib/doubly_linked_list.c +0 -284
- data/src/lib/doubly_linked_list.h +0 -86
- data/src/lib/ether.c +0 -47
- data/src/lib/ether.h +0 -92
- data/src/lib/etherip.h +0 -44
- data/src/lib/event_forward_interface.c +0 -788
- data/src/lib/event_forward_interface.h +0 -138
- data/src/lib/event_handler.c +0 -419
- data/src/lib/event_handler.h +0 -57
- data/src/lib/external_callback.c +0 -126
- data/src/lib/external_callback.h +0 -46
- data/src/lib/hash_table.c +0 -415
- data/src/lib/hash_table.h +0 -136
- data/src/lib/icmp.h +0 -72
- data/src/lib/igmp.h +0 -48
- data/src/lib/ipv4.h +0 -64
- data/src/lib/ipv6.h +0 -46
- data/src/lib/linked_list.c +0 -244
- data/src/lib/linked_list.h +0 -84
- data/src/lib/log.c +0 -636
- data/src/lib/log.h +0 -77
- data/src/lib/management_interface.c +0 -359
- data/src/lib/management_interface.h +0 -40
- data/src/lib/management_service_interface.c +0 -102
- data/src/lib/management_service_interface.h +0 -134
- data/src/lib/match.h +0 -82
- data/src/lib/match_table.c +0 -606
- data/src/lib/match_table.h +0 -49
- data/src/lib/message_queue.c +0 -143
- data/src/lib/message_queue.h +0 -59
- data/src/lib/messenger.c +0 -1821
- data/src/lib/messenger.h +0 -145
- data/src/lib/openflow_application_interface.c +0 -1800
- data/src/lib/openflow_application_interface.h +0 -359
- data/src/lib/openflow_message.c +0 -4240
- data/src/lib/openflow_message.h +0 -291
- data/src/lib/openflow_service_interface.h +0 -58
- data/src/lib/openflow_switch_interface.c +0 -1378
- data/src/lib/openflow_switch_interface.h +0 -262
- data/src/lib/packet_info.c +0 -336
- data/src/lib/packet_info.h +0 -233
- data/src/lib/packet_parser.c +0 -522
- data/src/lib/packetin_filter_interface.c +0 -292
- data/src/lib/packetin_filter_interface.h +0 -125
- data/src/lib/persistent_storage.c +0 -478
- data/src/lib/persistent_storage.h +0 -44
- data/src/lib/secure_channel.c +0 -496
- data/src/lib/secure_channel.h +0 -43
- data/src/lib/stat.c +0 -248
- data/src/lib/stat.h +0 -51
- data/src/lib/tcp.h +0 -62
- data/src/lib/timer.c +0 -349
- data/src/lib/timer.h +0 -51
- data/src/lib/trema.c +0 -776
- data/src/lib/trema.h +0 -80
- data/src/lib/trema.hpp +0 -49
- data/src/lib/trema_private.c +0 -175
- data/src/lib/trema_private.h +0 -64
- data/src/lib/trema_wrapper.c +0 -59
- data/src/lib/trema_wrapper.h +0 -66
- data/src/lib/udp.h +0 -41
- data/src/lib/utility.c +0 -625
- data/src/lib/utility.h +0 -84
- data/src/lib/wrapper.c +0 -121
- data/src/lib/wrapper.h +0 -76
- data/src/management/application.c +0 -222
- data/src/management/echo.c +0 -183
- data/src/management/set_logging_level.c +0 -151
- data/src/management/show_stats.c +0 -148
- data/src/management/trema_manager +0 -184
- data/src/packetin_filter/README +0 -17
- data/src/packetin_filter/packetin_filter.c +0 -575
- data/src/switch_manager/README +0 -20
- data/src/switch_manager/cookie_table.c +0 -290
- data/src/switch_manager/cookie_table.h +0 -70
- data/src/switch_manager/dpid_table.c +0 -108
- data/src/switch_manager/dpid_table.h +0 -43
- data/src/switch_manager/event_forward_entry_manipulation.c +0 -120
- data/src/switch_manager/event_forward_entry_manipulation.h +0 -31
- data/src/switch_manager/ofpmsg_recv.c +0 -497
- data/src/switch_manager/ofpmsg_recv.h +0 -39
- data/src/switch_manager/ofpmsg_send.c +0 -274
- data/src/switch_manager/ofpmsg_send.h +0 -51
- data/src/switch_manager/secure_channel_listener.c +0 -296
- data/src/switch_manager/secure_channel_listener.h +0 -40
- data/src/switch_manager/secure_channel_receiver.c +0 -129
- data/src/switch_manager/secure_channel_receiver.h +0 -40
- data/src/switch_manager/secure_channel_sender.c +0 -131
- data/src/switch_manager/secure_channel_sender.h +0 -41
- data/src/switch_manager/service_interface.c +0 -180
- data/src/switch_manager/service_interface.h +0 -44
- data/src/switch_manager/switch.c +0 -988
- data/src/switch_manager/switch.h +0 -50
- data/src/switch_manager/switch_manager.c +0 -643
- data/src/switch_manager/switch_manager.h +0 -65
- data/src/switch_manager/switch_option.c +0 -30
- data/src/switch_manager/switch_option.h +0 -41
- data/src/switch_manager/switchinfo.h +0 -81
- data/src/switch_manager/xid_table.c +0 -182
- data/src/switch_manager/xid_table.h +0 -53
- data/src/tremashark/README +0 -79
- data/src/tremashark/packet_capture.c +0 -358
- data/src/tremashark/pcap_private.h +0 -45
- data/src/tremashark/pcap_queue.c +0 -195
- data/src/tremashark/pcap_queue.h +0 -56
- data/src/tremashark/plugin/.gitignore +0 -6
- data/src/tremashark/plugin/packet-trema/.gitignore +0 -5
- data/src/tremashark/plugin/packet-trema/Makefile +0 -77
- data/src/tremashark/plugin/packet-trema/Makefile.am +0 -110
- data/src/tremashark/plugin/packet-trema/Makefile.common +0 -29
- data/src/tremashark/plugin/packet-trema/moduleinfo.h +0 -39
- data/src/tremashark/plugin/packet-trema/packet-trema.c +0 -1671
- data/src/tremashark/plugin/packet-trema/plugin.c +0 -31
- data/src/tremashark/plugin/user_dlts +0 -2
- data/src/tremashark/queue.c +0 -167
- data/src/tremashark/queue.h +0 -58
- data/src/tremashark/stdin_relay.c +0 -257
- data/src/tremashark/syslog_relay.c +0 -247
- data/src/tremashark/tremashark.c +0 -554
- data/trema +0 -11
- data/trema-config +0 -11
- data/unittests/buffer_stubs.c +0 -72
- data/unittests/cmockery_trema.c +0 -121
- data/unittests/cmockery_trema.h +0 -95
- data/unittests/lib/buffer_test.c +0 -368
- data/unittests/lib/byteorder_test.c +0 -1798
- data/unittests/lib/daemon_test.c +0 -804
- data/unittests/lib/doubly_linked_list_test.c +0 -348
- data/unittests/lib/ether_test.c +0 -125
- data/unittests/lib/event_forward_interface_test.c +0 -1676
- data/unittests/lib/external_callback_test.c +0 -282
- data/unittests/lib/hash_table_test.c +0 -278
- data/unittests/lib/linked_list_test.c +0 -434
- data/unittests/lib/log_test.c +0 -672
- data/unittests/lib/management_interface_test.c +0 -238
- data/unittests/lib/management_service_interface_test.c +0 -317
- data/unittests/lib/match_table_test.c +0 -1507
- data/unittests/lib/message_queue_test.c +0 -381
- data/unittests/lib/messenger_test.c +0 -623
- data/unittests/lib/openflow_application_interface_test.c +0 -3713
- data/unittests/lib/openflow_message_test.c +0 -8047
- data/unittests/lib/packet_info_test.c +0 -558
- data/unittests/lib/packet_parser_test.c +0 -784
- data/unittests/lib/packetin_filter_interface_test.c +0 -721
- data/unittests/lib/persistent_storage_test.c +0 -800
- data/unittests/lib/stat_test.c +0 -433
- data/unittests/lib/test_packets/arp_rep.cap +0 -0
- data/unittests/lib/test_packets/arp_req.cap +0 -0
- data/unittests/lib/test_packets/icmp6_echo_rep.cap +0 -0
- data/unittests/lib/test_packets/icmp6_echo_req.cap +0 -0
- data/unittests/lib/test_packets/icmp_echo_rep.cap +0 -0
- data/unittests/lib/test_packets/icmp_echo_req.cap +0 -0
- data/unittests/lib/test_packets/igmp_query_v2.cap +0 -0
- data/unittests/lib/test_packets/ipx.cap +0 -0
- data/unittests/lib/test_packets/lldp.cap +0 -0
- data/unittests/lib/test_packets/lldp_over_ip.cap +0 -0
- data/unittests/lib/test_packets/rarp_req.cap +0 -0
- data/unittests/lib/test_packets/tcp.cap +0 -0
- data/unittests/lib/test_packets/tcp_syn.cap +0 -0
- data/unittests/lib/test_packets/udp.cap +0 -0
- data/unittests/lib/test_packets/udp_frag_head.cap +0 -0
- data/unittests/lib/test_packets/udp_frag_next.cap +0 -0
- data/unittests/lib/test_packets/vtag_icmp_echo_rep.cap +0 -0
- data/unittests/lib/test_packets/vtag_icmp_echo_req.cap +0 -0
- data/unittests/lib/timer_test.c +0 -246
- data/unittests/lib/trema_private_test.c +0 -321
- data/unittests/lib/trema_test.c +0 -1030
- data/unittests/lib/utility_test.c +0 -711
- data/unittests/lib/wrapper_test.c +0 -228
- data/unittests/packetin_filter/packetin_filter_test.c +0 -476
- data/unittests/switch_manager/switch_manager_test.c +0 -1183
- data/unittests/wrapper_stubs.c +0 -37
- data/vendor/.gitignore +0 -6
- data/vendor/README.md +0 -29
- data/vendor/cmockery-20110428.tar.gz +0 -0
- data/vendor/oflops-0.03.trema1.tar.gz +0 -0
- data/vendor/oflops_no_snmp+1.0.0.diff +0 -340
- data/vendor/openflow-1.0.0.tar.gz +0 -0
- data/vendor/openflow.git.tar.gz +0 -0
- data/vendor/openvswitch-1.2.2.trema1.tar.gz +0 -0
- data/vendor/openvswitch-1.2.2_librt-check.diff +0 -21
- data/vendor/packet-openflow.diff +0 -13
- data/vendor/ruby-ifconfig-1.2/COPYING +0 -340
- data/vendor/ruby-ifconfig-1.2/Changelog +0 -16
- data/vendor/ruby-ifconfig-1.2/INSTALL +0 -239
- data/vendor/ruby-ifconfig-1.2/README +0 -38
- data/vendor/ruby-ifconfig-1.2/Rakefile +0 -14
- data/vendor/ruby-ifconfig-1.2/TODO +0 -8
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/darwin.txt +0 -17
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/dragonflybsd.txt +0 -10
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/dragonflybsd_netstat.txt +0 -14
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/freebsd.txt +0 -17
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/freebsd_netstat.txt +0 -24
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/linux.txt +0 -60
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/linux_ethernet.txt +0 -20
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/netbsd.txt +0 -10
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/openbsd.txt +0 -36
- data/vendor/ruby-ifconfig-1.2/ifconfig_examples/sunos.txt +0 -10
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig.rb +0 -71
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/bsd/ifconfig.rb +0 -72
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/bsd/interface_types.rb +0 -69
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/bsd/network_types.rb +0 -3
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/common/ifconfig.rb +0 -84
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/common/interface_types.rb +0 -130
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/common/network_types.rb +0 -49
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/linux/ifconfig.rb +0 -43
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/linux/interface_types.rb +0 -112
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/linux/network_types.rb +0 -55
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/sunos/ifconfig.rb +0 -38
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/sunos/interface_types.rb +0 -77
- data/vendor/ruby-ifconfig-1.2/lib/ifconfig/sunos/network_types.rb +0 -4
- data/vendor/ruby-ifconfig-1.2/setup.rb +0 -1306
- data/vendor/ruby-ifconfig-1.2/test/test_bsd.rb +0 -35
- data/vendor/ruby-ifconfig-1.2/test/test_darwin.rb +0 -33
- data/vendor/ruby-ifconfig-1.2/test/test_dragonflybsd.rb +0 -35
- data/vendor/ruby-ifconfig-1.2/test/test_helper.rb +0 -4
- data/vendor/ruby-ifconfig-1.2/test/test_linux.rb +0 -31
- data/vendor/ruby-ifconfig-1.2/test/test_netbsd.rb +0 -33
- data/vendor/ruby-ifconfig-1.2/test/test_openbsd.rb +0 -33
- data/vendor/ruby-ifconfig-1.2/test/test_sunos.rb +0 -35
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_darwin.rb +0 -40
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_dragonflybsd.rb +0 -39
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_freebsd.rb +0 -40
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_linux.rb +0 -49
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_netbsd.rb +0 -39
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_openbsd.rb +0 -39
- data/vendor/ruby-ifconfig-1.2/test/unit/tc_sunos.rb +0 -44
data/src/lib/utility.h
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Utility functions.
|
|
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 UTILITY_H
|
|
22
|
-
#define UTILITY_H
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
#include <stdint.h>
|
|
26
|
-
#include <stdio.h>
|
|
27
|
-
#include "bool.h"
|
|
28
|
-
#include "openflow.h"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
extern void ( *die )( const char *format, ... );
|
|
32
|
-
|
|
33
|
-
unsigned int hash_core( const void *key, int size );
|
|
34
|
-
|
|
35
|
-
bool compare_string( const void *x, const void *y );
|
|
36
|
-
unsigned int hash_string( const void *key );
|
|
37
|
-
|
|
38
|
-
bool compare_mac( const void *x, const void *y );
|
|
39
|
-
unsigned int hash_mac( const void *mac );
|
|
40
|
-
uint64_t mac_to_uint64( const uint8_t *mac );
|
|
41
|
-
|
|
42
|
-
bool compare_uint32( const void *x, const void *y );
|
|
43
|
-
unsigned int hash_uint32( const void *key );
|
|
44
|
-
|
|
45
|
-
bool compare_datapath_id( const void *x, const void *y );
|
|
46
|
-
unsigned int hash_datapath_id( const void *key );
|
|
47
|
-
|
|
48
|
-
bool string_to_datapath_id( const char *str, uint64_t *datapath_id );
|
|
49
|
-
|
|
50
|
-
bool match_to_string( const struct ofp_match *match, char *str, size_t size );
|
|
51
|
-
bool wildcards_to_string( uint32_t wildcards, char *str, size_t size );
|
|
52
|
-
bool phy_port_to_string( const struct ofp_phy_port *phy_port, char *str, size_t size );
|
|
53
|
-
|
|
54
|
-
bool action_output_to_string( const struct ofp_action_output *action, char *str, size_t size );
|
|
55
|
-
bool action_set_vlan_vid_to_string( const struct ofp_action_vlan_vid *action, char *str, size_t size );
|
|
56
|
-
bool action_set_vlan_pcp_to_string( const struct ofp_action_vlan_pcp *action, char *str, size_t size );
|
|
57
|
-
bool action_strip_vlan_to_string( const struct ofp_action_header *action, char *str, size_t size );
|
|
58
|
-
bool action_set_dl_src_to_string( const struct ofp_action_dl_addr *action, char *str, size_t size );
|
|
59
|
-
bool action_set_dl_dst_to_string( const struct ofp_action_dl_addr *action, char *str, size_t size );
|
|
60
|
-
bool action_set_nw_src_to_string( const struct ofp_action_nw_addr *action, char *str, size_t size );
|
|
61
|
-
bool action_set_nw_dst_to_string( const struct ofp_action_nw_addr *action, char *str, size_t size );
|
|
62
|
-
bool action_set_nw_tos_to_string( const struct ofp_action_nw_tos *action, char *str, size_t size );
|
|
63
|
-
bool action_set_tp_src_to_string( const struct ofp_action_tp_port *action, char *str, size_t size );
|
|
64
|
-
bool action_set_tp_dst_to_string( const struct ofp_action_tp_port *action, char *str, size_t size );
|
|
65
|
-
bool action_enqueue_to_string( const struct ofp_action_enqueue *action, char *str, size_t size );
|
|
66
|
-
bool action_vendor_to_string( const struct ofp_action_vendor_header *action, char *str, size_t size );
|
|
67
|
-
bool actions_to_string( const struct ofp_action_header *actions, uint16_t actions_length, char *str, size_t str_length );
|
|
68
|
-
|
|
69
|
-
uint16_t get_checksum( uint16_t *pos, uint32_t size );
|
|
70
|
-
|
|
71
|
-
void xfree_data( void *data, void *user_data );
|
|
72
|
-
|
|
73
|
-
bool string_equal( void *data, void *user_data );
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
#endif // UTILITY_H
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
/*
|
|
80
|
-
* Local variables:
|
|
81
|
-
* c-basic-offset: 2
|
|
82
|
-
* indent-tabs-mode: nil
|
|
83
|
-
* End:
|
|
84
|
-
*/
|
data/src/lib/wrapper.c
DELETED
|
@@ -1,121 +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 <linux/limits.h>
|
|
20
|
-
#include <stdarg.h>
|
|
21
|
-
#include <stdlib.h>
|
|
22
|
-
#include <string.h>
|
|
23
|
-
#include "trema_wrapper.h"
|
|
24
|
-
#include "utility.h"
|
|
25
|
-
#include "wrapper.h"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
static void *
|
|
29
|
-
_trema_malloc( size_t size, const char *error_message ) {
|
|
30
|
-
void *ret = trema_malloc( size );
|
|
31
|
-
if ( !ret ) {
|
|
32
|
-
die( error_message );
|
|
33
|
-
}
|
|
34
|
-
return ret;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
void *
|
|
39
|
-
xmalloc( size_t size ) {
|
|
40
|
-
void *ret = _trema_malloc( size, "Out of memory, xmalloc failed" );
|
|
41
|
-
memset( ret, 0xA5, size );
|
|
42
|
-
return ret;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
void *
|
|
47
|
-
xcalloc( size_t nmemb, size_t size ) {
|
|
48
|
-
void *ret = trema_calloc( nmemb, size );
|
|
49
|
-
if ( !ret ) {
|
|
50
|
-
die( "Out of memory, xcalloc failed" );
|
|
51
|
-
}
|
|
52
|
-
return ret;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
void
|
|
57
|
-
xfree( void *ptr ) {
|
|
58
|
-
trema_free( ptr );
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
static char *
|
|
63
|
-
_xstrdup( const char *s, const char *error_message ) {
|
|
64
|
-
size_t len = strlen( s ) + 1;
|
|
65
|
-
char *ret = _trema_malloc( len, error_message );
|
|
66
|
-
memcpy( ret, s, len );
|
|
67
|
-
return ret;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
char *
|
|
72
|
-
xstrdup( const char *s ) {
|
|
73
|
-
return _xstrdup( s, "Out of memory, xstrdup failed" );
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
static char *
|
|
78
|
-
_xvasprintf( const char *format, va_list args, const char *error_message ) {
|
|
79
|
-
va_list args_copy;
|
|
80
|
-
va_copy( args_copy, args );
|
|
81
|
-
int n = vsnprintf( NULL, 0, format, args_copy );
|
|
82
|
-
va_end( args_copy );
|
|
83
|
-
if ( n <= 0 ) {
|
|
84
|
-
return NULL;
|
|
85
|
-
}
|
|
86
|
-
size_t size = ( size_t ) ( n + 1 );
|
|
87
|
-
char *str = _trema_malloc( size, error_message );
|
|
88
|
-
va_copy( args_copy, args );
|
|
89
|
-
n = vsnprintf( str, size, format, args_copy );
|
|
90
|
-
va_end( args_copy );
|
|
91
|
-
if ( n <= 0 || ( size_t ) n > size ) {
|
|
92
|
-
xfree( str );
|
|
93
|
-
return NULL;
|
|
94
|
-
}
|
|
95
|
-
return str;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
char *
|
|
100
|
-
xvasprintf( const char *format, va_list args ) {
|
|
101
|
-
return _xvasprintf( format, args, "Out of memory, xvasprintf failed" );
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
char *
|
|
106
|
-
xasprintf( const char *format, ... ) {
|
|
107
|
-
const char error[] = "Out of memory, xasprintf failed";
|
|
108
|
-
va_list args;
|
|
109
|
-
va_start( args, format );
|
|
110
|
-
char *str = _xvasprintf( format, args, error );
|
|
111
|
-
va_end( args );
|
|
112
|
-
return str;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
/*
|
|
117
|
-
* Local variables:
|
|
118
|
-
* c-basic-offset: 2
|
|
119
|
-
* indent-tabs-mode: nil
|
|
120
|
-
* End:
|
|
121
|
-
*/
|
data/src/lib/wrapper.h
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Wrappers that simplifies the handling of memory allocation errors.
|
|
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 WRAPPER_H
|
|
22
|
-
#define WRAPPER_H
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
#include <stdarg.h>
|
|
26
|
-
#include <stddef.h>
|
|
27
|
-
#include <string.h>
|
|
28
|
-
#include "utility.h"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
// If this is being built for a unit test.
|
|
32
|
-
#ifdef UNIT_TESTING
|
|
33
|
-
|
|
34
|
-
// Redirect assert to mock_assert() so assertions can be caught by cmockery.
|
|
35
|
-
#ifdef assert
|
|
36
|
-
#undef assert
|
|
37
|
-
#endif // assert
|
|
38
|
-
#define assert( expression ) \
|
|
39
|
-
mock_assert( ( int ) ( expression ), #expression, __FILE__, __LINE__ );
|
|
40
|
-
extern void mock_assert( const int result, const char *const expression, const char *const file, const int line );
|
|
41
|
-
|
|
42
|
-
#endif // UNIT_TESTING
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
// Undef Ruby's xmalloc()
|
|
46
|
-
#ifdef xmalloc
|
|
47
|
-
#undef xmalloc
|
|
48
|
-
#endif
|
|
49
|
-
void *xmalloc( size_t size );
|
|
50
|
-
|
|
51
|
-
// Undef Ruby's xcalloc()
|
|
52
|
-
#ifdef xcalloc
|
|
53
|
-
#undef xcalloc
|
|
54
|
-
#endif
|
|
55
|
-
void *xcalloc( size_t nmemb, size_t size );
|
|
56
|
-
|
|
57
|
-
// Undef Ruby's xfree()
|
|
58
|
-
#ifdef xfree
|
|
59
|
-
#undef xfree
|
|
60
|
-
#endif
|
|
61
|
-
void xfree( void *ptr );
|
|
62
|
-
|
|
63
|
-
char *xstrdup( const char *s );
|
|
64
|
-
char *xvasprintf( const char *format, va_list args );
|
|
65
|
-
char *xasprintf( const char *format, ... );
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
#endif // WRAPPER_H
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
/*
|
|
72
|
-
* Local variables:
|
|
73
|
-
* c-basic-offset: 2
|
|
74
|
-
* indent-tabs-mode: nil
|
|
75
|
-
* End:
|
|
76
|
-
*/
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Management command for any application specific managements.
|
|
3
|
-
*
|
|
4
|
-
* Copyright (C) 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
|
-
#include <assert.h>
|
|
22
|
-
#include <stdio.h>
|
|
23
|
-
#include <stdlib.h>
|
|
24
|
-
#include <string.h>
|
|
25
|
-
#include "trema.h"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
static char service_name[ MESSENGER_SERVICE_NAME_LENGTH ];
|
|
29
|
-
static uint32_t application_id = 0;
|
|
30
|
-
static uint8_t *data = NULL;
|
|
31
|
-
static size_t data_length = 0;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
void
|
|
35
|
-
usage( void ) {
|
|
36
|
-
printf( "Usage: application SERVICE_NAME APPLICATION_ID [DATA_IN_HEX]\n" );
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
static void
|
|
41
|
-
print_usage_and_exit( void ) {
|
|
42
|
-
usage();
|
|
43
|
-
exit( EXIT_FAILURE );
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
static bool
|
|
48
|
-
hex_string_to_data( char *string ) {
|
|
49
|
-
assert( string != NULL );
|
|
50
|
-
|
|
51
|
-
size_t string_length = strlen( string );
|
|
52
|
-
if ( string_length % 2 ) {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
data_length = string_length / 2;
|
|
57
|
-
data = xmalloc( data_length );
|
|
58
|
-
memset( data, 0, data_length );
|
|
59
|
-
|
|
60
|
-
int byte = 0;
|
|
61
|
-
for ( size_t i = 0; i < string_length; i++ ) {
|
|
62
|
-
char c = string[ i ];
|
|
63
|
-
byte <<= 4;
|
|
64
|
-
|
|
65
|
-
if ( ( c >= '0' ) && ( c <= '9' ) ) {
|
|
66
|
-
byte += c - '0';
|
|
67
|
-
}
|
|
68
|
-
else if ( ( c >= 'a' ) && ( c <= 'f' ) ) {
|
|
69
|
-
byte += c - 'a' + 10;
|
|
70
|
-
}
|
|
71
|
-
else if ( ( c >= 'A' ) && ( c <= 'F' ) ) {
|
|
72
|
-
byte += c - 'A' + 10;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
xfree( data );
|
|
76
|
-
data = NULL;
|
|
77
|
-
data_length = 0;
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
if ( i % 2 ) {
|
|
82
|
-
data[ i / 2 ] = ( uint8_t ) byte;
|
|
83
|
-
byte = 0;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return true;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
static void
|
|
92
|
-
parse_arguments( int argc, char **argv ) {
|
|
93
|
-
assert( argv != NULL );
|
|
94
|
-
|
|
95
|
-
if ( argc < 3 || argc > 4 ) {
|
|
96
|
-
print_usage_and_exit();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if ( argv[ 1 ] == NULL || ( argv[ 1 ] != NULL && strlen( argv[ 1 ] ) == 0 ) ) {
|
|
100
|
-
print_usage_and_exit();
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if ( argv[ 2 ] == NULL ) {
|
|
104
|
-
print_usage_and_exit();
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
memset( service_name, '\0', MESSENGER_SERVICE_NAME_LENGTH );
|
|
108
|
-
snprintf( service_name, MESSENGER_SERVICE_NAME_LENGTH, "%s", get_management_service_name( argv[ 1 ] ) );
|
|
109
|
-
|
|
110
|
-
char *endp = NULL;
|
|
111
|
-
application_id = ( uint32_t ) strtoul( argv[ 2 ], &endp, 0 );
|
|
112
|
-
if ( *endp != '\0' ) {
|
|
113
|
-
print_usage_and_exit();
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if ( argc >= 4 && argv[ 3 ] != NULL ) {
|
|
117
|
-
hex_string_to_data( argv[ 3 ] );
|
|
118
|
-
if ( data == NULL ) {
|
|
119
|
-
print_usage_and_exit();
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
static void
|
|
126
|
-
timeout( void *user_data ) {
|
|
127
|
-
UNUSED( user_data );
|
|
128
|
-
|
|
129
|
-
printf( "Timeout.\n" );
|
|
130
|
-
|
|
131
|
-
delete_timer_event( timeout, NULL );
|
|
132
|
-
|
|
133
|
-
stop_trema();
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
static void
|
|
138
|
-
handle_reply( uint16_t tag, void *data, size_t length, void *user_data ) {
|
|
139
|
-
UNUSED( user_data );
|
|
140
|
-
|
|
141
|
-
assert( tag == MESSENGER_MANAGEMENT_REPLY );
|
|
142
|
-
assert( data != NULL );
|
|
143
|
-
assert( length >= offsetof( management_application_reply, data ) );
|
|
144
|
-
|
|
145
|
-
management_application_reply *reply = data;
|
|
146
|
-
assert( ntohs( reply->header.type ) == MANAGEMENT_APPLICATION_REPLY );
|
|
147
|
-
assert( ntohl( reply->header.length ) == length );
|
|
148
|
-
uint32_t id = ntohl( reply->application_id );
|
|
149
|
-
|
|
150
|
-
if ( reply->header.status == MANAGEMENT_REQUEST_SUCCEEDED ) {
|
|
151
|
-
printf( "An application specific management command is executed successfully ( application_id = %#x ).\n", id );
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
printf( "Failed to execute an application specific management command ( application_id = %#x ).\n", id );
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
size_t data_length = length - offsetof( management_application_reply, data );
|
|
158
|
-
if ( data_length > 0 ) {
|
|
159
|
-
printf( "Data: " );
|
|
160
|
-
for ( size_t i = 0; i < data_length; i++ ) {
|
|
161
|
-
printf( "%02x", reply->data[ i ] );
|
|
162
|
-
}
|
|
163
|
-
printf( "\n" );
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
stop_trema();
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
static void
|
|
171
|
-
send_application_request() {
|
|
172
|
-
size_t length = offsetof( management_application_request, data ) + data_length;
|
|
173
|
-
management_application_request *request = xmalloc( length );
|
|
174
|
-
memset( request, 0, sizeof( management_application_request ) );
|
|
175
|
-
request->header.type = htons( MANAGEMENT_APPLICATION_REQUEST );
|
|
176
|
-
request->header.length = htonl( ( uint32_t ) length );
|
|
177
|
-
request->application_id = htonl( application_id );
|
|
178
|
-
if ( data_length > 0 && data != NULL ) {
|
|
179
|
-
memcpy( request->data, data, data_length );
|
|
180
|
-
xfree( data );
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
bool ret = send_request_message( service_name, get_trema_name(), MESSENGER_MANAGEMENT_REQUEST,
|
|
184
|
-
request, length, NULL );
|
|
185
|
-
xfree( request );
|
|
186
|
-
if ( !ret ) {
|
|
187
|
-
printf( "Failed to send an application specific management request to %s.\n", service_name );
|
|
188
|
-
exit( EXIT_FAILURE );
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
int
|
|
194
|
-
main( int argc, char *argv[] ) {
|
|
195
|
-
// Initialize the Trema world
|
|
196
|
-
init_trema( &argc, &argv );
|
|
197
|
-
|
|
198
|
-
// Parse arguments
|
|
199
|
-
parse_arguments( argc, argv );
|
|
200
|
-
|
|
201
|
-
// Set a handler to handle application specific management reply
|
|
202
|
-
add_message_replied_callback( get_trema_name(), handle_reply );
|
|
203
|
-
|
|
204
|
-
// Send an application specific management request
|
|
205
|
-
send_application_request();
|
|
206
|
-
|
|
207
|
-
// Set timeout
|
|
208
|
-
add_periodic_event_callback( 5, timeout, NULL );
|
|
209
|
-
|
|
210
|
-
// Main loop
|
|
211
|
-
start_trema();
|
|
212
|
-
|
|
213
|
-
return EXIT_SUCCESS;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
/*
|
|
218
|
-
* Local variables:
|
|
219
|
-
* c-basic-offset: 2
|
|
220
|
-
* indent-tabs-mode: nil
|
|
221
|
-
* End:
|
|
222
|
-
*/
|