The April 5, 2002 version of bgp.monitor currently on the Mon contrib
site does not seem to properly display the IP address of the remote
peer when there is an error condition. At least that's the case for
me right now, with a Cisco 7513 running IOS 12.0.23s. Here is a patch
that corrects the problem, by displaying bgpPeerRemoteAddr rather
than bgpPeerIdentifier. Comments welcome, since I'm not all that
familiar with this MIB. It seems that bgpPerIdentifier is set to
0.0.0.0 in my Cisco's MIB when the session goes down, which is not
all that useful in a Mon alarm.
--- bgp.monitor 2003/10/21 17:10:52 1.3
+++ bgp.monitor 2003/10/21 17:11:33
@@ -128,7 +128,7 @@
$details .= Router: $router (AS $bgpLocalAs) Id : $bgpIdentifier\n;
# Get trougnt the SNMP tree to fetch all peer infos
- my $vars = new
SNMP::VarList([$oids{bgpPeerIdentifier}],[$oids{bgpPeerRemoteAs}],[$oids{bgpPeerState}],[$oids{bgpPeerFsmEstablishedTime}],[$oids{bgpPeerAdminStatus}]);
+ my $vars = new
SNMP::VarList([$oids{bgpPeerIdentifier}],[$oids{bgpPeerRemoteAs}],[$oids{bgpPeerState}],[$oids{bgpPeerFsmEstablishedTime}],[$oids{bgpPeerAdminStatus}],
[$oids{bgpPeerRemoteAddr}]);
for (my @vals = $sess-getnext($vars);
$vars-[0]-tag =~ /15\.3\.1\.1/ # still in table (Did
you have a cleaner solutions ?)
and
@@ -137,11 +137,11 @@
{
my $textState = $BgpPeerState{$vals[2]};
my $texttime = sectotime($vals[3]);
- $details .= sprintf( Neighbor %-16s AS %-5u status : %-15s
since : %-16s\n,$vals[0], $vals[1], $textState, $texttime);
+ $details .= sprintf( Neighbor %-16s AS %-5u status : %-15s
since : %-16s\n,$vals[5], $vals[1], $textState, $texttime);
# if bgpPeerState != established and bgpPeerAdminStatus == start
if ($vals[2] != 6 and $vals[4] == 2) {
- $summary .= Neighbor relation : $router - $vals[0] (AS
$vals[1]) is in state $textState ;
+ $summary .= Neighbor relation : $router - $vals[5] (AS
$vals[1]) is in state $textState ;
};
}
$details .= \n;
___
mon mailing list
[EMAIL PROTECTED]
http://linux.kernel.org/mailman/listinfo/mon