On Tuesday, January 28, 2025 8:27 PM, Zdenek Bouska <zdenek.bouska@xxxxxxxxxxx> wrote: >Fixes HW RX timestamp in the following scenario: >- AF_PACKET socket with enabled HW RX timestamps is created >- AF_XDP socket with enabled zero copy is created >- frame is forwarded to the BPF program, where the timestamp should > still be readable (extracted by igc_xdp_rx_timestamp(), kfunc > behind bpf_xdp_metadata_rx_timestamp()) >- the frame got XDP_PASS from BPF program, redirecting to the stack >- AF_PACKET socket receives the frame with HW RX timestamp > >Moves the skb timestamp setting from igc_dispatch_skb_zc() to >igc_construct_skb_zc() so that igc_construct_skb_zc() is similar to >igc_construct_skb(). > >This issue can also be reproduced by running: > # tools/testing/selftests/bpf/xdp_hw_metadata enp1s0 >When a frame with the wrong port 9092 (instead of 9091) is used: > # echo -n xdp | nc -u -q1 192.168.10.9 9092 >then the RX timestamp is missing and xdp_hw_metadata prints: > skb hwtstamp is not found! > >With this fix or when copy mode is used: > # tools/testing/selftests/bpf/xdp_hw_metadata -c enp1s0 >then RX timestamp is found and xdp_hw_metadata prints: > found skb hwtstamp = 1736509937.852786132 > >Fixes: 069b142f5819 ("igc: Add support for PTP .getcyclesx64()") >Signed-off-by: Zdenek Bouska <zdenek.bouska@xxxxxxxxxxx> This patch LGTM and tested working on my side with xdp_hw_metadata self-test app on XDP_PASS scenario. Thanks for the patch. Reviewed-by: Song Yoong Siang <yoong.siang.song@xxxxxxxxx>