lkml.org 
[lkml]   [2002]   [Feb]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [BETA-0.92] Third test release of Tigon3 driver
From
   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 :-)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:21    [W:0.037 / U:0.748 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site