diff --git a/src/source-af-packet.c b/src/source-af-packet.c index 035da32065..7e981ba242 100644 --- a/src/source-af-packet.c +++ b/src/source-af-packet.c @@ -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);