pio 0.27.0 → 0.27.1
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/features/open_flow10/barrier_reply.feature +4 -4
- data/features/open_flow_read.feature +0 -2
- data/lib/pio/open_flow10/features.rb +2 -110
- data/lib/pio/open_flow10/features/reply.rb +96 -0
- data/lib/pio/open_flow10/features/request.rb +23 -0
- data/lib/pio/open_flow13.rb +1 -2
- data/lib/pio/open_flow13/features.rb +2 -0
- data/lib/pio/open_flow13/features/reply.rb +63 -0
- data/lib/pio/open_flow13/{features_request.rb → features/request.rb} +0 -0
- data/lib/pio/version.rb +1 -1
- data/spec/pio/open_flow10/{features_reply_spec.rb → features/reply_spec.rb} +1 -1
- data/spec/pio/open_flow10/{features_request_spec.rb → features/request_spec.rb} +1 -1
- data/spec/pio/open_flow13/{features_reply_spec.rb → features/reply_spec.rb} +1 -1
- data/spec/pio/open_flow13/{features_request_spec.rb → features/request_spec.rb} +1 -1
- data/spec/support/shared_examples_for_openflow_messages.rb +2 -0
- metadata +15 -12
- data/lib/pio/open_flow13/features_reply.rb +0 -62
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd270820e4430bee21347b008f91d1724d02ef47
|
4
|
+
data.tar.gz: e223abe2cc4eecc229f81696781e970093f658f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22047d4b49373c9a0b1d8aec4ac7bebc353ef161831c466c4928b043bbe9caae19584540a64cd1c7cad6523a954f76e195e388038f600b61809085b502c35de2
|
7
|
+
data.tar.gz: 1fb20370716136a85aa396e56549cb84c7d81d7e8c53165df7999447e60af9ba8901f4cd46d82c53ee53946d5135ea82f60f50e4e51525c362de170e29d3f5b7
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,11 @@
|
|
3
3
|
## develop (unreleased)
|
4
4
|
|
5
5
|
|
6
|
+
## 0.27.1 (9/28/2015)
|
7
|
+
### Bugs fixed
|
8
|
+
* [#238](https://github.com/trema/pio/issues/238): `Features::Reply#datapath_id` doesn't return an Integer.
|
9
|
+
|
10
|
+
|
6
11
|
## 0.27.0 (9/16/2015)
|
7
12
|
### New features
|
8
13
|
* [#203](https://github.com/trema/pio/pull/203): Add new classes `Pio::OpenFlow10::DescriptionStats::Request`, `Pio::OpenFlow10::DescriptionStats::Reply`, `Pio::OpenFlow10::FlowStats::Request`, `Pio::OpenFlow10::FlowStats::Reply`, `Pio::OpenFlow10::AggregateStats::Request`, `Pio::OpenFlow10::AggregateStats::Reply`.
|
@@ -10,7 +10,7 @@ Feature: Pio::Barrier::Reply
|
|
10
10
|
| field | value |
|
11
11
|
| ofp_version | 1 |
|
12
12
|
| message_type | 19 |
|
13
|
-
| length
|
13
|
+
| length | 8 |
|
14
14
|
| transaction_id | 0 |
|
15
15
|
| xid | 0 |
|
16
16
|
| body | |
|
@@ -25,7 +25,7 @@ Feature: Pio::Barrier::Reply
|
|
25
25
|
| field | value |
|
26
26
|
| ofp_version | 1 |
|
27
27
|
| message_type | 19 |
|
28
|
-
| length
|
28
|
+
| length | 8 |
|
29
29
|
| transaction_id | 123 |
|
30
30
|
| xid | 123 |
|
31
31
|
| body | |
|
@@ -40,7 +40,7 @@ Feature: Pio::Barrier::Reply
|
|
40
40
|
| field | value |
|
41
41
|
| ofp_version | 1 |
|
42
42
|
| message_type | 19 |
|
43
|
-
| length
|
43
|
+
| length | 8 |
|
44
44
|
| transaction_id | 123 |
|
45
45
|
| xid | 123 |
|
46
46
|
| body | |
|
@@ -52,7 +52,7 @@ Feature: Pio::Barrier::Reply
|
|
52
52
|
| field | value |
|
53
53
|
| ofp_version | 1 |
|
54
54
|
| message_type | 19 |
|
55
|
-
| length
|
55
|
+
| length | 8 |
|
56
56
|
| transaction_id | 0 |
|
57
57
|
| xid | 0 |
|
58
58
|
| body | |
|
@@ -16,8 +16,6 @@ Feature: Pio::OpenFlow.read
|
|
16
16
|
| open_flow10/features_request.raw | Pio::OpenFlow10::Features::Request |
|
17
17
|
| open_flow10/flow_mod_add.raw | Pio::OpenFlow10::FlowMod |
|
18
18
|
| open_flow10/flow_stats_reply.raw | Pio::OpenFlow10::FlowStats::Reply |
|
19
|
-
| open_flow10/flow_stats_reply.raw | Pio::OpenFlow10::FlowStats::Reply |
|
20
|
-
| open_flow10/flow_stats_request.raw | Pio::OpenFlow10::FlowStats::Request |
|
21
19
|
| open_flow10/flow_stats_request.raw | Pio::OpenFlow10::FlowStats::Request |
|
22
20
|
| open_flow10/hello.raw | Pio::OpenFlow10::Hello |
|
23
21
|
| open_flow10/hello_failed.raw | Pio::OpenFlow10::Error::HelloFailed |
|
@@ -1,110 +1,2 @@
|
|
1
|
-
require 'pio/
|
2
|
-
require 'pio/open_flow10/
|
3
|
-
|
4
|
-
module Pio
|
5
|
-
module OpenFlow10
|
6
|
-
# Features Request and Reply message.
|
7
|
-
class Features
|
8
|
-
# Features Request message.
|
9
|
-
class Request < OpenFlow::Message
|
10
|
-
# Features Request message format.
|
11
|
-
class Format < BinData::Record
|
12
|
-
extend OpenFlow::Format
|
13
|
-
|
14
|
-
header version: 1, message_type: 5
|
15
|
-
string :body, value: ''
|
16
|
-
|
17
|
-
def user_data
|
18
|
-
body
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
# OpenFlow 1.0 Features Reply message.
|
24
|
-
class Reply < OpenFlow::Message
|
25
|
-
# Message body of features reply.
|
26
|
-
class Body < BinData::Record
|
27
|
-
extend OpenFlow::Flags
|
28
|
-
|
29
|
-
# enum ofp_capabilities
|
30
|
-
flags_32bit :capabilities,
|
31
|
-
[:flow_stats,
|
32
|
-
:table_stats,
|
33
|
-
:port_stats,
|
34
|
-
:stp,
|
35
|
-
:reserved,
|
36
|
-
:ip_reasm,
|
37
|
-
:queue_stats,
|
38
|
-
:arp_match_ip]
|
39
|
-
|
40
|
-
# enum ofp_action_type
|
41
|
-
flags_32bit :actions_flag,
|
42
|
-
[:output,
|
43
|
-
:set_vlan_vid,
|
44
|
-
:set_vlan_pcp,
|
45
|
-
:strip_vlan,
|
46
|
-
:set_ether_source_address,
|
47
|
-
:set_ether_destination_address,
|
48
|
-
:set_ip_source_address,
|
49
|
-
:set_ip_destination_address,
|
50
|
-
:set_ip_tos,
|
51
|
-
:set_transport_source_port,
|
52
|
-
:set_transport_destination_port,
|
53
|
-
:enqueue]
|
54
|
-
|
55
|
-
endian :big
|
56
|
-
|
57
|
-
datapath_id :datapath_id
|
58
|
-
uint32 :n_buffers
|
59
|
-
uint8 :n_tables
|
60
|
-
uint24 :padding
|
61
|
-
hide :padding
|
62
|
-
capabilities :capabilities
|
63
|
-
actions_flag :actions
|
64
|
-
array :ports, type: :phy_port16, read_until: :eof
|
65
|
-
|
66
|
-
def dpid
|
67
|
-
datapath_id
|
68
|
-
end
|
69
|
-
|
70
|
-
def empty?
|
71
|
-
false
|
72
|
-
end
|
73
|
-
|
74
|
-
def length
|
75
|
-
24 + ports.to_binary_s.length
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
# OpenFlow 1.0 Features Reply message
|
80
|
-
class Format < BinData::Record
|
81
|
-
extend OpenFlow::Format
|
82
|
-
|
83
|
-
header version: 1, message_type: 6
|
84
|
-
body :body
|
85
|
-
|
86
|
-
def ports
|
87
|
-
body.snapshot.ports.map do |each|
|
88
|
-
each.instance_variable_set :@datapath_id, datapath_id
|
89
|
-
each
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
def physical_ports
|
94
|
-
ports.select do |each|
|
95
|
-
each.port_no <= Port16::MAX
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
body_option :dpid
|
101
|
-
body_option :datapath_id
|
102
|
-
body_option :n_buffers
|
103
|
-
body_option :n_tables
|
104
|
-
body_option :capabilities
|
105
|
-
body_option :actions
|
106
|
-
body_option :ports
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
1
|
+
require 'pio/open_flow10/features/reply'
|
2
|
+
require 'pio/open_flow10/features/request'
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'pio/open_flow'
|
2
|
+
require 'pio/open_flow10/phy_port16'
|
3
|
+
|
4
|
+
module Pio
|
5
|
+
module OpenFlow10
|
6
|
+
# Features Request and Reply message.
|
7
|
+
class Features
|
8
|
+
# OpenFlow 1.0 Features Reply message.
|
9
|
+
class Reply < OpenFlow::Message
|
10
|
+
# Message body of features reply.
|
11
|
+
class Body < BinData::Record
|
12
|
+
extend OpenFlow::Flags
|
13
|
+
|
14
|
+
# enum ofp_capabilities
|
15
|
+
flags_32bit :capabilities,
|
16
|
+
[:flow_stats,
|
17
|
+
:table_stats,
|
18
|
+
:port_stats,
|
19
|
+
:stp,
|
20
|
+
:reserved,
|
21
|
+
:ip_reasm,
|
22
|
+
:queue_stats,
|
23
|
+
:arp_match_ip]
|
24
|
+
|
25
|
+
# enum ofp_action_type
|
26
|
+
flags_32bit :actions_flag,
|
27
|
+
[:output,
|
28
|
+
:set_vlan_vid,
|
29
|
+
:set_vlan_pcp,
|
30
|
+
:strip_vlan,
|
31
|
+
:set_ether_source_address,
|
32
|
+
:set_ether_destination_address,
|
33
|
+
:set_ip_source_address,
|
34
|
+
:set_ip_destination_address,
|
35
|
+
:set_ip_tos,
|
36
|
+
:set_transport_source_port,
|
37
|
+
:set_transport_destination_port,
|
38
|
+
:enqueue]
|
39
|
+
|
40
|
+
endian :big
|
41
|
+
|
42
|
+
datapath_id :datapath_id
|
43
|
+
uint32 :n_buffers
|
44
|
+
uint8 :n_tables
|
45
|
+
uint24 :padding
|
46
|
+
hide :padding
|
47
|
+
capabilities :capabilities
|
48
|
+
actions_flag :actions
|
49
|
+
array :ports, type: :phy_port16, read_until: :eof
|
50
|
+
|
51
|
+
def empty?
|
52
|
+
false
|
53
|
+
end
|
54
|
+
|
55
|
+
def length
|
56
|
+
24 + ports.to_binary_s.length
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# OpenFlow 1.0 Features Reply message
|
61
|
+
class Format < BinData::Record
|
62
|
+
extend OpenFlow::Format
|
63
|
+
|
64
|
+
header version: 1, message_type: 6
|
65
|
+
body :body
|
66
|
+
|
67
|
+
def ports
|
68
|
+
body.snapshot.ports.map do |each|
|
69
|
+
each.instance_variable_set :@datapath_id, datapath_id
|
70
|
+
each
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def physical_ports
|
75
|
+
ports.select do |each|
|
76
|
+
each.port_no <= Port16::MAX
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def datapath_id
|
81
|
+
body.datapath_id.to_i
|
82
|
+
end
|
83
|
+
alias_method :dpid, :datapath_id
|
84
|
+
end
|
85
|
+
|
86
|
+
body_option :dpid
|
87
|
+
body_option :datapath_id
|
88
|
+
body_option :n_buffers
|
89
|
+
body_option :n_tables
|
90
|
+
body_option :capabilities
|
91
|
+
body_option :actions
|
92
|
+
body_option :ports
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'pio/open_flow'
|
2
|
+
|
3
|
+
module Pio
|
4
|
+
module OpenFlow10
|
5
|
+
# Features Request and Reply message.
|
6
|
+
class Features
|
7
|
+
# Features Request message.
|
8
|
+
class Request < OpenFlow::Message
|
9
|
+
# Features Request message format.
|
10
|
+
class Format < BinData::Record
|
11
|
+
extend OpenFlow::Format
|
12
|
+
|
13
|
+
header version: 1, message_type: 5
|
14
|
+
string :body, value: ''
|
15
|
+
|
16
|
+
def user_data
|
17
|
+
body
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/pio/open_flow13.rb
CHANGED
@@ -3,8 +3,7 @@ require 'pio/open_flow13/echo'
|
|
3
3
|
require 'pio/open_flow13/error'
|
4
4
|
require 'pio/open_flow13/error/bad_request'
|
5
5
|
require 'pio/open_flow13/error/hello_failed'
|
6
|
-
require 'pio/open_flow13/
|
7
|
-
require 'pio/open_flow13/features_request'
|
6
|
+
require 'pio/open_flow13/features'
|
8
7
|
require 'pio/open_flow13/flow_mod'
|
9
8
|
require 'pio/open_flow13/goto_table'
|
10
9
|
require 'pio/open_flow13/hello'
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'pio/open_flow'
|
2
|
+
|
3
|
+
# Base module.
|
4
|
+
module Pio
|
5
|
+
# OpenFlow 1.3 messages
|
6
|
+
module OpenFlow13
|
7
|
+
# Features Request and Reply message.
|
8
|
+
class Features
|
9
|
+
# Features Reply message.
|
10
|
+
class Reply < OpenFlow::Message
|
11
|
+
# Features Reply message body.
|
12
|
+
class Body < BinData::Record
|
13
|
+
extend OpenFlow::Flags
|
14
|
+
|
15
|
+
flags_32bit(:capabilities,
|
16
|
+
[:flow_stats,
|
17
|
+
:table_stats,
|
18
|
+
:port_stats,
|
19
|
+
:group_stats,
|
20
|
+
:NOT_USED,
|
21
|
+
:ip_reasm,
|
22
|
+
:queue_stats,
|
23
|
+
:NOT_USED,
|
24
|
+
:port_blocked])
|
25
|
+
|
26
|
+
endian :big
|
27
|
+
|
28
|
+
datapath_id :datapath_id
|
29
|
+
uint32 :n_buffers
|
30
|
+
uint8 :n_tables
|
31
|
+
uint8 :auxiliary_id
|
32
|
+
uint16 :padding
|
33
|
+
hide :padding
|
34
|
+
capabilities :capabilities
|
35
|
+
uint32 :reserved
|
36
|
+
|
37
|
+
def length
|
38
|
+
24
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# Features Reply message format.
|
43
|
+
class Format < BinData::Record
|
44
|
+
extend OpenFlow::Format
|
45
|
+
|
46
|
+
header version: 4, message_type: 6
|
47
|
+
body :body
|
48
|
+
|
49
|
+
def datapath_id
|
50
|
+
body.datapath_id.to_i
|
51
|
+
end
|
52
|
+
alias_method :dpid, :datapath_id
|
53
|
+
end
|
54
|
+
|
55
|
+
body_option :dpid
|
56
|
+
body_option :datapath_id
|
57
|
+
body_option :n_buffers
|
58
|
+
body_option :n_tables
|
59
|
+
body_option :capabilities
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
File without changes
|
data/lib/pio/version.rb
CHANGED
@@ -71,11 +71,13 @@ shared_examples 'an OpenFlow message with Datapath ID' do |klass|
|
|
71
71
|
context 'with { datapath_id: 0 }' do
|
72
72
|
Given(:options) { { datapath_id: 0 } }
|
73
73
|
Then { message.datapath_id == 0 }
|
74
|
+
And { message.datapath_id.is_a? Integer }
|
74
75
|
end
|
75
76
|
|
76
77
|
context 'with { datapath_id: 2**64 - 1 }' do
|
77
78
|
Given(:options) { { datapath_id: 2**64 - 1 } }
|
78
79
|
Then { message.datapath_id == 2**64 - 1 }
|
80
|
+
And { message.datapath_id.is_a? Integer }
|
79
81
|
end
|
80
82
|
|
81
83
|
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.27.
|
4
|
+
version: 0.27.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-09-
|
11
|
+
date: 2015-09-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bindata
|
@@ -700,6 +700,8 @@ files:
|
|
700
700
|
- lib/pio/open_flow10/error/hello_failed.rb
|
701
701
|
- lib/pio/open_flow10/exact_match.rb
|
702
702
|
- lib/pio/open_flow10/features.rb
|
703
|
+
- lib/pio/open_flow10/features/reply.rb
|
704
|
+
- lib/pio/open_flow10/features/request.rb
|
703
705
|
- lib/pio/open_flow10/flow_mod.rb
|
704
706
|
- lib/pio/open_flow10/flow_stats_reply.rb
|
705
707
|
- lib/pio/open_flow10/flow_stats_request.rb
|
@@ -732,8 +734,9 @@ files:
|
|
732
734
|
- lib/pio/open_flow13/error/bad_request.rb
|
733
735
|
- lib/pio/open_flow13/error/error_type13.rb
|
734
736
|
- lib/pio/open_flow13/error/hello_failed.rb
|
735
|
-
- lib/pio/open_flow13/
|
736
|
-
- lib/pio/open_flow13/
|
737
|
+
- lib/pio/open_flow13/features.rb
|
738
|
+
- lib/pio/open_flow13/features/reply.rb
|
739
|
+
- lib/pio/open_flow13/features/request.rb
|
737
740
|
- lib/pio/open_flow13/flow_mod.rb
|
738
741
|
- lib/pio/open_flow13/goto_table.rb
|
739
742
|
- lib/pio/open_flow13/hello.rb
|
@@ -777,8 +780,8 @@ files:
|
|
777
780
|
- spec/pio/open_flow10/echo_request_spec.rb
|
778
781
|
- spec/pio/open_flow10/enqueue_spec.rb
|
779
782
|
- spec/pio/open_flow10/error/hello_failed_spec.rb
|
780
|
-
- spec/pio/open_flow10/
|
781
|
-
- spec/pio/open_flow10/
|
783
|
+
- spec/pio/open_flow10/features/reply_spec.rb
|
784
|
+
- spec/pio/open_flow10/features/request_spec.rb
|
782
785
|
- spec/pio/open_flow10/flow_mod_spec.rb
|
783
786
|
- spec/pio/open_flow10/flow_stats_reply_spec.rb
|
784
787
|
- spec/pio/open_flow10/flow_stats_request_spec.rb
|
@@ -803,8 +806,8 @@ files:
|
|
803
806
|
- spec/pio/open_flow13/echo_request_spec.rb
|
804
807
|
- spec/pio/open_flow13/error/bad_request_spec.rb
|
805
808
|
- spec/pio/open_flow13/error/hello_failed_spec.rb
|
806
|
-
- spec/pio/open_flow13/
|
807
|
-
- spec/pio/open_flow13/
|
809
|
+
- spec/pio/open_flow13/features/reply_spec.rb
|
810
|
+
- spec/pio/open_flow13/features/request_spec.rb
|
808
811
|
- spec/pio/open_flow13/goto_table_spec.rb
|
809
812
|
- spec/pio/open_flow13/hello_spec.rb
|
810
813
|
- spec/pio/open_flow13/match_spec.rb
|
@@ -860,8 +863,8 @@ test_files:
|
|
860
863
|
- spec/pio/open_flow10/echo_request_spec.rb
|
861
864
|
- spec/pio/open_flow10/enqueue_spec.rb
|
862
865
|
- spec/pio/open_flow10/error/hello_failed_spec.rb
|
863
|
-
- spec/pio/open_flow10/
|
864
|
-
- spec/pio/open_flow10/
|
866
|
+
- spec/pio/open_flow10/features/reply_spec.rb
|
867
|
+
- spec/pio/open_flow10/features/request_spec.rb
|
865
868
|
- spec/pio/open_flow10/flow_mod_spec.rb
|
866
869
|
- spec/pio/open_flow10/flow_stats_reply_spec.rb
|
867
870
|
- spec/pio/open_flow10/flow_stats_request_spec.rb
|
@@ -886,8 +889,8 @@ test_files:
|
|
886
889
|
- spec/pio/open_flow13/echo_request_spec.rb
|
887
890
|
- spec/pio/open_flow13/error/bad_request_spec.rb
|
888
891
|
- spec/pio/open_flow13/error/hello_failed_spec.rb
|
889
|
-
- spec/pio/open_flow13/
|
890
|
-
- spec/pio/open_flow13/
|
892
|
+
- spec/pio/open_flow13/features/reply_spec.rb
|
893
|
+
- spec/pio/open_flow13/features/request_spec.rb
|
891
894
|
- spec/pio/open_flow13/goto_table_spec.rb
|
892
895
|
- spec/pio/open_flow13/hello_spec.rb
|
893
896
|
- spec/pio/open_flow13/match_spec.rb
|
@@ -1,62 +0,0 @@
|
|
1
|
-
require 'pio/open_flow'
|
2
|
-
|
3
|
-
# Base module.
|
4
|
-
module Pio
|
5
|
-
# OpenFlow 1.3 messages
|
6
|
-
module OpenFlow13
|
7
|
-
# Features Request and Reply message.
|
8
|
-
class Features
|
9
|
-
# Features Reply message.
|
10
|
-
class Reply < OpenFlow::Message
|
11
|
-
# Features Reply message format.
|
12
|
-
class Format < BinData::Record
|
13
|
-
# Features Reply message body.
|
14
|
-
class Body < BinData::Record
|
15
|
-
extend OpenFlow::Flags
|
16
|
-
|
17
|
-
flags_32bit(:capabilities,
|
18
|
-
[:flow_stats,
|
19
|
-
:table_stats,
|
20
|
-
:port_stats,
|
21
|
-
:group_stats,
|
22
|
-
:NOT_USED,
|
23
|
-
:ip_reasm,
|
24
|
-
:queue_stats,
|
25
|
-
:NOT_USED,
|
26
|
-
:port_blocked])
|
27
|
-
|
28
|
-
endian :big
|
29
|
-
|
30
|
-
datapath_id :datapath_id
|
31
|
-
uint32 :n_buffers
|
32
|
-
uint8 :n_tables
|
33
|
-
uint8 :auxiliary_id
|
34
|
-
uint16 :padding
|
35
|
-
hide :padding
|
36
|
-
capabilities :capabilities
|
37
|
-
uint32 :reserved
|
38
|
-
|
39
|
-
def dpid
|
40
|
-
datapath_id
|
41
|
-
end
|
42
|
-
|
43
|
-
def length
|
44
|
-
24
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
extend OpenFlow::Format
|
49
|
-
|
50
|
-
header version: 4, message_type: 6
|
51
|
-
body :body
|
52
|
-
end
|
53
|
-
|
54
|
-
body_option :dpid
|
55
|
-
body_option :datapath_id
|
56
|
-
body_option :n_buffers
|
57
|
-
body_option :n_tables
|
58
|
-
body_option :capabilities
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|