Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Feb 2021 14:05:29 +0300
From:      "Andrey V. Elsukov" <bu7cher@yandex.ru>
To:        Johannes Lundberg <johalun0@gmail.com>, freebsd-net@freebsd.org
Subject:   BFD failures with bird on FreeBSD (was: LACP BPDU packets priority?)
Message-ID:  <d4d4d3dd-dca0-fa0d-46ec-b9648d81223f@yandex.ru>
In-Reply-To: <84ad7d46-d103-1bf2-29df-2085d4949d30@gmail.com>
References:  <84ad7d46-d103-1bf2-29df-2085d4949d30@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 04.02.2021 23:56, Johannes Lundberg wrote:
> Hi
> 
> We're experiencing unstable lacp lagg and not seeing BPDU packets coming
> to the switch we when expect them to. Can anyone answer what is the
> priority of those packets? Could it be that they are not being sent from
> the FreeBSD host because they are stuck in outgoing queue?
> 
> Please cc me since I'm not subscribed.

Hi,

recently we faced with somehow similar problem, but with BGP and BFD
packets.
In our case BFD packets from neighbor do not reach bird daemon in
expected time window, and this leads to BFD failure. We did some
research and found, that BFD packets were received by the adapter, but
then they seems stalled in the adapter queues for at least 2-3 seconds,
then all packets passed to the bird daemon in several microseconds, but
failure has already happened.

First of we configured port mirroring on the switch to capture all
packets on the another host. In the mirrored traffic we can see that all
packets were send and received in correct time windows.

We use Mellanox network adapters, they have ability to attach hardware
timestamps to mbufs, so we can know the time when packets were received.

I made the patch to libpcap and bpf(4) to be able use these timestamps
in tcpdump.
  https://people.freebsd.org/~ae/bpf_adapter.diff

Then we have started two instances of tcpdump, one with host's
timestamps (-j host), second with adapter's timestamps (-j adapter).
When BFD failure happened, we saw equal ordering in both packet
captures. But timestamps are different - packets that were arrived too
late have correct receiving timestamp, so if they would not stalled in
the queues, then BFD failer would not happened.

I know that this story will not help you, but it might be useful for the
mail archives :)

-- 
WBR, Andrey V. Elsukov



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d4d4d3dd-dca0-fa0d-46ec-b9648d81223f>