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.
Files changed (291) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.travis.yml +24 -7
  4. data/Gemfile +19 -27
  5. data/Guardfile +6 -0
  6. data/README.md +13 -5
  7. data/Rakefile +418 -415
  8. data/bin/quality +2 -2
  9. data/bin/trema +103 -105
  10. data/bin/trema-config +7 -7
  11. data/build.rb +2 -2
  12. data/cruise.rb +109 -83
  13. data/features/dsl/switch_port_specifier.feature +1 -1
  14. data/features/examples/dumper.feature +9 -41
  15. data/features/examples/hello_trema.feature +1 -1
  16. data/features/examples/learning_switch.feature +7 -7
  17. data/features/examples/list_switches.feature +5 -5
  18. data/features/examples/message.set_config.feature +11 -11
  19. data/features/examples/message.vendor-action.feature +7 -7
  20. data/features/examples/message.vendor-stats-request.feature +1 -1
  21. data/features/examples/multi_learning_switch.feature +7 -7
  22. data/features/examples/openflow_message.echo.feature +15 -15
  23. data/features/examples/openflow_message.features_request.feature +12 -12
  24. data/features/examples/openflow_message.hello.feature +13 -13
  25. data/features/examples/packet_in.feature +8 -8
  26. data/features/examples/patch_panel.feature +1 -1
  27. data/features/examples/repeater_hub.feature +7 -7
  28. data/features/examples/switch_info.feature +16 -16
  29. data/features/examples/switch_monitor.feature +11 -11
  30. data/features/examples/transparent_firewall.feature +73 -0
  31. data/features/handlers/switch_ready.feature +1 -1
  32. data/features/step_definitions/misc_steps.rb +24 -24
  33. data/features/step_definitions/send_packets_steps.rb +2 -2
  34. data/features/step_definitions/stats_steps.rb +6 -6
  35. data/features/support/env.rb +15 -15
  36. data/features/support/hooks.rb +9 -9
  37. data/features/switch_event/add_forward_entry.feature +3 -3
  38. data/features/switch_event/delete_forward_entry.feature +3 -3
  39. data/features/switch_event/dump_forward_entries.feature +2 -2
  40. data/features/switch_event/set_forward_entries.feature +2 -2
  41. data/features/trema_commands/dump_flows.feature +1 -0
  42. data/features/trema_commands/help.feature +1 -0
  43. data/features/trema_commands/help_option.feature +1 -0
  44. data/features/trema_commands/kill.feature +1 -0
  45. data/features/trema_commands/killall.feature +1 -0
  46. data/features/trema_commands/port_down.feature +1 -0
  47. data/features/trema_commands/port_up.feature +1 -0
  48. data/features/trema_commands/reset_stats.feature +1 -0
  49. data/features/trema_commands/run.feature +1 -0
  50. data/features/trema_commands/send_packets.feature +2 -1
  51. data/features/trema_commands/show_stats.feature +1 -0
  52. data/features/trema_commands/up.feature +1 -0
  53. data/features/trema_commands/version.feature +1 -0
  54. data/features/trema_commands/version_option.feature +1 -0
  55. data/rubocop-todo.yml +159 -0
  56. data/ruby/blocker.rb +15 -17
  57. data/ruby/extconf.rb +19 -19
  58. data/ruby/sub-process.rb +29 -29
  59. data/ruby/trema/aggregate-stats-reply.rb +2 -2
  60. data/ruby/trema/app.rb +13 -13
  61. data/ruby/trema/cli.rb +45 -45
  62. data/ruby/trema/command.rb +14 -14
  63. data/ruby/trema/command/dump_flows.rb +5 -5
  64. data/ruby/trema/command/kill.rb +13 -13
  65. data/ruby/trema/command/killall.rb +1 -1
  66. data/ruby/trema/command/netns.rb +3 -3
  67. data/ruby/trema/command/port_down.rb +7 -7
  68. data/ruby/trema/command/port_up.rb +7 -7
  69. data/ruby/trema/command/reset_stats.rb +6 -6
  70. data/ruby/trema/command/ruby.rb +2 -2
  71. data/ruby/trema/command/run.rb +23 -23
  72. data/ruby/trema/command/send_packets.rb +9 -9
  73. data/ruby/trema/command/shell.rb +14 -16
  74. data/ruby/trema/command/show_stats.rb +9 -9
  75. data/ruby/trema/command/up.rb +4 -4
  76. data/ruby/trema/command/version.rb +1 -1
  77. data/ruby/trema/controller.rb +10 -10
  78. data/ruby/trema/custom-switch.rb +4 -4
  79. data/ruby/trema/daemon.rb +21 -21
  80. data/ruby/trema/desc-stats-reply.rb +2 -2
  81. data/ruby/trema/dsl.rb +5 -5
  82. data/ruby/trema/dsl/configuration.rb +7 -7
  83. data/ruby/trema/dsl/context.rb +10 -10
  84. data/ruby/trema/dsl/custom-switch.rb +3 -3
  85. data/ruby/trema/dsl/link.rb +2 -2
  86. data/ruby/trema/dsl/netns.rb +9 -9
  87. data/ruby/trema/dsl/parser.rb +14 -14
  88. data/ruby/trema/dsl/rswitch.rb +3 -3
  89. data/ruby/trema/dsl/run.rb +4 -4
  90. data/ruby/trema/dsl/runner.rb +20 -20
  91. data/ruby/trema/dsl/stanza.rb +5 -5
  92. data/ruby/trema/dsl/switch.rb +14 -14
  93. data/ruby/trema/dsl/syntax.rb +54 -54
  94. data/ruby/trema/dsl/vhost.rb +9 -9
  95. data/ruby/trema/dsl/vswitch.rb +4 -4
  96. data/ruby/trema/enqueue.rb +11 -11
  97. data/ruby/trema/exact-match.rb +1 -1
  98. data/ruby/trema/executables.rb +19 -19
  99. data/ruby/trema/flow-stats-reply.rb +2 -2
  100. data/ruby/trema/flow.rb +8 -8
  101. data/ruby/trema/hardware-switch.rb +2 -2
  102. data/ruby/trema/host.rb +18 -18
  103. data/ruby/trema/link.rb +9 -9
  104. data/ruby/trema/mac.rb +1 -5
  105. data/ruby/trema/match.c +0 -1
  106. data/ruby/trema/monkey-patch/integer.rb +3 -3
  107. data/ruby/trema/monkey-patch/integer/base-conversions.rb +1 -1
  108. data/ruby/trema/monkey-patch/integer/ranges.rb +2 -2
  109. data/ruby/trema/monkey-patch/integer/validators.rb +1 -1
  110. data/ruby/trema/monkey-patch/module.rb +2 -2
  111. data/ruby/trema/monkey-patch/module/class-method.rb +2 -2
  112. data/ruby/trema/monkey-patch/module/deprecation.rb +1 -1
  113. data/ruby/trema/monkey-patch/string.rb +1 -1
  114. data/ruby/trema/monkey-patch/string/inflectors.rb +7 -7
  115. data/ruby/trema/netns.rb +6 -6
  116. data/ruby/trema/network-component.rb +7 -7
  117. data/ruby/trema/ofctl.rb +13 -13
  118. data/ruby/trema/open-vswitch.rb +25 -25
  119. data/ruby/trema/openflow-switch.rb +1 -1
  120. data/ruby/trema/ordered-hash.rb +8 -8
  121. data/ruby/trema/packet-in.c +0 -1
  122. data/ruby/trema/packet-queue.rb +8 -8
  123. data/ruby/trema/packetin-filter.rb +9 -9
  124. data/ruby/trema/path.rb +32 -32
  125. data/ruby/trema/phost.rb +5 -5
  126. data/ruby/trema/port-mod.c +0 -1
  127. data/ruby/trema/port-stats-reply.rb +2 -2
  128. data/ruby/trema/port-status-add.rb +2 -2
  129. data/ruby/trema/port-status-delete.rb +2 -2
  130. data/ruby/trema/port-status-modify.rb +2 -2
  131. data/ruby/trema/port.c +0 -1
  132. data/ruby/trema/process.rb +7 -7
  133. data/ruby/trema/queue-stats-reply.rb +2 -2
  134. data/ruby/trema/ruby-switch.rb +6 -6
  135. data/ruby/trema/send-out-port.rb +11 -11
  136. data/ruby/trema/set-eth-addr.rb +5 -5
  137. data/ruby/trema/set-eth-dst-addr.rb +1 -1
  138. data/ruby/trema/set-eth-src-addr.rb +1 -1
  139. data/ruby/trema/set-ip-addr.rb +6 -6
  140. data/ruby/trema/set-ip-dst-addr.rb +1 -1
  141. data/ruby/trema/set-ip-src-addr.rb +1 -1
  142. data/ruby/trema/set-ip-tos.rb +6 -6
  143. data/ruby/trema/set-transport-dst-port.rb +2 -2
  144. data/ruby/trema/set-transport-port.rb +7 -7
  145. data/ruby/trema/set-transport-src-port.rb +3 -3
  146. data/ruby/trema/set-vlan-priority.rb +6 -6
  147. data/ruby/trema/set-vlan-vid.rb +6 -6
  148. data/ruby/trema/shell.rb +10 -10
  149. data/ruby/trema/shell/down.rb +3 -3
  150. data/ruby/trema/shell/killall.rb +1 -1
  151. data/ruby/trema/shell/link.rb +14 -14
  152. data/ruby/trema/shell/reset_stats.rb +6 -6
  153. data/ruby/trema/shell/run.rb +7 -7
  154. data/ruby/trema/shell/send_packets.rb +3 -3
  155. data/ruby/trema/shell/show_stats.rb +7 -7
  156. data/ruby/trema/shell/up.rb +5 -5
  157. data/ruby/trema/shell/vhost.rb +4 -4
  158. data/ruby/trema/shell/vswitch.rb +7 -7
  159. data/ruby/trema/stats-helper.rb +3 -3
  160. data/ruby/trema/stats-reply.c +0 -1
  161. data/ruby/trema/strip-vlan-header.rb +1 -1
  162. data/ruby/trema/switch-daemon.rb +9 -9
  163. data/ruby/trema/switch-manager.rb +9 -9
  164. data/ruby/trema/switch.rb +7 -7
  165. data/ruby/trema/table-stats-reply.rb +2 -2
  166. data/ruby/trema/timers.rb +12 -12
  167. data/ruby/trema/trema.c +0 -1
  168. data/ruby/trema/tremashark.rb +1 -1
  169. data/ruby/trema/util.rb +25 -27
  170. data/ruby/trema/vendor-action.rb +10 -10
  171. data/ruby/trema/vendor-stats-reply.rb +2 -2
  172. data/ruby/trema/version.rb +1 -1
  173. data/spec/spec_helper.rb +50 -52
  174. data/spec/support/action.rb +9 -12
  175. data/spec/support/mandatory-option.rb +15 -18
  176. data/spec/support/matchers/constant.rb +7 -7
  177. data/spec/support/openflow-message.rb +76 -79
  178. data/spec/support/port-status.rb +7 -10
  179. data/spec/trema/app_spec.rb +27 -27
  180. data/spec/trema/barrier-reply_spec.rb +10 -10
  181. data/spec/trema/barrier-request_spec.rb +35 -35
  182. data/spec/trema/cli_spec.rb +63 -63
  183. data/spec/trema/controller_spec.rb +3 -3
  184. data/spec/trema/default-logger_spec.rb +4 -4
  185. data/spec/trema/dsl/configuration_spec.rb +47 -47
  186. data/spec/trema/dsl/link_spec.rb +11 -11
  187. data/spec/trema/dsl/run_spec.rb +19 -19
  188. data/spec/trema/dsl/runner_spec.rb +91 -91
  189. data/spec/trema/dsl/switch_spec.rb +16 -16
  190. data/spec/trema/dsl/syntax_spec.rb +22 -22
  191. data/spec/trema/dsl/vhost_spec.rb +37 -37
  192. data/spec/trema/dsl/vswitch_spec.rb +21 -21
  193. data/spec/trema/echo-reply_spec.rb +29 -29
  194. data/spec/trema/echo-request_spec.rb +54 -54
  195. data/spec/trema/enqueue_spec.rb +25 -25
  196. data/spec/trema/error_spec.rb +30 -30
  197. data/spec/trema/executables_spec.rb +20 -20
  198. data/spec/trema/features-reply_spec.rb +41 -41
  199. data/spec/trema/features-request_spec.rb +35 -35
  200. data/spec/trema/flow-mod_spec.rb +32 -32
  201. data/spec/trema/flow-removed_spec.rb +62 -62
  202. data/spec/trema/get-config-reply_spec.rb +14 -12
  203. data/spec/trema/get-config-request_spec.rb +35 -35
  204. data/spec/trema/hardware-switch_spec.rb +12 -12
  205. data/spec/trema/hello_spec.rb +17 -17
  206. data/spec/trema/host_spec.rb +71 -71
  207. data/spec/trema/link_spec.rb +13 -13
  208. data/spec/trema/list-switches-reply_spec.rb +10 -10
  209. data/spec/trema/match_spec.rb +41 -41
  210. data/spec/trema/open-vswitch_spec.rb +45 -45
  211. data/spec/trema/openflow-error_spec.rb +67 -65
  212. data/spec/trema/packet-in_spec.rb +450 -446
  213. data/spec/trema/packet-out_spec.rb +42 -42
  214. data/spec/trema/packetin-filter_spec.rb +5 -5
  215. data/spec/trema/port-mod_spec.rb +32 -32
  216. data/spec/trema/port-status-add_spec.rb +3 -3
  217. data/spec/trema/port-status-delete_spec.rb +3 -3
  218. data/spec/trema/port-status-modify_spec.rb +16 -16
  219. data/spec/trema/port-status_spec.rb +2 -2
  220. data/spec/trema/port_spec.rb +21 -21
  221. data/spec/trema/process_spec.rb +22 -22
  222. data/spec/trema/queue-get-config-reply_spec.rb +21 -20
  223. data/spec/trema/queue-get-config-request_spec.rb +24 -24
  224. data/spec/trema/send-out-port_spec.rb +42 -42
  225. data/spec/trema/set-config_spec.rb +31 -31
  226. data/spec/trema/set-eth-addr_spec.rb +21 -21
  227. data/spec/trema/set-ip-addr_spec.rb +29 -29
  228. data/spec/trema/set-ip-tos_spec.rb +26 -26
  229. data/spec/trema/set-transport-dst-port_spec.rb +22 -22
  230. data/spec/trema/set-transport-src-port_spec.rb +22 -22
  231. data/spec/trema/set-vlan-priority_spec.rb +23 -23
  232. data/spec/trema/set-vlan-vid_spec.rb +23 -23
  233. data/spec/trema/shell/vhost_spec.rb +21 -21
  234. data/spec/trema/shell/vswitch_spec.rb +30 -30
  235. data/spec/trema/stats-reply_spec.rb +183 -173
  236. data/spec/trema/stats-request_spec.rb +66 -66
  237. data/spec/trema/strip-vlan-header_spec.rb +11 -11
  238. data/spec/trema/switch-daemon_spec.rb +34 -34
  239. data/spec/trema/switch-disconnected_spec.rb +17 -17
  240. data/spec/trema/switch-manager_spec.rb +6 -6
  241. data/spec/trema/tremashark_spec.rb +4 -4
  242. data/spec/trema/util_spec.rb +35 -35
  243. data/spec/trema/vendor-action_spec.rb +26 -26
  244. data/spec/trema/vendor_spec.rb +27 -27
  245. data/spec/trema_spec.rb +2 -2
  246. data/src/examples/cbench_switch/cbench-switch.rb +3 -3
  247. data/src/examples/dumper/dumper.rb +31 -31
  248. data/src/examples/hello_trema/hello-trema.rb +2 -2
  249. data/src/examples/learning_switch/fdb.rb +14 -14
  250. data/src/examples/learning_switch/learning-switch.rb +12 -10
  251. data/src/examples/learning_switch/learning_switch.c +22 -39
  252. data/src/examples/list_switches/list-switches.rb +3 -3
  253. data/src/examples/match_compare/match-compare.rb +20 -20
  254. data/src/examples/multi_learning_switch/multi-learning-switch.rb +12 -12
  255. data/src/examples/openflow_message/echo.rb +4 -4
  256. data/src/examples/openflow_message/example.rb +7 -7
  257. data/src/examples/openflow_message/features-request.rb +31 -31
  258. data/src/examples/openflow_message/hello.rb +2 -2
  259. data/src/examples/openflow_message/set-config.rb +4 -4
  260. data/src/examples/openflow_message/vendor-action.rb +3 -3
  261. data/src/examples/openflow_message/vendor-stats-request.rb +9 -9
  262. data/src/examples/packet_in/packet-in.rb +2 -2
  263. data/src/examples/patch_panel/patch-panel.rb +9 -9
  264. data/src/examples/repeater_hub/repeater-hub.rb +4 -4
  265. data/src/examples/repeater_hub/repeater-hub_spec.rb +65 -65
  266. data/src/examples/simple_router/arp-table.rb +7 -7
  267. data/src/examples/simple_router/interface.rb +10 -10
  268. data/src/examples/simple_router/routing-table.rb +4 -4
  269. data/src/examples/simple_router/simple-router.rb +3 -3
  270. data/src/examples/switch_info/switch-info.rb +9 -9
  271. data/src/examples/switch_monitor/switch-monitor.rb +4 -4
  272. data/src/examples/traffic_monitor/counter.rb +6 -6
  273. data/src/examples/traffic_monitor/fdb.rb +4 -4
  274. data/src/examples/traffic_monitor/traffic-monitor.rb +12 -12
  275. data/src/examples/transparent_firewall/README.md +61 -0
  276. data/src/examples/transparent_firewall/aggregated-delegated-afrinic.txt +713 -0
  277. data/src/examples/transparent_firewall/aggregated-delegated-apnic.txt +3440 -0
  278. data/src/examples/transparent_firewall/aggregated-delegated-arin.txt +11342 -0
  279. data/src/examples/transparent_firewall/aggregated-delegated-lacnic.txt +1937 -0
  280. data/src/examples/transparent_firewall/aggregated-delegated-ripencc.txt +7329 -0
  281. data/src/examples/transparent_firewall/block-rfc1918.rb +86 -0
  282. data/src/examples/transparent_firewall/pass-delegated.rb +178 -0
  283. data/src/examples/transparent_firewall/regen_aggregated.sh +53 -0
  284. data/src/examples/transparent_firewall/stats-to-cidrs.rb +59 -0
  285. data/src/lib/messenger.c +14 -5
  286. data/src/lib/openflow_message.c +0 -5
  287. data/tasks/rubocop.rake +22 -0
  288. data/trema +1 -1
  289. data/trema-config +1 -1
  290. data/trema.gemspec +22 -22
  291. metadata +30 -16
@@ -1,4 +1,4 @@
1
- @wip
1
+ @wip @ruby
2
2
  Feature: Switch Port Specifier
3
3
  By adding a postfix (`:port#`) to the switch's name found in the `link` directive you can specify the exact port number to be used when the link is created.
4
4
 
@@ -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
- Scenario: "dumper --help"
38
- When I run `../../objects/examples/dumper/dumper --help`
39
- Then the output should contain exactly:
40
- """
41
- OpenFlow Event Dumper.
42
- Usage: dumper [OPTION]...
43
-
44
- -n, --name=SERVICE_NAME service name
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" C example
21
- Given I run `trema run ../../objects/examples/learning_switch/learning_switch -c learning_switch.conf -d`
22
- And wait until "learning_switch" is up
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" Ruby example
31
- Given I run `trema run ../../src/examples/learning_switch/learning-switch.rb -c learning_switch.conf -d`
32
- And wait until "LearningSwitch" is up
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 "./objects/examples/openflow_message/set_config 10" with following configuration (backgrounded):
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("set_config") { datapath_id "0xabc" }
11
+ vswitch("set-config") { datapath_id "0xabc" }
12
12
  """
13
- And wait until "set_config" is up
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.set_config.log" should include "received: OFPT_SET_CONFIG" x 11
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 in Ruby
20
- When I try trema run "./src/examples/openflow_message/set-config.rb 0xabc, 10" with following configuration (backgrounded):
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("set-config") { datapath_id "0xabc" }
22
+ vswitch("set_config") { datapath_id "0xabc" }
23
23
  """
24
- And wait until "SetConfigController" is up
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.set-config.log" should include "received: OFPT_SET_CONFIG" x 11
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 C
15
- Given I run `trema run ../../objects/examples/openflow_message/vendor_action -c vendor_action.conf -d`
16
- And wait until "vendor_action" is up
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 Ruby
22
- Given I run `trema run ../../src/examples/openflow_message/vendor-action.rb -c vendor_action.conf -d`
23
- And wait until "VendorActionSampleController" is up
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" C example
31
- Given I run `trema run ../../objects/examples/multi_learning_switch/multi_learning_switch -c multi_learning_switch.conf -d`
32
- And wait until "multi_learning_switch" is up
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" Ruby example
71
- Given I run `trema run ../../src/examples/multi_learning_switch/multi-learning-switch.rb -c multi_learning_switch.conf -d`
72
- And wait until "MultiLearningSwitch" is up
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 C
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 "../../objects/examples/openflow_message/echo 10" -c echo.conf -d`
17
- And wait until "echo" is up
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/echo.log" should match /received: OFPT_ECHO_REPLY/
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 Ruby
36
- Given a file named "echo.ruby.conf" with:
35
+ Scenario: Echo request and reply in C
36
+ Given a file named "echo.conf" with:
37
37
  """
38
- custom_switch("echo.ruby") {
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 "../../src/examples/openflow_message/echo.rb 0xabc, 10" -c echo.ruby.conf -d`
44
- And wait until "EchoController" is up
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.ruby.log" should contain:
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
- # And the file "../../tmp/log/EchoController.log" should match /received: OFPT_ECHO_REPLY/
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 C
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 "../../objects/examples/openflow_message/hello 10" -c hello.conf -d`
17
- And wait until "hello" is up
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 Ruby
36
- Given a file named "hello-r.conf" with:
35
+ Scenario: Hello message in C
36
+ Given a file named "hello.conf" with:
37
37
  """
38
- custom_switch("hello-r") {
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 "../../src/examples/openflow_message/hello.rb 10" -c hello-r.conf -d`
44
- And wait until "HelloController" is up
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-r.log" should contain:
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"
@@ -4,7 +4,7 @@ Feature: "Patch Panel" sample application
4
4
  As a developer using Trema
5
5
  I want to execute "Patch Panel" sample application
6
6
 
7
- @slow_process
7
+ @slow_process @ruby
8
8
  Scenario: Run "Patch Panel" Ruby example
9
9
  Given a file named "patch-panel.conf" with:
10
10
  """
@@ -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" C example
32
- Given I run `trema run ../../objects/examples/repeater_hub/repeater_hub -c repeater_hub.conf -d`
33
- And wait until "repeater_hub" is up
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" Ruby example
44
- Given I run `trema run ../../src/examples/repeater_hub/repeater-hub.rb -c repeater_hub.conf -d`
45
- And wait until "RepeaterHub" is up
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" C example
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 ../../objects/examples/switch_info/switch_info -c switch_info.conf -d`
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/switch_info.log" should contain "datapath_id: 0xabc"
16
- And the file "../../tmp/log/switch_info.log" should contain "#ports: 1"
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" C example with two switches
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 ../../objects/examples/switch_info/switch_info -c switch_info.conf -d`
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/switch_info.log" should contain "#ports: 2"
28
+ Then the file "../../tmp/log/SwitchInfo.log" should contain "#ports: 2"
29
29
 
30
30
  @slow_process
31
- Scenario: Run "Switch Info" Ruby example
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 ../../src/examples/switch_info/switch-info.rb -c switch_info.conf -d`
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/SwitchInfo.log" should contain "datapath_id: 0xabc"
39
- And the file "../../tmp/log/SwitchInfo.log" should contain "#ports: 1"
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" Ruby example with two switches
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 ../../src/examples/switch_info/switch-info.rb -c switch_info.conf -d`
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/SwitchInfo.log" should contain "#ports: 2"
51
+ Then the file "../../tmp/log/switch_info.log" should contain "#ports: 2"