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
@@ -18,45 +18,45 @@
18
18
  #
19
19
 
20
20
 
21
- require "trema/executables"
22
- require "trema/flow"
21
+ require 'trema/executables'
22
+ require 'trema/flow'
23
23
 
24
24
 
25
25
  module Trema
26
26
  class Ofctl
27
- def add_flow switch, options
28
- actions = options[ :actions ]
27
+ def add_flow(switch, options)
28
+ actions = options[ :actions]
29
29
  options.delete :actions
30
30
  option_string = options.collect do | k, v |
31
31
  "#{ k }=#{ v }"
32
- end.join( "," )
32
+ end.join(',')
33
33
  sh "sudo #{ Executables.ovs_ofctl } add-flow #{ switch.network_device } #{ option_string },actions=#{ actions } 2>/dev/null"
34
34
  end
35
35
 
36
36
 
37
- def flows switch
38
- dump_flows( switch ).split( "\n" )[ 1..-1 ].collect do | each |
39
- Trema::Flow.parse( each )
37
+ def flows(switch)
38
+ dump_flows(switch).split("\n")[ 1..-1].collect do | each |
39
+ Trema::Flow.parse(each)
40
40
  end.compact
41
41
  end
42
42
 
43
43
 
44
- def users_flows switch
45
- flows( switch ).select( &:users_flow? )
44
+ def users_flows(switch)
45
+ flows(switch).select(&:users_flow?)
46
46
  end
47
47
 
48
48
 
49
- def dump_flows switch
49
+ def dump_flows(switch)
50
50
  `sudo #{ Executables.ovs_ofctl } dump-flows #{ switch.network_device } 2>&1`
51
51
  end
52
52
 
53
53
 
54
- def bring_port_up switch, port_number
54
+ def bring_port_up(switch, port_number)
55
55
  `sudo #{ Executables.ovs_ofctl } mod-port #{ switch.network_device } #{ port_number } up 2>&1`
56
56
  end
57
57
 
58
58
 
59
- def bring_port_down switch, port_number
59
+ def bring_port_down(switch, port_number)
60
60
  `sudo #{ Executables.ovs_ofctl } mod-port #{ switch.network_device } #{ port_number } down 2>&1`
61
61
  end
62
62
  end
@@ -16,12 +16,12 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/default_openflow_channel_port"
20
- require "trema/daemon"
21
- require "trema/executables"
22
- require "trema/hardware-switch"
23
- require "trema/ofctl"
24
- require "trema/path"
19
+ require 'trema/default_openflow_channel_port'
20
+ require 'trema/daemon'
21
+ require 'trema/executables'
22
+ require 'trema/hardware-switch'
23
+ require 'trema/ofctl'
24
+ require 'trema/path'
25
25
 
26
26
 
27
27
  module Trema
@@ -44,7 +44,7 @@ module Trema
44
44
  #
45
45
  # @return [OpenVswitch]
46
46
  #
47
- def initialize stanza, port = DEFAULT_OPENFLOW_CHANNEL_PORT
47
+ def initialize(stanza, port = DEFAULT_OPENFLOW_CHANNEL_PORT)
48
48
  super stanza
49
49
  @port = port
50
50
  @interfaces = []
@@ -59,7 +59,7 @@ module Trema
59
59
  #
60
60
  # @return [Array]
61
61
  #
62
- def << interface
62
+ def <<(interface)
63
63
  @interfaces << interface
64
64
  restart!
65
65
  @interfaces
@@ -89,16 +89,16 @@ module Trema
89
89
  # @return [Array]
90
90
  #
91
91
  def flows
92
- Ofctl.new.users_flows( self )
92
+ Ofctl.new.users_flows(self)
93
93
  end
94
94
 
95
95
 
96
- def bring_port_up port_number
96
+ def bring_port_up(port_number)
97
97
  Ofctl.new.bring_port_up self, port_number
98
98
  end
99
99
 
100
100
 
101
- def bring_port_down port_number
101
+ def bring_port_down(port_number)
102
102
  Ofctl.new.bring_port_down self, port_number
103
103
  end
104
104
 
@@ -114,24 +114,24 @@ module Trema
114
114
 
115
115
 
116
116
  def options
117
- default_options.join( " " ) + " netdev@#{ network_device } tcp:#{ ip }:#{ @port }"
117
+ default_options.join(' ') + " netdev@#{ network_device } tcp:#{ ip }:#{ @port }"
118
118
  end
119
119
 
120
120
 
121
121
  def default_options
122
122
  [
123
- "--detach",
124
- "--out-of-band",
125
- "--fail=closed",
126
- "--inactivity-probe=180",
127
- "--rate-limit=40000",
128
- "--burst-limit=20000",
129
- "--pidfile=#{ pid_file }",
130
- "--verbose=ANY:file:dbg",
131
- "--verbose=ANY:console:err",
132
- "--log-file=#{ log_file }",
133
- "--datapath-id=#{ dpid_long }",
134
- "--unixctl=#{ unixctl }",
123
+ '--detach',
124
+ '--out-of-band',
125
+ '--fail=closed',
126
+ '--inactivity-probe=180',
127
+ '--rate-limit=40000',
128
+ '--burst-limit=20000',
129
+ "--pidfile=#{ pid_file }",
130
+ '--verbose=ANY:file:dbg',
131
+ '--verbose=ANY:console:err',
132
+ "--log-file=#{ log_file }",
133
+ "--datapath-id=#{ dpid_long }",
134
+ "--unixctl=#{ unixctl }"
135
135
  ] + ports_option
136
136
  end
137
137
 
@@ -142,7 +142,7 @@ module Trema
142
142
 
143
143
 
144
144
  def ports_option
145
- @interfaces.empty? ? [] : [ "--ports=#{ @interfaces.join( "," ) }" ]
145
+ @interfaces.empty? ? [] : ["--ports=#{ @interfaces.join(",") }"]
146
146
  end
147
147
 
148
148
 
@@ -16,7 +16,7 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/network-component"
19
+ require 'trema/network-component'
20
20
 
21
21
 
22
22
  module Trema
@@ -32,14 +32,14 @@ module Trema
32
32
  end
33
33
 
34
34
 
35
- def [] key
36
- @content[ key ]
35
+ def [](key)
36
+ @content[ key]
37
37
  end
38
38
 
39
39
 
40
- def []= key, value
41
- @content[ key ] = value
42
- unless @keys.include?( key )
40
+ def []=(key, value)
41
+ @content[ key] = value
42
+ unless @keys.include?(key)
43
43
  @keys << key
44
44
  end
45
45
  end
@@ -47,7 +47,7 @@ module Trema
47
47
 
48
48
  def values
49
49
  @keys.map do | each |
50
- @content[ each ]
50
+ @content[ each]
51
51
  end
52
52
  end
53
53
 
@@ -59,9 +59,9 @@ module Trema
59
59
  end
60
60
 
61
61
 
62
- def each &block
62
+ def each(&block)
63
63
  @keys.each do | each |
64
- block.call each, @content[ each ]
64
+ block.call each, @content[ each]
65
65
  end
66
66
  end
67
67
  end
@@ -1228,7 +1228,6 @@ packet_in_udp_checksum( VALUE self ) {
1228
1228
  */
1229
1229
  void
1230
1230
  Init_packet_in() {
1231
- rb_require( "rubygems" );
1232
1231
  rb_require( "pio" );
1233
1232
 
1234
1233
  mTrema = rb_eval_string( "Trema" );
@@ -27,7 +27,7 @@ module Trema
27
27
 
28
28
  # Add queue to list.
29
29
  # @param [PacketQueue] queue a {PacketQueue} instance.
30
- def self.append queue
30
+ def self.append(queue)
31
31
  @queues ||= []
32
32
  @queues << queue unless @queues.include?(queue)
33
33
  end
@@ -42,7 +42,7 @@ module Trema
42
42
 
43
43
  # Iterate over each {PacketQueue} item.
44
44
  # @return [Array] a list of {PacketQueue} items.
45
- def self.each &block
45
+ def self.each(&block)
46
46
  @queues.each do | each |
47
47
  block.call each
48
48
  end
@@ -80,16 +80,16 @@ module Trema
80
80
  # @option options [Symbol] :len
81
81
  # queue description's length in bytes.
82
82
  #
83
- def initialize options
84
- @queue_id = options[ :queue_id ]
85
- @len = options[ :len ]
83
+ def initialize(options)
84
+ @queue_id = options[ :queue_id]
85
+ @len = options[ :len]
86
86
  @properties = []
87
87
  end
88
88
 
89
89
 
90
90
  # @param [MinRateQueue] queue
91
91
  # a property queue {MinRateQueue} object to append to the properties list.
92
- def append queue
92
+ def append(queue)
93
93
  @properties << queue
94
94
  end
95
95
 
@@ -127,7 +127,7 @@ module Trema
127
127
  # property queue id.
128
128
  # @param [Number] len
129
129
  # length in bytes of the property queue.
130
- def initialize property, len
130
+ def initialize(property, len)
131
131
  @property = property
132
132
  @len = len
133
133
  end
@@ -157,7 +157,7 @@ module Trema
157
157
  # the rate value of the mimimum rate queue.
158
158
  # @param [PacketQueue] packet_queue
159
159
  # A {PacketQueue} instance to use to save the minimum rate queue.
160
- def initialize property, len, rate, packet_queue
160
+ def initialize(property, len, rate, packet_queue)
161
161
  super property, len
162
162
  @rate = rate
163
163
  packet_queue.append self
@@ -16,8 +16,8 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/executables"
20
- require "trema/network-component"
19
+ require 'trema/executables'
20
+ require 'trema/network-component'
21
21
 
22
22
 
23
23
  module Trema
@@ -35,7 +35,7 @@ module Trema
35
35
  #
36
36
  # @api public
37
37
  #
38
- def initialize queues
38
+ def initialize(queues)
39
39
  check_mandatory_options queues
40
40
  @queues = queues
41
41
  PacketinFilter.add self
@@ -53,7 +53,7 @@ module Trema
53
53
  # @api public
54
54
  #
55
55
  def name
56
- "packet-in filter"
56
+ 'packet-in filter'
57
57
  end
58
58
 
59
59
 
@@ -84,9 +84,9 @@ module Trema
84
84
  #
85
85
  # @api private
86
86
  #
87
- def check_mandatory_options queues
88
- [ :lldp, :packet_in ].each do | each |
89
- raise ":#{ each } is a mandatory option" if queues[ each ].nil?
87
+ def check_mandatory_options(queues)
88
+ [:lldp, :packet_in].each do | each |
89
+ fail ":#{ each } is a mandatory option" if queues[ each].nil?
90
90
  end
91
91
  end
92
92
 
@@ -99,7 +99,7 @@ module Trema
99
99
  # @api private
100
100
  #
101
101
  def lldp_queue
102
- "lldp::#{ @queues[ :lldp ] }"
102
+ "lldp::#{ @queues[ :lldp] }"
103
103
  end
104
104
 
105
105
 
@@ -111,7 +111,7 @@ module Trema
111
111
  # @api private
112
112
  #
113
113
  def packetin_queue
114
- "packet_in::#{ @queues[ :packet_in ] }"
114
+ "packet_in::#{ @queues[ :packet_in] }"
115
115
  end
116
116
  end
117
117
  end
@@ -16,11 +16,11 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/monkey-patch/module"
19
+ require 'trema/monkey-patch/module'
20
20
 
21
21
 
22
22
  module Trema
23
- HOME = File.expand_path( File.join( File.dirname( __FILE__ ), "..", ".." ) )
23
+ HOME = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
24
24
 
25
25
 
26
26
  class << self
@@ -30,10 +30,10 @@ module Trema
30
30
 
31
31
 
32
32
  def tmp
33
- if ENV.key?( "TREMA_TMP" )
34
- File.expand_path ENV[ "TREMA_TMP" ]
33
+ if ENV.key?('TREMA_TMP')
34
+ File.expand_path ENV[ 'TREMA_TMP']
35
35
  else
36
- File.join home, "tmp"
36
+ File.join home, 'tmp'
37
37
  end
38
38
  end
39
39
 
@@ -43,38 +43,38 @@ module Trema
43
43
  ############################################################################
44
44
 
45
45
 
46
- def file base, path, name = nil
47
- define_class_method( name || File.basename( path ).gsub( ".", "_" ) ) do
48
- File.join __send__( base ), path
46
+ def file(base, path, name = nil)
47
+ define_class_method(name || File.basename(path).gsub('.', '_')) do
48
+ File.join __send__(base), path
49
49
  end
50
50
  end
51
- alias :dir :file
51
+ alias_method :dir, :file
52
52
  end
53
53
 
54
54
 
55
- dir :home, "objects"
56
- dir :home, "ruby"
57
- dir :home, "src/lib", :include
58
- dir :home, "vendor"
59
- dir :objects, "cmockery"
60
- dir :objects, "lib"
61
- dir :objects, "oflops"
62
- dir :objects, "openflow"
63
- dir :objects, "openvswitch"
64
- dir :objects, "phost"
65
- dir :tmp, "log"
66
- dir :tmp, "pid"
67
- dir :tmp, "sock"
68
- dir :vendor, "cmockery-20110428", :vendor_cmockery
69
- dir :vendor, "oflops-0.03.trema1", :vendor_oflops
70
- dir :vendor, "openflow-1.0.0", :vendor_openflow
71
- dir :vendor, "openflow.git", :vendor_openflow_git
72
- dir :vendor, "openvswitch-1.2.2.trema1", :vendor_openvswitch
73
- dir :vendor, "phost", :vendor_phost
74
- dir :vendor, "ruby-ifconfig-1.2", :vendor_ruby_ifconfig
75
- file :cmockery, "include/google/cmockery.h"
76
- file :cmockery, "lib/libcmockery.a"
77
- file :openflow, "openflow.h"
55
+ dir :home, 'objects'
56
+ dir :home, 'ruby'
57
+ dir :home, 'src/lib', :include
58
+ dir :home, 'vendor'
59
+ dir :objects, 'cmockery'
60
+ dir :objects, 'lib'
61
+ dir :objects, 'oflops'
62
+ dir :objects, 'openflow'
63
+ dir :objects, 'openvswitch'
64
+ dir :objects, 'phost'
65
+ dir :tmp, 'log'
66
+ dir :tmp, 'pid'
67
+ dir :tmp, 'sock'
68
+ dir :vendor, 'cmockery-20110428', :vendor_cmockery
69
+ dir :vendor, 'oflops-0.03.trema1', :vendor_oflops
70
+ dir :vendor, 'openflow-1.0.0', :vendor_openflow
71
+ dir :vendor, 'openflow.git', :vendor_openflow_git
72
+ dir :vendor, 'openvswitch-1.2.2.trema1', :vendor_openvswitch
73
+ dir :vendor, 'phost', :vendor_phost
74
+ dir :vendor, 'ruby-ifconfig-1.2', :vendor_ruby_ifconfig
75
+ file :cmockery, 'include/google/cmockery.h'
76
+ file :cmockery, 'lib/libcmockery.a'
77
+ file :openflow, 'openflow.h'
78
78
  end
79
79
 
80
80
 
@@ -18,8 +18,8 @@
18
18
  #
19
19
 
20
20
 
21
- require "trema/daemon"
22
- require "trema/executables"
21
+ require 'trema/daemon'
22
+ require 'trema/executables'
23
23
 
24
24
 
25
25
  module Trema
@@ -38,7 +38,7 @@ module Trema
38
38
  #
39
39
  # Creates a new instance of Phost for each virtual host.
40
40
  #
41
- def initialize host
41
+ def initialize(host)
42
42
  @host = host
43
43
  end
44
44
 
@@ -49,7 +49,7 @@ module Trema
49
49
  # @return [String] the virtual host's interface name.
50
50
  #
51
51
  def interface
52
- raise "The link(s) for vhost '#{ name }' is not defined." if @host.interface.nil?
52
+ fail "The link(s) for vhost '#{ name }' is not defined." if @host.interface.nil?
53
53
  @host.interface
54
54
  end
55
55
 
@@ -58,7 +58,7 @@ module Trema
58
58
  # @return [Boolean] whether phost is running or not.
59
59
  #
60
60
  def running?
61
- not @host.interface.nil? and super
61
+ not @host.interface.nil? && super
62
62
  end
63
63
 
64
64