On Wed, Jun 12, 2019 at 10:11:57AM +0800, Tiwei Bie wrote: > On Tue, Jun 11, 2019 at 10:10:14AM -0400, Michael S. Tsirkin wrote: > > On Tue, Jun 11, 2019 at 02:51:37PM +0800, Tiwei Bie wrote: > > > The VIRTIO_NET_F_CTRL_VLAN feature requires the support of > > > vhost-user backend. But it will be advertised to guest driver > > > as long as it's enabled by users in QEMU, while it's not > > > supported by vhost-user backend. This patch fixes this issue. > > > > Fixes by making guest refuse to send vlan tags? > > Fixes by not advertising this feature bit to guest driver > when it's not supported, and guest won't expect the device > to do vlan filtering then. > > > I agree it seems cleaner, but which guests does this actually help? > > > > > Fixes: 72018d1e1917 ("vhost-user: ignore qemu-only features") > > > Cc: qemu-sta...@nongnu.org > > > > > > Signed-off-by: Tiwei Bie <tiwei....@intel.com> > > > > A change like that will break migration compatibility, will it not? > > Yeah, that's a problem... > > > Maybe we need to tie it to a machine version somehow... > > > > > > > --- > > > It's not clear in the spec that, whether vlan filtering is > > > also best-effort: > > > https://github.com/oasis-tcs/virtio-spec/blob/37057052e7/content.tex#L3372 > > > > So what breaks if we declare it best effort for now? > > And does it really help if we report that vlan filtering > > is not supported to guests? > > If it's best effort, then it won't violate the spec to > advertise this feature when it's not supported in backends. >
OK so it's up to you. Want to propose a spec patch? We already say mac filter is best effort ... > > > > > > > > > hw/net/vhost_net.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c > > > index a6b719035c..1444fc9230 100644 > > > --- a/hw/net/vhost_net.c > > > +++ b/hw/net/vhost_net.c > > > @@ -75,6 +75,8 @@ static const int user_feature_bits[] = { > > > VIRTIO_NET_F_MTU, > > > VIRTIO_F_IOMMU_PLATFORM, > > > > > > + VIRTIO_NET_F_CTRL_VLAN, > > > + > > > /* This bit implies RARP isn't sent by QEMU out of band */ > > > VIRTIO_NET_F_GUEST_ANNOUNCE, > > > > > > -- > > > 2.17.1