]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
stream: add counter for failed pseudo setups
authorVictor Julien <victor@inliniac.net>
Thu, 16 Oct 2014 09:17:06 +0000 (11:17 +0200)
committerVictor Julien <victor@inliniac.net>
Wed, 22 Oct 2014 14:46:06 +0000 (16:46 +0200)
Stream pseudo packets are taken from the packet pool, which can be empty.
In this case a pseudo packet will not be created and processed.

This patch adds a counter "tcp.pseudo_failed" to track this.

src/stream-tcp.c
src/stream-tcp.h

index b6f001c1cf525d963b8b1ad9e5523227e0240581..aac662e0a6ea8b050f060a439686929bcfafcf59 100644 (file)
@@ -4640,6 +4640,9 @@ TmEcode StreamTcpThreadInit(ThreadVars *tv, void *initdata, void **data)
     stt->counter_tcp_pseudo = SCPerfTVRegisterCounter("tcp.pseudo", tv,
                                                         SC_PERF_TYPE_UINT64,
                                                         "NULL");
+    stt->counter_tcp_pseudo_failed = SCPerfTVRegisterCounter("tcp.pseudo_failed", tv,
+                                                        SC_PERF_TYPE_UINT64,
+                                                        "NULL");
     stt->counter_tcp_invalid_checksum = SCPerfTVRegisterCounter("tcp.invalid_checksum", tv,
                                                         SC_PERF_TYPE_UINT64,
                                                         "NULL");
@@ -5489,6 +5492,7 @@ void StreamTcpPseudoPacketCreateStreamEndPacket(ThreadVars *tv, StreamTcpThread
     Packet *np = StreamTcpPseudoSetup(p, GET_PKT_DATA(p), GET_PKT_LEN(p));
     if (np == NULL) {
         SCLogDebug("The packet received from packet allocation is NULL");
+        SCPerfCounterIncr(stt->counter_tcp_pseudo_failed, tv->sc_perf_pca);
         SCReturn;
     }
     PKT_SET_SRC(np, PKT_SRC_STREAM_TCP_STREAM_END_PSEUDO);
index 71c9f1858a9b5d87ef194ab61748b2ff9e3ad851..b8a31855afad574dc92e0b51314d2d34e36099a2 100644 (file)
@@ -85,6 +85,8 @@ typedef struct StreamTcpThread_ {
     uint16_t counter_tcp_ssn_memcap;
     /** pseudo packets processed */
     uint16_t counter_tcp_pseudo;
+    /** pseudo packets failed to setup */
+    uint16_t counter_tcp_pseudo_failed;
     /** packets rejected because their csum is invalid */
     uint16_t counter_tcp_invalid_checksum;
     /** TCP packets with no associated flow */