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
@@ -31,7 +31,7 @@ class SimpleRouter < Controller
31
31
  end
32
32
 
33
33
  def packet_in(dpid, message)
34
- return if not to_me?(message)
34
+ return unless to_me?(message)
35
35
 
36
36
  if message.arp_request?
37
37
  handle_arp_request dpid, message
@@ -50,7 +50,7 @@ class SimpleRouter < Controller
50
50
  return true if message.macda.broadcast?
51
51
 
52
52
  interface = @interfaces.find_by_port(message.in_port)
53
- if interface and interface.has?(message.macda)
53
+ if interface && interface.has?(message.macda)
54
54
  return true
55
55
  end
56
56
  end
@@ -99,7 +99,7 @@ class SimpleRouter < Controller
99
99
  next_hop = resolve_next_hop(message.ipv4_daddr)
100
100
 
101
101
  interface = @interfaces.find_by_prefix(next_hop)
102
- if not interface or interface.port == message.in_port
102
+ unless interface || interface.port == message.in_port
103
103
  return
104
104
  end
105
105
 
@@ -19,19 +19,19 @@
19
19
 
20
20
 
21
21
  class SwitchInfo < Controller
22
- def switch_ready datapath_id
22
+ def switch_ready(datapath_id)
23
23
  send_message datapath_id, FeaturesRequest.new
24
24
  end
25
25
 
26
26
 
27
- def features_reply datapath_id, message
28
- info "datapath_id: %#x" % datapath_id
29
- info "transaction_id: %#x" % message.transaction_id
30
- info "n_buffers: %u" % message.n_buffers
31
- info "n_tables: %u" % message.n_tables
32
- info "capabilities: %u" % message.capabilities
33
- info "actions: %u" % message.actions
34
- info "#ports: %d" % message.ports.size
27
+ def features_reply(datapath_id, message)
28
+ info 'datapath_id: %#x' % datapath_id
29
+ info 'transaction_id: %#x' % message.transaction_id
30
+ info 'n_buffers: %u' % message.n_buffers
31
+ info 'n_tables: %u' % message.n_tables
32
+ info 'capabilities: %u' % message.capabilities
33
+ info 'actions: %u' % message.actions
34
+ info '#ports: %d' % message.ports.size
35
35
  shutdown!
36
36
  end
37
37
  end
@@ -28,14 +28,14 @@ class SwitchMonitor < Controller
28
28
  end
29
29
 
30
30
 
31
- def switch_ready datapath_id
31
+ def switch_ready(datapath_id)
32
32
  @switches << datapath_id.to_hex
33
33
  info "Switch #{ datapath_id.to_hex } is UP"
34
34
  end
35
35
 
36
36
 
37
- def switch_disconnected datapath_id
38
- @switches -= [ datapath_id.to_hex ]
37
+ def switch_disconnected(datapath_id)
38
+ @switches -= [datapath_id.to_hex]
39
39
  info "Switch #{ datapath_id.to_hex } is DOWN"
40
40
  end
41
41
 
@@ -44,7 +44,7 @@ class SwitchMonitor < Controller
44
44
 
45
45
 
46
46
  def show_switches
47
- info "All switches = " + @switches.sort.join( ", " )
47
+ info 'All switches = ' + @switches.sort.join(', ')
48
48
  end
49
49
  end
50
50
 
@@ -24,15 +24,15 @@ class Counter
24
24
  end
25
25
 
26
26
 
27
- def add mac, packet_count, byte_count
28
- @db[ mac ] ||= { :packet_count => 0, :byte_count => 0 }
29
- @db[ mac ][ :packet_count ] += packet_count
30
- @db[ mac ][ :byte_count ] += byte_count
27
+ def add(mac, packet_count, byte_count)
28
+ @db[ mac] ||= { :packet_count => 0, :byte_count => 0 }
29
+ @db[ mac][ :packet_count] += packet_count
30
+ @db[ mac][ :byte_count] += byte_count
31
31
  end
32
32
 
33
33
 
34
- def each_pair &block
35
- @db.each_pair &block
34
+ def each_pair(&block)
35
+ @db.each_pair(&block)
36
36
  end
37
37
  end
38
38
 
@@ -24,13 +24,13 @@ class FDB
24
24
  end
25
25
 
26
26
 
27
- def lookup mac
28
- @db[ mac ]
27
+ def lookup(mac)
28
+ @db[ mac]
29
29
  end
30
30
 
31
31
 
32
- def learn mac, port_number
33
- @db[ mac ] = port_number
32
+ def learn(mac, port_number)
33
+ @db[ mac] = port_number
34
34
  end
35
35
  end
36
36
 
@@ -18,8 +18,8 @@
18
18
  #
19
19
 
20
20
 
21
- require "counter"
22
- require "fdb"
21
+ require 'counter'
22
+ require 'fdb'
23
23
 
24
24
 
25
25
  class TrafficMonitor < Controller
@@ -32,13 +32,13 @@ class TrafficMonitor < Controller
32
32
  end
33
33
 
34
34
 
35
- def packet_in datapath_id, message
35
+ def packet_in(datapath_id, message)
36
36
  macsa = message.macsa
37
37
  macda = message.macda
38
38
 
39
39
  @fdb.learn macsa, message.in_port
40
40
  @counter.add macsa, 1, message.total_len
41
- out_port = @fdb.lookup( macda )
41
+ out_port = @fdb.lookup(macda)
42
42
  if out_port
43
43
  packet_out datapath_id, message, out_port
44
44
  flow_mod datapath_id, macsa, macda, out_port
@@ -48,7 +48,7 @@ class TrafficMonitor < Controller
48
48
  end
49
49
 
50
50
 
51
- def flow_removed datapath_id, message
51
+ def flow_removed(datapath_id, message)
52
52
  @counter.add message.match.dl_src, message.packet_count, message.byte_count
53
53
  end
54
54
 
@@ -61,31 +61,31 @@ class TrafficMonitor < Controller
61
61
  def show_counter
62
62
  puts Time.now
63
63
  @counter.each_pair do | mac, counter |
64
- puts "#{ mac } #{ counter[ :packet_count ] } packets (#{ counter[ :byte_count ] } bytes)"
64
+ puts "#{ mac } #{ counter[ :packet_count] } packets (#{ counter[ :byte_count] } bytes)"
65
65
  end
66
66
  end
67
67
 
68
68
 
69
- def flow_mod datapath_id, macsa, macda, out_port
69
+ def flow_mod(datapath_id, macsa, macda, out_port)
70
70
  send_flow_mod_add(
71
71
  datapath_id,
72
72
  :hard_timeout => 10,
73
- :match => Match.new( :dl_src => macsa, :dl_dst => macda ),
74
- :actions => ActionOutput.new( out_port )
73
+ :match => Match.new(:dl_src => macsa, :dl_dst => macda),
74
+ :actions => ActionOutput.new(out_port)
75
75
  )
76
76
  end
77
77
 
78
78
 
79
- def packet_out datapath_id, message, out_port
79
+ def packet_out(datapath_id, message, out_port)
80
80
  send_packet_out(
81
81
  datapath_id,
82
82
  :packet_in => message,
83
- :actions => ActionOutput.new( out_port )
83
+ :actions => ActionOutput.new(out_port)
84
84
  )
85
85
  end
86
86
 
87
87
 
88
- def flood datapath_id, message
88
+ def flood(datapath_id, message)
89
89
  packet_out datapath_id, message, OFPP_FLOOD
90
90
  end
91
91
  end
@@ -0,0 +1,61 @@
1
+ Transparent firewall applications for Trema
2
+ -------------------------------------------
3
+
4
+ This example implements a transparent firewall, that is, a 2-port L2 switch that
5
+ passes or blocks Ethernet packets based on L3 (IPv4) criteria. The firewall is
6
+ intended for the following topology:
7
+
8
+ ```
9
+ +-----+
10
+ | |
11
+ | OFC |
12
+ | |
13
+ +-----+
14
+ ^
15
+ |
16
+ v
17
+ +-----+
18
+ | |
19
+ (Internet) ~---<-------># OFS #<------->---~ (LAN)
20
+ "outside" | | "inside"
21
+ port +--#--+ port
22
+ |
23
+ "inspect" |
24
+ port |
25
+ |
26
+ +--->---~ (/dev/zero)
27
+ ```
28
+ In the current implementation the port numbers are hardcoded as follows:
29
+ * outside: port_no 1
30
+ * inside: port_no 2
31
+ * inspect: port_no 3
32
+
33
+ The "inspect" port serves as a kludge for the (existing) OFS implementations
34
+ that are unable to drop "any" IPv4 packets.
35
+
36
+ The files in this directory are:
37
+
38
+ * `block-rfc1918.rb` -- a Trema controller application that blocks in either
39
+ direction IPv4 packets that have source or destination address within the
40
+ [RFC1918](http://tools.ietf.org/html/rfc1918) private address space. All other
41
+ packets are permitted.
42
+ * `pass-delegated.rb` -- a Trema controller application that blocks from outside
43
+ to inside IPv4 packets that have source address outside of the globally
44
+ delegated IPv4 address space. All other packets are permitted. The application
45
+ runs as follows:
46
+
47
+ ```
48
+ $ ./trema run src/examples/transparent_firewall/pass-delegated.rb
49
+ aggregated-delegated-afrinic.txt: 713 prefix(es)
50
+ aggregated-delegated-apnic.txt: 3440 prefix(es)
51
+ aggregated-delegated-arin.txt: 11342 prefix(es)
52
+ aggregated-delegated-lacnic.txt: 1937 prefix(es)
53
+ aggregated-delegated-ripencc.txt: 7329 prefix(es)
54
+ 0x1000c425ec2dc: connected
55
+ 0x1000c425ec2dc: bypass ON, loading started
56
+ 0x1000c425ec2dc: bypass OFF, loading finished in 8.04 second(s)
57
+ ```
58
+ * `regen_aggregated.sh` -- a helper shell script to regenerate prefix lists for
59
+ the above application (not required to run).
60
+ * `stats-to-cidrs.rb` -- a helper Ruby script for the above script.
61
+ * `aggregated-delegated-*.txt` -- files with IPv4 prefixes
@@ -0,0 +1,713 @@
1
+ 41.0.0.0/11
2
+ 41.32.0.0/12
3
+ 41.48.0.0/13
4
+ 41.56.0.0/14
5
+ 41.60.0.0/15
6
+ 41.63.0.0/16
7
+ 41.64.0.0/10
8
+ 41.128.0.0/11
9
+ 41.160.0.0/12
10
+ 41.176.0.0/13
11
+ 41.184.0.0/14
12
+ 41.188.0.0/15
13
+ 41.190.0.0/16
14
+ 41.191.0.0/18
15
+ 41.191.64.0/19
16
+ 41.191.96.0/20
17
+ 41.191.116.0/22
18
+ 41.191.120.0/21
19
+ 41.191.128.0/17
20
+ 41.192.0.0/12
21
+ 41.208.0.0/16
22
+ 41.209.0.0/17
23
+ 41.209.192.0/18
24
+ 41.210.0.0/15
25
+ 41.212.0.0/14
26
+ 41.216.0.0/17
27
+ 41.216.128.0/19
28
+ 41.216.160.0/20
29
+ 41.216.192.0/19
30
+ 41.216.224.0/20
31
+ 41.217.0.0/16
32
+ 41.218.0.0/15
33
+ 41.220.0.0/14
34
+ 41.224.0.0/12
35
+ 41.240.0.0/14
36
+ 41.244.0.0/16
37
+ 41.246.0.0/15
38
+ 41.248.0.0/13
39
+ 62.8.64.0/19
40
+ 62.24.96.0/19
41
+ 62.68.32.0/19
42
+ 62.68.224.0/19
43
+ 62.114.0.0/16
44
+ 62.117.32.0/19
45
+ 62.135.0.0/17
46
+ 62.139.0.0/16
47
+ 62.140.64.0/18
48
+ 62.173.32.0/19
49
+ 62.193.64.0/18
50
+ 62.193.160.0/19
51
+ 62.240.32.0/19
52
+ 62.240.96.0/19
53
+ 62.241.128.0/19
54
+ 62.251.128.0/17
55
+ 64.57.112.0/20
56
+ 66.8.0.0/17
57
+ 66.18.64.0/19
58
+ 69.63.64.0/20
59
+ 69.67.32.0/20
60
+ 77.220.0.0/19
61
+ 80.72.96.0/20
62
+ 80.75.160.0/19
63
+ 80.87.64.0/19
64
+ 80.88.4.0/22
65
+ 80.88.12.0/22
66
+ 80.240.192.0/20
67
+ 80.246.0.0/20
68
+ 80.248.0.0/20
69
+ 80.248.64.0/20
70
+ 80.249.64.0/20
71
+ 80.250.32.0/20
72
+ 81.4.0.0/18
73
+ 81.10.0.0/17
74
+ 81.21.96.0/20
75
+ 81.29.96.0/20
76
+ 81.91.224.0/20
77
+ 81.192.0.0/16
78
+ 82.128.0.0/17
79
+ 82.129.128.0/17
80
+ 82.151.64.0/19
81
+ 82.201.128.0/17
82
+ 83.143.24.0/21
83
+ 84.36.0.0/16
84
+ 84.205.96.0/19
85
+ 84.233.0.0/17
86
+ 87.255.96.0/19
87
+ 105.96.0.0/11
88
+ 105.128.0.0/11
89
+ 105.160.0.0/12
90
+ 105.176.0.0/15
91
+ 105.180.0.0/14
92
+ 105.184.0.0/14
93
+ 105.192.0.0/10
94
+ 137.158.0.0/16
95
+ 137.214.0.0/15
96
+ 139.53.0.0/16
97
+ 143.128.0.0/16
98
+ 143.160.0.0/16
99
+ 146.64.0.0/16
100
+ 146.141.0.0/16
101
+ 146.182.0.0/16
102
+ 146.230.0.0/15
103
+ 146.232.0.0/16
104
+ 147.110.0.0/16
105
+ 152.106.0.0/15
106
+ 152.108.0.0/14
107
+ 152.112.0.0/16
108
+ 154.0.0.0/16
109
+ 154.65.0.0/18
110
+ 154.65.64.0/20
111
+ 154.65.80.0/21
112
+ 154.65.96.0/19
113
+ 154.65.128.0/17
114
+ 154.66.0.0/18
115
+ 154.66.64.0/19
116
+ 154.66.96.0/20
117
+ 154.66.116.0/22
118
+ 154.66.120.0/21
119
+ 154.66.128.0/18
120
+ 154.66.192.0/19
121
+ 154.66.232.0/21
122
+ 154.66.240.0/20
123
+ 154.67.0.0/17
124
+ 154.68.0.0/17
125
+ 154.68.192.0/18
126
+ 154.69.0.0/16
127
+ 154.70.0.0/18
128
+ 154.70.64.0/20
129
+ 154.70.96.0/19
130
+ 154.71.0.0/16
131
+ 154.80.0.0/12
132
+ 155.159.0.0/16
133
+ 155.232.0.0/13
134
+ 155.240.0.0/16
135
+ 156.8.0.0/16
136
+ 160.115.0.0/16
137
+ 160.116.0.0/15
138
+ 160.118.0.0/16
139
+ 160.121.0.0/16
140
+ 160.122.0.0/15
141
+ 160.124.0.0/16
142
+ 160.181.0.0/16
143
+ 163.121.0.0/16
144
+ 163.195.0.0/16
145
+ 163.196.0.0/14
146
+ 163.200.0.0/14
147
+ 164.88.0.0/16
148
+ 164.146.0.0/15
149
+ 164.148.0.0/14
150
+ 164.155.0.0/16
151
+ 165.3.0.0/16
152
+ 165.4.0.0/15
153
+ 165.8.0.0/14
154
+ 165.25.0.0/16
155
+ 165.143.0.0/16
156
+ 165.144.0.0/14
157
+ 165.148.0.0/15
158
+ 165.165.0.0/16
159
+ 165.180.0.0/16
160
+ 165.231.0.0/16
161
+ 165.233.0.0/16
162
+ 166.85.0.0/16
163
+ 168.76.0.0/16
164
+ 168.80.0.0/15
165
+ 168.89.0.0/16
166
+ 168.128.0.0/16
167
+ 168.142.0.0/16
168
+ 168.155.0.0/16
169
+ 168.164.0.0/16
170
+ 168.167.0.0/16
171
+ 168.172.0.0/16
172
+ 168.206.0.0/16
173
+ 168.209.0.0/16
174
+ 168.210.0.0/16
175
+ 169.129.0.0/16
176
+ 169.202.0.0/16
177
+ 192.33.10.0/24
178
+ 192.42.99.0/24
179
+ 192.48.253.0/24
180
+ 192.52.232.0/24
181
+ 192.68.138.0/24
182
+ 192.70.237.0/24
183
+ 192.82.142.0/24
184
+ 192.84.244.0/24
185
+ 192.94.61.0/24
186
+ 192.94.210.0/24
187
+ 192.94.240.0/23
188
+ 192.94.246.0/24
189
+ 192.96.1.0/24
190
+ 192.96.2.0/23
191
+ 192.96.4.0/22
192
+ 192.96.8.0/21
193
+ 192.96.16.0/24
194
+ 192.96.19.0/24
195
+ 192.96.20.0/23
196
+ 192.96.22.0/24
197
+ 192.96.24.0/21
198
+ 192.96.32.0/22
199
+ 192.96.37.0/24
200
+ 192.96.38.0/23
201
+ 192.96.40.0/24
202
+ 192.96.43.0/24
203
+ 192.96.45.0/24
204
+ 192.96.46.0/23
205
+ 192.96.48.0/21
206
+ 192.96.56.0/23
207
+ 192.96.58.0/24
208
+ 192.96.60.0/23
209
+ 192.96.68.0/22
210
+ 192.96.72.0/24
211
+ 192.96.74.0/23
212
+ 192.96.76.0/23
213
+ 192.96.79.0/24
214
+ 192.96.80.0/20
215
+ 192.96.96.0/22
216
+ 192.96.100.0/23
217
+ 192.96.102.0/24
218
+ 192.96.104.0/21
219
+ 192.96.112.0/20
220
+ 192.96.128.0/22
221
+ 192.96.132.0/23
222
+ 192.96.134.0/24
223
+ 192.96.138.0/23
224
+ 192.96.140.0/23
225
+ 192.96.142.0/24
226
+ 192.96.144.0/24
227
+ 192.96.146.0/23
228
+ 192.96.148.0/22
229
+ 192.96.152.0/22
230
+ 192.96.158.0/24
231
+ 192.96.164.0/22
232
+ 192.96.177.0/24
233
+ 192.96.178.0/23
234
+ 192.96.180.0/22
235
+ 192.96.184.0/21
236
+ 192.96.193.0/24
237
+ 192.96.194.0/23
238
+ 192.96.196.0/22
239
+ 192.96.224.0/21
240
+ 192.96.232.0/24
241
+ 192.96.234.0/23
242
+ 192.96.236.0/22
243
+ 192.96.240.0/22
244
+ 192.96.245.0/24
245
+ 192.96.246.0/23
246
+ 192.96.248.0/22
247
+ 192.96.252.0/23
248
+ 192.96.254.0/24
249
+ 192.100.1.0/24
250
+ 192.101.142.0/24
251
+ 192.102.9.0/24
252
+ 192.109.242.0/24
253
+ 192.133.250.0/24
254
+ 192.136.55.0/24
255
+ 192.136.56.0/23
256
+ 192.157.190.0/24
257
+ 192.188.164.0/22
258
+ 192.189.75.0/24
259
+ 192.189.139.0/24
260
+ 192.189.140.0/24
261
+ 192.231.254.0/24
262
+ 192.245.148.0/24
263
+ 192.251.202.0/24
264
+ 193.19.232.0/22
265
+ 193.41.146.0/23
266
+ 193.95.0.0/17
267
+ 193.108.23.0/24
268
+ 193.108.28.0/24
269
+ 193.108.214.0/24
270
+ 193.108.252.0/22
271
+ 193.109.66.0/23
272
+ 193.110.104.0/23
273
+ 193.188.7.0/24
274
+ 193.189.0.0/18
275
+ 193.189.64.0/23
276
+ 193.189.128.0/24
277
+ 193.194.1.0/24
278
+ 193.194.2.0/23
279
+ 193.194.4.0/23
280
+ 193.194.32.0/19
281
+ 193.194.64.0/19
282
+ 193.194.128.0/24
283
+ 193.194.160.0/19
284
+ 193.221.218.0/24
285
+ 193.227.0.0/18
286
+ 193.227.128.0/24
287
+ 194.6.224.0/24
288
+ 194.9.64.0/23
289
+ 194.9.82.0/23
290
+ 194.79.96.0/19
291
+ 194.204.192.0/18
292
+ 195.24.80.0/21
293
+ 195.24.192.0/19
294
+ 195.39.218.0/23
295
+ 195.43.0.0/19
296
+ 195.166.224.0/19
297
+ 195.202.64.0/19
298
+ 195.234.168.0/24
299
+ 195.234.185.0/24
300
+ 195.234.252.0/22
301
+ 195.246.32.0/19
302
+ 196.0.0.0/16
303
+ 196.1.0.0/24
304
+ 196.1.4.0/24
305
+ 196.1.7.0/24
306
+ 196.1.8.0/21
307
+ 196.1.16.0/20
308
+ 196.1.32.0/19
309
+ 196.1.71.0/24
310
+ 196.1.74.0/23
311
+ 196.1.76.0/22
312
+ 196.1.80.0/20
313
+ 196.1.96.0/21
314
+ 196.1.115.0/24
315
+ 196.1.118.0/23
316
+ 196.1.120.0/21
317
+ 196.1.128.0/22
318
+ 196.1.132.0/23
319
+ 196.1.137.0/24
320
+ 196.1.143.0/24
321
+ 196.1.144.0/20
322
+ 196.1.176.0/20
323
+ 196.1.192.0/18
324
+ 196.2.2.0/23
325
+ 196.2.8.0/21
326
+ 196.2.16.0/20
327
+ 196.2.32.0/19
328
+ 196.2.64.0/18
329
+ 196.2.128.0/18
330
+ 196.2.192.0/19
331
+ 196.3.14.0/23
332
+ 196.3.57.0/24
333
+ 196.3.58.0/23
334
+ 196.3.60.0/22
335
+ 196.3.64.0/24
336
+ 196.3.90.0/24
337
+ 196.3.92.0/23
338
+ 196.3.94.0/24
339
+ 196.3.96.0/21
340
+ 196.3.105.0/24
341
+ 196.3.107.0/24
342
+ 196.3.108.0/22
343
+ 196.3.112.0/20
344
+ 196.3.128.0/22
345
+ 196.3.148.0/22
346
+ 196.3.154.0/23
347
+ 196.3.156.0/22
348
+ 196.3.160.0/20
349
+ 196.3.176.0/21
350
+ 196.3.224.0/19
351
+ 196.4.0.0/19
352
+ 196.4.32.0/21
353
+ 196.4.40.0/22
354
+ 196.4.44.0/23
355
+ 196.4.71.0/24
356
+ 196.4.72.0/21
357
+ 196.4.80.0/20
358
+ 196.4.96.0/19
359
+ 196.4.128.0/17
360
+ 196.5.0.0/16
361
+ 196.6.0.0/18
362
+ 196.6.64.0/19
363
+ 196.6.96.0/21
364
+ 196.6.120.0/21
365
+ 196.6.128.0/19
366
+ 196.6.160.0/21
367
+ 196.6.168.0/22
368
+ 196.6.172.0/23
369
+ 196.6.184.0/21
370
+ 196.6.192.0/20
371
+ 196.6.212.0/22
372
+ 196.6.220.0/22
373
+ 196.6.236.0/22
374
+ 196.6.240.0/20
375
+ 196.7.0.0/16
376
+ 196.8.0.0/15
377
+ 196.10.1.0/24
378
+ 196.10.2.0/23
379
+ 196.10.4.0/22
380
+ 196.10.8.0/21
381
+ 196.10.16.0/20
382
+ 196.10.32.0/20
383
+ 196.10.48.0/23
384
+ 196.10.50.0/24
385
+ 196.10.52.0/22
386
+ 196.10.60.0/22
387
+ 196.10.64.0/19
388
+ 196.10.96.0/20
389
+ 196.10.112.0/21
390
+ 196.10.120.0/23
391
+ 196.10.124.0/22
392
+ 196.10.128.0/21
393
+ 196.10.136.0/22
394
+ 196.10.142.0/23
395
+ 196.10.144.0/22
396
+ 196.10.149.0/24
397
+ 196.10.150.0/23
398
+ 196.10.152.0/21
399
+ 196.10.160.0/19
400
+ 196.10.192.0/20
401
+ 196.10.208.0/22
402
+ 196.10.212.0/23
403
+ 196.10.216.0/21
404
+ 196.10.224.0/19
405
+ 196.11.0.0/19
406
+ 196.11.48.0/21
407
+ 196.11.56.0/22
408
+ 196.11.60.0/23
409
+ 196.11.62.0/24
410
+ 196.11.64.0/20
411
+ 196.11.88.0/21
412
+ 196.11.96.0/22
413
+ 196.11.100.0/23
414
+ 196.11.102.0/24
415
+ 196.11.104.0/21
416
+ 196.11.112.0/20
417
+ 196.11.128.0/22
418
+ 196.11.132.0/23
419
+ 196.11.134.0/24
420
+ 196.11.136.0/21
421
+ 196.11.144.0/22
422
+ 196.11.148.0/23
423
+ 196.11.160.0/21
424
+ 196.11.168.0/22
425
+ 196.11.172.0/23
426
+ 196.11.174.0/24
427
+ 196.11.184.0/22
428
+ 196.11.188.0/24
429
+ 196.11.192.0/21
430
+ 196.11.200.0/22
431
+ 196.11.204.0/23
432
+ 196.11.208.0/20
433
+ 196.11.224.0/22
434
+ 196.11.228.0/23
435
+ 196.11.230.0/24
436
+ 196.11.232.0/23
437
+ 196.11.235.0/24
438
+ 196.11.236.0/22
439
+ 196.11.240.0/21
440
+ 196.11.248.0/23
441
+ 196.11.252.0/23
442
+ 196.11.254.0/24
443
+ 196.12.10.0/23
444
+ 196.12.12.0/22
445
+ 196.12.16.0/20
446
+ 196.12.128.0/19
447
+ 196.12.192.0/18
448
+ 196.13.1.0/24
449
+ 196.13.2.0/23
450
+ 196.13.4.0/22
451
+ 196.13.8.0/21
452
+ 196.13.16.0/20
453
+ 196.13.32.0/19
454
+ 196.13.64.0/19
455
+ 196.13.96.0/22
456
+ 196.13.100.0/24
457
+ 196.13.113.0/24
458
+ 196.13.114.0/23
459
+ 196.13.116.0/22
460
+ 196.13.120.0/24
461
+ 196.13.127.0/24
462
+ 196.13.128.0/22
463
+ 196.13.132.0/24
464
+ 196.13.138.0/23
465
+ 196.13.140.0/22
466
+ 196.13.144.0/20
467
+ 196.13.160.0/24
468
+ 196.13.162.0/23
469
+ 196.13.164.0/22
470
+ 196.13.168.0/24
471
+ 196.13.170.0/23
472
+ 196.13.172.0/24
473
+ 196.13.184.0/23
474
+ 196.13.187.0/24
475
+ 196.13.188.0/23
476
+ 196.13.190.0/24
477
+ 196.13.200.0/24
478
+ 196.13.205.0/24
479
+ 196.13.210.0/23
480
+ 196.13.212.0/22
481
+ 196.13.216.0/22
482
+ 196.13.220.0/23
483
+ 196.13.222.0/24
484
+ 196.13.224.0/20
485
+ 196.13.240.0/23
486
+ 196.13.246.0/23
487
+ 196.13.248.0/22
488
+ 196.14.0.0/16
489
+ 196.15.0.0/20
490
+ 196.15.64.0/18
491
+ 196.15.128.0/17
492
+ 196.16.0.0/13
493
+ 196.24.0.0/15
494
+ 196.26.0.0/16
495
+ 196.27.64.0/18
496
+ 196.27.128.0/17
497
+ 196.28.0.0/21
498
+ 196.28.8.0/24
499
+ 196.28.10.0/23
500
+ 196.28.12.0/22
501
+ 196.28.16.0/20
502
+ 196.28.32.0/20
503
+ 196.28.64.0/18
504
+ 196.28.128.0/17
505
+ 196.29.0.0/18
506
+ 196.29.96.0/19
507
+ 196.29.128.0/17
508
+ 196.30.0.0/15
509
+ 196.32.112.0/20
510
+ 196.32.192.0/20
511
+ 196.32.208.0/21
512
+ 196.32.224.0/20
513
+ 196.32.240.0/21
514
+ 196.33.0.0/16
515
+ 196.34.0.0/15
516
+ 196.36.0.0/14
517
+ 196.40.96.0/20
518
+ 196.40.128.0/19
519
+ 196.40.160.0/20
520
+ 196.40.192.0/18
521
+ 196.41.0.0/18
522
+ 196.41.96.0/19
523
+ 196.41.128.0/17
524
+ 196.42.64.0/18
525
+ 196.43.0.0/17
526
+ 196.43.128.0/18
527
+ 196.43.192.0/19
528
+ 196.43.224.0/20
529
+ 196.43.240.0/21
530
+ 196.43.248.0/23
531
+ 196.43.251.0/24
532
+ 196.44.0.0/15
533
+ 196.46.0.0/16
534
+ 196.47.0.0/17
535
+ 196.47.128.0/18
536
+ 196.48.0.0/16
537
+ 196.52.0.0/14
538
+ 196.56.0.0/14
539
+ 196.62.0.0/15
540
+ 196.192.0.0/20
541
+ 196.192.32.0/20
542
+ 196.192.64.0/21
543
+ 196.192.80.0/22
544
+ 196.192.96.0/20
545
+ 196.192.112.0/22
546
+ 196.192.124.0/23
547
+ 196.192.140.0/22
548
+ 196.193.0.0/16
549
+ 196.194.0.0/15
550
+ 196.196.0.0/14
551
+ 196.200.0.0/17
552
+ 196.200.128.0/18
553
+ 196.201.1.0/24
554
+ 196.201.2.0/23
555
+ 196.201.6.0/23
556
+ 196.201.16.0/20
557
+ 196.201.32.0/19
558
+ 196.201.64.0/19
559
+ 196.201.128.0/19
560
+ 196.201.192.0/19
561
+ 196.201.224.0/21
562
+ 196.201.240.0/20
563
+ 196.202.0.0/17
564
+ 196.202.128.0/19
565
+ 196.202.192.0/19
566
+ 196.202.232.0/21
567
+ 196.202.240.0/20
568
+ 196.203.0.0/16
569
+ 196.204.0.0/15
570
+ 196.206.0.0/16
571
+ 196.207.0.0/18
572
+ 196.207.192.0/18
573
+ 196.208.0.0/13
574
+ 196.216.0.0/24
575
+ 196.216.2.0/23
576
+ 196.216.4.0/22
577
+ 196.216.8.0/21
578
+ 196.216.16.0/21
579
+ 196.216.32.0/19
580
+ 196.216.64.0/19
581
+ 196.216.128.0/22
582
+ 196.216.140.0/22
583
+ 196.216.144.0/20
584
+ 196.216.160.0/19
585
+ 196.216.192.0/21
586
+ 196.216.200.0/22
587
+ 196.216.208.0/22
588
+ 196.216.212.0/24
589
+ 196.216.228.0/22
590
+ 196.216.232.0/21
591
+ 196.216.240.0/20
592
+ 196.217.0.0/16
593
+ 196.218.0.0/15
594
+ 196.220.0.0/17
595
+ 196.220.192.0/18
596
+ 196.221.0.0/16
597
+ 196.222.0.0/16
598
+ 196.223.0.0/20
599
+ 196.223.16.0/21
600
+ 196.223.24.0/22
601
+ 196.223.28.0/24
602
+ 196.223.30.0/23
603
+ 196.223.32.0/23
604
+ 196.223.144.0/21
605
+ 196.240.0.0/13
606
+ 196.248.0.0/16
607
+ 196.249.0.0/18
608
+ 196.252.0.0/14
609
+ 197.0.0.0/10
610
+ 197.64.0.0/12
611
+ 197.80.0.0/13
612
+ 197.96.0.0/11
613
+ 197.128.0.0/9
614
+ 198.54.1.0/24
615
+ 198.54.2.0/23
616
+ 198.54.4.0/22
617
+ 198.54.8.0/23
618
+ 198.54.10.0/24
619
+ 198.54.15.0/24
620
+ 198.54.16.0/20
621
+ 198.54.32.0/20
622
+ 198.54.48.0/21
623
+ 198.54.56.0/22
624
+ 198.54.60.0/23
625
+ 198.54.64.0/20
626
+ 198.54.80.0/24
627
+ 198.54.83.0/24
628
+ 198.54.84.0/22
629
+ 198.54.91.0/24
630
+ 198.54.98.0/23
631
+ 198.54.141.0/24
632
+ 198.54.142.0/23
633
+ 198.54.144.0/21
634
+ 198.54.154.0/23
635
+ 198.54.156.0/22
636
+ 198.54.160.0/22
637
+ 198.54.165.0/24
638
+ 198.54.170.0/24
639
+ 198.54.173.0/24
640
+ 198.54.174.0/23
641
+ 198.54.176.0/22
642
+ 198.54.180.0/23
643
+ 198.54.183.0/24
644
+ 198.54.184.0/21
645
+ 198.54.192.0/21
646
+ 198.54.202.0/23
647
+ 198.54.204.0/22
648
+ 198.54.208.0/23
649
+ 198.54.210.0/24
650
+ 198.54.219.0/24
651
+ 198.54.220.0/24
652
+ 198.54.223.0/24
653
+ 198.54.225.0/24
654
+ 198.54.226.0/23
655
+ 198.54.228.0/23
656
+ 198.54.231.0/24
657
+ 198.54.232.0/24
658
+ 198.54.234.0/24
659
+ 198.54.247.0/24
660
+ 198.54.248.0/22
661
+ 198.54.252.0/23
662
+ 198.54.254.0/24
663
+ 200.16.8.0/21
664
+ 202.123.0.0/19
665
+ 204.12.128.0/20
666
+ 204.87.179.0/24
667
+ 204.152.14.0/23
668
+ 204.235.32.0/21
669
+ 204.235.40.0/22
670
+ 205.159.79.0/24
671
+ 206.223.136.0/24
672
+ 209.203.0.0/18
673
+ 209.212.96.0/19
674
+ 212.0.128.0/19
675
+ 212.12.224.0/19
676
+ 212.22.160.0/19
677
+ 212.49.64.0/19
678
+ 212.52.128.0/19
679
+ 212.60.64.0/19
680
+ 212.85.192.0/19
681
+ 212.88.96.0/19
682
+ 212.96.0.0/19
683
+ 212.100.64.0/19
684
+ 212.103.160.0/19
685
+ 212.122.224.0/19
686
+ 212.217.0.0/17
687
+ 213.55.64.0/18
688
+ 213.131.64.0/19
689
+ 213.136.96.0/19
690
+ 213.147.64.0/19
691
+ 213.150.96.0/19
692
+ 213.150.160.0/19
693
+ 213.152.64.0/19
694
+ 213.154.32.0/19
695
+ 213.154.64.0/19
696
+ 213.158.160.0/19
697
+ 213.179.160.0/19
698
+ 213.181.224.0/19
699
+ 213.193.32.0/19
700
+ 213.212.192.0/18
701
+ 213.247.0.0/19
702
+ 213.255.128.0/19
703
+ 216.236.176.0/20
704
+ 217.14.80.0/20
705
+ 217.20.224.0/20
706
+ 217.21.112.0/20
707
+ 217.52.0.0/14
708
+ 217.64.96.0/20
709
+ 217.77.64.0/20
710
+ 217.117.0.0/20
711
+ 217.139.0.0/16
712
+ 217.170.144.0/20
713
+ 217.199.144.0/20