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);
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);
(void) SC_ATOMIC_ADD(ptv->livedev->drop, kstats.tp_drops);
}
#endif
}

@ -140,6 +140,7 @@ static inline void PcapDumpCounters(PcapThreadVars *ptv)
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_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);
}
}

@ -180,6 +180,7 @@ static inline void PfringDumpCounters(PfringThreadVars *ptv)
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_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);
SC_ATOMIC_INIT(pd->pkts);
SC_ATOMIC_INIT(pd->drop);
SC_ATOMIC_INIT(pd->invalid_checksums);
pd->ignore_checksum = 0;
TAILQ_INSERT_TAIL(&live_devices, pd, next);

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

Loading…
Cancel
Save