Add atomic counter for iface drop.

pull/214/head
Eric Leblond 14 years ago
parent cc71c993f4
commit 8d0260b27e

@ -480,6 +480,7 @@ static inline void AFPDumpCounters(AFPThreadVars *ptv)
kstats.tp_packets, kstats.tp_drops); kstats.tp_packets, kstats.tp_drops);
SCPerfCounterAddUI64(ptv->capture_kernel_packets, ptv->tv->sc_perf_pca, kstats.tp_packets); SCPerfCounterAddUI64(ptv->capture_kernel_packets, ptv->tv->sc_perf_pca, kstats.tp_packets);
SCPerfCounterAddUI64(ptv->capture_kernel_drops, ptv->tv->sc_perf_pca, kstats.tp_drops); SCPerfCounterAddUI64(ptv->capture_kernel_drops, ptv->tv->sc_perf_pca, kstats.tp_drops);
(void) SC_ATOMIC_ADD(ptv->livedev->drop, kstats.tp_drops);
} }
#endif #endif
} }

@ -140,6 +140,7 @@ static inline void PcapDumpCounters(PcapThreadVars *ptv)
if (likely((pcap_stats(ptv->pcap_handle, &pcap_s) >= 0))) { if (likely((pcap_stats(ptv->pcap_handle, &pcap_s) >= 0))) {
SCPerfCounterSetUI64(ptv->capture_kernel_packets, ptv->tv->sc_perf_pca, pcap_s.ps_recv); SCPerfCounterSetUI64(ptv->capture_kernel_packets, ptv->tv->sc_perf_pca, pcap_s.ps_recv);
SCPerfCounterSetUI64(ptv->capture_kernel_drops, ptv->tv->sc_perf_pca, pcap_s.ps_drop); SCPerfCounterSetUI64(ptv->capture_kernel_drops, ptv->tv->sc_perf_pca, pcap_s.ps_drop);
(void) SC_ATOMIC_SET(ptv->livedev->drop, pcap_s.ps_drop);
SCPerfCounterSetUI64(ptv->capture_kernel_ifdrops, ptv->tv->sc_perf_pca, pcap_s.ps_ifdrop); SCPerfCounterSetUI64(ptv->capture_kernel_ifdrops, ptv->tv->sc_perf_pca, pcap_s.ps_ifdrop);
} }
} }

@ -180,6 +180,7 @@ static inline void PfringDumpCounters(PfringThreadVars *ptv)
if (likely((pfring_stats(ptv->pd, &pfring_s) >= 0))) { if (likely((pfring_stats(ptv->pd, &pfring_s) >= 0))) {
SCPerfCounterSetUI64(ptv->capture_kernel_packets, ptv->tv->sc_perf_pca, pfring_s.recv); SCPerfCounterSetUI64(ptv->capture_kernel_packets, ptv->tv->sc_perf_pca, pfring_s.recv);
SCPerfCounterSetUI64(ptv->capture_kernel_drops, ptv->tv->sc_perf_pca, pfring_s.drop); SCPerfCounterSetUI64(ptv->capture_kernel_drops, ptv->tv->sc_perf_pca, pfring_s.drop);
SC_ATOMIC_SET(ptv->livedev->drop, kstats.tp_drops);
} }
} }

@ -49,6 +49,7 @@ int LiveRegisterDevice(char *dev)
pd->dev = SCStrdup(dev); pd->dev = SCStrdup(dev);
SC_ATOMIC_INIT(pd->pkts); SC_ATOMIC_INIT(pd->pkts);
SC_ATOMIC_INIT(pd->drop);
SC_ATOMIC_INIT(pd->invalid_checksums); SC_ATOMIC_INIT(pd->invalid_checksums);
pd->ignore_checksum = 0; pd->ignore_checksum = 0;
TAILQ_INSERT_TAIL(&live_devices, pd, next); TAILQ_INSERT_TAIL(&live_devices, pd, next);

@ -26,6 +26,7 @@ typedef struct LiveDevice_ {
char *dev; /**< the device (e.g. "eth0") */ char *dev; /**< the device (e.g. "eth0") */
int ignore_checksum; int ignore_checksum;
SC_ATOMIC_DECLARE(unsigned int, pkts); SC_ATOMIC_DECLARE(unsigned int, pkts);
SC_ATOMIC_DECLARE(unsigned int, drop);
SC_ATOMIC_DECLARE(unsigned int, invalid_checksums); SC_ATOMIC_DECLARE(unsigned int, invalid_checksums);
TAILQ_ENTRY(LiveDevice_) next; TAILQ_ENTRY(LiveDevice_) next;
} LiveDevice; } LiveDevice;

Loading…
Cancel
Save