Module: Pio::OpenFlow

Defined in:
lib/pio/open_flow.rb,
lib/pio/open_flow/port.rb,
lib/pio/open_flow/flags.rb,
lib/pio/open_flow/action.rb,
lib/pio/open_flow/header.rb,
lib/pio/open_flow/parser.rb,
lib/pio/open_flow/message.rb,
lib/pio/open_flow/version.rb,
lib/pio/open_flow/buffer_id.rb,
lib/pio/open_flow10/actions.rb,
lib/pio/open_flow/flow_match.rb,
lib/pio/open_flow/datapath_id.rb,
lib/pio/open_flow/instruction.rb,
lib/pio/open_flow/error_message.rb,
lib/pio/open_flow/nicira_action.rb,
lib/pio/open_flow/transaction_id.rb,
lib/pio/open_flow/nicira_resubmit.rb,
lib/pio/open_flow/hello_failed_code.rb,
lib/pio/open_flow/nicira_resubmit_table.rb

Overview

Common OpenFlow modules/classes.

Defined Under Namespace

Modules: ErrorMessage, Flags Classes: Action, Actions10, BufferId, DatapathId, FlowMatch, Header, HelloFailedCode, Instruction, Message, NiciraAction, NiciraResubmit, NiciraResubmitTable, Parser, Port, TransactionId, Version

Class Method Summary collapse

Class Method Details

.read(binary) ⇒ Object



24
25
26
27
28
# File 'lib/pio/open_flow.rb', line 24

def self.read(binary)
  header = OpenFlow::Header.read(binary)
  self.version = header.version
  Parser.find_by_type!(header.type).read(binary)
end

.version=(version) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/pio/open_flow.rb', line 14

def self.version=(version)
  return if OpenFlow.version == version.to_sym
  find_all_class_by_version(version).each do |each|
    alias_open_flow_class each
  end
  @@version = version.to_sym # rubocop:disable ClassVars
rescue NameError
  raise "#{version} is not supported yet."
end