[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87r04jc1hq.fsf@intel.com>
Date: Thu, 30 Jan 2025 15:42:41 -0800
From: Vinicius Costa Gomes <vinicius.gomes@...el.com>
To: Zdenek Bouska <zdenek.bouska@...mens.com>, Tony Nguyen
<anthony.l.nguyen@...el.com>, Przemek Kitszel
<przemyslaw.kitszel@...el.com>, Andrew Lunn <andrew+netdev@...n.ch>,
"David S. Miller" <davem@...emloft.net>, Eric Dumazet
<edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni
<pabeni@...hat.com>, Alexei Starovoitov <ast@...nel.org>, Daniel Borkmann
<daniel@...earbox.net>, Jesper Dangaard Brouer <hawk@...nel.org>, John
Fastabend <john.fastabend@...il.com>, Florian Bezdeka
<florian.bezdeka@...mens.com>, Jan Kiszka <jan.kiszka@...mens.com>, Song
Yoong Siang <yoong.siang.song@...el.com>
Cc: intel-wired-lan@...ts.osuosl.org, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, bpf@...r.kernel.org, Zdenek Bouska
<zdenek.bouska@...mens.com>
Subject: Re: [PATCH] igc: Fix HW RX timestamp when passed by ZC XDP
Zdenek Bouska <zdenek.bouska@...mens.com> writes:
> 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@...mens.com>
Acked-by: Vinicius Costa Gomes <vinicius.gomes@...el.com>
Cheers,
--
Vinicius
Powered by blists - more mailing lists