void-packages/srcpkgs/bird/patches/cfac0076fb7365fe91360fa351f311f141a7a303.patch
2024-12-22 01:08:16 +01:00

29 lines
1.1 KiB
Diff

From cfac0076fb7365fe91360fa351f311f141a7a303 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Bl=C3=A4se?= <fabian@blaese.de>
Date: Tue, 10 Dec 2024 02:14:06 +0100
Subject: [PATCH] Babel: fix seqno wrapping on seqno request
The Babel seqno wraps around when reaching its maximum value (UINT16_MAX).
When comparing seqnos, this has to be taken into account. Therefore,
plain number comparisons do not work.
---
proto/babel/babel.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/proto/babel/babel.c b/proto/babel/babel.c
index fe5c0599a..b5cbb63f8 100644
--- a/proto/babel/babel.c
+++ b/proto/babel/babel.c
@@ -1015,7 +1015,7 @@ babel_send_update_(struct babel_iface *ifa, btime changed, struct fib *rtable)
/* Our own seqno might have changed, in which case we update the routes we
originate. */
- if ((e->router_id == p->router_id) && (e->seqno < p->update_seqno))
+ if ((e->router_id == p->router_id) && gt_mod64k(p->update_seqno, e->seqno))
{
e->seqno = p->update_seqno;
e->updated = current_time();
--
GitLab