]> The Tcpdump Group git mirrors - libpcap/blobdiff - gencode.c
When checking for VLAN tags, check for QinQ tags as well.
[libpcap] / gencode.c
index a6acb4053ab133a354023ed6d1cc70b0b318632e..7281d40f74c3a14a9c218b142204fd27fbabc28b 100644 (file)
--- a/gencode.c
+++ b/gencode.c
@@ -8108,9 +8108,13 @@ gen_vlan(vlan_num)
        case DLT_EN10MB:
        case DLT_NETANALYZER:
        case DLT_NETANALYZER_TRANSPARENT:
-               /* check for VLAN */
+               /* check for VLAN, including QinQ */
                b0 = gen_cmp(OR_LINK, off_linktype, BPF_H,
                    (bpf_int32)ETHERTYPE_8021Q);
+               b1 = gen_cmp(OR_LINK, off_linktype, BPF_H,
+                   (bpf_int32)ETHERTYPE_8021QINQ);
+               gen_or(b0,b1);
+               b0 = b1;
 
                /* If a specific VLAN is requested, check VLAN id */
                if (vlan_num >= 0) {