On Wed, Jul 17, 2019 at 08:30:29PM +0800, Jason Wang wrote:
> 
> On 2019/7/17 下午7:00, Michael S. Tsirkin wrote:
> > 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 ...
> 
> 
> This probably need more thought. Consider in the future, we want to have
> filters that can steering packet based on its mac address to a specific
> queue. Then we can add e.g macvlan offloading support. Saying "best effort"
> might be wrong in that cases.
> 
> 
> Thanks
> 


We can always add a feature bit. Spec should reflect the way
implementations behave now.

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

Reply via email to