Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jan 2018 15:28:15 +0700
From:      Eugene Grosbein <eugen@grosbein.net>
To:        Zaphod Beeblebrox <zbeeble@gmail.com>, FreeBSD Net <freebsd-net@freebsd.org>
Subject:   Re: FreeBSD11 bge and bce interfaces showing packet loss with older Cisco.
Message-ID:  <5A5C661F.8030205@grosbein.net>
In-Reply-To: <CACpH0Mfq3m-WP815ueS5njm9pCnT3tKu3=UsUzhF1MweQ7sRog@mail.gmail.com>
References:  <CACpH0Mfq3m-WP815ueS5njm9pCnT3tKu3=UsUzhF1MweQ7sRog@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
15.01.2018 12:55, Zaphod Beeblebrox wrote:

> I've been trying to track this problem down for awhile now.  I have two
> different router servers with two different chipset on board NICs.  One
> server has BGE and the other server has BCE.  Both are running a full
> 650k-odd route BGP table with quagga and they're joined internally with
> OSPF (also quagga).
> 
> Anyways, I'm seeing, under load (in the netstat -in output):
> 
> bge1   1500 <Link#2>      00:19:b9:f9:ad:13 592048810 2127231     0
> 576341766     0     0
> 
> ... indicating 2127231 error packets out of 592048810 packets.  Somewhere
> around 0.3% in total ... but this rises to about 1% as traffic increases.
> 
> My first problem is that I don't see any number of packets in any of the
> netstat -s outputs.  How do I track this down to something more specific
> than the netstat -i output?

This probably means that NIC chip registers packets dropped before they even
reach host and all that driver known are error counters.

bge(4) driver increases input error counters whenever NIC reports
one of the following counters increase: nicNoMoreRxBDs or ifInErrors

        cnt = READ_STAT(sc, stats, nicNoMoreRxBDs.bge_addr_lo);
        if_inc_counter(ifp, IFCOUNTER_IERRORS, cnt - sc->bge_rx_nobds);
        sc->bge_rx_nobds = cnt;
        cnt = READ_STAT(sc, stats, ifInErrors.bge_addr_lo);
        if_inc_counter(ifp, IFCOUNTER_IERRORS, cnt - sc->bge_rx_inerrs);

The driver does not export them separately but nicNoMoreRxBDs probably means
that host is unable to cope with incoming packet flow that leads to overflow
of receiving buffers in the chip. And ifInErrors probably means bad packets
(CRC errors?).

What is packets-per-second/bytes-per-second maximum rates of incoming traffic does your bge(4) have?

Do you have same problem with bce(4)? It exports detailed error counters with "sysctl dev.bce".
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5A5C661F.8030205>