Skip to content

Commit

Permalink
Merge branch 'hotfix/0.27.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
yasuhito committed Sep 28, 2015
2 parents 8f34afc + 8e594f3 commit f85c8a1
Showing 17 changed files with 203 additions and 185 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -3,6 +3,11 @@
## develop (unreleased)


## 0.27.1 (9/28/2015)
### Bugs fixed
* [#238](https://github.com/trema/pio/issues/238): `Features::Reply#datapath_id` doesn't return an Integer.


## 0.27.0 (9/16/2015)
### New features
* [#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`.
8 changes: 4 additions & 4 deletions features/open_flow10/barrier_reply.feature
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ Feature: Pio::Barrier::Reply
| field | value |
| ofp_version | 1 |
| message_type | 19 |
| length | 8 |
| length | 8 |
| transaction_id | 0 |
| xid | 0 |
| body | |
@@ -25,7 +25,7 @@ Feature: Pio::Barrier::Reply
| field | value |
| ofp_version | 1 |
| message_type | 19 |
| length | 8 |
| length | 8 |
| transaction_id | 123 |
| xid | 123 |
| body | |
@@ -40,7 +40,7 @@ Feature: Pio::Barrier::Reply
| field | value |
| ofp_version | 1 |
| message_type | 19 |
| length | 8 |
| length | 8 |
| transaction_id | 123 |
| xid | 123 |
| body | |
@@ -52,7 +52,7 @@ Feature: Pio::Barrier::Reply
| field | value |
| ofp_version | 1 |
| message_type | 19 |
| length | 8 |
| length | 8 |
| transaction_id | 0 |
| xid | 0 |
| body | |
2 changes: 0 additions & 2 deletions features/open_flow_read.feature
Original file line number Diff line number Diff line change
@@ -16,8 +16,6 @@ Feature: Pio::OpenFlow.read
| open_flow10/features_request.raw | Pio::OpenFlow10::Features::Request |
| open_flow10/flow_mod_add.raw | Pio::OpenFlow10::FlowMod |
| open_flow10/flow_stats_reply.raw | Pio::OpenFlow10::FlowStats::Reply |
| open_flow10/flow_stats_reply.raw | Pio::OpenFlow10::FlowStats::Reply |
| open_flow10/flow_stats_request.raw | Pio::OpenFlow10::FlowStats::Request |
| open_flow10/flow_stats_request.raw | Pio::OpenFlow10::FlowStats::Request |
| open_flow10/hello.raw | Pio::OpenFlow10::Hello |
| open_flow10/hello_failed.raw | Pio::OpenFlow10::Error::HelloFailed |
112 changes: 2 additions & 110 deletions lib/pio/open_flow10/features.rb
Original file line number Diff line number Diff line change
@@ -1,110 +1,2 @@
require 'pio/open_flow'
require 'pio/open_flow10/phy_port16'

module Pio
module OpenFlow10
# Features Request and Reply message.
class Features
# Features Request message.
class Request < OpenFlow::Message
# Features Request message format.
class Format < BinData::Record
extend OpenFlow::Format

header version: 1, message_type: 5
string :body, value: ''

def user_data
body
end
end
end

# OpenFlow 1.0 Features Reply message.
class Reply < OpenFlow::Message
# Message body of features reply.
class Body < BinData::Record
extend OpenFlow::Flags

# enum ofp_capabilities
flags_32bit :capabilities,
[:flow_stats,
:table_stats,
:port_stats,
:stp,
:reserved,
:ip_reasm,
:queue_stats,
:arp_match_ip]

# enum ofp_action_type
flags_32bit :actions_flag,
[:output,
:set_vlan_vid,
:set_vlan_pcp,
:strip_vlan,
:set_ether_source_address,
:set_ether_destination_address,
:set_ip_source_address,
:set_ip_destination_address,
:set_ip_tos,
:set_transport_source_port,
:set_transport_destination_port,
:enqueue]

endian :big

datapath_id :datapath_id
uint32 :n_buffers
uint8 :n_tables
uint24 :padding
hide :padding
capabilities :capabilities
actions_flag :actions
array :ports, type: :phy_port16, read_until: :eof

def dpid
datapath_id
end

def empty?
false
end

def length
24 + ports.to_binary_s.length
end
end

# OpenFlow 1.0 Features Reply message
class Format < BinData::Record
extend OpenFlow::Format

header version: 1, message_type: 6
body :body

def ports
body.snapshot.ports.map do |each|
each.instance_variable_set :@datapath_id, datapath_id
each
end
end

def physical_ports
ports.select do |each|
each.port_no <= Port16::MAX
end
end
end

body_option :dpid
body_option :datapath_id
body_option :n_buffers
body_option :n_tables
body_option :capabilities
body_option :actions
body_option :ports
end
end
end
end
require 'pio/open_flow10/features/reply'
require 'pio/open_flow10/features/request'
96 changes: 96 additions & 0 deletions lib/pio/open_flow10/features/reply.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
require 'pio/open_flow'
require 'pio/open_flow10/phy_port16'

module Pio
module OpenFlow10
# Features Request and Reply message.
class Features
# OpenFlow 1.0 Features Reply message.
class Reply < OpenFlow::Message
# Message body of features reply.
class Body < BinData::Record
extend OpenFlow::Flags

# enum ofp_capabilities
flags_32bit :capabilities,
[:flow_stats,
:table_stats,
:port_stats,
:stp,
:reserved,
:ip_reasm,
:queue_stats,
:arp_match_ip]

# enum ofp_action_type
flags_32bit :actions_flag,
[:output,
:set_vlan_vid,
:set_vlan_pcp,
:strip_vlan,
:set_ether_source_address,
:set_ether_destination_address,
:set_ip_source_address,
:set_ip_destination_address,
:set_ip_tos,
:set_transport_source_port,
:set_transport_destination_port,
:enqueue]

endian :big

datapath_id :datapath_id
uint32 :n_buffers
uint8 :n_tables
uint24 :padding
hide :padding
capabilities :capabilities
actions_flag :actions
array :ports, type: :phy_port16, read_until: :eof

def empty?
false
end

def length
24 + ports.to_binary_s.length
end
end

# OpenFlow 1.0 Features Reply message
class Format < BinData::Record
extend OpenFlow::Format

header version: 1, message_type: 6
body :body

def ports
body.snapshot.ports.map do |each|
each.instance_variable_set :@datapath_id, datapath_id
each
end
end

def physical_ports
ports.select do |each|
each.port_no <= Port16::MAX
end
end

def datapath_id
body.datapath_id.to_i
end
alias_method :dpid, :datapath_id
end

body_option :dpid
body_option :datapath_id
body_option :n_buffers
body_option :n_tables
body_option :capabilities
body_option :actions
body_option :ports
end
end
end
end
23 changes: 23 additions & 0 deletions lib/pio/open_flow10/features/request.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
require 'pio/open_flow'

module Pio
module OpenFlow10
# Features Request and Reply message.
class Features
# Features Request message.
class Request < OpenFlow::Message
# Features Request message format.
class Format < BinData::Record
extend OpenFlow::Format

header version: 1, message_type: 5
string :body, value: ''

def user_data
body
end
end
end
end
end
end
3 changes: 1 addition & 2 deletions lib/pio/open_flow13.rb
Original file line number Diff line number Diff line change
@@ -3,8 +3,7 @@
require 'pio/open_flow13/error'
require 'pio/open_flow13/error/bad_request'
require 'pio/open_flow13/error/hello_failed'
require 'pio/open_flow13/features_reply'
require 'pio/open_flow13/features_request'
require 'pio/open_flow13/features'
require 'pio/open_flow13/flow_mod'
require 'pio/open_flow13/goto_table'
require 'pio/open_flow13/hello'
2 changes: 2 additions & 0 deletions lib/pio/open_flow13/features.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
require 'pio/open_flow13/features/reply'
require 'pio/open_flow13/features/request'
63 changes: 63 additions & 0 deletions lib/pio/open_flow13/features/reply.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
require 'pio/open_flow'

# Base module.
module Pio
# OpenFlow 1.3 messages
module OpenFlow13
# Features Request and Reply message.
class Features
# Features Reply message.
class Reply < OpenFlow::Message
# Features Reply message body.
class Body < BinData::Record
extend OpenFlow::Flags

flags_32bit(:capabilities,
[:flow_stats,
:table_stats,
:port_stats,
:group_stats,
:NOT_USED,
:ip_reasm,
:queue_stats,
:NOT_USED,
:port_blocked])

endian :big

datapath_id :datapath_id
uint32 :n_buffers
uint8 :n_tables
uint8 :auxiliary_id
uint16 :padding
hide :padding
capabilities :capabilities
uint32 :reserved

def length
24
end
end

# Features Reply message format.
class Format < BinData::Record
extend OpenFlow::Format

header version: 4, message_type: 6
body :body

def datapath_id
body.datapath_id.to_i
end
alias_method :dpid, :datapath_id
end

body_option :dpid
body_option :datapath_id
body_option :n_buffers
body_option :n_tables
body_option :capabilities
end
end
end
end
File renamed without changes.
Loading

0 comments on commit f85c8a1

Please sign in to comment.