diff --git a/src/decode-erspan.c b/src/decode-erspan.c index 9325f6b81f..ff6390b523 100644 --- a/src/decode-erspan.c +++ b/src/decode-erspan.c @@ -45,6 +45,8 @@ int DecodeERSPAN(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p, uint8_t *pkt, uint16_t len, PacketQueue *pq) { + StatsIncr(tv, dtv->counter_erspan); + if (len < sizeof(ErspanHdr)) { ENGINE_SET_EVENT(p,ERSPAN_HEADER_TOO_SMALL); return TM_ECODE_FAILED; diff --git a/src/decode.c b/src/decode.c index 49896d8efc..682e0b3c9a 100644 --- a/src/decode.c +++ b/src/decode.c @@ -400,6 +400,7 @@ void DecodeRegisterPerfCounters(DecodeThreadVars *dtv, ThreadVars *tv) dtv->counter_mpls = StatsRegisterCounter("decoder.mpls", tv); dtv->counter_avg_pkt_size = StatsRegisterAvgCounter("decoder.avg_pkt_size", tv); dtv->counter_max_pkt_size = StatsRegisterMaxCounter("decoder.max_pkt_size", tv); + dtv->counter_erspan = StatsRegisterMaxCounter("decoder.erspan", tv); dtv->counter_defrag_ipv4_fragments = StatsRegisterCounter("defrag.ipv4.fragments", tv); diff --git a/src/decode.h b/src/decode.h index 1c02a3ede9..a07b24bd8b 100644 --- a/src/decode.h +++ b/src/decode.h @@ -610,6 +610,7 @@ typedef struct DecodeThreadVars_ uint16_t counter_ipv6inipv6; uint16_t counter_avg_pkt_size; uint16_t counter_max_pkt_size; + uint16_t counter_erspan; /** frag stats - defrag runs in the context of the decoder. */ uint16_t counter_defrag_ipv4_fragments;