From af4bb917dc9842229445683b5ce2f955faa464c2 Mon Sep 17 00:00:00 2001 From: Lukas Sismis Date: Fri, 15 Sep 2023 06:15:23 -0400 Subject: [PATCH] dpdk: reset stats just before the start of packet receive loop While Suricata initializes, the device must be started to e.g. apply rte_flow rules on some devices. But in the meantime, the NIC started receiving packets but accounted those as missed. Stats reset was added to better represent true packet drop. --- src/source-dpdk.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/source-dpdk.c b/src/source-dpdk.c index ddbb2976c961..54503e212271 100644 --- a/src/source-dpdk.c +++ b/src/source-dpdk.c @@ -373,8 +373,10 @@ static TmEcode ReceiveDPDKLoop(ThreadVars *tv, void *data, void *slot) // Indicate that the thread is actually running its application level code (i.e., it can poll // packets) TmThreadsSetFlag(tv, THV_RUNNING); - PacketPoolWait(); + + rte_eth_stats_reset(ptv->port_id); + rte_eth_xstats_reset(ptv->port_id); while (1) { if (unlikely(suricata_ctl_flags != 0)) { SCLogDebug("Stopping Suricata!");