trema 0.4.6 → 0.4.7
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/.rubocop.yml +1 -0
- data/.travis.yml +24 -7
- data/Gemfile +19 -27
- data/Guardfile +6 -0
- data/README.md +13 -5
- data/Rakefile +418 -415
- data/bin/quality +2 -2
- data/bin/trema +103 -105
- data/bin/trema-config +7 -7
- data/build.rb +2 -2
- data/cruise.rb +109 -83
- data/features/dsl/switch_port_specifier.feature +1 -1
- data/features/examples/dumper.feature +9 -41
- data/features/examples/hello_trema.feature +1 -1
- data/features/examples/learning_switch.feature +7 -7
- data/features/examples/list_switches.feature +5 -5
- data/features/examples/message.set_config.feature +11 -11
- data/features/examples/message.vendor-action.feature +7 -7
- data/features/examples/message.vendor-stats-request.feature +1 -1
- data/features/examples/multi_learning_switch.feature +7 -7
- data/features/examples/openflow_message.echo.feature +15 -15
- data/features/examples/openflow_message.features_request.feature +12 -12
- data/features/examples/openflow_message.hello.feature +13 -13
- data/features/examples/packet_in.feature +8 -8
- data/features/examples/patch_panel.feature +1 -1
- data/features/examples/repeater_hub.feature +7 -7
- data/features/examples/switch_info.feature +16 -16
- data/features/examples/switch_monitor.feature +11 -11
- data/features/examples/transparent_firewall.feature +73 -0
- data/features/handlers/switch_ready.feature +1 -1
- data/features/step_definitions/misc_steps.rb +24 -24
- data/features/step_definitions/send_packets_steps.rb +2 -2
- data/features/step_definitions/stats_steps.rb +6 -6
- data/features/support/env.rb +15 -15
- data/features/support/hooks.rb +9 -9
- data/features/switch_event/add_forward_entry.feature +3 -3
- data/features/switch_event/delete_forward_entry.feature +3 -3
- data/features/switch_event/dump_forward_entries.feature +2 -2
- data/features/switch_event/set_forward_entries.feature +2 -2
- data/features/trema_commands/dump_flows.feature +1 -0
- data/features/trema_commands/help.feature +1 -0
- data/features/trema_commands/help_option.feature +1 -0
- data/features/trema_commands/kill.feature +1 -0
- data/features/trema_commands/killall.feature +1 -0
- data/features/trema_commands/port_down.feature +1 -0
- data/features/trema_commands/port_up.feature +1 -0
- data/features/trema_commands/reset_stats.feature +1 -0
- data/features/trema_commands/run.feature +1 -0
- data/features/trema_commands/send_packets.feature +2 -1
- data/features/trema_commands/show_stats.feature +1 -0
- data/features/trema_commands/up.feature +1 -0
- data/features/trema_commands/version.feature +1 -0
- data/features/trema_commands/version_option.feature +1 -0
- data/rubocop-todo.yml +159 -0
- data/ruby/blocker.rb +15 -17
- data/ruby/extconf.rb +19 -19
- data/ruby/sub-process.rb +29 -29
- data/ruby/trema/aggregate-stats-reply.rb +2 -2
- data/ruby/trema/app.rb +13 -13
- data/ruby/trema/cli.rb +45 -45
- data/ruby/trema/command.rb +14 -14
- data/ruby/trema/command/dump_flows.rb +5 -5
- data/ruby/trema/command/kill.rb +13 -13
- data/ruby/trema/command/killall.rb +1 -1
- data/ruby/trema/command/netns.rb +3 -3
- data/ruby/trema/command/port_down.rb +7 -7
- data/ruby/trema/command/port_up.rb +7 -7
- data/ruby/trema/command/reset_stats.rb +6 -6
- data/ruby/trema/command/ruby.rb +2 -2
- data/ruby/trema/command/run.rb +23 -23
- data/ruby/trema/command/send_packets.rb +9 -9
- data/ruby/trema/command/shell.rb +14 -16
- data/ruby/trema/command/show_stats.rb +9 -9
- data/ruby/trema/command/up.rb +4 -4
- data/ruby/trema/command/version.rb +1 -1
- data/ruby/trema/controller.rb +10 -10
- data/ruby/trema/custom-switch.rb +4 -4
- data/ruby/trema/daemon.rb +21 -21
- data/ruby/trema/desc-stats-reply.rb +2 -2
- data/ruby/trema/dsl.rb +5 -5
- data/ruby/trema/dsl/configuration.rb +7 -7
- data/ruby/trema/dsl/context.rb +10 -10
- data/ruby/trema/dsl/custom-switch.rb +3 -3
- data/ruby/trema/dsl/link.rb +2 -2
- data/ruby/trema/dsl/netns.rb +9 -9
- data/ruby/trema/dsl/parser.rb +14 -14
- data/ruby/trema/dsl/rswitch.rb +3 -3
- data/ruby/trema/dsl/run.rb +4 -4
- data/ruby/trema/dsl/runner.rb +20 -20
- data/ruby/trema/dsl/stanza.rb +5 -5
- data/ruby/trema/dsl/switch.rb +14 -14
- data/ruby/trema/dsl/syntax.rb +54 -54
- data/ruby/trema/dsl/vhost.rb +9 -9
- data/ruby/trema/dsl/vswitch.rb +4 -4
- data/ruby/trema/enqueue.rb +11 -11
- data/ruby/trema/exact-match.rb +1 -1
- data/ruby/trema/executables.rb +19 -19
- data/ruby/trema/flow-stats-reply.rb +2 -2
- data/ruby/trema/flow.rb +8 -8
- data/ruby/trema/hardware-switch.rb +2 -2
- data/ruby/trema/host.rb +18 -18
- data/ruby/trema/link.rb +9 -9
- data/ruby/trema/mac.rb +1 -5
- data/ruby/trema/match.c +0 -1
- data/ruby/trema/monkey-patch/integer.rb +3 -3
- data/ruby/trema/monkey-patch/integer/base-conversions.rb +1 -1
- data/ruby/trema/monkey-patch/integer/ranges.rb +2 -2
- data/ruby/trema/monkey-patch/integer/validators.rb +1 -1
- data/ruby/trema/monkey-patch/module.rb +2 -2
- data/ruby/trema/monkey-patch/module/class-method.rb +2 -2
- data/ruby/trema/monkey-patch/module/deprecation.rb +1 -1
- data/ruby/trema/monkey-patch/string.rb +1 -1
- data/ruby/trema/monkey-patch/string/inflectors.rb +7 -7
- data/ruby/trema/netns.rb +6 -6
- data/ruby/trema/network-component.rb +7 -7
- data/ruby/trema/ofctl.rb +13 -13
- data/ruby/trema/open-vswitch.rb +25 -25
- data/ruby/trema/openflow-switch.rb +1 -1
- data/ruby/trema/ordered-hash.rb +8 -8
- data/ruby/trema/packet-in.c +0 -1
- data/ruby/trema/packet-queue.rb +8 -8
- data/ruby/trema/packetin-filter.rb +9 -9
- data/ruby/trema/path.rb +32 -32
- data/ruby/trema/phost.rb +5 -5
- data/ruby/trema/port-mod.c +0 -1
- data/ruby/trema/port-stats-reply.rb +2 -2
- data/ruby/trema/port-status-add.rb +2 -2
- data/ruby/trema/port-status-delete.rb +2 -2
- data/ruby/trema/port-status-modify.rb +2 -2
- data/ruby/trema/port.c +0 -1
- data/ruby/trema/process.rb +7 -7
- data/ruby/trema/queue-stats-reply.rb +2 -2
- data/ruby/trema/ruby-switch.rb +6 -6
- data/ruby/trema/send-out-port.rb +11 -11
- data/ruby/trema/set-eth-addr.rb +5 -5
- data/ruby/trema/set-eth-dst-addr.rb +1 -1
- data/ruby/trema/set-eth-src-addr.rb +1 -1
- data/ruby/trema/set-ip-addr.rb +6 -6
- data/ruby/trema/set-ip-dst-addr.rb +1 -1
- data/ruby/trema/set-ip-src-addr.rb +1 -1
- data/ruby/trema/set-ip-tos.rb +6 -6
- data/ruby/trema/set-transport-dst-port.rb +2 -2
- data/ruby/trema/set-transport-port.rb +7 -7
- data/ruby/trema/set-transport-src-port.rb +3 -3
- data/ruby/trema/set-vlan-priority.rb +6 -6
- data/ruby/trema/set-vlan-vid.rb +6 -6
- data/ruby/trema/shell.rb +10 -10
- data/ruby/trema/shell/down.rb +3 -3
- data/ruby/trema/shell/killall.rb +1 -1
- data/ruby/trema/shell/link.rb +14 -14
- data/ruby/trema/shell/reset_stats.rb +6 -6
- data/ruby/trema/shell/run.rb +7 -7
- data/ruby/trema/shell/send_packets.rb +3 -3
- data/ruby/trema/shell/show_stats.rb +7 -7
- data/ruby/trema/shell/up.rb +5 -5
- data/ruby/trema/shell/vhost.rb +4 -4
- data/ruby/trema/shell/vswitch.rb +7 -7
- data/ruby/trema/stats-helper.rb +3 -3
- data/ruby/trema/stats-reply.c +0 -1
- data/ruby/trema/strip-vlan-header.rb +1 -1
- data/ruby/trema/switch-daemon.rb +9 -9
- data/ruby/trema/switch-manager.rb +9 -9
- data/ruby/trema/switch.rb +7 -7
- data/ruby/trema/table-stats-reply.rb +2 -2
- data/ruby/trema/timers.rb +12 -12
- data/ruby/trema/trema.c +0 -1
- data/ruby/trema/tremashark.rb +1 -1
- data/ruby/trema/util.rb +25 -27
- data/ruby/trema/vendor-action.rb +10 -10
- data/ruby/trema/vendor-stats-reply.rb +2 -2
- data/ruby/trema/version.rb +1 -1
- data/spec/spec_helper.rb +50 -52
- data/spec/support/action.rb +9 -12
- data/spec/support/mandatory-option.rb +15 -18
- data/spec/support/matchers/constant.rb +7 -7
- data/spec/support/openflow-message.rb +76 -79
- data/spec/support/port-status.rb +7 -10
- data/spec/trema/app_spec.rb +27 -27
- data/spec/trema/barrier-reply_spec.rb +10 -10
- data/spec/trema/barrier-request_spec.rb +35 -35
- data/spec/trema/cli_spec.rb +63 -63
- data/spec/trema/controller_spec.rb +3 -3
- data/spec/trema/default-logger_spec.rb +4 -4
- data/spec/trema/dsl/configuration_spec.rb +47 -47
- data/spec/trema/dsl/link_spec.rb +11 -11
- data/spec/trema/dsl/run_spec.rb +19 -19
- data/spec/trema/dsl/runner_spec.rb +91 -91
- data/spec/trema/dsl/switch_spec.rb +16 -16
- data/spec/trema/dsl/syntax_spec.rb +22 -22
- data/spec/trema/dsl/vhost_spec.rb +37 -37
- data/spec/trema/dsl/vswitch_spec.rb +21 -21
- data/spec/trema/echo-reply_spec.rb +29 -29
- data/spec/trema/echo-request_spec.rb +54 -54
- data/spec/trema/enqueue_spec.rb +25 -25
- data/spec/trema/error_spec.rb +30 -30
- data/spec/trema/executables_spec.rb +20 -20
- data/spec/trema/features-reply_spec.rb +41 -41
- data/spec/trema/features-request_spec.rb +35 -35
- data/spec/trema/flow-mod_spec.rb +32 -32
- data/spec/trema/flow-removed_spec.rb +62 -62
- data/spec/trema/get-config-reply_spec.rb +14 -12
- data/spec/trema/get-config-request_spec.rb +35 -35
- data/spec/trema/hardware-switch_spec.rb +12 -12
- data/spec/trema/hello_spec.rb +17 -17
- data/spec/trema/host_spec.rb +71 -71
- data/spec/trema/link_spec.rb +13 -13
- data/spec/trema/list-switches-reply_spec.rb +10 -10
- data/spec/trema/match_spec.rb +41 -41
- data/spec/trema/open-vswitch_spec.rb +45 -45
- data/spec/trema/openflow-error_spec.rb +67 -65
- data/spec/trema/packet-in_spec.rb +450 -446
- data/spec/trema/packet-out_spec.rb +42 -42
- data/spec/trema/packetin-filter_spec.rb +5 -5
- data/spec/trema/port-mod_spec.rb +32 -32
- data/spec/trema/port-status-add_spec.rb +3 -3
- data/spec/trema/port-status-delete_spec.rb +3 -3
- data/spec/trema/port-status-modify_spec.rb +16 -16
- data/spec/trema/port-status_spec.rb +2 -2
- data/spec/trema/port_spec.rb +21 -21
- data/spec/trema/process_spec.rb +22 -22
- data/spec/trema/queue-get-config-reply_spec.rb +21 -20
- data/spec/trema/queue-get-config-request_spec.rb +24 -24
- data/spec/trema/send-out-port_spec.rb +42 -42
- data/spec/trema/set-config_spec.rb +31 -31
- data/spec/trema/set-eth-addr_spec.rb +21 -21
- data/spec/trema/set-ip-addr_spec.rb +29 -29
- data/spec/trema/set-ip-tos_spec.rb +26 -26
- data/spec/trema/set-transport-dst-port_spec.rb +22 -22
- data/spec/trema/set-transport-src-port_spec.rb +22 -22
- data/spec/trema/set-vlan-priority_spec.rb +23 -23
- data/spec/trema/set-vlan-vid_spec.rb +23 -23
- data/spec/trema/shell/vhost_spec.rb +21 -21
- data/spec/trema/shell/vswitch_spec.rb +30 -30
- data/spec/trema/stats-reply_spec.rb +183 -173
- data/spec/trema/stats-request_spec.rb +66 -66
- data/spec/trema/strip-vlan-header_spec.rb +11 -11
- data/spec/trema/switch-daemon_spec.rb +34 -34
- data/spec/trema/switch-disconnected_spec.rb +17 -17
- data/spec/trema/switch-manager_spec.rb +6 -6
- data/spec/trema/tremashark_spec.rb +4 -4
- data/spec/trema/util_spec.rb +35 -35
- data/spec/trema/vendor-action_spec.rb +26 -26
- data/spec/trema/vendor_spec.rb +27 -27
- data/spec/trema_spec.rb +2 -2
- data/src/examples/cbench_switch/cbench-switch.rb +3 -3
- data/src/examples/dumper/dumper.rb +31 -31
- data/src/examples/hello_trema/hello-trema.rb +2 -2
- data/src/examples/learning_switch/fdb.rb +14 -14
- data/src/examples/learning_switch/learning-switch.rb +12 -10
- data/src/examples/learning_switch/learning_switch.c +22 -39
- data/src/examples/list_switches/list-switches.rb +3 -3
- data/src/examples/match_compare/match-compare.rb +20 -20
- data/src/examples/multi_learning_switch/multi-learning-switch.rb +12 -12
- data/src/examples/openflow_message/echo.rb +4 -4
- data/src/examples/openflow_message/example.rb +7 -7
- data/src/examples/openflow_message/features-request.rb +31 -31
- data/src/examples/openflow_message/hello.rb +2 -2
- data/src/examples/openflow_message/set-config.rb +4 -4
- data/src/examples/openflow_message/vendor-action.rb +3 -3
- data/src/examples/openflow_message/vendor-stats-request.rb +9 -9
- data/src/examples/packet_in/packet-in.rb +2 -2
- data/src/examples/patch_panel/patch-panel.rb +9 -9
- data/src/examples/repeater_hub/repeater-hub.rb +4 -4
- data/src/examples/repeater_hub/repeater-hub_spec.rb +65 -65
- data/src/examples/simple_router/arp-table.rb +7 -7
- data/src/examples/simple_router/interface.rb +10 -10
- data/src/examples/simple_router/routing-table.rb +4 -4
- data/src/examples/simple_router/simple-router.rb +3 -3
- data/src/examples/switch_info/switch-info.rb +9 -9
- data/src/examples/switch_monitor/switch-monitor.rb +4 -4
- data/src/examples/traffic_monitor/counter.rb +6 -6
- data/src/examples/traffic_monitor/fdb.rb +4 -4
- data/src/examples/traffic_monitor/traffic-monitor.rb +12 -12
- data/src/examples/transparent_firewall/README.md +61 -0
- data/src/examples/transparent_firewall/aggregated-delegated-afrinic.txt +713 -0
- data/src/examples/transparent_firewall/aggregated-delegated-apnic.txt +3440 -0
- data/src/examples/transparent_firewall/aggregated-delegated-arin.txt +11342 -0
- data/src/examples/transparent_firewall/aggregated-delegated-lacnic.txt +1937 -0
- data/src/examples/transparent_firewall/aggregated-delegated-ripencc.txt +7329 -0
- data/src/examples/transparent_firewall/block-rfc1918.rb +86 -0
- data/src/examples/transparent_firewall/pass-delegated.rb +178 -0
- data/src/examples/transparent_firewall/regen_aggregated.sh +53 -0
- data/src/examples/transparent_firewall/stats-to-cidrs.rb +59 -0
- data/src/lib/messenger.c +14 -5
- data/src/lib/openflow_message.c +0 -5
- data/tasks/rubocop.rake +22 -0
- data/trema +1 -1
- data/trema-config +1 -1
- data/trema.gemspec +22 -22
- metadata +30 -16
|
@@ -16,16 +16,7 @@ Feature: "Dumper" sample application
|
|
|
16
16
|
link "dumper", "host2"
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
|
-
@slow_process
|
|
20
|
-
Scenario: Run "Dumper" C example
|
|
21
|
-
Given I run `trema run ../../objects/examples/dumper/dumper -c dumper.conf -d`
|
|
22
|
-
And wait until "dumper" is up
|
|
23
|
-
When I send 1 packet from host1 to host2
|
|
24
|
-
Then the file "../../tmp/log/dumper.log" should contain "[switch_ready]"
|
|
25
|
-
And the file "../../tmp/log/dumper.log" should contain "[packet_in]"
|
|
26
|
-
And the file "../../tmp/log/dumper.log" should contain "datapath_id: 0xabc"
|
|
27
|
-
|
|
28
|
-
@slow_process
|
|
19
|
+
@slow_process @critical @ruby
|
|
29
20
|
Scenario: Run "Dumper" Ruby example
|
|
30
21
|
Given I run `trema run ../../src/examples/dumper/dumper.rb -c dumper.conf -d`
|
|
31
22
|
And wait until "Dumper" is up
|
|
@@ -34,34 +25,11 @@ Feature: "Dumper" sample application
|
|
|
34
25
|
And the file "../../tmp/log/Dumper.log" should contain "[packet_in]"
|
|
35
26
|
And the file "../../tmp/log/Dumper.log" should contain "datapath_id: 0xabc"
|
|
36
27
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-d, --daemonize run in the background
|
|
46
|
-
-l, --logging_level=LEVEL set logging level
|
|
47
|
-
-g, --syslog output log messages to syslog
|
|
48
|
-
-f, --logging_facility=FACILITY set syslog facility
|
|
49
|
-
-h, --help display this help and exit
|
|
50
|
-
|
|
51
|
-
"""
|
|
52
|
-
|
|
53
|
-
Scenario: "dumper -h"
|
|
54
|
-
When I run `../../objects/examples/dumper/dumper -h`
|
|
55
|
-
Then the output should contain exactly:
|
|
56
|
-
"""
|
|
57
|
-
OpenFlow Event Dumper.
|
|
58
|
-
Usage: dumper [OPTION]...
|
|
59
|
-
|
|
60
|
-
-n, --name=SERVICE_NAME service name
|
|
61
|
-
-d, --daemonize run in the background
|
|
62
|
-
-l, --logging_level=LEVEL set logging level
|
|
63
|
-
-g, --syslog output log messages to syslog
|
|
64
|
-
-f, --logging_facility=FACILITY set syslog facility
|
|
65
|
-
-h, --help display this help and exit
|
|
66
|
-
|
|
67
|
-
"""
|
|
28
|
+
@slow_process
|
|
29
|
+
Scenario: Run "Dumper" C example
|
|
30
|
+
Given I run `trema run ../../objects/examples/dumper/dumper -c dumper.conf -d`
|
|
31
|
+
And wait until "dumper" is up
|
|
32
|
+
When I send 1 packet from host1 to host2
|
|
33
|
+
Then the file "../../tmp/log/dumper.log" should contain "[switch_ready]"
|
|
34
|
+
And the file "../../tmp/log/dumper.log" should contain "[packet_in]"
|
|
35
|
+
And the file "../../tmp/log/dumper.log" should contain "datapath_id: 0xabc"
|
|
@@ -11,7 +11,7 @@ Feature: "Hello Trema!" example
|
|
|
11
11
|
Background:
|
|
12
12
|
Given I cd to "../../src/examples/hello_trema/"
|
|
13
13
|
|
|
14
|
-
@slow_process
|
|
14
|
+
@slow_process @critical @ruby
|
|
15
15
|
Scenario: Run the Ruby example
|
|
16
16
|
When I run `trema run ./hello-trema.rb -c sample.conf` interactively
|
|
17
17
|
Then the output should contain "Hello 0xabc!" within the timeout period
|
|
@@ -16,10 +16,10 @@ Feature: "Learning Switch" sample application
|
|
|
16
16
|
link "learning", "host2"
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
|
-
@slow_process
|
|
20
|
-
Scenario: Run "Learning Switch"
|
|
21
|
-
Given I run `trema run ../../
|
|
22
|
-
And wait until "
|
|
19
|
+
@slow_process @ruby
|
|
20
|
+
Scenario: Run "Learning Switch" Ruby example
|
|
21
|
+
Given I run `trema run ../../src/examples/learning_switch/learning-switch.rb -c learning_switch.conf -d`
|
|
22
|
+
And wait until "LearningSwitch" is up
|
|
23
23
|
When I send 1 packet from host1 to host2
|
|
24
24
|
And I run `trema show_stats host1 --tx`
|
|
25
25
|
And I run `trema show_stats host2 --rx`
|
|
@@ -27,9 +27,9 @@ Feature: "Learning Switch" sample application
|
|
|
27
27
|
And the output from "trema show_stats host2 --rx" should contain "192.168.0.2,1,192.168.0.1,1,1,50"
|
|
28
28
|
|
|
29
29
|
@slow_process
|
|
30
|
-
Scenario: Run "Learning Switch"
|
|
31
|
-
Given I run `trema run ../../
|
|
32
|
-
And wait until "
|
|
30
|
+
Scenario: Run "Learning Switch" C example
|
|
31
|
+
Given I run `trema run ../../objects/examples/learning_switch/learning_switch -c learning_switch.conf -d`
|
|
32
|
+
And wait until "learning_switch" is up
|
|
33
33
|
When I send 1 packet from host1 to host2
|
|
34
34
|
And I run `trema show_stats host1 --tx`
|
|
35
35
|
And I run `trema show_stats host2 --rx`
|
|
@@ -13,12 +13,12 @@ Feature: "List Switches" sample application
|
|
|
13
13
|
vswitch { datapath_id 0x4 }
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
|
+
@slow_process @ruby
|
|
17
|
+
Scenario: Run "List Switches" Ruby example
|
|
18
|
+
Given I run `trema run ../../src/examples/list_switches/list-switches.rb -c list_switches.conf`
|
|
19
|
+
Then the file "../../tmp/log/ListSwitches.log" should contain "switches = 0x1, 0x2, 0x3, 0x4"
|
|
20
|
+
|
|
16
21
|
@slow_process
|
|
17
22
|
Scenario: Run "List Switches" C example
|
|
18
23
|
Given I run `trema run ../../objects/examples/list_switches/list_switches -c list_switches.conf`
|
|
19
24
|
Then the file "../../tmp/log/list_switches.log" should contain "switches = 0x1, 0x2, 0x3, 0x4"
|
|
20
|
-
|
|
21
|
-
@slow_process
|
|
22
|
-
Scenario: Run "List Switches" Ruby example
|
|
23
|
-
Given I run `trema run ../../src/examples/list_switches/list-switches.rb -c list_switches.conf`
|
|
24
|
-
Then the file "../../tmp/log/ListSwitches.log" should contain "switches = 0x1, 0x2, 0x3, 0x4"
|
|
@@ -4,24 +4,24 @@ Feature: Send set config messages
|
|
|
4
4
|
I want to send set config messages to openflow switches
|
|
5
5
|
So that I can set configuration parameters of openflow switches
|
|
6
6
|
|
|
7
|
-
@wip
|
|
8
|
-
Scenario: set config x 10
|
|
9
|
-
When I try trema run "./
|
|
7
|
+
@wip @ruby
|
|
8
|
+
Scenario: set config x 10 in Ruby
|
|
9
|
+
When I try trema run "./src/examples/openflow_message/set-config.rb 0xabc, 10" with following configuration (backgrounded):
|
|
10
10
|
"""
|
|
11
|
-
vswitch("
|
|
11
|
+
vswitch("set-config") { datapath_id "0xabc" }
|
|
12
12
|
"""
|
|
13
|
-
And wait until "
|
|
13
|
+
And wait until "SetConfigController" is up
|
|
14
14
|
And *** sleep 2 ***
|
|
15
15
|
And I run `trema killall`
|
|
16
|
-
Then the log file "openflowd.
|
|
16
|
+
Then the log file "openflowd.set-config.log" should include "received: OFPT_SET_CONFIG" x 11
|
|
17
17
|
|
|
18
18
|
@wip
|
|
19
|
-
Scenario: set config x 10
|
|
20
|
-
When I try trema run "./
|
|
19
|
+
Scenario: set config x 10
|
|
20
|
+
When I try trema run "./objects/examples/openflow_message/set_config 10" with following configuration (backgrounded):
|
|
21
21
|
"""
|
|
22
|
-
vswitch("
|
|
22
|
+
vswitch("set_config") { datapath_id "0xabc" }
|
|
23
23
|
"""
|
|
24
|
-
And wait until "
|
|
24
|
+
And wait until "set_config" is up
|
|
25
25
|
And *** sleep 2 ***
|
|
26
26
|
And I run `trema killall`
|
|
27
|
-
Then the log file "openflowd.
|
|
27
|
+
Then the log file "openflowd.set_config.log" should include "received: OFPT_SET_CONFIG" x 11
|
|
@@ -10,16 +10,16 @@ Feature: "Vendor Action" sample application
|
|
|
10
10
|
vswitch( "vendor_action" ) { datapath_id "0xabc" }
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
|
-
@slow_process
|
|
14
|
-
Scenario: Vendor Action message in
|
|
15
|
-
Given I run `trema run ../../
|
|
16
|
-
And wait until "
|
|
13
|
+
@slow_process @ruby
|
|
14
|
+
Scenario: Vendor Action message in Ruby
|
|
15
|
+
Given I run `trema run ../../src/examples/openflow_message/vendor-action.rb -c vendor_action.conf -d`
|
|
16
|
+
And wait until "VendorActionSampleController" is up
|
|
17
17
|
And *** sleep 2 ***
|
|
18
18
|
Then the file "../../tmp/log/openflowd.vendor_action.log" should contain "actions=note:54.72.65.6d.61.00"
|
|
19
19
|
|
|
20
20
|
@slow_process
|
|
21
|
-
Scenario: Vendor Action message in
|
|
22
|
-
Given I run `trema run ../../
|
|
23
|
-
And wait until "
|
|
21
|
+
Scenario: Vendor Action message in C
|
|
22
|
+
Given I run `trema run ../../objects/examples/openflow_message/vendor_action -c vendor_action.conf -d`
|
|
23
|
+
And wait until "vendor_action" is up
|
|
24
24
|
And *** sleep 2 ***
|
|
25
25
|
Then the file "../../tmp/log/openflowd.vendor_action.log" should contain "actions=note:54.72.65.6d.61.00"
|
|
@@ -10,7 +10,7 @@ Feature: "Vendor Stats Request" sample application
|
|
|
10
10
|
vswitch( "vendor_stats" ) { datapath_id "0xabc" }
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
|
-
@slow_process
|
|
13
|
+
@slow_process @ruby
|
|
14
14
|
Scenario: Vendor Stats Request message in Ruby
|
|
15
15
|
Given I run `trema run ../../src/examples/openflow_message/vendor-stats-request.rb -c vendor_stats.conf -d`
|
|
16
16
|
And wait until "VendorStatsRequestSample" is up
|
|
@@ -26,10 +26,10 @@ Feature: "Multi Learning Switch" sample application
|
|
|
26
26
|
link "multi_learning3", "multi_learning4"
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
|
-
@slow_process
|
|
30
|
-
Scenario: Run "Multi Learning Switch"
|
|
31
|
-
Given I run `trema run ../../
|
|
32
|
-
And wait until "
|
|
29
|
+
@slow_process @ruby
|
|
30
|
+
Scenario: Run "Multi Learning Switch" Ruby example
|
|
31
|
+
Given I run `trema run ../../src/examples/multi_learning_switch/multi-learning-switch.rb -c multi_learning_switch.conf -d`
|
|
32
|
+
And wait until "MultiLearningSwitch" is up
|
|
33
33
|
When I send 2 packets from host1 to host2
|
|
34
34
|
Then the total number of tx packets should be:
|
|
35
35
|
| host1 | host2 | host3 | host4 |
|
|
@@ -67,9 +67,9 @@ Feature: "Multi Learning Switch" sample application
|
|
|
67
67
|
| 2 | 2 | 4 | 4 |
|
|
68
68
|
|
|
69
69
|
@slow_process
|
|
70
|
-
Scenario: Run "Multi Learning Switch"
|
|
71
|
-
Given I run `trema run ../../
|
|
72
|
-
And wait until "
|
|
70
|
+
Scenario: Run "Multi Learning Switch" C example
|
|
71
|
+
Given I run `trema run ../../objects/examples/multi_learning_switch/multi_learning_switch -c multi_learning_switch.conf -d`
|
|
72
|
+
And wait until "multi_learning_switch" is up
|
|
73
73
|
When I send 2 packets from host1 to host2
|
|
74
74
|
Then the total number of tx packets should be:
|
|
75
75
|
| host1 | host2 | host3 | host4 |
|
|
@@ -4,19 +4,19 @@ Feature: Send echo request and receive echo reply messages
|
|
|
4
4
|
As a Trema user
|
|
5
5
|
I want to send echo request messages to openflow switches and receive echo replies
|
|
6
6
|
|
|
7
|
-
@slow_process
|
|
8
|
-
Scenario: Echo request and reply in
|
|
9
|
-
Given a file named "echo.conf" with:
|
|
7
|
+
@slow_process @ruby
|
|
8
|
+
Scenario: Echo request and reply in Ruby
|
|
9
|
+
Given a file named "echo.ruby.conf" with:
|
|
10
10
|
"""
|
|
11
|
-
custom_switch("echo") {
|
|
11
|
+
custom_switch("echo.ruby") {
|
|
12
12
|
datapath_id "0xabc"
|
|
13
13
|
path "./objects/examples/openflow_switch/echo_switch"
|
|
14
14
|
}
|
|
15
15
|
"""
|
|
16
|
-
When I run `trema run "../../
|
|
17
|
-
And wait until "
|
|
16
|
+
When I run `trema run "../../src/examples/openflow_message/echo.rb 0xabc, 10" -c echo.ruby.conf -d`
|
|
17
|
+
And wait until "EchoController" is up
|
|
18
18
|
And I run `trema killall`
|
|
19
|
-
Then the file "../../tmp/log/customswitch.echo.log" should contain:
|
|
19
|
+
Then the file "../../tmp/log/customswitch.echo.ruby.log" should contain:
|
|
20
20
|
"""
|
|
21
21
|
received: OFPT_ECHO_REQUEST
|
|
22
22
|
received: OFPT_ECHO_REQUEST
|
|
@@ -29,21 +29,21 @@ Feature: Send echo request and receive echo reply messages
|
|
|
29
29
|
received: OFPT_ECHO_REQUEST
|
|
30
30
|
received: OFPT_ECHO_REQUEST
|
|
31
31
|
"""
|
|
32
|
-
And the file "../../tmp/log/
|
|
32
|
+
# And the file "../../tmp/log/EchoController.log" should match /received: OFPT_ECHO_REPLY/
|
|
33
33
|
|
|
34
34
|
@slow_process
|
|
35
|
-
Scenario: Echo request and reply in
|
|
36
|
-
Given a file named "echo.
|
|
35
|
+
Scenario: Echo request and reply in C
|
|
36
|
+
Given a file named "echo.conf" with:
|
|
37
37
|
"""
|
|
38
|
-
custom_switch("echo
|
|
38
|
+
custom_switch("echo") {
|
|
39
39
|
datapath_id "0xabc"
|
|
40
40
|
path "./objects/examples/openflow_switch/echo_switch"
|
|
41
41
|
}
|
|
42
42
|
"""
|
|
43
|
-
When I run `trema run "../../
|
|
44
|
-
And wait until "
|
|
43
|
+
When I run `trema run "../../objects/examples/openflow_message/echo 10" -c echo.conf -d`
|
|
44
|
+
And wait until "echo" is up
|
|
45
45
|
And I run `trema killall`
|
|
46
|
-
Then the file "../../tmp/log/customswitch.echo.
|
|
46
|
+
Then the file "../../tmp/log/customswitch.echo.log" should contain:
|
|
47
47
|
"""
|
|
48
48
|
received: OFPT_ECHO_REQUEST
|
|
49
49
|
received: OFPT_ECHO_REQUEST
|
|
@@ -56,4 +56,4 @@ Feature: Send echo request and receive echo reply messages
|
|
|
56
56
|
received: OFPT_ECHO_REQUEST
|
|
57
57
|
received: OFPT_ECHO_REQUEST
|
|
58
58
|
"""
|
|
59
|
-
|
|
59
|
+
And the file "../../tmp/log/echo.log" should match /received: OFPT_ECHO_REPLY/
|
|
@@ -10,6 +10,18 @@ Feature: Send a features request message
|
|
|
10
10
|
vswitch( "features_request" ) { datapath_id "0xabc" }
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
|
+
@slow_process @ruby
|
|
14
|
+
Scenario: Feature Request message in Ruby
|
|
15
|
+
When I run `trema run ../../src/examples/openflow_message/features-request.rb -c features_request.conf -d`
|
|
16
|
+
And wait until "FeaturesRequestController" is up
|
|
17
|
+
And I run `trema killall`
|
|
18
|
+
Then the file "../../tmp/log/FeaturesRequestController.log" should match /datapath_id: 0xabc/
|
|
19
|
+
And the file "../../tmp/log/FeaturesRequestController.log" should match /n_buffers:/
|
|
20
|
+
And the file "../../tmp/log/FeaturesRequestController.log" should match /n_tables:/
|
|
21
|
+
And the file "../../tmp/log/FeaturesRequestController.log" should match /capabilities:/
|
|
22
|
+
And the file "../../tmp/log/FeaturesRequestController.log" should match /actions:/
|
|
23
|
+
And the file "../../tmp/log/FeaturesRequestController.log" should match /ports:/
|
|
24
|
+
|
|
13
25
|
@slow_process
|
|
14
26
|
Scenario: Features Request message in C
|
|
15
27
|
When I run `trema run ../../objects/examples/openflow_message/features_request -c features_request.conf -d`
|
|
@@ -21,15 +33,3 @@ Feature: Send a features request message
|
|
|
21
33
|
And the file "../../tmp/log/features_request.log" should match /capabilities:/
|
|
22
34
|
And the file "../../tmp/log/features_request.log" should match /actions:/
|
|
23
35
|
And the file "../../tmp/log/features_request.log" should match /ports:/
|
|
24
|
-
|
|
25
|
-
@slow_process
|
|
26
|
-
Scenario: Feature Request message in Ruby
|
|
27
|
-
When I run `trema run ../../src/examples/openflow_message/features-request.rb -c features_request.conf -d`
|
|
28
|
-
And wait until "FeaturesRequestController" is up
|
|
29
|
-
And I run `trema killall`
|
|
30
|
-
Then the file "../../tmp/log/FeaturesRequestController.log" should match /datapath_id: 0xabc/
|
|
31
|
-
And the file "../../tmp/log/FeaturesRequestController.log" should match /n_buffers:/
|
|
32
|
-
And the file "../../tmp/log/FeaturesRequestController.log" should match /n_tables:/
|
|
33
|
-
And the file "../../tmp/log/FeaturesRequestController.log" should match /capabilities:/
|
|
34
|
-
And the file "../../tmp/log/FeaturesRequestController.log" should match /actions:/
|
|
35
|
-
And the file "../../tmp/log/FeaturesRequestController.log" should match /ports:/
|
|
@@ -4,19 +4,19 @@ Feature: Send hello messages
|
|
|
4
4
|
As a Trema user
|
|
5
5
|
I want to send hello messages to openflow switches
|
|
6
6
|
|
|
7
|
-
@slow_process
|
|
8
|
-
Scenario: Hello message in
|
|
9
|
-
Given a file named "hello.conf" with:
|
|
7
|
+
@slow_process @ruby
|
|
8
|
+
Scenario: Hello message in Ruby
|
|
9
|
+
Given a file named "hello-r.conf" with:
|
|
10
10
|
"""
|
|
11
|
-
custom_switch("hello") {
|
|
11
|
+
custom_switch("hello-r") {
|
|
12
12
|
datapath_id "0xabc"
|
|
13
13
|
path "./objects/examples/openflow_switch/hello_switch"
|
|
14
14
|
}
|
|
15
15
|
"""
|
|
16
|
-
When I run `trema run "../../
|
|
17
|
-
And wait until "
|
|
16
|
+
When I run `trema run "../../src/examples/openflow_message/hello.rb 10" -c hello-r.conf -d`
|
|
17
|
+
And wait until "HelloController" is up
|
|
18
18
|
And I run `trema killall`
|
|
19
|
-
Then the file "../../tmp/log/customswitch.hello.log" should contain:
|
|
19
|
+
Then the file "../../tmp/log/customswitch.hello-r.log" should contain:
|
|
20
20
|
"""
|
|
21
21
|
received: OFPT_HELLO
|
|
22
22
|
received: OFPT_HELLO
|
|
@@ -32,18 +32,18 @@ Feature: Send hello messages
|
|
|
32
32
|
"""
|
|
33
33
|
|
|
34
34
|
@slow_process
|
|
35
|
-
Scenario: Hello message in
|
|
36
|
-
Given a file named "hello
|
|
35
|
+
Scenario: Hello message in C
|
|
36
|
+
Given a file named "hello.conf" with:
|
|
37
37
|
"""
|
|
38
|
-
custom_switch("hello
|
|
38
|
+
custom_switch("hello") {
|
|
39
39
|
datapath_id "0xabc"
|
|
40
40
|
path "./objects/examples/openflow_switch/hello_switch"
|
|
41
41
|
}
|
|
42
42
|
"""
|
|
43
|
-
When I run `trema run "../../
|
|
44
|
-
And wait until "
|
|
43
|
+
When I run `trema run "../../objects/examples/openflow_message/hello 10" -c hello.conf -d`
|
|
44
|
+
And wait until "hello" is up
|
|
45
45
|
And I run `trema killall`
|
|
46
|
-
Then the file "../../tmp/log/customswitch.hello
|
|
46
|
+
Then the file "../../tmp/log/customswitch.hello.log" should contain:
|
|
47
47
|
"""
|
|
48
48
|
received: OFPT_HELLO
|
|
49
49
|
received: OFPT_HELLO
|
|
@@ -16,6 +16,14 @@ Feature: "Packet In" sample application
|
|
|
16
16
|
link "packet_in", "host2"
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
|
+
@slow_process @ruby
|
|
20
|
+
Scenario: Run "Packet In" Ruby example
|
|
21
|
+
Given I run `trema run ../../src/examples/packet_in/packet-in.rb -c packet_in.conf -d`
|
|
22
|
+
And wait until "PacketInDumper" is up
|
|
23
|
+
When I send 1 packet from host1 to host2
|
|
24
|
+
And *** sleep 1 ***
|
|
25
|
+
Then the file "../../tmp/log/PacketInDumper.log" should contain "received a packet_in"
|
|
26
|
+
|
|
19
27
|
@slow_process
|
|
20
28
|
Scenario: Run "Packet In" C example
|
|
21
29
|
Given I run `trema run ../../objects/examples/packet_in/packet_in -c packet_in.conf -d`
|
|
@@ -23,11 +31,3 @@ Feature: "Packet In" sample application
|
|
|
23
31
|
When I send 1 packet from host1 to host2
|
|
24
32
|
And *** sleep 1 ***
|
|
25
33
|
Then the file "../../tmp/log/packet_in.log" should contain "received a packet_in"
|
|
26
|
-
|
|
27
|
-
@slow_process
|
|
28
|
-
Scenario: Run "Packet In" Ruby example
|
|
29
|
-
Given I run `trema run ../../src/examples/packet_in/packet-in.rb -c packet_in.conf -d`
|
|
30
|
-
And wait until "PacketInDumper" is up
|
|
31
|
-
When I send 1 packet from host1 to host2
|
|
32
|
-
And *** sleep 1 ***
|
|
33
|
-
Then the file "../../tmp/log/PacketInDumper.log" should contain "received a packet_in"
|
|
@@ -27,10 +27,10 @@ Feature: "Repeater Hub" sample application
|
|
|
27
27
|
link "repeater_hub", "host3"
|
|
28
28
|
"""
|
|
29
29
|
|
|
30
|
-
@slow_process
|
|
31
|
-
Scenario: Run "Repeater Hub"
|
|
32
|
-
Given I run `trema run ../../
|
|
33
|
-
And wait until "
|
|
30
|
+
@slow_process @ruby
|
|
31
|
+
Scenario: Run "Repeater Hub" Ruby example
|
|
32
|
+
Given I run `trema run ../../src/examples/repeater_hub/repeater-hub.rb -c repeater_hub.conf -d`
|
|
33
|
+
And wait until "RepeaterHub" is up
|
|
34
34
|
When I send 1 packet from host1 to host2
|
|
35
35
|
And I run `trema show_stats host1 --tx`
|
|
36
36
|
And I run `trema show_stats host2 --rx`
|
|
@@ -40,9 +40,9 @@ Feature: "Repeater Hub" sample application
|
|
|
40
40
|
And the output from "trema show_stats host3 --rx" should contain "192.168.0.2,1,192.168.0.1,1,1,50"
|
|
41
41
|
|
|
42
42
|
@slow_process
|
|
43
|
-
Scenario: Run "Repeater Hub"
|
|
44
|
-
Given I run `trema run ../../
|
|
45
|
-
And wait until "
|
|
43
|
+
Scenario: Run "Repeater Hub" C example
|
|
44
|
+
Given I run `trema run ../../objects/examples/repeater_hub/repeater_hub -c repeater_hub.conf -d`
|
|
45
|
+
And wait until "repeater_hub" is up
|
|
46
46
|
When I send 1 packet from host1 to host2
|
|
47
47
|
And I run `trema show_stats host1 --tx`
|
|
48
48
|
And I run `trema show_stats host2 --rx`
|
|
@@ -4,48 +4,48 @@ Feature: "Switch Info" sample application
|
|
|
4
4
|
As a developer using Trema
|
|
5
5
|
I want to execute "Switch Info" sample application
|
|
6
6
|
|
|
7
|
-
@slow_process
|
|
8
|
-
Scenario: Run "Switch Info"
|
|
7
|
+
@slow_process @ruby
|
|
8
|
+
Scenario: Run "Switch Info" Ruby example
|
|
9
9
|
Given a file named "switch_info.conf" with:
|
|
10
10
|
"""
|
|
11
11
|
vswitch { datapath_id 0xabc }
|
|
12
12
|
"""
|
|
13
|
-
And I run `trema run ../../
|
|
13
|
+
And I run `trema run ../../src/examples/switch_info/switch-info.rb -c switch_info.conf -d`
|
|
14
14
|
And *** sleep 2 ***
|
|
15
|
-
Then the file "../../tmp/log/
|
|
16
|
-
And the file "../../tmp/log/
|
|
15
|
+
Then the file "../../tmp/log/SwitchInfo.log" should contain "datapath_id: 0xabc"
|
|
16
|
+
And the file "../../tmp/log/SwitchInfo.log" should contain "#ports: 1"
|
|
17
17
|
|
|
18
|
-
@slow_process
|
|
19
|
-
Scenario: Run "Switch Info"
|
|
18
|
+
@slow_process @ruby
|
|
19
|
+
Scenario: Run "Switch Info" Ruby example with two switches
|
|
20
20
|
Given a file named "switch_info.conf" with:
|
|
21
21
|
"""
|
|
22
22
|
vswitch { datapath_id 0xabc }
|
|
23
23
|
vswitch { datapath_id 0xdef }
|
|
24
24
|
link "0xabc", "0xdef"
|
|
25
25
|
"""
|
|
26
|
-
And I run `trema run ../../
|
|
26
|
+
And I run `trema run ../../src/examples/switch_info/switch-info.rb -c switch_info.conf -d`
|
|
27
27
|
And *** sleep 2 ***
|
|
28
|
-
Then the file "../../tmp/log/
|
|
28
|
+
Then the file "../../tmp/log/SwitchInfo.log" should contain "#ports: 2"
|
|
29
29
|
|
|
30
30
|
@slow_process
|
|
31
|
-
Scenario: Run "Switch Info"
|
|
31
|
+
Scenario: Run "Switch Info" C example
|
|
32
32
|
Given a file named "switch_info.conf" with:
|
|
33
33
|
"""
|
|
34
34
|
vswitch { datapath_id 0xabc }
|
|
35
35
|
"""
|
|
36
|
-
And I run `trema run ../../
|
|
36
|
+
And I run `trema run ../../objects/examples/switch_info/switch_info -c switch_info.conf -d`
|
|
37
37
|
And *** sleep 2 ***
|
|
38
|
-
Then the file "../../tmp/log/
|
|
39
|
-
And the file "../../tmp/log/
|
|
38
|
+
Then the file "../../tmp/log/switch_info.log" should contain "datapath_id: 0xabc"
|
|
39
|
+
And the file "../../tmp/log/switch_info.log" should contain "#ports: 1"
|
|
40
40
|
|
|
41
41
|
@slow_process
|
|
42
|
-
Scenario: Run "Switch Info"
|
|
42
|
+
Scenario: Run "Switch Info" C example with two switches
|
|
43
43
|
Given a file named "switch_info.conf" with:
|
|
44
44
|
"""
|
|
45
45
|
vswitch { datapath_id 0xabc }
|
|
46
46
|
vswitch { datapath_id 0xdef }
|
|
47
47
|
link "0xabc", "0xdef"
|
|
48
48
|
"""
|
|
49
|
-
And I run `trema run ../../
|
|
49
|
+
And I run `trema run ../../objects/examples/switch_info/switch_info -c switch_info.conf -d`
|
|
50
50
|
And *** sleep 2 ***
|
|
51
|
-
Then the file "../../tmp/log/
|
|
51
|
+
Then the file "../../tmp/log/switch_info.log" should contain "#ports: 2"
|