lib/pio/lldp/frame.rb in pio-0.2.7 vs lib/pio/lldp/frame.rb in pio-0.3.0

- old
+ new

@@ -1,15 +1,15 @@ -require "rubygems" -require "bindata" +# -*- coding: utf-8 -*- +require 'rubygems' +require 'bindata' -require "pio/lldp/chassis_id_tlv" -require "pio/lldp/optional_tlv" -require "pio/lldp/port_id_tlv" -require "pio/lldp/ttl_tlv" -require "pio/type/ethernet_header" +require 'pio/lldp/chassis_id_tlv' +require 'pio/lldp/optional_tlv' +require 'pio/lldp/port_id_tlv' +require 'pio/lldp/ttl_tlv' +require 'pio/type/ethernet_header' - module Pio class Lldp # LLDP frame class Frame < BinData::Record extend Type::EthernetHeader @@ -18,68 +18,57 @@ ethernet_header :ether_type => 0x88cc chassis_id_tlv :chassis_id port_id_tlv :port_id ttl_tlv :ttl, :initial_value => 120 - array :optional_tlv, :type => :optional_tlv, :read_until => lambda { element.end_of_lldpdu? } + array(:optional_tlv, + :type => :optional_tlv, + :read_until => lambda { element.end_of_lldpdu? }) - def dpid chassis_id.to_i end - def port_description - get_tlv_field 4, "port_description" + get_tlv_field 4, 'port_description' end - def system_name - get_tlv_field 5, "system_name" + get_tlv_field 5, 'system_name' end - def system_description - get_tlv_field 6, "system_description" + get_tlv_field 6, 'system_description' end - def system_capabilities get_tlv 7 end - def management_address - get_tlv_field 8, "management_address" + get_tlv_field 8, 'management_address' end - def organizationally_specific get_tlv 127 end - - ########################################################################## private - ########################################################################## - - def get_tlv tlv_type + def get_tlv(tlv_type) tlv = optional_tlv.find do | each | - each[ "tlv_type" ] == tlv_type + each['tlv_type'] == tlv_type end - tlv[ "tlv_value" ] if tlv + tlv['tlv_value'] if tlv end - - def get_tlv_field tlv_type, name - tlv = get_tlv( tlv_type ) - tlv[ name ] if tlv + def get_tlv_field(tlv_type, name) + tlv = get_tlv(tlv_type) + tlv[name] if tlv end end end end - ### Local variables: ### mode: Ruby ### coding: utf-8-unix ### indent-tabs-mode: nil