Index | Thread | Search

From:
Stefan Sperling <stsp@stsp.name>
Subject:
Re: limit nd6 timer storm
To:
Alexander Bluhm <bluhm@openbsd.org>
Cc:
tech@openbsd.org
Date:
Tue, 9 Sep 2025 10:45:34 +0200

Download raw body.

Thread
  • Alexander Bluhm:

    limit nd6 timer storm

    • Stefan Sperling:

      limit nd6 timer storm

On Fri, Sep 05, 2025 at 05:29:21PM +0200, Alexander Bluhm wrote:
> 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?

ok stsp@

> 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);
> 
>