tcpdump mailing list archives
Re: vlan tagged packets and libpcap breakage
From: ebiederm () xmission com (Eric W. Biederman)
Date: Thu, 06 Dec 2012 17:41:01 -0800
Ani Sinha <ani () aristanetworks com> writes:
The patch is whitespace damaged. And one of your test is using || instead of &&OK, using alpine now :-)The test should be && not ||.aargh! I am retarded! Fixed. Hopefully 3rd time is a charm :-)
Acked-by: "Eric W. Biederman" <ebiederm () xmission com> The code looks ok here. I don't know what format the tcpdump folks want patches in. The typically format is an email with [PATCH] in the subject. You indentation now comes through clear. It is a bit odd that you are indenting with spaces instead of tabs in a file that is indented with tab. Again libpcap isn't my code so I don't care but someone else might. Eric
ani
pcap-linux.c | 50 +++++++++++++++++++++++++++++++-------------------
1 files changed, 31 insertions(+), 19 deletions(-)
diff --git a/pcap-linux.c b/pcap-linux.c
index a42c3ac..b2c1a08 100644
--- a/pcap-linux.c
+++ b/pcap-linux.c
@@ -133,6 +133,7 @@ static const char rcsid[] _U_ =
#include <sys/utsname.h>
#include <sys/mman.h>
#include <linux/if.h>
+#include <linux/if_packet.h>
#include <netinet/in.h>
#include <linux/if_ether.h>
#include <net/if_arp.h>
@@ -1543,7 +1544,13 @@ pcap_read_packet(pcap_t *handle, pcap_handler callback, u_char *userdata)
continue;
aux = (struct tpacket_auxdata *)CMSG_DATA(cmsg);
- 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
continue;
len = packet_len > iov.iov_len ? iov.iov_len : packet_len;
@@ -3936,7 +3926,12 @@ pcap_read_linux_mmap(pcap_t *handle, int max_packets, pcap_handler callback,
}
#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_VLAN_VALID)) &&
+#else
+ h.h2->tp_vlan_tci &&
+#endif
handle->md.vlan_offset != -1 &&
tp_snaplen >= (unsigned int) handle->md.vlan_offset) {
struct vlan_tag *tag;
_______________________________________________ tcpdump-workers mailing list tcpdump-workers () lists tcpdump org https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers
Current thread:
- Re: vlan tagged packets and libpcap breakage, (continued)
- Message not available
- Re: vlan tagged packets and libpcap breakage Daniel Borkmann (Nov 18)
- Re: vlan tagged packets and libpcap breakage Eric W. Biederman (Nov 18)
- Message not available
- Re: vlan tagged packets and libpcap breakage Eric W. Biederman (Nov 18)
- Re: vlan tagged packets and libpcap breakage Ani Sinha (Dec 06)
- Re: vlan tagged packets and libpcap breakage Eric W. Biederman (Dec 06)
- Re: vlan tagged packets and libpcap breakage Ani Sinha (Dec 06)
- Re: vlan tagged packets and libpcap breakage Ani Sinha (Dec 06)
- Re: vlan tagged packets and libpcap breakage Eric W. Biederman (Dec 06)
- Re: vlan tagged packets and libpcap breakage Ani Sinha (Dec 06)
- Re: vlan tagged packets and libpcap breakage Ani Sinha (Dec 06)
- Re: vlan tagged packets and libpcap breakage Eric W. Biederman (Dec 06)
- Re: vlan tagged packets and libpcap breakage Michael Richardson (Dec 06)
- Re: vlan tagged packets and libpcap breakage Ani Sinha (Dec 10)
- Re: vlan tagged packets and libpcap breakage Ani Sinha (Dec 11)
- Re: vlan tagged packets and libpcap breakage Eric Dumazet (Dec 13)
- Re: vlan tagged packets and libpcap breakage Ani Sinha (Dec 11)
- Re: vlan tagged packets and libpcap breakage Ani Sinha (Dec 11)
- Re: vlan tagged packets and libpcap breakage Stephen Hemminger (Dec 13)
- Message not available
- Re: vlan tagged packets and libpcap breakage Ani Sinha (Dec 12)
- Re: vlan tagged packets and libpcap breakage Ani Sinha (Dec 12)
- Re: vlan tagged packets and libpcap breakage Daniel Borkmann (Dec 13)
