Date: Fri, 11 Aug 2023 07:52:56 GMT From: Kristof Provost <kp@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 580cadd6a5f0 - main - vtnet: allow IFF_ALLMULTI to be set without VIRTIO_NET_F_CTRL_RX Message-ID: <202308110752.37B7qupG075688@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=580cadd6a5f0828691ec0b94798728a1028afa33 commit 580cadd6a5f0828691ec0b94798728a1028afa33 Author: Kristof Provost <kp@FreeBSD.org> AuthorDate: 2023-08-08 07:15:53 +0000 Commit: Kristof Provost <kp@FreeBSD.org> CommitDate: 2023-08-11 07:42:29 +0000 vtnet: allow IFF_ALLMULTI to be set without VIRTIO_NET_F_CTRL_RX If the host doesn't announce VIRTIO_NET_F_CTRL_RX we cannot disable all multicast traffic. Previously we'd refuse to set the IFF_ALLMULTI flag, which is the exact opposite of what is actually happening. This broke things such as igmpproxy. See also: https://redmine.pfsense.org/issues/14301 Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D41356 --- sys/dev/virtio/network/if_vtnet.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/dev/virtio/network/if_vtnet.c b/sys/dev/virtio/network/if_vtnet.c index 359ef0c423bb..82f7c6a47589 100644 --- a/sys/dev/virtio/network/if_vtnet.c +++ b/sys/dev/virtio/network/if_vtnet.c @@ -1299,8 +1299,11 @@ vtnet_ioctl_ifflags(struct vtnet_softc *sc) if (sc->vtnet_flags & VTNET_FLAG_CTRL_RX) vtnet_rx_filter(sc); else { - if ((if_getflags(ifp) ^ sc->vtnet_if_flags) & IFF_ALLMULTI) - return (ENOTSUP); + /* + * We don't support filtering out multicast, so + * ALLMULTI is always set. + */ + if_setflagbits(ifp, IFF_ALLMULTI, 0); if_setflagbits(ifp, IFF_PROMISC, 0); } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202308110752.37B7qupG075688>