[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_
From: |
Jamie Lokier |
Subject: |
Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter |
Date: |
Fri, 13 Feb 2009 20:38:19 +0000 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
Paul Brook wrote:
> > > A simple "Something changed, please try your filter again" callback
> > > automatically covers all these cases.
> >
> > It doesn't, if tap has no memory of how many clients require a filter.
>
> I'm talking about a callback for devices requesting an inbound
> filter. Devices implementing outgoing (device->vlan) filters just do
> as they're told.
So am I.
> > If tap just answers "YES and installs the kernel filter" or "NO and
> > doesn't install the kernel filter" and doesn't remember how many
> > clients need a filter, then:
> >...
> > In other words, tap needs to distinguish three states:
> >
> > "1 filter requested and installed in the kernel"
> > ">1 filter requested, none installed in the kernel"
> > "0 filters requested, none installed in the kernel"
>
> Absolutely not. This is the reason we have separate the "request an incoming
> filter" API from the "provide an outgoing filter" callback. It allows the
> vlan code to arbitrate in the middle.
I'm guessing that "vlan code to arbitrate in the middle" is exactly
what I've suggested.
Maybe the description was messed up. Substitute something else for
"tap" in the above: "The _vlan arbitration code which talks to the tap
device_ needs to distinguish three states...".
> A vlan is a bus network, not a set of point-point connections.
Yes, this is what I've assumed.
The callback you suggest for devices requesting an inbound filter will
infinite-loop when there's two such devices on the same vlan bus,
because each time the callback is called, that device will re-issue
its filter request which triggers the callback on the other similar
device. Back and forth.
To avoid the infinite loop, the vlan code in the middle (if that's
where you want it, and I agree) has to distinguish between no inbound
filters requested by attached devices, and multiple incompatible
inbound filters requested by attached devices.
-- Jamie
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, (continued)
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, Paul Brook, 2009/02/12
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, Alex Williamson, 2009/02/12
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, Paul Brook, 2009/02/12
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, Alex Williamson, 2009/02/12
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, Jamie Lokier, 2009/02/12
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, Paul Brook, 2009/02/13
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, Jamie Lokier, 2009/02/13
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, Paul Brook, 2009/02/13
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, Jamie Lokier, 2009/02/13
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, Paul Brook, 2009/02/13
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter,
Jamie Lokier <=
- Re: [Qemu-devel] [PATCH 3/4] qemu:virtio-net: Add support for qemu_vlan_rxfilter, Paul Brook, 2009/02/15
[Qemu-devel] [PATCH 4/4] qemu:e1000: Add support for qemu_vlan_rxfilter, Alex Williamson, 2009/02/10
[Qemu-devel] Re: [PATCH 0/4] qemu: TAP filtering support, Mark McLoughlin, 2009/02/11