pio 0.24.2 → 0.25.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +2 -0
- data/bin/byebug +16 -0
- data/features/arp.feature +2 -2
- data/features/dhcp.feature +4 -4
- data/features/icmp.feature +2 -2
- data/features/lldp.feature +1 -1
- data/features/open_flow10/barrier_reply.feature +4 -4
- data/features/open_flow10/barrier_request.feature +4 -4
- data/features/open_flow10/echo_reply.feature +6 -6
- data/features/open_flow10/echo_request.feature +6 -6
- data/features/open_flow10/exact_match.feature +2 -2
- data/features/open_flow10/features_reply.feature +2 -2
- data/features/open_flow10/features_request.feature +4 -4
- data/features/open_flow10/flow_mod.feature +6 -6
- data/features/open_flow10/flow_stats_reply.feature +105 -0
- data/features/open_flow10/flow_stats_request.feature +90 -0
- data/features/open_flow10/hello.feature +4 -4
- data/features/open_flow10/packet_in.feature +2 -2
- data/features/open_flow10/packet_out.feature +1 -1
- data/features/open_flow10/port_status.feature +1 -1
- data/features/open_flow13/apply_actions.feature +3 -3
- data/features/open_flow13/echo_reply.feature +7 -7
- data/features/open_flow13/echo_request.feature +7 -7
- data/features/open_flow13/features_reply.feature +2 -2
- data/features/open_flow13/features_request.feature +4 -4
- data/features/open_flow13/flow_mod.feature +5 -5
- data/features/open_flow13/goto_table.feature +2 -2
- data/features/open_flow13/hello.feature +5 -5
- data/features/open_flow13/match.feature +81 -81
- data/features/open_flow13/meter.feature +2 -2
- data/features/open_flow13/packet_in.feature +3 -3
- data/features/open_flow13/packet_out.feature +3 -3
- data/features/open_flow13/send_out_port.feature +2 -2
- data/features/open_flow13/write_metadata.feature +2 -2
- data/features/open_flow_read.feature +12 -10
- data/features/step_definitions/packet_data_steps.rb +3 -3
- data/lib/pio/open_flow.rb +4 -1
- data/lib/pio/open_flow/message.rb +3 -0
- data/lib/pio/open_flow10.rb +2 -0
- data/lib/pio/open_flow10/flow_mod.rb +1 -16
- data/lib/pio/open_flow10/flow_stats_reply.rb +59 -0
- data/lib/pio/open_flow10/flow_stats_request.rb +64 -0
- data/lib/pio/open_flow10/match.rb +17 -0
- data/lib/pio/open_flow10/stats_type.rb +27 -0
- data/lib/pio/version.rb +1 -1
- data/pio.gemspec +2 -2
- data/spec/pio/open_flow10/flow_stats_reply_spec.rb +39 -0
- data/spec/pio/open_flow10/flow_stats_request_spec.rb +38 -0
- metadata +185 -173
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41786852c14579687e22106e6e20821d9fe84e03
|
4
|
+
data.tar.gz: eb8c1aff56d304773f7043648002cb52367fe651
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd60d4cf128ac6cfd18dd02d8ca8a4370e14be9025efcd103fd1c27d8206ed142f58d7171372594377ab6e37f9edda5f4c638709cf81b92b4c6c034c28212ba0
|
7
|
+
data.tar.gz: 349b05ac02ec3a0b366a2090724fdc6d307c2c5b2036aa8fff81805a9e592a17c46406d6c6fdfe073c72e14da0eb2db0f670e77d0b8bb20dd7a9a22fabb8ae6f
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,11 @@
|
|
3
3
|
## develop (unreleased)
|
4
4
|
|
5
5
|
|
6
|
+
## 0.25.0 (8/6/2015)
|
7
|
+
### New features
|
8
|
+
* [#211](https://github.com/trema/pio/pull/211): Add new classes `Pio::FlowStats::Request` and `Pio::FlowStats::Reply`.
|
9
|
+
|
10
|
+
|
6
11
|
## 0.24.2 (8/4/2015)
|
7
12
|
### Bugs fixed
|
8
13
|
* [#209](https://github.com/trema/pio/issues/209): `Pio::OpenFlow.read` cannot parse Barrier messages.
|
data/README.md
CHANGED
@@ -31,6 +31,8 @@ supports the following packet formats:
|
|
31
31
|
- [Exact Match](https://relishapp.com/trema/pio/docs/open-flow10/pio-exactmatch)
|
32
32
|
- [Barrier Request](https://relishapp.com/trema/pio/docs/open-flow10/pio-barrier-request)
|
33
33
|
- [Barrier Reply](https://relishapp.com/trema/pio/docs/open-flow10/pio-barrier-reply)
|
34
|
+
- [Flow Stats Request](https://relishapp.com/trema/pio/docs/open-flow10/pio-flowstats-request)
|
35
|
+
- [Flow Stats Reply](https://relishapp.com/trema/pio/docs/open-flow10/pio-flowstats-reply)
|
34
36
|
- OpenFlow 1.3
|
35
37
|
- [Hello](https://relishapp.com/trema/pio/docs/open-flow13/pio-hello)
|
36
38
|
- [Echo Request](https://relishapp.com/trema/pio/docs/open-flow13/pio-echo-request)
|
data/bin/byebug
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# This file was generated by Bundler.
|
4
|
+
#
|
5
|
+
# The application 'byebug' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'pathname'
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
+
Pathname.new(__FILE__).realpath)
|
12
|
+
|
13
|
+
require 'rubygems'
|
14
|
+
require 'bundler/setup'
|
15
|
+
|
16
|
+
load Gem.bin_path('byebug', 'byebug')
|
data/features/arp.feature
CHANGED
@@ -9,7 +9,7 @@ Feature: Pio::Arp
|
|
9
9
|
)
|
10
10
|
"""
|
11
11
|
Then it should finish successfully
|
12
|
-
And the packet
|
12
|
+
And the packet has the following fields and values:
|
13
13
|
| field | value |
|
14
14
|
| class | Pio::Arp::Request |
|
15
15
|
| destination_mac | ff:ff:ff:ff:ff:ff |
|
@@ -36,7 +36,7 @@ Feature: Pio::Arp
|
|
36
36
|
)
|
37
37
|
"""
|
38
38
|
Then it should finish successfully
|
39
|
-
And the packet
|
39
|
+
And the packet has the following fields and values:
|
40
40
|
| field | value |
|
41
41
|
| class | Pio::Arp::Reply |
|
42
42
|
| destination_mac | 00:26:82:eb:ea:d1 |
|
data/features/dhcp.feature
CHANGED
@@ -15,7 +15,7 @@ Feature: Pio::Dhcp
|
|
15
15
|
)
|
16
16
|
"""
|
17
17
|
Then it should finish successfully
|
18
|
-
And the packet
|
18
|
+
And the packet has the following fields and values:
|
19
19
|
| field | value |
|
20
20
|
| class | Pio::Dhcp::Ack |
|
21
21
|
| destination_mac | 11:22:33:44:55:66 |
|
@@ -64,7 +64,7 @@ Feature: Pio::Dhcp
|
|
64
64
|
)
|
65
65
|
"""
|
66
66
|
Then it should finish successfully
|
67
|
-
And the packet
|
67
|
+
And the packet has the following fields and values:
|
68
68
|
| field | value |
|
69
69
|
| class | Pio::Dhcp::Discover |
|
70
70
|
| destination_mac | ff:ff:ff:ff:ff:ff |
|
@@ -112,7 +112,7 @@ Feature: Pio::Dhcp
|
|
112
112
|
)
|
113
113
|
"""
|
114
114
|
Then it should finish successfully
|
115
|
-
And the packet
|
115
|
+
And the packet has the following fields and values:
|
116
116
|
| field | value |
|
117
117
|
| class | Pio::Dhcp::Request |
|
118
118
|
| destination_mac | ff:ff:ff:ff:ff:ff |
|
@@ -166,7 +166,7 @@ Feature: Pio::Dhcp
|
|
166
166
|
)
|
167
167
|
"""
|
168
168
|
Then it should finish successfully
|
169
|
-
And the packet
|
169
|
+
And the packet has the following fields and values:
|
170
170
|
| field | value |
|
171
171
|
| class | Pio::Dhcp::Offer |
|
172
172
|
| destination_mac | 11:22:33:44:55:66 |
|
data/features/icmp.feature
CHANGED
@@ -10,7 +10,7 @@ Feature: Pio::Icmp
|
|
10
10
|
)
|
11
11
|
"""
|
12
12
|
Then it should finish successfully
|
13
|
-
And the packet
|
13
|
+
And the packet has the following fields and values:
|
14
14
|
| field | value |
|
15
15
|
| class | Pio::Icmp::Request |
|
16
16
|
| destination_mac | 00:26:82:eb:ea:d1 |
|
@@ -49,7 +49,7 @@ Feature: Pio::Icmp
|
|
49
49
|
)
|
50
50
|
"""
|
51
51
|
Then it should finish successfully
|
52
|
-
And the packet
|
52
|
+
And the packet has the following fields and values:
|
53
53
|
| field | value |
|
54
54
|
| class | Pio::Icmp::Reply |
|
55
55
|
| destination_mac | 00:16:9d:1d:9c:c4 |
|
data/features/lldp.feature
CHANGED
@@ -5,7 +5,7 @@ Feature: Pio::Lldp
|
|
5
5
|
Pio::Lldp.new(dpid: 0x123, port_number: 12, source_mac: '11:22:33:44:55:66')
|
6
6
|
"""
|
7
7
|
Then it should finish successfully
|
8
|
-
And the message
|
8
|
+
And the message has the following fields and values:
|
9
9
|
| field | value |
|
10
10
|
| class | Pio::Lldp |
|
11
11
|
| destination_mac | 01:80:c2:00:00:0e |
|
@@ -6,7 +6,7 @@ Feature: Pio::Barrier::Reply
|
|
6
6
|
Pio::Barrier::Reply.new
|
7
7
|
"""
|
8
8
|
Then it should finish successfully
|
9
|
-
And the message
|
9
|
+
And the message has the following fields and values:
|
10
10
|
| field | value |
|
11
11
|
| ofp_version | 1 |
|
12
12
|
| message_type | 19 |
|
@@ -21,7 +21,7 @@ Feature: Pio::Barrier::Reply
|
|
21
21
|
Pio::Barrier::Reply.new(transaction_id: 123)
|
22
22
|
"""
|
23
23
|
Then it should finish successfully
|
24
|
-
And the message
|
24
|
+
And the message has the following fields and values:
|
25
25
|
| field | value |
|
26
26
|
| ofp_version | 1 |
|
27
27
|
| message_type | 19 |
|
@@ -36,7 +36,7 @@ Feature: Pio::Barrier::Reply
|
|
36
36
|
Pio::Barrier::Reply.new(xid: 123)
|
37
37
|
"""
|
38
38
|
Then it should finish successfully
|
39
|
-
And the message
|
39
|
+
And the message has the following fields and values:
|
40
40
|
| field | value |
|
41
41
|
| ofp_version | 1 |
|
42
42
|
| message_type | 19 |
|
@@ -48,7 +48,7 @@ Feature: Pio::Barrier::Reply
|
|
48
48
|
Scenario: read
|
49
49
|
When I try to parse a file named "open_flow10/barrier_reply.raw" with "Barrier::Reply" class
|
50
50
|
Then it should finish successfully
|
51
|
-
And the message
|
51
|
+
And the message has the following fields and values:
|
52
52
|
| field | value |
|
53
53
|
| ofp_version | 1 |
|
54
54
|
| message_type | 19 |
|
@@ -6,7 +6,7 @@ Feature: Pio::Barrier::Request
|
|
6
6
|
Pio::Barrier::Request.new
|
7
7
|
"""
|
8
8
|
Then it should finish successfully
|
9
|
-
And the message
|
9
|
+
And the message has the following fields and values:
|
10
10
|
| field | value |
|
11
11
|
| ofp_version | 1 |
|
12
12
|
| message_type | 18 |
|
@@ -21,7 +21,7 @@ Feature: Pio::Barrier::Request
|
|
21
21
|
Pio::Barrier::Request.new(transaction_id: 123)
|
22
22
|
"""
|
23
23
|
Then it should finish successfully
|
24
|
-
And the message
|
24
|
+
And the message has the following fields and values:
|
25
25
|
| field | value |
|
26
26
|
| ofp_version | 1 |
|
27
27
|
| message_type | 18 |
|
@@ -36,7 +36,7 @@ Feature: Pio::Barrier::Request
|
|
36
36
|
Pio::Barrier::Request.new(xid: 123)
|
37
37
|
"""
|
38
38
|
Then it should finish successfully
|
39
|
-
And the message
|
39
|
+
And the message has the following fields and values:
|
40
40
|
| field | value |
|
41
41
|
| ofp_version | 1 |
|
42
42
|
| message_type | 18 |
|
@@ -48,7 +48,7 @@ Feature: Pio::Barrier::Request
|
|
48
48
|
Scenario: read
|
49
49
|
When I try to parse a file named "open_flow10/barrier_request.raw" with "Barrier::Request" class
|
50
50
|
Then it should finish successfully
|
51
|
-
And the message
|
51
|
+
And the message has the following fields and values:
|
52
52
|
| field | value |
|
53
53
|
| ofp_version | 1 |
|
54
54
|
| message_type | 18 |
|
@@ -6,7 +6,7 @@ Feature: Pio::Echo::Reply
|
|
6
6
|
Pio::Echo::Reply.new
|
7
7
|
"""
|
8
8
|
Then it should finish successfully
|
9
|
-
And the message
|
9
|
+
And the message has the following fields and values:
|
10
10
|
| field | value |
|
11
11
|
| ofp_version | 1 |
|
12
12
|
| message_type | 3 |
|
@@ -22,7 +22,7 @@ Feature: Pio::Echo::Reply
|
|
22
22
|
Pio::Echo::Reply.new(transaction_id: 123)
|
23
23
|
"""
|
24
24
|
Then it should finish successfully
|
25
|
-
And the message
|
25
|
+
And the message has the following fields and values:
|
26
26
|
| field | value |
|
27
27
|
| ofp_version | 1 |
|
28
28
|
| message_type | 3 |
|
@@ -38,7 +38,7 @@ Feature: Pio::Echo::Reply
|
|
38
38
|
Pio::Echo::Reply.new(xid: 123)
|
39
39
|
"""
|
40
40
|
Then it should finish successfully
|
41
|
-
And the message
|
41
|
+
And the message has the following fields and values:
|
42
42
|
| field | value |
|
43
43
|
| ofp_version | 1 |
|
44
44
|
| message_type | 3 |
|
@@ -61,7 +61,7 @@ Feature: Pio::Echo::Reply
|
|
61
61
|
Pio::Echo::Reply.new(body: 'echo reply body')
|
62
62
|
"""
|
63
63
|
Then it should finish successfully
|
64
|
-
And the message
|
64
|
+
And the message has the following fields and values:
|
65
65
|
| field | value |
|
66
66
|
| ofp_version | 1 |
|
67
67
|
| message_type | 3 |
|
@@ -77,7 +77,7 @@ Feature: Pio::Echo::Reply
|
|
77
77
|
Pio::Echo::Reply.new(user_data: 'echo reply body')
|
78
78
|
"""
|
79
79
|
Then it should finish successfully
|
80
|
-
And the message
|
80
|
+
And the message has the following fields and values:
|
81
81
|
| field | value |
|
82
82
|
| ofp_version | 1 |
|
83
83
|
| message_type | 3 |
|
@@ -90,7 +90,7 @@ Feature: Pio::Echo::Reply
|
|
90
90
|
Scenario: read (no message body)
|
91
91
|
When I try to parse a file named "open_flow10/echo_reply.raw" with "Pio::Echo::Reply" class
|
92
92
|
Then it should finish successfully
|
93
|
-
And the message
|
93
|
+
And the message has the following fields and values:
|
94
94
|
| field | value |
|
95
95
|
| ofp_version | 1 |
|
96
96
|
| message_type | 3 |
|
@@ -6,7 +6,7 @@ Feature: Pio::Echo::Request
|
|
6
6
|
Pio::Echo::Request.new
|
7
7
|
"""
|
8
8
|
Then it should finish successfully
|
9
|
-
And the message
|
9
|
+
And the message has the following fields and values:
|
10
10
|
| field | value |
|
11
11
|
| ofp_version | 1 |
|
12
12
|
| message_type | 2 |
|
@@ -22,7 +22,7 @@ Feature: Pio::Echo::Request
|
|
22
22
|
Pio::Echo::Request.new(transaction_id: 123)
|
23
23
|
"""
|
24
24
|
Then it should finish successfully
|
25
|
-
And the message
|
25
|
+
And the message has the following fields and values:
|
26
26
|
| field | value |
|
27
27
|
| ofp_version | 1 |
|
28
28
|
| message_type | 2 |
|
@@ -38,7 +38,7 @@ Feature: Pio::Echo::Request
|
|
38
38
|
Pio::Echo::Request.new(xid: 123)
|
39
39
|
"""
|
40
40
|
Then it should finish successfully
|
41
|
-
And the message
|
41
|
+
And the message has the following fields and values:
|
42
42
|
| field | value |
|
43
43
|
| ofp_version | 1 |
|
44
44
|
| message_type | 2 |
|
@@ -54,7 +54,7 @@ Feature: Pio::Echo::Request
|
|
54
54
|
Pio::Echo::Request.new(body: 'echo request body')
|
55
55
|
"""
|
56
56
|
Then it should finish successfully
|
57
|
-
And the message
|
57
|
+
And the message has the following fields and values:
|
58
58
|
| field | value |
|
59
59
|
| ofp_version | 1 |
|
60
60
|
| message_type | 2 |
|
@@ -70,7 +70,7 @@ Feature: Pio::Echo::Request
|
|
70
70
|
Pio::Echo::Request.new(user_data: 'echo request body')
|
71
71
|
"""
|
72
72
|
Then it should finish successfully
|
73
|
-
And the message
|
73
|
+
And the message has the following fields and values:
|
74
74
|
| field | value |
|
75
75
|
| ofp_version | 1 |
|
76
76
|
| message_type | 2 |
|
@@ -83,7 +83,7 @@ Feature: Pio::Echo::Request
|
|
83
83
|
Scenario: read (no message body)
|
84
84
|
When I try to parse a file named "open_flow10/echo_request.raw" with "Pio::Echo::Request" class
|
85
85
|
Then it should finish successfully
|
86
|
-
And the message
|
86
|
+
And the message has the following fields and values:
|
87
87
|
| field | value |
|
88
88
|
| ofp_version | 1 |
|
89
89
|
| message_type | 2 |
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Feature: Pio::ExactMatch
|
2
2
|
Scenario: new (from ARP request Packet In)
|
3
3
|
When I create an exact match from "open_flow10/packet_in_arp_request.raw"
|
4
|
-
And the message
|
4
|
+
And the message has the following fields and values:
|
5
5
|
| field | value |
|
6
6
|
| wildcards | {} |
|
7
7
|
| in_port | 1 |
|
@@ -19,7 +19,7 @@ Feature: Pio::ExactMatch
|
|
19
19
|
|
20
20
|
Scenario: new (from Cbench Packet In)
|
21
21
|
When I create an exact match from "open_flow10/packet_in_cbench.raw"
|
22
|
-
And the message
|
22
|
+
And the message has the following fields and values:
|
23
23
|
| field | value |
|
24
24
|
| wildcards | {} |
|
25
25
|
| in_port | 1 |
|
@@ -21,7 +21,7 @@ Feature: Pio::Features::Reply
|
|
21
21
|
)
|
22
22
|
"""
|
23
23
|
Then it should finish successfully
|
24
|
-
And the message
|
24
|
+
And the message has the following fields and values:
|
25
25
|
| field | value |
|
26
26
|
| ofp_version | 1 |
|
27
27
|
| message_type | 6 |
|
@@ -50,7 +50,7 @@ Feature: Pio::Features::Reply
|
|
50
50
|
Scenario: read
|
51
51
|
When I try to parse a file named "open_flow10/features_reply.raw" with "Features::Reply" class
|
52
52
|
Then it should finish successfully
|
53
|
-
And the message
|
53
|
+
And the message has the following fields and values:
|
54
54
|
| field | value |
|
55
55
|
| ofp_version | 1 |
|
56
56
|
| message_type | 6 |
|
@@ -6,7 +6,7 @@ Feature: Pio::Features::Request
|
|
6
6
|
Pio::Features::Request.new
|
7
7
|
"""
|
8
8
|
Then it should finish successfully
|
9
|
-
And the message
|
9
|
+
And the message has the following fields and values:
|
10
10
|
| field | value |
|
11
11
|
| ofp_version | 1 |
|
12
12
|
| message_type | 5 |
|
@@ -21,7 +21,7 @@ Feature: Pio::Features::Request
|
|
21
21
|
Pio::Features::Request.new(transaction_id: 123)
|
22
22
|
"""
|
23
23
|
Then it should finish successfully
|
24
|
-
And the message
|
24
|
+
And the message has the following fields and values:
|
25
25
|
| field | value |
|
26
26
|
| ofp_version | 1 |
|
27
27
|
| message_type | 5 |
|
@@ -36,7 +36,7 @@ Feature: Pio::Features::Request
|
|
36
36
|
Pio::Features::Request.new(xid: 123)
|
37
37
|
"""
|
38
38
|
Then it should finish successfully
|
39
|
-
And the message
|
39
|
+
And the message has the following fields and values:
|
40
40
|
| field | value |
|
41
41
|
| ofp_version | 1 |
|
42
42
|
| message_type | 5 |
|
@@ -48,7 +48,7 @@ Feature: Pio::Features::Request
|
|
48
48
|
Scenario: read
|
49
49
|
When I try to parse a file named "open_flow10/features_request.raw" with "Pio::Features::Request" class
|
50
50
|
Then it should finish successfully
|
51
|
-
And the message
|
51
|
+
And the message has the following fields and values:
|
52
52
|
| field | value |
|
53
53
|
| ofp_version | 1 |
|
54
54
|
| message_type | 5 |
|
@@ -16,7 +16,7 @@ Feature: Pio::FlowMod
|
|
16
16
|
)
|
17
17
|
"""
|
18
18
|
Then it should finish successfully
|
19
|
-
And the message
|
19
|
+
And the message has the following fields and values:
|
20
20
|
| field | value |
|
21
21
|
| ofp_version | 1 |
|
22
22
|
| message_type | 14 |
|
@@ -45,7 +45,7 @@ Feature: Pio::FlowMod
|
|
45
45
|
Scenario: read (Flow Mod Add)
|
46
46
|
When I try to parse a file named "open_flow10/flow_mod_add.raw" with "Pio::FlowMod" class
|
47
47
|
Then it should finish successfully
|
48
|
-
And the message
|
48
|
+
And the message has the following fields and values:
|
49
49
|
| field | value |
|
50
50
|
| ofp_version | 1 |
|
51
51
|
| message_type | 14 |
|
@@ -82,7 +82,7 @@ Feature: Pio::FlowMod
|
|
82
82
|
Scenario: read (Flow Mod Modify)
|
83
83
|
When I try to parse a file named "open_flow10/flow_mod_modify.raw" with "Pio::FlowMod" class
|
84
84
|
Then it should finish successfully
|
85
|
-
And the message
|
85
|
+
And the message has the following fields and values:
|
86
86
|
| field | value |
|
87
87
|
| ofp_version | 1 |
|
88
88
|
| message_type | 14 |
|
@@ -119,7 +119,7 @@ Feature: Pio::FlowMod
|
|
119
119
|
Scenario: read (Flow Mod Modify Strict)
|
120
120
|
When I try to parse a file named "open_flow10/flow_mod_modify_strict.raw" with "Pio::FlowMod" class
|
121
121
|
Then it should finish successfully
|
122
|
-
And the message
|
122
|
+
And the message has the following fields and values:
|
123
123
|
| field | value |
|
124
124
|
| ofp_version | 1 |
|
125
125
|
| message_type | 14 |
|
@@ -156,7 +156,7 @@ Feature: Pio::FlowMod
|
|
156
156
|
Scenario: read (Flow Mod Delete)
|
157
157
|
When I try to parse a file named "open_flow10/flow_mod_delete.raw" with "Pio::FlowMod" class
|
158
158
|
Then it should finish successfully
|
159
|
-
And the message
|
159
|
+
And the message has the following fields and values:
|
160
160
|
| field | value |
|
161
161
|
| ofp_version | 1 |
|
162
162
|
| message_type | 14 |
|
@@ -191,7 +191,7 @@ Feature: Pio::FlowMod
|
|
191
191
|
Scenario: read (Flow Mod Delete Strict)
|
192
192
|
When I try to parse a file named "open_flow10/flow_mod_delete_strict.raw" with "Pio::FlowMod" class
|
193
193
|
Then it should finish successfully
|
194
|
-
And the message
|
194
|
+
And the message has the following fields and values:
|
195
195
|
| field | value |
|
196
196
|
| ofp_version | 1 |
|
197
197
|
| message_type | 14 |
|
@@ -0,0 +1,105 @@
|
|
1
|
+
@open_flow10
|
2
|
+
Feature: Pio::FlowStats::Reply
|
3
|
+
Scenario: new
|
4
|
+
When I try to create an OpenFlow message with:
|
5
|
+
"""
|
6
|
+
Pio::FlowStats::Reply.new
|
7
|
+
"""
|
8
|
+
Then it should finish successfully
|
9
|
+
And the message has the following fields and values:
|
10
|
+
| field | value |
|
11
|
+
| ofp_version | 1 |
|
12
|
+
| message_type | 17 |
|
13
|
+
| message_length | 12 |
|
14
|
+
| transaction_id | 0 |
|
15
|
+
| xid | 0 |
|
16
|
+
| stats_type | :flow |
|
17
|
+
| stats.size | 0 |
|
18
|
+
|
19
|
+
@wip
|
20
|
+
Scenario: new(more options)
|
21
|
+
When I try to create an OpenFlow message with:
|
22
|
+
"""
|
23
|
+
Pio::FlowStats::Reply.new(more options)
|
24
|
+
"""
|
25
|
+
Then it should finish successfully
|
26
|
+
|
27
|
+
Scenario: read
|
28
|
+
When I try to parse a file named "open_flow10/flow_stats_reply.raw" with "FlowStats::Reply" class
|
29
|
+
Then it should finish successfully
|
30
|
+
And the message has the following fields and values:
|
31
|
+
| field | value |
|
32
|
+
| ofp_version | 1 |
|
33
|
+
| message_type | 17 |
|
34
|
+
| message_length | 228 |
|
35
|
+
| transaction_id | 6 |
|
36
|
+
| xid | 6 |
|
37
|
+
| stats_type | :flow |
|
38
|
+
| stats.size | 2 |
|
39
|
+
| stats[0].entry_length | 104 |
|
40
|
+
| stats[0].table_id | 3 |
|
41
|
+
| stats[0].match.wildcards.keys.size | 14 |
|
42
|
+
| stats[0].match.wildcards.fetch(:ether_destination_address) | true |
|
43
|
+
| stats[0].match.wildcards.fetch(:ether_source_address) | true |
|
44
|
+
| stats[0].match.wildcards.fetch(:ether_type) | true |
|
45
|
+
| stats[0].match.wildcards.fetch(:in_port) | true |
|
46
|
+
| stats[0].match.wildcards.fetch(:ip_destination_address) | 31 |
|
47
|
+
| stats[0].match.wildcards.fetch(:ip_destination_address_all) | true |
|
48
|
+
| stats[0].match.wildcards.fetch(:ip_protocol) | true |
|
49
|
+
| stats[0].match.wildcards.fetch(:ip_source_address) | 31 |
|
50
|
+
| stats[0].match.wildcards.fetch(:ip_source_address_all) | true |
|
51
|
+
| stats[0].match.wildcards.fetch(:ip_tos) | true |
|
52
|
+
| stats[0].match.wildcards.fetch(:transport_destination_port) | true |
|
53
|
+
| stats[0].match.wildcards.fetch(:transport_source_port) | true |
|
54
|
+
| stats[0].match.wildcards.fetch(:vlan_priority) | true |
|
55
|
+
| stats[0].match.wildcards.fetch(:vlan_vid) | true |
|
56
|
+
| stats[0].duration_sec | 1 |
|
57
|
+
| stats[0].duration_nsec | 2 |
|
58
|
+
| stats[0].priority | 100 |
|
59
|
+
| stats[0].idle_timeout | 5 |
|
60
|
+
| stats[0].hard_timeout | 10 |
|
61
|
+
| stats[0].cookie.to_hex | 0x123456789abcdef |
|
62
|
+
| stats[0].packet_count | 10 |
|
63
|
+
| stats[0].byte_count | 1000 |
|
64
|
+
| stats[0].actions.length | 2 |
|
65
|
+
| stats[0].actions[0].class | Pio::OpenFlow10::SendOutPort |
|
66
|
+
| stats[0].actions[0].port_number | 1 |
|
67
|
+
| stats[0].actions[0].max_len | 0 |
|
68
|
+
| stats[0].actions[1].class | Pio::OpenFlow10::SendOutPort |
|
69
|
+
| stats[0].actions[1].port_number | 2 |
|
70
|
+
| stats[0].actions[1].max_len | 0 |
|
71
|
+
| stats[1].entry_length | 112 |
|
72
|
+
| stats[1].table_id | 4 |
|
73
|
+
| stats[1].match.wildcards.keys.size | 14 |
|
74
|
+
| stats[1].match.wildcards.fetch(:ether_destination_address) | true |
|
75
|
+
| stats[1].match.wildcards.fetch(:ether_source_address) | true |
|
76
|
+
| stats[1].match.wildcards.fetch(:ether_type) | true |
|
77
|
+
| stats[1].match.wildcards.fetch(:in_port) | true |
|
78
|
+
| stats[1].match.wildcards.fetch(:ip_destination_address) | 31 |
|
79
|
+
| stats[1].match.wildcards.fetch(:ip_destination_address_all) | true |
|
80
|
+
| stats[1].match.wildcards.fetch(:ip_protocol) | true |
|
81
|
+
| stats[1].match.wildcards.fetch(:ip_source_address) | 31 |
|
82
|
+
| stats[1].match.wildcards.fetch(:ip_source_address_all) | true |
|
83
|
+
| stats[1].match.wildcards.fetch(:ip_tos) | true |
|
84
|
+
| stats[1].match.wildcards.fetch(:transport_destination_port) | true |
|
85
|
+
| stats[1].match.wildcards.fetch(:transport_source_port) | true |
|
86
|
+
| stats[1].match.wildcards.fetch(:vlan_priority) | true |
|
87
|
+
| stats[1].match.wildcards.fetch(:vlan_vid) | true |
|
88
|
+
| stats[1].duration_sec | 1 |
|
89
|
+
| stats[1].duration_nsec | 2 |
|
90
|
+
| stats[1].priority | 100 |
|
91
|
+
| stats[1].idle_timeout | 5 |
|
92
|
+
| stats[1].hard_timeout | 10 |
|
93
|
+
| stats[1].cookie.to_hex | 0x123456789abcdef |
|
94
|
+
| stats[1].packet_count | 10 |
|
95
|
+
| stats[1].byte_count | 1000 |
|
96
|
+
| stats[1].actions.length | 3 |
|
97
|
+
| stats[1].actions[0].class | Pio::OpenFlow10::SendOutPort |
|
98
|
+
| stats[1].actions[0].port_number | 1 |
|
99
|
+
| stats[1].actions[0].max_len | 0 |
|
100
|
+
| stats[1].actions[1].class | Pio::OpenFlow10::SendOutPort |
|
101
|
+
| stats[1].actions[1].port_number | 2 |
|
102
|
+
| stats[1].actions[1].max_len | 0 |
|
103
|
+
| stats[1].actions[2].class | Pio::OpenFlow10::SendOutPort |
|
104
|
+
| stats[1].actions[2].port_number | 3 |
|
105
|
+
| stats[1].actions[2].max_len | 0 |
|