struct timeval maxwait, poll; /* Could possibly be made static */
- uint32_t pkts;
uint64_t bytes;
+ uint16_t packets;
+ uint16_t drops;
/* Current location in the DAG stream input buffer.
*/
SCReturnInt(TM_ECODE_FAILED);
}
+ ewtn->packets = SCPerfTVRegisterCounter("capture.dag_packets",
+ tv, SC_PERF_TYPE_UINT64, "NULL");
+ ewtn->drops = SCPerfTVRegisterCounter("capture.dag_drops",
+ tv, SC_PERF_TYPE_UINT64, "NULL");
+
ewtn->tv = tv;
*data = (void *)ewtn;
SCReturnInt(TM_ECODE_FAILED);
}
+ SCPerfSyncCountersIfSignalled(tv, 0);
+
SCLogDebug("Read %d records from stream: %d, DAG: %s",
pkts_read, dtv->dagstream, dtv->dagname);
}
case TYPE_PAD:
/* Skip. */
continue;
- case TYPE_ETH:
case TYPE_DSM_COLOR_ETH:
case TYPE_COLOR_ETH:
case TYPE_COLOR_HASH_ETH:
+ /* In these types the color value overwrites the lctr
+ * (drop count). */
+ break;
+ case TYPE_ETH:
+ if (dr->lctr) {
+ SCPerfCounterIncr(ewtn->drops, ewtn->tv->sc_perf_pca);
+ }
break;
default:
SCLogError(SC_ERR_UNIMPLEMENTED,
p->ts.tv_sec++;
}
- ewtn->pkts++;
+ SCPerfCounterIncr(ewtn->packets, ewtn->tv->sc_perf_pca);
ewtn->bytes += wlen;
if (TmThreadsSlotProcessPkt(ewtn->tv, ewtn->slot, p) != TM_ECODE_OK) {
{
ErfDagThreadVars *ewtn = (ErfDagThreadVars *)data;
- SCLogInfo("Packets: %"PRIu32"; Bytes: %"PRIu64, ewtn->pkts, ewtn->bytes);
+ SCLogInfo("Stream: %d; Bytes: %"PRIu64"; Packets: %"PRIu64
+ "; Drops: %"PRIu64,
+ ewtn->dagstream,
+ ewtn->bytes,
+ (uint64_t)SCPerfGetLocalCounterValue(ewtn->packets, tv->sc_perf_pca),
+ (uint64_t)SCPerfGetLocalCounterValue(ewtn->drops, tv->sc_perf_pca));
}
/**
SCEnter();
DecodeThreadVars *dtv = NULL;
- // if ( (dtv = SCMalloc(sizeof(DecodeThreadVars))) == NULL)
- // SCReturnInt(TM_ECODE_FAILED);
- // memset(dtv, 0, sizeof(DecodeThreadVars));
-
dtv = DecodeThreadVarsAlloc();
if(dtv == NULL)