From: Steve Chew (stechew) Date: Tue, 2 Jul 2019 16:13:20 +0000 (-0400) Subject: Merge pull request #1656 in SNORT/snort3 from ~SBAIGAL/snort3:ignore_vlan to master X-Git-Tag: 3.0.0-258~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54bff134dd5d6cd81d5cff48786021a63bb60740;p=thirdparty%2Fsnort3.git Merge pull request #1656 in SNORT/snort3 from ~SBAIGAL/snort3:ignore_vlan to master Squashed commit of the following: commit 59ee334a4e7e69b19bd8a25e8462b2a2005a0534 Author: Steven Baigal (sbaigal) Date: Tue Jun 25 14:04:58 2019 -0400 codec: add support of ignore_vlan flag from daq header updated to skip vlan header process when ignore_vlan flag was set --- diff --git a/src/codecs/link/cd_vlan.cc b/src/codecs/link/cd_vlan.cc index af5a226aa..36af4aa30 100644 --- a/src/codecs/link/cd_vlan.cc +++ b/src/codecs/link/cd_vlan.cc @@ -90,12 +90,16 @@ bool VlanCodec::decode(const RawData& raw, CodecData& codec, DecodeData&) else codec.next_prot_id = (ProtocolId)proto; + codec.lyr_len = sizeof(vlan::VlanTagHdr); + + if (raw.pkth->flags & DAQ_PKT_FLAG_IGNORE_VLAN) + return true; + // Vlan IDs 0 and 4095 are reserved. const uint16_t vid = vh->vid(); if (vid == 0 || vid == 4095) codec_event(codec, DECODE_BAD_VLAN); - codec.lyr_len = sizeof(vlan::VlanTagHdr); codec.proto_bits |= PROTO_BIT__VLAN; return true; } diff --git a/src/protocols/layer.cc b/src/protocols/layer.cc index 5fdc06f6c..d21dbc349 100644 --- a/src/protocols/layer.cc +++ b/src/protocols/layer.cc @@ -144,13 +144,10 @@ const Layer* get_mpls_layer(const Packet* const p) const vlan::VlanTagHdr* get_vlan_layer(const Packet* const p) { - if ( p->proto_bits & PROTO_BIT__VLAN ) - { - assert( p->vlan_idx < p->num_layers ); - const Layer* lyr = p->layers + p->vlan_idx; - return reinterpret_cast(lyr->start); - } - return nullptr; + assert( p->proto_bits & PROTO_BIT__VLAN ); + assert( p->vlan_idx < p->num_layers ); + const Layer* lyr = p->layers + p->vlan_idx; + return reinterpret_cast(lyr->start); } const eth::EtherHdr* get_eth_layer(const Packet* const p)