From: ebiederm@xmission•com (Eric W. Biederman)
To: Ani Sinha <ani@aristanetworks•com>
Cc: Michael Richardson <mcr@sandelman•ca>,
tcpdump-workers@lists•tcpdump.org, netdev@vger•kernel.org,
Francesco Ruggeri <fruggeri@aristanetworks•com>
Subject: Re: [tcpdump-workers] vlan tagged packets and libpcap breakage
Date: Thu, 06 Dec 2012 14:19:02 -0800 [thread overview]
Message-ID: <87sj7iesdl.fsf@xmission.com> (raw)
In-Reply-To: <CAOxq_8OC6zUm93mCHD5daxDmuYmmbUdgy0DnjfQdBKky_2t4nQ@mail.gmail.com> (Ani Sinha's message of "Thu, 6 Dec 2012 13:22:08 -0800")
Ani Sinha <ani@aristanetworks•com> writes:
> On Sat, Nov 17, 2012 at 3:33 PM, Eric W. Biederman
> <ebiederm@xmission•com> wrote:
>> the vlan header in packets as we receive them.
>>
>> The code is correct except for the case of packets in vlan 0. Currently
>> the packet reconstruction is ambiguous. The most recent kernels have
>> a TP_STATUS_VLAN_VALID flag that can be checked to see if the packet was
>> in vlan 0 or if there was no vlan at all. libpcap probably should be
>> taught how to handle TP_STATUS_VLAN_VALID so that it can get the vlan 0
>> handling correct.
>>
>
> May be this?
Two things.
- TP_STATUS_VLAN_VALID lives in the tp_status field not the tp_vlan_tci field.
- To work on older kernels with binaries compiled with newer headers you
first want to test for tp_vlan_tci == 0 and then look at the status field for
TP_STATUS_VALID.
Which means the tests need to look something like:
- if (aux->tp_vlan_tci == 0)
+#if defined(TP_STATUS_VLAN_VALID)
+ if ((aux->tp_vlan_tci == 0) && !(aux->tp_status & TP_STATUS_VLAN_VALID))
+#else
+ if (aux->tp_vlan_tci == 0) /* this is ambigious but without the
+
TP_STATUS_VLAN_VALID flag, there is
+ nothing that we can do */
+#endif
#ifdef HAVE_TPACKET2
- if (handle->md.tp_version == TPACKET_V2 && h.h2->tp_vlan_tci &&
+ if (handle->md.tp_version == TPACKET_V2 &&
+#if defined(TP_STATUS_VLAN_VALID)
+ (h.h2->tp_vlan_tci || (h.h2->tp_status & TP_STATUS_VALID)) &&
+#else
+ h.h2->tp_vlan_tci &&
+#endif
Eric
next prev parent reply other threads:[~2012-12-06 22:19 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAOxq_8Nd8VP3MaNBfUt9v82nmGDpxZz5_5QMdsruET1tjwuQPw@mail.gmail.com>
[not found] ` <3246.1351717319@obiwan.sandelman.ca>
2012-10-31 21:50 ` [tcpdump-workers] vlan tagged packets and libpcap breakage Ani Sinha
2012-10-31 22:20 ` Guy Harris
2012-10-31 22:35 ` Ani Sinha
2012-11-01 0:50 ` [tcpdump-workers] " Guy Harris
2012-11-01 1:22 ` Ani Sinha
2012-12-06 21:20 ` Ani Sinha
2012-11-02 16:13 ` Bill Fenner
2012-11-13 22:41 ` Ani Sinha
2012-11-13 22:42 ` [tcpdump-workers] " Ani Sinha
2012-11-14 18:58 ` Michael Richardson
2012-10-31 22:42 ` [tcpdump-workers] " Michael Richardson
2012-12-12 21:53 ` Ani Sinha
2012-12-12 22:16 ` Ani Sinha
2012-12-13 8:35 ` [tcpdump-workers] " Daniel Borkmann
2012-12-13 17:34 ` Ani Sinha
2012-12-13 21:49 ` Daniel Borkmann
2012-12-13 22:07 ` Ani Sinha
2012-12-17 9:50 ` David Laight
2012-12-17 10:35 ` Guy Harris
2012-12-17 11:08 ` Daniel Borkmann
2012-12-17 19:49 ` [tcpdump-workers] " Ani Sinha
2012-11-16 6:51 ` Eric W. Biederman
2012-11-17 22:14 ` Michael Richardson
2012-11-17 23:16 ` Daniel Borkmann
2012-11-17 23:37 ` Eric W. Biederman
2012-11-17 23:33 ` Eric W. Biederman
2012-12-06 21:22 ` Ani Sinha
2012-12-06 22:19 ` Eric W. Biederman [this message]
2012-12-06 22:40 ` Ani Sinha
2012-12-07 0:55 ` Ani Sinha
2012-12-07 1:03 ` [tcpdump-workers] " Eric W. Biederman
2012-12-07 1:28 ` Ani Sinha
2012-12-07 1:31 ` Ani Sinha
2012-12-07 1:41 ` Eric W. Biederman
2012-12-07 1:59 ` Michael Richardson
2012-12-11 0:11 ` [tcpdump-workers] " Ani Sinha
2012-12-11 22:36 ` Ani Sinha
2012-12-11 23:04 ` Eric Dumazet
2012-12-12 0:46 ` Ani Sinha
2012-12-12 0:50 ` [tcpdump-workers] " Ani Sinha
2012-12-11 23:12 ` Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87sj7iesdl.fsf@xmission.com \
--to=ebiederm@xmission$(echo .)com \
--cc=ani@aristanetworks$(echo .)com \
--cc=fruggeri@aristanetworks$(echo .)com \
--cc=mcr@sandelman$(echo .)ca \
--cc=netdev@vger$(echo .)kernel.org \
--cc=tcpdump-workers@lists$(echo .)tcpdump.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox