pio 0.18.2 → 0.19.0
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 +40 -344
- data/Rakefile +32 -0
- data/bin/_guard-core +16 -0
- data/bin/byebug +16 -0
- data/bin/cc-tddium-post-worker +16 -0
- data/bin/cdiff +16 -0
- data/bin/coderay +16 -0
- data/bin/colortab +16 -0
- data/bin/coveralls +16 -0
- data/bin/cucumber +16 -0
- data/bin/decolor +16 -0
- data/bin/flay +16 -0
- data/bin/flog +16 -0
- data/bin/guard +16 -0
- data/bin/htmldiff +16 -0
- data/bin/inch +16 -0
- data/bin/ldiff +16 -0
- data/bin/listen +16 -0
- data/bin/minitar +16 -0
- data/bin/pry +16 -0
- data/bin/rake +16 -0
- data/bin/reek +16 -0
- data/bin/relish +16 -0
- data/bin/restclient +16 -0
- data/bin/rspec +16 -0
- data/bin/rubocop +16 -0
- data/bin/ruby-parse +16 -0
- data/bin/ruby-rewrite +16 -0
- data/bin/ruby_parse +16 -0
- data/bin/ruby_parse_extract_error +16 -0
- data/bin/sparkr +16 -0
- data/bin/term_display +16 -0
- data/bin/term_mandel +16 -0
- data/bin/thor +16 -0
- data/bin/unparser +16 -0
- data/bin/yard +16 -0
- data/bin/yardoc +16 -0
- data/bin/yri +16 -0
- data/features/arp.feature +61 -0
- data/features/dhcp.feature +4 -0
- data/features/icmp.feature +130 -0
- data/features/lldp.feature +47 -0
- data/features/open_flow10/echo_reply.feature +95 -0
- data/features/open_flow10/echo_request.feature +95 -0
- data/features/open_flow10/exact_match.feature +36 -0
- data/features/{features_read.feature → open_flow10/features_reply.feature} +54 -17
- data/features/open_flow10/features_request.feature +79 -0
- data/features/{flow_mod_read.feature → open_flow10/flow_mod.feature} +16 -21
- data/features/open_flow10/hello.feature +79 -0
- data/features/open_flow10/packet_in.feature +58 -0
- data/features/{packet_out_read.feature → open_flow10/packet_out.feature} +4 -5
- data/features/open_flow10/port_status.feature +23 -0
- data/features/open_flow13/echo_reply.feature +115 -0
- data/features/open_flow13/echo_request.feature +115 -0
- data/features/open_flow13/hello.feature +74 -0
- data/features/packet_data/echo13_reply_body.raw +0 -0
- data/features/packet_data/echo13_reply_no_body.raw +0 -0
- data/features/packet_data/echo13_request_body.raw +0 -0
- data/features/packet_data/echo13_request_no_body.raw +0 -0
- data/features/packet_data/hello13_no_version_bitmap.raw +0 -0
- data/features/packet_data/hello13_version_bitmap.raw +0 -0
- data/features/packet_data/udp_no_payload.raw +0 -0
- data/features/packet_data/udp_with_payload.raw +0 -0
- data/features/step_definitions/packet_data_steps.rb +49 -29
- data/features/support/env.rb +3 -0
- data/features/{udp_read.feature → udp.feature} +3 -4
- data/lib/pio.rb +1 -0
- data/lib/pio/echo.rb +67 -0
- data/lib/pio/hello13.rb +111 -0
- data/lib/pio/open_flow/message.rb +2 -1
- data/lib/pio/open_flow/open_flow_header.rb +21 -38
- data/lib/pio/open_flow/transaction_id.rb +25 -0
- data/lib/pio/version.rb +1 -1
- data/pio.gemspec +9 -14
- data/spec/pio/flow_mod_spec.rb +1 -1
- data/spec/pio/hello13_spec.rb +114 -0
- metadata +182 -138
- data/examples/arp_new.rb +0 -16
- data/examples/arp_read.rb +0 -4
- data/examples/dhcp_new.rb +0 -34
- data/examples/dhcp_read.rb +0 -4
- data/examples/echo_new.rb +0 -9
- data/examples/echo_read.rb +0 -4
- data/examples/features_new.rb +0 -28
- data/examples/features_read.rb +0 -4
- data/examples/flow_mod_new.rb +0 -13
- data/examples/flow_mod_read.rb +0 -6
- data/examples/hello_new.rb +0 -4
- data/examples/hello_read.rb +0 -4
- data/examples/icmp_new.rb +0 -21
- data/examples/icmp_read.rb +0 -4
- data/examples/lldp_new.rb +0 -4
- data/examples/lldp_read.rb +0 -4
- data/examples/packet_in_new.rb +0 -17
- data/examples/packet_in_read.rb +0 -5
- data/examples/packet_out_new.rb +0 -18
- data/examples/packet_out_read.rb +0 -6
- data/features/arp_read.feature +0 -10
- data/features/dhcp_read.feature +0 -6
- data/features/echo_read.feature +0 -29
- data/features/exact_match.feature +0 -38
- data/features/hello_read.feature +0 -14
- data/features/icmp_read.feature +0 -55
- data/features/lldp_read.feature +0 -26
- data/features/packet_in_read.feature +0 -22
- data/features/port_status_read.feature +0 -24
- data/features/step_definitions/pending_steps.rb +0 -3
- data/spec/pio/echo/reply_spec.rb +0 -135
- data/spec/pio/echo/request_spec.rb +0 -137
- data/spec/pio/features/reply_spec.rb +0 -137
- data/spec/pio/features/request_spec.rb +0 -112
- data/spec/pio/hello_spec.rb +0 -106
- data/spec/pio/lldp_spec.rb +0 -244
- data/spec/pio/packet_in_spec.rb +0 -146
data/examples/arp_new.rb
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
require 'pio'
|
|
2
|
-
|
|
3
|
-
request = Pio::Arp::Request.new(
|
|
4
|
-
source_mac: '00:26:82:eb:ea:d1',
|
|
5
|
-
sender_protocol_address: '192.168.83.3',
|
|
6
|
-
target_protocol_address: '192.168.83.254'
|
|
7
|
-
)
|
|
8
|
-
request.to_binary # => Arp Request frame in binary format.
|
|
9
|
-
|
|
10
|
-
reply = Pio::Arp::Reply.new(
|
|
11
|
-
source_mac: '00:16:9d:1d:9c:c4',
|
|
12
|
-
destination_mac: '00:26:82:eb:ea:d1',
|
|
13
|
-
sender_protocol_address: '192.168.83.254',
|
|
14
|
-
target_protocol_address: '192.168.83.3'
|
|
15
|
-
)
|
|
16
|
-
reply.to_binary # => Arp Reply frame in binary format.
|
data/examples/arp_read.rb
DELETED
data/examples/dhcp_new.rb
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
require 'pio'
|
|
2
|
-
|
|
3
|
-
dhcp_client_mac_address = '24:db:ac:41:e5:5b'
|
|
4
|
-
|
|
5
|
-
dhcp_server_options =
|
|
6
|
-
{
|
|
7
|
-
source_mac: '00:26:82:eb:ea:d1',
|
|
8
|
-
destination_mac: '24:db:ac:41:e5:5b',
|
|
9
|
-
ip_source_address: '192.168.0.100',
|
|
10
|
-
ip_destination_address: '192.168.0.1'
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
# Client side
|
|
14
|
-
discover = Pio::Dhcp::Discover.new(source_mac: dhcp_client_mac_address)
|
|
15
|
-
discover.to_binary # => DHCP Discover frame in binary format
|
|
16
|
-
|
|
17
|
-
# Server side
|
|
18
|
-
offer = Pio::Dhcp::Offer.new(dhcp_server_options
|
|
19
|
-
.merge(transaction_id: discover.transaction_id))
|
|
20
|
-
offer.to_binary # => DHCP Offer frame in binary format
|
|
21
|
-
|
|
22
|
-
# Client side
|
|
23
|
-
request = Pio::Dhcp::Request.new(
|
|
24
|
-
source_mac: dhcp_client_mac_address,
|
|
25
|
-
server_identifier: dhcp_server_options[:ip_source_address],
|
|
26
|
-
requested_ip_address: dhcp_server_options[:ip_destination_address],
|
|
27
|
-
transaction_id: offer.transaction_id
|
|
28
|
-
)
|
|
29
|
-
request.to_binary # => DHCP Request frame in binary format
|
|
30
|
-
|
|
31
|
-
# Server side
|
|
32
|
-
ack = Pio::Dhcp::Ack.new(dhcp_server_options
|
|
33
|
-
.merge(transaction_id: request.transaction_id))
|
|
34
|
-
ack.to_binary # => DHCP Ack frame in binary format
|
data/examples/dhcp_read.rb
DELETED
data/examples/echo_new.rb
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
require 'pio'
|
|
2
|
-
|
|
3
|
-
request = Pio::Echo::Request.new
|
|
4
|
-
request.to_binary # => ECHO Request message in binary format.
|
|
5
|
-
|
|
6
|
-
# The ECHO xid (transaction_id)
|
|
7
|
-
# should be same as that of the request.
|
|
8
|
-
reply = Pio::Echo::Reply.new(xid: request.xid)
|
|
9
|
-
reply.to_binary # => ECHO Reply message in binary format.
|
data/examples/echo_read.rb
DELETED
data/examples/features_new.rb
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
require 'pio'
|
|
2
|
-
|
|
3
|
-
request = Pio::Features::Request.new
|
|
4
|
-
request.to_binary # => Features Request message in binary format.
|
|
5
|
-
|
|
6
|
-
# The Features xid (transaction_id)
|
|
7
|
-
# should be same as that of the request.
|
|
8
|
-
reply =
|
|
9
|
-
Pio::Features::Reply.new(xid: request.xid,
|
|
10
|
-
dpid: 0x123,
|
|
11
|
-
n_buffers: 0x100,
|
|
12
|
-
n_tables: 0xfe,
|
|
13
|
-
capabilities: [:flow_stats, :table_stats,
|
|
14
|
-
:port_stats, :queue_stats,
|
|
15
|
-
:arp_match_ip],
|
|
16
|
-
actions: [:output, :set_vlan_vid,
|
|
17
|
-
:set_vlan_pcp, :strip_vlan,
|
|
18
|
-
:set_dl_src, :set_dl_dst,
|
|
19
|
-
:set_nw_src, :set_nw_dst,
|
|
20
|
-
:set_nw_tos, :set_tp_src,
|
|
21
|
-
:set_tp_dst, :enqueue],
|
|
22
|
-
ports: [{ port_no: 1,
|
|
23
|
-
hardware_address: '11:22:33:44:55:66',
|
|
24
|
-
name: 'port123',
|
|
25
|
-
config: [:port_down],
|
|
26
|
-
state: [:link_down],
|
|
27
|
-
curr: [:port_10gb_fd, :port_copper] }])
|
|
28
|
-
reply.to_binary # => Features Reply message in binary format.
|
data/examples/features_read.rb
DELETED
data/examples/flow_mod_new.rb
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
require 'pio'
|
|
2
|
-
|
|
3
|
-
flow_mod = Pio::FlowMod.new(transaction_id: 0x15,
|
|
4
|
-
buffer_id: 0xffffffff,
|
|
5
|
-
match: Pio::Match.new(in_port: 1),
|
|
6
|
-
cookie: 1,
|
|
7
|
-
command: :add,
|
|
8
|
-
priority: 0xffff,
|
|
9
|
-
out_port: 2,
|
|
10
|
-
flags: [:send_flow_rem, :check_overwrap],
|
|
11
|
-
actions: Pio::SendOutPort.new(2))
|
|
12
|
-
|
|
13
|
-
flow_mod.to_binary # => Flow mod message in binary format.
|
data/examples/flow_mod_read.rb
DELETED
data/examples/hello_new.rb
DELETED
data/examples/hello_read.rb
DELETED
data/examples/icmp_new.rb
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
require 'pio'
|
|
2
|
-
|
|
3
|
-
request = Pio::Icmp::Request.new(
|
|
4
|
-
source_mac: '00:16:9d:1d:9c:c4',
|
|
5
|
-
destination_mac: '00:26:82:eb:ea:d1',
|
|
6
|
-
ip_source_address: '192.168.83.3',
|
|
7
|
-
ip_destination_address: '192.168.83.254'
|
|
8
|
-
)
|
|
9
|
-
request.to_binary # => ICMP Request frame in binary format.
|
|
10
|
-
|
|
11
|
-
reply = Pio::Icmp::Reply.new(
|
|
12
|
-
source_mac: '00:26:82:eb:ea:d1',
|
|
13
|
-
destination_mac: '00:16:9d:1d:9c:c4',
|
|
14
|
-
ip_source_address: '192.168.83.254',
|
|
15
|
-
ip_destination_address: '192.168.83.3',
|
|
16
|
-
# The ICMP Identifier and the ICMP Sequence number
|
|
17
|
-
# should be same as those of the request.
|
|
18
|
-
identifier: request.icmp_identifier,
|
|
19
|
-
sequence_number: request.icmp_sequence_number
|
|
20
|
-
)
|
|
21
|
-
reply.to_binary # => ICMP Reply frame in binary format.
|
data/examples/icmp_read.rb
DELETED
data/examples/lldp_new.rb
DELETED
data/examples/lldp_read.rb
DELETED
data/examples/packet_in_new.rb
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
require 'pio'
|
|
2
|
-
|
|
3
|
-
data_dump = [
|
|
4
|
-
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xac, 0x5d, 0x10, 0x31, 0x37,
|
|
5
|
-
0x79, 0x08, 0x06, 0x00, 0x01, 0x08, 0x00, 0x06, 0x04, 0x00, 0x01,
|
|
6
|
-
0xac, 0x5d, 0x10, 0x31, 0x37, 0x79, 0xc0, 0xa8, 0x02, 0xfe, 0xff,
|
|
7
|
-
0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xa8, 0x02, 0x05, 0x00, 0x00,
|
|
8
|
-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
9
|
-
0x00, 0x00, 0x00, 0x00, 0x00
|
|
10
|
-
].pack('C*')
|
|
11
|
-
|
|
12
|
-
packet_in = Pio::PacketIn.new(transaction_id: 0,
|
|
13
|
-
buffer_id: 0xffffff00,
|
|
14
|
-
in_port: 1,
|
|
15
|
-
reason: :no_match,
|
|
16
|
-
raw_data: data_dump)
|
|
17
|
-
packet_in.to_binary # => Packet-In message in binary format.
|
data/examples/packet_in_read.rb
DELETED
data/examples/packet_out_new.rb
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
require 'pio'
|
|
2
|
-
|
|
3
|
-
data_dump = [
|
|
4
|
-
0x01, 0x80, 0xc2, 0x00, 0x00, 0x0e, 0x01, 0x02, 0x03, 0x04,
|
|
5
|
-
0x05, 0x06, 0x88, 0xcc, 0x02, 0x09, 0x07, 0x00, 0x00, 0x00,
|
|
6
|
-
0x00, 0x00, 0x00, 0x01, 0x23, 0x04, 0x05, 0x07, 0x00, 0x00,
|
|
7
|
-
0x00, 0x0c, 0x06, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00,
|
|
8
|
-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
9
|
-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
10
|
-
0x00, 0x00, 0x00, 0x00
|
|
11
|
-
].pack('C*')
|
|
12
|
-
|
|
13
|
-
packet_out = Pio::PacketOut.new(transaction_id: 0x16,
|
|
14
|
-
buffer_id: 0xffffffff,
|
|
15
|
-
in_port: 0xffff,
|
|
16
|
-
actions: Pio::SendOutPort.new(2),
|
|
17
|
-
raw_data: data_dump)
|
|
18
|
-
packet_out.to_binary # => Packet-Out message in binary format.
|
data/examples/packet_out_read.rb
DELETED
data/features/arp_read.feature
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Feature: Pio::Arp.read
|
|
2
|
-
Scenario: arp.pcap
|
|
3
|
-
Given a packet data file "arp.pcap"
|
|
4
|
-
When I try to parse the file with "Arp" class
|
|
5
|
-
Then it should finish successfully
|
|
6
|
-
|
|
7
|
-
Scenario: arp-storm.pcap
|
|
8
|
-
Given a packet data file "arp-storm.pcap"
|
|
9
|
-
When I try to parse the file with "Arp" class
|
|
10
|
-
Then it should finish successfully
|
data/features/dhcp_read.feature
DELETED
data/features/echo_read.feature
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
Feature: Pio::Echo.read
|
|
2
|
-
Scenario: echo_request.raw
|
|
3
|
-
Given a packet data file "echo_request.raw"
|
|
4
|
-
When I try to parse the file with "Echo::Request" class
|
|
5
|
-
Then it should finish successfully
|
|
6
|
-
And the parsed data have the following field and value:
|
|
7
|
-
| field | value |
|
|
8
|
-
| class | Pio::Echo::Request |
|
|
9
|
-
| ofp_version | 1 |
|
|
10
|
-
| message_type | 2 |
|
|
11
|
-
| message_length | 8 |
|
|
12
|
-
| transaction_id | 0 |
|
|
13
|
-
| xid | 0 |
|
|
14
|
-
| body | |
|
|
15
|
-
|
|
16
|
-
Scenario: echo_reply.raw
|
|
17
|
-
Given a packet data file "echo_reply.raw"
|
|
18
|
-
When I try to parse the file with "Echo::Reply" class
|
|
19
|
-
Then it should finish successfully
|
|
20
|
-
And the parsed data have the following field and value:
|
|
21
|
-
| field | value |
|
|
22
|
-
| class | Pio::Echo::Reply |
|
|
23
|
-
| ofp_version | 1 |
|
|
24
|
-
| message_type | 3 |
|
|
25
|
-
| message_length | 8 |
|
|
26
|
-
| transaction_id | 6 |
|
|
27
|
-
| xid | 6 |
|
|
28
|
-
| body | |
|
|
29
|
-
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
Feature: Pio::ExactMatch.new
|
|
2
|
-
Scenario: packet_in_arp_request.raw
|
|
3
|
-
Given a packet data file "packet_in_arp_request.raw"
|
|
4
|
-
When I try to create an exact match from the packet
|
|
5
|
-
And the parsed data have the following field and value:
|
|
6
|
-
| field | value |
|
|
7
|
-
| wildcards | {} |
|
|
8
|
-
| in_port | 1 |
|
|
9
|
-
| dl_src | ac:5d:10:31:37:79 |
|
|
10
|
-
| dl_dst | ff:ff:ff:ff:ff:ff |
|
|
11
|
-
| dl_vlan | 65535 |
|
|
12
|
-
| dl_vlan_pcp | 0 |
|
|
13
|
-
| dl_type | 2054 |
|
|
14
|
-
| nw_tos | 0 |
|
|
15
|
-
| nw_proto | 1 |
|
|
16
|
-
| nw_src | 192.168.2.254 |
|
|
17
|
-
| nw_dst | 192.168.2.5 |
|
|
18
|
-
| tp_src | 0 |
|
|
19
|
-
| tp_dst | 0 |
|
|
20
|
-
|
|
21
|
-
Scenario: packet_in_cbench.raw (ARP request)
|
|
22
|
-
Given a packet data file "packet_in_cbench.raw"
|
|
23
|
-
When I try to create an exact match from the packet
|
|
24
|
-
And the parsed data have the following field and value:
|
|
25
|
-
| field | value |
|
|
26
|
-
| wildcards | {} |
|
|
27
|
-
| in_port | 1 |
|
|
28
|
-
| dl_src | 00:00:00:00:00:01 |
|
|
29
|
-
| dl_dst | 80:00:00:00:00:01 |
|
|
30
|
-
| dl_vlan | 65535 |
|
|
31
|
-
| dl_vlan_pcp | 0 |
|
|
32
|
-
| dl_type | 2048 |
|
|
33
|
-
| nw_tos | 0 |
|
|
34
|
-
| nw_proto | 255 |
|
|
35
|
-
| nw_src | 192.168.0.40 |
|
|
36
|
-
| nw_dst | 192.168.1.40 |
|
|
37
|
-
| tp_src | 31256 |
|
|
38
|
-
| tp_dst | 22635 |
|
data/features/hello_read.feature
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
Feature: Pio::Hello.read
|
|
2
|
-
Scenario: hello.raw
|
|
3
|
-
Given a packet data file "hello.raw"
|
|
4
|
-
When I try to parse the file with "Hello" class
|
|
5
|
-
Then it should finish successfully
|
|
6
|
-
And the parsed data have the following field and value:
|
|
7
|
-
| field | value |
|
|
8
|
-
| class | Pio::Hello |
|
|
9
|
-
| ofp_version | 1 |
|
|
10
|
-
| message_type | 0 |
|
|
11
|
-
| message_length | 8 |
|
|
12
|
-
| transaction_id | 23 |
|
|
13
|
-
| xid | 23 |
|
|
14
|
-
| body | |
|
data/features/icmp_read.feature
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
Feature: Pio::Icmp.read
|
|
2
|
-
Scenario: icmp.pcap
|
|
3
|
-
Given a packet data file "icmp.pcap"
|
|
4
|
-
When I try to parse the file with "Icmp" class
|
|
5
|
-
Then it should finish successfully
|
|
6
|
-
And the parsed data #1 have the following field and value:
|
|
7
|
-
| field | value |
|
|
8
|
-
| class | Pio::Icmp::Request |
|
|
9
|
-
| destination_mac | 00:13:46:0b:22:ba |
|
|
10
|
-
| source_mac | 00:16:ce:6e:8b:24 |
|
|
11
|
-
| ether_type | 2048 |
|
|
12
|
-
| ip_version | 4 |
|
|
13
|
-
| ip_header_length | 5 |
|
|
14
|
-
| ip_type_of_service | 0 |
|
|
15
|
-
| ip_total_length | 60 |
|
|
16
|
-
| ip_identifier | 36507 |
|
|
17
|
-
| ip_flag | 0 |
|
|
18
|
-
| ip_fragment | 0 |
|
|
19
|
-
| ip_ttl | 128 |
|
|
20
|
-
| ip_protocol | 1 |
|
|
21
|
-
| ip_header_checksum | 10850 |
|
|
22
|
-
| ip_source_address | 192.168.0.114 |
|
|
23
|
-
| ip_destination_address | 192.168.0.1 |
|
|
24
|
-
| ip_option | |
|
|
25
|
-
| icmp_type | 8 |
|
|
26
|
-
| icmp_code | 0 |
|
|
27
|
-
| icmp_checksum | 18780 |
|
|
28
|
-
| icmp_identifier | 768 |
|
|
29
|
-
| icmp_sequence_number | 256 |
|
|
30
|
-
| echo_data | abcdefghijklmnopqrstuvwabcdefghi |
|
|
31
|
-
And the parsed data #2 have the following field and value:
|
|
32
|
-
| field | value |
|
|
33
|
-
| class | Pio::Icmp::Reply |
|
|
34
|
-
| destination_mac | 00:16:ce:6e:8b:24 |
|
|
35
|
-
| source_mac | 00:13:46:0b:22:ba |
|
|
36
|
-
| ether_type | 2048 |
|
|
37
|
-
| ip_version | 4 |
|
|
38
|
-
| ip_header_length | 5 |
|
|
39
|
-
| ip_type_of_service | 0 |
|
|
40
|
-
| ip_total_length | 60 |
|
|
41
|
-
| ip_identifier | 24150 |
|
|
42
|
-
| ip_flag | 0 |
|
|
43
|
-
| ip_fragment | 0 |
|
|
44
|
-
| ip_ttl | 127 |
|
|
45
|
-
| ip_protocol | 1 |
|
|
46
|
-
| ip_header_checksum | 23463 |
|
|
47
|
-
| ip_source_address | 192.168.0.1 |
|
|
48
|
-
| ip_destination_address | 192.168.0.114 |
|
|
49
|
-
| ip_option | |
|
|
50
|
-
| icmp_type | 0 |
|
|
51
|
-
| icmp_code | 0 |
|
|
52
|
-
| icmp_checksum | 20828 |
|
|
53
|
-
| icmp_identifier | 768 |
|
|
54
|
-
| icmp_sequence_number | 256 |
|
|
55
|
-
| echo_data | abcdefghijklmnopqrstuvwabcdefghi |
|
data/features/lldp_read.feature
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
Feature: Pio::Lldp.read
|
|
2
|
-
Scenario: lldp.minimal.pcap
|
|
3
|
-
Given a packet data file "lldp.minimal.pcap"
|
|
4
|
-
When I try to parse the file with "Lldp" class
|
|
5
|
-
Then it should finish successfully
|
|
6
|
-
Then the parsed data #1 have the following field and value:
|
|
7
|
-
| field | value |
|
|
8
|
-
| class | Pio::Lldp |
|
|
9
|
-
| destination_mac | 01:80:c2:00:00:0e |
|
|
10
|
-
| source_mac | 00:04:96:1f:a7:26 |
|
|
11
|
-
| ether_type | 35020 |
|
|
12
|
-
| chassis_id | 19698525990 |
|
|
13
|
-
| dpid | 19698525990 |
|
|
14
|
-
| port_id | 1/3 |
|
|
15
|
-
| ttl | 120 |
|
|
16
|
-
| port_description | |
|
|
17
|
-
| system_name | |
|
|
18
|
-
| system_description | |
|
|
19
|
-
| system_capabilities | |
|
|
20
|
-
| management_address | |
|
|
21
|
-
| organizationally_specific | |
|
|
22
|
-
|
|
23
|
-
Scenario: lldp.detailed.pcap
|
|
24
|
-
Given a packet data file "lldp.detailed.pcap"
|
|
25
|
-
When I try to parse the file with "Lldp" class
|
|
26
|
-
Then it should finish successfully
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
Feature: Pio::PacketIn.read
|
|
2
|
-
Scenario: packet_in_arp_request.raw
|
|
3
|
-
Given a packet data file "packet_in_arp_request.raw"
|
|
4
|
-
When I try to parse the file with "PacketIn" class
|
|
5
|
-
Then it should finish successfully
|
|
6
|
-
And the parsed data have the following field and value:
|
|
7
|
-
| field | value |
|
|
8
|
-
| class | Pio::PacketIn |
|
|
9
|
-
| ofp_version | 1 |
|
|
10
|
-
| message_type | 10 |
|
|
11
|
-
| message_length | 78 |
|
|
12
|
-
| transaction_id | 0 |
|
|
13
|
-
| xid | 0 |
|
|
14
|
-
| buffer_id | 4294967040 |
|
|
15
|
-
| total_len | 60 |
|
|
16
|
-
| in_port | 1 |
|
|
17
|
-
| reason | no_match |
|
|
18
|
-
| raw_data.length | 60 |
|
|
19
|
-
| source_mac | ac:5d:10:31:37:79 |
|
|
20
|
-
| source_mac.class | Pio::Mac |
|
|
21
|
-
| destination_mac | ff:ff:ff:ff:ff:ff |
|
|
22
|
-
| destination_mac.class | Pio::Mac |
|