[PATCH] babel: Keep separate auth PC counters for unicast and multicast

Toke Høiland-Jørgensen toke at toke.dk
Tue Jan 24 20:05:41 CET 2023


Ondrej Zajicek <santiago at crfreenet.org> writes:

> On Tue, Jan 24, 2023 at 12:12:19AM +0100, Toke Høiland-Jørgensen via Bird-users wrote:
>> The issue has been described in draft-ietf-babel-mac-relaxed, which is
>> currently pending RFC publication. That also describes two mitigation
>> mechanisms: Keeping separate PC counters for unicast and multicast, and
>> using a reorder window for PC values. This patch implements the former as
>> that is the simplest, and resolves the particular issue seen on WiFi.
>
> Hi
>
> Is that sufficient? In general, one should not assume anything about link
> frame ordering. Even two unicast (or two multicast) packets can be
> reordered due to e.g. frame retransmission.

You're right, in principle. As noted in the paragraph you quoted above
there are two possible mechanisms (unicast/multicast split and a reorder
window). I initially implemented both, but some testers reported issues
with the reorder window code. So I split it into two patches, with this
one being the simplest.

> I think that simple sequence numbers work in two cases - if there is
> sufficient interval between packets, or there is only one packet
> flying (e.g. LSREQ-LSUPD ping-pong in OSPF). That is approach used in
> OSPFv2 and OSPFv3, but that is not true in Babel.

Well, in practice it seems at least the Linux stack is pretty good at
not reordering packets across a single hop, which means that this patch
seems to fix the original issue that sparked this whole discussion. So I
figured I'd send this one first to get the immediate issue on WiFi
resolved, and follow up with the window tracking stuff later, once I've
figured out why it breaks stuff...

-Toke



More information about the Bird-users mailing list