napatech: Fix packet timestamps

Initialize both seconds and useconds of packet timestamp from napatech
timestamp format.

This commit uses updated macro definitions from util-utime.h to avoid
zero seconds value.

Issue: 6372
pull/9999/head
Ilya Bakhtin 2 years ago committed by Victor Julien
parent d3095ac058
commit 417806ca35

@ -931,19 +931,19 @@ TmEcode NapatechPacketLoop(ThreadVars *tv, void *data, void *slot)
*/ */
switch (NT_NET_GET_PKT_TIMESTAMP_TYPE(packet_buffer)) { switch (NT_NET_GET_PKT_TIMESTAMP_TYPE(packet_buffer)) {
case NT_TIMESTAMP_TYPE_NATIVE_UNIX: case NT_TIMESTAMP_TYPE_NATIVE_UNIX:
p->ts = SCTIME_ADD_USECS(SCTIME_FROM_USECS(pkt_ts / 100000000), p->ts = SCTIME_ADD_USECS(SCTIME_FROM_SECS(pkt_ts / 100000000),
((pkt_ts % 100000000) / 100) + ((pkt_ts % 100) > 50 ? 1 : 0)); ((pkt_ts % 100000000) / 100) + ((pkt_ts % 100) > 50 ? 1 : 0));
break; break;
case NT_TIMESTAMP_TYPE_PCAP: case NT_TIMESTAMP_TYPE_PCAP:
p->ts = SCTIME_ADD_USECS(SCTIME_FROM_USECS(pkt_ts >> 32), pkt_ts & 0xFFFFFFFF); p->ts = SCTIME_ADD_USECS(SCTIME_FROM_SECS(pkt_ts >> 32), pkt_ts & 0xFFFFFFFF);
break; break;
case NT_TIMESTAMP_TYPE_PCAP_NANOTIME: case NT_TIMESTAMP_TYPE_PCAP_NANOTIME:
p->ts = SCTIME_ADD_USECS(SCTIME_FROM_USECS(pkt_ts >> 32), p->ts = SCTIME_ADD_USECS(SCTIME_FROM_SECS(pkt_ts >> 32),
((pkt_ts & 0xFFFFFFFF) / 1000) + ((pkt_ts % 1000) > 500 ? 1 : 0)); ((pkt_ts & 0xFFFFFFFF) / 1000) + ((pkt_ts % 1000) > 500 ? 1 : 0));
break; break;
case NT_TIMESTAMP_TYPE_NATIVE_NDIS: case NT_TIMESTAMP_TYPE_NATIVE_NDIS:
/* number of seconds between 1/1/1601 and 1/1/1970 */ /* number of seconds between 1/1/1601 and 1/1/1970 */
p->ts = SCTIME_ADD_USECS(SCTIME_FROM_USECS((pkt_ts / 100000000) - 11644473600), p->ts = SCTIME_ADD_USECS(SCTIME_FROM_SECS((pkt_ts / 100000000) - 11644473600),
((pkt_ts % 100000000) / 100) + ((pkt_ts % 100) > 50 ? 1 : 0)); ((pkt_ts % 100000000) / 100) + ((pkt_ts % 100) > 50 ? 1 : 0));
break; break;
default: default:

Loading…
Cancel
Save