From: "Leech, Christopher" <christopher.leech@intel.com> Date: Thu, 28 Feb 2002 13:57:07 -0800 > e1000 has a VLAN filter type on-chip, which complicates things a tiny bit. The filtering is separate from the tagging. Filtering lets the hardware ignore tagged packets for VLANs that it's not a member of. The vlan_group structure isn't well laid out for this, but it would be possible to search for non-NULL values in the vlan_devices array to get the VLAN IDs for filtering. The driver would need to know when new VLAN IDs were added to the group. This is exactly the kind of thing I wanted people to discover and discuss. Thanks for bringing this up. It would be quite simple to hook back into your driver for this purpose, proposed API: /* For netdev->features */ #define NETIF_F_HW_VLAN_FILTER 1024 /* For NETIF_F_VLAN_RX_FILTER devices */ void (*vlan_rx_new_vid)(struct net_device *dev, unsigned short vid); We call dev->vlan_rx_kill_vid() in all cases because it has to deal with interlocking, as described in an earlier email. But if NETIF_F_HW_VLAN_FILTER is set, when new VLAN devices are registered that go through your card, you will get a dev->vlan_rx_new_vid() call. I do not think you would need any more informatin than the VID itself. If this is wrong, tell me now :-) - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html