Sha256: ef4ff1420f3c10826d6c23ade3c24178b211d7b7fe3967921fe52e993a30d300

Contents?: true

Size: 1.71 KB

Versions: 1

Compression:

Stored size: 1.71 KB

Contents

require 'pio/open_flow/datapath_id'
require 'pio/open_flow/message'
require 'pio/open_flow10/phy_port16'
require 'pio/open_flow10/port16'

module Pio
  module OpenFlow10
    # Features Request and Reply message.
    class Features
      # OpenFlow 1.0 Features Reply message.
      class Reply < OpenFlow::Message
        open_flow_header(version: 1,
                         type: 6,
                         length: lambda do
                           header_length + 24 + PhyPort16.length * ports.length
                         end)

        datapath_id :datapath_id
        alias dpid datapath_id
        uint32 :n_buffers
        uint8 :n_tables
        string :padding, length: 3
        hide :padding
        flags_32bit :capabilities,
                    [:flow_stats,
                     :table_stats,
                     :port_stats,
                     :stp,
                     :reserved,
                     :ip_reasm,
                     :queue_stats,
                     :arp_match_ip]
        flags_32bit :actions,
                    [:output,
                     :set_vlan_vid,
                     :set_vlan_pcp,
                     :strip_vlan,
                     :set_source_mac_address,
                     :set_destination_mac_address,
                     :set_source_ip_address,
                     :set_destination_ip_address,
                     :set_tos,
                     :set_transport_source_port,
                     :set_transport_destination_port,
                     :enqueue]
        array :ports, type: :phy_port16, read_until: :eof

        def ports
          super.map do |each|
            each.datapath_id = datapath_id
            each
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pio-0.30.1 lib/pio/open_flow10/features/reply.rb