net/pcap: propagate timestamp from header to mbuf
authorSylvain Rodon <srn@nexatech.fr>
Fri, 2 Aug 2019 08:57:24 +0000 (10:57 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 27 Aug 2019 11:52:53 +0000 (13:52 +0200)
Timestamp is always set in PCAP header, whether it reads a file or
listen on an interface. This information can be important for some
applications and it cannot be obtained otherwise (especially when
reading a PCAP file, where the timestamp is not the current time).
Timestamp here is the number of microseconds since epoch.

Signed-off-by: Sylvain Rodon <srn@nexatech.fr>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
drivers/net/pcap/rte_eth_pcap.c

index 95d4b5b..5489010 100644 (file)
@@ -265,6 +265,9 @@ eth_pcap_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
                }
 
                mbuf->pkt_len = (uint16_t)header.caplen;
+               mbuf->timestamp = (uint64_t)header.ts.tv_sec * 1000000
+                                                       + header.ts.tv_usec;
+               mbuf->ol_flags |= PKT_RX_TIMESTAMP;
                mbuf->port = pcap_q->port_id;
                bufs[num_rx] = mbuf;
                num_rx++;