* [PATCH net-next v1] idpf: export RX hardware timestamping information to XDP
@ 2025-11-22 14:08 Mina Almasry
2025-11-24 8:33 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-12-17 14:33 ` Alexander Lobakin
0 siblings, 2 replies; 8+ messages in thread
From: Mina Almasry @ 2025-11-22 14:08 UTC (permalink / raw)
To: netdev, bpf, linux-kernel
Cc: YiFei Zhu, Alexei Starovoitov, Daniel Borkmann, David S. Miller,
Jakub Kicinski, Jesper Dangaard Brouer, John Fastabend,
Stanislav Fomichev, Tony Nguyen, Przemek Kitszel, Andrew Lunn,
Eric Dumazet, Paolo Abeni, Alexander Lobakin, Richard Cochran,
intel-wired-lan, Mina Almasry
From: YiFei Zhu <zhuyifei@google.com>
The logic is similar to idpf_rx_hwtstamp, but the data is exported
as a BPF kfunc instead of appended to an skb.
A idpf_queue_has(PTP, rxq) condition is added to check the queue
supports PTP similar to idpf_rx_process_skb_fields.
Cc: intel-wired-lan@lists.osuosl.org
Signed-off-by: YiFei Zhu <zhuyifei@google.com>
Signed-off-by: Mina Almasry <almasrymina@google.com>
---
drivers/net/ethernet/intel/idpf/xdp.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/drivers/net/ethernet/intel/idpf/xdp.c b/drivers/net/ethernet/intel/idpf/xdp.c
index 21ce25b0567f..850389ca66b6 100644
--- a/drivers/net/ethernet/intel/idpf/xdp.c
+++ b/drivers/net/ethernet/intel/idpf/xdp.c
@@ -2,6 +2,7 @@
/* Copyright (C) 2025 Intel Corporation */
#include "idpf.h"
+#include "idpf_ptp.h"
#include "idpf_virtchnl.h"
#include "xdp.h"
#include "xsk.h"
@@ -369,6 +370,31 @@ int idpf_xdp_xmit(struct net_device *dev, int n, struct xdp_frame **frames,
idpf_xdp_tx_finalize);
}
+static int idpf_xdpmo_rx_timestamp(const struct xdp_md *ctx, u64 *timestamp)
+{
+ const struct virtchnl2_rx_flex_desc_adv_nic_3 *rx_desc;
+ const struct libeth_xdp_buff *xdp = (typeof(xdp))ctx;
+ const struct idpf_rx_queue *rxq;
+ u64 cached_time, ts_ns;
+ u32 ts_high;
+
+ rx_desc = xdp->desc;
+ rxq = libeth_xdp_buff_to_rq(xdp, typeof(*rxq), xdp_rxq);
+
+ if (!idpf_queue_has(PTP, rxq))
+ return -ENODATA;
+ if (!(rx_desc->ts_low & VIRTCHNL2_RX_FLEX_TSTAMP_VALID))
+ return -ENODATA;
+
+ cached_time = READ_ONCE(rxq->cached_phc_time);
+
+ ts_high = le32_to_cpu(rx_desc->ts_high);
+ ts_ns = idpf_ptp_tstamp_extend_32b_to_64b(cached_time, ts_high);
+
+ *timestamp = ts_ns;
+ return 0;
+}
+
static int idpf_xdpmo_rx_hash(const struct xdp_md *ctx, u32 *hash,
enum xdp_rss_hash_type *rss_type)
{
@@ -392,6 +418,7 @@ static int idpf_xdpmo_rx_hash(const struct xdp_md *ctx, u32 *hash,
}
static const struct xdp_metadata_ops idpf_xdpmo = {
+ .xmo_rx_timestamp = idpf_xdpmo_rx_timestamp,
.xmo_rx_hash = idpf_xdpmo_rx_hash,
};
base-commit: e05021a829b834fecbd42b173e55382416571b2c
--
2.52.0.rc2.455.g230fcf2819-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread
* RE: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX hardware timestamping information to XDP
2025-11-22 14:08 [PATCH net-next v1] idpf: export RX hardware timestamping information to XDP Mina Almasry
@ 2025-11-24 8:33 ` Loktionov, Aleksandr
2025-11-24 10:51 ` YiFei Zhu
2025-12-01 1:27 ` Mina Almasry
2025-12-17 14:33 ` Alexander Lobakin
1 sibling, 2 replies; 8+ messages in thread
From: Loktionov, Aleksandr @ 2025-11-24 8:33 UTC (permalink / raw)
To: Mina Almasry, netdev@vger.kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: YiFei Zhu, Alexei Starovoitov, Daniel Borkmann, David S. Miller,
Jakub Kicinski, Jesper Dangaard Brouer, John Fastabend,
Stanislav Fomichev, Nguyen, Anthony L, Kitszel, Przemyslaw,
Andrew Lunn, Eric Dumazet, Paolo Abeni, Lobakin, Aleksander,
Richard Cochran, intel-wired-lan@lists.osuosl.org
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Mina Almasry
> Sent: Saturday, November 22, 2025 3:09 PM
> To: netdev@vger.kernel.org; bpf@vger.kernel.org; linux-
> kernel@vger.kernel.org
> Cc: YiFei Zhu <zhuyifei@google.com>; Alexei Starovoitov
> <ast@kernel.org>; Daniel Borkmann <daniel@iogearbox.net>; David S.
> Miller <davem@davemloft.net>; Jakub Kicinski <kuba@kernel.org>; Jesper
> Dangaard Brouer <hawk@kernel.org>; John Fastabend
> <john.fastabend@gmail.com>; Stanislav Fomichev <sdf@fomichev.me>;
> Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
> <przemyslaw.kitszel@intel.com>; Andrew Lunn <andrew+netdev@lunn.ch>;
> Eric Dumazet <edumazet@google.com>; Paolo Abeni <pabeni@redhat.com>;
> Lobakin, Aleksander <aleksander.lobakin@intel.com>; Richard Cochran
> <richardcochran@gmail.com>; intel-wired-lan@lists.osuosl.org; Mina
> Almasry <almasrymina@google.com>
> Subject: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX
> hardware timestamping information to XDP
>
> From: YiFei Zhu <zhuyifei@google.com>
>
> The logic is similar to idpf_rx_hwtstamp, but the data is exported as
> a BPF kfunc instead of appended to an skb.
>
> A idpf_queue_has(PTP, rxq) condition is added to check the queue
> supports PTP similar to idpf_rx_process_skb_fields.
>
> Cc: intel-wired-lan@lists.osuosl.org
>
> Signed-off-by: YiFei Zhu <zhuyifei@google.com>
> Signed-off-by: Mina Almasry <almasrymina@google.com>
> ---
> drivers/net/ethernet/intel/idpf/xdp.c | 27
> +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/idpf/xdp.c
> b/drivers/net/ethernet/intel/idpf/xdp.c
> index 21ce25b0567f..850389ca66b6 100644
> --- a/drivers/net/ethernet/intel/idpf/xdp.c
> +++ b/drivers/net/ethernet/intel/idpf/xdp.c
> @@ -2,6 +2,7 @@
> /* Copyright (C) 2025 Intel Corporation */
>
> #include "idpf.h"
> +#include "idpf_ptp.h"
> #include "idpf_virtchnl.h"
> #include "xdp.h"
> #include "xsk.h"
> @@ -369,6 +370,31 @@ int idpf_xdp_xmit(struct net_device *dev, int n,
> struct xdp_frame **frames,
> idpf_xdp_tx_finalize);
> }
>
> +static int idpf_xdpmo_rx_timestamp(const struct xdp_md *ctx, u64
> +*timestamp) {
> + const struct virtchnl2_rx_flex_desc_adv_nic_3 *rx_desc;
> + const struct libeth_xdp_buff *xdp = (typeof(xdp))ctx;
> + const struct idpf_rx_queue *rxq;
> + u64 cached_time, ts_ns;
> + u32 ts_high;
> +
> + rx_desc = xdp->desc;
> + rxq = libeth_xdp_buff_to_rq(xdp, typeof(*rxq), xdp_rxq);
> +
> + if (!idpf_queue_has(PTP, rxq))
> + return -ENODATA;
> + if (!(rx_desc->ts_low & VIRTCHNL2_RX_FLEX_TSTAMP_VALID))
> + return -ENODATA;
RX flex desc fields are little‑endian.
You already convert ts_high with le32_to_cpu(), but test ts_low directly against the mask.
On big‑endian this can misdetect the bit and spuriously return -ENODATA.
Please convert ts_low to host order before the bit test.
See existing IDPF/ICE patterns where descriptor words are leXX_to_cpu()‑converted prior to FIELD_GET() / bit checks.
Also, per the XDP RX metadata kfunc docs, -ENODATA must reflect true absence of per‑packet metadata; endianness‑correct testing is required to uphold the semantic.
> +
> + cached_time = READ_ONCE(rxq->cached_phc_time);
> +
> + ts_high = le32_to_cpu(rx_desc->ts_high);
> + ts_ns = idpf_ptp_tstamp_extend_32b_to_64b(cached_time,
> ts_high);
> +
> + *timestamp = ts_ns;
> + return 0;
> +}
> +
> static int idpf_xdpmo_rx_hash(const struct xdp_md *ctx, u32 *hash,
> enum xdp_rss_hash_type *rss_type) { @@ -
> 392,6 +418,7 @@ static int idpf_xdpmo_rx_hash(const struct xdp_md
> *ctx, u32 *hash, }
>
> static const struct xdp_metadata_ops idpf_xdpmo = {
> + .xmo_rx_timestamp = idpf_xdpmo_rx_timestamp,
> .xmo_rx_hash = idpf_xdpmo_rx_hash,
> };
>
>
> base-commit: e05021a829b834fecbd42b173e55382416571b2c
> --
> 2.52.0.rc2.455.g230fcf2819-goog
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX hardware timestamping information to XDP
2025-11-24 8:33 ` [Intel-wired-lan] " Loktionov, Aleksandr
@ 2025-11-24 10:51 ` YiFei Zhu
2025-11-24 11:37 ` Loktionov, Aleksandr
2025-12-01 1:27 ` Mina Almasry
1 sibling, 1 reply; 8+ messages in thread
From: YiFei Zhu @ 2025-11-24 10:51 UTC (permalink / raw)
To: Loktionov, Aleksandr
Cc: Mina Almasry, netdev@vger.kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org, Alexei Starovoitov, Daniel Borkmann,
David S. Miller, Jakub Kicinski, Jesper Dangaard Brouer,
John Fastabend, Stanislav Fomichev, Nguyen, Anthony L,
Kitszel, Przemyslaw, Andrew Lunn, Eric Dumazet, Paolo Abeni,
Lobakin, Aleksander, Richard Cochran,
intel-wired-lan@lists.osuosl.org
On Mon, Nov 24, 2025 at 12:33 AM Loktionov, Aleksandr
<aleksandr.loktionov@intel.com> wrote:
>
>
>
> > -----Original Message-----
> > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> > Of Mina Almasry
> > Sent: Saturday, November 22, 2025 3:09 PM
> > To: netdev@vger.kernel.org; bpf@vger.kernel.org; linux-
> > kernel@vger.kernel.org
> > Cc: YiFei Zhu <zhuyifei@google.com>; Alexei Starovoitov
> > <ast@kernel.org>; Daniel Borkmann <daniel@iogearbox.net>; David S.
> > Miller <davem@davemloft.net>; Jakub Kicinski <kuba@kernel.org>; Jesper
> > Dangaard Brouer <hawk@kernel.org>; John Fastabend
> > <john.fastabend@gmail.com>; Stanislav Fomichev <sdf@fomichev.me>;
> > Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
> > <przemyslaw.kitszel@intel.com>; Andrew Lunn <andrew+netdev@lunn.ch>;
> > Eric Dumazet <edumazet@google.com>; Paolo Abeni <pabeni@redhat.com>;
> > Lobakin, Aleksander <aleksander.lobakin@intel.com>; Richard Cochran
> > <richardcochran@gmail.com>; intel-wired-lan@lists.osuosl.org; Mina
> > Almasry <almasrymina@google.com>
> > Subject: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX
> > hardware timestamping information to XDP
> >
> > From: YiFei Zhu <zhuyifei@google.com>
> >
> > The logic is similar to idpf_rx_hwtstamp, but the data is exported as
> > a BPF kfunc instead of appended to an skb.
> >
> > A idpf_queue_has(PTP, rxq) condition is added to check the queue
> > supports PTP similar to idpf_rx_process_skb_fields.
> >
> > Cc: intel-wired-lan@lists.osuosl.org
> >
> > Signed-off-by: YiFei Zhu <zhuyifei@google.com>
> > Signed-off-by: Mina Almasry <almasrymina@google.com>
> > ---
> > drivers/net/ethernet/intel/idpf/xdp.c | 27
> > +++++++++++++++++++++++++++
> > 1 file changed, 27 insertions(+)
> >
> > diff --git a/drivers/net/ethernet/intel/idpf/xdp.c
> > b/drivers/net/ethernet/intel/idpf/xdp.c
> > index 21ce25b0567f..850389ca66b6 100644
> > --- a/drivers/net/ethernet/intel/idpf/xdp.c
> > +++ b/drivers/net/ethernet/intel/idpf/xdp.c
> > @@ -2,6 +2,7 @@
> > /* Copyright (C) 2025 Intel Corporation */
> >
> > #include "idpf.h"
> > +#include "idpf_ptp.h"
> > #include "idpf_virtchnl.h"
> > #include "xdp.h"
> > #include "xsk.h"
> > @@ -369,6 +370,31 @@ int idpf_xdp_xmit(struct net_device *dev, int n,
> > struct xdp_frame **frames,
> > idpf_xdp_tx_finalize);
> > }
> >
> > +static int idpf_xdpmo_rx_timestamp(const struct xdp_md *ctx, u64
> > +*timestamp) {
> > + const struct virtchnl2_rx_flex_desc_adv_nic_3 *rx_desc;
> > + const struct libeth_xdp_buff *xdp = (typeof(xdp))ctx;
> > + const struct idpf_rx_queue *rxq;
> > + u64 cached_time, ts_ns;
> > + u32 ts_high;
> > +
> > + rx_desc = xdp->desc;
> > + rxq = libeth_xdp_buff_to_rq(xdp, typeof(*rxq), xdp_rxq);
> > +
> > + if (!idpf_queue_has(PTP, rxq))
> > + return -ENODATA;
> > + if (!(rx_desc->ts_low & VIRTCHNL2_RX_FLEX_TSTAMP_VALID))
> > + return -ENODATA;
> RX flex desc fields are little‑endian.
> You already convert ts_high with le32_to_cpu(), but test ts_low directly against the mask.
> On big‑endian this can misdetect the bit and spuriously return -ENODATA.
> Please convert ts_low to host order before the bit test.
> See existing IDPF/ICE patterns where descriptor words are leXX_to_cpu()‑converted prior to FIELD_GET() / bit checks.
> Also, per the XDP RX metadata kfunc docs, -ENODATA must reflect true absence of per‑packet metadata; endianness‑correct testing is required to uphold the semantic.
The logic is copied as verbatim from idpf_rx_hwtstamp:
static void
idpf_rx_hwtstamp(const struct idpf_rx_queue *rxq,
const struct virtchnl2_rx_flex_desc_adv_nic_3 *rx_desc,
struct sk_buff *skb)
{
u64 cached_time, ts_ns;
u32 ts_high;
if (!(rx_desc->ts_low & VIRTCHNL2_RX_FLEX_TSTAMP_VALID))
return;
cached_time = READ_ONCE(rxq->cached_phc_time);
ts_high = le32_to_cpu(rx_desc->ts_high);
ts_ns = idpf_ptp_tstamp_extend_32b_to_64b(cached_time, ts_high);
[...]
I assume that is incorrect and would need to be fixed too?
YiFei Zhu
> > +
> > + cached_time = READ_ONCE(rxq->cached_phc_time);
> > +
> > + ts_high = le32_to_cpu(rx_desc->ts_high);
> > + ts_ns = idpf_ptp_tstamp_extend_32b_to_64b(cached_time,
> > ts_high);
> > +
> > + *timestamp = ts_ns;
> > + return 0;
> > +}
> > +
> > static int idpf_xdpmo_rx_hash(const struct xdp_md *ctx, u32 *hash,
> > enum xdp_rss_hash_type *rss_type) { @@ -
> > 392,6 +418,7 @@ static int idpf_xdpmo_rx_hash(const struct xdp_md
> > *ctx, u32 *hash, }
> >
> > static const struct xdp_metadata_ops idpf_xdpmo = {
> > + .xmo_rx_timestamp = idpf_xdpmo_rx_timestamp,
> > .xmo_rx_hash = idpf_xdpmo_rx_hash,
> > };
> >
> >
> > base-commit: e05021a829b834fecbd42b173e55382416571b2c
> > --
> > 2.52.0.rc2.455.g230fcf2819-goog
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX hardware timestamping information to XDP
2025-11-24 10:51 ` YiFei Zhu
@ 2025-11-24 11:37 ` Loktionov, Aleksandr
0 siblings, 0 replies; 8+ messages in thread
From: Loktionov, Aleksandr @ 2025-11-24 11:37 UTC (permalink / raw)
To: YiFei Zhu
Cc: Mina Almasry, netdev@vger.kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org, Alexei Starovoitov, Daniel Borkmann,
David S. Miller, Jakub Kicinski, Jesper Dangaard Brouer,
John Fastabend, Stanislav Fomichev, Nguyen, Anthony L,
Kitszel, Przemyslaw, Andrew Lunn, Eric Dumazet, Paolo Abeni,
Lobakin, Aleksander, Richard Cochran,
intel-wired-lan@lists.osuosl.org
> -----Original Message-----
> From: YiFei Zhu <zhuyifei@google.com>
> Sent: Monday, November 24, 2025 11:52 AM
> To: Loktionov, Aleksandr <aleksandr.loktionov@intel.com>
> Cc: Mina Almasry <almasrymina@google.com>; netdev@vger.kernel.org;
> bpf@vger.kernel.org; linux-kernel@vger.kernel.org; Alexei Starovoitov
> <ast@kernel.org>; Daniel Borkmann <daniel@iogearbox.net>; David S.
> Miller <davem@davemloft.net>; Jakub Kicinski <kuba@kernel.org>; Jesper
> Dangaard Brouer <hawk@kernel.org>; John Fastabend
> <john.fastabend@gmail.com>; Stanislav Fomichev <sdf@fomichev.me>;
> Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
> <przemyslaw.kitszel@intel.com>; Andrew Lunn <andrew+netdev@lunn.ch>;
> Eric Dumazet <edumazet@google.com>; Paolo Abeni <pabeni@redhat.com>;
> Lobakin, Aleksander <aleksander.lobakin@intel.com>; Richard Cochran
> <richardcochran@gmail.com>; intel-wired-lan@lists.osuosl.org
> Subject: Re: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX
> hardware timestamping information to XDP
>
> On Mon, Nov 24, 2025 at 12:33 AM Loktionov, Aleksandr
> <aleksandr.loktionov@intel.com> wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On
> Behalf
> > > Of Mina Almasry
> > > Sent: Saturday, November 22, 2025 3:09 PM
> > > To: netdev@vger.kernel.org; bpf@vger.kernel.org; linux-
> > > kernel@vger.kernel.org
> > > Cc: YiFei Zhu <zhuyifei@google.com>; Alexei Starovoitov
> > > <ast@kernel.org>; Daniel Borkmann <daniel@iogearbox.net>; David S.
> > > Miller <davem@davemloft.net>; Jakub Kicinski <kuba@kernel.org>;
> > > Jesper Dangaard Brouer <hawk@kernel.org>; John Fastabend
> > > <john.fastabend@gmail.com>; Stanislav Fomichev <sdf@fomichev.me>;
> > > Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw
> > > <przemyslaw.kitszel@intel.com>; Andrew Lunn
> <andrew+netdev@lunn.ch>;
> > > Eric Dumazet <edumazet@google.com>; Paolo Abeni
> <pabeni@redhat.com>;
> > > Lobakin, Aleksander <aleksander.lobakin@intel.com>; Richard
> Cochran
> > > <richardcochran@gmail.com>; intel-wired-lan@lists.osuosl.org; Mina
> > > Almasry <almasrymina@google.com>
> > > Subject: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX
> > > hardware timestamping information to XDP
> > >
> > > From: YiFei Zhu <zhuyifei@google.com>
> > >
> > > The logic is similar to idpf_rx_hwtstamp, but the data is exported
> > > as a BPF kfunc instead of appended to an skb.
> > >
> > > A idpf_queue_has(PTP, rxq) condition is added to check the queue
> > > supports PTP similar to idpf_rx_process_skb_fields.
> > >
> > > Cc: intel-wired-lan@lists.osuosl.org
> > >
> > > Signed-off-by: YiFei Zhu <zhuyifei@google.com>
> > > Signed-off-by: Mina Almasry <almasrymina@google.com>
> > > ---
> > > drivers/net/ethernet/intel/idpf/xdp.c | 27
> > > +++++++++++++++++++++++++++
> > > 1 file changed, 27 insertions(+)
> > >
> > > diff --git a/drivers/net/ethernet/intel/idpf/xdp.c
> > > b/drivers/net/ethernet/intel/idpf/xdp.c
> > > index 21ce25b0567f..850389ca66b6 100644
> > > --- a/drivers/net/ethernet/intel/idpf/xdp.c
> > > +++ b/drivers/net/ethernet/intel/idpf/xdp.c
> > > @@ -2,6 +2,7 @@
> > > /* Copyright (C) 2025 Intel Corporation */
> > >
> > > #include "idpf.h"
> > > +#include "idpf_ptp.h"
> > > #include "idpf_virtchnl.h"
> > > #include "xdp.h"
> > > #include "xsk.h"
> > > @@ -369,6 +370,31 @@ int idpf_xdp_xmit(struct net_device *dev, int
> > > n, struct xdp_frame **frames,
> > > idpf_xdp_tx_finalize); }
> > >
> > > +static int idpf_xdpmo_rx_timestamp(const struct xdp_md *ctx, u64
> > > +*timestamp) {
> > > + const struct virtchnl2_rx_flex_desc_adv_nic_3 *rx_desc;
> > > + const struct libeth_xdp_buff *xdp = (typeof(xdp))ctx;
> > > + const struct idpf_rx_queue *rxq;
> > > + u64 cached_time, ts_ns;
> > > + u32 ts_high;
> > > +
> > > + rx_desc = xdp->desc;
> > > + rxq = libeth_xdp_buff_to_rq(xdp, typeof(*rxq), xdp_rxq);
> > > +
> > > + if (!idpf_queue_has(PTP, rxq))
> > > + return -ENODATA;
> > > + if (!(rx_desc->ts_low & VIRTCHNL2_RX_FLEX_TSTAMP_VALID))
> > > + return -ENODATA;
> > RX flex desc fields are little‑endian.
> > You already convert ts_high with le32_to_cpu(), but test ts_low
> directly against the mask.
> > On big‑endian this can misdetect the bit and spuriously return -
> ENODATA.
> > Please convert ts_low to host order before the bit test.
> > See existing IDPF/ICE patterns where descriptor words are
> leXX_to_cpu()‑converted prior to FIELD_GET() / bit checks.
> > Also, per the XDP RX metadata kfunc docs, -ENODATA must reflect true
> absence of per‑packet metadata; endianness‑correct testing is required
> to uphold the semantic.
>
> The logic is copied as verbatim from idpf_rx_hwtstamp:
>
> static void
> idpf_rx_hwtstamp(const struct idpf_rx_queue *rxq,
> const struct virtchnl2_rx_flex_desc_adv_nic_3
> *rx_desc,
> struct sk_buff *skb)
> {
> u64 cached_time, ts_ns;
> u32 ts_high;
>
> if (!(rx_desc->ts_low & VIRTCHNL2_RX_FLEX_TSTAMP_VALID))
> return;
>
> cached_time = READ_ONCE(rxq->cached_phc_time);
>
> ts_high = le32_to_cpu(rx_desc->ts_high);
> ts_ns = idpf_ptp_tstamp_extend_32b_to_64b(cached_time,
> ts_high); [...]
>
> I assume that is incorrect and would need to be fixed too?
>
I think must be fixed.
With the best regards
Alex
> YiFei Zhu
...
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX hardware timestamping information to XDP
2025-11-24 8:33 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-11-24 10:51 ` YiFei Zhu
@ 2025-12-01 1:27 ` Mina Almasry
2025-12-01 7:29 ` Loktionov, Aleksandr
1 sibling, 1 reply; 8+ messages in thread
From: Mina Almasry @ 2025-12-01 1:27 UTC (permalink / raw)
To: Loktionov, Aleksandr
Cc: netdev@vger.kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org, YiFei Zhu, Alexei Starovoitov,
Daniel Borkmann, David S. Miller, Jakub Kicinski,
Jesper Dangaard Brouer, John Fastabend, Stanislav Fomichev,
Nguyen, Anthony L, Kitszel, Przemyslaw, Andrew Lunn, Eric Dumazet,
Paolo Abeni, Lobakin, Aleksander, Richard Cochran,
intel-wired-lan@lists.osuosl.org
On Mon, Nov 24, 2025 at 2:33 AM Loktionov, Aleksandr
<aleksandr.loktionov@intel.com> wrote:
>
>
>
> > -----Original Message-----
> > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> > Of Mina Almasry
> > Sent: Saturday, November 22, 2025 3:09 PM
> > To: netdev@vger.kernel.org; bpf@vger.kernel.org; linux-
> > kernel@vger.kernel.org
> > Cc: YiFei Zhu <zhuyifei@google.com>; Alexei Starovoitov
> > <ast@kernel.org>; Daniel Borkmann <daniel@iogearbox.net>; David S.
> > Miller <davem@davemloft.net>; Jakub Kicinski <kuba@kernel.org>; Jesper
> > Dangaard Brouer <hawk@kernel.org>; John Fastabend
> > <john.fastabend@gmail.com>; Stanislav Fomichev <sdf@fomichev.me>;
> > Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw
> > <przemyslaw.kitszel@intel.com>; Andrew Lunn <andrew+netdev@lunn.ch>;
> > Eric Dumazet <edumazet@google.com>; Paolo Abeni <pabeni@redhat.com>;
> > Lobakin, Aleksander <aleksander.lobakin@intel.com>; Richard Cochran
> > <richardcochran@gmail.com>; intel-wired-lan@lists.osuosl.org; Mina
> > Almasry <almasrymina@google.com>
> > Subject: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX
> > hardware timestamping information to XDP
> >
> > From: YiFei Zhu <zhuyifei@google.com>
> >
> > The logic is similar to idpf_rx_hwtstamp, but the data is exported as
> > a BPF kfunc instead of appended to an skb.
> >
> > A idpf_queue_has(PTP, rxq) condition is added to check the queue
> > supports PTP similar to idpf_rx_process_skb_fields.
> >
> > Cc: intel-wired-lan@lists.osuosl.org
> >
> > Signed-off-by: YiFei Zhu <zhuyifei@google.com>
> > Signed-off-by: Mina Almasry <almasrymina@google.com>
> > ---
> > drivers/net/ethernet/intel/idpf/xdp.c | 27
> > +++++++++++++++++++++++++++
> > 1 file changed, 27 insertions(+)
> >
> > diff --git a/drivers/net/ethernet/intel/idpf/xdp.c
> > b/drivers/net/ethernet/intel/idpf/xdp.c
> > index 21ce25b0567f..850389ca66b6 100644
> > --- a/drivers/net/ethernet/intel/idpf/xdp.c
> > +++ b/drivers/net/ethernet/intel/idpf/xdp.c
> > @@ -2,6 +2,7 @@
> > /* Copyright (C) 2025 Intel Corporation */
> >
> > #include "idpf.h"
> > +#include "idpf_ptp.h"
> > #include "idpf_virtchnl.h"
> > #include "xdp.h"
> > #include "xsk.h"
> > @@ -369,6 +370,31 @@ int idpf_xdp_xmit(struct net_device *dev, int n,
> > struct xdp_frame **frames,
> > idpf_xdp_tx_finalize);
> > }
> >
> > +static int idpf_xdpmo_rx_timestamp(const struct xdp_md *ctx, u64
> > +*timestamp) {
> > + const struct virtchnl2_rx_flex_desc_adv_nic_3 *rx_desc;
> > + const struct libeth_xdp_buff *xdp = (typeof(xdp))ctx;
> > + const struct idpf_rx_queue *rxq;
> > + u64 cached_time, ts_ns;
> > + u32 ts_high;
> > +
> > + rx_desc = xdp->desc;
> > + rxq = libeth_xdp_buff_to_rq(xdp, typeof(*rxq), xdp_rxq);
> > +
> > + if (!idpf_queue_has(PTP, rxq))
> > + return -ENODATA;
> > + if (!(rx_desc->ts_low & VIRTCHNL2_RX_FLEX_TSTAMP_VALID))
> > + return -ENODATA;
> RX flex desc fields are little‑endian.
> You already convert ts_high with le32_to_cpu(), but test ts_low directly against the mask.
> On big‑endian this can misdetect the bit and spuriously return -ENODATA.
> Please convert ts_low to host order before the bit test.
> See existing IDPF/ICE patterns where descriptor words are leXX_to_cpu()‑converted prior to FIELD_GET() / bit checks.
> Also, per the XDP RX metadata kfunc docs, -ENODATA must reflect true absence of per‑packet metadata; endianness‑correct testing is required to uphold the semantic.
>
Hey, sorry for the late reply. Initially when I read the reply, I
thought: "why not, lets add a leXX_to_cpu".
But now that I look closer to implement the change and submit v2, it
looks correct as written. ts_low is defined as a u8:
```
struct virtchnl2_rx_flex_desc_adv_nic_3 {
...
u8 ts_low;
```
So it should not be fed into any leXX_to_cpu() functions, no?
I also looked at other u8 members in this struct like `u8
status_err0_qw0` and `u8 status_err0_qw1`, and both are used in
existing code without a conversion. So it seems correct as written.
Can you reconsdirer?
If you insist some change is required, can you elaborate more on what
needs to be changed? There is no le8_to_cpu, unless a trivial one that
does nothing (one byte struct cannot be little or big endian).
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX hardware timestamping information to XDP
2025-12-01 1:27 ` Mina Almasry
@ 2025-12-01 7:29 ` Loktionov, Aleksandr
0 siblings, 0 replies; 8+ messages in thread
From: Loktionov, Aleksandr @ 2025-12-01 7:29 UTC (permalink / raw)
To: Mina Almasry
Cc: netdev@vger.kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org, YiFei Zhu, Alexei Starovoitov,
Daniel Borkmann, David S. Miller, Jakub Kicinski,
Jesper Dangaard Brouer, John Fastabend, Stanislav Fomichev,
Nguyen, Anthony L, Kitszel, Przemyslaw, Andrew Lunn, Eric Dumazet,
Paolo Abeni, Lobakin, Aleksander, Richard Cochran,
intel-wired-lan@lists.osuosl.org
> -----Original Message-----
> From: Mina Almasry <almasrymina@google.com>
> Sent: Monday, December 1, 2025 2:27 AM
> To: Loktionov, Aleksandr <aleksandr.loktionov@intel.com>
> Cc: netdev@vger.kernel.org; bpf@vger.kernel.org; linux-
> kernel@vger.kernel.org; YiFei Zhu <zhuyifei@google.com>; Alexei
> Starovoitov <ast@kernel.org>; Daniel Borkmann <daniel@iogearbox.net>;
> David S. Miller <davem@davemloft.net>; Jakub Kicinski
> <kuba@kernel.org>; Jesper Dangaard Brouer <hawk@kernel.org>; John
> Fastabend <john.fastabend@gmail.com>; Stanislav Fomichev
> <sdf@fomichev.me>; Nguyen, Anthony L <anthony.l.nguyen@intel.com>;
> Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; Andrew Lunn
> <andrew+netdev@lunn.ch>; Eric Dumazet <edumazet@google.com>; Paolo
> Abeni <pabeni@redhat.com>; Lobakin, Aleksander
> <aleksander.lobakin@intel.com>; Richard Cochran
> <richardcochran@gmail.com>; intel-wired-lan@lists.osuosl.org
> Subject: Re: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX
> hardware timestamping information to XDP
>
> On Mon, Nov 24, 2025 at 2:33 AM Loktionov, Aleksandr
> <aleksandr.loktionov@intel.com> wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On
> Behalf
> > > Of Mina Almasry
> > > Sent: Saturday, November 22, 2025 3:09 PM
> > > To: netdev@vger.kernel.org; bpf@vger.kernel.org; linux-
> > > kernel@vger.kernel.org
> > > Cc: YiFei Zhu <zhuyifei@google.com>; Alexei Starovoitov
> > > <ast@kernel.org>; Daniel Borkmann <daniel@iogearbox.net>; David S.
> > > Miller <davem@davemloft.net>; Jakub Kicinski <kuba@kernel.org>;
> > > Jesper Dangaard Brouer <hawk@kernel.org>; John Fastabend
> > > <john.fastabend@gmail.com>; Stanislav Fomichev <sdf@fomichev.me>;
> > > Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw
> > > <przemyslaw.kitszel@intel.com>; Andrew Lunn
> <andrew+netdev@lunn.ch>;
> > > Eric Dumazet <edumazet@google.com>; Paolo Abeni
> <pabeni@redhat.com>;
> > > Lobakin, Aleksander <aleksander.lobakin@intel.com>; Richard
> Cochran
> > > <richardcochran@gmail.com>; intel-wired-lan@lists.osuosl.org; Mina
> > > Almasry <almasrymina@google.com>
> > > Subject: [Intel-wired-lan] [PATCH net-next v1] idpf: export RX
> > > hardware timestamping information to XDP
> > >
> > > From: YiFei Zhu <zhuyifei@google.com>
> > >
> > > The logic is similar to idpf_rx_hwtstamp, but the data is exported
> > > as a BPF kfunc instead of appended to an skb.
> > >
> > > A idpf_queue_has(PTP, rxq) condition is added to check the queue
> > > supports PTP similar to idpf_rx_process_skb_fields.
> > >
> > > Cc: intel-wired-lan@lists.osuosl.org
> > >
> > > Signed-off-by: YiFei Zhu <zhuyifei@google.com>
> > > Signed-off-by: Mina Almasry <almasrymina@google.com>
> > > ---
> > > drivers/net/ethernet/intel/idpf/xdp.c | 27
> > > +++++++++++++++++++++++++++
> > > 1 file changed, 27 insertions(+)
> > >
> > > diff --git a/drivers/net/ethernet/intel/idpf/xdp.c
> > > b/drivers/net/ethernet/intel/idpf/xdp.c
> > > index 21ce25b0567f..850389ca66b6 100644
> > > --- a/drivers/net/ethernet/intel/idpf/xdp.c
> > > +++ b/drivers/net/ethernet/intel/idpf/xdp.c
> > > @@ -2,6 +2,7 @@
> > > /* Copyright (C) 2025 Intel Corporation */
> > >
> > > #include "idpf.h"
> > > +#include "idpf_ptp.h"
> > > #include "idpf_virtchnl.h"
> > > #include "xdp.h"
> > > #include "xsk.h"
> > > @@ -369,6 +370,31 @@ int idpf_xdp_xmit(struct net_device *dev, int
> > > n, struct xdp_frame **frames,
> > > idpf_xdp_tx_finalize); }
> > >
> > > +static int idpf_xdpmo_rx_timestamp(const struct xdp_md *ctx, u64
> > > +*timestamp) {
> > > + const struct virtchnl2_rx_flex_desc_adv_nic_3 *rx_desc;
> > > + const struct libeth_xdp_buff *xdp = (typeof(xdp))ctx;
> > > + const struct idpf_rx_queue *rxq;
> > > + u64 cached_time, ts_ns;
> > > + u32 ts_high;
> > > +
> > > + rx_desc = xdp->desc;
> > > + rxq = libeth_xdp_buff_to_rq(xdp, typeof(*rxq), xdp_rxq);
> > > +
> > > + if (!idpf_queue_has(PTP, rxq))
> > > + return -ENODATA;
> > > + if (!(rx_desc->ts_low & VIRTCHNL2_RX_FLEX_TSTAMP_VALID))
> > > + return -ENODATA;
> > RX flex desc fields are little‑endian.
> > You already convert ts_high with le32_to_cpu(), but test ts_low
> directly against the mask.
> > On big‑endian this can misdetect the bit and spuriously return -
> ENODATA.
> > Please convert ts_low to host order before the bit test.
> > See existing IDPF/ICE patterns where descriptor words are
> leXX_to_cpu()‑converted prior to FIELD_GET() / bit checks.
> > Also, per the XDP RX metadata kfunc docs, -ENODATA must reflect true
> absence of per‑packet metadata; endianness‑correct testing is required
> to uphold the semantic.
> >
>
> Hey, sorry for the late reply. Initially when I read the reply, I
> thought: "why not, lets add a leXX_to_cpu".
>
> But now that I look closer to implement the change and submit v2, it
> looks correct as written. ts_low is defined as a u8:
>
> ```
> struct virtchnl2_rx_flex_desc_adv_nic_3 { ...
> u8 ts_low;
> ```
>
> So it should not be fed into any leXX_to_cpu() functions, no?
>
> I also looked at other u8 members in this struct like `u8
> status_err0_qw0` and `u8 status_err0_qw1`, and both are used in
> existing code without a conversion. So it seems correct as written.
> Can you reconsdirer?
>
Oh, yes. You are right. For u8 byte endianness has no sense. Sorry.
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v1] idpf: export RX hardware timestamping information to XDP
2025-11-22 14:08 [PATCH net-next v1] idpf: export RX hardware timestamping information to XDP Mina Almasry
2025-11-24 8:33 ` [Intel-wired-lan] " Loktionov, Aleksandr
@ 2025-12-17 14:33 ` Alexander Lobakin
2025-12-17 14:35 ` Alexander Lobakin
1 sibling, 1 reply; 8+ messages in thread
From: Alexander Lobakin @ 2025-12-17 14:33 UTC (permalink / raw)
To: Mina Almasry
Cc: netdev, bpf, linux-kernel, YiFei Zhu, Alexei Starovoitov,
Daniel Borkmann, David S. Miller, Jakub Kicinski,
Jesper Dangaard Brouer, John Fastabend, Stanislav Fomichev,
Tony Nguyen, Przemek Kitszel, Andrew Lunn, Eric Dumazet,
Paolo Abeni, Richard Cochran, intel-wired-lan
From: Mina Almasry <almasrymina@google.com>
Date: Sat, 22 Nov 2025 14:08:36 +0000
> From: YiFei Zhu <zhuyifei@google.com>
>
> The logic is similar to idpf_rx_hwtstamp, but the data is exported
> as a BPF kfunc instead of appended to an skb.
>
> A idpf_queue_has(PTP, rxq) condition is added to check the queue
> supports PTP similar to idpf_rx_process_skb_fields.
>
> Cc: intel-wired-lan@lists.osuosl.org
>
> Signed-off-by: YiFei Zhu <zhuyifei@google.com>
> Signed-off-by: Mina Almasry <almasrymina@google.com>
> ---
> drivers/net/ethernet/intel/idpf/xdp.c | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/idpf/xdp.c b/drivers/net/ethernet/intel/idpf/xdp.c
> index 21ce25b0567f..850389ca66b6 100644
> --- a/drivers/net/ethernet/intel/idpf/xdp.c
> +++ b/drivers/net/ethernet/intel/idpf/xdp.c
> @@ -2,6 +2,7 @@
> /* Copyright (C) 2025 Intel Corporation */
>
> #include "idpf.h"
> +#include "idpf_ptp.h"
> #include "idpf_virtchnl.h"
> #include "xdp.h"
> #include "xsk.h"
> @@ -369,6 +370,31 @@ int idpf_xdp_xmit(struct net_device *dev, int n, struct xdp_frame **frames,
> idpf_xdp_tx_finalize);
> }
>
> +static int idpf_xdpmo_rx_timestamp(const struct xdp_md *ctx, u64 *timestamp)
> +{
> + const struct virtchnl2_rx_flex_desc_adv_nic_3 *rx_desc;
Sorry I know it's a late comment...
Could you please you the optimized descriptor structure from idpf/xdp.h
instead of the regular one? To be consistent with the Rx hash timestamp
function and give more room for optimization.
> + const struct libeth_xdp_buff *xdp = (typeof(xdp))ctx;
> + const struct idpf_rx_queue *rxq;
> + u64 cached_time, ts_ns;
> + u32 ts_high;
> +
> + rx_desc = xdp->desc;
> + rxq = libeth_xdp_buff_to_rq(xdp, typeof(*rxq), xdp_rxq);
> +
> + if (!idpf_queue_has(PTP, rxq))
> + return -ENODATA;
> + if (!(rx_desc->ts_low & VIRTCHNL2_RX_FLEX_TSTAMP_VALID))
> + return -ENODATA;
> +
> + cached_time = READ_ONCE(rxq->cached_phc_time);
> +
> + ts_high = le32_to_cpu(rx_desc->ts_high);
> + ts_ns = idpf_ptp_tstamp_extend_32b_to_64b(cached_time, ts_high);
> +
> + *timestamp = ts_ns;
> + return 0;
> +}
> +
> static int idpf_xdpmo_rx_hash(const struct xdp_md *ctx, u32 *hash,
> enum xdp_rss_hash_type *rss_type)
> {
> @@ -392,6 +418,7 @@ static int idpf_xdpmo_rx_hash(const struct xdp_md *ctx, u32 *hash,
> }
>
> static const struct xdp_metadata_ops idpf_xdpmo = {
> + .xmo_rx_timestamp = idpf_xdpmo_rx_timestamp,
> .xmo_rx_hash = idpf_xdpmo_rx_hash,
> };
>
>
> base-commit: e05021a829b834fecbd42b173e55382416571b2c
Thanks,
Olek
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v1] idpf: export RX hardware timestamping information to XDP
2025-12-17 14:33 ` Alexander Lobakin
@ 2025-12-17 14:35 ` Alexander Lobakin
0 siblings, 0 replies; 8+ messages in thread
From: Alexander Lobakin @ 2025-12-17 14:35 UTC (permalink / raw)
To: Mina Almasry
Cc: netdev, bpf, linux-kernel, YiFei Zhu, Alexei Starovoitov,
Daniel Borkmann, David S. Miller, Jakub Kicinski,
Jesper Dangaard Brouer, John Fastabend, Stanislav Fomichev,
Tony Nguyen, Przemek Kitszel, Andrew Lunn, Eric Dumazet,
Paolo Abeni, Richard Cochran, intel-wired-lan
From: Alexander Lobakin <aleksander.lobakin@intel.com>
Date: Wed, 17 Dec 2025 15:33:40 +0100
> From: Mina Almasry <almasrymina@google.com>
> Date: Sat, 22 Nov 2025 14:08:36 +0000
>
>> From: YiFei Zhu <zhuyifei@google.com>
>>
>> The logic is similar to idpf_rx_hwtstamp, but the data is exported
>> as a BPF kfunc instead of appended to an skb.
>>
>> A idpf_queue_has(PTP, rxq) condition is added to check the queue
>> supports PTP similar to idpf_rx_process_skb_fields.
>>
>> Cc: intel-wired-lan@lists.osuosl.org
>>
>> Signed-off-by: YiFei Zhu <zhuyifei@google.com>
>> Signed-off-by: Mina Almasry <almasrymina@google.com>
>> ---
>> drivers/net/ethernet/intel/idpf/xdp.c | 27 +++++++++++++++++++++++++++
>> 1 file changed, 27 insertions(+)
>>
>> diff --git a/drivers/net/ethernet/intel/idpf/xdp.c b/drivers/net/ethernet/intel/idpf/xdp.c
>> index 21ce25b0567f..850389ca66b6 100644
>> --- a/drivers/net/ethernet/intel/idpf/xdp.c
>> +++ b/drivers/net/ethernet/intel/idpf/xdp.c
>> @@ -2,6 +2,7 @@
>> /* Copyright (C) 2025 Intel Corporation */
>>
>> #include "idpf.h"
>> +#include "idpf_ptp.h"
>> #include "idpf_virtchnl.h"
>> #include "xdp.h"
>> #include "xsk.h"
>> @@ -369,6 +370,31 @@ int idpf_xdp_xmit(struct net_device *dev, int n, struct xdp_frame **frames,
>> idpf_xdp_tx_finalize);
>> }
>>
>> +static int idpf_xdpmo_rx_timestamp(const struct xdp_md *ctx, u64 *timestamp)
Also please put this function *after* rx_hash() to...
>> +{
>> + const struct virtchnl2_rx_flex_desc_adv_nic_3 *rx_desc;
>
> Sorry I know it's a late comment...
>
> Could you please you the optimized descriptor structure from idpf/xdp.h
> instead of the regular one? To be consistent with the Rx hash timestamp
> function and give more room for optimization.
>
>> + const struct libeth_xdp_buff *xdp = (typeof(xdp))ctx;
>> + const struct idpf_rx_queue *rxq;
>> + u64 cached_time, ts_ns;
>> + u32 ts_high;
>> +
>> + rx_desc = xdp->desc;
>> + rxq = libeth_xdp_buff_to_rq(xdp, typeof(*rxq), xdp_rxq);
>> +
>> + if (!idpf_queue_has(PTP, rxq))
>> + return -ENODATA;
>> + if (!(rx_desc->ts_low & VIRTCHNL2_RX_FLEX_TSTAMP_VALID))
>> + return -ENODATA;
>> +
>> + cached_time = READ_ONCE(rxq->cached_phc_time);
>> +
>> + ts_high = le32_to_cpu(rx_desc->ts_high);
>> + ts_ns = idpf_ptp_tstamp_extend_32b_to_64b(cached_time, ts_high);
>> +
>> + *timestamp = ts_ns;
>> + return 0;
>> +}
>> +
>> static int idpf_xdpmo_rx_hash(const struct xdp_md *ctx, u32 *hash,
>> enum xdp_rss_hash_type *rss_type)
>> {
>> @@ -392,6 +418,7 @@ static int idpf_xdpmo_rx_hash(const struct xdp_md *ctx, u32 *hash,
>> }
>>
>> static const struct xdp_metadata_ops idpf_xdpmo = {
>> + .xmo_rx_timestamp = idpf_xdpmo_rx_timestamp,
>> .xmo_rx_hash = idpf_xdpmo_rx_hash,
...keep the alphabetic sorting here.
>> };
>>
>>
>> base-commit: e05021a829b834fecbd42b173e55382416571b2c
Thanks,
Olek
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-12-17 14:37 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-22 14:08 [PATCH net-next v1] idpf: export RX hardware timestamping information to XDP Mina Almasry
2025-11-24 8:33 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-11-24 10:51 ` YiFei Zhu
2025-11-24 11:37 ` Loktionov, Aleksandr
2025-12-01 1:27 ` Mina Almasry
2025-12-01 7:29 ` Loktionov, Aleksandr
2025-12-17 14:33 ` Alexander Lobakin
2025-12-17 14:35 ` Alexander Lobakin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox