]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
af-packet: dump counters when timeout occurs
authorEric Leblond <eric@regit.org>
Thu, 19 Apr 2018 17:13:20 +0000 (19:13 +0200)
committerVictor Julien <victor@inliniac.net>
Thu, 3 May 2018 11:28:52 +0000 (13:28 +0200)
When traffic is becoming null (mainly seen in tests) we reach the
situation where there is timeouts in the poll on the socket and
only that. Existing code is then just looping on the poll and
the result is that the packet iface counters are not updated.

This patch calls the dump counter function to be sure to get
the counter right faster (and not only right at exit).

src/source-af-packet.c

index 874118f8907d0072806ba7cd5945bec866a30636..d6c7c0aea5f187c4af7a0cb95728722bd2f59683 100644 (file)
@@ -1582,6 +1582,12 @@ TmEcode ReceiveAFPLoop(ThreadVars *tv, void *data, void *slot)
                     break;
             }
         } else if (unlikely(r == 0)) {
+            /* Trigger one dump of stats every second */
+            current_time = time(NULL);
+            if (current_time != last_dump) {
+                AFPDumpCounters(ptv);
+                last_dump = current_time;
+            }
             /* poll timed out, lets see if we need to inject a fake packet  */
             TmThreadsCaptureInjectPacket(tv, ptv->slot, NULL);