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,7 +16,7 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/stats-helper"
19
+ require 'trema/stats-helper'
20
20
 
21
21
 
22
22
  module Trema
@@ -93,7 +93,7 @@ module Trema
93
93
  # @return [FlowStatsReply]
94
94
  # an object that encapsulates the OFPST_STATS_REPLY(OFPST_FLOW) OpenFlow message.
95
95
  #
96
- def initialize options
96
+ def initialize(options)
97
97
  super FIELDS, options
98
98
  end
99
99
  end
@@ -31,15 +31,15 @@ module Trema
31
31
  # @return [self] the object that holds the parsed key=value fields
32
32
  # as attributes.
33
33
  #
34
- def self.parse line
35
- flow = self.new
34
+ def self.parse(line)
35
+ flow = new
36
36
  # to simplify parsing
37
- line.sub!(/actions=.*,.*$/) { | match | match.gsub(/,/,'/') }
38
- line.strip.split( /[,\s]\s*/ ).each do | each |
39
- next unless /(.+)=(.+)/=~ each
37
+ line.sub!(/actions=.*,.*$/) { | match | match.gsub(/,/, '/') }
38
+ line.strip.split(/[,\s]\s*/).each do | each |
39
+ next unless /(.+)=(.+)/ =~ each
40
40
  name, value = $1, $2
41
41
  attr_reader name.to_sym
42
- if ( /\A\d+\Z/=~ value ) or ( /\A0x.+\Z/=~ value )
42
+ if (/\A\d+\Z/ =~ value) || (/\A0x.+\Z/ =~ value)
43
43
  flow.instance_eval "@#{ name }=#{ value }"
44
44
  else
45
45
  flow.instance_eval "@#{ name }='#{ value }'"
@@ -51,8 +51,8 @@ module Trema
51
51
 
52
52
  # @return [Boolean] whether a flow is a user registered flow or not.
53
53
  def users_flow?
54
- not ( ( @actions == "drop" and @priority == 0 ) or
55
- @actions == "CONTROLLER:65535" )
54
+ not ((@actions == 'drop' && @priority == 0) ||
55
+ @actions == 'CONTROLLER:65535')
56
56
  end
57
57
  end
58
58
  end
@@ -16,7 +16,7 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/openflow-switch"
19
+ require 'trema/openflow-switch'
20
20
 
21
21
 
22
22
  module Trema
@@ -43,7 +43,7 @@ module Trema
43
43
  #
44
44
  # @return [HardwareSwitch]
45
45
  #
46
- def initialize stanza
46
+ def initialize(stanza)
47
47
  stanza.validate
48
48
  @name = stanza.name
49
49
  @stanza = stanza
@@ -16,9 +16,9 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/cli"
20
- require "trema/phost"
21
- require "trema/network-component"
19
+ require 'trema/cli'
20
+ require 'trema/phost'
21
+ require 'trema/network-component'
22
22
 
23
23
 
24
24
  module Trema
@@ -49,10 +49,10 @@ module Trema
49
49
  #
50
50
  # @api public
51
51
  #
52
- def initialize stanza
52
+ def initialize(stanza)
53
53
  @stanza = stanza
54
- @phost = Phost.new( self )
55
- @cli = Cli.new( self )
54
+ @phost = Phost.new(self)
55
+ @cli = Cli.new(self)
56
56
  @index = Host.instances.size
57
57
  Host.add self
58
58
  end
@@ -68,7 +68,7 @@ module Trema
68
68
  #
69
69
  # @api public
70
70
  #
71
- def method_missing message, *args
71
+ def method_missing(message, *args)
72
72
  @stanza.__send__ :[], message
73
73
  end
74
74
 
@@ -84,7 +84,7 @@ module Trema
84
84
  # @api public
85
85
  #
86
86
  def ip
87
- stanza_ip = @stanza[ :ip ]
87
+ stanza_ip = @stanza[ :ip]
88
88
  if stanza_ip.nil?
89
89
  # FIXME: Find unused addresses
90
90
  "192.168.0.#{ @index + 1 }"
@@ -105,7 +105,7 @@ module Trema
105
105
  # @api public
106
106
  #
107
107
  def mac
108
- stanza_mac = @stanza[ :mac ]
108
+ stanza_mac = @stanza[ :mac]
109
109
  if stanza_mac.nil?
110
110
  "00:00:00:00:00:#{ format "%02x", @index + 1 }"
111
111
  else
@@ -125,9 +125,9 @@ module Trema
125
125
  # @api public
126
126
  #
127
127
  def netmask
128
- stanza_netmask = @stanza[ :netmask ]
128
+ stanza_netmask = @stanza[ :netmask]
129
129
  if stanza_netmask.nil?
130
- "255.255.255.255"
130
+ '255.255.255.255'
131
131
  else
132
132
  stanza_netmask
133
133
  end
@@ -147,7 +147,7 @@ module Trema
147
147
  def run!
148
148
  @phost.run!
149
149
  @cli.set_ip_and_mac_address
150
- @cli.enable_promisc if @stanza[ :promisc ]
150
+ @cli.enable_promisc if @stanza[ :promisc]
151
151
  self
152
152
  end
153
153
 
@@ -177,7 +177,7 @@ module Trema
177
177
  #
178
178
  # @api public
179
179
  #
180
- def add_arp_entry hosts
180
+ def add_arp_entry(hosts)
181
181
  hosts.each do | each |
182
182
  @cli.add_arp_entry each
183
183
  end
@@ -194,9 +194,9 @@ module Trema
194
194
  #
195
195
  # @api public
196
196
  #
197
- def send_packet dest, options = {}
198
- dest_host = if dest.is_a?( String )
199
- vhost( dest )
197
+ def send_packet(dest, options = {})
198
+ dest_host = if dest.is_a?(String)
199
+ vhost(dest)
200
200
  else
201
201
  dest
202
202
  end
@@ -212,14 +212,14 @@ module Trema
212
212
  # @return [Stat]
213
213
  # the object that represents the results of a particular stats type.
214
214
  #
215
- def stats type
215
+ def stats(type)
216
216
  case type
217
217
  when :tx
218
218
  @cli.tx_stats
219
219
  when :rx
220
220
  @cli.rx_stats
221
221
  else
222
- raise
222
+ fail
223
223
  end
224
224
  end
225
225
 
@@ -16,11 +16,11 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/network-component"
20
- require "trema/path"
19
+ require 'trema/network-component'
20
+ require 'trema/path'
21
21
 
22
- $LOAD_PATH.unshift File.join( Trema.vendor_ruby_ifconfig, "lib" )
23
- require "ifconfig"
22
+ $LOAD_PATH.unshift File.join(Trema.vendor_ruby_ifconfig, 'lib')
23
+ require 'ifconfig'
24
24
 
25
25
 
26
26
  module Trema
@@ -69,13 +69,13 @@ module Trema
69
69
  #
70
70
  # @return [Link]
71
71
  #
72
- def initialize stanza
72
+ def initialize(stanza)
73
73
  @link_id = Link.instances.size
74
74
  @stanza = stanza
75
75
  if real_eth?
76
76
  @name = real_eth
77
77
  @name_peer = nil
78
- @peers = @stanza.peers - [ real_eth ]
78
+ @peers = @stanza.peers - [real_eth]
79
79
  else
80
80
  @name = "trema#{ @link_id }-0"
81
81
  @name_peer = "trema#{ @link_id }-1"
@@ -153,16 +153,16 @@ module Trema
153
153
  def real_eth
154
154
  interfaces = IfconfigWrapper.new.parse.interfaces
155
155
  @stanza.peers.each do | each |
156
- return each if interfaces.include?( each )
156
+ return each if interfaces.include?(each)
157
157
  end
158
- raise
158
+ fail
159
159
  end
160
160
 
161
161
 
162
162
  def real_eth?
163
163
  interfaces = IfconfigWrapper.new.parse.interfaces
164
164
  @stanza.peers.each do | each |
165
- return true if interfaces.include?( each )
165
+ return true if interfaces.include?(each)
166
166
  end
167
167
  false
168
168
  end
@@ -15,16 +15,12 @@
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
  #
17
17
 
18
-
19
- require "rubygems"
20
- require "pio"
21
-
18
+ require 'pio'
22
19
 
23
20
  module Trema
24
21
  Mac = Pio::Mac
25
22
  end
26
23
 
27
-
28
24
  ### Local variables:
29
25
  ### mode: Ruby
30
26
  ### coding: utf-8-unix
@@ -569,7 +569,6 @@ match_init( int argc, VALUE *argv, VALUE self ) {
569
569
  */
570
570
  void
571
571
  Init_match() {
572
- rb_require( "rubygems" );
573
572
  rb_require( "pio" );
574
573
  mTrema = rb_eval_string( "Trema" );
575
574
  cMatch = rb_define_class_under( mTrema, "Match", rb_cObject );
@@ -16,9 +16,9 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/monkey-patch/integer/base-conversions"
20
- require "trema/monkey-patch/integer/ranges"
21
- require "trema/monkey-patch/integer/validators"
19
+ require 'trema/monkey-patch/integer/base-conversions'
20
+ require 'trema/monkey-patch/integer/ranges'
21
+ require 'trema/monkey-patch/integer/validators'
22
22
 
23
23
 
24
24
  class Integer
@@ -20,7 +20,7 @@ module MonkeyPatch
20
20
  module Integer
21
21
  module BaseConversions
22
22
  def to_hex
23
- "%#x" % self
23
+ '%#x' % self
24
24
  end
25
25
  end
26
26
  end
@@ -34,8 +34,8 @@ module MonkeyPatch
34
34
  end
35
35
 
36
36
 
37
- def within_range? nbit
38
- ( 0 <= self ) and ( self < 2 ** nbit )
37
+ def within_range?(nbit)
38
+ (0 <= self) && (self < 2**nbit)
39
39
  end
40
40
  end
41
41
  end
@@ -22,7 +22,7 @@ module MonkeyPatch
22
22
  # nw_tos (IP ToS) value consists of 8 bits, of which only the 6 high-order
23
23
  # bits belong to DSCP, the 2 low-order bits must be zero.
24
24
  def valid_nw_tos?
25
- unsigned_8bit? and self % 4 == 0
25
+ unsigned_8bit? && self % 4 == 0
26
26
  end
27
27
  end
28
28
  end
@@ -16,8 +16,8 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/monkey-patch/module/class-method"
20
- require "trema/monkey-patch/module/deprecation"
19
+ require 'trema/monkey-patch/module/class-method'
20
+ require 'trema/monkey-patch/module/deprecation'
21
21
 
22
22
 
23
23
  class Module
@@ -19,8 +19,8 @@
19
19
  module MonkeyPatch
20
20
  module Module
21
21
  module ClassMethod
22
- def define_class_method name, &block
23
- self.extend ::Module.new {
22
+ def define_class_method(name, &block)
23
+ extend ::Module.new {
24
24
  define_method name.to_s do
25
25
  block.call
26
26
  end
@@ -19,7 +19,7 @@
19
19
  module MonkeyPatch
20
20
  module Module
21
21
  module Deprecation
22
- def deprecate method_pairs
22
+ def deprecate(method_pairs)
23
23
  method_pairs.each do | old_method, new_method |
24
24
  define_method old_method do | *args, &block |
25
25
  $stderr.puts "Warning: #{ old_method }() is deprecated. Use #{ new_method }()."
@@ -16,7 +16,7 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/monkey-patch/string/inflectors"
19
+ require 'trema/monkey-patch/string/inflectors'
20
20
 
21
21
 
22
22
  class String
@@ -20,23 +20,23 @@ module MonkeyPatch
20
20
  module String
21
21
  module Inflectors
22
22
  def camelize
23
- self.split( /[^a-z0-9]/i ).map do | each |
23
+ split(/[^a-z0-9]/i).map do | each |
24
24
  each.capitalize
25
25
  end.join
26
26
  end
27
27
 
28
28
 
29
29
  def demodulize
30
- self.gsub /^.*::/, ''
30
+ gsub(/^.*::/, '')
31
31
  end
32
32
 
33
33
 
34
34
  def underscore
35
- word = self.dup
36
- word.gsub! /::/, '/'
37
- word.gsub! /([A-Z]+)([A-Z][a-z])/,'\1_\2'
38
- word.gsub! /([a-z\d])([A-Z])/,'\1_\2'
39
- word.tr! "-", "_"
35
+ word = dup
36
+ word.gsub!(/::/, '/')
37
+ word.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
38
+ word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
39
+ word.tr! '-', '_'
40
40
  word.downcase!
41
41
  word
42
42
  end
@@ -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
@@ -47,7 +47,7 @@ module Trema
47
47
  #
48
48
  # @api public
49
49
  #
50
- def initialize stanza
50
+ def initialize(stanza)
51
51
  @stanza = stanza
52
52
  Netns.add self
53
53
  end
@@ -63,7 +63,7 @@ module Trema
63
63
  #
64
64
  # @api public
65
65
  #
66
- def method_missing message, *args
66
+ def method_missing(message, *args)
67
67
  @stanza.__send__ :[], message
68
68
  end
69
69
 
@@ -79,7 +79,7 @@ module Trema
79
79
  # @api public
80
80
  #
81
81
  def netmask
82
- @stanza[ :netmask ] || "255.255.255.255"
82
+ @stanza[ :netmask] || '255.255.255.255'
83
83
  end
84
84
 
85
85
 
@@ -97,8 +97,8 @@ module Trema
97
97
  sh "sudo ip netns add #{ name }"
98
98
  sh "sudo ip link set dev #{ interface } netns #{ name }"
99
99
  sh "sudo ip netns exec #{ name } ifconfig lo 127.0.0.1"
100
- sh "sudo ip netns exec #{ name } ifconfig #{ interface } #{ @stanza[ :ip ] } netmask #{ netmask }" if @stanza[ :ip ]
101
- sh "sudo ip netns exec #{ name } route add -net #{ @stanza[ :net ] } gw #{ @stanza[ :gw ] }" if @stanza[ :net ] and @stanza[ :gw ]
100
+ sh "sudo ip netns exec #{ name } ifconfig #{ interface } #{ @stanza[ :ip] } netmask #{ netmask }" if @stanza[ :ip]
101
+ sh "sudo ip netns exec #{ name } route add -net #{ @stanza[ :net] } gw #{ @stanza[ :gw] }" if @stanza[ :net] && @stanza[ :gw]
102
102
  self
103
103
  end
104
104
 
@@ -16,7 +16,7 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/ordered-hash"
19
+ require 'trema/ordered-hash'
20
20
 
21
21
 
22
22
  module Trema
@@ -57,7 +57,7 @@ module Trema
57
57
  #
58
58
  # @api public
59
59
  #
60
- def self.inherited subclass
60
+ def self.inherited(subclass)
61
61
  subclass.instances ||= OrderedHash.new
62
62
  end
63
63
 
@@ -80,7 +80,7 @@ module Trema
80
80
  #
81
81
  # @api public
82
82
  #
83
- def self.each &block
83
+ def self.each(&block)
84
84
  instances.values.each do | each |
85
85
  block.call each
86
86
  end
@@ -102,8 +102,8 @@ module Trema
102
102
  #
103
103
  # @api public
104
104
  #
105
- def self.[] name
106
- instances[ name ]
105
+ def self.[](name)
106
+ instances[ name]
107
107
  end
108
108
 
109
109
 
@@ -137,8 +137,8 @@ module Trema
137
137
  #
138
138
  # @api public
139
139
  #
140
- def self.add object
141
- instances[ object.name ] = object
140
+ def self.add(object)
141
+ instances[ object.name] = object
142
142
  end
143
143
  end
144
144
  end