class Pio::OpenFlow::Port
Port
numbering.
Public Class Methods
max_port_number(port_number)
click to toggle source
# File lib/pio/open_flow/port.rb, line 13 def self.max_port_number(port_number) const_set :MAX, port_number end
port_size_in_bytes(nbytes)
click to toggle source
# File lib/pio/open_flow/port.rb, line 9 def self.port_size_in_bytes(nbytes) class_eval "uint#{nbytes} :port" end
reserved_port_name?(port_name)
click to toggle source
# File lib/pio/open_flow/port.rb, line 25 def self.reserved_port_name?(port_name) @reserved.key? port_name end
reserved_port_number(port_name)
click to toggle source
# File lib/pio/open_flow/port.rb, line 21 def self.reserved_port_number(port_name) @reserved.fetch port_name end
reserved_ports(port_name_and_number)
click to toggle source
# File lib/pio/open_flow/port.rb, line 17 def self.reserved_ports(port_name_and_number) @reserved = port_name_and_number end
Public Instance Methods
get()
click to toggle source
# File lib/pio/open_flow/port.rb, line 49 def get if reserved_port_number?(port) reserved_port_name(port) else port end end
max()
click to toggle source
# File lib/pio/open_flow/port.rb, line 29 def max self.class.const_get :MAX end
reserved_port_name(port_number)
click to toggle source
# File lib/pio/open_flow/port.rb, line 45 def reserved_port_name(port_number) self.class.instance_variable_get(:@reserved).invert.fetch(port_number) end
reserved_port_name?(port_name)
click to toggle source
# File lib/pio/open_flow/port.rb, line 37 def reserved_port_name?(port_name) self.class.reserved_port_name? port_name end
reserved_port_number(port_name)
click to toggle source
# File lib/pio/open_flow/port.rb, line 33 def reserved_port_number(port_name) self.class.reserved_port_number port_name end
reserved_port_number?(port_number)
click to toggle source
# File lib/pio/open_flow/port.rb, line 41 def reserved_port_number?(port_number) self.class.instance_variable_get(:@reserved).invert.key?(port_number) end
set(port)
click to toggle source
# File lib/pio/open_flow/port.rb, line 57 def set(port) if reserved_port_name?(port) self.port = reserved_port_number(port) else port_num = port.to_i raise ArgumentError, 'The port should be > 0' if port_num < 1 if port_num >= max raise ArgumentError, "The port should be < #{max.to_hex}" end self.port = port_num end end