trema 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
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