Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Apr 2024 08:59:33 +0800
From:      Zhenlei Huang <zlei@FreeBSD.org>
To:        Mark Johnston <markj@freebsd.org>
Cc:        "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org>
Subject:   Re: git: 63613e3ba1e1 - main - wg: Use ENETUNREACH when transmitting to a non-existent peer
Message-ID:  <CEEE738E-FAD0-47D1-9F81-CB53EC8A959F@FreeBSD.org>
In-Reply-To: <202404011723.431HNlNf040122@gitrepo.freebsd.org>
References:  <202404011723.431HNlNf040122@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_FD3BFEC7-1909-421F-B544-1A90D3B1EA1B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

I can confirm this fixes =
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D266712 =
<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D266712>; .

> On Apr 2, 2024, at 1:23 AM, Mark Johnston <markj@freebsd.org> wrote:
>=20
> The branch main has been updated by markj:
>=20
> URL: =
https://cgit.FreeBSD.org/src/commit/?id=3D63613e3ba1e188e9fece43e1613bd697=
f04b345e
>=20
> commit 63613e3ba1e188e9fece43e1613bd697f04b345e
> Author:     Mark Johnston <markj@FreeBSD.org>
> AuthorDate: 2024-04-01 17:20:55 +0000
> Commit:     Mark Johnston <markj@FreeBSD.org>
> CommitDate: 2024-04-01 17:23:32 +0000
>=20
>    wg: Use ENETUNREACH when transmitting to a non-existent peer
>=20
>    The old errno value used is specifically for Capsicum and shouldn't =
be
>    co-opted in this way.  It has special handling in the generic =
syscall
>    layer (see syscallret()).  OpenBSD returns ENETUNREACH in this =
case;
>    let's do the same thing.
>=20
>    Reviewed by:    kevans, imp
>    MFC after:      2 weeks
>    Sponsored by:   Klara, Inc.
>    Differential Revision:  https://reviews.freebsd.org/D44582
> ---
> sys/dev/wg/if_wg.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>=20
> diff --git a/sys/dev/wg/if_wg.c b/sys/dev/wg/if_wg.c
> index 42c426ac1819..bb61917ee4fc 100644
> --- a/sys/dev/wg/if_wg.c
> +++ b/sys/dev/wg/if_wg.c
> @@ -251,9 +251,6 @@ struct wg_softc {
>=20
> #define MAX_LOOPS	8
> #define MTAG_WGLOOP	0x77676c70 /* wglp */
> -#ifndef ENOKEY
> -#define	ENOKEY	ENOTCAPABLE
> -#endif
>=20
> #define	GROUPTASK_DRAIN(gtask)			\
> 	gtaskqueue_drain((gtask)->gt_taskqueue, &(gtask)->gt_task)
> @@ -2115,7 +2112,7 @@ wg_xmit(if_t ifp, struct mbuf *m, sa_family_t =
af, uint32_t mtu)
> 	BPF_MTAP2_AF(ifp, m, pkt->p_af);
>=20
> 	if (__predict_false(peer =3D=3D NULL)) {
> -		rc =3D ENOKEY;
> +		rc =3D ENETUNREACH;
> 		goto err_xmit;
> 	}
>=20




--Apple-Mail=_FD3BFEC7-1909-421F-B544-1A90D3B1EA1B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">I =
can confirm this fixes&nbsp;<a =
href=3D"https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D266712" =
class=3D"">https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D266712</a>&=
nbsp;.<br class=3D""><div><br class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D"">On Apr 2, 2024, at 1:23 AM, Mark Johnston =
&lt;<a href=3D"mailto:markj@freebsd.org" =
class=3D"">markj@freebsd.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div class=3D"">The =
branch main has been updated by markj:<br class=3D""><br class=3D"">URL: =
<a =
href=3D"https://cgit.FreeBSD.org/src/commit/?id=3D63613e3ba1e188e9fece43e1=
613bd697f04b345e" =
class=3D"">https://cgit.FreeBSD.org/src/commit/?id=3D63613e3ba1e188e9fece4=
3e1613bd697f04b345e</a><br class=3D""><br class=3D"">commit =
63613e3ba1e188e9fece43e1613bd697f04b345e<br class=3D"">Author: =
&nbsp;&nbsp;&nbsp;&nbsp;Mark Johnston &lt;<a =
href=3D"mailto:markj@FreeBSD.org" class=3D"">markj@FreeBSD.org</a>&gt;<br =
class=3D"">AuthorDate: 2024-04-01 17:20:55 +0000<br class=3D"">Commit: =
&nbsp;&nbsp;&nbsp;&nbsp;Mark Johnston &lt;<a =
href=3D"mailto:markj@FreeBSD.org" class=3D"">markj@FreeBSD.org</a>&gt;<br =
class=3D"">CommitDate: 2024-04-01 17:23:32 +0000<br class=3D""><br =
class=3D""> &nbsp;&nbsp;&nbsp;wg: Use ENETUNREACH when transmitting to a =
non-existent peer<br class=3D""><br class=3D""> &nbsp;&nbsp;&nbsp;The =
old errno value used is specifically for Capsicum and shouldn't be<br =
class=3D""> &nbsp;&nbsp;&nbsp;co-opted in this way. &nbsp;It has special =
handling in the generic syscall<br class=3D""> &nbsp;&nbsp;&nbsp;layer =
(see syscallret()). &nbsp;OpenBSD returns ENETUNREACH in this case;<br =
class=3D""> &nbsp;&nbsp;&nbsp;let's do the same thing.<br class=3D""><br =
class=3D""> &nbsp;&nbsp;&nbsp;Reviewed by: &nbsp;&nbsp;&nbsp;kevans, =
imp<br class=3D""> &nbsp;&nbsp;&nbsp;MFC after: =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2 weeks<br class=3D""> =
&nbsp;&nbsp;&nbsp;Sponsored by: &nbsp;&nbsp;Klara, Inc.<br class=3D""> =
&nbsp;&nbsp;&nbsp;Differential Revision: &nbsp;<a =
href=3D"https://reviews.freebsd.org/D44582" =
class=3D"">https://reviews.freebsd.org/D44582</a><br class=3D"">---<br =
class=3D""> sys/dev/wg/if_wg.c | 5 +----<br class=3D""> 1 file changed, =
1 insertion(+), 4 deletions(-)<br class=3D""><br class=3D"">diff --git =
a/sys/dev/wg/if_wg.c b/sys/dev/wg/if_wg.c<br class=3D"">index =
42c426ac1819..bb61917ee4fc 100644<br class=3D"">--- =
a/sys/dev/wg/if_wg.c<br class=3D"">+++ b/sys/dev/wg/if_wg.c<br =
class=3D"">@@ -251,9 +251,6 @@ struct wg_softc {<br class=3D""><br =
class=3D""> #define MAX_LOOPS<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>8<br class=3D""> #define =
MTAG_WGLOOP<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>0x77676c70 /* wglp */<br class=3D"">-#ifndef ENOKEY<br =
class=3D"">-#define<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>ENOKEY<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>ENOTCAPABLE<br class=3D"">-#endif<br class=3D""><br class=3D""> =
#define<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>GROUPTASK_DRAIN(gtask)<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>\<br class=3D""> <span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>gtaskqueue_drain((gtask)-&gt;gt_taskqueue, =
&amp;(gtask)-&gt;gt_task)<br class=3D"">@@ -2115,7 +2112,7 @@ =
wg_xmit(if_t ifp, struct mbuf *m, sa_family_t af, uint32_t mtu)<br =
class=3D""> <span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>BPF_MTAP2_AF(ifp, m, pkt-&gt;p_af);<br class=3D""><br class=3D""> =
<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>if (__predict_false(peer =3D=3D NULL)) {<br class=3D"">-<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>rc =3D =
ENOKEY;<br class=3D"">+<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>rc =3D ENETUNREACH;<br class=3D""> =
<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>goto err_xmit;<br class=3D""> <span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>}<br class=3D""><br =
class=3D""></div></div></blockquote></div><br class=3D""><div class=3D"">
<div><br class=3D""></div>

</div>
<br class=3D""></body></html>=

--Apple-Mail=_FD3BFEC7-1909-421F-B544-1A90D3B1EA1B--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CEEE738E-FAD0-47D1-9F81-CB53EC8A959F>