Index | Thread | Search

From:
Alexander Bluhm <bluhm@openbsd.org>
Subject:
limit nd6 timer storm
To:
tech@openbsd.org
Date:
Fri, 5 Sep 2025 17:29:21 +0200

Download raw body.

Thread
  • Alexander Bluhm:

    limit nd6 timer storm

Hi,

I see a constantly running nd6_timer() taking exclusive net lock.
Problem is that expired cached routes are not deleted.  Regardless
to the question what do do with such routes, restarting the ND6
timer immediately does not make sense.  Limit it to once per second.

ok?

bluhm

Index: netinet6/nd6.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/nd6.c,v
diff -u -p -r1.300 nd6.c
--- netinet6/nd6.c	14 Aug 2025 08:50:25 -0000	1.300
+++ netinet6/nd6.c	5 Sep 2025 14:54:10 -0000
@@ -267,8 +267,8 @@ nd6_timer(void *unused)
 	}
 
 	secs = expire - uptime;
-	if (secs < 0)
-		secs = 0;
+	if (secs < 1)
+		secs = 1;
 	if (!TAILQ_EMPTY(&nd6_list)) {
 		nd6_timer_next = uptime + secs;
 		timeout_add_sec(&nd6_timer_to, secs);