#471 OSPF Neighbor Discovery by router ID

This commit is contained in:
Oliver Gorwits
2018-12-28 17:32:40 +00:00
parent 097bad6c48
commit b445d237e4

View File

@@ -16,17 +16,18 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
my $snmp = App::Netdisco::Transport::SNMP->reader_for($device) my $snmp = App::Netdisco::Transport::SNMP->reader_for($device)
or return Status->defer("discover failed: could not SNMP connect to $device"); or return Status->defer("discover failed: could not SNMP connect to $device");
my $ospf_peers = $snmp->ospf_peers || {}; my $ospf_peers = $snmp->ospf_peers || {};
my $bgp_peers = $snmp->bgp_peer_addr || {}; my $ospf_routers = $snmp->ospf_peer_id || {};
my $eigrp_peers = $snmp->eigrp_peers || {}; my $bgp_peers = $snmp->bgp_peer_addr || {};
my $eigrp_peers = $snmp->eigrp_peers || {};
return Status->info(" [$device] neigh - no BGP, OSPF, or EIGRP peers") return Status->info(" [$device] neigh - no BGP, OSPF, or EIGRP peers")
unless ((scalar values %$ospf_peers) or (scalar values %$bgp_peers) unless ((scalar values %$ospf_peers) or (scalar values %$bgp_peers)
or (scalar values %$eigrp_peers)); or (scalar values %$eigrp_peers));
my $count = 0; my $count = 0;
foreach my $ip ((values %$ospf_peers), (values %$bgp_peers), foreach my $ip ((values %$ospf_peers), (values %$ospf_routers),
(values %$eigrp_peers)) { (values %$bgp_peers), (values %$eigrp_peers)) {
my $peer = get_device($ip); my $peer = get_device($ip);
next if $peer->in_storage or not is_discoverable($peer); next if $peer->in_storage or not is_discoverable($peer);
next if vars->{'queued'}->{$ip}; next if vars->{'queued'}->{$ip};