This series adds infrastructure and support for using the filtering support built into recent Linux kernels. The tap device currently provides a small array for exact MAC address matches, plus a hash for inexact multicast addresses. By programing this filter, we can reduce the number of extraneous packets qemu needs to handle. I've restricted the configuration where this can be used to only the case of having two devices on a qemu vlan. In this case, we have a clear consumer/produce model for the backend NIC to request filtering from the TAP source. To handle hotplug, I've added notifiers that allow vlan clients to be notified when someone gets added or removed so they can return to a non-filtered (of self- filtered) mode. This series also includes code for both virtio-net and e1000 to make use of the filtering. The tap devices provides a new rxfilter=off option to disable exporting this new feature to the backends. The primary reason for this is that the current Linux tun driver has a bug that if the exact match array overflows, there's a possiblity of dropping unicast packets. There are currently 8 exact matches, so the guest needs to be trying to filter more than 8 to hit this bug. I've already submitted a patch for 2.6.29 and stable to fix this. Please comment, thanks, Alex --- Alex Williamson (4): qemu:e1000: Add support for qemu_vlan_rxfilter qemu:virtio-net: Add support for qemu_vlan_rxfilter qemu:net: Add TAP support for RX filtering on Linux qemu:net: Add infrastructure for setting an RX filter through the vlan hw/e1000.c | 60 +++++++++++++++++++++++++++++++++ hw/virtio-net.c | 56 ++++++++++++++++++++++++++++++- net.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++---- net.h | 14 ++++++++ qemu-doc.texi | 6 ++- vl.c | 3 +- 6 files changed, 226 insertions(+), 12 deletions(-) -- Alex Williamson -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html