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

Reply via email to