The intention is to produce a pcap with nanosecond precision when timestamp offloading is activated on mlx5 NIC.
The packets forwarded by testpmd hold the raw counter but a pcap requires a time unit. Assuming that the NIC clock is already synced with external master clock, this patchset simply integrates the nanosecond converter that is already implemented by ibverbs. RFC: The conversion is performed in Rx callback, in primary process because the required clock info carried by ibv_context is not shared with secundary process (pdump). Thus mbuf->timestamp is the chosen candidate to convey the nanoseconds to pdump, since doc says: "unit and time reference are not normalized but are always the same for a given port" Patrick Keroulas (3): net/mlx5: add counter-to-ns converter from libibverbs ethdev: add API to convert raw timestamps to nsec net/pcap: dump hardware timestamps drivers/common/mlx5/linux/mlx5_glue.c | 16 +++++++++++ drivers/common/mlx5/linux/mlx5_glue.h | 4 +++ drivers/net/mlx5/mlx5.c | 1 + drivers/net/mlx5/mlx5.h | 1 + drivers/net/mlx5/mlx5_ethdev.c | 30 ++++++++++++++++++++ drivers/net/pcap/rte_eth_pcap.c | 35 +++++++++++++----------- lib/librte_ethdev/rte_ethdev.c | 12 ++++++++ lib/librte_ethdev/rte_ethdev.h | 17 ++++++++++++ lib/librte_ethdev/rte_ethdev_core.h | 5 ++++ lib/librte_ethdev/rte_ethdev_version.map | 2 ++ lib/librte_mbuf/rte_mbuf_core.h | 3 +- lib/librte_pdump/rte_pdump.c | 14 +++++++++- 12 files changed, 122 insertions(+), 18 deletions(-) -- 2.17.1