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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +6 -49
- data/Rakefile +4 -4
- data/features/{arp.feature → arp/arp.feature} +14 -30
- data/features/arp/arp_reply.feature +69 -0
- data/features/arp/arp_request.feature +67 -0
- data/features/dhcp.feature +157 -162
- data/features/ethernet_header.feature +149 -0
- data/features/icmp/icmp.feature +47 -0
- data/features/icmp/icmp_reply.feature +93 -0
- data/features/icmp/icmp_request.feature +89 -0
- data/features/ipv4_header.feature +89 -0
- data/features/lldp.feature +5 -8
- data/features/open_flow/header.feature +13 -0
- data/features/open_flow/nicira_resubmit.feature +4 -22
- data/features/open_flow/nicira_resubmit_table.feature +6 -16
- data/features/open_flow10/aggregate_stats_reply.feature +5 -7
- data/features/open_flow10/aggregate_stats_request.feature +12 -14
- data/features/open_flow10/bad_request.feature +7 -24
- data/features/open_flow10/barrier_reply.feature +14 -25
- data/features/open_flow10/barrier_request.feature +12 -25
- data/features/open_flow10/description_stats_reply.feature +9 -7
- data/features/open_flow10/description_stats_request.feature +12 -25
- data/features/open_flow10/echo_reply.feature +14 -35
- data/features/open_flow10/echo_request.feature +16 -39
- data/features/open_flow10/enqueue.feature +3 -4
- data/features/open_flow10/exact_match.feature +5 -5
- data/features/open_flow10/features_reply.feature +28 -73
- data/features/open_flow10/features_request.feature +10 -28
- data/features/open_flow10/flow_mod.feature +4 -188
- data/features/open_flow10/flow_removed.feature +28 -30
- data/features/open_flow10/flow_stats_reply.feature +5 -89
- data/features/open_flow10/flow_stats_request.feature +12 -42
- data/features/open_flow10/hello.feature +10 -32
- data/features/open_flow10/hello_failed.feature +7 -57
- data/features/open_flow10/packet_in.feature +130 -49
- data/features/open_flow10/packet_out.feature +29 -18
- data/features/open_flow10/port_stats_request.feature +8 -29
- data/features/open_flow10/port_status.feature +22 -21
- data/features/open_flow10/queue_stats_request.feature +12 -30
- data/features/open_flow10/send_out_port.feature +17 -25
- data/features/open_flow10/set_destination_mac_address.feature +3 -4
- data/features/open_flow10/set_ip_destination_address.feature +3 -4
- data/features/open_flow10/set_source_ip_address.feature +3 -4
- data/features/open_flow10/set_source_mac_address.feature +3 -4
- data/features/open_flow10/set_tos.feature +3 -4
- data/features/open_flow10/set_transport_destination_port.feature +3 -4
- data/features/open_flow10/set_transport_source_port.feature +3 -4
- data/features/open_flow10/set_vlan_priority.feature +3 -4
- data/features/open_flow10/set_vlan_vid.feature +3 -4
- data/features/open_flow10/strip_vlan_header.feature +3 -4
- data/features/open_flow10/table_stats_request.feature +11 -13
- data/features/open_flow10/vendor_action.feature +4 -5
- data/features/open_flow13/apply_actions.feature +15 -18
- data/features/open_flow13/bad_request.feature +7 -13
- data/features/open_flow13/copy_ttl_inwards.feature +13 -0
- data/features/open_flow13/copy_ttl_outwards.feature +13 -0
- data/features/open_flow13/decrement_ip_ttl.feature +11 -0
- data/features/open_flow13/echo_reply.feature +16 -42
- data/features/open_flow13/echo_request.feature +16 -42
- data/features/open_flow13/features_reply.feature +4 -25
- data/features/open_flow13/features_request.feature +7 -36
- data/features/open_flow13/flow_mod.feature +16 -76
- data/features/open_flow13/goto_table.feature +18 -20
- data/features/open_flow13/hello.feature +7 -37
- data/features/open_flow13/hello_failed.feature +7 -30
- data/features/open_flow13/match.feature +239 -248
- data/features/open_flow13/meter.feature +18 -20
- data/features/open_flow13/nicira_conjunction.feature +15 -0
- data/features/open_flow13/nicira_reg_load.feature +27 -42
- data/features/open_flow13/nicira_reg_move.feature +41 -35
- data/features/open_flow13/nicira_send_out_port.feature +21 -13
- data/features/open_flow13/nicira_stack_pop.feature +26 -0
- data/features/open_flow13/nicira_stack_push.feature +26 -0
- data/features/open_flow13/packet_in.feature +7 -34
- data/features/open_flow13/packet_out.feature +7 -45
- data/features/open_flow13/send_out_port.feature +19 -28
- data/features/open_flow13/set_arp_operation.feature +4 -5
- data/features/open_flow13/set_arp_sender_hardware_address.feature +3 -4
- data/features/open_flow13/set_arp_sender_protocol_address.feature +3 -4
- data/features/open_flow13/set_destination_mac_address.feature +3 -4
- data/features/open_flow13/set_ip_ttl.feature +12 -0
- data/features/open_flow13/set_metadata.feature +3 -4
- data/features/open_flow13/set_source_mac_address.feature +3 -4
- data/features/open_flow13/stats_request.feature +4 -7
- data/features/open_flow13/write_metadata.feature +20 -22
- data/features/open_flow_read.feature +24 -5
- data/features/open_flow_version.feature +1 -1
- data/features/parser.feature +8 -9
- data/features/step_definitions/open_flow_steps.rb +11 -16
- data/features/step_definitions/packet_data_steps.rb +16 -32
- data/features/step_definitions/ruby_steps.rb +7 -0
- data/features/step_definitions/show_stats_steps.rb +3 -3
- data/features/support/env.rb +1 -0
- data/features/support/hooks.rb +2 -2
- data/features/udp.feature +26 -27
- data/lib/pio.rb +1 -1
- data/lib/pio/arp.rb +9 -6
- data/lib/pio/arp/format.rb +3 -7
- data/lib/pio/arp/message.rb +8 -4
- data/lib/pio/arp/reply.rb +9 -32
- data/lib/pio/arp/request.rb +9 -33
- data/lib/pio/class_inspector.rb +18 -0
- data/lib/pio/dhcp.rb +2 -2
- data/lib/pio/dhcp/frame.rb +4 -4
- data/lib/pio/dhcp/optional_tlv.rb +3 -3
- data/lib/pio/ethernet_frame.rb +20 -0
- data/lib/pio/ethernet_header.rb +35 -13
- data/lib/pio/icmp.rb +8 -5
- data/lib/pio/icmp/format.rb +19 -22
- data/lib/pio/icmp/message.rb +18 -4
- data/lib/pio/icmp/reply.rb +8 -34
- data/lib/pio/icmp/request.rb +8 -43
- data/lib/pio/instance_inspector.rb +14 -0
- data/lib/pio/ipv4_address.rb +11 -11
- data/lib/pio/ipv4_header.rb +24 -2
- data/lib/pio/lldp/frame.rb +2 -2
- data/lib/pio/lldp/optional_tlv.rb +2 -2
- data/lib/pio/mac.rb +7 -3
- data/lib/pio/message.rb +50 -0
- data/lib/pio/monkey_patch/bindata_record.rb +6 -0
- data/lib/pio/monkey_patch/bindata_string.rb +10 -0
- data/lib/pio/monkey_patch/integer/base_conversions.rb +1 -1
- data/lib/pio/monkey_patch/uint.rb +9 -0
- data/lib/pio/monkey_patch/uint/base_conversions.rb +14 -0
- data/lib/pio/open_flow.rb +38 -52
- data/lib/pio/open_flow/action.rb +8 -4
- data/lib/pio/open_flow/buffer_id.rb +19 -0
- data/lib/pio/open_flow/datapath_id.rb +3 -3
- data/lib/pio/open_flow/error_message.rb +32 -0
- data/lib/pio/open_flow/flags.rb +15 -6
- data/lib/pio/open_flow/flow_match.rb +10 -0
- data/lib/pio/open_flow/header.rb +26 -0
- data/lib/pio/open_flow/hello_failed_code.rb +1 -1
- data/lib/pio/open_flow/instruction.rb +10 -0
- data/lib/pio/open_flow/message.rb +49 -14
- data/lib/pio/open_flow/nicira_resubmit.rb +13 -11
- data/lib/pio/open_flow/nicira_resubmit_table.rb +17 -10
- data/lib/pio/open_flow/parser.rb +19 -0
- data/lib/pio/open_flow/port.rb +2 -2
- data/lib/pio/open_flow/transaction_id.rb +2 -2
- data/lib/pio/open_flow/version.rb +22 -0
- data/lib/pio/open_flow10/actions.rb +16 -16
- data/lib/pio/open_flow10/aggregate_stats/reply.rb +2 -1
- data/lib/pio/open_flow10/aggregate_stats/request.rb +1 -3
- data/lib/pio/open_flow10/barrier/reply.rb +1 -1
- data/lib/pio/open_flow10/barrier/request.rb +1 -1
- data/lib/pio/open_flow10/description_stats/reply.rb +1 -1
- data/lib/pio/open_flow10/description_stats/request.rb +1 -3
- data/lib/pio/open_flow10/echo/reply.rb +3 -3
- data/lib/pio/open_flow10/echo/request.rb +3 -3
- data/lib/pio/open_flow10/enqueue.rb +3 -3
- data/lib/pio/open_flow10/error.rb +3 -13
- data/lib/pio/open_flow10/error/bad_request.rb +5 -29
- data/lib/pio/open_flow10/error/bad_request/bad_request_code.rb +35 -0
- data/lib/pio/open_flow10/error/error_type10.rb +1 -1
- data/lib/pio/open_flow10/error/hello_failed.rb +6 -4
- data/lib/pio/open_flow10/exact_match.rb +12 -10
- data/lib/pio/open_flow10/features/reply.rb +16 -31
- data/lib/pio/open_flow10/features/request.rb +1 -4
- data/lib/pio/open_flow10/flow_mod.rb +8 -33
- data/lib/pio/open_flow10/flow_mod/command.rb +28 -0
- data/lib/pio/open_flow10/flow_removed.rb +2 -17
- data/lib/pio/open_flow10/flow_removed/reason.rb +22 -0
- data/lib/pio/open_flow10/flow_stats/reply.rb +3 -4
- data/lib/pio/open_flow10/flow_stats/request.rb +1 -3
- data/lib/pio/open_flow10/hello.rb +1 -4
- data/lib/pio/open_flow10/match.rb +13 -12
- data/lib/pio/open_flow10/packet_in.rb +32 -28
- data/lib/pio/open_flow10/packet_in/reason.rb +25 -0
- data/lib/pio/open_flow10/packet_out.rb +5 -6
- data/lib/pio/open_flow10/phy_port16.rb +36 -58
- data/lib/pio/open_flow10/port_stats/request.rb +1 -3
- data/lib/pio/open_flow10/port_status.rb +23 -30
- data/lib/pio/open_flow10/port_status/reason.rb +21 -0
- data/lib/pio/open_flow10/queue_stats/request.rb +1 -3
- data/lib/pio/open_flow10/send_out_port.rb +2 -2
- data/lib/pio/open_flow10/set_tos.rb +2 -2
- data/lib/pio/open_flow10/set_transport_port.rb +4 -2
- data/lib/pio/open_flow10/set_vlan_priority.rb +1 -1
- data/lib/pio/open_flow10/set_vlan_vid.rb +1 -1
- data/lib/pio/open_flow10/stats_reply.rb +7 -10
- data/lib/pio/open_flow10/stats_request.rb +16 -15
- data/lib/pio/open_flow10/stats_type.rb +1 -1
- data/lib/pio/open_flow10/table_stats/request.rb +1 -3
- data/lib/pio/open_flow10/vendor_action.rb +22 -20
- data/lib/pio/open_flow13.rb +7 -0
- data/lib/pio/open_flow13/actions.rb +34 -32
- data/lib/pio/open_flow13/apply.rb +25 -22
- data/lib/pio/open_flow13/copy_ttl_inwards.rb +15 -0
- data/lib/pio/open_flow13/copy_ttl_outwards.rb +15 -0
- data/lib/pio/open_flow13/decrement_ip_ttl.rb +15 -0
- data/lib/pio/open_flow13/echo/reply.rb +3 -3
- data/lib/pio/open_flow13/echo/request.rb +3 -3
- data/lib/pio/open_flow13/error.rb +7 -18
- data/lib/pio/open_flow13/error/bad_request.rb +4 -3
- data/lib/pio/open_flow13/error/error_type13.rb +1 -1
- data/lib/pio/open_flow13/error/hello_failed.rb +3 -2
- data/lib/pio/open_flow13/features/reply.rb +9 -16
- data/lib/pio/open_flow13/features/request.rb +1 -1
- data/lib/pio/open_flow13/flow_mod.rb +14 -19
- data/lib/pio/open_flow13/goto_table.rb +26 -24
- data/lib/pio/open_flow13/hello.rb +3 -4
- data/lib/pio/open_flow13/match.rb +173 -9
- data/lib/pio/open_flow13/meter.rb +23 -20
- data/lib/pio/open_flow13/nicira_conjunction.rb +26 -0
- data/lib/pio/open_flow13/nicira_reg_load.rb +44 -24
- data/lib/pio/open_flow13/nicira_reg_move.rb +77 -35
- data/lib/pio/open_flow13/nicira_send_out_port.rb +37 -21
- data/lib/pio/open_flow13/nicira_stack_pop.rb +49 -0
- data/lib/pio/open_flow13/nicira_stack_push.rb +49 -0
- data/lib/pio/open_flow13/packet_in.rb +11 -8
- data/lib/pio/open_flow13/packet_out.rb +9 -8
- data/lib/pio/open_flow13/set_ip_ttl.rb +16 -0
- data/lib/pio/open_flow13/stats_request.rb +2 -4
- data/lib/pio/open_flow13/write_metadata.rb +40 -38
- data/lib/pio/options.rb +8 -3
- data/lib/pio/parser.rb +7 -16
- data/lib/pio/ruby_dumper.rb +69 -0
- data/lib/pio/type/ether_type.rb +31 -0
- data/lib/pio/type/ip_address.rb +8 -0
- data/lib/pio/type/mac_address.rb +10 -0
- data/lib/pio/udp.rb +3 -3
- data/lib/pio/udp_header.rb +1 -1
- data/lib/pio/version.rb +1 -1
- data/pio.gemspec +5 -38
- data/spec/pio/arp/reply_spec.rb +0 -4
- data/spec/pio/arp/request_spec.rb +0 -4
- data/spec/pio/arp_spec.rb +0 -4
- data/spec/pio/icmp/reply_spec.rb +4 -8
- data/spec/pio/icmp/request_spec.rb +6 -10
- data/spec/pio/icmp_spec.rb +8 -12
- data/spec/pio/monkey_patch/integer_spec.rb +23 -0
- data/spec/pio/open_flow/nicira_resubmit_spec.rb +19 -0
- data/spec/pio/open_flow/nicira_resubmit_table_spec.rb +20 -0
- data/spec/pio/open_flow10/error/hello_failed_spec.rb +2 -2
- data/spec/pio/open_flow10/flow_mod_spec.rb +24 -24
- data/spec/pio/open_flow10/flow_stats_request_spec.rb +3 -3
- data/spec/pio/open_flow10/hello_spec.rb +0 -2
- data/spec/pio/open_flow10/match_spec.rb +38 -38
- data/spec/pio/open_flow10/packet_out_spec.rb +0 -349
- data/spec/pio/open_flow10/phy_port16_spec.rb +5 -5
- data/spec/pio/open_flow13/error/hello_failed_spec.rb +2 -2
- data/spec/pio/open_flow13/goto_table_spec.rb +2 -2
- data/spec/pio/open_flow13/hello_spec.rb +15 -15
- data/spec/pio/open_flow13/match_spec.rb +29 -29
- data/spec/pio/open_flow13/meter_spec.rb +2 -2
- data/spec/pio/open_flow13/nicira_reg_load_spec.rb +71 -0
- data/spec/pio/open_flow13/nicira_reg_move_spec.rb +40 -0
- data/spec/pio/open_flow13/nicira_send_out_port_spec.rb +29 -0
- data/spec/pio/open_flow13/write_metadata_spec.rb +3 -3
- data/spec/pio/open_flow_spec.rb +6 -6
- data/spec/spec_helper.rb +1 -1
- data/spec/support/shared_examples_for_openflow_messages.rb +5 -13
- metadata +191 -790
- data/LICENSE +0 -674
- data/bin/_guard-core +0 -16
- data/bin/byebug +0 -16
- data/bin/cc-tddium-post-worker +0 -16
- data/bin/cdiff +0 -16
- data/bin/coderay +0 -16
- data/bin/colortab +0 -16
- data/bin/coveralls +0 -16
- data/bin/cucumber +0 -16
- data/bin/decolor +0 -16
- data/bin/flay +0 -16
- data/bin/flog +0 -16
- data/bin/guard +0 -16
- data/bin/htmldiff +0 -16
- data/bin/inch +0 -16
- data/bin/ldiff +0 -16
- data/bin/listen +0 -16
- data/bin/minitar +0 -16
- data/bin/pry +0 -16
- data/bin/rake +0 -16
- data/bin/reek +0 -16
- data/bin/relish +0 -16
- data/bin/restclient +0 -16
- data/bin/rspec +0 -16
- data/bin/rubocop +0 -16
- data/bin/ruby-parse +0 -16
- data/bin/ruby-rewrite +0 -16
- data/bin/ruby_parse +0 -16
- data/bin/ruby_parse_extract_error +0 -16
- data/bin/sparkr +0 -16
- data/bin/term_display +0 -16
- data/bin/term_mandel +0 -16
- data/bin/terminal-notifier +0 -16
- data/bin/thor +0 -16
- data/bin/unparser +0 -16
- data/bin/yard +0 -16
- data/bin/yardoc +0 -16
- data/bin/yri +0 -16
- data/features/arp-storm.pcap +0 -0
- data/features/arp.pcap +0 -0
- data/features/dhcp.pcap +0 -0
- data/features/icmp.feature +0 -130
- data/features/icmp.pcap +0 -0
- data/features/icmpv6.pcap +0 -0
- data/features/lldp.detailed.pcap +0 -0
- data/features/lldp.minimal.pcap +0 -0
- data/features/open_flow10/aggregate_stats_reply.raw +0 -0
- data/features/open_flow10/aggregate_stats_request.raw +0 -0
- data/features/open_flow10/bad_request.raw +0 -0
- data/features/open_flow10/barrier_reply.raw +0 -0
- data/features/open_flow10/barrier_request.raw +0 -0
- data/features/open_flow10/description_stats_reply.raw +0 -0
- data/features/open_flow10/description_stats_request.raw +0 -0
- data/features/open_flow10/echo_reply.raw +0 -0
- data/features/open_flow10/echo_request.raw +0 -0
- data/features/open_flow10/error.raw +0 -0
- data/features/open_flow10/features_reply.raw +0 -0
- data/features/open_flow10/features_request.raw +0 -0
- data/features/open_flow10/flow_mod_add.raw +0 -0
- data/features/open_flow10/flow_mod_delete.raw +0 -0
- data/features/open_flow10/flow_mod_delete_strict.raw +0 -0
- data/features/open_flow10/flow_mod_modify.raw +0 -0
- data/features/open_flow10/flow_mod_modify_strict.raw +0 -0
- data/features/open_flow10/flow_removed.raw +0 -0
- data/features/open_flow10/flow_stats_reply.raw +0 -0
- data/features/open_flow10/flow_stats_request.raw +0 -0
- data/features/open_flow10/get_config_reply.raw +0 -0
- data/features/open_flow10/get_config_request.raw +0 -0
- data/features/open_flow10/hello.raw +0 -0
- data/features/open_flow10/hello_failed.raw +0 -0
- data/features/open_flow10/nx_flow_mod_add.raw +0 -0
- data/features/open_flow10/nx_flow_mod_delete.raw +0 -0
- data/features/open_flow10/nx_flow_mod_delete_strict.raw +0 -0
- data/features/open_flow10/nx_flow_mod_modify.raw +0 -0
- data/features/open_flow10/nx_flow_mod_modify_strict.raw +0 -0
- data/features/open_flow10/nxast_learn.raw +0 -0
- data/features/open_flow10/packet_in.raw +0 -0
- data/features/open_flow10/packet_in_arp_reply.raw +0 -0
- data/features/open_flow10/packet_in_arp_request.raw +0 -0
- data/features/open_flow10/packet_in_cbench.raw +0 -0
- data/features/open_flow10/packet_out.raw +0 -0
- data/features/open_flow10/port_mod.raw +0 -0
- data/features/open_flow10/port_stats_reply.raw +0 -0
- data/features/open_flow10/port_stats_request.raw +0 -0
- data/features/open_flow10/port_status.raw +0 -0
- data/features/open_flow10/queue_get_config_reply.raw +0 -0
- data/features/open_flow10/queue_get_config_request.raw +0 -0
- data/features/open_flow10/queue_stats_request.raw +0 -0
- data/features/open_flow10/set_config.raw +0 -0
- data/features/open_flow10/table_stats_reply.raw +0 -0
- data/features/open_flow10/table_stats_request.raw +0 -0
- data/features/open_flow10/vendor.raw +0 -0
- data/features/open_flow10/vendor_stats_request.raw +0 -0
- data/features/open_flow13/action_copy_ttl_in.raw +0 -0
- data/features/open_flow13/action_copy_ttl_out.raw +0 -0
- data/features/open_flow13/action_dec_mpls_ttl.raw +0 -0
- data/features/open_flow13/action_dec_nw_ttl.raw +0 -0
- data/features/open_flow13/action_group.raw +0 -0
- data/features/open_flow13/action_pop_mpls.raw +0 -0
- data/features/open_flow13/action_pop_pbb.raw +0 -0
- data/features/open_flow13/action_pop_vlan.raw +0 -0
- data/features/open_flow13/action_push_mpls.raw +0 -0
- data/features/open_flow13/action_push_pbb.raw +0 -0
- data/features/open_flow13/action_push_vlan.raw +0 -0
- data/features/open_flow13/action_set_field.raw +0 -0
- data/features/open_flow13/action_set_mpls_ttl.raw +0 -0
- data/features/open_flow13/action_set_nw_ttl.raw +0 -0
- data/features/open_flow13/action_set_queue.raw +0 -0
- data/features/open_flow13/apply_actions.raw +0 -0
- data/features/open_flow13/bad_request.raw +0 -0
- data/features/open_flow13/echo_reply_body.raw +0 -0
- data/features/open_flow13/echo_reply_no_body.raw +0 -0
- data/features/open_flow13/echo_request_body.raw +0 -0
- data/features/open_flow13/echo_request_no_body.raw +0 -0
- data/features/open_flow13/features_reply.raw +0 -0
- data/features/open_flow13/features_request.raw +0 -0
- data/features/open_flow13/flow_add_apply_no_match.raw +0 -0
- data/features/open_flow13/flow_mod_add_apply_no_match.raw +0 -0
- data/features/open_flow13/flow_mod_no_match_or_instructions.raw +0 -0
- data/features/open_flow13/hello_failed.raw +0 -0
- data/features/open_flow13/hello_no_version_bitmap.raw +0 -0
- data/features/open_flow13/hello_version_bitmap.raw +0 -0
- data/features/open_flow13/instruction_clear_actions.raw +0 -0
- data/features/open_flow13/instruction_goto_table.raw +0 -0
- data/features/open_flow13/instruction_meter.raw +0 -0
- data/features/open_flow13/instruction_write_actions.raw +0 -0
- data/features/open_flow13/instruction_write_metadata.raw +0 -0
- data/features/open_flow13/oxm_arp_op_field.raw +0 -0
- data/features/open_flow13/oxm_arp_sha_field.raw +0 -0
- data/features/open_flow13/oxm_arp_spa_field.raw +0 -0
- data/features/open_flow13/oxm_arp_tha_field.raw +0 -0
- data/features/open_flow13/oxm_arp_tpa_field.raw +0 -0
- data/features/open_flow13/oxm_ether_destination_field.raw +0 -0
- data/features/open_flow13/oxm_ether_source_field.raw +0 -0
- data/features/open_flow13/oxm_ether_type_field.raw +0 -0
- data/features/open_flow13/oxm_experimenter_stratos_basic_dot11.raw +0 -0
- data/features/open_flow13/oxm_icmpv4_code_field.raw +0 -0
- data/features/open_flow13/oxm_icmpv4_type_field.raw +0 -0
- data/features/open_flow13/oxm_in_phy_port_field.raw +0 -0
- data/features/open_flow13/oxm_in_port_field.raw +0 -0
- data/features/open_flow13/oxm_invalid_field.raw +0 -0
- data/features/open_flow13/oxm_ip_dscp_field.raw +0 -0
- data/features/open_flow13/oxm_ip_ecn_field.raw +0 -0
- data/features/open_flow13/oxm_ipv4_destination_field.raw +0 -0
- data/features/open_flow13/oxm_ipv4_source_field.raw +0 -0
- data/features/open_flow13/oxm_ipv6_destination_field.raw +0 -0
- data/features/open_flow13/oxm_ipv6_source_field.raw +0 -0
- data/features/open_flow13/oxm_masked_arp_sha_field.raw +0 -0
- data/features/open_flow13/oxm_masked_arp_spa_field.raw +0 -0
- data/features/open_flow13/oxm_masked_arp_tha_field.raw +0 -0
- data/features/open_flow13/oxm_masked_arp_tpa_field.raw +0 -0
- data/features/open_flow13/oxm_masked_ether_destination_field.raw +0 -0
- data/features/open_flow13/oxm_masked_ether_source_field.raw +0 -0
- data/features/open_flow13/oxm_masked_ipv4_destination_field.raw +0 -0
- data/features/open_flow13/oxm_masked_ipv4_source_field.raw +0 -0
- data/features/open_flow13/oxm_masked_ipv6_destination_field.raw +0 -0
- data/features/open_flow13/oxm_masked_ipv6_source_field.raw +0 -0
- data/features/open_flow13/oxm_masked_tunnel_id_field.raw +0 -0
- data/features/open_flow13/oxm_metadata_field.raw +0 -0
- data/features/open_flow13/oxm_metadata_masked_field.raw +0 -0
- data/features/open_flow13/oxm_no_fields.raw +0 -0
- data/features/open_flow13/oxm_sctp_destination_field.raw +0 -0
- data/features/open_flow13/oxm_sctp_source_field.raw +0 -0
- data/features/open_flow13/oxm_tcp_destination_field.raw +0 -0
- data/features/open_flow13/oxm_tcp_field.raw +0 -0
- data/features/open_flow13/oxm_tcp_source_field.raw +0 -0
- data/features/open_flow13/oxm_tunnel_id_field.raw +0 -0
- data/features/open_flow13/oxm_udp_destination_field.raw +0 -0
- data/features/open_flow13/oxm_udp_field.raw +0 -0
- data/features/open_flow13/oxm_udp_source_field.raw +0 -0
- data/features/open_flow13/oxm_vlan_pcp_field.raw +0 -0
- data/features/open_flow13/oxm_vlan_vid_field.raw +0 -0
- data/features/open_flow13/packet_in.raw +0 -0
- data/features/open_flow13/packet_out.raw +0 -0
- data/features/open_flow13/send_out_port.raw +0 -0
- data/features/open_flow13/table_stats_reply.raw +0 -0
- data/features/open_flow13/table_stats_request.raw +0 -0
- data/features/step_definitions/LICENSE +0 -675
- data/features/udp_no_payload.raw +0 -0
- data/features/udp_with_payload.raw +0 -0
- data/lib/pio/icmp/options.rb +0 -21
- data/lib/pio/open_flow/error.rb +0 -19
- data/lib/pio/open_flow/open_flow_header.rb +0 -31
- data/lib/pio/open_flow13/buffer_id.rb +0 -17
- data/spec/pio/arp/reply/options_spec.rb +0 -143
- data/spec/pio/arp/request/options_spec.rb +0 -113
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
@open_flow10
|
|
2
|
-
Feature:
|
|
2
|
+
Feature: SetVlanPriority
|
|
3
3
|
|
|
4
4
|
Scenario: new(1)
|
|
5
|
-
When I
|
|
5
|
+
When I create an OpenFlow action with:
|
|
6
6
|
"""
|
|
7
7
|
Pio::OpenFlow10::SetVlanPriority.new(1)
|
|
8
8
|
"""
|
|
9
|
-
Then
|
|
10
|
-
And the action has the following fields and values:
|
|
9
|
+
Then the action has the following fields and values:
|
|
11
10
|
| field | value |
|
|
12
11
|
| action_type | 2 |
|
|
13
12
|
| action_length | 8 |
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
@open_flow10
|
|
2
|
-
Feature:
|
|
2
|
+
Feature: SetVlanVid
|
|
3
3
|
|
|
4
4
|
Scenario: new(1)
|
|
5
|
-
When I
|
|
5
|
+
When I create an OpenFlow action with:
|
|
6
6
|
"""
|
|
7
7
|
Pio::OpenFlow10::SetVlanVid.new(1)
|
|
8
8
|
"""
|
|
9
|
-
Then
|
|
10
|
-
And the action has the following fields and values:
|
|
9
|
+
Then the action has the following fields and values:
|
|
11
10
|
| field | value |
|
|
12
11
|
| action_type | 1 |
|
|
13
12
|
| action_length | 8 |
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
@open_flow10
|
|
2
|
-
Feature:
|
|
2
|
+
Feature: StripVlanHeader
|
|
3
3
|
|
|
4
4
|
Scenario: new
|
|
5
|
-
When I
|
|
5
|
+
When I create an OpenFlow action with:
|
|
6
6
|
"""
|
|
7
7
|
Pio::OpenFlow10::StripVlanHeader.new
|
|
8
8
|
"""
|
|
9
|
-
Then
|
|
10
|
-
And the action has the following fields and values:
|
|
9
|
+
Then the action has the following fields and values:
|
|
11
10
|
| field | value |
|
|
12
11
|
| action_type | 3 |
|
|
13
12
|
| action_length | 8 |
|
|
@@ -1,31 +1,29 @@
|
|
|
1
1
|
@open_flow10
|
|
2
|
-
Feature:
|
|
2
|
+
Feature: TableStats::Request
|
|
3
|
+
|
|
4
|
+
Information about tables is requested with a Table Stats Request
|
|
5
|
+
message.
|
|
6
|
+
|
|
3
7
|
Scenario: new
|
|
4
|
-
When I
|
|
8
|
+
When I create an OpenFlow message with:
|
|
5
9
|
"""
|
|
6
10
|
Pio::TableStats::Request.new
|
|
7
11
|
"""
|
|
8
|
-
Then
|
|
9
|
-
And the message has the following fields and values:
|
|
12
|
+
Then the message has the following fields and values:
|
|
10
13
|
| field | value |
|
|
11
|
-
|
|
|
12
|
-
| message_type | 16 |
|
|
13
|
-
| message_length | 12 |
|
|
14
|
+
| version | 1 |
|
|
14
15
|
| transaction_id | 0 |
|
|
15
16
|
| xid | 0 |
|
|
16
17
|
| stats_type | :table |
|
|
17
18
|
|
|
18
19
|
Scenario: new(transaction_id: 123)
|
|
19
|
-
When I
|
|
20
|
+
When I create an OpenFlow message with:
|
|
20
21
|
"""
|
|
21
22
|
Pio::TableStats::Request.new(transaction_id: 123)
|
|
22
23
|
"""
|
|
23
|
-
Then
|
|
24
|
-
And the message has the following fields and values:
|
|
24
|
+
Then the message has the following fields and values:
|
|
25
25
|
| field | value |
|
|
26
|
-
|
|
|
27
|
-
| message_type | 16 |
|
|
28
|
-
| message_length | 12 |
|
|
26
|
+
| version | 1 |
|
|
29
27
|
| transaction_id | 123 |
|
|
30
28
|
| xid | 123 |
|
|
31
29
|
| stats_type | :table |
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
@open_flow10
|
|
2
|
-
Feature:
|
|
2
|
+
Feature: VendorAction
|
|
3
3
|
|
|
4
4
|
Scenario: new(1)
|
|
5
|
-
When I
|
|
5
|
+
When I create an OpenFlow action with:
|
|
6
6
|
"""
|
|
7
|
-
Pio::VendorAction.new(1)
|
|
7
|
+
Pio::OpenFlow10::VendorAction.new(1)
|
|
8
8
|
"""
|
|
9
|
-
Then
|
|
10
|
-
And the action has the following fields and values:
|
|
9
|
+
Then the action has the following fields and values:
|
|
11
10
|
| field | value |
|
|
12
11
|
| action_type.to_hex | 0xffff |
|
|
13
12
|
| length | 8 |
|
|
@@ -1,27 +1,25 @@
|
|
|
1
1
|
@open_flow13
|
|
2
|
-
Feature: Apply
|
|
2
|
+
Feature: Apply
|
|
3
3
|
Scenario: new()
|
|
4
|
-
When I
|
|
4
|
+
When I create an OpenFlow instruction with:
|
|
5
5
|
"""
|
|
6
6
|
Pio::Apply.new
|
|
7
7
|
"""
|
|
8
|
-
Then
|
|
9
|
-
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
| actions | [] |
|
|
8
|
+
Then the message has the following fields and values:
|
|
9
|
+
| field | value |
|
|
10
|
+
| class | Pio::OpenFlow13::Apply |
|
|
11
|
+
| instruction_type | 4 |
|
|
12
|
+
| instruction_length | 8 |
|
|
13
|
+
| actions | [] |
|
|
15
14
|
|
|
16
15
|
Scenario: new(SendOutPort.new(1))
|
|
17
|
-
When I
|
|
16
|
+
When I create an OpenFlow instruction with:
|
|
18
17
|
"""
|
|
19
|
-
Pio::Apply.new(SendOutPort.new(1))
|
|
18
|
+
Pio::Apply.new(Pio::SendOutPort.new(1))
|
|
20
19
|
"""
|
|
21
|
-
Then
|
|
22
|
-
And the message has the following fields and values:
|
|
20
|
+
Then the message has the following fields and values:
|
|
23
21
|
| field | value |
|
|
24
|
-
| class |
|
|
22
|
+
| class | Pio::OpenFlow13::Apply |
|
|
25
23
|
| instruction_type | 4 |
|
|
26
24
|
| instruction_length | 24 |
|
|
27
25
|
| actions.size | 1 |
|
|
@@ -29,11 +27,10 @@ Feature: Apply-Actions instruction.
|
|
|
29
27
|
| actions.at(0).port | 1 |
|
|
30
28
|
|
|
31
29
|
Scenario: read
|
|
32
|
-
When I
|
|
33
|
-
Then
|
|
34
|
-
And the message has the following fields and values:
|
|
30
|
+
When I parse a file named "open_flow13/apply_actions.raw" with "Pio::Apply" class
|
|
31
|
+
Then the message has the following fields and values:
|
|
35
32
|
| field | value |
|
|
36
|
-
| class |
|
|
33
|
+
| class | Pio::OpenFlow13::Apply |
|
|
37
34
|
| instruction_type | 4 |
|
|
38
35
|
| instruction_length | 24 |
|
|
39
36
|
| actions.size | 1 |
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
@open_flow13
|
|
2
|
-
Feature:
|
|
2
|
+
Feature: Error::BadRequest
|
|
3
3
|
|
|
4
4
|
Request was not understood error.
|
|
5
5
|
|
|
6
6
|
Scenario: new (raw_data = Echo request 1.0)
|
|
7
|
-
When I
|
|
7
|
+
When I create an OpenFlow message with:
|
|
8
8
|
"""
|
|
9
9
|
Pio::Error::BadRequest.new(raw_data: Pio::OpenFlow10::Echo::Request.new.to_binary)
|
|
10
10
|
"""
|
|
11
|
-
Then
|
|
12
|
-
And the message has the following fields and values:
|
|
11
|
+
Then the message has the following fields and values:
|
|
13
12
|
| field | value |
|
|
14
|
-
|
|
|
15
|
-
| message_type | 1 |
|
|
16
|
-
| message_length | 20 |
|
|
13
|
+
| version | 4 |
|
|
17
14
|
| transaction_id | 0 |
|
|
18
15
|
| xid | 0 |
|
|
19
16
|
| error_type | :bad_request |
|
|
@@ -21,13 +18,10 @@ Feature: Pio::Error::BadRequest
|
|
|
21
18
|
| raw_data.length | 8 |
|
|
22
19
|
|
|
23
20
|
Scenario: read
|
|
24
|
-
When I
|
|
25
|
-
Then
|
|
26
|
-
And the message has the following fields and values:
|
|
21
|
+
When I parse a file named "open_flow13/bad_request.raw" with "Pio::Error::BadRequest" class
|
|
22
|
+
Then the message has the following fields and values:
|
|
27
23
|
| field | value |
|
|
28
|
-
|
|
|
29
|
-
| message_type | 1 |
|
|
30
|
-
| message_length | 20 |
|
|
24
|
+
| version | 4 |
|
|
31
25
|
| transaction_id | 0 |
|
|
32
26
|
| xid | 0 |
|
|
33
27
|
| error_type | :bad_request |
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@open_flow13
|
|
2
|
+
Feature: CopyTtlInwards
|
|
3
|
+
|
|
4
|
+
Copies TTL "inwards" -- from outermost to next-to-outermost
|
|
5
|
+
|
|
6
|
+
Scenario: new
|
|
7
|
+
When I create an OpenFlow action with:
|
|
8
|
+
"""
|
|
9
|
+
Pio::CopyTtlInwards.new
|
|
10
|
+
"""
|
|
11
|
+
Then the action has the following fields and values:
|
|
12
|
+
| field | value |
|
|
13
|
+
| action_type | 12 |
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@open_flow13
|
|
2
|
+
Feature: CopyTtlOutwards
|
|
3
|
+
|
|
4
|
+
Copies TTL "outwards" -- from next-to-outermost to outermost
|
|
5
|
+
|
|
6
|
+
Scenario: new
|
|
7
|
+
When I create an OpenFlow action with:
|
|
8
|
+
"""
|
|
9
|
+
Pio::CopyTtlOutwards.new
|
|
10
|
+
"""
|
|
11
|
+
Then the action has the following fields and values:
|
|
12
|
+
| field | value |
|
|
13
|
+
| action_type | 11 |
|
|
@@ -1,86 +1,60 @@
|
|
|
1
1
|
@open_flow13
|
|
2
|
-
Feature:
|
|
2
|
+
Feature: Echo::Reply
|
|
3
3
|
Scenario: new
|
|
4
|
-
When I
|
|
4
|
+
When I create an OpenFlow message with:
|
|
5
5
|
"""
|
|
6
6
|
Pio::Echo::Reply.new
|
|
7
7
|
"""
|
|
8
|
-
Then
|
|
9
|
-
And the message has the following fields and values:
|
|
8
|
+
Then the message has the following fields and values:
|
|
10
9
|
| field | value |
|
|
11
|
-
|
|
|
12
|
-
| message_type | 3 |
|
|
13
|
-
| message_length | 8 |
|
|
10
|
+
| version | 4 |
|
|
14
11
|
| transaction_id | 0 |
|
|
15
12
|
| xid | 0 |
|
|
16
13
|
| body | |
|
|
17
14
|
| user_data | |
|
|
18
15
|
|
|
19
16
|
Scenario: new(transaction_id: 123)
|
|
20
|
-
When I
|
|
17
|
+
When I create an OpenFlow message with:
|
|
21
18
|
"""
|
|
22
19
|
Pio::Echo::Reply.new(transaction_id: 123)
|
|
23
20
|
"""
|
|
24
|
-
Then
|
|
25
|
-
And the message has the following fields and values:
|
|
21
|
+
Then the message has the following fields and values:
|
|
26
22
|
| field | value |
|
|
27
|
-
|
|
|
28
|
-
| message_type | 3 |
|
|
29
|
-
| message_length | 8 |
|
|
23
|
+
| version | 4 |
|
|
30
24
|
| transaction_id | 123 |
|
|
31
25
|
| xid | 123 |
|
|
32
26
|
| body | |
|
|
33
27
|
| user_data | |
|
|
34
28
|
|
|
35
29
|
Scenario: new(body: 'echo reply body')
|
|
36
|
-
When I
|
|
30
|
+
When I create an OpenFlow message with:
|
|
37
31
|
"""
|
|
38
32
|
Pio::Echo::Reply.new(body: 'echo reply body')
|
|
39
33
|
"""
|
|
40
|
-
Then
|
|
41
|
-
And the message has the following fields and values:
|
|
34
|
+
Then the message has the following fields and values:
|
|
42
35
|
| field | value |
|
|
43
|
-
|
|
|
44
|
-
| message_type | 3 |
|
|
45
|
-
| message_length | 23 |
|
|
36
|
+
| version | 4 |
|
|
46
37
|
| transaction_id | 0 |
|
|
47
38
|
| xid | 0 |
|
|
48
39
|
| body | echo reply body |
|
|
49
40
|
| user_data | echo reply body |
|
|
50
41
|
|
|
51
|
-
Scenario: new(unknown_attr: 'foo') and error
|
|
52
|
-
When I try to create an OpenFlow message with:
|
|
53
|
-
"""
|
|
54
|
-
Pio::Echo::Reply.new(unknown_attr: 'foo')
|
|
55
|
-
"""
|
|
56
|
-
Then it should fail with "RuntimeError", "Unknown option: unknown_attr"
|
|
57
|
-
|
|
58
42
|
Scenario: read (no message body)
|
|
59
|
-
When I
|
|
60
|
-
Then
|
|
61
|
-
And the message has the following fields and values:
|
|
43
|
+
When I parse a file named "open_flow13/echo_reply_no_body.raw" with "Pio::Echo::Reply" class
|
|
44
|
+
Then the message has the following fields and values:
|
|
62
45
|
| field | value |
|
|
63
|
-
|
|
|
64
|
-
| message_type | 3 |
|
|
65
|
-
| message_length | 8 |
|
|
46
|
+
| version | 4 |
|
|
66
47
|
| transaction_id | 0 |
|
|
67
48
|
| xid | 0 |
|
|
68
49
|
| body | |
|
|
69
50
|
| user_data | |
|
|
70
51
|
|
|
71
52
|
Scenario: read
|
|
72
|
-
When I
|
|
73
|
-
Then
|
|
74
|
-
And the message has the following fields and values:
|
|
53
|
+
When I parse a file named "open_flow13/echo_reply_body.raw" with "Pio::Echo::Reply" class
|
|
54
|
+
Then the message has the following fields and values:
|
|
75
55
|
| field | value |
|
|
76
|
-
|
|
|
77
|
-
| message_type | 3 |
|
|
78
|
-
| message_length | 28 |
|
|
56
|
+
| version | 4 |
|
|
79
57
|
| transaction_id | 0 |
|
|
80
58
|
| xid | 0 |
|
|
81
59
|
| body | hogehogehogehogehoge |
|
|
82
60
|
| user_data | hogehogehogehogehoge |
|
|
83
|
-
|
|
84
|
-
Scenario: parse error
|
|
85
|
-
When I try to parse a file named "open_flow10/features_request.raw" with "Pio::Echo::Reply" class
|
|
86
|
-
Then it should fail with "Pio::ParseError", "Invalid OpenFlow13 Echo Reply message."
|
|
@@ -1,86 +1,60 @@
|
|
|
1
1
|
@open_flow13
|
|
2
|
-
Feature:
|
|
2
|
+
Feature: Echo::Request
|
|
3
3
|
Scenario: new
|
|
4
|
-
When I
|
|
4
|
+
When I create an OpenFlow message with:
|
|
5
5
|
"""
|
|
6
6
|
Pio::Echo::Request.new
|
|
7
7
|
"""
|
|
8
|
-
Then
|
|
9
|
-
And the message has the following fields and values:
|
|
8
|
+
Then the message has the following fields and values:
|
|
10
9
|
| field | value |
|
|
11
|
-
|
|
|
12
|
-
| message_type | 2 |
|
|
13
|
-
| message_length | 8 |
|
|
10
|
+
| version | 4 |
|
|
14
11
|
| transaction_id | 0 |
|
|
15
12
|
| xid | 0 |
|
|
16
13
|
| body | |
|
|
17
14
|
| user_data | |
|
|
18
15
|
|
|
19
16
|
Scenario: new(transaction_id: 123)
|
|
20
|
-
When I
|
|
17
|
+
When I create an OpenFlow message with:
|
|
21
18
|
"""
|
|
22
19
|
Pio::Echo::Request.new(transaction_id: 123)
|
|
23
20
|
"""
|
|
24
|
-
Then
|
|
25
|
-
And the message has the following fields and values:
|
|
21
|
+
Then the message has the following fields and values:
|
|
26
22
|
| field | value |
|
|
27
|
-
|
|
|
28
|
-
| message_type | 2 |
|
|
29
|
-
| message_length | 8 |
|
|
23
|
+
| version | 4 |
|
|
30
24
|
| transaction_id | 123 |
|
|
31
25
|
| xid | 123 |
|
|
32
26
|
| body | |
|
|
33
27
|
| user_data | |
|
|
34
28
|
|
|
35
29
|
Scenario: new(body: 'echo request body')
|
|
36
|
-
When I
|
|
30
|
+
When I create an OpenFlow message with:
|
|
37
31
|
"""
|
|
38
32
|
Pio::Echo::Request.new(body: 'echo request body')
|
|
39
33
|
"""
|
|
40
|
-
Then
|
|
41
|
-
And the message has the following fields and values:
|
|
34
|
+
Then the message has the following fields and values:
|
|
42
35
|
| field | value |
|
|
43
|
-
|
|
|
44
|
-
| message_type | 2 |
|
|
45
|
-
| message_length | 25 |
|
|
36
|
+
| version | 4 |
|
|
46
37
|
| transaction_id | 0 |
|
|
47
38
|
| xid | 0 |
|
|
48
39
|
| body | echo request body |
|
|
49
40
|
| user_data | echo request body |
|
|
50
41
|
|
|
51
|
-
Scenario: new(unknown_attr: 'foo') and error
|
|
52
|
-
When I try to create an OpenFlow message with:
|
|
53
|
-
"""
|
|
54
|
-
Pio::Echo::Request.new(unknown_attr: 'foo')
|
|
55
|
-
"""
|
|
56
|
-
Then it should fail with "RuntimeError", "Unknown option: unknown_attr"
|
|
57
|
-
|
|
58
42
|
Scenario: read (no message body)
|
|
59
|
-
When I
|
|
60
|
-
Then
|
|
61
|
-
And the message has the following fields and values:
|
|
43
|
+
When I parse a file named "open_flow13/echo_request_no_body.raw" with "Pio::Echo::Request" class
|
|
44
|
+
Then the message has the following fields and values:
|
|
62
45
|
| field | value |
|
|
63
|
-
|
|
|
64
|
-
| message_type | 2 |
|
|
65
|
-
| message_length | 8 |
|
|
46
|
+
| version | 4 |
|
|
66
47
|
| transaction_id | 0 |
|
|
67
48
|
| xid | 0 |
|
|
68
49
|
| body | |
|
|
69
50
|
| user_data | |
|
|
70
51
|
|
|
71
52
|
Scenario: read
|
|
72
|
-
When I
|
|
73
|
-
Then
|
|
74
|
-
And the message has the following fields and values:
|
|
53
|
+
When I parse a file named "open_flow13/echo_request_body.raw" with "Pio::Echo::Request" class
|
|
54
|
+
Then the message has the following fields and values:
|
|
75
55
|
| field | value |
|
|
76
|
-
|
|
|
77
|
-
| message_type | 2 |
|
|
78
|
-
| message_length | 28 |
|
|
56
|
+
| version | 4 |
|
|
79
57
|
| transaction_id | 0 |
|
|
80
58
|
| xid | 0 |
|
|
81
59
|
| body | hogehogehogehogehoge |
|
|
82
60
|
| user_data | hogehogehogehogehoge |
|
|
83
|
-
|
|
84
|
-
Scenario: parse error
|
|
85
|
-
When I try to parse a file named "open_flow10/features_request.raw" with "Pio::Echo::Request" class
|
|
86
|
-
Then it should fail with "Pio::ParseError", "Invalid OpenFlow13 Echo Request message."
|