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
@@ -16,71 +16,71 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
23
  class PacketOutController < Controller
24
- def packet_in datapath_id, message
24
+ def packet_in(datapath_id, message)
25
25
  send_flow_mod_add(
26
26
  datapath_id,
27
- :match => Match.from( message ),
28
- :actions => Trema::ActionOutput.new( :port => 2 )
27
+ :match => Match.from(message),
28
+ :actions => Trema::ActionOutput.new(:port => 2)
29
29
  )
30
30
  send_packet_out(
31
31
  datapath_id,
32
32
  :packet_in => message,
33
- :actions => Trema::ActionOutput.new( :port => 2 )
33
+ :actions => Trema::ActionOutput.new(:port => 2)
34
34
  )
35
35
  end
36
36
  end
37
37
 
38
38
 
39
- describe "packet-out" do
40
- context "a controller instance" do
41
- it "should respond to #send_packet_out" do
42
- expect( PacketOutController.new ).to respond_to(:send_packet_out)
39
+ describe 'packet-out' do
40
+ context 'a controller instance' do
41
+ it 'should respond to #send_packet_out' do
42
+ expect(PacketOutController.new).to respond_to(:send_packet_out)
43
43
  end
44
44
  end
45
45
 
46
46
 
47
- context "when invoked with no datapath_id" do
48
- it "should raise an error" do
47
+ context 'when invoked with no datapath_id' do
48
+ it 'should raise an error' do
49
49
  expect { PacketOutController.new.send_packet_out }.to raise_error
50
50
  end
51
51
  end
52
52
 
53
53
 
54
- context "when #packet_in" do
55
- it "should #packet_out" do
56
- network {
57
- vswitch( "packet-out" ) { datapath_id 0xabc }
58
- vhost "host1"
59
- vhost "host2"
60
- link "host1", "packet-out"
61
- link "host2", "packet-out"
62
- }.run( PacketOutController ) {
63
- send_packets "host2", "host1"
54
+ context 'when #packet_in' do
55
+ it 'should #packet_out' do
56
+ network do
57
+ vswitch('packet-out') { datapath_id 0xabc }
58
+ vhost 'host1'
59
+ vhost 'host2'
60
+ link 'host1', 'packet-out'
61
+ link 'host2', 'packet-out'
62
+ end.run(PacketOutController) do
63
+ send_packets 'host2', 'host1'
64
64
  sleep 2
65
- expect( vhost( "host1" ).rx_stats.n_pkts ).to eq( 1 )
66
- }
65
+ expect(vhost('host1').rx_stats.n_pkts).to eq(1)
66
+ end
67
67
  end
68
68
  end
69
69
 
70
70
 
71
- context "when data argument is string type" do
72
- it "should #packet_out" do
73
- network {
74
- vswitch( "packet-out" ) { datapath_id 0xabc }
75
- vhost "host1"
76
- vhost ( "host2" ) {
77
- ip "192.168.0.2"
78
- netmask "255.255.0.0"
79
- mac "00:00:00:00:00:02"
80
- }
81
- link "host1", "packet-out"
82
- link "host2", "packet-out"
83
- }.run( PacketOutController ) {
71
+ context 'when data argument is string type' do
72
+ it 'should #packet_out' do
73
+ network do
74
+ vswitch('packet-out') { datapath_id 0xabc }
75
+ vhost 'host1'
76
+ vhost ( 'host2') do
77
+ ip '192.168.0.2'
78
+ netmask '255.255.0.0'
79
+ mac '00:00:00:00:00:02'
80
+ end
81
+ link 'host1', 'packet-out'
82
+ link 'host2', 'packet-out'
83
+ end.run(PacketOutController) do
84
84
  data = [
85
85
  0x00, 0x00, 0x00, 0x00, 0x00, 0x02, # dst
86
86
  0x00, 0x00, 0x00, 0x00, 0x00, 0x01, # src
@@ -103,15 +103,15 @@ describe "packet-out" do
103
103
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
104
104
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
105
105
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00
106
- ].pack( "C*" )
107
- controller( "PacketOutController" ).send_packet_out(
106
+ ].pack('C*')
107
+ controller('PacketOutController').send_packet_out(
108
108
  0xabc,
109
109
  :data => data,
110
- :actions => Trema::ActionOutput.new( :port => 1 )
110
+ :actions => Trema::ActionOutput.new(:port => 1)
111
111
  )
112
112
  sleep 2
113
- expect( vhost( "host2" ).rx_stats.n_pkts ).to eq( 1 )
114
- }
113
+ expect(vhost('host2').rx_stats.n_pkts).to eq(1)
114
+ end
115
115
  end
116
116
  end
117
117
 
@@ -16,15 +16,15 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema/packetin-filter"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema/packetin-filter'
21
21
 
22
22
 
23
23
  module Trema
24
24
  describe PacketinFilter do
25
- it "should run packetin_filter with proper options" do
26
- packetin_filter = PacketinFilter.new( :lldp => "TopologyManager", :packet_in => "OpenFlowPingPong" )
27
- packetin_filter.should_receive( :sh ).once.with( /packetin_filter \-\-daemonize \-\-name=filter lldp::TopologyManager packet_in::OpenFlowPingPong$/ )
25
+ it 'should run packetin_filter with proper options' do
26
+ packetin_filter = PacketinFilter.new(:lldp => 'TopologyManager', :packet_in => 'OpenFlowPingPong')
27
+ packetin_filter.should_receive(:sh).once.with(/packetin_filter \-\-daemonize \-\-name=filter lldp::TopologyManager packet_in::OpenFlowPingPong$/)
28
28
 
29
29
  packetin_filter.run!
30
30
  end
@@ -16,77 +16,77 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
- describe PortMod, ".new( VALID OPTIONS )" do
24
- subject {
23
+ describe PortMod, '.new( VALID OPTIONS )' do
24
+ subject do
25
25
  PortMod.new(
26
26
  :port_no => 2,
27
- :hw_addr => Mac::new( "11:22:33:44:55:66" ),
27
+ :hw_addr => Mac::new('11:22:33:44:55:66'),
28
28
  :config => 1,
29
29
  :mask => 1,
30
30
  :advertise => 0
31
31
  )
32
- }
33
- its( :port_no ) { should == 2 }
34
- its( "hw_addr.to_s" ) { should eq "11:22:33:44:55:66" }
35
- its( :config ) { should == 1 }
36
- its( :mask ) { should == 1 }
37
- its( :advertise ) { should == 0 }
38
- it_should_behave_like "any Openflow message with default transaction ID"
39
-
40
-
41
- describe "hw_addr" do
42
- it "should be a Trema::Mac object" do
43
- expect( PortMod.new(
32
+ end
33
+ its(:port_no) { should == 2 }
34
+ its('hw_addr.to_s') { should eq '11:22:33:44:55:66' }
35
+ its(:config) { should == 1 }
36
+ its(:mask) { should == 1 }
37
+ its(:advertise) { should == 0 }
38
+ it_should_behave_like 'any Openflow message with default transaction ID'
39
+
40
+
41
+ describe 'hw_addr' do
42
+ it 'should be a Trema::Mac object' do
43
+ expect(PortMod.new(
44
44
  :port_no => 2,
45
- :hw_addr => Mac::new( "11:22:33:44:55:66" ),
45
+ :hw_addr => Mac::new('11:22:33:44:55:66'),
46
46
  :config => 1,
47
47
  :mask => 1,
48
48
  :advertise => 0
49
- ).hw_addr.to_s ).to eq( "11:22:33:44:55:66" )
49
+ ).hw_addr.to_s).to eq('11:22:33:44:55:66')
50
50
  end
51
51
 
52
52
 
53
53
  it "should be a string('11:22:33:44:55')" do
54
- expect( PortMod.new(
54
+ expect(PortMod.new(
55
55
  :port_no => 2,
56
- :hw_addr => "11:22:33:44:55:66",
56
+ :hw_addr => '11:22:33:44:55:66',
57
57
  :config => 1,
58
58
  :mask => 1,
59
- :advertise => 0 ).hw_addr.to_s ).to eq( "11:22:33:44:55:66" )
59
+ :advertise => 0).hw_addr.to_s).to eq('11:22:33:44:55:66')
60
60
  end
61
61
 
62
62
 
63
- it "should be a number(281474976710655)" do
64
- expect( PortMod.new(
63
+ it 'should be a number(281474976710655)' do
64
+ expect(PortMod.new(
65
65
  :port_no => 2,
66
66
  :hw_addr => 281474976710655,
67
67
  :config => 1,
68
68
  :mask => 1,
69
- :advertise => 0 ).hw_addr.to_s ).to eq( "ff:ff:ff:ff:ff:ff" )
69
+ :advertise => 0).hw_addr.to_s).to eq('ff:ff:ff:ff:ff:ff')
70
70
  end
71
71
 
72
72
 
73
- it "should otherwise raise ArgumentError" do
74
- expect { PortMod.new(
73
+ it 'should otherwise raise ArgumentError' do
74
+ expect do PortMod.new(
75
75
  :port_no => 2,
76
- :hw_addr => Array.new( 1234 ),
76
+ :hw_addr => Array.new(1234),
77
77
  :config => 1,
78
78
  :mask => 1,
79
79
  :advertise => 0
80
80
  )
81
- }.to raise_error( ArgumentError )
81
+ end.to raise_error(ArgumentError)
82
82
  end
83
83
  end
84
84
  end
85
85
 
86
86
 
87
- describe PortMod, "new( MANDATORY OPTIONS MISSING )" do
88
- it "should raise ArgumentError" do
89
- expect { subject }.to raise_error( ArgumentError, "Port no, hw_addr, config, mask, advertise are mandatory options" )
87
+ describe PortMod, 'new( MANDATORY OPTIONS MISSING )' do
88
+ it 'should raise ArgumentError' do
89
+ expect { subject }.to raise_error(ArgumentError, 'Port no, hw_addr, config, mask, advertise are mandatory options')
90
90
  end
91
91
  end
92
92
 
@@ -16,12 +16,12 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
23
  describe Trema::PortStatusAdd do
24
- it_should_behave_like "port status message", :klass => Trema::PortStatusAdd
24
+ it_should_behave_like 'port status message', :klass => Trema::PortStatusAdd
25
25
  end
26
26
 
27
27
 
@@ -16,12 +16,12 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
23
  describe Trema::PortStatusDelete do
24
- it_should_behave_like "port status message", :klass => Trema::PortStatusDelete
24
+ it_should_behave_like 'port status message', :klass => Trema::PortStatusDelete
25
25
  end
26
26
 
27
27
 
@@ -16,19 +16,19 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
23
  describe Trema::PortStatusModify do
24
- it_should_behave_like "port status message", :klass => Trema::PortStatusModify
24
+ it_should_behave_like 'port status message', :klass => Trema::PortStatusModify
25
25
  end
26
26
 
27
27
 
28
28
  module Trema
29
29
  class PortStatusController < Controller
30
- def features_reply dpid, message
31
- message.ports.select( &:up? ).each do | each |
30
+ def features_reply(dpid, message)
31
+ message.ports.select(&:up?).each do | each |
32
32
  port_mod = PortMod.new(
33
33
  :port_no => each.number,
34
34
  :hw_addr => each.hw_addr,
@@ -43,21 +43,21 @@ module Trema
43
43
 
44
44
 
45
45
  describe Controller do
46
- context "when one port goes down" do
47
- it "should receive port_status (modify)" do
48
- network {
46
+ context 'when one port goes down' do
47
+ it 'should receive port_status (modify)' do
48
+ network do
49
49
  vswitch { datapath_id 0xabc }
50
- vhost "host"
51
- link "host", "0xabc"
52
- }.run( PortStatusController ) {
53
- controller( "PortStatusController" ).should_receive( :port_status ).with do | dpid, message |
54
- expect( dpid ).to eq( 0xabc )
55
- expect( message ).to be_an_instance_of( PortStatusModify )
50
+ vhost 'host'
51
+ link 'host', '0xabc'
52
+ end.run(PortStatusController) do
53
+ controller('PortStatusController').should_receive(:port_status).with do | dpid, message |
54
+ expect(dpid).to eq(0xabc)
55
+ expect(message).to be_an_instance_of(PortStatusModify)
56
56
  end
57
57
 
58
- controller( "PortStatusController" ).send_message 0xabc, FeaturesRequest.new
58
+ controller('PortStatusController').send_message 0xabc, FeaturesRequest.new
59
59
  sleep 2 # FIXME: wait to receive port_status
60
- }
60
+ end
61
61
  end
62
62
  end
63
63
  end
@@ -16,8 +16,8 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
23
  module Trema
@@ -16,38 +16,38 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
23
  describe Trema::Port do
24
- it "should have its port number" do
25
- port = Trema::Port.new( :number => 123 )
26
- expect( port.number ).to be( 123 )
24
+ it 'should have its port number' do
25
+ port = Trema::Port.new(:number => 123)
26
+ expect(port.number).to be(123)
27
27
  end
28
28
 
29
- it "should check the port up" do
30
- port = Trema::Port.new( :config => 0, :state => 0 )
31
- expect( port.up? ).to be_true
32
- expect( port.down? ).to be_false
29
+ it 'should check the port up' do
30
+ port = Trema::Port.new(:config => 0, :state => 0)
31
+ expect(port.up?).to be_true
32
+ expect(port.down?).to be_false
33
33
  end
34
34
 
35
- it "should check the port down(config=0,state=1)" do
36
- port = Trema::Port.new( :config => 0, :state => 1 )
37
- expect( port.up? ).to be_false
38
- expect( port.down? ).to be_true
35
+ it 'should check the port down(config=0,state=1)' do
36
+ port = Trema::Port.new(:config => 0, :state => 1)
37
+ expect(port.up?).to be_false
38
+ expect(port.down?).to be_true
39
39
  end
40
40
 
41
- it "should check the port down(config=1,state=0)" do
42
- port = Trema::Port.new( :config => 1, :state => 0 )
43
- expect( port.up? ).to be_false
44
- expect( port.down? ).to be_true
41
+ it 'should check the port down(config=1,state=0)' do
42
+ port = Trema::Port.new(:config => 1, :state => 0)
43
+ expect(port.up?).to be_false
44
+ expect(port.down?).to be_true
45
45
  end
46
46
 
47
- it "should check the port down(config=1,state=1)" do
48
- port = Trema::Port.new( :config => 1, :state => 1 )
49
- expect( port.up? ).to be_false
50
- expect( port.down? ).to be_true
47
+ it 'should check the port down(config=1,state=1)' do
48
+ port = Trema::Port.new(:config => 1, :state => 1)
49
+ expect(port.up?).to be_false
50
+ expect(port.down?).to be_true
51
51
  end
52
52
  end
53
53
 
@@ -16,46 +16,46 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema/process"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema/process'
21
21
 
22
22
 
23
23
  describe Trema::Process do
24
24
  before :each do
25
- @pid_file = mock( "PID file" )
25
+ @pid_file = mock('PID file')
26
26
  end
27
27
 
28
28
 
29
- it "should be instantiated from a PID file" do
30
- IO.should_receive( :read ).with( @pid_file ).and_return( "1234\n" )
31
- stat = mock( "stat", :uid => 0 )
32
- File.stub!( :stat ).with( @pid_file ).and_return( stat )
29
+ it 'should be instantiated from a PID file' do
30
+ IO.should_receive(:read).with(@pid_file).and_return("1234\n")
31
+ stat = mock('stat', :uid => 0)
32
+ File.stub!(:stat).with(@pid_file).and_return(stat)
33
33
 
34
- Trema::Process.read( @pid_file )
34
+ Trema::Process.read(@pid_file)
35
35
  end
36
36
 
37
37
 
38
- it "should be killed" do
39
- IO.stub!( :read ).with( @pid_file ).and_return( "1234\n" )
40
- stat = mock( "stat", :uid => 1000 )
41
- File.stub!( :stat ).with( @pid_file ).and_return( stat )
38
+ it 'should be killed' do
39
+ IO.stub!(:read).with(@pid_file).and_return("1234\n")
40
+ stat = mock('stat', :uid => 1000)
41
+ File.stub!(:stat).with(@pid_file).and_return(stat)
42
42
 
43
- process = Trema::Process.read( @pid_file )
44
- process.stub!( :` ).and_return( "ALIVE", "" )
45
- process.should_receive( :sh ).with( "kill 1234 2>/dev/null" )
43
+ process = Trema::Process.read(@pid_file)
44
+ process.stub!(:`).and_return('ALIVE', '')
45
+ process.should_receive(:sh).with('kill 1234 2>/dev/null')
46
46
 
47
47
  process.kill!
48
48
  end
49
49
 
50
50
 
51
- it "should be killed with sudo" do
52
- IO.stub!( :read ).with( @pid_file ).and_return( "1234\n" )
53
- stat = mock( "stat", :uid => 0 )
54
- File.stub!( :stat ).with( @pid_file ).and_return( stat )
51
+ it 'should be killed with sudo' do
52
+ IO.stub!(:read).with(@pid_file).and_return("1234\n")
53
+ stat = mock('stat', :uid => 0)
54
+ File.stub!(:stat).with(@pid_file).and_return(stat)
55
55
 
56
- process = Trema::Process.read( @pid_file )
57
- process.stub!( :` ).and_return( "ALIVE", "" )
58
- process.should_receive( :sh ).with( "sudo kill 1234 2>/dev/null" )
56
+ process = Trema::Process.read(@pid_file)
57
+ process.stub!(:`).and_return('ALIVE', '')
58
+ process.should_receive(:sh).with('sudo kill 1234 2>/dev/null')
59
59
 
60
60
  process.kill!
61
61
  end