misc/157015: bsnmpd does not create 64bit counters for interfaces without link

Kurt Lidl kurt.lidl at cello.com
Fri May 13 20:00:19 UTC 2011


>Number:         157015
>Category:       misc
>Synopsis:       bsnmpd does not create 64bit counters for interfaces without link
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri May 13 20:00:19 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Kurt Lidl
>Release:        8.2p1
>Organization:
Cello Software LLC
>Environment:
FreeBSD extgw.fairview-park.com 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Fri Feb 18 02:24:46 UTC 2011     root at almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

>Description:
On a machine with 4 ethernet interfaces (two on-board, two on a single
dual-port PCI card), I noticed the following.

Interfaces fxp0, fxp1 are on the PCI card.
Interfaces fxp2, fxp3 are on the motherboard.

Interfaces fxp0, fxp2, fxp3 are plugged into ethernet switches.
Interface fxp1 is not plugged into anything, but configured "UP".

Using snmpwalk, I see the following:

# snmpwalk -v2c -c XXX gatewayname 1.3.6.1.2.1.31.1.1.1

IF-MIB::ifName.1 = STRING: fxp0
IF-MIB::ifName.2 = STRING: fxp1
IF-MIB::ifName.3 = STRING: fxp2
IF-MIB::ifName.4 = STRING: fxp3
IF-MIB::ifName.5 = STRING: lo0
IF-MIB::ifInMulticastPkts.1 = Counter32: 2294
IF-MIB::ifInMulticastPkts.2 = Counter32: 0
IF-MIB::ifInMulticastPkts.3 = Counter32: 1486
IF-MIB::ifInMulticastPkts.4 = Counter32: 43
IF-MIB::ifInMulticastPkts.5 = Counter32: 0
IF-MIB::ifInBroadcastPkts.1 = Counter32: 0
IF-MIB::ifInBroadcastPkts.2 = Counter32: 0
IF-MIB::ifInBroadcastPkts.3 = Counter32: 0
IF-MIB::ifInBroadcastPkts.4 = Counter32: 0
IF-MIB::ifInBroadcastPkts.5 = Counter32: 0
IF-MIB::ifOutMulticastPkts.1 = Counter32: 0
IF-MIB::ifOutMulticastPkts.2 = Counter32: 0
IF-MIB::ifOutMulticastPkts.3 = Counter32: 9
IF-MIB::ifOutMulticastPkts.4 = Counter32: 0
IF-MIB::ifOutMulticastPkts.5 = Counter32: 0
IF-MIB::ifOutBroadcastPkts.1 = Counter32: 0
IF-MIB::ifOutBroadcastPkts.2 = Counter32: 0
IF-MIB::ifOutBroadcastPkts.3 = Counter32: 0
IF-MIB::ifOutBroadcastPkts.4 = Counter32: 0
IF-MIB::ifOutBroadcastPkts.5 = Counter32: 0
IF-MIB::ifHCInOctets.1 = Counter64: 766678
IF-MIB::ifHCInOctets.3 = Counter64: 22034061
IF-MIB::ifHCInOctets.4 = Counter64: 57896044
IF-MIB::ifHCInUcastPkts.1 = Counter64: 18446744073709551613
IF-MIB::ifHCInUcastPkts.3 = Counter64: 62323
IF-MIB::ifHCInUcastPkts.4 = Counter64: 65222
IF-MIB::ifHCInMulticastPkts.1 = Counter64: 2294
IF-MIB::ifHCInMulticastPkts.3 = Counter64: 1486
IF-MIB::ifHCInMulticastPkts.4 = Counter64: 43
IF-MIB::ifHCInBroadcastPkts.1 = Counter64: 0
IF-MIB::ifHCInBroadcastPkts.3 = Counter64: 0
IF-MIB::ifHCInBroadcastPkts.4 = Counter64: 0
IF-MIB::ifHCOutOctets.1 = Counter64: 0
IF-MIB::ifHCOutOctets.3 = Counter64: 58266640
IF-MIB::ifHCOutOctets.4 = Counter64: 20901937
IF-MIB::ifHCOutUcastPkts.1 = Counter64: 0
IF-MIB::ifHCOutUcastPkts.3 = Counter64: 71308
IF-MIB::ifHCOutUcastPkts.4 = Counter64: 53540
IF-MIB::ifHCOutMulticastPkts.1 = Counter64: 0
IF-MIB::ifHCOutMulticastPkts.3 = Counter64: 9
IF-MIB::ifHCOutMulticastPkts.4 = Counter64: 0
IF-MIB::ifHCOutBroadcastPkts.1 = Counter64: 0
IF-MIB::ifHCOutBroadcastPkts.3 = Counter64: 0
IF-MIB::ifHCOutBroadcastPkts.4 = Counter64: 0
IF-MIB::ifLinkUpDownTrapEnable.1 = INTEGER: enabled(1)
IF-MIB::ifLinkUpDownTrapEnable.2 = INTEGER: enabled(1)
IF-MIB::ifLinkUpDownTrapEnable.3 = INTEGER: enabled(1)
IF-MIB::ifLinkUpDownTrapEnable.4 = INTEGER: enabled(1)
IF-MIB::ifLinkUpDownTrapEnable.5 = INTEGER: disabled(2)
IF-MIB::ifHighSpeed.1 = Gauge32: 100
IF-MIB::ifHighSpeed.2 = Gauge32: 0
IF-MIB::ifHighSpeed.3 = Gauge32: 100
IF-MIB::ifHighSpeed.4 = Gauge32: 100
IF-MIB::ifHighSpeed.5 = Gauge32: 0
IF-MIB::ifPromiscuousMode.1 = INTEGER: false(2)
IF-MIB::ifPromiscuousMode.2 = INTEGER: false(2)
IF-MIB::ifPromiscuousMode.3 = INTEGER: false(2)
IF-MIB::ifPromiscuousMode.4 = INTEGER: false(2)
IF-MIB::ifPromiscuousMode.5 = INTEGER: false(2)
IF-MIB::ifConnectorPresent.1 = INTEGER: true(1)
IF-MIB::ifConnectorPresent.2 = INTEGER: true(1)
IF-MIB::ifConnectorPresent.3 = INTEGER: true(1)
IF-MIB::ifConnectorPresent.4 = INTEGER: true(1)
IF-MIB::ifConnectorPresent.5 = INTEGER: false(2)
IF-MIB::ifAlias.1 = STRING:
IF-MIB::ifAlias.2 = STRING:
IF-MIB::ifAlias.3 = STRING:
IF-MIB::ifAlias.4 = STRING:
IF-MIB::ifAlias.5 = STRING:
IF-MIB::ifCounterDiscontinuityTime.1 = Timeticks: (0) 0:00:00.00
IF-MIB::ifCounterDiscontinuityTime.2 = Timeticks: (0) 0:00:00.00
IF-MIB::ifCounterDiscontinuityTime.3 = Timeticks: (0) 0:00:00.00
IF-MIB::ifCounterDiscontinuityTime.4 = Timeticks: (0) 0:00:00.00
IF-MIB::ifCounterDiscontinuityTime.5 = Timeticks: (0) 0:00:00.00

As you can see, the .2 interface (== fxp1) doesn't have 64bit
counters available.  (And it looks like the .1 interface (== fxp0)
doesn't have a valid ifHCInUcastPkts field either.

The value 18446744073709551613 is suspiciously close to 16*1024^5,
in fact, just 3 short of it.  Given that the machine was just rebooted
a few minutes before this snmpwalk was done, it's physically impossible
to have received 16 quadrillion packets in that time frame.



>How-To-Repeat:
I suspect that if you boot a machine without link on some interface,
start bnsmpd and try to do a snmpwalk using v2c, that you'll run into
this same problem on any interface without link.

>Fix:
I suspect a bug in bsnmpd, but if one plugs in an ethernet cable between
the interface and the switch, so the interface has link, the 64bit counter
springs into existance...

# snmpwalk -v2c -c XXX gatewayname 1.3.6.1.2.1.31.1.1.1.6
IF-MIB::ifHCInOctets.1 = Counter64: 1153385
IF-MIB::ifHCInOctets.2 = Counter64: 0
IF-MIB::ifHCInOctets.3 = Counter64: 45318695
IF-MIB::ifHCInOctets.4 = Counter64: 68312828


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list