summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcsjp <csjp@FreeBSD.org>2007-02-22 14:50:31 +0000
committercsjp <csjp@FreeBSD.org>2007-02-22 14:50:31 +0000
commit6169e2ea404ce2bf18bfc5be2b827a052b87ab17 (patch)
tree243e998a84c5ffddca2d2aeb78b7a273232b34cf
parentd7423f55fb05abcc2b60387b8b114f9d96b5e8bf (diff)
downloadFreeBSD-src-6169e2ea404ce2bf18bfc5be2b827a052b87ab17.zip
FreeBSD-src-6169e2ea404ce2bf18bfc5be2b827a052b87ab17.tar.gz
Use ETHER_BPF_MTAP() instead of BPF_MTAP() here. It's possible
incoming packets have had their 802.1Q tags processed by the hardware, resulting in them being stripped from the packets, and placed on the mbuf. This fixes the processing of 802.1Q tags when hardware offload of 802.1Q tags is enabled.
-rw-r--r--sys/net/if_ethersubr.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c
index 4ac6bab..b9d165b 100644
--- a/sys/net/if_ethersubr.c
+++ b/sys/net/if_ethersubr.c
@@ -558,9 +558,10 @@ ether_input(struct ifnet *ifp, struct mbuf *m)
#endif
/*
- * Give bpf a chance at the packet.
+ * Give bpf a chance at the packet. Process any 802.1Q tags
+ * that may have been attached to the mbuf.
*/
- BPF_MTAP(ifp, m);
+ ETHER_BPF_MTAP(ifp, m);
/* If the CRC is still on the packet, trim it off. */
if (m->m_flags & M_HASFCS) {
OpenPOWER on IntegriCloud