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
@@ -12,24 +12,24 @@ Feature: "Switch Monitor" sample application
12
12
  vswitch { datapath_id 0x3 }
13
13
  """
14
14
 
15
- @slow_process
16
- Scenario: Run "Switch Monitor" C example
17
- Given I run `trema run ../../objects/examples/switch_monitor/switch_monitor -c switch_monitor.conf -d`
18
- And wait until "switch_monitor" is up
15
+ @slow_process @ruby
16
+ Scenario: Run "Switch Monitor" Ruby example
17
+ Given I run `trema run ../../src/examples/switch_monitor/switch-monitor.rb -c switch_monitor.conf -d`
18
+ And wait until "SwitchMonitor" is up
19
19
  When I run `trema kill 0x3`
20
20
  And *** sleep 2 ***
21
- Then the file "../../tmp/log/switch_monitor.log" should contain "Switch 0x3 is DOWN"
21
+ Then the file "../../tmp/log/SwitchMonitor.log" should contain "Switch 0x3 is DOWN"
22
22
  When I run `trema up 0x3`
23
23
  And *** sleep 10 ***
24
- Then the file "../../tmp/log/switch_monitor.log" should contain "All switches = 0x1, 0x2, 0x3"
24
+ Then the file "../../tmp/log/SwitchMonitor.log" should contain "All switches = 0x1, 0x2, 0x3"
25
25
 
26
26
  @slow_process
27
- Scenario: Run "Switch Monitor" Ruby example
28
- Given I run `trema run ../../src/examples/switch_monitor/switch-monitor.rb -c switch_monitor.conf -d`
29
- And wait until "SwitchMonitor" is up
27
+ Scenario: Run "Switch Monitor" C example
28
+ Given I run `trema run ../../objects/examples/switch_monitor/switch_monitor -c switch_monitor.conf -d`
29
+ And wait until "switch_monitor" is up
30
30
  When I run `trema kill 0x3`
31
31
  And *** sleep 2 ***
32
- Then the file "../../tmp/log/SwitchMonitor.log" should contain "Switch 0x3 is DOWN"
32
+ Then the file "../../tmp/log/switch_monitor.log" should contain "Switch 0x3 is DOWN"
33
33
  When I run `trema up 0x3`
34
34
  And *** sleep 10 ***
35
- Then the file "../../tmp/log/SwitchMonitor.log" should contain "All switches = 0x1, 0x2, 0x3"
35
+ Then the file "../../tmp/log/switch_monitor.log" should contain "All switches = 0x1, 0x2, 0x3"
@@ -0,0 +1,73 @@
1
+ Feature: "Transparent Firewall" sample application
2
+
3
+ @slow_process
4
+ Scenario: block-rfc1918.rb blocks packets with private source/destination address
5
+ Given a file named "transparent_firewall.conf" with:
6
+ """
7
+ vswitch("firewall") { datapath_id "0xabc" }
8
+
9
+ vhost("host1") { ip "192.168.0.1" }
10
+ vhost("host2") { ip "192.168.0.2" }
11
+
12
+ link "firewall", "host1"
13
+ link "firewall", "host2"
14
+ """
15
+ And I run `trema run ../../src/examples/transparent_firewall/block-rfc1918.rb -c transparent_firewall.conf -d`
16
+ And wait until "BlockRFC1918" is up
17
+ When I send 1 packet from host1 to host2
18
+ And I run `trema show_stats host2 --rx`
19
+ And the output should not contain "192.168.0.2,1,192.168.0.1,1,1,50"
20
+
21
+ @slow_process
22
+ Scenario: block-rfc1918.rb does not block packets with global source/destination address
23
+ Given a file named "transparent_firewall.conf" with:
24
+ """
25
+ vswitch("firewall") { datapath_id "0xabc" }
26
+
27
+ vhost("host1") { ip "1.1.1.1" }
28
+ vhost("host2") { ip "2.2.2.2" }
29
+
30
+ link "firewall", "host1"
31
+ link "firewall", "host2"
32
+ """
33
+ And I run `trema run ../../src/examples/transparent_firewall/block-rfc1918.rb -c transparent_firewall.conf -d`
34
+ And wait until "BlockRFC1918" is up
35
+ When I send 1 packet from host1 to host2
36
+ And I run `trema show_stats host2 --rx`
37
+ And the output should contain "2.2.2.2,1,1.1.1.1,1,1,50"
38
+
39
+ @slow_process
40
+ Scenario: pass-delegated.rb blocks packets with source address outside of delegated IP address space.
41
+ Given a file named "transparent_firewall.conf" with:
42
+ """
43
+ vswitch("firewall") { datapath_id "0xabc" }
44
+
45
+ vhost("host1") { ip "192.168.0.1" }
46
+ vhost("host2") { ip "192.168.0.2" }
47
+
48
+ link "firewall", "host1"
49
+ link "firewall", "host2"
50
+ """
51
+ And I run `trema run ../../src/examples/transparent_firewall/pass-delegated.rb -c transparent_firewall.conf -d`
52
+ And wait until "PassDelegated" is up
53
+ When I send 1 packet from host2 to host1
54
+ And I run `trema show_stats host1 --rx`
55
+ And the output should not contain "192.168.0.1,1,192.168.0.1,2,1,50"
56
+
57
+ @slow_process
58
+ Scenario: pass-delegated.rb does not block packets with source address of delegated IP address space.
59
+ Given a file named "transparent_firewall.conf" with:
60
+ """
61
+ vswitch("firewall") { datapath_id "0xabc" }
62
+
63
+ vhost("host1") { ip "14.0.0.1" }
64
+ vhost("host2") { ip "14.0.0.2" }
65
+
66
+ link "firewall", "host1"
67
+ link "firewall", "host2"
68
+ """
69
+ And I run `trema run ../../src/examples/transparent_firewall/pass-delegated.rb -c transparent_firewall.conf -d`
70
+ And wait until "PassDelegated" is up
71
+ When I send 1 packet from host2 to host1
72
+ And I run `trema show_stats host1 --rx`
73
+ And the output should contain "14.0.0.1,1,14.0.0.2,1,1,50"
@@ -22,7 +22,7 @@ Feature: switch_ready handler
22
22
  unaware of such details. Users only need to handle the switch-ready
23
23
  message.
24
24
 
25
- @slow_process
25
+ @slow_process @ruby
26
26
  Scenario: switch_ready handler
27
27
  Given a file named "switch-ready-detector.rb" with:
28
28
  """
@@ -16,65 +16,65 @@
16
16
  #
17
17
 
18
18
 
19
- Given /^I compile "(.*?)" into "(.*?)"$/ do | c_source, executable |
19
+ Given(/^I compile "(.*?)" into "(.*?)"$/) do | c_source, executable |
20
20
  run_simple "gcc #{ c_source } #{`trema-config -c -l`} -o #{ executable }", true
21
21
  end
22
22
 
23
23
 
24
- When /^\*\*\* sleep (\d+) \*\*\*$/ do | sec |
24
+ When(/^\*\*\* sleep (\d+) \*\*\*$/) do | sec |
25
25
  sleep sec.to_i
26
26
  end
27
27
 
28
28
 
29
- When /^wait until "([^"]*)" is up$/ do | process |
29
+ When(/^wait until "([^"]*)" is up$/) do | process |
30
30
  nloop = 0
31
- pid_file = File.join( Trema.pid, "#{ process }.pid" )
31
+ pid_file = File.join(Trema.pid, "#{ process }.pid")
32
32
  loop do
33
33
  nloop += 1
34
- raise "Timeout" if nloop > 60 # FIXME
35
- break if FileTest.exists?( pid_file ) and not ps_entry_of( process ).nil?
34
+ fail 'Timeout' if nloop > 100 # FIXME
35
+ break if FileTest.exists?(pid_file) && ps_entry_of(process)
36
36
  sleep 0.1
37
37
  end
38
38
  sleep 1 # FIXME
39
39
  end
40
40
 
41
41
 
42
- Then /^the output should contain "(.*?)" within the timeout period$/ do | expected |
43
- step %{I wait for output to contain "#{ expected }"}
42
+ Then(/^the output should contain "(.*?)" within the timeout period$/) do | expected |
43
+ step %(I wait for output to contain "#{ expected }")
44
44
  end
45
45
 
46
46
 
47
- Then /^([^\s]*) is terminated$/ do | name |
48
- ps_entry_of( name ).should be_empty
47
+ Then(/^([^\s]*) is terminated$/) do | name |
48
+ ps_entry_of(name).should be_empty
49
49
  end
50
50
 
51
51
 
52
- Then /^the vswitch "(.*?)" is running$/ do | dpid |
53
- pid_file = File.join( Trema.pid, "open_vswitch.#{ dpid }.pid" )
54
- File.exists?( pid_file ).should be_true
52
+ Then(/^the vswitch "(.*?)" is running$/) do | dpid |
53
+ pid_file = File.join(Trema.pid, "open_vswitch.#{ dpid }.pid")
54
+ File.exist?(pid_file).should be_true
55
55
  end
56
56
 
57
57
 
58
- Then /^the vswitch "([^"]*)" is terminated$/ do | dpid |
59
- pid_file = File.join( Trema.pid, "open_vswitch.#{ dpid }.pid" )
60
- File.exists?( pid_file ).should be_false
58
+ Then(/^the vswitch "([^"]*)" is terminated$/) do | dpid |
59
+ pid_file = File.join(Trema.pid, "open_vswitch.#{ dpid }.pid")
60
+ File.exist?(pid_file).should be_false
61
61
  end
62
62
 
63
63
 
64
- Then /^the vhost "(.*?)" is terminated$/ do | host |
65
- pid_file = File.join( Trema.pid, "phost.#{ host }.pid" )
66
- File.exists?( pid_file ).should be_false
64
+ Then(/^the vhost "(.*?)" is terminated$/) do | host |
65
+ pid_file = File.join(Trema.pid, "phost.#{ host }.pid")
66
+ File.exist?(pid_file).should be_false
67
67
  end
68
68
 
69
69
 
70
- Then /^the controller "(.*?)" is terminated$/ do | controller |
71
- pid_file = File.join( Trema.pid, "#{ controller }.pid" )
72
- File.exists?( pid_file ).should be_false
70
+ Then(/^the controller "(.*?)" is terminated$/) do | controller |
71
+ pid_file = File.join(Trema.pid, "#{ controller }.pid")
72
+ File.exist?(pid_file).should be_false
73
73
  end
74
74
 
75
75
 
76
- Then /^([^\s]*) is started$/ do | name |
77
- ps_entry_of( name ).should_not be_empty
76
+ Then(/^([^\s]*) is started$/) do | name |
77
+ ps_entry_of(name).should_not be_empty
78
78
  end
79
79
 
80
80
 
@@ -16,12 +16,12 @@
16
16
  #
17
17
 
18
18
 
19
- When /^I send (\d+) packets from (.+) to (.+)$/ do | n_packets, host_a, host_b |
19
+ When(/^I send (\d+) packets from (.+) to (.+)$/) do | n_packets, host_a, host_b |
20
20
  step "I run `trema send_packets --source #{ host_a } --dest #{ host_b } --n_pkts #{ n_packets }`"
21
21
  end
22
22
 
23
23
 
24
- When /^I send 1 packet from (.+) to (.+)$/ do | host_a, host_b |
24
+ When(/^I send 1 packet from (.+) to (.+)$/) do | host_a, host_b |
25
25
  step "I send 1 packets from #{ host_a } to #{ host_b }"
26
26
  end
27
27
 
@@ -16,18 +16,18 @@
16
16
  #
17
17
 
18
18
 
19
- Then /^the total number of tx packets should be:$/ do | table |
19
+ Then(/^the total number of tx packets should be:$/) do | table |
20
20
  sleep 1
21
- table.hashes[ 0 ].each_pair do | host, n |
22
- count_packets( `trema show_stats #{ host } --tx` ).should == n.to_i
21
+ table.hashes[ 0].each_pair do | host, n |
22
+ count_packets(`trema show_stats #{ host } --tx`).should == n.to_i
23
23
  end
24
24
  end
25
25
 
26
26
 
27
- Then /^the total number of rx packets should be:$/ do | table |
27
+ Then(/^the total number of rx packets should be:$/) do | table |
28
28
  sleep 1
29
- table.hashes[ 0 ].each_pair do | host, n |
30
- count_packets( `trema show_stats #{ host } --rx` ).should == n.to_i
29
+ table.hashes[ 0].each_pair do | host, n |
30
+ count_packets(`trema show_stats #{ host } --rx`).should == n.to_i
31
31
  end
32
32
  end
33
33
 
@@ -16,37 +16,37 @@
16
16
  #
17
17
 
18
18
 
19
- require "bundler"
19
+ require 'bundler'
20
20
  begin
21
21
  Bundler.setup :default, :development
22
22
  rescue Bundler::BundlerError => e
23
23
  $stderr.puts e.message
24
- $stderr.puts "Run `bundle install` to install missing gems"
24
+ $stderr.puts 'Run `bundle install` to install missing gems'
25
25
  exit e.status_code
26
26
  end
27
27
 
28
28
 
29
- $LOAD_PATH.unshift( File.expand_path( File.dirname( __FILE__ ) + "/../../ruby" ) )
29
+ $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + '/../../ruby'))
30
30
 
31
31
 
32
- require "aruba/cucumber"
33
- require "rspec"
34
- require "tempfile"
35
- require "trema/executables"
36
- require "trema/monkey-patch/string"
32
+ require 'aruba/cucumber'
33
+ require 'rspec'
34
+ require 'tempfile'
35
+ require 'trema/executables'
36
+ require 'trema/monkey-patch/string'
37
37
 
38
38
 
39
- def run command
40
- raise "Failed to execute #{ command }" unless system( command )
39
+ def run(command)
40
+ fail "Failed to execute #{ command }" unless system(command)
41
41
  end
42
42
 
43
43
 
44
- def ps_entry_of name
44
+ def ps_entry_of(name)
45
45
  `ps -ef | grep -w "#{ name } " | grep -v grep`
46
46
  end
47
47
 
48
48
 
49
- def cucumber_log name
49
+ def cucumber_log(name)
50
50
  File.join Trema.log, name
51
51
  end
52
52
 
@@ -59,10 +59,10 @@ end
59
59
 
60
60
  # show_stats output format:
61
61
  # ip_dst,tp_dst,ip_src,tp_src,n_pkts,n_octets
62
- def count_packets stats
62
+ def count_packets(stats)
63
63
  return 0 if stats.split.size <= 1
64
- stats.split[ 1..-1 ].inject( 0 ) do | sum, each |
65
- sum += each.split( "," )[ 4 ].to_i
64
+ stats.split[ 1..-1].inject(0) do | sum, each |
65
+ sum += each.split(',')[ 4].to_i
66
66
  end
67
67
  end
68
68
 
@@ -16,16 +16,16 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/path"
19
+ require 'trema/path'
20
20
 
21
21
 
22
- def wait_until_all_pid_files_are_deleted timeout = 12
22
+ def wait_until_all_pid_files_are_deleted(timeout = 12)
23
23
  elapsed = 0
24
24
  loop do
25
- raise "Failed to clean up remaining processes." if elapsed > timeout
26
- break if Dir.glob( File.join( Trema.pid, "*.pid" ) ).empty?
27
- sleep 1
28
- elapsed += 1
25
+ fail 'Failed to clean up remaining processes.' if elapsed > timeout
26
+ break if Dir.glob(File.join(Trema.pid, '*.pid')).empty?
27
+ sleep 0.1
28
+ elapsed += 0.1
29
29
  end
30
30
  sleep 1
31
31
  end
@@ -33,18 +33,18 @@ end
33
33
 
34
34
  Before do
35
35
  @aruba_timeout_seconds = 10
36
- run "trema killall"
36
+ run 'trema killall'
37
37
  wait_until_all_pid_files_are_deleted
38
38
  end
39
39
 
40
40
 
41
- Before( "@slow_process" ) do
41
+ Before('@slow_process') do
42
42
  @aruba_io_wait_seconds = 1
43
43
  end
44
44
 
45
45
 
46
46
  After do
47
- run "trema killall"
47
+ run 'trema killall'
48
48
  wait_until_all_pid_files_are_deleted
49
49
  processes.clear
50
50
  end
@@ -29,7 +29,7 @@ Feature: Ruby methods for adding switch event forwarding entry
29
29
  All the above methods take a result handler as Ruby block, but
30
30
  can be omitted if checking is not necessary.
31
31
 
32
- @slow_process
32
+ @slow_process @ruby
33
33
  Scenario Outline: add_forward_entry_to_all_switches event_type, trema_name
34
34
  Given a file named "network.conf" with:
35
35
  """
@@ -84,7 +84,7 @@ Feature: Ruby methods for adding switch event forwarding entry
84
84
  | :port_status | "AddEntryToAllTest", "new_controller" | "AddEntryToAllTest", "new_controller" |
85
85
  | :state_notify | "AddEntryToAllTest", "new_controller" | "AddEntryToAllTest", "new_controller" |
86
86
 
87
- @slow_process
87
+ @slow_process @ruby
88
88
  Scenario Outline: add_forward_entry_to_switch dpid, event_type, trema_name
89
89
  Given a file named "network.conf" with:
90
90
  """
@@ -123,7 +123,7 @@ Feature: Ruby methods for adding switch event forwarding entry
123
123
  | :port_status | "AddEntryToSwitchDaemonTest", "new_controller" |
124
124
  | :state_notify | "AddEntryToSwitchDaemonTest", "new_controller" |
125
125
 
126
- @slow_process
126
+ @slow_process @ruby
127
127
  Scenario Outline: add_forward_entry_to_switch_manager event_type, trema_name
128
128
  Given a file named "AddEntryToSwitchManagerTest.rb" with:
129
129
  """ruby
@@ -29,7 +29,7 @@ Feature: Ruby methods for deleting switch event forwarding entry
29
29
  All the above methods take a result handler as Ruby block, but
30
30
  they can be omitted if checking is not necessary.
31
31
 
32
- @slow_process
32
+ @slow_process @ruby
33
33
  Scenario Outline: delete_forward_entry_from_all_switches event_type, trema_name
34
34
  Given a file named "network.conf" with:
35
35
  """
@@ -84,7 +84,7 @@ Feature: Ruby methods for deleting switch event forwarding entry
84
84
  | :port_status | | |
85
85
  | :state_notify | | |
86
86
 
87
- @slow_process
87
+ @slow_process @ruby
88
88
  Scenario Outline: delete_forward_entry_from_switch dpid, event_type, trema_name
89
89
  Given a file named "network.conf" with:
90
90
  """
@@ -123,7 +123,7 @@ Feature: Ruby methods for deleting switch event forwarding entry
123
123
  | :port_status | |
124
124
  | :state_notify | |
125
125
 
126
- @slow_process
126
+ @slow_process @ruby
127
127
  Scenario Outline: delete_forward_entry_from_switch_manager event_type, trema_name
128
128
  Given a file named "DeleteFromSwitchManagerTest.rb" with:
129
129
  """ruby
@@ -22,7 +22,7 @@ Feature: Ruby methods for dumping switch event forwarding entry
22
22
  ----
23
23
  All the above methods take a result handler as Ruby block.
24
24
 
25
- @slow_process
25
+ @slow_process @ruby
26
26
  Scenario Outline: dump_forward_entries_from_switch dpid, event_type
27
27
  Given a file named "network.conf" with:
28
28
  """
@@ -62,7 +62,7 @@ Feature: Ruby methods for dumping switch event forwarding entry
62
62
  | :port_status | "port_status" |
63
63
  | :state_notify | "DumpSwitchDaemonTest" |
64
64
 
65
- @slow_process
65
+ @slow_process @ruby
66
66
  Scenario Outline: dump_forward_entries_from_switch_manager event_type
67
67
  Given a file named "network.conf" with:
68
68
  """
@@ -26,7 +26,7 @@ Feature: Ruby methods for setting switch event forwarding entry
26
26
  All the above methods take a result handler as Ruby block, but
27
27
  they can be omitted if checking is not necessary.
28
28
 
29
- @slow_process
29
+ @slow_process @ruby
30
30
  Scenario Outline: set_forward_entries_to_switch dpid, event_type, trema_names
31
31
  Given a file named "network.conf" with:
32
32
  """
@@ -65,7 +65,7 @@ Feature: Ruby methods for setting switch event forwarding entry
65
65
  | :port_status | "SetEntriesToSwitchDaemonTest", "Another" |
66
66
  | :state_notify | "SetEntriesToSwitchDaemonTest", "Another" |
67
67
 
68
- @slow_process
68
+ @slow_process @ruby
69
69
  Scenario Outline: set_forward_entries_to_switch_manager event_type, trema_names
70
70
  Given a file named "SetEntriesToSwitchManagerTest.rb" with:
71
71
  """ruby