Test-Label: intel-Testing Test-Status: FAILURE _Testing issues_ DPDK git repo: dpdk-next-net-intel commit b0cd908f14fb95045a32a66f1e736aa6fbbc7f75 Author: Song Yoong Siang Date: Thu Dec 4 10:09:47 2025 +0800 net/e1000: fix igc launch time calculation Improve the launch time calculation logic to handle different scenarios: - Set launch time to 0 if txtime has expired. - Set launch time to 0 if txtime exceeds the horizon (beyond the end of the next Qbv cycle). - Mark the first flag in the context descriptor when the packet is the first one scheduled in the next Qbv cycle. - Create a dummy packet to dirty the current cycle before sending packets intended for the next Qbv cycle. Testing was performed on two Intel ADL-S platforms with i226 NICs connected back-to-back. A DPDK sample application is created to send 10 UDP packets with 20,000 nanosecond intervals and their txtime is set to the time of the next Qbv cycle. Meanwhile, the tcpdump command below is used on the link partner to capture the delta of Rx hardware timestamp of the 10 packets: tcpdump -ttt -ni enp1s0 --time-stamp-precision=nano -j adapter_unsynced Without this patch, packets are transmitted immediately as the hardware interprets their launch time as expired, resulting in 8,384 nanosecond intervals (wire speed for 1024-byte packets at 1Gbps), as shown in tcpdump log below: 00:00:00.000000000 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000008384 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000008384 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000008384 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000008384 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000008384 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000008384 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000008384 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000008384 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000008384 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 With this patch, packets are properly held until the next Qbv cycle and transmitted at the intended 20,000 nanosecond intervals, demonstrating correct launch time behavior, as shown in tcpdump log below: 00:00:00.000000000 [|llc] 00:00:00.000862592 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000019993 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000020000 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000020010 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000019997 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000020000 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000020003 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000019990 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000020000 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 00:00:00.000020000 IP 192.168.1.100.2 > 224.1.1.1.5: UDP, length 982 Fixes: 9630f7c71ecd ("net/igc: enable launch time offloading") Cc: stable@dpdk.org Signed-off-by: David Zage Signed-off-by: Song Yoong Siang Acked-by: Bruce Richardson Testing Summary : 18 Case Done, 17 Successful, 1 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| FAILED| | 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