From 14466a803dc1782bea978f3f428465ad08e64d5d Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Wed, 27 May 2015 17:17:50 +0200 Subject: [PATCH] decode: create util function for basic counter updates --- src/decode.c | 10 ++++++++++ src/decode.h | 2 ++ src/source-af-packet.c | 6 +----- src/source-erf-dag.c | 6 +----- src/source-erf-file.c | 6 +----- src/source-ipfw.c | 5 +---- src/source-mpipe.c | 8 +------- src/source-napatech.c | 6 +----- src/source-netmap.c | 5 +---- src/source-nflog.c | 5 +---- src/source-nfq.c | 5 +---- src/source-pcap-file.c | 6 +----- src/source-pcap.c | 6 +----- src/source-pfring.c | 6 +----- 14 files changed, 24 insertions(+), 58 deletions(-) diff --git a/src/decode.c b/src/decode.c index 682e0b3c9a..b807038841 100644 --- a/src/decode.c +++ b/src/decode.c @@ -420,6 +420,16 @@ void DecodeRegisterPerfCounters(DecodeThreadVars *dtv, ThreadVars *tv) return; } +void DecodeUpdatePacketCounters(ThreadVars *tv, + const DecodeThreadVars *dtv, const Packet *p) +{ + StatsIncr(tv, dtv->counter_pkts); + //StatsIncr(tv, dtv->counter_pkts_per_sec); + StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); + StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); + StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); +} + /** * \brief Debug print function for printing addresses * diff --git a/src/decode.h b/src/decode.h index 1c1bba5f54..3f77cd06da 100644 --- a/src/decode.h +++ b/src/decode.h @@ -862,6 +862,8 @@ const char *PktSrcToString(enum PktSrcEnum pkt_src); DecodeThreadVars *DecodeThreadVarsAlloc(ThreadVars *); void DecodeThreadVarsFree(ThreadVars *, DecodeThreadVars *); +void DecodeUpdatePacketCounters(ThreadVars *tv, + const DecodeThreadVars *dtv, const Packet *p); /* decoder functions */ int DecodeEthernet(ThreadVars *, DecodeThreadVars *, Packet *, uint8_t *, uint16_t, PacketQueue *); diff --git a/src/source-af-packet.c b/src/source-af-packet.c index 654ce00c8b..3f1f44e19d 100644 --- a/src/source-af-packet.c +++ b/src/source-af-packet.c @@ -1852,11 +1852,7 @@ TmEcode DecodeAFP(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Packet return TM_ECODE_OK; /* update counters */ - StatsIncr(tv, dtv->counter_pkts); - //StatsIncr(tv, dtv->counter_pkts_per_sec); - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); /* If suri has set vlan during reading, we increase vlan counter */ if (p->vlan_idx) { diff --git a/src/source-erf-dag.c b/src/source-erf-dag.c index 30baadcd1d..2614dd05b3 100644 --- a/src/source-erf-dag.c +++ b/src/source-erf-dag.c @@ -621,11 +621,7 @@ DecodeErfDag(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, return TM_ECODE_OK; /* update counters */ - StatsIncr(tv, dtv->counter_pkts); - //StatsIncr(tv, dtv->counter_pkts_per_sec); - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); /* call the decoder */ switch(p->datalink) { diff --git a/src/source-erf-file.c b/src/source-erf-file.c index fd6973f57f..938621c40a 100644 --- a/src/source-erf-file.c +++ b/src/source-erf-file.c @@ -284,11 +284,7 @@ DecodeErfFile(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, PacketQueu return TM_ECODE_OK; /* Update counters. */ - StatsIncr(tv, dtv->counter_pkts); - //StatsIncr(tv, dtv->counter_pkts_per_sec); - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); DecodeEthernet(tv, dtv, p, GET_PKT_DATA(p), GET_PKT_LEN(p), pq); diff --git a/src/source-ipfw.c b/src/source-ipfw.c index 1b4c1c7e99..4c68958bed 100644 --- a/src/source-ipfw.c +++ b/src/source-ipfw.c @@ -452,10 +452,7 @@ TmEcode DecodeIPFW(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Packe return TM_ECODE_OK; /* update counters */ - StatsIncr(tv, dtv->counter_pkts); - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); /* Process IP packets */ if (IPV4_GET_RAW_VER(ip4h) == 4) { diff --git a/src/source-mpipe.c b/src/source-mpipe.c index 54a567bc75..9fdebf65a0 100644 --- a/src/source-mpipe.c +++ b/src/source-mpipe.c @@ -1039,13 +1039,7 @@ TmEcode DecodeMpipe(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, return TM_ECODE_OK; /* update counters */ - StatsIncr(tv, dtv->counter_pkts); -// StatsIncr(tv, dtv->counter_pkts_per_sec); - - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); /* call the decoder */ DecodeEthernet(tv, dtv, p, GET_PKT_DATA(p), GET_PKT_LEN(p), pq); diff --git a/src/source-napatech.c b/src/source-napatech.c index e964d4e8be..27432314e8 100644 --- a/src/source-napatech.c +++ b/src/source-napatech.c @@ -357,11 +357,7 @@ TmEcode NapatechDecode(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, return TM_ECODE_OK; /* update counters */ - StatsIncr(tv, dtv->counter_pkts); -// StatsIncr(tv, dtv->counter_pkts_per_sec); - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); switch (p->datalink) { case LINKTYPE_ETHERNET: diff --git a/src/source-netmap.c b/src/source-netmap.c index 89fd69fea0..570ecfc4da 100644 --- a/src/source-netmap.c +++ b/src/source-netmap.c @@ -930,10 +930,7 @@ static TmEcode DecodeNetmap(ThreadVars *tv, Packet *p, void *data, PacketQueue * SCReturnInt(TM_ECODE_OK); /* update counters */ - StatsIncr(tv, dtv->counter_pkts); - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); DecodeEthernet(tv, dtv, p, GET_PKT_DATA(p), GET_PKT_LEN(p), pq); diff --git a/src/source-nflog.c b/src/source-nflog.c index 865edd5282..7722244ffe 100644 --- a/src/source-nflog.c +++ b/src/source-nflog.c @@ -499,10 +499,7 @@ TmEcode DecodeNFLOG(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Pack IPV6Hdr *ip6h = (IPV6Hdr *)GET_PKT_DATA(p); DecodeThreadVars *dtv = (DecodeThreadVars *)data; - StatsIncr(tv, dtv->counter_pkts); - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); if (IPV4_GET_RAW_VER(ip4h) == 4) { SCLogDebug("IPv4 packet"); diff --git a/src/source-nfq.c b/src/source-nfq.c index 34a747cb32..b8b38bc3e6 100644 --- a/src/source-nfq.c +++ b/src/source-nfq.c @@ -1223,10 +1223,7 @@ TmEcode DecodeNFQ(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Packet if (p->flags & PKT_PSEUDO_STREAM_END) return TM_ECODE_OK; - StatsIncr(tv, dtv->counter_pkts); - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); if (IPV4_GET_RAW_VER(ip4h) == 4) { SCLogDebug("IPv4 packet"); diff --git a/src/source-pcap-file.c b/src/source-pcap-file.c index 7a857fdff4..5d60b98713 100644 --- a/src/source-pcap-file.c +++ b/src/source-pcap-file.c @@ -401,11 +401,7 @@ TmEcode DecodePcapFile(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, P return TM_ECODE_OK; /* update counters */ - StatsIncr(tv, dtv->counter_pkts); - //StatsIncr(tv, dtv->counter_pkts_per_sec); - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); double curr_ts = p->ts.tv_sec + p->ts.tv_usec / 1000.0; if (curr_ts < prev_signaled_ts || (curr_ts - prev_signaled_ts) > 60.0) { diff --git a/src/source-pcap.c b/src/source-pcap.c index cb38e3f7dc..0656f95890 100644 --- a/src/source-pcap.c +++ b/src/source-pcap.c @@ -704,11 +704,7 @@ TmEcode DecodePcap(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Packe return TM_ECODE_OK; /* update counters */ - StatsIncr(tv, dtv->counter_pkts); - //StatsIncr(tv, dtv->counter_pkts_per_sec); - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); /* call the decoder */ switch(p->datalink) { diff --git a/src/source-pfring.c b/src/source-pfring.c index 88e128622e..84fe0df615 100644 --- a/src/source-pfring.c +++ b/src/source-pfring.c @@ -602,11 +602,7 @@ TmEcode DecodePfring(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Pac return TM_ECODE_OK; /* update counters */ - StatsIncr(tv, dtv->counter_pkts); - //StatsIncr(tv, dtv->counter_pkts_per_sec); - StatsAddUI64(tv, dtv->counter_bytes, GET_PKT_LEN(p)); - StatsAddUI64(tv, dtv->counter_avg_pkt_size, GET_PKT_LEN(p)); - StatsSetUI64(tv, dtv->counter_max_pkt_size, GET_PKT_LEN(p)); + DecodeUpdatePacketCounters(tv, dtv, p); /* If suri has set vlan during reading, we increase vlan counter */ if (p->vlan_idx) {