* [PATCH] net/iavf: check PTP capabilities during init
@ 2025-11-21 23:39 Jacob Keller
2025-11-24 12:09 ` Bruce Richardson
2025-11-24 15:45 ` Patrick Robb
0 siblings, 2 replies; 3+ messages in thread
From: Jacob Keller @ 2025-11-21 23:39 UTC (permalink / raw)
To: dev
Cc: Paul Greenwalt, Vladimir Medvedkin, Kevin Traynor, songx.jiale,
Jacob Keller
Commit d21c2fe6e5a1 ("net/iavf: fix check for PF Rx timestamp support")
added a check against whether the PF has actually enabled Rx
timestamping in iavf_dev_info_get(). Unfortunately, this function may be
called prior to the PTP capabilities being exchanged, which results in
Rx timestamping not being supported.
Fix this by checking the PF PTP capabilities near the end of
iavf_dev_init(). This ensures the VF knows the capabilities at the point
where the iavf_dev_info_get() function can be called. Doing the check at
init is better than inside the info callback, as the info callback is
called many times.
The capability exchange in iavf_dev_start() is kept to ensure that
capabilities are updated after resets.
Fixes: d21c2fe6e5a1 ("net/iavf: fix check for PF Rx timestamp support")
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
---
My recent fix to prevent enabling Rx timestamping on PFs which do support
PTP capability but do not report Rx timestamping accidentally broke PFs
which *do* support Rx timestamping. This is because the driver did not
exchange capability before reporting its device info. Fix this by checking
PF capabilities during iavf_dev_init().
---
drivers/net/intel/iavf/iavf_ethdev.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/net/intel/iavf/iavf_ethdev.c b/drivers/net/intel/iavf/iavf_ethdev.c
index 3ef766de4704..9b07b11a6b51 100644
--- a/drivers/net/intel/iavf/iavf_ethdev.c
+++ b/drivers/net/intel/iavf/iavf_ethdev.c
@@ -2887,6 +2887,14 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
}
}
+ /* Get PTP caps early to verify device capabilities */
+ if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_CAP_PTP) {
+ if (iavf_get_ptp_cap(adapter)) {
+ PMD_INIT_LOG(ERR, "Failed to get ptp capability");
+ goto security_init_err;
+ }
+ }
+
iavf_default_rss_disable(adapter);
iavf_dev_stats_reset(eth_dev);
---
base-commit: ef98b88455bf4a7c8b7aa3106a761c9e9270d6a3
change-id: 20251121-jk-dpdk-iavf-rx-timestamping-fix-abdcb42f0197
Best regards,
--
Jacob Keller <jacob.e.keller@intel.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] net/iavf: check PTP capabilities during init
2025-11-21 23:39 [PATCH] net/iavf: check PTP capabilities during init Jacob Keller
@ 2025-11-24 12:09 ` Bruce Richardson
2025-11-24 15:45 ` Patrick Robb
1 sibling, 0 replies; 3+ messages in thread
From: Bruce Richardson @ 2025-11-24 12:09 UTC (permalink / raw)
To: Jacob Keller
Cc: dev, Paul Greenwalt, Vladimir Medvedkin, Kevin Traynor, songx.jiale
On Fri, Nov 21, 2025 at 03:39:37PM -0800, Jacob Keller wrote:
> Commit d21c2fe6e5a1 ("net/iavf: fix check for PF Rx timestamp support")
> added a check against whether the PF has actually enabled Rx
> timestamping in iavf_dev_info_get(). Unfortunately, this function may be
> called prior to the PTP capabilities being exchanged, which results in
> Rx timestamping not being supported.
>
> Fix this by checking the PF PTP capabilities near the end of
> iavf_dev_init(). This ensures the VF knows the capabilities at the point
> where the iavf_dev_info_get() function can be called. Doing the check at
> init is better than inside the info callback, as the info callback is
> called many times.
>
> The capability exchange in iavf_dev_start() is kept to ensure that
> capabilities are updated after resets.
>
> Fixes: d21c2fe6e5a1 ("net/iavf: fix check for PF Rx timestamp support")
> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
> ---
> My recent fix to prevent enabling Rx timestamping on PFs which do support
> PTP capability but do not report Rx timestamping accidentally broke PFs
> which *do* support Rx timestamping. This is because the driver did not
> exchange capability before reporting its device info. Fix this by checking
> PF capabilities during iavf_dev_init().
> ---
> drivers/net/intel/iavf/iavf_ethdev.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/net/intel/iavf/iavf_ethdev.c b/drivers/net/intel/iavf/iavf_ethdev.c
> index 3ef766de4704..9b07b11a6b51 100644
> --- a/drivers/net/intel/iavf/iavf_ethdev.c
> +++ b/drivers/net/intel/iavf/iavf_ethdev.c
> @@ -2887,6 +2887,14 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
> }
> }
>
> + /* Get PTP caps early to verify device capabilities */
> + if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_CAP_PTP) {
> + if (iavf_get_ptp_cap(adapter)) {
> + PMD_INIT_LOG(ERR, "Failed to get ptp capability");
> + goto security_init_err;
> + }
> + }
> +
With this code added here, do we still need to keep - or should we keep -
the existing call in iavf_dev_start()? I would have expected the call to
iavf_get_ptp_cap to be moved rather than duplicated. Is there a reason
to keep the existing call?
/Bruce
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] net/iavf: check PTP capabilities during init
2025-11-21 23:39 [PATCH] net/iavf: check PTP capabilities during init Jacob Keller
2025-11-24 12:09 ` Bruce Richardson
@ 2025-11-24 15:45 ` Patrick Robb
1 sibling, 0 replies; 3+ messages in thread
From: Patrick Robb @ 2025-11-24 15:45 UTC (permalink / raw)
To: Jacob Keller; +Cc: dev
[-- Attachment #1: Type: text/plain, Size: 2621 bytes --]
Hi. There are some DTS failures on this testbed due to misconfiguration
applied by us at UNH last week. I'm fixing it and rerunning testing which
will update the CI checks for your patchseries.
On Fri, Nov 21, 2025 at 6:39 PM Jacob Keller <jacob.e.keller@intel.com>
wrote:
> Commit d21c2fe6e5a1 ("net/iavf: fix check for PF Rx timestamp support")
> added a check against whether the PF has actually enabled Rx
> timestamping in iavf_dev_info_get(). Unfortunately, this function may be
> called prior to the PTP capabilities being exchanged, which results in
> Rx timestamping not being supported.
>
> Fix this by checking the PF PTP capabilities near the end of
> iavf_dev_init(). This ensures the VF knows the capabilities at the point
> where the iavf_dev_info_get() function can be called. Doing the check at
> init is better than inside the info callback, as the info callback is
> called many times.
>
> The capability exchange in iavf_dev_start() is kept to ensure that
> capabilities are updated after resets.
>
> Fixes: d21c2fe6e5a1 ("net/iavf: fix check for PF Rx timestamp support")
> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
> ---
> My recent fix to prevent enabling Rx timestamping on PFs which do support
> PTP capability but do not report Rx timestamping accidentally broke PFs
> which *do* support Rx timestamping. This is because the driver did not
> exchange capability before reporting its device info. Fix this by checking
> PF capabilities during iavf_dev_init().
> ---
> drivers/net/intel/iavf/iavf_ethdev.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/net/intel/iavf/iavf_ethdev.c
> b/drivers/net/intel/iavf/iavf_ethdev.c
> index 3ef766de4704..9b07b11a6b51 100644
> --- a/drivers/net/intel/iavf/iavf_ethdev.c
> +++ b/drivers/net/intel/iavf/iavf_ethdev.c
> @@ -2887,6 +2887,14 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
> }
> }
>
> + /* Get PTP caps early to verify device capabilities */
> + if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_CAP_PTP) {
> + if (iavf_get_ptp_cap(adapter)) {
> + PMD_INIT_LOG(ERR, "Failed to get ptp capability");
> + goto security_init_err;
> + }
> + }
> +
> iavf_default_rss_disable(adapter);
>
> iavf_dev_stats_reset(eth_dev);
>
> ---
> base-commit: ef98b88455bf4a7c8b7aa3106a761c9e9270d6a3
> change-id: 20251121-jk-dpdk-iavf-rx-timestamping-fix-abdcb42f0197
>
> Best regards,
> --
> Jacob Keller <jacob.e.keller@intel.com>
>
>
[-- Attachment #2: Type: text/html, Size: 3303 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-11-24 15:47 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-21 23:39 [PATCH] net/iavf: check PTP capabilities during init Jacob Keller
2025-11-24 12:09 ` Bruce Richardson
2025-11-24 15:45 ` Patrick Robb
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).