class NetCrawl::LLDP
Constants
- MIB
- OID
- PEERS_BY
- PortSubType
Private Instance Methods
make_peers()
click to toggle source
# File lib/netcrawl/method/lldp.rb, line 31 def make_peers peers = [] @mib.by_oid(PEERS_BY).each do |_, vb| peer = Peer.new peer_id = vb.oid_id(PEERS_BY) peer.oid = get_oid_hash peer_id ip = @mib.by_partial OID[:lldpRemManAddrIfSubtype], peer_id peer.raw_ip = ip.oid[-4..-1].join('.') if ip # FIXME: IPv4 specific peer.raw_ip ||= '192.0.2.255' # sometimes we can't fnd any IP (EX2200 talking Arista found) peer.raw_name = @mib[OID[:lldpRemSysName], peer_id].value peer.ip = get_ip peer.raw_ip, peer.raw_name peer.dst = @mib[OID[:lldpRemPortId], peer_id].value if @mib[OID[:lldpRemPortIdSubtype], peer_id].value.to_i == PortSubType[:mac_address] peer.dst = peer.dst.each_char.map{|e|"%02x" % e.ord}.join.scan(/..../).join('.') end peer.src = @mib[OID[:lldpLocPortId], peer_id[1]].value rescue nil peers << peer end peers end