64-bit SNMP counters for FreeBSD && graphing bandwidth usage

Harti Brandt hartmut.brandt at dlr.de
Tue Feb 14 00:39:05 PST 2006


On Tue, 14 Feb 2006, Anders Nordby wrote:

AN>On Tue, Feb 14, 2006 at 09:07:42AM +0100, Harti Brandt wrote:
AN>>>It seems ifHCInOctets and ifHCOutOctets are missing. How come? Do I need
AN>>>to use SNMP v3? Another query tool?
AN>> 10 bits/seconds seems utterly wrong for bge interfaces :-) The HC counters 
AN>> appear only for speeds >= 20Mbit/sec according to the RFC.
AN>
AN>I have two servers running bsnmpd in FreeBSD 6.0-RELEASE here now. Both
AN>have bge gigabit interfaces. 
AN>
AN>1) A HP Proliant DL 380 G4 (FreeBSD/i386), with (forced) 100baseTX
AN>full-duplex link:
AN>
AN># ifconfig bge0
AN>bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
AN>        options=1a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING>
AN>        inet X.X.X.X netmask 0xfffffff0 broadcast 80.91.38.111
AN>        ether 00:14:c2:61:5c:95
AN>        media: Ethernet 100baseTX <full-duplex>
AN>        status: active
AN># snmpwalk -v 2c -c XXXXXX localhost:163
AN>ifMIB.ifMIBObjects.ifXTable.ifXEntry
AN>IF-MIB::ifName.1 = STRING: bge0
AN>IF-MIB::ifName.2 = STRING: bge1
AN>IF-MIB::ifName.3 = STRING: lo0
AN>IF-MIB::ifInMulticastPkts.1 = Counter32: 3430507
AN>IF-MIB::ifInMulticastPkts.2 = Counter32: 0
AN>IF-MIB::ifInMulticastPkts.3 = Counter32: 0
AN>IF-MIB::ifInBroadcastPkts.1 = Counter32: 0
AN>IF-MIB::ifInBroadcastPkts.2 = Counter32: 0
AN>IF-MIB::ifInBroadcastPkts.3 = Counter32: 0
AN>IF-MIB::ifOutMulticastPkts.1 = Counter32: 0
AN>IF-MIB::ifOutMulticastPkts.2 = Counter32: 0
AN>IF-MIB::ifOutMulticastPkts.3 = Counter32: 0
AN>IF-MIB::ifOutBroadcastPkts.1 = Counter32: 0
AN>IF-MIB::ifOutBroadcastPkts.2 = Counter32: 0
AN>IF-MIB::ifOutBroadcastPkts.3 = Counter32: 0
AN>IF-MIB::ifLinkUpDownTrapEnable.1 = INTEGER: enabled(1)
AN>IF-MIB::ifLinkUpDownTrapEnable.2 = INTEGER: enabled(1)
AN>IF-MIB::ifLinkUpDownTrapEnable.3 = INTEGER: disabled(2)
AN>IF-MIB::ifHighSpeed.1 = Gauge32: 10
AN>IF-MIB::ifHighSpeed.2 = Gauge32: 10
AN>IF-MIB::ifHighSpeed.3 = Gauge32: 0
AN>IF-MIB::ifPromiscuousMode.1 = INTEGER: false(2)
AN>IF-MIB::ifPromiscuousMode.2 = INTEGER: false(2)
AN>IF-MIB::ifPromiscuousMode.3 = INTEGER: false(2)
AN>IF-MIB::ifConnectorPresent.1 = INTEGER: true(1)
AN>IF-MIB::ifConnectorPresent.2 = INTEGER: true(1)
AN>IF-MIB::ifConnectorPresent.3 = INTEGER: false(2)
AN>IF-MIB::ifAlias.1 = STRING: 
AN>IF-MIB::ifAlias.2 = STRING: 
AN>IF-MIB::ifAlias.3 = STRING: 
AN>IF-MIB::ifCounterDiscontinuityTime.1 = Timeticks: (0) 0:00:00.00
AN>IF-MIB::ifCounterDiscontinuityTime.2 = Timeticks: (0) 0:00:00.00
AN>IF-MIB::ifCounterDiscontinuityTime.3 = Timeticks: (0) 0:00:00.00
AN>
AN>2) A HP Proliant DL 385 G1 (FreeBSD/amd64), with gigabit link:
AN>
AN># ifconfig bge0
AN>bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
AN>        options=1a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING>
AN>        inet X.X.X.X netmask 0xffffffe0 broadcast 80.91.39.159
AN>        ether 00:13:21:b3:01:f6
AN>        media: Ethernet autoselect (1000baseTX <full-duplex>)
AN>        status: active
AN># snmpwalk -v 2c -c XXXXXX localhost:163
AN>ifMIB.ifMIBObjects.ifXTable.ifXEntry
AN>IF-MIB::ifName.1 = STRING: bge0
AN>IF-MIB::ifName.2 = STRING: bge1
AN>IF-MIB::ifName.3 = STRING: lo0
AN>IF-MIB::ifInMulticastPkts.1 = Counter32: 13303
AN>IF-MIB::ifInMulticastPkts.2 = Counter32: 0
AN>IF-MIB::ifInMulticastPkts.3 = Counter32: 0
AN>IF-MIB::ifInBroadcastPkts.1 = Counter32: 0
AN>IF-MIB::ifInBroadcastPkts.2 = Counter32: 0
AN>IF-MIB::ifInBroadcastPkts.3 = Counter32: 0
AN>IF-MIB::ifOutMulticastPkts.1 = Counter32: 0
AN>IF-MIB::ifOutMulticastPkts.2 = Counter32: 0
AN>IF-MIB::ifOutMulticastPkts.3 = Counter32: 0
AN>IF-MIB::ifOutBroadcastPkts.1 = Counter32: 0
AN>IF-MIB::ifOutBroadcastPkts.2 = Counter32: 0
AN>IF-MIB::ifOutBroadcastPkts.3 = Counter32: 0
AN>IF-MIB::ifLinkUpDownTrapEnable.1 = INTEGER: enabled(1)
AN>IF-MIB::ifLinkUpDownTrapEnable.2 = INTEGER: enabled(1)
AN>IF-MIB::ifLinkUpDownTrapEnable.3 = INTEGER: disabled(2)
AN>IF-MIB::ifHighSpeed.1 = Gauge32: 10
AN>IF-MIB::ifHighSpeed.2 = Gauge32: 10
AN>IF-MIB::ifHighSpeed.3 = Gauge32: 0
AN>IF-MIB::ifPromiscuousMode.1 = INTEGER: false(2)
AN>IF-MIB::ifPromiscuousMode.2 = INTEGER: false(2)
AN>IF-MIB::ifPromiscuousMode.3 = INTEGER: false(2)
AN>IF-MIB::ifConnectorPresent.1 = INTEGER: true(1)
AN>IF-MIB::ifConnectorPresent.2 = INTEGER: true(1)
AN>IF-MIB::ifConnectorPresent.3 = INTEGER: false(2)
AN>IF-MIB::ifAlias.1 = STRING: 
AN>IF-MIB::ifAlias.2 = STRING: 
AN>IF-MIB::ifAlias.3 = STRING: 
AN>IF-MIB::ifCounterDiscontinuityTime.1 = Timeticks: (0) 0:00:00.00
AN>IF-MIB::ifCounterDiscontinuityTime.2 = Timeticks: (0) 0:00:00.00
AN>IF-MIB::ifCounterDiscontinuityTime.3 = Timeticks: (0) 0:00:00.00
AN>
AN>I changed port to 163 cause I am actually using net-snmp snmpd on port
AN>161 still. Anyway, it seems bsnmpd insists these are 10 mbps interfaces?
AN>Why so?

The driver reports a speed of 10Mbits/sec. ifHighSpeed is ifi_baudrate 
divided by 10^6 (and rounded). This is the default set by ether_ifattach() 
if the driver did not set another value. It seems that bge never sets that 
value so you end up with the default. This looks like a bug.

harti


More information about the freebsd-net mailing list