'Timestamp source for dpdk-pdump packets on E810 and DPDK 19.11

I am using a Intel E810-XXVDA4 and DPDK version 19.11. During troubleshooting we have captures outgoing traffic with dpdk-pdump:

dpdk-pdump -- --pdump 'port=1,queue=*,tx-dev=/tmp/tx.pcap'

I have opened the pcap-file in wireshark and I can see that some packets are delayed. However, system behavior indicates that the delays I see in the pcap file are not correct, they are too big.

My questions is, how is the timestamp on packets in the pcap from dpdk-pdump created, like NIC HW generated, CPU time at disk write etc or something else?

Are there any run-time or build-time options to change the source of the timestamps?



Solution 1:[1]

Answer from dpdk users mailing list, many thanks to S.H

Follow up. The older dump-pdump in 19.11 does timestamps when packet is read from the ring which is bad.

You might have better luck with DPDK 20.11 and the dpdk-dumpcap which puts timestamp in when packet is put into ring.

Let me give picture:

    Application (primary)
       | 1                       2
       +--+-------------------------> wire
          |                        
          |             dumpcap (secondary)
          +---========--------------> capture file
                                 3

The ==== is ringbuffer between processes

  1. Where 20.11 with dpdk-dumpcap gets timestamp
  2. Where you want the timestamp but is not possible
  3. Where 19.11 and dpdk-pdump gets timestamp

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 rmcarlsson