[PATCH] babel: Initialise source seqno from incoming message

Ondrej Zajicek santiago at crfreenet.org
Tue Jan 31 16:21:05 CET 2023


On Tue, Jan 31, 2023 at 11:55:50AM +0100, Toke Høiland-Jørgensen via Bird-users wrote:
> When creating a new babel_source object we initialise the seqno to 0. The
> caller will update the source object with the right metric and seqno value,
> for both newly created and old source objects. However if we initialise the
> source object seqno to 0 that may actually turn out to be a valid (higher)
> seqno than the one in the routing table, because of seqno wrapping. In this
> case the source metric will not be set properly, which breaks feasibility
> tracking for subsequent updates.
> 
> To fix this, add a new initial_seqno argument to babel_get_source() which
> is used when allocating a new object, and set that to the seqno value of
> the update we're sending.

Thanks, merged:

https://gitlab.nic.cz/labs/bird/-/commit/dc4c5f51f83f97100b207136ecfde8ff94e597e6

The find/get function pair pattern is often used in BIRD, it has some
advantages in keeping invariants, but it is cumbersome when nontrivial
initialization of new objects is used. Sometimes it leads to branching in
caller and doing additional initialization there, in such cases it make
sense to switch to find/add function pair. (just a general remark)


btw, the section 3.7.3 says:

"Before sending an update (prefix, plen, router-id, seqno, metric) with
finite metric (i.e., not a route retraction)" and "Note that the
garbage-collection timer is not reset when a retraction is sent."

But the whole section 'Update feasibility distance for redistributed routes'
is done in all cases?


Also, did you review BIRD Babel code whether we could switch RFC
references from RFC 6126 to RFC 8966? I vaguely remember that there
were such a patch.

-- 
Elen sila lumenn' omentielvo

Ondrej 'Santiago' Zajicek (email: santiago at crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."



More information about the Bird-users mailing list