Here's an odd one. I noticed that one of my nameservers was complaining about some outbound congestion, and that it seemed to correlate incrementing interface discards on my outbound path. Open and shut, right? When I looked closer though, I noticed that the system-wide counter was incrementing but the per-interface counters were not:
# snmpbulkwalk -v2c -cexample localhost 1.3.6.1.2.1.4.31 | grep Discards
IP-MIB::ipSystemStatsInDiscards.ipv4 = Counter32: 0
IP-MIB::ipSystemStatsInDiscards.ipv6 = Counter32: 0
IP-MIB::ipSystemStatsOutDiscards.ipv4 = Counter32: 14856
IP-MIB::ipSystemStatsOutDiscards.ipv6 = Counter32: 0
IP-MIB::ipIfStatsInDiscards.ipv6.1 = Counter32: 0
IP-MIB::ipIfStatsInDiscards.ipv6.2 = Counter32: 0
IP-MIB::ipIfStatsInDiscards.ipv6.3 = Counter32: 0
IP-MIB::ipIfStatsInDiscards.ipv6.4 = Counter32: 0
IP-MIB::ipIfStatsInDiscards.ipv6.5 = Counter32: 0
IP-MIB::ipIfStatsInDiscards.ipv6.6 = Counter32: 0
IP-MIB::ipIfStatsOutDiscards.ipv6.1 = Counter32: 0
IP-MIB::ipIfStatsOutDiscards.ipv6.2 = Counter32: 0
IP-MIB::ipIfStatsOutDiscards.ipv6.3 = Counter32: 0
IP-MIB::ipIfStatsOutDiscards.ipv6.4 = Counter32: 0
IP-MIB::ipIfStatsOutDiscards.ipv6.5 = Counter32: 0
IP-MIB::ipIfStatsOutDiscards.ipv6.6 = Counter32: 0
My understanding of these counters was that the SystemStats
counters reflect system-wide statistics (aggregate), but that doesn't appear to be the case here. A glance at the MIB seems to confirm my memory on the subject:
ipSystemStatsTable OBJECT-TYPE
SYNTAX SEQUENCE OF IpSystemStatsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The table containing system wide, IP version specific
traffic statistics. This table and the ipIfStatsTable
contain similar objects whose difference is in their
granularity. Where this table contains system wide traffic
statistics, the ipIfStatsTable contains the same statistics
but counted on a per-interface basis."
::= { ipTrafficStats 1 }
Has anyone run into this before? Trying to determine whether this should be chalked up to the Broadcom NICs, or if there's something new that I could be learning here. For reference, eth2 and eth3 are bonded, but all three interfaces have their own counters in the table above.
- Chassis: Dell r620
- OS: RHEL6
- Kernel: 2.6.32-573.22.1.el6.x86_64
NIC info:
# dmesg | grep Ethernet
tg3 0000:01:00.0: eth0: attached PHY is 5720C (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
tg3 0000:01:00.1: eth1: attached PHY is 5720C (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
tg3 0000:02:00.0: eth2: attached PHY is 5720C (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
tg3 0000:02:00.1: eth3: attached PHY is 5720C (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
# ethtool -i eth3
driver: tg3
version: 3.137
firmware-version: FFV7.8.53 bc 5720-v1.32
bus-info: 0000:02:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no