]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #2330 in SNORT/snort3 from ~MIALTIZE/snort3:daq_stats to master
authorMichael Altizer (mialtize) <mialtize@cisco.com>
Tue, 14 Jul 2020 18:42:24 +0000 (18:42 +0000)
committerMichael Altizer (mialtize) <mialtize@cisco.com>
Tue, 14 Jul 2020 18:42:24 +0000 (18:42 +0000)
Squashed commit of the following:

commit 223dac7b6444af6d362da37fe55b5de73f256677
Author: Michael Altizer <mialtize@cisco.com>
Date:   Tue Jul 14 11:04:41 2020 -0400

    daq: Fix calculation of outstanding packets stat to properly use the delta

src/packet_io/sfdaq_module.cc

index 6c74e8597bf9fde791abd0c201802862bdb3db64..119640ac8a26e0d9f6788cbe07a5ee038d887e13 100644 (file)
@@ -233,40 +233,28 @@ static DAQ_Stats_t operator-(const DAQ_Stats_t& left, const DAQ_Stats_t& right)
 
 void SFDAQModule::prep_counts()
 {
-    static THREAD_LOCAL DAQ_Stats_t sfdaq_stats;
-    static THREAD_LOCAL bool did_init = false;
-
-    if ( !did_init )
-    {
-        memset(&sfdaq_stats, 0, sizeof(DAQ_Stats_t));
-        did_init = true;
-    }
+    static THREAD_LOCAL DAQ_Stats_t prev_daq_stats;
 
     if ( SFDAQ::get_local_instance() == nullptr )
         return;
 
-    DAQ_Stats_t new_sfdaq_stats = *SFDAQ::get_stats();
+    DAQ_Stats_t new_daq_stats = *SFDAQ::get_stats();
 
     // must subtract explicitly; can't zero; daq stats are cumulative ...
-    DAQ_Stats_t sfdaq_stats_delta = new_sfdaq_stats - sfdaq_stats;
-
-    uint64_t pkts_out = new_sfdaq_stats.hw_packets_received -
-                        new_sfdaq_stats.packets_filtered -
-                        new_sfdaq_stats.packets_received;
+    DAQ_Stats_t daq_stats_delta = new_daq_stats - prev_daq_stats;
 
     daq_stats.pcaps = Trough::get_file_count();
-    daq_stats.received = sfdaq_stats_delta.hw_packets_received;
-    daq_stats.analyzed = sfdaq_stats_delta.packets_received;
-    daq_stats.dropped = sfdaq_stats_delta.hw_packets_dropped;
-    daq_stats.filtered =  sfdaq_stats_delta.packets_filtered;
-    daq_stats.outstanding =  pkts_out;
-    daq_stats.injected =  sfdaq_stats_delta.packets_injected;
+    daq_stats.received = daq_stats_delta.hw_packets_received;
+    daq_stats.analyzed = daq_stats_delta.packets_received;
+    daq_stats.dropped = daq_stats_delta.hw_packets_dropped;
+    daq_stats.filtered = daq_stats_delta.packets_filtered;
+    daq_stats.outstanding = daq_stats_delta.hw_packets_received -
+        daq_stats_delta.packets_filtered - daq_stats_delta.packets_received;
+    daq_stats.injected =  daq_stats_delta.packets_injected;
 
     for ( unsigned i = 0; i < MAX_DAQ_VERDICT; i++ )
-        daq_stats.verdicts[i] = sfdaq_stats_delta.verdicts[i];
+        daq_stats.verdicts[i] = daq_stats_delta.verdicts[i];
 
-    sfdaq_stats = new_sfdaq_stats;
-    for ( unsigned i = 0; i < MAX_DAQ_VERDICT; i++ )
-        sfdaq_stats.verdicts[i] = new_sfdaq_stats.verdicts[i];
+    prev_daq_stats = new_daq_stats;
 }