]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
af-packet: get VLAN info for packets in TPACKET_V3 mode
authorAlexander Gozman <a.gozman@securitycode.ru>
Mon, 20 Feb 2017 13:43:10 +0000 (16:43 +0300)
committerVictor Julien <victor@inliniac.net>
Tue, 21 Feb 2017 08:57:09 +0000 (09:57 +0100)
src/source-af-packet.c

index 035da32065da12ed1a865d6c7bcecdf085f6393b..7e981ba24285bf465d90103940a6f1aeee170d2f 100644 (file)
@@ -980,6 +980,13 @@ static inline int AFPParsePacketV3(AFPThreadVars *ptv, struct tpacket_block_desc
     p->livedev = ptv->livedev;
     p->datalink = ptv->datalink;
 
+    if ((!(ptv->flags & AFP_VLAN_DISABLED)) &&
+            (ppd->tp_status & TP_STATUS_VLAN_VALID || ppd->hv1.tp_vlan_tci)) {
+        p->vlan_id[0] = ppd->hv1.tp_vlan_tci & 0x0fff;
+        p->vlan_idx = 1;
+        p->vlanh[0] = NULL;
+    }
+
     if (ptv->flags & AFP_ZERO_COPY) {
         if (PacketSetData(p, (unsigned char*)ppd + ppd->tp_mac, ppd->tp_snaplen) == -1) {
             TmqhOutputPacketpool(ptv->tv, p);