Re: Getting 802.1Q VLAN ID from tagged packets with hardwareacceleration on

From: Stephen Hemminger
Date: Mon Mar 23 2009 - 00:09:54 EST


On Sun, 22 Mar 2009 06:26:20 -0700
Garry Dolley <gdolley@xxxxxxxxxxxxxxx> wrote:

> Dear linux-net,
>
> I'm running the stock kernel of Ubuntu Hardy:
> 2.6.27-7-generic #1 SMP Tue Nov 4 19:33:06 UTC 2008 x86_64 GNU/Linux
>
> My eth0 is:
> driver: e1000e
> version: 0.3.3.3-k6
> firmware-version: 2.1-12
> bus-info: 0000:04:00.0
>
> If have several VLANs configured on eth0, such as:
>
> eth0.105
> eth0.106
> eth0.107
>
> When I run tcpdump on each, I can see the traffic for the respective VLAN.
> When I tcpdump eth0, I can see the traffic for *all* the VLANs.
>
> So far so good.
>
> Except, when I look at the traffic for all the VLANs, the VLAN ID is not
> present. Many hours of googling, looking at the e1000e driver code and VLAN
> code, and picking other ppl's brains, has led me to believe that VLAN
> hardware acceleration is stripping the tag from the frame, so I can't actually
> see the VLAN ID.
>
> So my question is, is it possible to turn hwaccel off for this card without
> hacking and recompiling the driver? Or can I get the VLAN ID using some other
> method that I don't know about?

no, without recompiling driver.

> Also, some of code and commit messages I've read seem to indicate even if
> tcpdump could show me the VLAN ID, I wouldn't necessarily get any of this
> traffic unless eth0 is in promisc mode.

There are patches to libpcap, that teach it how to handle this.
http://www.mail-archive.com/tcpdump-workers@xxxxxxxxxxxxxxxxx/msg03866.html

> My main goal here is to be able to bridge eth0 to another device and ensure
> that that device can see all the tagged traffic that comes in eth0. eth0 is
> plugged into a Cisco switch and is a trunk port.
>
> Any suggestions?

Find (or patch) a version of tcpdump that knows about PACKET_AUXDATA
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html