Beispiel #1
0
static int
snf_pcap_stats(pcap_t *p, struct pcap_stat *ps)
{
	struct snf_ring_stats stats;
	int rc;

	if ((rc = snf_ring_getstats(p->md.snf_ring, &stats))) {
		snprintf(p->errbuf, PCAP_ERRBUF_SIZE, "snf_get_stats: %s",
			 pcap_strerror(rc));
		return -1;
	}
	ps->ps_recv = stats.ring_pkt_recv + stats.ring_pkt_overflow;
	ps->ps_drop = stats.ring_pkt_overflow;
	ps->ps_ifdrop = stats.nic_pkt_overflow + stats.nic_pkt_bad;
	return 0;
}
Beispiel #2
0
int reader_snf_stats(MolochReaderStats_t *stats)
{
    struct snf_ring_stats ss;

    stats->dropped = 0;
    stats->total = 0;

    int i, r;
    for (i = 0; i < MAX_INTERFACES && config.interface[i]; i++) {
        for (r = 0; r < snfNumRings; r++) {
            int err = snf_ring_getstats(rings[i][r], &ss);

            if (err) 
                continue;
            stats->dropped += ss.ring_pkt_overflow;
            stats->total += ss.ring_pkt_recv;
        }
    }
    return 0;
}