[mrtg] ifSpeed vs. ifHighSpeed (fwd)

Maxim Konovalov maxim at macomnet.ru
Tue Sep 2 15:37:28 MEST 2003


Hello,

There is a problem with snmp v2 and MaxBytes calculation.  Here is
a typical example:

$ snmpget router public ifSpeed.200
interfaces.ifTable.ifEntry.ifSpeed.200 = Gauge: 512000

$ snmpget router public ifHighSpeed.200
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifHighSpeed.200 = Gauge: 1

cfgmaker uses ifHighSpeed value and therefore calculates MaxBytes
incorrectly.

Also according to

http://www.cisco.com/en/US/tech/tk648/tk362/technologies_q_and_a_item09186a00800b69ac.shtml#QB

cfgmaker has to use 32 bits counters for interfaces that operate at
20 Mbps or less and I believe it has to use ifSpeed for MaxBytes
calculation instead of rounded up ifHighSpeed.

Here is my fix:

--- cfgmaker.orig	Tue Sep  2 16:50:52 2003
+++ cfgmaker	Tue Sep  2 17:02:39 2003
@@ -127,7 +127,12 @@
         for ( my $i=0; $i<=$#ifHighSpeed; $i++ ) {
                 my ($if,$value) = split /:/, $ifHighSpeed[$i], 2;
                 $value = $value * 1000000;  # highSpeed = contador * 10^6
-                if ( !$value ) {
+		#
+		# XXX Use ifSpeed for interfaces that operate at 20 Mbps
+		# or less.  A more correct solution is using ifHighSpeed
+		# for interfaces that have ifHCInOctets only.
+		#
+                if ( $value <= 20000000 ) {
                         ($if, $value) = split /:/, $ifSpeed[$i], 2;
                         #debug('base',"Speed: $if - $value");
                 }
%%%

Hope this is not a FAQ.

-- 
Maxim Konovalov, maxim at macomnet.ru, maxim at FreeBSD.org

--
Unsubscribe mailto:mrtg-request at list.ee.ethz.ch?subject=unsubscribe
Archive     http://www.ee.ethz.ch/~slist/mrtg
FAQ         http://faq.mrtg.org    Homepage     http://www.mrtg.org
WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi



More information about the mrtg mailing list