From nobody Tue Jul 16 20:04:27 2024
X-Original-To: freebsd-net@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4WNqm071fWz5RsC9
	for <freebsd-net@mlmmj.nyi.freebsd.org>; Tue, 16 Jul 2024 20:04:32 +0000 (UTC)
	(envelope-from markjdb@gmail.com)
Received: from mail-yb1-xb29.google.com (mail-yb1-xb29.google.com [IPv6:2607:f8b0:4864:20::b29])
	(using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (2048 bits) client-digest SHA256)
	(Client CN "smtp.gmail.com", Issuer "WR4" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4WNqm02FMCz46gG
	for <freebsd-net@freebsd.org>; Tue, 16 Jul 2024 20:04:32 +0000 (UTC)
	(envelope-from markjdb@gmail.com)
Authentication-Results: mx1.freebsd.org;
	dkim=pass header.d=gmail.com header.s=20230601 header.b="K2/p3Wjh";
	dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=freebsd.org (policy=none);
	spf=pass (mx1.freebsd.org: domain of markjdb@gmail.com designates 2607:f8b0:4864:20::b29 as permitted sender) smtp.mailfrom=markjdb@gmail.com
Received: by mail-yb1-xb29.google.com with SMTP id 3f1490d57ef6-e03a8955ae3so5811829276.1
        for <freebsd-net@freebsd.org>; Tue, 16 Jul 2024 13:04:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721160271; x=1721765071; darn=freebsd.org;
        h=content-disposition:mime-version:message-id:subject:to:from:date
         :sender:from:to:cc:subject:date:message-id:reply-to;
        bh=JUl4l1+TU33DlWcIIRhD5Y+SfrSWKqDE3scviGFgA3o=;
        b=K2/p3WjhDnOg/xsqTLwIv4c1pBziEcr9bwF+EUI9Tmzk4KEAN/8qSHE3/bcjcQikAR
         F0IcgqOtcOVPsVHTAcB03H27NXetoGm1WVme1xY9MRFK7S6tg4fUtxDQnWT6nk2S7aRY
         wuNg8lpIatg8UvpUuo3kM7eZPucc1Mpr5usGdQrMTw0tjIMpuoJk2ZT7/ERapvwuRKUN
         OoILyFB3s/oa53bAJ6ZgbPjVgDtmogTvXaww1QuuzvR8MbNTICzMhaOWMGGKinZqU3kh
         /LAxCQYL2mUtunv8OE9bs3pAqb6Mbw+y+8yCYTCPCU/M2JaSO70OQxMnBojIz1TWoeCw
         xmRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721160271; x=1721765071;
        h=content-disposition:mime-version:message-id:subject:to:from:date
         :sender:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=JUl4l1+TU33DlWcIIRhD5Y+SfrSWKqDE3scviGFgA3o=;
        b=lN+6sgg+b1u6431ZQvi5YY1iHfKqDIXGHJfMrcbzRWDgYf2c2x5lOozQVAu9Amkr+N
         4KoSb8KngdY6oMdqpCmlH+9LCCp7rioHdQsxQQmdL/MCf3JSR8YRGVp+GKGfbIlILkE+
         h+8chqIvL3qms0N/gtwShNDK8RRnZXZ/6SLSB9cYMCndOnRezoH4wDR2KhJMSvP5kZHS
         fpIPca9xt1kk3s7ldl0u1nYbiLdveOq9gvhQF5dBSuprIHDHKqxS8BOXVJjFMYOvE9cn
         Tn73Dh5ukFRIsdDNfnXjPMUkyHt8Pb/2ymcM7JctcrBmTB8inNmzqtJjwAFTT0l2T6Sk
         knhw==
X-Gm-Message-State: AOJu0YyQp5tcknPtlqHQTl4xX1XZKwqE70cvRQs8ihdlzUeTPqNcGclA
	sakhSVEH9pEft9xd0aILYJXXOuzR0k0AUbsHlclAnVAnD7On2PkQiE5Tz30i
X-Google-Smtp-Source: AGHT+IHPGByrlpGpoXfg4zML8kjGPQBGeysc/v72DcqddTVDLCl2hRRY4/ecgpxxeUPgVFXBtWFcmw==
X-Received: by 2002:a05:6902:2b01:b0:dfe:5a00:df5c with SMTP id 3f1490d57ef6-e05d56bcd0amr4932413276.18.1721160270801;
        Tue, 16 Jul 2024 13:04:30 -0700 (PDT)
Received: from nuc (192-0-220-237.cpe.teksavvy.com. [192.0.220.237])
        by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6b76199d5a2sm33858646d6.60.2024.07.16.13.04.30
        for <freebsd-net@freebsd.org>
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Tue, 16 Jul 2024 13:04:30 -0700 (PDT)
Date: Tue, 16 Jul 2024 16:04:27 -0400
From: Mark Johnston <markj@freebsd.org>
To: freebsd-net@freebsd.org
Subject: flushing default router list upon inet6 route flush
Message-ID: <ZpbSS6dltUcqNPeD@nuc>
List-Id: Networking and TCP/IP with FreeBSD <freebsd-net.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/freebsd-net
List-Help: <mailto:freebsd-net+help@freebsd.org>
List-Post: <mailto:freebsd-net@freebsd.org>
List-Subscribe: <mailto:freebsd-net+subscribe@freebsd.org>
List-Unsubscribe: <mailto:freebsd-net+unsubscribe@freebsd.org>
Sender: owner-freebsd-net@FreeBSD.org
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Spamd-Bar: --
X-Spamd-Result: default: False [-2.60 / 15.00];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	NEURAL_HAM_MEDIUM(-1.00)[-1.000];
	NEURAL_HAM_SHORT(-1.00)[-0.997];
	MID_RHS_NOT_FQDN(0.50)[];
	FORGED_SENDER(0.30)[markj@freebsd.org,markjdb@gmail.com];
	R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c];
	R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601];
	MIME_GOOD(-0.10)[text/plain];
	DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), DKIM not aligned (relaxed),none];
	RCVD_TLS_LAST(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FREEMAIL_ENVFROM(0.00)[gmail.com];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_ONE(0.00)[1];
	DKIM_TRACE(0.00)[gmail.com:+];
	ARC_NA(0.00)[];
	ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US];
	DWL_DNSWL_NONE(0.00)[gmail.com:dkim];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_NEQ_ENVFROM(0.00)[markj@freebsd.org,markjdb@gmail.com];
	FROM_HAS_DN(0.00)[];
	MISSING_XM_UA(0.00)[];
	TO_DN_NONE(0.00)[];
	MLMMJ_DEST(0.00)[freebsd-net@freebsd.org];
	PREVIOUSLY_DELIVERED(0.00)[freebsd-net@freebsd.org];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TO_DOM_EQ_FROM_DOM(0.00)[];
	RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::b29:from]
X-Rspamd-Queue-Id: 4WNqm02FMCz46gG

Hello,

When IPv6 SLAAC is configured for an interface, the kernel will update
its default router list upon receipt of a router advertisement.  In so
doing it may install a default route; in the kernel this happens in
defrouter_addreq().

If one uses "route flush" or "service routing restart" to reset the
routing tables, the default router list is not purged, so a subsequent
RA from the original default router does not update the list, and so
does not re-create the default route, even if one re-runs rtsol(8).

This appears to be a bug, but I'm not sure where best to fix it.  Should
"service routing restart" invoke "ndp -R" to flush the default router
list?  Should route(8) handle this as part of a flush command?  Or
something else?