Test-Label: intel-Testing Test-Status: SUCCESS _Testing PASS_ DPDK git repo: dpdk-next-net-intel commit 761f60058f4b7c85252ee76e8ed88b73c2ee5d0c Author: Jacob Keller Date: Wed Dec 10 13:45:52 2025 -0800 net/iavf: negotiate PTP before reporting Rx timestamping The iavf driver has support for hardware Rx timestamps since commit b5cd735132f6 ("net/iavf: enable Rx timestamp on flex descriptor"). To enable this, the VF must first negotiate PTP capabilities with the PF by sending the VIRTCHNL_OP_1588_PTP_GET_CAPS command, with the requested capabilities. The PF will respond with the actually supported subset of capabilities. The PF may not actually enable Rx timestamping, even if it reports the overall PTP capability support. If this happens, the iavf driver logic will incorrectly report that Rx timestamps can be enabled despite being rejected by the PF. This should be unlikely in practice, as most PFs which support the VIRTCHNL_VF_CAP_PTP will support Rx timestamping. However, there are some cases where this may not be true. In particular, there is an unfortunate issue with some versions of the ice PF using a different structure layout that prevents the PF from enabling Rx timestamping. To prevent this, the DPDK driver should check the capabilities and confirm that the PF did enable Rx timestamping, instead of assuming it will be enabled by all PFs that support the VIRTCHNL_CAP_PTP feature. This prevents the DPDK application from attempting to enable Rx timestamps when the PF will not support it. Currently, the DPDK driver only negotiates PTP capabilities when the device is started. First, check the capabilities during iavf_dev_init() so that the iavf_dev_info_get() function has the required knowledge. Then, only set RTE_ETH_RX_OFFLOAD_TIMESTAMP when the PF has informed that it enabled support. Continue to re-check the PTP capabilities in iavf_dev_start(), as it is important to renegotiate after device reset. Fixes: d21c2fe6e5a1 ("net/iavf: fix check for PF Rx timestamp support") Cc: stable@dpdk.org Signed-off-by: Jacob Keller Acked-by: Bruce Richardson Testing Summary : 18 Case Done, 18 Successful, 0 Failures TestPlan: pf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/pf_smoke_test_plan.rst vf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/vf_smoke_test_plan.rst virtio_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/virtio_smoke_test_plan.rst TestSuite: pf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_pf_smoke.py vf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_vf_smoke.py virtio_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_virtio_smoke.py OS : Ubuntu 24.04.3 LTS Kernel : 6.8.0-71-generic GCC : 13.3.0-6ubuntu2~24.04 NIC : Ethernet Controller XL710 for 40GbE QSFP+ Target : x86_64-native-linuxapp-gcc Test result details: +-------------+---------------------------+-------+ | suite | case | status| +-------------+---------------------------+-------+ | asan_smoke | test_rxtx_with_ASan_enable| passed| | pf_smoke | test_pf_jumbo_frames | passed| | pf_smoke | test_pf_rss | passed| | pf_smoke | test_pf_tx_rx_queue | passed| | vf_smoke | test_vf_rss | passed| | vf_smoke | test_vf_tx_rx_queue | passed| | vf_smoke | test_vf_jumbo_frames | n/a | | virtio_smoke| test_virtio_loopback | passed| | virtio_smoke| test_virtio_pvp | passed| +-------------+---------------------------+-------+ OS : Ubuntu 24.04.3 LTS Kernel : 6.8.0-87-generic GCC : 13.3.0-6ubuntu2~24.04 NIC : Ethernet Controller E810-C for SFP Target : x86_64-native-linuxapp-gcc Test result details: +-------------+---------------------------+-------+ | suite | case | status| +-------------+---------------------------+-------+ | asan_smoke | test_rxtx_with_ASan_enable| passed| | pf_smoke | test_pf_jumbo_frames | passed| | pf_smoke | test_pf_rss | passed| | pf_smoke | test_pf_tx_rx_queue | passed| | vf_smoke | test_vf_jumbo_frames | passed| | vf_smoke | test_vf_rss | passed| | vf_smoke | test_vf_tx_rx_queue | passed| | virtio_smoke| test_virtio_loopback | passed| | virtio_smoke| test_virtio_pvp | passed| +-------------+---------------------------+-------+ DPDK STV team