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,9 +16,9 @@
16
16
  #
17
17
 
18
18
 
19
- require "fileutils"
20
- require "trema/monkey-patch/string"
21
- require "trema/process"
19
+ require 'fileutils'
20
+ require 'trema/monkey-patch/string'
21
+ require 'trema/process'
22
22
 
23
23
 
24
24
  module Trema
@@ -29,12 +29,12 @@ module Trema
29
29
  end
30
30
 
31
31
 
32
- def log_file &block
32
+ def log_file(&block)
33
33
  class_variable_set :@@log_file, block
34
34
  end
35
35
 
36
36
 
37
- def command &block
37
+ def command(&block)
38
38
  class_variable_set :@@command, block
39
39
  end
40
40
 
@@ -44,13 +44,13 @@ module Trema
44
44
  end
45
45
 
46
46
 
47
- def daemon_id method_id
47
+ def daemon_id(method_id)
48
48
  class_variable_set :@@daemon_id, method_id
49
49
  end
50
50
  end
51
51
 
52
52
 
53
- def self.included base
53
+ def self.included(base)
54
54
  base.class_eval do
55
55
  class_variable_set :@@singleton_daemon, false
56
56
  class_variable_set :@@log_file, nil
@@ -63,7 +63,7 @@ module Trema
63
63
 
64
64
 
65
65
  def run
66
- raise "'#{ name }' is already running!" if running?
66
+ fail "'#{ name }' is already running!" if running?
67
67
  run!
68
68
  end
69
69
 
@@ -71,12 +71,12 @@ module Trema
71
71
  def run!
72
72
  FileUtils.rm_f log_file if log_file
73
73
  command_block = self.class.class_eval do
74
- class_variable_get( :@@command )
74
+ class_variable_get(:@@command)
75
75
  end
76
76
  if command_block
77
- sh command_block.call( self )
77
+ sh command_block.call(self)
78
78
  else
79
- sh self.__send__( :command )
79
+ sh __send__(:command)
80
80
  end
81
81
  wait_until_up
82
82
  end
@@ -91,7 +91,7 @@ module Trema
91
91
  # @return [undefined]
92
92
  #
93
93
  def shutdown
94
- raise "'#{ name }' is not running!" if not running?
94
+ fail "'#{ name }' is not running!" unless running?
95
95
  shutdown!
96
96
  end
97
97
 
@@ -105,7 +105,7 @@ module Trema
105
105
  # @return [undefined]
106
106
  #
107
107
  def shutdown!
108
- Trema::Process.read( pid_file, name ).kill!
108
+ Trema::Process.read(pid_file, name).kill!
109
109
  end
110
110
 
111
111
 
@@ -118,7 +118,7 @@ module Trema
118
118
  # @return [undefined]
119
119
  #
120
120
  def restart!
121
- return if not running?
121
+ return unless running?
122
122
  shutdown!
123
123
  sleep 1
124
124
  run!
@@ -147,30 +147,30 @@ module Trema
147
147
 
148
148
  def log_file
149
149
  log_file_block = self.class.class_eval do
150
- class_variable_get( :@@log_file )
150
+ class_variable_get(:@@log_file)
151
151
  end
152
152
  return nil if log_file_block.nil?
153
- name = log_file_block.call( self )
153
+ name = log_file_block.call(self)
154
154
  File.join Trema.log, name
155
155
  end
156
156
 
157
157
 
158
158
  def daemon_id
159
159
  m = self.class.class_eval do
160
- class_variable_get( :@@daemon_id ) || :name
160
+ class_variable_get(:@@daemon_id) || :name
161
161
  end
162
- self.__send__ m
162
+ __send__ m
163
163
  end
164
164
 
165
165
 
166
166
  def wait_until_up
167
167
  wait = self.class.class_eval do
168
- class_variable_get( :@@wait_until_up )
168
+ class_variable_get(:@@wait_until_up)
169
169
  end
170
- return if not wait
170
+ return unless wait
171
171
  loop do
172
172
  sleep 0.1
173
- break if FileTest.exists?( pid_file )
173
+ break if FileTest.exists?(pid_file)
174
174
  end
175
175
  end
176
176
  end
@@ -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
@@ -61,7 +61,7 @@ module Trema
61
61
  # @return [DescStatsReply]
62
62
  # an object that encapsulates the OFPST_STATS_REPLY(OFPST_DESC) OpenFlow message.
63
63
  #
64
- def initialize options
64
+ def initialize(options)
65
65
  super FIELDS, options
66
66
  end
67
67
  end
@@ -18,11 +18,11 @@
18
18
  #
19
19
 
20
20
 
21
- require "trema/dsl/configuration"
22
- require "trema/dsl/parser"
23
- require "trema/dsl/runner"
24
- require "trema/dsl/syntax"
25
- require "trema/path"
21
+ require 'trema/dsl/configuration'
22
+ require 'trema/dsl/parser'
23
+ require 'trema/dsl/runner'
24
+ require 'trema/dsl/syntax'
25
+ require 'trema/path'
26
26
 
27
27
 
28
28
  ### Local variables:
@@ -16,13 +16,13 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/default_openflow_channel_port"
20
- require "trema/app"
21
- require "trema/host"
22
- require "trema/link"
23
- require "trema/openflow-switch"
24
- require "trema/packetin-filter"
25
- require "trema/switch-manager"
19
+ require 'trema/default_openflow_channel_port'
20
+ require 'trema/app'
21
+ require 'trema/host'
22
+ require 'trema/link'
23
+ require 'trema/openflow-switch'
24
+ require 'trema/packetin-filter'
25
+ require 'trema/switch-manager'
26
26
 
27
27
 
28
28
  module Trema
@@ -16,21 +16,21 @@
16
16
  #
17
17
 
18
18
 
19
- require "fileutils"
20
- require "trema/dsl/configuration"
21
- require "trema/dsl/syntax"
22
- require "trema/path"
19
+ require 'fileutils'
20
+ require 'trema/dsl/configuration'
21
+ require 'trema/dsl/syntax'
22
+ require 'trema/path'
23
23
 
24
24
 
25
25
  module Trema
26
26
  module DSL
27
27
  class Context
28
- PATH = File.join( Trema.tmp, ".context" )
28
+ PATH = File.join(Trema.tmp, '.context')
29
29
 
30
30
 
31
31
  def self.load_current
32
- if FileTest.exists?( PATH )
33
- Marshal.load( IO.read PATH )
32
+ if FileTest.exists?(PATH)
33
+ Marshal.load(IO.read PATH)
34
34
  else
35
35
  Configuration.new
36
36
  end
@@ -38,7 +38,7 @@ module Trema
38
38
 
39
39
 
40
40
 
41
- def initialize config
41
+ def initialize(config)
42
42
  @config = config
43
43
  end
44
44
 
@@ -52,8 +52,8 @@ module Trema
52
52
  # @return [Configuration]
53
53
  #
54
54
  def dump
55
- File.open( PATH, "w" ) do | f |
56
- f.print Marshal.dump( @config )
55
+ File.open(PATH, 'w') do | f |
56
+ f.print Marshal.dump(@config)
57
57
  end
58
58
  @config
59
59
  end
@@ -18,18 +18,18 @@
18
18
  #
19
19
 
20
20
 
21
- require "trema/dsl/switch"
21
+ require 'trema/dsl/switch'
22
22
 
23
23
 
24
24
  module Trema
25
25
  module DSL
26
26
  class CustomSwitch < Switch
27
- def initialize name = nil
27
+ def initialize(name = nil)
28
28
  super name
29
29
  end
30
30
 
31
31
 
32
- def path filepath
32
+ def path(filepath)
33
33
  @path = filepath
34
34
  end
35
35
  end
@@ -24,8 +24,8 @@ module Trema
24
24
  attr_reader :peers
25
25
 
26
26
 
27
- def initialize peer0, peer1
28
- @peers = [ peer0, peer1 ]
27
+ def initialize(peer0, peer1)
28
+ @peers = [peer0, peer1]
29
29
  end
30
30
  end
31
31
  end
@@ -16,8 +16,8 @@
16
16
  #
17
17
 
18
18
 
19
- require "trema/dsl/stanza"
20
- require "trema/dsl/syntax-error"
19
+ require 'trema/dsl/stanza'
20
+ require 'trema/dsl/syntax-error'
21
21
 
22
22
 
23
23
  module Trema
@@ -36,7 +36,7 @@ module Trema
36
36
  #
37
37
  # @api public
38
38
  #
39
- def ip str
39
+ def ip(str)
40
40
  @ip = str
41
41
  if @name.nil?
42
42
  @name = @ip
@@ -54,17 +54,17 @@ module Trema
54
54
  #
55
55
  # @api public
56
56
  #
57
- def netmask str
57
+ def netmask(str)
58
58
  @netmask = str
59
59
  end
60
60
 
61
61
 
62
- def route options
63
- if options[ :net ].nil? or options[ :gw ].nil?
64
- raise ":net and :gw option is a mandatory"
62
+ def route(options)
63
+ if options[ :net].nil? || options[ :gw].nil?
64
+ fail ':net and :gw option is a mandatory'
65
65
  end
66
- @net = options[ :net ]
67
- @gw = options[ :gw ]
66
+ @net = options[ :net]
67
+ @gw = options[ :gw]
68
68
  end
69
69
  end
70
70
  end
@@ -18,23 +18,23 @@
18
18
  #
19
19
 
20
20
 
21
- require "trema/dsl/context"
22
- require "trema/dsl/syntax"
21
+ require 'trema/dsl/context'
22
+ require 'trema/dsl/syntax'
23
23
 
24
24
 
25
25
  module Trema
26
26
  module DSL
27
27
  class Parser
28
- def parse file_name
28
+ def parse(file_name)
29
29
  configure do | config |
30
- Syntax.new( config ).instance_eval IO.read( file_name ), file_name
30
+ Syntax.new(config).instance_eval IO.read(file_name), file_name
31
31
  end
32
32
  end
33
33
 
34
34
 
35
- def eval &block
35
+ def eval(&block)
36
36
  configure do | config |
37
- Syntax.new( config ).instance_eval &block
37
+ Syntax.new(config).instance_eval(&block)
38
38
  end
39
39
  end
40
40
 
@@ -44,19 +44,19 @@ module Trema
44
44
  ################################################################################
45
45
 
46
46
 
47
- def configure &block
47
+ def configure(&block)
48
48
  config = Configuration.new
49
49
  block.call config
50
50
  Trema::Link.each do | each |
51
51
  peers = each.peers
52
- config.hosts[ peers[ 0 ] ].interface = each.name if config.hosts[ peers[ 0 ] ]
53
- config.hosts[ peers[ 1 ] ].interface = each.name_peer if config.hosts[ peers[ 1 ] ]
54
- config.netnss[ peers[ 0 ] ].interface = each.name if config.netnss[ peers[ 0 ] ]
55
- config.netnss[ peers[ 1 ] ].interface = each.name_peer if config.netnss[ peers[ 1 ] ]
56
- config.switches[ peers[ 0 ] ] << each.name if config.switches[ peers[ 0 ] ]
57
- config.switches[ peers[ 1 ] ] << each.name_peer if config.switches[ peers[ 1 ] ]
52
+ config.hosts[ peers[ 0]].interface = each.name if config.hosts[ peers[ 0]]
53
+ config.hosts[ peers[ 1]].interface = each.name_peer if config.hosts[ peers[ 1]]
54
+ config.netnss[ peers[ 0]].interface = each.name if config.netnss[ peers[ 0]]
55
+ config.netnss[ peers[ 1]].interface = each.name_peer if config.netnss[ peers[ 1]]
56
+ config.switches[ peers[ 0]] << each.name if config.switches[ peers[ 0]]
57
+ config.switches[ peers[ 1]] << each.name_peer if config.switches[ peers[ 1]]
58
58
  end
59
- Context.new( config ).dump
59
+ Context.new(config).dump
60
60
  end
61
61
  end
62
62
  end
@@ -18,7 +18,7 @@
18
18
  #
19
19
 
20
20
 
21
- require "trema/dsl/switch"
21
+ require 'trema/dsl/switch'
22
22
 
23
23
 
24
24
  module Trema
@@ -27,12 +27,12 @@ module Trema
27
27
  attr_reader :path
28
28
 
29
29
 
30
- def initialize name = nil
30
+ def initialize(name = nil)
31
31
  super name
32
32
  end
33
33
 
34
34
 
35
- def file path
35
+ def file(path)
36
36
  @path = path
37
37
  end
38
38
  end
@@ -18,21 +18,21 @@
18
18
  #
19
19
 
20
20
 
21
- require "trema/dsl/stanza"
21
+ require 'trema/dsl/stanza'
22
22
 
23
23
 
24
24
  module Trema
25
25
  module DSL
26
26
  class Run < Stanza
27
- def path _path
27
+ def path(_path)
28
28
  @path = _path
29
29
  if @name.nil?
30
- @name = File.basename( @path )
30
+ @name = File.basename(@path)
31
31
  end
32
32
  end
33
33
 
34
34
 
35
- def options *_options
35
+ def options(*_options)
36
36
  @options = _options
37
37
  end
38
38
  end
@@ -18,13 +18,13 @@
18
18
  #
19
19
 
20
20
 
21
- require "trema/tremashark"
21
+ require 'trema/tremashark'
22
22
 
23
23
 
24
24
  module Trema
25
25
  module DSL
26
26
  class Runner
27
- def initialize context
27
+ def initialize(context)
28
28
  @context = context
29
29
  end
30
30
 
@@ -43,35 +43,35 @@ module Trema
43
43
 
44
44
  def maybe_run_switch_manager
45
45
  # FIXME
46
- return if FileTest.exists? File.join( Trema.pid, "switch_manager.pid" )
46
+ return if FileTest.exists? File.join(Trema.pid, 'switch_manager.pid')
47
47
 
48
48
  switch_manager =
49
- if @context.switch_manager and @context.apps.values.size > 0
49
+ if @context.switch_manager && @context.apps.values.size > 0
50
50
  last_app = @context.apps.values.last.name
51
- if not @context.switch_manager.rule.has_key?( :port_status )
52
- @context.switch_manager.rule[ :port_status ] = last_app
51
+ unless @context.switch_manager.rule.key?(:port_status)
52
+ @context.switch_manager.rule[ :port_status] = last_app
53
53
  end
54
- if not @context.switch_manager.rule.has_key?( :packet_in )
55
- @context.switch_manager.rule[ :packet_in ] = last_app
54
+ unless @context.switch_manager.rule.key?(:packet_in)
55
+ @context.switch_manager.rule[ :packet_in] = last_app
56
56
  end
57
- if not @context.switch_manager.rule.has_key?( :state_notify )
58
- @context.switch_manager.rule[ :state_notify ] = last_app
57
+ unless @context.switch_manager.rule.key?(:state_notify)
58
+ @context.switch_manager.rule[ :state_notify] = last_app
59
59
  end
60
- if not @context.switch_manager.rule.has_key?( :vendor )
61
- @context.switch_manager.rule[ :vendor ] = last_app
60
+ unless @context.switch_manager.rule.key?(:vendor)
61
+ @context.switch_manager.rule[ :vendor] = last_app
62
62
  end
63
63
  @context.switch_manager
64
64
  else
65
65
  if @context.apps.values.size == 0
66
- rule = { :port_status => "default", :packet_in => "default", :state_notify => "default", :vendor => "default" }
66
+ rule = { :port_status => 'default', :packet_in => 'default', :state_notify => 'default', :vendor => 'default' }
67
67
  elsif @context.apps.values.size == 1
68
- app_name = @context.apps.values[ 0 ].name
68
+ app_name = @context.apps.values[ 0].name
69
69
  rule = { :port_status => app_name, :packet_in => app_name, :state_notify => app_name, :vendor => app_name }
70
70
  else
71
71
  # two or more apps without switch_manager.
72
- raise "No event routing configured. Use `event' directive to specify event routing."
72
+ fail "No event routing configured. Use `event' directive to specify event routing."
73
73
  end
74
- SwitchManager.new( rule, @context.port )
74
+ SwitchManager.new(rule, @context.port)
75
75
  end
76
76
  switch_manager.no_flow_cleanup = true if $no_flow_cleanup
77
77
  switch_manager.run!
@@ -132,7 +132,7 @@ module Trema
132
132
  end
133
133
 
134
134
  @context.hosts.each do | name, host |
135
- host.add_arp_entry @context.hosts.values - [ host ]
135
+ host.add_arp_entry @context.hosts.values - [host]
136
136
  end
137
137
  end
138
138
 
@@ -147,11 +147,11 @@ module Trema
147
147
  def maybe_run_apps
148
148
  return if @context.apps.values.empty?
149
149
 
150
- @context.apps.values[ 0..-2 ].each do | each |
150
+ @context.apps.values[ 0..-2].each do | each |
151
151
  each.daemonize!
152
152
  end
153
- trap( "SIGINT" ) do
154
- print( "\nterminated\n" )
153
+ trap('SIGINT') do
154
+ print("\nterminated\n")
155
155
  exit(0)
156
156
  end
157
157
  pid = ::Process.fork do