class Pio::OpenFlow10::Enqueue

An action to enqueue the packet on the specified queue attached to a port.

Public Class Methods

new(user_options) click to toggle source
Calls superclass method Pio::OpenFlow::Action::new
# File lib/pio/open_flow10/enqueue.rb, line 18
def initialize(user_options)
  validate_port user_options
  validate_queue_id user_options
  super(user_options)
end

Private Instance Methods

validate_port(user_options) click to toggle source
# File lib/pio/open_flow10/enqueue.rb, line 26
def validate_port(user_options)
  port = user_options.fetch(:port)
  if port.is_a?(Symbol) && port != :in_port
    raise(ArgumentError,
          ':port must be a valid physical port or :in_port')
  end
rescue KeyError
  raise ArgumentError, ':port is a mandatory option'
end
validate_queue_id(user_options) click to toggle source
# File lib/pio/open_flow10/enqueue.rb, line 36
def validate_queue_id(user_options)
  unless user_options.fetch(:queue_id).unsigned_32bit?
    raise ArgumentError, ':queue_id must be an unsigned 32-bit integer'
  end
rescue KeyError
  raise ArgumentError, ':queue_id is a mandatory option'
end