pio 0.30.0 → 0.30.1

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 (442) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/README.md +6 -49
  4. data/Rakefile +4 -4
  5. data/features/{arp.feature → arp/arp.feature} +14 -30
  6. data/features/arp/arp_reply.feature +69 -0
  7. data/features/arp/arp_request.feature +67 -0
  8. data/features/dhcp.feature +157 -162
  9. data/features/ethernet_header.feature +149 -0
  10. data/features/icmp/icmp.feature +47 -0
  11. data/features/icmp/icmp_reply.feature +93 -0
  12. data/features/icmp/icmp_request.feature +89 -0
  13. data/features/ipv4_header.feature +89 -0
  14. data/features/lldp.feature +5 -8
  15. data/features/open_flow/header.feature +13 -0
  16. data/features/open_flow/nicira_resubmit.feature +4 -22
  17. data/features/open_flow/nicira_resubmit_table.feature +6 -16
  18. data/features/open_flow10/aggregate_stats_reply.feature +5 -7
  19. data/features/open_flow10/aggregate_stats_request.feature +12 -14
  20. data/features/open_flow10/bad_request.feature +7 -24
  21. data/features/open_flow10/barrier_reply.feature +14 -25
  22. data/features/open_flow10/barrier_request.feature +12 -25
  23. data/features/open_flow10/description_stats_reply.feature +9 -7
  24. data/features/open_flow10/description_stats_request.feature +12 -25
  25. data/features/open_flow10/echo_reply.feature +14 -35
  26. data/features/open_flow10/echo_request.feature +16 -39
  27. data/features/open_flow10/enqueue.feature +3 -4
  28. data/features/open_flow10/exact_match.feature +5 -5
  29. data/features/open_flow10/features_reply.feature +28 -73
  30. data/features/open_flow10/features_request.feature +10 -28
  31. data/features/open_flow10/flow_mod.feature +4 -188
  32. data/features/open_flow10/flow_removed.feature +28 -30
  33. data/features/open_flow10/flow_stats_reply.feature +5 -89
  34. data/features/open_flow10/flow_stats_request.feature +12 -42
  35. data/features/open_flow10/hello.feature +10 -32
  36. data/features/open_flow10/hello_failed.feature +7 -57
  37. data/features/open_flow10/packet_in.feature +130 -49
  38. data/features/open_flow10/packet_out.feature +29 -18
  39. data/features/open_flow10/port_stats_request.feature +8 -29
  40. data/features/open_flow10/port_status.feature +22 -21
  41. data/features/open_flow10/queue_stats_request.feature +12 -30
  42. data/features/open_flow10/send_out_port.feature +17 -25
  43. data/features/open_flow10/set_destination_mac_address.feature +3 -4
  44. data/features/open_flow10/set_ip_destination_address.feature +3 -4
  45. data/features/open_flow10/set_source_ip_address.feature +3 -4
  46. data/features/open_flow10/set_source_mac_address.feature +3 -4
  47. data/features/open_flow10/set_tos.feature +3 -4
  48. data/features/open_flow10/set_transport_destination_port.feature +3 -4
  49. data/features/open_flow10/set_transport_source_port.feature +3 -4
  50. data/features/open_flow10/set_vlan_priority.feature +3 -4
  51. data/features/open_flow10/set_vlan_vid.feature +3 -4
  52. data/features/open_flow10/strip_vlan_header.feature +3 -4
  53. data/features/open_flow10/table_stats_request.feature +11 -13
  54. data/features/open_flow10/vendor_action.feature +4 -5
  55. data/features/open_flow13/apply_actions.feature +15 -18
  56. data/features/open_flow13/bad_request.feature +7 -13
  57. data/features/open_flow13/copy_ttl_inwards.feature +13 -0
  58. data/features/open_flow13/copy_ttl_outwards.feature +13 -0
  59. data/features/open_flow13/decrement_ip_ttl.feature +11 -0
  60. data/features/open_flow13/echo_reply.feature +16 -42
  61. data/features/open_flow13/echo_request.feature +16 -42
  62. data/features/open_flow13/features_reply.feature +4 -25
  63. data/features/open_flow13/features_request.feature +7 -36
  64. data/features/open_flow13/flow_mod.feature +16 -76
  65. data/features/open_flow13/goto_table.feature +18 -20
  66. data/features/open_flow13/hello.feature +7 -37
  67. data/features/open_flow13/hello_failed.feature +7 -30
  68. data/features/open_flow13/match.feature +239 -248
  69. data/features/open_flow13/meter.feature +18 -20
  70. data/features/open_flow13/nicira_conjunction.feature +15 -0
  71. data/features/open_flow13/nicira_reg_load.feature +27 -42
  72. data/features/open_flow13/nicira_reg_move.feature +41 -35
  73. data/features/open_flow13/nicira_send_out_port.feature +21 -13
  74. data/features/open_flow13/nicira_stack_pop.feature +26 -0
  75. data/features/open_flow13/nicira_stack_push.feature +26 -0
  76. data/features/open_flow13/packet_in.feature +7 -34
  77. data/features/open_flow13/packet_out.feature +7 -45
  78. data/features/open_flow13/send_out_port.feature +19 -28
  79. data/features/open_flow13/set_arp_operation.feature +4 -5
  80. data/features/open_flow13/set_arp_sender_hardware_address.feature +3 -4
  81. data/features/open_flow13/set_arp_sender_protocol_address.feature +3 -4
  82. data/features/open_flow13/set_destination_mac_address.feature +3 -4
  83. data/features/open_flow13/set_ip_ttl.feature +12 -0
  84. data/features/open_flow13/set_metadata.feature +3 -4
  85. data/features/open_flow13/set_source_mac_address.feature +3 -4
  86. data/features/open_flow13/stats_request.feature +4 -7
  87. data/features/open_flow13/write_metadata.feature +20 -22
  88. data/features/open_flow_read.feature +24 -5
  89. data/features/open_flow_version.feature +1 -1
  90. data/features/parser.feature +8 -9
  91. data/features/step_definitions/open_flow_steps.rb +11 -16
  92. data/features/step_definitions/packet_data_steps.rb +16 -32
  93. data/features/step_definitions/ruby_steps.rb +7 -0
  94. data/features/step_definitions/show_stats_steps.rb +3 -3
  95. data/features/support/env.rb +1 -0
  96. data/features/support/hooks.rb +2 -2
  97. data/features/udp.feature +26 -27
  98. data/lib/pio.rb +1 -1
  99. data/lib/pio/arp.rb +9 -6
  100. data/lib/pio/arp/format.rb +3 -7
  101. data/lib/pio/arp/message.rb +8 -4
  102. data/lib/pio/arp/reply.rb +9 -32
  103. data/lib/pio/arp/request.rb +9 -33
  104. data/lib/pio/class_inspector.rb +18 -0
  105. data/lib/pio/dhcp.rb +2 -2
  106. data/lib/pio/dhcp/frame.rb +4 -4
  107. data/lib/pio/dhcp/optional_tlv.rb +3 -3
  108. data/lib/pio/ethernet_frame.rb +20 -0
  109. data/lib/pio/ethernet_header.rb +35 -13
  110. data/lib/pio/icmp.rb +8 -5
  111. data/lib/pio/icmp/format.rb +19 -22
  112. data/lib/pio/icmp/message.rb +18 -4
  113. data/lib/pio/icmp/reply.rb +8 -34
  114. data/lib/pio/icmp/request.rb +8 -43
  115. data/lib/pio/instance_inspector.rb +14 -0
  116. data/lib/pio/ipv4_address.rb +11 -11
  117. data/lib/pio/ipv4_header.rb +24 -2
  118. data/lib/pio/lldp/frame.rb +2 -2
  119. data/lib/pio/lldp/optional_tlv.rb +2 -2
  120. data/lib/pio/mac.rb +7 -3
  121. data/lib/pio/message.rb +50 -0
  122. data/lib/pio/monkey_patch/bindata_record.rb +6 -0
  123. data/lib/pio/monkey_patch/bindata_string.rb +10 -0
  124. data/lib/pio/monkey_patch/integer/base_conversions.rb +1 -1
  125. data/lib/pio/monkey_patch/uint.rb +9 -0
  126. data/lib/pio/monkey_patch/uint/base_conversions.rb +14 -0
  127. data/lib/pio/open_flow.rb +38 -52
  128. data/lib/pio/open_flow/action.rb +8 -4
  129. data/lib/pio/open_flow/buffer_id.rb +19 -0
  130. data/lib/pio/open_flow/datapath_id.rb +3 -3
  131. data/lib/pio/open_flow/error_message.rb +32 -0
  132. data/lib/pio/open_flow/flags.rb +15 -6
  133. data/lib/pio/open_flow/flow_match.rb +10 -0
  134. data/lib/pio/open_flow/header.rb +26 -0
  135. data/lib/pio/open_flow/hello_failed_code.rb +1 -1
  136. data/lib/pio/open_flow/instruction.rb +10 -0
  137. data/lib/pio/open_flow/message.rb +49 -14
  138. data/lib/pio/open_flow/nicira_resubmit.rb +13 -11
  139. data/lib/pio/open_flow/nicira_resubmit_table.rb +17 -10
  140. data/lib/pio/open_flow/parser.rb +19 -0
  141. data/lib/pio/open_flow/port.rb +2 -2
  142. data/lib/pio/open_flow/transaction_id.rb +2 -2
  143. data/lib/pio/open_flow/version.rb +22 -0
  144. data/lib/pio/open_flow10/actions.rb +16 -16
  145. data/lib/pio/open_flow10/aggregate_stats/reply.rb +2 -1
  146. data/lib/pio/open_flow10/aggregate_stats/request.rb +1 -3
  147. data/lib/pio/open_flow10/barrier/reply.rb +1 -1
  148. data/lib/pio/open_flow10/barrier/request.rb +1 -1
  149. data/lib/pio/open_flow10/description_stats/reply.rb +1 -1
  150. data/lib/pio/open_flow10/description_stats/request.rb +1 -3
  151. data/lib/pio/open_flow10/echo/reply.rb +3 -3
  152. data/lib/pio/open_flow10/echo/request.rb +3 -3
  153. data/lib/pio/open_flow10/enqueue.rb +3 -3
  154. data/lib/pio/open_flow10/error.rb +3 -13
  155. data/lib/pio/open_flow10/error/bad_request.rb +5 -29
  156. data/lib/pio/open_flow10/error/bad_request/bad_request_code.rb +35 -0
  157. data/lib/pio/open_flow10/error/error_type10.rb +1 -1
  158. data/lib/pio/open_flow10/error/hello_failed.rb +6 -4
  159. data/lib/pio/open_flow10/exact_match.rb +12 -10
  160. data/lib/pio/open_flow10/features/reply.rb +16 -31
  161. data/lib/pio/open_flow10/features/request.rb +1 -4
  162. data/lib/pio/open_flow10/flow_mod.rb +8 -33
  163. data/lib/pio/open_flow10/flow_mod/command.rb +28 -0
  164. data/lib/pio/open_flow10/flow_removed.rb +2 -17
  165. data/lib/pio/open_flow10/flow_removed/reason.rb +22 -0
  166. data/lib/pio/open_flow10/flow_stats/reply.rb +3 -4
  167. data/lib/pio/open_flow10/flow_stats/request.rb +1 -3
  168. data/lib/pio/open_flow10/hello.rb +1 -4
  169. data/lib/pio/open_flow10/match.rb +13 -12
  170. data/lib/pio/open_flow10/packet_in.rb +32 -28
  171. data/lib/pio/open_flow10/packet_in/reason.rb +25 -0
  172. data/lib/pio/open_flow10/packet_out.rb +5 -6
  173. data/lib/pio/open_flow10/phy_port16.rb +36 -58
  174. data/lib/pio/open_flow10/port_stats/request.rb +1 -3
  175. data/lib/pio/open_flow10/port_status.rb +23 -30
  176. data/lib/pio/open_flow10/port_status/reason.rb +21 -0
  177. data/lib/pio/open_flow10/queue_stats/request.rb +1 -3
  178. data/lib/pio/open_flow10/send_out_port.rb +2 -2
  179. data/lib/pio/open_flow10/set_tos.rb +2 -2
  180. data/lib/pio/open_flow10/set_transport_port.rb +4 -2
  181. data/lib/pio/open_flow10/set_vlan_priority.rb +1 -1
  182. data/lib/pio/open_flow10/set_vlan_vid.rb +1 -1
  183. data/lib/pio/open_flow10/stats_reply.rb +7 -10
  184. data/lib/pio/open_flow10/stats_request.rb +16 -15
  185. data/lib/pio/open_flow10/stats_type.rb +1 -1
  186. data/lib/pio/open_flow10/table_stats/request.rb +1 -3
  187. data/lib/pio/open_flow10/vendor_action.rb +22 -20
  188. data/lib/pio/open_flow13.rb +7 -0
  189. data/lib/pio/open_flow13/actions.rb +34 -32
  190. data/lib/pio/open_flow13/apply.rb +25 -22
  191. data/lib/pio/open_flow13/copy_ttl_inwards.rb +15 -0
  192. data/lib/pio/open_flow13/copy_ttl_outwards.rb +15 -0
  193. data/lib/pio/open_flow13/decrement_ip_ttl.rb +15 -0
  194. data/lib/pio/open_flow13/echo/reply.rb +3 -3
  195. data/lib/pio/open_flow13/echo/request.rb +3 -3
  196. data/lib/pio/open_flow13/error.rb +7 -18
  197. data/lib/pio/open_flow13/error/bad_request.rb +4 -3
  198. data/lib/pio/open_flow13/error/error_type13.rb +1 -1
  199. data/lib/pio/open_flow13/error/hello_failed.rb +3 -2
  200. data/lib/pio/open_flow13/features/reply.rb +9 -16
  201. data/lib/pio/open_flow13/features/request.rb +1 -1
  202. data/lib/pio/open_flow13/flow_mod.rb +14 -19
  203. data/lib/pio/open_flow13/goto_table.rb +26 -24
  204. data/lib/pio/open_flow13/hello.rb +3 -4
  205. data/lib/pio/open_flow13/match.rb +173 -9
  206. data/lib/pio/open_flow13/meter.rb +23 -20
  207. data/lib/pio/open_flow13/nicira_conjunction.rb +26 -0
  208. data/lib/pio/open_flow13/nicira_reg_load.rb +44 -24
  209. data/lib/pio/open_flow13/nicira_reg_move.rb +77 -35
  210. data/lib/pio/open_flow13/nicira_send_out_port.rb +37 -21
  211. data/lib/pio/open_flow13/nicira_stack_pop.rb +49 -0
  212. data/lib/pio/open_flow13/nicira_stack_push.rb +49 -0
  213. data/lib/pio/open_flow13/packet_in.rb +11 -8
  214. data/lib/pio/open_flow13/packet_out.rb +9 -8
  215. data/lib/pio/open_flow13/set_ip_ttl.rb +16 -0
  216. data/lib/pio/open_flow13/stats_request.rb +2 -4
  217. data/lib/pio/open_flow13/write_metadata.rb +40 -38
  218. data/lib/pio/options.rb +8 -3
  219. data/lib/pio/parser.rb +7 -16
  220. data/lib/pio/ruby_dumper.rb +69 -0
  221. data/lib/pio/type/ether_type.rb +31 -0
  222. data/lib/pio/type/ip_address.rb +8 -0
  223. data/lib/pio/type/mac_address.rb +10 -0
  224. data/lib/pio/udp.rb +3 -3
  225. data/lib/pio/udp_header.rb +1 -1
  226. data/lib/pio/version.rb +1 -1
  227. data/pio.gemspec +5 -38
  228. data/spec/pio/arp/reply_spec.rb +0 -4
  229. data/spec/pio/arp/request_spec.rb +0 -4
  230. data/spec/pio/arp_spec.rb +0 -4
  231. data/spec/pio/icmp/reply_spec.rb +4 -8
  232. data/spec/pio/icmp/request_spec.rb +6 -10
  233. data/spec/pio/icmp_spec.rb +8 -12
  234. data/spec/pio/monkey_patch/integer_spec.rb +23 -0
  235. data/spec/pio/open_flow/nicira_resubmit_spec.rb +19 -0
  236. data/spec/pio/open_flow/nicira_resubmit_table_spec.rb +20 -0
  237. data/spec/pio/open_flow10/error/hello_failed_spec.rb +2 -2
  238. data/spec/pio/open_flow10/flow_mod_spec.rb +24 -24
  239. data/spec/pio/open_flow10/flow_stats_request_spec.rb +3 -3
  240. data/spec/pio/open_flow10/hello_spec.rb +0 -2
  241. data/spec/pio/open_flow10/match_spec.rb +38 -38
  242. data/spec/pio/open_flow10/packet_out_spec.rb +0 -349
  243. data/spec/pio/open_flow10/phy_port16_spec.rb +5 -5
  244. data/spec/pio/open_flow13/error/hello_failed_spec.rb +2 -2
  245. data/spec/pio/open_flow13/goto_table_spec.rb +2 -2
  246. data/spec/pio/open_flow13/hello_spec.rb +15 -15
  247. data/spec/pio/open_flow13/match_spec.rb +29 -29
  248. data/spec/pio/open_flow13/meter_spec.rb +2 -2
  249. data/spec/pio/open_flow13/nicira_reg_load_spec.rb +71 -0
  250. data/spec/pio/open_flow13/nicira_reg_move_spec.rb +40 -0
  251. data/spec/pio/open_flow13/nicira_send_out_port_spec.rb +29 -0
  252. data/spec/pio/open_flow13/write_metadata_spec.rb +3 -3
  253. data/spec/pio/open_flow_spec.rb +6 -6
  254. data/spec/spec_helper.rb +1 -1
  255. data/spec/support/shared_examples_for_openflow_messages.rb +5 -13
  256. metadata +191 -790
  257. data/LICENSE +0 -674
  258. data/bin/_guard-core +0 -16
  259. data/bin/byebug +0 -16
  260. data/bin/cc-tddium-post-worker +0 -16
  261. data/bin/cdiff +0 -16
  262. data/bin/coderay +0 -16
  263. data/bin/colortab +0 -16
  264. data/bin/coveralls +0 -16
  265. data/bin/cucumber +0 -16
  266. data/bin/decolor +0 -16
  267. data/bin/flay +0 -16
  268. data/bin/flog +0 -16
  269. data/bin/guard +0 -16
  270. data/bin/htmldiff +0 -16
  271. data/bin/inch +0 -16
  272. data/bin/ldiff +0 -16
  273. data/bin/listen +0 -16
  274. data/bin/minitar +0 -16
  275. data/bin/pry +0 -16
  276. data/bin/rake +0 -16
  277. data/bin/reek +0 -16
  278. data/bin/relish +0 -16
  279. data/bin/restclient +0 -16
  280. data/bin/rspec +0 -16
  281. data/bin/rubocop +0 -16
  282. data/bin/ruby-parse +0 -16
  283. data/bin/ruby-rewrite +0 -16
  284. data/bin/ruby_parse +0 -16
  285. data/bin/ruby_parse_extract_error +0 -16
  286. data/bin/sparkr +0 -16
  287. data/bin/term_display +0 -16
  288. data/bin/term_mandel +0 -16
  289. data/bin/terminal-notifier +0 -16
  290. data/bin/thor +0 -16
  291. data/bin/unparser +0 -16
  292. data/bin/yard +0 -16
  293. data/bin/yardoc +0 -16
  294. data/bin/yri +0 -16
  295. data/features/arp-storm.pcap +0 -0
  296. data/features/arp.pcap +0 -0
  297. data/features/dhcp.pcap +0 -0
  298. data/features/icmp.feature +0 -130
  299. data/features/icmp.pcap +0 -0
  300. data/features/icmpv6.pcap +0 -0
  301. data/features/lldp.detailed.pcap +0 -0
  302. data/features/lldp.minimal.pcap +0 -0
  303. data/features/open_flow10/aggregate_stats_reply.raw +0 -0
  304. data/features/open_flow10/aggregate_stats_request.raw +0 -0
  305. data/features/open_flow10/bad_request.raw +0 -0
  306. data/features/open_flow10/barrier_reply.raw +0 -0
  307. data/features/open_flow10/barrier_request.raw +0 -0
  308. data/features/open_flow10/description_stats_reply.raw +0 -0
  309. data/features/open_flow10/description_stats_request.raw +0 -0
  310. data/features/open_flow10/echo_reply.raw +0 -0
  311. data/features/open_flow10/echo_request.raw +0 -0
  312. data/features/open_flow10/error.raw +0 -0
  313. data/features/open_flow10/features_reply.raw +0 -0
  314. data/features/open_flow10/features_request.raw +0 -0
  315. data/features/open_flow10/flow_mod_add.raw +0 -0
  316. data/features/open_flow10/flow_mod_delete.raw +0 -0
  317. data/features/open_flow10/flow_mod_delete_strict.raw +0 -0
  318. data/features/open_flow10/flow_mod_modify.raw +0 -0
  319. data/features/open_flow10/flow_mod_modify_strict.raw +0 -0
  320. data/features/open_flow10/flow_removed.raw +0 -0
  321. data/features/open_flow10/flow_stats_reply.raw +0 -0
  322. data/features/open_flow10/flow_stats_request.raw +0 -0
  323. data/features/open_flow10/get_config_reply.raw +0 -0
  324. data/features/open_flow10/get_config_request.raw +0 -0
  325. data/features/open_flow10/hello.raw +0 -0
  326. data/features/open_flow10/hello_failed.raw +0 -0
  327. data/features/open_flow10/nx_flow_mod_add.raw +0 -0
  328. data/features/open_flow10/nx_flow_mod_delete.raw +0 -0
  329. data/features/open_flow10/nx_flow_mod_delete_strict.raw +0 -0
  330. data/features/open_flow10/nx_flow_mod_modify.raw +0 -0
  331. data/features/open_flow10/nx_flow_mod_modify_strict.raw +0 -0
  332. data/features/open_flow10/nxast_learn.raw +0 -0
  333. data/features/open_flow10/packet_in.raw +0 -0
  334. data/features/open_flow10/packet_in_arp_reply.raw +0 -0
  335. data/features/open_flow10/packet_in_arp_request.raw +0 -0
  336. data/features/open_flow10/packet_in_cbench.raw +0 -0
  337. data/features/open_flow10/packet_out.raw +0 -0
  338. data/features/open_flow10/port_mod.raw +0 -0
  339. data/features/open_flow10/port_stats_reply.raw +0 -0
  340. data/features/open_flow10/port_stats_request.raw +0 -0
  341. data/features/open_flow10/port_status.raw +0 -0
  342. data/features/open_flow10/queue_get_config_reply.raw +0 -0
  343. data/features/open_flow10/queue_get_config_request.raw +0 -0
  344. data/features/open_flow10/queue_stats_request.raw +0 -0
  345. data/features/open_flow10/set_config.raw +0 -0
  346. data/features/open_flow10/table_stats_reply.raw +0 -0
  347. data/features/open_flow10/table_stats_request.raw +0 -0
  348. data/features/open_flow10/vendor.raw +0 -0
  349. data/features/open_flow10/vendor_stats_request.raw +0 -0
  350. data/features/open_flow13/action_copy_ttl_in.raw +0 -0
  351. data/features/open_flow13/action_copy_ttl_out.raw +0 -0
  352. data/features/open_flow13/action_dec_mpls_ttl.raw +0 -0
  353. data/features/open_flow13/action_dec_nw_ttl.raw +0 -0
  354. data/features/open_flow13/action_group.raw +0 -0
  355. data/features/open_flow13/action_pop_mpls.raw +0 -0
  356. data/features/open_flow13/action_pop_pbb.raw +0 -0
  357. data/features/open_flow13/action_pop_vlan.raw +0 -0
  358. data/features/open_flow13/action_push_mpls.raw +0 -0
  359. data/features/open_flow13/action_push_pbb.raw +0 -0
  360. data/features/open_flow13/action_push_vlan.raw +0 -0
  361. data/features/open_flow13/action_set_field.raw +0 -0
  362. data/features/open_flow13/action_set_mpls_ttl.raw +0 -0
  363. data/features/open_flow13/action_set_nw_ttl.raw +0 -0
  364. data/features/open_flow13/action_set_queue.raw +0 -0
  365. data/features/open_flow13/apply_actions.raw +0 -0
  366. data/features/open_flow13/bad_request.raw +0 -0
  367. data/features/open_flow13/echo_reply_body.raw +0 -0
  368. data/features/open_flow13/echo_reply_no_body.raw +0 -0
  369. data/features/open_flow13/echo_request_body.raw +0 -0
  370. data/features/open_flow13/echo_request_no_body.raw +0 -0
  371. data/features/open_flow13/features_reply.raw +0 -0
  372. data/features/open_flow13/features_request.raw +0 -0
  373. data/features/open_flow13/flow_add_apply_no_match.raw +0 -0
  374. data/features/open_flow13/flow_mod_add_apply_no_match.raw +0 -0
  375. data/features/open_flow13/flow_mod_no_match_or_instructions.raw +0 -0
  376. data/features/open_flow13/hello_failed.raw +0 -0
  377. data/features/open_flow13/hello_no_version_bitmap.raw +0 -0
  378. data/features/open_flow13/hello_version_bitmap.raw +0 -0
  379. data/features/open_flow13/instruction_clear_actions.raw +0 -0
  380. data/features/open_flow13/instruction_goto_table.raw +0 -0
  381. data/features/open_flow13/instruction_meter.raw +0 -0
  382. data/features/open_flow13/instruction_write_actions.raw +0 -0
  383. data/features/open_flow13/instruction_write_metadata.raw +0 -0
  384. data/features/open_flow13/oxm_arp_op_field.raw +0 -0
  385. data/features/open_flow13/oxm_arp_sha_field.raw +0 -0
  386. data/features/open_flow13/oxm_arp_spa_field.raw +0 -0
  387. data/features/open_flow13/oxm_arp_tha_field.raw +0 -0
  388. data/features/open_flow13/oxm_arp_tpa_field.raw +0 -0
  389. data/features/open_flow13/oxm_ether_destination_field.raw +0 -0
  390. data/features/open_flow13/oxm_ether_source_field.raw +0 -0
  391. data/features/open_flow13/oxm_ether_type_field.raw +0 -0
  392. data/features/open_flow13/oxm_experimenter_stratos_basic_dot11.raw +0 -0
  393. data/features/open_flow13/oxm_icmpv4_code_field.raw +0 -0
  394. data/features/open_flow13/oxm_icmpv4_type_field.raw +0 -0
  395. data/features/open_flow13/oxm_in_phy_port_field.raw +0 -0
  396. data/features/open_flow13/oxm_in_port_field.raw +0 -0
  397. data/features/open_flow13/oxm_invalid_field.raw +0 -0
  398. data/features/open_flow13/oxm_ip_dscp_field.raw +0 -0
  399. data/features/open_flow13/oxm_ip_ecn_field.raw +0 -0
  400. data/features/open_flow13/oxm_ipv4_destination_field.raw +0 -0
  401. data/features/open_flow13/oxm_ipv4_source_field.raw +0 -0
  402. data/features/open_flow13/oxm_ipv6_destination_field.raw +0 -0
  403. data/features/open_flow13/oxm_ipv6_source_field.raw +0 -0
  404. data/features/open_flow13/oxm_masked_arp_sha_field.raw +0 -0
  405. data/features/open_flow13/oxm_masked_arp_spa_field.raw +0 -0
  406. data/features/open_flow13/oxm_masked_arp_tha_field.raw +0 -0
  407. data/features/open_flow13/oxm_masked_arp_tpa_field.raw +0 -0
  408. data/features/open_flow13/oxm_masked_ether_destination_field.raw +0 -0
  409. data/features/open_flow13/oxm_masked_ether_source_field.raw +0 -0
  410. data/features/open_flow13/oxm_masked_ipv4_destination_field.raw +0 -0
  411. data/features/open_flow13/oxm_masked_ipv4_source_field.raw +0 -0
  412. data/features/open_flow13/oxm_masked_ipv6_destination_field.raw +0 -0
  413. data/features/open_flow13/oxm_masked_ipv6_source_field.raw +0 -0
  414. data/features/open_flow13/oxm_masked_tunnel_id_field.raw +0 -0
  415. data/features/open_flow13/oxm_metadata_field.raw +0 -0
  416. data/features/open_flow13/oxm_metadata_masked_field.raw +0 -0
  417. data/features/open_flow13/oxm_no_fields.raw +0 -0
  418. data/features/open_flow13/oxm_sctp_destination_field.raw +0 -0
  419. data/features/open_flow13/oxm_sctp_source_field.raw +0 -0
  420. data/features/open_flow13/oxm_tcp_destination_field.raw +0 -0
  421. data/features/open_flow13/oxm_tcp_field.raw +0 -0
  422. data/features/open_flow13/oxm_tcp_source_field.raw +0 -0
  423. data/features/open_flow13/oxm_tunnel_id_field.raw +0 -0
  424. data/features/open_flow13/oxm_udp_destination_field.raw +0 -0
  425. data/features/open_flow13/oxm_udp_field.raw +0 -0
  426. data/features/open_flow13/oxm_udp_source_field.raw +0 -0
  427. data/features/open_flow13/oxm_vlan_pcp_field.raw +0 -0
  428. data/features/open_flow13/oxm_vlan_vid_field.raw +0 -0
  429. data/features/open_flow13/packet_in.raw +0 -0
  430. data/features/open_flow13/packet_out.raw +0 -0
  431. data/features/open_flow13/send_out_port.raw +0 -0
  432. data/features/open_flow13/table_stats_reply.raw +0 -0
  433. data/features/open_flow13/table_stats_request.raw +0 -0
  434. data/features/step_definitions/LICENSE +0 -675
  435. data/features/udp_no_payload.raw +0 -0
  436. data/features/udp_with_payload.raw +0 -0
  437. data/lib/pio/icmp/options.rb +0 -21
  438. data/lib/pio/open_flow/error.rb +0 -19
  439. data/lib/pio/open_flow/open_flow_header.rb +0 -31
  440. data/lib/pio/open_flow13/buffer_id.rb +0 -17
  441. data/spec/pio/arp/reply/options_spec.rb +0 -143
  442. data/spec/pio/arp/request/options_spec.rb +0 -113
@@ -386,7 +386,7 @@ describe Pio::OpenFlow13::Match do
386
386
  end
387
387
  Then { match.ether_type == 0x0800 }
388
388
  Then { match.ip_protocol == 1 }
389
- Then { match.icmpv4_code == 0 }
389
+ Then { match.icmpv4_code.zero? }
390
390
  And { match.class == Pio::OpenFlow13::Match }
391
391
  And { match.length == 24 }
392
392
  And { match.match_type == Pio::OpenFlow13::MATCH_TYPE_OXM }
@@ -696,15 +696,15 @@ describe Pio::OpenFlow13::Match do
696
696
  end
697
697
 
698
698
  def read_raw_data_file(name)
699
- IO.read File.join(__dir__, '..', '..', '..', name)
699
+ IO.read File.join(__dir__, '..', '..', '..', 'fixtures', name)
700
700
  end
701
701
 
702
702
  describe '.read' do
703
703
  When(:match) { Pio::OpenFlow13::Match.read(raw_data) }
704
704
 
705
- context 'with file "features/open_flow13/oxm_no_fields.raw"' do
705
+ context 'with file "open_flow13/oxm_no_fields.raw"' do
706
706
  Given(:raw_data) do
707
- read_raw_data_file 'features/open_flow13/oxm_no_fields.raw'
707
+ read_raw_data_file 'open_flow13/oxm_no_fields.raw'
708
708
  end
709
709
  Then { match.match_fields == [] }
710
710
  And { match.class == Pio::OpenFlow13::Match }
@@ -713,9 +713,9 @@ describe Pio::OpenFlow13::Match do
713
713
  And { match.match_length == 4 }
714
714
  end
715
715
 
716
- context 'with file "features/open_flow13/oxm_in_port_field.raw"' do
716
+ context 'with file "open_flow13/oxm_in_port_field.raw"' do
717
717
  Given(:raw_data) do
718
- read_raw_data_file 'features/open_flow13/oxm_in_port_field.raw'
718
+ read_raw_data_file 'open_flow13/oxm_in_port_field.raw'
719
719
  end
720
720
  Then { match.in_port == 1 }
721
721
  And { match.class == Pio::OpenFlow13::Match }
@@ -735,9 +735,9 @@ describe Pio::OpenFlow13::Match do
735
735
  And { match.match_fields[0].oxm_length == 4 }
736
736
  end
737
737
 
738
- context 'with file "features/open_flow13/oxm_ether_destination_field.raw"' do
738
+ context 'with file "open_flow13/oxm_ether_destination_field.raw"' do
739
739
  Given(:raw_data) do
740
- read_raw_data_file 'features/open_flow13/oxm_ether_destination_field.raw'
740
+ read_raw_data_file 'open_flow13/oxm_ether_destination_field.raw'
741
741
  end
742
742
  Then { match.destination_mac_address == 'ff:ff:ff:ff:ff:ff' }
743
743
  And { match.class == Pio::OpenFlow13::Match }
@@ -757,9 +757,9 @@ describe Pio::OpenFlow13::Match do
757
757
  And { match.match_fields[0].oxm_length == 6 }
758
758
  end
759
759
 
760
- context 'with file "features/open_flow13/oxm_ether_source_field.raw"' do
760
+ context 'with file "open_flow13/oxm_ether_source_field.raw"' do
761
761
  Given(:raw_data) do
762
- read_raw_data_file 'features/open_flow13/oxm_ether_source_field.raw'
762
+ read_raw_data_file 'open_flow13/oxm_ether_source_field.raw'
763
763
  end
764
764
  Then { match.source_mac_address == '01:02:03:04:05:06' }
765
765
  And { match.class == Pio::OpenFlow13::Match }
@@ -779,9 +779,9 @@ describe Pio::OpenFlow13::Match do
779
779
  And { match.match_fields[0].oxm_length == 6 }
780
780
  end
781
781
 
782
- context 'with file "features/open_flow13/oxm_masked_ether_destination_field.raw"' do
782
+ context 'with file "open_flow13/oxm_masked_ether_destination_field.raw"' do
783
783
  Given(:raw_data) do
784
- read_raw_data_file 'features/open_flow13/oxm_masked_ether_destination_field.raw'
784
+ read_raw_data_file 'open_flow13/oxm_masked_ether_destination_field.raw'
785
785
  end
786
786
  Then { match.destination_mac_address == 'ff:ff:ff:ff:ff:ff' }
787
787
  Then { match.destination_mac_address_mask == 'ff:ff:ff:00:00:00' }
@@ -802,9 +802,9 @@ describe Pio::OpenFlow13::Match do
802
802
  And { match.match_fields[0].oxm_length == 12 }
803
803
  end
804
804
 
805
- context 'with file "features/open_flow13/oxm_masked_ether_source_field.raw"' do
805
+ context 'with file "open_flow13/oxm_masked_ether_source_field.raw"' do
806
806
  Given(:raw_data) do
807
- read_raw_data_file 'features/open_flow13/oxm_masked_ether_source_field.raw'
807
+ read_raw_data_file 'open_flow13/oxm_masked_ether_source_field.raw'
808
808
  end
809
809
  Then { match.source_mac_address == '01:02:03:04:05:06' }
810
810
  Then { match.source_mac_address_mask == 'ff:ff:ff:00:00:00' }
@@ -825,11 +825,11 @@ describe Pio::OpenFlow13::Match do
825
825
  And { match.match_fields[0].oxm_length == 12 }
826
826
  end
827
827
 
828
- context 'with file "features/open_flow13/oxm_ether_type_field.raw"' do
828
+ context 'with file "open_flow13/oxm_ether_type_field.raw"' do
829
829
  Given(:raw_data) do
830
- read_raw_data_file 'features/open_flow13/oxm_ether_type_field.raw'
830
+ read_raw_data_file 'open_flow13/oxm_ether_type_field.raw'
831
831
  end
832
- Then { match.ether_type == 0 }
832
+ Then { match.ether_type.zero? }
833
833
  And { match.class == Pio::OpenFlow13::Match }
834
834
  And { match.length == 16 }
835
835
  And { match.match_type == Pio::OpenFlow13::MATCH_TYPE_OXM }
@@ -847,9 +847,9 @@ describe Pio::OpenFlow13::Match do
847
847
  And { match.match_fields[0].oxm_length == 2 }
848
848
  end
849
849
 
850
- context 'with file "features/open_flow13/oxm_vlan_vid_field.raw"' do
850
+ context 'with file "open_flow13/oxm_vlan_vid_field.raw"' do
851
851
  Given(:raw_data) do
852
- read_raw_data_file 'features/open_flow13/oxm_vlan_vid_field.raw'
852
+ read_raw_data_file 'open_flow13/oxm_vlan_vid_field.raw'
853
853
  end
854
854
  Then { match.vlan_vid == 10 }
855
855
  And { match.class == Pio::OpenFlow13::Match }
@@ -869,9 +869,9 @@ describe Pio::OpenFlow13::Match do
869
869
  And { match.match_fields[0].oxm_length == 2 }
870
870
  end
871
871
 
872
- context 'with file "features/open_flow13/oxm_vlan_pcp_field.raw"' do
872
+ context 'with file "open_flow13/oxm_vlan_pcp_field.raw"' do
873
873
  Given(:raw_data) do
874
- read_raw_data_file 'features/open_flow13/oxm_vlan_pcp_field.raw'
874
+ read_raw_data_file 'open_flow13/oxm_vlan_pcp_field.raw'
875
875
  end
876
876
  Then { match.vlan_pcp == 5 }
877
877
  And { match.class == Pio::OpenFlow13::Match }
@@ -891,9 +891,9 @@ describe Pio::OpenFlow13::Match do
891
891
  And { match.match_fields[0].oxm_length == 2 }
892
892
  end
893
893
 
894
- context 'with file "features/open_flow13/oxm_ip_dscp_field.raw"' do
894
+ context 'with file "open_flow13/oxm_ip_dscp_field.raw"' do
895
895
  Given(:raw_data) do
896
- read_raw_data_file 'features/open_flow13/oxm_ip_dscp_field.raw'
896
+ read_raw_data_file 'open_flow13/oxm_ip_dscp_field.raw'
897
897
  end
898
898
  Then { match.ip_dscp == 0x2e }
899
899
  And { match.class == Pio::OpenFlow13::Match }
@@ -913,9 +913,9 @@ describe Pio::OpenFlow13::Match do
913
913
  And { match.match_fields[0].oxm_length == 2 }
914
914
  end
915
915
 
916
- context 'with file "features/open_flow13/oxm_ip_ecn_field.raw"' do
916
+ context 'with file "open_flow13/oxm_ip_ecn_field.raw"' do
917
917
  Given(:raw_data) do
918
- read_raw_data_file 'features/open_flow13/oxm_ip_ecn_field.raw'
918
+ read_raw_data_file 'open_flow13/oxm_ip_ecn_field.raw'
919
919
  end
920
920
  Then { match.ip_ecn == 3 }
921
921
  And { match.class == Pio::OpenFlow13::Match }
@@ -935,9 +935,9 @@ describe Pio::OpenFlow13::Match do
935
935
  And { match.match_fields[0].oxm_length == 2 }
936
936
  end
937
937
 
938
- context 'with file "features/open_flow13/oxm_ipv4_source_field.raw"' do
938
+ context 'with file "open_flow13/oxm_ipv4_source_field.raw"' do
939
939
  Given(:raw_data) do
940
- read_raw_data_file 'features/open_flow13/oxm_ipv4_source_field.raw'
940
+ read_raw_data_file 'open_flow13/oxm_ipv4_source_field.raw'
941
941
  end
942
942
  Then { match.ether_type == 0x0800 }
943
943
  Then { match.ipv4_source_address == '1.2.3.4' }
@@ -968,9 +968,9 @@ describe Pio::OpenFlow13::Match do
968
968
  And { match.match_fields[1].oxm_length == 4 }
969
969
  end
970
970
 
971
- context 'with file "features/open_flow13/oxm_ipv4_destination_field.raw"' do
971
+ context 'with file "open_flow13/oxm_ipv4_destination_field.raw"' do
972
972
  Given(:raw_data) do
973
- read_raw_data_file 'features/open_flow13/oxm_ipv4_destination_field.raw'
973
+ read_raw_data_file 'open_flow13/oxm_ipv4_destination_field.raw'
974
974
  end
975
975
  Then { match.ether_type == 0x0800 }
976
976
  Then { match.ipv4_destination_address == '11.22.33.44' }
@@ -1,8 +1,8 @@
1
1
  require 'pio/open_flow13/meter'
2
2
 
3
- describe Pio::Meter do
3
+ describe Pio::OpenFlow13::Meter do
4
4
  describe '.new' do
5
- When(:meter) { Pio::Meter.new(options) }
5
+ When(:meter) { Pio::OpenFlow13::Meter.new(options) }
6
6
 
7
7
  context 'with 1' do
8
8
  Given(:options) { 1 }
@@ -0,0 +1,71 @@
1
+ require 'pio/open_flow13/nicira_reg_load'
2
+
3
+ describe Pio::OpenFlow13::NiciraRegLoad do
4
+ describe '.new' do
5
+ When(:nicira_reg_load) do
6
+ Pio::OpenFlow13::NiciraRegLoad.new(value, destination, options)
7
+ end
8
+
9
+ context 'with 0xdeadbeef, :reg0' do
10
+ Given(:value) { 0xdeadbeef }
11
+ Given(:destination) { :reg0 }
12
+ Given(:options) { {} }
13
+
14
+ Invariant do
15
+ nicira_reg_load.n_bits == nicira_reg_load._destination[:oxm_length] * 8
16
+ end
17
+
18
+ Then { nicira_reg_load.action_type == 0xffff }
19
+ Then { nicira_reg_load.action_length == 24 }
20
+ Then { nicira_reg_load.vendor == 0x2320 }
21
+ Then { nicira_reg_load.subtype == 7 }
22
+ Then { nicira_reg_load.offset.zero? }
23
+ Then { nicira_reg_load.n_bits == 32 }
24
+ Then { nicira_reg_load.destination == :reg0 }
25
+ Then { nicira_reg_load._destination[:oxm_class] == 1 }
26
+ Then { nicira_reg_load._destination[:oxm_field].zero? }
27
+ Then { nicira_reg_load._destination[:oxm_length] == 4 }
28
+ Then { nicira_reg_load.value == 0xdeadbeef }
29
+ end
30
+
31
+ context 'with 0xdeadbeef, :metadata' do
32
+ Given(:value) { 0xdeadbeef }
33
+ Given(:destination) { :metadata }
34
+ Given(:options) { {} }
35
+
36
+ Invariant do
37
+ nicira_reg_load.n_bits == nicira_reg_load._destination[:oxm_length] * 8
38
+ end
39
+
40
+ Then { nicira_reg_load.action_type == 0xffff }
41
+ Then { nicira_reg_load.action_length == 24 }
42
+ Then { nicira_reg_load.vendor == 0x2320 }
43
+ Then { nicira_reg_load.subtype == 7 }
44
+ Then { nicira_reg_load.offset.zero? }
45
+ Then { nicira_reg_load.n_bits == 64 }
46
+ Then { nicira_reg_load.destination == :metadata }
47
+ Then { nicira_reg_load._destination[:oxm_class] == 0x8000 }
48
+ Then { nicira_reg_load._destination[:oxm_field] == 2 }
49
+ Then { nicira_reg_load._destination[:oxm_length] == 8 }
50
+ Then { nicira_reg_load.value == 0xdeadbeef }
51
+ end
52
+
53
+ context 'with 0xdeadbeef, :reg0, offset: 16, n_bits: 16' do
54
+ Given(:value) { 0xdeadbeef }
55
+ Given(:destination) { :reg0 }
56
+ Given(:options) { { offset: 16, n_bits: 16 } }
57
+
58
+ Then { nicira_reg_load.action_type == 0xffff }
59
+ Then { nicira_reg_load.action_length == 24 }
60
+ Then { nicira_reg_load.vendor == 0x2320 }
61
+ Then { nicira_reg_load.subtype == 7 }
62
+ Then { nicira_reg_load.offset == 16 }
63
+ Then { nicira_reg_load.n_bits == 16 }
64
+ Then { nicira_reg_load.destination == :reg0 }
65
+ Then { nicira_reg_load._destination[:oxm_class] == 1 }
66
+ Then { nicira_reg_load._destination[:oxm_field].zero? }
67
+ Then { nicira_reg_load._destination[:oxm_length] == 4 }
68
+ Then { nicira_reg_load.value == 0xdeadbeef }
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,40 @@
1
+ require 'pio/open_flow13/nicira_reg_move'
2
+
3
+ describe Pio::OpenFlow13::NiciraRegMove do
4
+ describe '.new' do
5
+ When(:nicira_reg_move) do
6
+ Pio::OpenFlow13::NiciraRegMove.new(options)
7
+ end
8
+
9
+ context 'with source: :arp_sender_hardware_address,'\
10
+ ' destination: :arp_target_hardware_address' do
11
+ Given(:options) do
12
+ { source: :arp_sender_hardware_address,
13
+ destination: :arp_target_hardware_address }
14
+ end
15
+
16
+ Invariant do
17
+ nicira_reg_move.n_bits ==
18
+ nicira_reg_move._source[:oxm_length] * 8
19
+ end
20
+
21
+ Then { nicira_reg_move.action_type == 0xffff }
22
+ Then { nicira_reg_move.action_length == 24 }
23
+ Then { nicira_reg_move.vendor == 0x2320 }
24
+ Then { nicira_reg_move.subtype == 6 }
25
+ Then { nicira_reg_move.n_bits == 48 }
26
+ Then { nicira_reg_move.source_offset.zero? }
27
+ Then { nicira_reg_move.destination_offset.zero? }
28
+ Then { nicira_reg_move.source == :arp_sender_hardware_address }
29
+ Then { nicira_reg_move._source[:oxm_class] == 0x8000 }
30
+ Then { nicira_reg_move._source[:oxm_field] == 24 }
31
+ Then { nicira_reg_move._source[:oxm_hasmask].zero? }
32
+ Then { nicira_reg_move._source[:oxm_length] == 6 }
33
+ Then { nicira_reg_move.destination == :arp_target_hardware_address }
34
+ Then { nicira_reg_move._destination[:oxm_class] == 0x8000 }
35
+ Then { nicira_reg_move._destination[:oxm_field] == 25 }
36
+ Then { nicira_reg_move._destination[:oxm_hasmask].zero? }
37
+ Then { nicira_reg_move._destination[:oxm_length] == 6 }
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,29 @@
1
+ require 'pio/open_flow13/nicira_send_out_port'
2
+
3
+ describe Pio::OpenFlow13::NiciraSendOutPort do
4
+ describe '.new' do
5
+ When(:nicira_send_out_port) do
6
+ Pio::OpenFlow13::NiciraSendOutPort.new(source)
7
+ end
8
+
9
+ context 'with :reg0' do
10
+ Given(:source) { :reg0 }
11
+
12
+ Invariant do
13
+ nicira_send_out_port.n_bits ==
14
+ nicira_send_out_port._source[:oxm_length] * 8
15
+ end
16
+
17
+ Then { nicira_send_out_port.action_type == 0xffff }
18
+ Then { nicira_send_out_port.action_length == 24 }
19
+ Then { nicira_send_out_port.vendor == 0x2320 }
20
+ Then { nicira_send_out_port.subtype == 15 }
21
+ Then { nicira_send_out_port.offset.zero? }
22
+ Then { nicira_send_out_port.n_bits == 32 }
23
+ Then { nicira_send_out_port.source == :reg0 }
24
+ Then { nicira_send_out_port._source[:oxm_class] == 1 }
25
+ Then { nicira_send_out_port._source[:oxm_field].zero? }
26
+ Then { nicira_send_out_port._source[:oxm_length] == 4 }
27
+ end
28
+ end
29
+ end
@@ -1,8 +1,8 @@
1
1
  require 'pio/open_flow13/write_metadata'
2
2
 
3
- describe Pio::WriteMetadata do
3
+ describe Pio::OpenFlow13::WriteMetadata do
4
4
  describe '.new' do
5
- When(:write_metadata) { Pio::WriteMetadata.new(options) }
5
+ When(:write_metadata) { Pio::OpenFlow13::WriteMetadata.new(options) }
6
6
 
7
7
  context 'with metadata: 1' do
8
8
  Given(:options) do
@@ -11,7 +11,7 @@ describe Pio::WriteMetadata do
11
11
  }
12
12
  end
13
13
  Then { write_metadata.metadata == 1 }
14
- Then { write_metadata.metadata_mask == 0 }
14
+ Then { write_metadata.metadata_mask.zero? }
15
15
  end
16
16
 
17
17
  context 'with metadata: 1, metadata_mask: 1' do
@@ -2,32 +2,32 @@ require 'pio/open_flow'
2
2
 
3
3
  describe Pio::OpenFlow do
4
4
  describe 'switch_version' do
5
- When(:error) { Pio::OpenFlow.switch_version(version) }
5
+ When(:result) { Pio::OpenFlow.version = version }
6
6
 
7
7
  context 'with :OpenFlow10' do
8
8
  Given(:version) { :OpenFlow10 }
9
- Then { Pio::OpenFlow.version == 'OpenFlow10' }
9
+ Then { Pio::OpenFlow.version == :OpenFlow10 }
10
10
  end
11
11
 
12
12
  context 'with "OpenFlow10"' do
13
13
  Given(:version) { 'OpenFlow10' }
14
- Then { Pio::OpenFlow.version == 'OpenFlow10' }
14
+ Then { Pio::OpenFlow.version == :OpenFlow10 }
15
15
  end
16
16
 
17
17
  context 'with :OpenFlow13' do
18
18
  Given(:version) { :OpenFlow13 }
19
- Then { Pio::OpenFlow.version == 'OpenFlow13' }
19
+ Then { Pio::OpenFlow.version == :OpenFlow13 }
20
20
  end
21
21
 
22
22
  context 'with "OpenFlow13"' do
23
23
  Given(:version) { 'OpenFlow13' }
24
- Then { Pio::OpenFlow.version == 'OpenFlow13' }
24
+ Then { Pio::OpenFlow.version == :OpenFlow13 }
25
25
  end
26
26
 
27
27
  context 'with :OpenFlow100' do
28
28
  Given(:version) { :OpenFlow100 }
29
29
  Then do
30
- error == Failure(RuntimeError, 'OpenFlow100 is not supported yet.')
30
+ result == Failure(RuntimeError, 'OpenFlow100 is not supported yet.')
31
31
  end
32
32
  end
33
33
  end
@@ -8,7 +8,7 @@ if ENV['CODECLIMATE_REPO_TOKEN']
8
8
  formatters << CodeClimate::TestReporter::Formatter
9
9
  end
10
10
 
11
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[*formatters]
11
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(formatters)
12
12
  SimpleCov.start { add_filter '/vendor/' }
13
13
 
14
14
  require 'rspec/given'
@@ -38,18 +38,6 @@ shared_examples 'an OpenFlow message' do |klass|
38
38
  end
39
39
  end
40
40
 
41
- shared_examples 'an OpenFlow message with no body' do |klass|
42
- describe '.new' do
43
- When(:message) { klass.new(options) }
44
-
45
- context "with body: 'DEADBEEF'" do
46
- When(:options) { { body: 'DEADBEEF' } }
47
-
48
- Then { message.body == '' }
49
- end
50
- end
51
- end
52
-
53
41
  shared_examples 'an OpenFlow message with Datapath ID' do |klass|
54
42
  When(:message) { klass.new(options) }
55
43
 
@@ -63,14 +51,18 @@ shared_examples 'an OpenFlow message with Datapath ID' do |klass|
63
51
 
64
52
  context 'with { datapath_id: 0 }' do
65
53
  Given(:options) { { datapath_id: 0 } }
66
- Then { message.datapath_id == 0 }
54
+ Then { message.datapath_id.zero? }
55
+ And { message.dpid.zero? }
67
56
  And { message.datapath_id.is_a? Integer }
57
+ And { message.dpid.is_a? Integer }
68
58
  end
69
59
 
70
60
  context 'with { datapath_id: 2**64 - 1 }' do
71
61
  Given(:options) { { datapath_id: 2**64 - 1 } }
72
62
  Then { message.datapath_id == 2**64 - 1 }
63
+ And { message.dpid == 2**64 - 1 }
73
64
  And { message.datapath_id.is_a? Integer }
65
+ And { message.dpid.is_a? Integer }
74
66
  end
75
67
 
76
68
  context 'with { datapath_id: 2**64 }' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.0
4
+ version: 0.30.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yasuhito Takamiya
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-17 00:00:00.000000000 Z
11
+ date: 2017-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bindata
@@ -30,356 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '4.2'
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: 4.2.4
33
+ version: 5.0.2
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
38
  - - "~>"
42
39
  - !ruby/object:Gem::Version
43
- version: '4.2'
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: 4.2.4
47
- - !ruby/object:Gem::Dependency
48
- name: bundler
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: 1.10.6
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: 1.10.6
61
- - !ruby/object:Gem::Dependency
62
- name: pry
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: 0.10.3
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: 0.10.3
75
- - !ruby/object:Gem::Dependency
76
- name: rake
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
- - !ruby/object:Gem::Dependency
90
- name: guard
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: 2.13.0
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: 2.13.0
103
- - !ruby/object:Gem::Dependency
104
- name: guard-bundler
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: 2.1.0
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: 2.1.0
117
- - !ruby/object:Gem::Dependency
118
- name: guard-cucumber
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: 1.6.0
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: 1.6.0
131
- - !ruby/object:Gem::Dependency
132
- name: guard-rspec
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: 4.6.4
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: 4.6.4
145
- - !ruby/object:Gem::Dependency
146
- name: guard-rubocop
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: 1.2.0
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - "~>"
157
- - !ruby/object:Gem::Version
158
- version: 1.2.0
159
- - !ruby/object:Gem::Dependency
160
- name: rb-fchange
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - "~>"
164
- - !ruby/object:Gem::Version
165
- version: 0.0.6
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - "~>"
171
- - !ruby/object:Gem::Version
172
- version: 0.0.6
173
- - !ruby/object:Gem::Dependency
174
- name: rb-fsevent
175
- requirement: !ruby/object:Gem::Requirement
176
- requirements:
177
- - - "~>"
178
- - !ruby/object:Gem::Version
179
- version: 0.9.6
180
- type: :development
181
- prerelease: false
182
- version_requirements: !ruby/object:Gem::Requirement
183
- requirements:
184
- - - "~>"
185
- - !ruby/object:Gem::Version
186
- version: 0.9.6
187
- - !ruby/object:Gem::Dependency
188
- name: rb-inotify
189
- requirement: !ruby/object:Gem::Requirement
190
- requirements:
191
- - - "~>"
192
- - !ruby/object:Gem::Version
193
- version: 0.9.5
194
- type: :development
195
- prerelease: false
196
- version_requirements: !ruby/object:Gem::Requirement
197
- requirements:
198
- - - "~>"
199
- - !ruby/object:Gem::Version
200
- version: 0.9.5
201
- - !ruby/object:Gem::Dependency
202
- name: terminal-notifier-guard
203
- requirement: !ruby/object:Gem::Requirement
204
- requirements:
205
- - - "~>"
206
- - !ruby/object:Gem::Version
207
- version: 1.6.4
208
- type: :development
209
- prerelease: false
210
- version_requirements: !ruby/object:Gem::Requirement
211
- requirements:
212
- - - "~>"
213
- - !ruby/object:Gem::Version
214
- version: 1.6.4
215
- - !ruby/object:Gem::Dependency
216
- name: inch
217
- requirement: !ruby/object:Gem::Requirement
218
- requirements:
219
- - - "~>"
220
- - !ruby/object:Gem::Version
221
- version: 0.7.0
222
- type: :development
223
- prerelease: false
224
- version_requirements: !ruby/object:Gem::Requirement
225
- requirements:
226
- - - "~>"
227
- - !ruby/object:Gem::Version
228
- version: 0.7.0
229
- - !ruby/object:Gem::Dependency
230
- name: relish
231
- requirement: !ruby/object:Gem::Requirement
232
- requirements:
233
- - - "~>"
234
- - !ruby/object:Gem::Version
235
- version: 0.7.1
236
- type: :development
237
- prerelease: false
238
- version_requirements: !ruby/object:Gem::Requirement
239
- requirements:
240
- - - "~>"
241
- - !ruby/object:Gem::Version
242
- version: 0.7.1
243
- - !ruby/object:Gem::Dependency
244
- name: yard
245
- requirement: !ruby/object:Gem::Requirement
246
- requirements:
247
- - - "~>"
248
- - !ruby/object:Gem::Version
249
- version: 0.8.7.6
250
- type: :development
251
- prerelease: false
252
- version_requirements: !ruby/object:Gem::Requirement
253
- requirements:
254
- - - "~>"
255
- - !ruby/object:Gem::Version
256
- version: 0.8.7.6
257
- - !ruby/object:Gem::Dependency
258
- name: codeclimate-test-reporter
259
- requirement: !ruby/object:Gem::Requirement
260
- requirements:
261
- - - "~>"
262
- - !ruby/object:Gem::Version
263
- version: 0.4.8
264
- type: :development
265
- prerelease: false
266
- version_requirements: !ruby/object:Gem::Requirement
267
- requirements:
268
- - - "~>"
269
- - !ruby/object:Gem::Version
270
- version: 0.4.8
271
- - !ruby/object:Gem::Dependency
272
- name: coveralls
273
- requirement: !ruby/object:Gem::Requirement
274
- requirements:
275
- - - "~>"
276
- - !ruby/object:Gem::Version
277
- version: 0.8.3
278
- type: :development
279
- prerelease: false
280
- version_requirements: !ruby/object:Gem::Requirement
281
- requirements:
282
- - - "~>"
283
- - !ruby/object:Gem::Version
284
- version: 0.8.3
285
- - !ruby/object:Gem::Dependency
286
- name: cucumber
287
- requirement: !ruby/object:Gem::Requirement
288
- requirements:
289
- - - "~>"
290
- - !ruby/object:Gem::Version
291
- version: 2.1.0
292
- type: :development
293
- prerelease: false
294
- version_requirements: !ruby/object:Gem::Requirement
295
- requirements:
296
- - - "~>"
297
- - !ruby/object:Gem::Version
298
- version: 2.1.0
299
- - !ruby/object:Gem::Dependency
300
- name: flay
301
- requirement: !ruby/object:Gem::Requirement
302
- requirements:
303
- - - "~>"
304
- - !ruby/object:Gem::Version
305
- version: 2.6.1
306
- type: :development
307
- prerelease: false
308
- version_requirements: !ruby/object:Gem::Requirement
309
- requirements:
310
- - - "~>"
311
- - !ruby/object:Gem::Version
312
- version: 2.6.1
313
- - !ruby/object:Gem::Dependency
314
- name: flog
315
- requirement: !ruby/object:Gem::Requirement
316
- requirements:
317
- - - "~>"
318
- - !ruby/object:Gem::Version
319
- version: 4.3.2
320
- type: :development
321
- prerelease: false
322
- version_requirements: !ruby/object:Gem::Requirement
323
- requirements:
324
- - - "~>"
325
- - !ruby/object:Gem::Version
326
- version: 4.3.2
327
- - !ruby/object:Gem::Dependency
328
- name: reek
329
- requirement: !ruby/object:Gem::Requirement
330
- requirements:
331
- - - "~>"
332
- - !ruby/object:Gem::Version
333
- version: 3.6.0
334
- type: :development
335
- prerelease: false
336
- version_requirements: !ruby/object:Gem::Requirement
337
- requirements:
338
- - - "~>"
339
- - !ruby/object:Gem::Version
340
- version: 3.6.0
341
- - !ruby/object:Gem::Dependency
342
- name: rspec
343
- requirement: !ruby/object:Gem::Requirement
344
- requirements:
345
- - - "~>"
346
- - !ruby/object:Gem::Version
347
- version: 3.3.0
348
- type: :development
349
- prerelease: false
350
- version_requirements: !ruby/object:Gem::Requirement
351
- requirements:
352
- - - "~>"
353
- - !ruby/object:Gem::Version
354
- version: 3.3.0
355
- - !ruby/object:Gem::Dependency
356
- name: rspec-given
357
- requirement: !ruby/object:Gem::Requirement
358
- requirements:
359
- - - "~>"
360
- - !ruby/object:Gem::Version
361
- version: 3.7.1
362
- type: :development
363
- prerelease: false
364
- version_requirements: !ruby/object:Gem::Requirement
365
- requirements:
366
- - - "~>"
367
- - !ruby/object:Gem::Version
368
- version: 3.7.1
369
- - !ruby/object:Gem::Dependency
370
- name: rubocop
371
- requirement: !ruby/object:Gem::Requirement
372
- requirements:
373
- - - "~>"
374
- - !ruby/object:Gem::Version
375
- version: 0.34.2
376
- type: :development
377
- prerelease: false
378
- version_requirements: !ruby/object:Gem::Requirement
379
- requirements:
380
- - - "~>"
381
- - !ruby/object:Gem::Version
382
- version: 0.34.2
40
+ version: 5.0.2
383
41
  description: Pure ruby packet parser and generator.
384
42
  email:
385
43
  - yasuhito@gmail.com
@@ -388,132 +46,50 @@ extensions: []
388
46
  extra_rdoc_files:
389
47
  - README.md
390
48
  - CHANGELOG.md
391
- - LICENSE
392
49
  - CONTRIBUTING.md
393
50
  files:
394
51
  - CHANGELOG.md
395
52
  - CONTRIBUTING.md
396
- - LICENSE
397
53
  - README.md
398
54
  - Rakefile
399
- - bin/_guard-core
400
- - bin/byebug
401
- - bin/cc-tddium-post-worker
402
- - bin/cdiff
403
- - bin/coderay
404
- - bin/colortab
405
- - bin/coveralls
406
- - bin/cucumber
407
- - bin/decolor
408
- - bin/flay
409
- - bin/flog
410
- - bin/guard
411
- - bin/htmldiff
412
- - bin/inch
413
- - bin/ldiff
414
- - bin/listen
415
- - bin/minitar
416
- - bin/pry
417
- - bin/rake
418
- - bin/reek
419
- - bin/relish
420
- - bin/restclient
421
- - bin/rspec
422
- - bin/rubocop
423
- - bin/ruby-parse
424
- - bin/ruby-rewrite
425
- - bin/ruby_parse
426
- - bin/ruby_parse_extract_error
427
- - bin/sparkr
428
- - bin/term_display
429
- - bin/term_mandel
430
- - bin/terminal-notifier
431
- - bin/thor
432
- - bin/unparser
433
- - bin/yard
434
- - bin/yardoc
435
- - bin/yri
436
- - features/arp-storm.pcap
437
- - features/arp.feature
438
- - features/arp.pcap
55
+ - features/arp/arp.feature
56
+ - features/arp/arp_reply.feature
57
+ - features/arp/arp_request.feature
439
58
  - features/dhcp.feature
440
- - features/dhcp.pcap
441
- - features/icmp.feature
442
- - features/icmp.pcap
443
- - features/icmpv6.pcap
444
- - features/lldp.detailed.pcap
59
+ - features/ethernet_header.feature
60
+ - features/icmp/icmp.feature
61
+ - features/icmp/icmp_reply.feature
62
+ - features/icmp/icmp_request.feature
63
+ - features/ipv4_header.feature
445
64
  - features/lldp.feature
446
- - features/lldp.minimal.pcap
65
+ - features/open_flow/header.feature
447
66
  - features/open_flow/nicira_resubmit.feature
448
67
  - features/open_flow/nicira_resubmit_table.feature
449
68
  - features/open_flow10/aggregate_stats_reply.feature
450
- - features/open_flow10/aggregate_stats_reply.raw
451
69
  - features/open_flow10/aggregate_stats_request.feature
452
- - features/open_flow10/aggregate_stats_request.raw
453
70
  - features/open_flow10/bad_request.feature
454
- - features/open_flow10/bad_request.raw
455
71
  - features/open_flow10/barrier_reply.feature
456
- - features/open_flow10/barrier_reply.raw
457
72
  - features/open_flow10/barrier_request.feature
458
- - features/open_flow10/barrier_request.raw
459
73
  - features/open_flow10/description_stats_reply.feature
460
- - features/open_flow10/description_stats_reply.raw
461
74
  - features/open_flow10/description_stats_request.feature
462
- - features/open_flow10/description_stats_request.raw
463
75
  - features/open_flow10/echo_reply.feature
464
- - features/open_flow10/echo_reply.raw
465
76
  - features/open_flow10/echo_request.feature
466
- - features/open_flow10/echo_request.raw
467
77
  - features/open_flow10/enqueue.feature
468
- - features/open_flow10/error.raw
469
78
  - features/open_flow10/exact_match.feature
470
79
  - features/open_flow10/features_reply.feature
471
- - features/open_flow10/features_reply.raw
472
80
  - features/open_flow10/features_request.feature
473
- - features/open_flow10/features_request.raw
474
81
  - features/open_flow10/flow_mod.feature
475
- - features/open_flow10/flow_mod_add.raw
476
- - features/open_flow10/flow_mod_delete.raw
477
- - features/open_flow10/flow_mod_delete_strict.raw
478
- - features/open_flow10/flow_mod_modify.raw
479
- - features/open_flow10/flow_mod_modify_strict.raw
480
82
  - features/open_flow10/flow_removed.feature
481
- - features/open_flow10/flow_removed.raw
482
83
  - features/open_flow10/flow_stats_reply.feature
483
- - features/open_flow10/flow_stats_reply.raw
484
84
  - features/open_flow10/flow_stats_request.feature
485
- - features/open_flow10/flow_stats_request.raw
486
- - features/open_flow10/get_config_reply.raw
487
- - features/open_flow10/get_config_request.raw
488
85
  - features/open_flow10/hello.feature
489
- - features/open_flow10/hello.raw
490
86
  - features/open_flow10/hello_failed.feature
491
- - features/open_flow10/hello_failed.raw
492
- - features/open_flow10/nx_flow_mod_add.raw
493
- - features/open_flow10/nx_flow_mod_delete.raw
494
- - features/open_flow10/nx_flow_mod_delete_strict.raw
495
- - features/open_flow10/nx_flow_mod_modify.raw
496
- - features/open_flow10/nx_flow_mod_modify_strict.raw
497
- - features/open_flow10/nxast_learn.raw
498
87
  - features/open_flow10/packet_in.feature
499
- - features/open_flow10/packet_in.raw
500
- - features/open_flow10/packet_in_arp_reply.raw
501
- - features/open_flow10/packet_in_arp_request.raw
502
- - features/open_flow10/packet_in_cbench.raw
503
88
  - features/open_flow10/packet_out.feature
504
- - features/open_flow10/packet_out.raw
505
- - features/open_flow10/port_mod.raw
506
- - features/open_flow10/port_stats_reply.raw
507
89
  - features/open_flow10/port_stats_request.feature
508
- - features/open_flow10/port_stats_request.raw
509
90
  - features/open_flow10/port_status.feature
510
- - features/open_flow10/port_status.raw
511
- - features/open_flow10/queue_get_config_reply.raw
512
- - features/open_flow10/queue_get_config_request.raw
513
91
  - features/open_flow10/queue_stats_request.feature
514
- - features/open_flow10/queue_stats_request.raw
515
92
  - features/open_flow10/send_out_port.feature
516
- - features/open_flow10/set_config.raw
517
93
  - features/open_flow10/set_destination_mac_address.feature
518
94
  - features/open_flow10/set_ip_destination_address.feature
519
95
  - features/open_flow10/set_source_ip_address.feature
@@ -524,148 +100,66 @@ files:
524
100
  - features/open_flow10/set_vlan_priority.feature
525
101
  - features/open_flow10/set_vlan_vid.feature
526
102
  - features/open_flow10/strip_vlan_header.feature
527
- - features/open_flow10/table_stats_reply.raw
528
103
  - features/open_flow10/table_stats_request.feature
529
- - features/open_flow10/table_stats_request.raw
530
- - features/open_flow10/vendor.raw
531
104
  - features/open_flow10/vendor_action.feature
532
- - features/open_flow10/vendor_stats_request.raw
533
- - features/open_flow13/action_copy_ttl_in.raw
534
- - features/open_flow13/action_copy_ttl_out.raw
535
- - features/open_flow13/action_dec_mpls_ttl.raw
536
- - features/open_flow13/action_dec_nw_ttl.raw
537
- - features/open_flow13/action_group.raw
538
- - features/open_flow13/action_pop_mpls.raw
539
- - features/open_flow13/action_pop_pbb.raw
540
- - features/open_flow13/action_pop_vlan.raw
541
- - features/open_flow13/action_push_mpls.raw
542
- - features/open_flow13/action_push_pbb.raw
543
- - features/open_flow13/action_push_vlan.raw
544
- - features/open_flow13/action_set_field.raw
545
- - features/open_flow13/action_set_mpls_ttl.raw
546
- - features/open_flow13/action_set_nw_ttl.raw
547
- - features/open_flow13/action_set_queue.raw
548
105
  - features/open_flow13/apply_actions.feature
549
- - features/open_flow13/apply_actions.raw
550
106
  - features/open_flow13/bad_request.feature
551
- - features/open_flow13/bad_request.raw
107
+ - features/open_flow13/copy_ttl_inwards.feature
108
+ - features/open_flow13/copy_ttl_outwards.feature
109
+ - features/open_flow13/decrement_ip_ttl.feature
552
110
  - features/open_flow13/echo_reply.feature
553
- - features/open_flow13/echo_reply_body.raw
554
- - features/open_flow13/echo_reply_no_body.raw
555
111
  - features/open_flow13/echo_request.feature
556
- - features/open_flow13/echo_request_body.raw
557
- - features/open_flow13/echo_request_no_body.raw
558
112
  - features/open_flow13/features_reply.feature
559
- - features/open_flow13/features_reply.raw
560
113
  - features/open_flow13/features_request.feature
561
- - features/open_flow13/features_request.raw
562
- - features/open_flow13/flow_add_apply_no_match.raw
563
114
  - features/open_flow13/flow_mod.feature
564
- - features/open_flow13/flow_mod_add_apply_no_match.raw
565
- - features/open_flow13/flow_mod_no_match_or_instructions.raw
566
115
  - features/open_flow13/goto_table.feature
567
116
  - features/open_flow13/hello.feature
568
117
  - features/open_flow13/hello_failed.feature
569
- - features/open_flow13/hello_failed.raw
570
- - features/open_flow13/hello_no_version_bitmap.raw
571
- - features/open_flow13/hello_version_bitmap.raw
572
- - features/open_flow13/instruction_clear_actions.raw
573
- - features/open_flow13/instruction_goto_table.raw
574
- - features/open_flow13/instruction_meter.raw
575
- - features/open_flow13/instruction_write_actions.raw
576
- - features/open_flow13/instruction_write_metadata.raw
577
118
  - features/open_flow13/match.feature
578
119
  - features/open_flow13/meter.feature
120
+ - features/open_flow13/nicira_conjunction.feature
579
121
  - features/open_flow13/nicira_reg_load.feature
580
122
  - features/open_flow13/nicira_reg_move.feature
581
123
  - features/open_flow13/nicira_send_out_port.feature
582
- - features/open_flow13/oxm_arp_op_field.raw
583
- - features/open_flow13/oxm_arp_sha_field.raw
584
- - features/open_flow13/oxm_arp_spa_field.raw
585
- - features/open_flow13/oxm_arp_tha_field.raw
586
- - features/open_flow13/oxm_arp_tpa_field.raw
587
- - features/open_flow13/oxm_ether_destination_field.raw
588
- - features/open_flow13/oxm_ether_source_field.raw
589
- - features/open_flow13/oxm_ether_type_field.raw
590
- - features/open_flow13/oxm_experimenter_stratos_basic_dot11.raw
591
- - features/open_flow13/oxm_icmpv4_code_field.raw
592
- - features/open_flow13/oxm_icmpv4_type_field.raw
593
- - features/open_flow13/oxm_in_phy_port_field.raw
594
- - features/open_flow13/oxm_in_port_field.raw
595
- - features/open_flow13/oxm_invalid_field.raw
596
- - features/open_flow13/oxm_ip_dscp_field.raw
597
- - features/open_flow13/oxm_ip_ecn_field.raw
598
- - features/open_flow13/oxm_ipv4_destination_field.raw
599
- - features/open_flow13/oxm_ipv4_source_field.raw
600
- - features/open_flow13/oxm_ipv6_destination_field.raw
601
- - features/open_flow13/oxm_ipv6_source_field.raw
602
- - features/open_flow13/oxm_masked_arp_sha_field.raw
603
- - features/open_flow13/oxm_masked_arp_spa_field.raw
604
- - features/open_flow13/oxm_masked_arp_tha_field.raw
605
- - features/open_flow13/oxm_masked_arp_tpa_field.raw
606
- - features/open_flow13/oxm_masked_ether_destination_field.raw
607
- - features/open_flow13/oxm_masked_ether_source_field.raw
608
- - features/open_flow13/oxm_masked_ipv4_destination_field.raw
609
- - features/open_flow13/oxm_masked_ipv4_source_field.raw
610
- - features/open_flow13/oxm_masked_ipv6_destination_field.raw
611
- - features/open_flow13/oxm_masked_ipv6_source_field.raw
612
- - features/open_flow13/oxm_masked_tunnel_id_field.raw
613
- - features/open_flow13/oxm_metadata_field.raw
614
- - features/open_flow13/oxm_metadata_masked_field.raw
615
- - features/open_flow13/oxm_no_fields.raw
616
- - features/open_flow13/oxm_sctp_destination_field.raw
617
- - features/open_flow13/oxm_sctp_source_field.raw
618
- - features/open_flow13/oxm_tcp_destination_field.raw
619
- - features/open_flow13/oxm_tcp_field.raw
620
- - features/open_flow13/oxm_tcp_source_field.raw
621
- - features/open_flow13/oxm_tunnel_id_field.raw
622
- - features/open_flow13/oxm_udp_destination_field.raw
623
- - features/open_flow13/oxm_udp_field.raw
624
- - features/open_flow13/oxm_udp_source_field.raw
625
- - features/open_flow13/oxm_vlan_pcp_field.raw
626
- - features/open_flow13/oxm_vlan_vid_field.raw
124
+ - features/open_flow13/nicira_stack_pop.feature
125
+ - features/open_flow13/nicira_stack_push.feature
627
126
  - features/open_flow13/packet_in.feature
628
- - features/open_flow13/packet_in.raw
629
127
  - features/open_flow13/packet_out.feature
630
- - features/open_flow13/packet_out.raw
631
128
  - features/open_flow13/send_out_port.feature
632
- - features/open_flow13/send_out_port.raw
633
129
  - features/open_flow13/set_arp_operation.feature
634
130
  - features/open_flow13/set_arp_sender_hardware_address.feature
635
131
  - features/open_flow13/set_arp_sender_protocol_address.feature
636
132
  - features/open_flow13/set_destination_mac_address.feature
133
+ - features/open_flow13/set_ip_ttl.feature
637
134
  - features/open_flow13/set_metadata.feature
638
135
  - features/open_flow13/set_source_mac_address.feature
639
136
  - features/open_flow13/stats_request.feature
640
- - features/open_flow13/table_stats_reply.raw
641
- - features/open_flow13/table_stats_request.raw
642
137
  - features/open_flow13/write_metadata.feature
643
138
  - features/open_flow_read.feature
644
139
  - features/open_flow_version.feature
645
140
  - features/parser.feature
646
141
  - features/step_definitions/Gemfile
647
142
  - features/step_definitions/Guardfile
648
- - features/step_definitions/LICENSE
649
143
  - features/step_definitions/README.md
650
144
  - features/step_definitions/Rakefile
651
145
  - features/step_definitions/dump_flows_steps.rb
652
146
  - features/step_definitions/open_flow_steps.rb
653
147
  - features/step_definitions/packet_data_steps.rb
654
148
  - features/step_definitions/rest_api_steps.rb
149
+ - features/step_definitions/ruby_steps.rb
655
150
  - features/step_definitions/show_stats_steps.rb
656
151
  - features/step_definitions/trema_steps.rb
657
152
  - features/step_definitions/virtual_link_steps.rb
658
153
  - features/support/env.rb
659
154
  - features/support/hooks.rb
660
155
  - features/udp.feature
661
- - features/udp_no_payload.raw
662
- - features/udp_with_payload.raw
663
156
  - lib/pio.rb
664
157
  - lib/pio/arp.rb
665
158
  - lib/pio/arp/format.rb
666
159
  - lib/pio/arp/message.rb
667
160
  - lib/pio/arp/reply.rb
668
161
  - lib/pio/arp/request.rb
162
+ - lib/pio/class_inspector.rb
669
163
  - lib/pio/dhcp.rb
670
164
  - lib/pio/dhcp/ack.rb
671
165
  - lib/pio/dhcp/boot_reply.rb
@@ -684,13 +178,14 @@ files:
684
178
  - lib/pio/dhcp/optional_tlv.rb
685
179
  - lib/pio/dhcp/parameter_list.rb
686
180
  - lib/pio/dhcp/request.rb
181
+ - lib/pio/ethernet_frame.rb
687
182
  - lib/pio/ethernet_header.rb
688
183
  - lib/pio/icmp.rb
689
184
  - lib/pio/icmp/format.rb
690
185
  - lib/pio/icmp/message.rb
691
- - lib/pio/icmp/options.rb
692
186
  - lib/pio/icmp/reply.rb
693
187
  - lib/pio/icmp/request.rb
188
+ - lib/pio/instance_inspector.rb
694
189
  - lib/pio/ipv4_address.rb
695
190
  - lib/pio/ipv4_header.rb
696
191
  - lib/pio/lldp.rb
@@ -708,23 +203,33 @@ files:
708
203
  - lib/pio/lldp/system_name_value.rb
709
204
  - lib/pio/lldp/ttl_tlv.rb
710
205
  - lib/pio/mac.rb
206
+ - lib/pio/message.rb
711
207
  - lib/pio/message_type_selector.rb
208
+ - lib/pio/monkey_patch/bindata_record.rb
209
+ - lib/pio/monkey_patch/bindata_string.rb
712
210
  - lib/pio/monkey_patch/integer.rb
713
211
  - lib/pio/monkey_patch/integer/base_conversions.rb
714
212
  - lib/pio/monkey_patch/integer/ranges.rb
213
+ - lib/pio/monkey_patch/uint.rb
214
+ - lib/pio/monkey_patch/uint/base_conversions.rb
715
215
  - lib/pio/open_flow.rb
716
216
  - lib/pio/open_flow/action.rb
217
+ - lib/pio/open_flow/buffer_id.rb
717
218
  - lib/pio/open_flow/datapath_id.rb
718
- - lib/pio/open_flow/error.rb
219
+ - lib/pio/open_flow/error_message.rb
719
220
  - lib/pio/open_flow/flags.rb
221
+ - lib/pio/open_flow/flow_match.rb
222
+ - lib/pio/open_flow/header.rb
720
223
  - lib/pio/open_flow/hello_failed_code.rb
224
+ - lib/pio/open_flow/instruction.rb
721
225
  - lib/pio/open_flow/message.rb
722
226
  - lib/pio/open_flow/nicira_action.rb
723
227
  - lib/pio/open_flow/nicira_resubmit.rb
724
228
  - lib/pio/open_flow/nicira_resubmit_table.rb
725
- - lib/pio/open_flow/open_flow_header.rb
229
+ - lib/pio/open_flow/parser.rb
726
230
  - lib/pio/open_flow/port.rb
727
231
  - lib/pio/open_flow/transaction_id.rb
232
+ - lib/pio/open_flow/version.rb
728
233
  - lib/pio/open_flow10.rb
729
234
  - lib/pio/open_flow10/actions.rb
730
235
  - lib/pio/open_flow10/aggregate_stats/reply.rb
@@ -738,6 +243,7 @@ files:
738
243
  - lib/pio/open_flow10/enqueue.rb
739
244
  - lib/pio/open_flow10/error.rb
740
245
  - lib/pio/open_flow10/error/bad_request.rb
246
+ - lib/pio/open_flow10/error/bad_request/bad_request_code.rb
741
247
  - lib/pio/open_flow10/error/error_type10.rb
742
248
  - lib/pio/open_flow10/error/hello_failed.rb
743
249
  - lib/pio/open_flow10/exact_match.rb
@@ -745,18 +251,22 @@ files:
745
251
  - lib/pio/open_flow10/features/reply.rb
746
252
  - lib/pio/open_flow10/features/request.rb
747
253
  - lib/pio/open_flow10/flow_mod.rb
254
+ - lib/pio/open_flow10/flow_mod/command.rb
748
255
  - lib/pio/open_flow10/flow_removed.rb
256
+ - lib/pio/open_flow10/flow_removed/reason.rb
749
257
  - lib/pio/open_flow10/flow_stats/reply.rb
750
258
  - lib/pio/open_flow10/flow_stats/request.rb
751
259
  - lib/pio/open_flow10/hello.rb
752
260
  - lib/pio/open_flow10/match.rb
753
261
  - lib/pio/open_flow10/match10.rb
754
262
  - lib/pio/open_flow10/packet_in.rb
263
+ - lib/pio/open_flow10/packet_in/reason.rb
755
264
  - lib/pio/open_flow10/packet_out.rb
756
265
  - lib/pio/open_flow10/phy_port16.rb
757
266
  - lib/pio/open_flow10/port16.rb
758
267
  - lib/pio/open_flow10/port_stats/request.rb
759
268
  - lib/pio/open_flow10/port_status.rb
269
+ - lib/pio/open_flow10/port_status/reason.rb
760
270
  - lib/pio/open_flow10/queue_stats/request.rb
761
271
  - lib/pio/open_flow10/send_out_port.rb
762
272
  - lib/pio/open_flow10/set_destination_ip_address.rb
@@ -776,7 +286,9 @@ files:
776
286
  - lib/pio/open_flow13.rb
777
287
  - lib/pio/open_flow13/actions.rb
778
288
  - lib/pio/open_flow13/apply.rb
779
- - lib/pio/open_flow13/buffer_id.rb
289
+ - lib/pio/open_flow13/copy_ttl_inwards.rb
290
+ - lib/pio/open_flow13/copy_ttl_outwards.rb
291
+ - lib/pio/open_flow13/decrement_ip_ttl.rb
780
292
  - lib/pio/open_flow13/echo/reply.rb
781
293
  - lib/pio/open_flow13/echo/request.rb
782
294
  - lib/pio/open_flow13/error.rb
@@ -790,9 +302,12 @@ files:
790
302
  - lib/pio/open_flow13/hello.rb
791
303
  - lib/pio/open_flow13/match.rb
792
304
  - lib/pio/open_flow13/meter.rb
305
+ - lib/pio/open_flow13/nicira_conjunction.rb
793
306
  - lib/pio/open_flow13/nicira_reg_load.rb
794
307
  - lib/pio/open_flow13/nicira_reg_move.rb
795
308
  - lib/pio/open_flow13/nicira_send_out_port.rb
309
+ - lib/pio/open_flow13/nicira_stack_pop.rb
310
+ - lib/pio/open_flow13/nicira_stack_push.rb
796
311
  - lib/pio/open_flow13/packet_in.rb
797
312
  - lib/pio/open_flow13/packet_out.rb
798
313
  - lib/pio/open_flow13/port32.rb
@@ -801,6 +316,7 @@ files:
801
316
  - lib/pio/open_flow13/set_arp_sender_hardware_address.rb
802
317
  - lib/pio/open_flow13/set_arp_sender_protocol_address.rb
803
318
  - lib/pio/open_flow13/set_destination_mac_address.rb
319
+ - lib/pio/open_flow13/set_ip_ttl.rb
804
320
  - lib/pio/open_flow13/set_metadata.rb
805
321
  - lib/pio/open_flow13/set_source_mac_address.rb
806
322
  - lib/pio/open_flow13/stats_request.rb
@@ -810,6 +326,8 @@ files:
810
326
  - lib/pio/parser.rb
811
327
  - lib/pio/payload.rb
812
328
  - lib/pio/pcap.rb
329
+ - lib/pio/ruby_dumper.rb
330
+ - lib/pio/type/ether_type.rb
813
331
  - lib/pio/type/ip_address.rb
814
332
  - lib/pio/type/ipv6_address.rb
815
333
  - lib/pio/type/mac_address.rb
@@ -817,9 +335,7 @@ files:
817
335
  - lib/pio/udp_header.rb
818
336
  - lib/pio/version.rb
819
337
  - pio.gemspec
820
- - spec/pio/arp/reply/options_spec.rb
821
338
  - spec/pio/arp/reply_spec.rb
822
- - spec/pio/arp/request/options_spec.rb
823
339
  - spec/pio/arp/request_spec.rb
824
340
  - spec/pio/arp_spec.rb
825
341
  - spec/pio/dhcp/ack_spec.rb
@@ -833,6 +349,9 @@ files:
833
349
  - spec/pio/ipv4_address_spec.rb
834
350
  - spec/pio/lldp/options_spec.rb
835
351
  - spec/pio/mac_spec.rb
352
+ - spec/pio/monkey_patch/integer_spec.rb
353
+ - spec/pio/open_flow/nicira_resubmit_spec.rb
354
+ - spec/pio/open_flow/nicira_resubmit_table_spec.rb
836
355
  - spec/pio/open_flow10/echo/reply_spec.rb
837
356
  - spec/pio/open_flow10/echo/request_spec.rb
838
357
  - spec/pio/open_flow10/enqueue_spec.rb
@@ -869,6 +388,9 @@ files:
869
388
  - spec/pio/open_flow13/hello_spec.rb
870
389
  - spec/pio/open_flow13/match_spec.rb
871
390
  - spec/pio/open_flow13/meter_spec.rb
391
+ - spec/pio/open_flow13/nicira_reg_load_spec.rb
392
+ - spec/pio/open_flow13/nicira_reg_move_spec.rb
393
+ - spec/pio/open_flow13/nicira_send_out_port_spec.rb
872
394
  - spec/pio/open_flow13/packet_in_spec.rb
873
395
  - spec/pio/open_flow13/packet_out_spec.rb
874
396
  - spec/pio/open_flow13/write_metadata_spec.rb
@@ -877,7 +399,8 @@ files:
877
399
  - spec/support/shared_examples_for_openflow_messages.rb
878
400
  homepage: http://github.com/trema/pio
879
401
  licenses:
880
- - GPL3
402
+ - GPLv2
403
+ - MIT
881
404
  metadata: {}
882
405
  post_install_message:
883
406
  rdoc_options: []
@@ -887,7 +410,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
887
410
  requirements:
888
411
  - - ">="
889
412
  - !ruby/object:Gem::Version
890
- version: 2.0.0
413
+ version: 2.2.2
891
414
  required_rubygems_version: !ruby/object:Gem::Requirement
892
415
  requirements:
893
416
  - - ">="
@@ -895,294 +418,172 @@ required_rubygems_version: !ruby/object:Gem::Requirement
895
418
  version: '0'
896
419
  requirements: []
897
420
  rubyforge_project:
898
- rubygems_version: 2.4.6
421
+ rubygems_version: 2.6.11
899
422
  signing_key:
900
423
  specification_version: 4
901
424
  summary: Packet parser and generator.
902
425
  test_files:
903
- - spec/pio/arp/reply/options_spec.rb
904
- - spec/pio/arp/reply_spec.rb
905
- - spec/pio/arp/request/options_spec.rb
906
- - spec/pio/arp/request_spec.rb
426
+ - spec/pio/icmp/request_spec.rb
427
+ - spec/pio/icmp/reply_spec.rb
907
428
  - spec/pio/arp_spec.rb
908
- - spec/pio/dhcp/ack_spec.rb
429
+ - spec/pio/open_flow_spec.rb
430
+ - spec/pio/open_flow13/error/bad_request_spec.rb
431
+ - spec/pio/open_flow13/error/hello_failed_spec.rb
432
+ - spec/pio/open_flow13/match_spec.rb
433
+ - spec/pio/open_flow13/packet_out_spec.rb
434
+ - spec/pio/open_flow13/write_metadata_spec.rb
435
+ - spec/pio/open_flow13/echo_reply_spec.rb
436
+ - spec/pio/open_flow13/packet_in_spec.rb
437
+ - spec/pio/open_flow13/nicira_reg_load_spec.rb
438
+ - spec/pio/open_flow13/nicira_reg_move_spec.rb
439
+ - spec/pio/open_flow13/meter_spec.rb
440
+ - spec/pio/open_flow13/features/request_spec.rb
441
+ - spec/pio/open_flow13/features/reply_spec.rb
442
+ - spec/pio/open_flow13/nicira_send_out_port_spec.rb
443
+ - spec/pio/open_flow13/echo_request_spec.rb
444
+ - spec/pio/open_flow13/hello_spec.rb
445
+ - spec/pio/open_flow13/goto_table_spec.rb
446
+ - spec/pio/open_flow/nicira_resubmit_spec.rb
447
+ - spec/pio/open_flow/nicira_resubmit_table_spec.rb
448
+ - spec/pio/lldp/options_spec.rb
449
+ - spec/pio/dhcp/request_spec.rb
909
450
  - spec/pio/dhcp/discover_spec.rb
451
+ - spec/pio/dhcp/ack_spec.rb
910
452
  - spec/pio/dhcp/offer_spec.rb
911
- - spec/pio/dhcp/request_spec.rb
912
- - spec/pio/dhcp_spec.rb
913
- - spec/pio/icmp/reply_spec.rb
914
- - spec/pio/icmp/request_spec.rb
915
- - spec/pio/icmp_spec.rb
916
- - spec/pio/ipv4_address_spec.rb
917
- - spec/pio/lldp/options_spec.rb
918
- - spec/pio/mac_spec.rb
919
- - spec/pio/open_flow10/echo/reply_spec.rb
920
- - spec/pio/open_flow10/echo/request_spec.rb
921
- - spec/pio/open_flow10/enqueue_spec.rb
922
453
  - spec/pio/open_flow10/error/hello_failed_spec.rb
923
- - spec/pio/open_flow10/features/reply_spec.rb
924
- - spec/pio/open_flow10/features/request_spec.rb
925
- - spec/pio/open_flow10/flow_mod_spec.rb
926
- - spec/pio/open_flow10/flow_stats_reply_spec.rb
927
- - spec/pio/open_flow10/flow_stats_request_spec.rb
928
- - spec/pio/open_flow10/hello_spec.rb
929
454
  - spec/pio/open_flow10/match_spec.rb
930
- - spec/pio/open_flow10/packet_in_spec.rb
455
+ - spec/pio/open_flow10/set_destination_mac_address_spec.rb
456
+ - spec/pio/open_flow10/set_transport_destination_port_spec.rb
931
457
  - spec/pio/open_flow10/packet_out_spec.rb
458
+ - spec/pio/open_flow10/flow_stats_reply_spec.rb
459
+ - spec/pio/open_flow10/packet_in_spec.rb
460
+ - spec/pio/open_flow10/enqueue_spec.rb
461
+ - spec/pio/open_flow10/set_source_mac_address_spec.rb
462
+ - spec/pio/open_flow10/flow_stats_request_spec.rb
463
+ - spec/pio/open_flow10/set_transport_source_port_spec.rb
464
+ - spec/pio/open_flow10/echo/request_spec.rb
465
+ - spec/pio/open_flow10/echo/reply_spec.rb
932
466
  - spec/pio/open_flow10/phy_port16_spec.rb
467
+ - spec/pio/open_flow10/features/request_spec.rb
468
+ - spec/pio/open_flow10/features/reply_spec.rb
469
+ - spec/pio/open_flow10/set_vlan_priority_spec.rb
470
+ - spec/pio/open_flow10/wildcards_spec.rb
471
+ - spec/pio/open_flow10/flow_mod_spec.rb
933
472
  - spec/pio/open_flow10/send_out_port_spec.rb
473
+ - spec/pio/open_flow10/set_vlan_vid_spec.rb
934
474
  - spec/pio/open_flow10/set_destination_ip_address_spec.rb
935
- - spec/pio/open_flow10/set_destination_mac_address_spec.rb
936
475
  - spec/pio/open_flow10/set_source_ip_address_spec.rb
937
- - spec/pio/open_flow10/set_source_mac_address_spec.rb
938
476
  - spec/pio/open_flow10/set_tos_spec.rb
939
- - spec/pio/open_flow10/set_transport_destination_port_spec.rb
940
- - spec/pio/open_flow10/set_transport_source_port_spec.rb
941
- - spec/pio/open_flow10/set_vlan_priority_spec.rb
942
- - spec/pio/open_flow10/set_vlan_vid_spec.rb
477
+ - spec/pio/open_flow10/hello_spec.rb
943
478
  - spec/pio/open_flow10/strip_vlan_header_spec.rb
944
- - spec/pio/open_flow10/wildcards_spec.rb
945
- - spec/pio/open_flow13/echo_reply_spec.rb
946
- - spec/pio/open_flow13/echo_request_spec.rb
947
- - spec/pio/open_flow13/error/bad_request_spec.rb
948
- - spec/pio/open_flow13/error/hello_failed_spec.rb
949
- - spec/pio/open_flow13/features/reply_spec.rb
950
- - spec/pio/open_flow13/features/request_spec.rb
951
- - spec/pio/open_flow13/goto_table_spec.rb
952
- - spec/pio/open_flow13/hello_spec.rb
953
- - spec/pio/open_flow13/match_spec.rb
954
- - spec/pio/open_flow13/meter_spec.rb
955
- - spec/pio/open_flow13/packet_in_spec.rb
956
- - spec/pio/open_flow13/packet_out_spec.rb
957
- - spec/pio/open_flow13/write_metadata_spec.rb
958
- - spec/pio/open_flow_spec.rb
959
- - spec/spec_helper.rb
479
+ - spec/pio/arp/request_spec.rb
480
+ - spec/pio/arp/reply_spec.rb
481
+ - spec/pio/icmp_spec.rb
482
+ - spec/pio/mac_spec.rb
483
+ - spec/pio/monkey_patch/integer_spec.rb
484
+ - spec/pio/dhcp_spec.rb
485
+ - spec/pio/ipv4_address_spec.rb
960
486
  - spec/support/shared_examples_for_openflow_messages.rb
961
- - features/arp-storm.pcap
962
- - features/arp.feature
963
- - features/arp.pcap
487
+ - spec/spec_helper.rb
488
+ - features/icmp/icmp_request.feature
489
+ - features/icmp/icmp.feature
490
+ - features/icmp/icmp_reply.feature
964
491
  - features/dhcp.feature
965
- - features/dhcp.pcap
966
- - features/icmp.feature
967
- - features/icmp.pcap
968
- - features/icmpv6.pcap
969
- - features/lldp.detailed.pcap
970
- - features/lldp.feature
971
- - features/lldp.minimal.pcap
972
- - features/open_flow/nicira_resubmit.feature
492
+ - features/open_flow_version.feature
493
+ - features/ipv4_header.feature
494
+ - features/open_flow13/packet_out.feature
495
+ - features/open_flow13/packet_in.feature
496
+ - features/open_flow13/echo_request.feature
497
+ - features/open_flow13/apply_actions.feature
498
+ - features/open_flow13/match.feature
499
+ - features/open_flow13/echo_reply.feature
500
+ - features/open_flow13/set_ip_ttl.feature
501
+ - features/open_flow13/goto_table.feature
502
+ - features/open_flow13/stats_request.feature
503
+ - features/open_flow13/flow_mod.feature
504
+ - features/open_flow13/nicira_reg_load.feature
505
+ - features/open_flow13/nicira_reg_move.feature
506
+ - features/open_flow13/set_arp_operation.feature
507
+ - features/open_flow13/send_out_port.feature
508
+ - features/open_flow13/hello_failed.feature
509
+ - features/open_flow13/copy_ttl_outwards.feature
510
+ - features/open_flow13/features_request.feature
511
+ - features/open_flow13/set_destination_mac_address.feature
512
+ - features/open_flow13/nicira_stack_push.feature
513
+ - features/open_flow13/set_source_mac_address.feature
514
+ - features/open_flow13/write_metadata.feature
515
+ - features/open_flow13/features_reply.feature
516
+ - features/open_flow13/nicira_conjunction.feature
517
+ - features/open_flow13/set_arp_sender_hardware_address.feature
518
+ - features/open_flow13/nicira_send_out_port.feature
519
+ - features/open_flow13/nicira_stack_pop.feature
520
+ - features/open_flow13/decrement_ip_ttl.feature
521
+ - features/open_flow13/set_arp_sender_protocol_address.feature
522
+ - features/open_flow13/bad_request.feature
523
+ - features/open_flow13/set_metadata.feature
524
+ - features/open_flow13/copy_ttl_inwards.feature
525
+ - features/open_flow13/hello.feature
526
+ - features/open_flow13/meter.feature
973
527
  - features/open_flow/nicira_resubmit_table.feature
528
+ - features/open_flow/header.feature
529
+ - features/open_flow/nicira_resubmit.feature
530
+ - features/open_flow10/packet_out.feature
974
531
  - features/open_flow10/aggregate_stats_reply.feature
975
- - features/open_flow10/aggregate_stats_reply.raw
976
- - features/open_flow10/aggregate_stats_request.feature
977
- - features/open_flow10/aggregate_stats_request.raw
978
- - features/open_flow10/bad_request.feature
979
- - features/open_flow10/bad_request.raw
980
- - features/open_flow10/barrier_reply.feature
981
- - features/open_flow10/barrier_reply.raw
982
- - features/open_flow10/barrier_request.feature
983
- - features/open_flow10/barrier_request.raw
984
- - features/open_flow10/description_stats_reply.feature
985
- - features/open_flow10/description_stats_reply.raw
986
- - features/open_flow10/description_stats_request.feature
987
- - features/open_flow10/description_stats_request.raw
988
- - features/open_flow10/echo_reply.feature
989
- - features/open_flow10/echo_reply.raw
532
+ - features/open_flow10/packet_in.feature
533
+ - features/open_flow10/table_stats_request.feature
990
534
  - features/open_flow10/echo_request.feature
991
- - features/open_flow10/echo_request.raw
992
535
  - features/open_flow10/enqueue.feature
993
- - features/open_flow10/error.raw
994
- - features/open_flow10/exact_match.feature
995
- - features/open_flow10/features_reply.feature
996
- - features/open_flow10/features_reply.raw
997
- - features/open_flow10/features_request.feature
998
- - features/open_flow10/features_request.raw
999
- - features/open_flow10/flow_mod.feature
1000
- - features/open_flow10/flow_mod_add.raw
1001
- - features/open_flow10/flow_mod_delete.raw
1002
- - features/open_flow10/flow_mod_delete_strict.raw
1003
- - features/open_flow10/flow_mod_modify.raw
1004
- - features/open_flow10/flow_mod_modify_strict.raw
1005
- - features/open_flow10/flow_removed.feature
1006
- - features/open_flow10/flow_removed.raw
1007
- - features/open_flow10/flow_stats_reply.feature
1008
- - features/open_flow10/flow_stats_reply.raw
1009
- - features/open_flow10/flow_stats_request.feature
1010
- - features/open_flow10/flow_stats_request.raw
1011
- - features/open_flow10/get_config_reply.raw
1012
- - features/open_flow10/get_config_request.raw
1013
- - features/open_flow10/hello.feature
1014
- - features/open_flow10/hello.raw
1015
- - features/open_flow10/hello_failed.feature
1016
- - features/open_flow10/hello_failed.raw
1017
- - features/open_flow10/nx_flow_mod_add.raw
1018
- - features/open_flow10/nx_flow_mod_delete.raw
1019
- - features/open_flow10/nx_flow_mod_delete_strict.raw
1020
- - features/open_flow10/nx_flow_mod_modify.raw
1021
- - features/open_flow10/nx_flow_mod_modify_strict.raw
1022
- - features/open_flow10/nxast_learn.raw
1023
- - features/open_flow10/packet_in.feature
1024
- - features/open_flow10/packet_in.raw
1025
- - features/open_flow10/packet_in_arp_reply.raw
1026
- - features/open_flow10/packet_in_arp_request.raw
1027
- - features/open_flow10/packet_in_cbench.raw
1028
- - features/open_flow10/packet_out.feature
1029
- - features/open_flow10/packet_out.raw
1030
- - features/open_flow10/port_mod.raw
1031
- - features/open_flow10/port_stats_reply.raw
1032
- - features/open_flow10/port_stats_request.feature
1033
- - features/open_flow10/port_stats_request.raw
1034
- - features/open_flow10/port_status.feature
1035
- - features/open_flow10/port_status.raw
1036
- - features/open_flow10/queue_get_config_reply.raw
1037
- - features/open_flow10/queue_get_config_request.raw
536
+ - features/open_flow10/set_ip_destination_address.feature
537
+ - features/open_flow10/set_vlan_vid.feature
538
+ - features/open_flow10/echo_reply.feature
1038
539
  - features/open_flow10/queue_stats_request.feature
1039
- - features/open_flow10/queue_stats_request.raw
540
+ - features/open_flow10/flow_stats_reply.feature
541
+ - features/open_flow10/flow_mod.feature
542
+ - features/open_flow10/exact_match.feature
543
+ - features/open_flow10/set_transport_source_port.feature
544
+ - features/open_flow10/set_source_ip_address.feature
545
+ - features/open_flow10/vendor_action.feature
1040
546
  - features/open_flow10/send_out_port.feature
1041
- - features/open_flow10/set_config.raw
547
+ - features/open_flow10/hello_failed.feature
548
+ - features/open_flow10/features_request.feature
1042
549
  - features/open_flow10/set_destination_mac_address.feature
1043
- - features/open_flow10/set_ip_destination_address.feature
1044
- - features/open_flow10/set_source_ip_address.feature
550
+ - features/open_flow10/description_stats_reply.feature
1045
551
  - features/open_flow10/set_source_mac_address.feature
1046
- - features/open_flow10/set_tos.feature
1047
- - features/open_flow10/set_transport_destination_port.feature
1048
- - features/open_flow10/set_transport_source_port.feature
1049
552
  - features/open_flow10/set_vlan_priority.feature
1050
- - features/open_flow10/set_vlan_vid.feature
553
+ - features/open_flow10/port_stats_request.feature
1051
554
  - features/open_flow10/strip_vlan_header.feature
1052
- - features/open_flow10/table_stats_reply.raw
1053
- - features/open_flow10/table_stats_request.feature
1054
- - features/open_flow10/table_stats_request.raw
1055
- - features/open_flow10/vendor.raw
1056
- - features/open_flow10/vendor_action.feature
1057
- - features/open_flow10/vendor_stats_request.raw
1058
- - features/open_flow13/action_copy_ttl_in.raw
1059
- - features/open_flow13/action_copy_ttl_out.raw
1060
- - features/open_flow13/action_dec_mpls_ttl.raw
1061
- - features/open_flow13/action_dec_nw_ttl.raw
1062
- - features/open_flow13/action_group.raw
1063
- - features/open_flow13/action_pop_mpls.raw
1064
- - features/open_flow13/action_pop_pbb.raw
1065
- - features/open_flow13/action_pop_vlan.raw
1066
- - features/open_flow13/action_push_mpls.raw
1067
- - features/open_flow13/action_push_pbb.raw
1068
- - features/open_flow13/action_push_vlan.raw
1069
- - features/open_flow13/action_set_field.raw
1070
- - features/open_flow13/action_set_mpls_ttl.raw
1071
- - features/open_flow13/action_set_nw_ttl.raw
1072
- - features/open_flow13/action_set_queue.raw
1073
- - features/open_flow13/apply_actions.feature
1074
- - features/open_flow13/apply_actions.raw
1075
- - features/open_flow13/bad_request.feature
1076
- - features/open_flow13/bad_request.raw
1077
- - features/open_flow13/echo_reply.feature
1078
- - features/open_flow13/echo_reply_body.raw
1079
- - features/open_flow13/echo_reply_no_body.raw
1080
- - features/open_flow13/echo_request.feature
1081
- - features/open_flow13/echo_request_body.raw
1082
- - features/open_flow13/echo_request_no_body.raw
1083
- - features/open_flow13/features_reply.feature
1084
- - features/open_flow13/features_reply.raw
1085
- - features/open_flow13/features_request.feature
1086
- - features/open_flow13/features_request.raw
1087
- - features/open_flow13/flow_add_apply_no_match.raw
1088
- - features/open_flow13/flow_mod.feature
1089
- - features/open_flow13/flow_mod_add_apply_no_match.raw
1090
- - features/open_flow13/flow_mod_no_match_or_instructions.raw
1091
- - features/open_flow13/goto_table.feature
1092
- - features/open_flow13/hello.feature
1093
- - features/open_flow13/hello_failed.feature
1094
- - features/open_flow13/hello_failed.raw
1095
- - features/open_flow13/hello_no_version_bitmap.raw
1096
- - features/open_flow13/hello_version_bitmap.raw
1097
- - features/open_flow13/instruction_clear_actions.raw
1098
- - features/open_flow13/instruction_goto_table.raw
1099
- - features/open_flow13/instruction_meter.raw
1100
- - features/open_flow13/instruction_write_actions.raw
1101
- - features/open_flow13/instruction_write_metadata.raw
1102
- - features/open_flow13/match.feature
1103
- - features/open_flow13/meter.feature
1104
- - features/open_flow13/nicira_reg_load.feature
1105
- - features/open_flow13/nicira_reg_move.feature
1106
- - features/open_flow13/nicira_send_out_port.feature
1107
- - features/open_flow13/oxm_arp_op_field.raw
1108
- - features/open_flow13/oxm_arp_sha_field.raw
1109
- - features/open_flow13/oxm_arp_spa_field.raw
1110
- - features/open_flow13/oxm_arp_tha_field.raw
1111
- - features/open_flow13/oxm_arp_tpa_field.raw
1112
- - features/open_flow13/oxm_ether_destination_field.raw
1113
- - features/open_flow13/oxm_ether_source_field.raw
1114
- - features/open_flow13/oxm_ether_type_field.raw
1115
- - features/open_flow13/oxm_experimenter_stratos_basic_dot11.raw
1116
- - features/open_flow13/oxm_icmpv4_code_field.raw
1117
- - features/open_flow13/oxm_icmpv4_type_field.raw
1118
- - features/open_flow13/oxm_in_phy_port_field.raw
1119
- - features/open_flow13/oxm_in_port_field.raw
1120
- - features/open_flow13/oxm_invalid_field.raw
1121
- - features/open_flow13/oxm_ip_dscp_field.raw
1122
- - features/open_flow13/oxm_ip_ecn_field.raw
1123
- - features/open_flow13/oxm_ipv4_destination_field.raw
1124
- - features/open_flow13/oxm_ipv4_source_field.raw
1125
- - features/open_flow13/oxm_ipv6_destination_field.raw
1126
- - features/open_flow13/oxm_ipv6_source_field.raw
1127
- - features/open_flow13/oxm_masked_arp_sha_field.raw
1128
- - features/open_flow13/oxm_masked_arp_spa_field.raw
1129
- - features/open_flow13/oxm_masked_arp_tha_field.raw
1130
- - features/open_flow13/oxm_masked_arp_tpa_field.raw
1131
- - features/open_flow13/oxm_masked_ether_destination_field.raw
1132
- - features/open_flow13/oxm_masked_ether_source_field.raw
1133
- - features/open_flow13/oxm_masked_ipv4_destination_field.raw
1134
- - features/open_flow13/oxm_masked_ipv4_source_field.raw
1135
- - features/open_flow13/oxm_masked_ipv6_destination_field.raw
1136
- - features/open_flow13/oxm_masked_ipv6_source_field.raw
1137
- - features/open_flow13/oxm_masked_tunnel_id_field.raw
1138
- - features/open_flow13/oxm_metadata_field.raw
1139
- - features/open_flow13/oxm_metadata_masked_field.raw
1140
- - features/open_flow13/oxm_no_fields.raw
1141
- - features/open_flow13/oxm_sctp_destination_field.raw
1142
- - features/open_flow13/oxm_sctp_source_field.raw
1143
- - features/open_flow13/oxm_tcp_destination_field.raw
1144
- - features/open_flow13/oxm_tcp_field.raw
1145
- - features/open_flow13/oxm_tcp_source_field.raw
1146
- - features/open_flow13/oxm_tunnel_id_field.raw
1147
- - features/open_flow13/oxm_udp_destination_field.raw
1148
- - features/open_flow13/oxm_udp_field.raw
1149
- - features/open_flow13/oxm_udp_source_field.raw
1150
- - features/open_flow13/oxm_vlan_pcp_field.raw
1151
- - features/open_flow13/oxm_vlan_vid_field.raw
1152
- - features/open_flow13/packet_in.feature
1153
- - features/open_flow13/packet_in.raw
1154
- - features/open_flow13/packet_out.feature
1155
- - features/open_flow13/packet_out.raw
1156
- - features/open_flow13/send_out_port.feature
1157
- - features/open_flow13/send_out_port.raw
1158
- - features/open_flow13/set_arp_operation.feature
1159
- - features/open_flow13/set_arp_sender_hardware_address.feature
1160
- - features/open_flow13/set_arp_sender_protocol_address.feature
1161
- - features/open_flow13/set_destination_mac_address.feature
1162
- - features/open_flow13/set_metadata.feature
1163
- - features/open_flow13/set_source_mac_address.feature
1164
- - features/open_flow13/stats_request.feature
1165
- - features/open_flow13/table_stats_reply.raw
1166
- - features/open_flow13/table_stats_request.raw
1167
- - features/open_flow13/write_metadata.feature
1168
- - features/open_flow_read.feature
1169
- - features/open_flow_version.feature
555
+ - features/open_flow10/description_stats_request.feature
556
+ - features/open_flow10/features_reply.feature
557
+ - features/open_flow10/flow_stats_request.feature
558
+ - features/open_flow10/set_transport_destination_port.feature
559
+ - features/open_flow10/set_tos.feature
560
+ - features/open_flow10/port_status.feature
561
+ - features/open_flow10/flow_removed.feature
562
+ - features/open_flow10/aggregate_stats_request.feature
563
+ - features/open_flow10/barrier_request.feature
564
+ - features/open_flow10/bad_request.feature
565
+ - features/open_flow10/barrier_reply.feature
566
+ - features/open_flow10/hello.feature
567
+ - features/arp/arp_request.feature
568
+ - features/arp/arp_reply.feature
569
+ - features/arp/arp.feature
1170
570
  - features/parser.feature
1171
- - features/step_definitions/dump_flows_steps.rb
1172
- - features/step_definitions/Gemfile
1173
- - features/step_definitions/Guardfile
1174
- - features/step_definitions/LICENSE
571
+ - features/open_flow_read.feature
1175
572
  - features/step_definitions/open_flow_steps.rb
1176
- - features/step_definitions/packet_data_steps.rb
1177
- - features/step_definitions/Rakefile
1178
- - features/step_definitions/README.md
1179
- - features/step_definitions/rest_api_steps.rb
573
+ - features/step_definitions/Guardfile
574
+ - features/step_definitions/dump_flows_steps.rb
1180
575
  - features/step_definitions/show_stats_steps.rb
1181
576
  - features/step_definitions/trema_steps.rb
577
+ - features/step_definitions/ruby_steps.rb
578
+ - features/step_definitions/Gemfile
579
+ - features/step_definitions/rest_api_steps.rb
580
+ - features/step_definitions/Rakefile
1182
581
  - features/step_definitions/virtual_link_steps.rb
582
+ - features/step_definitions/packet_data_steps.rb
583
+ - features/step_definitions/README.md
584
+ - features/ethernet_header.feature
585
+ - features/lldp.feature
1183
586
  - features/support/env.rb
1184
587
  - features/support/hooks.rb
1185
588
  - features/udp.feature
1186
- - features/udp_no_payload.raw
1187
- - features/udp_with_payload.raw
1188
589
  has_rdoc: