mbox series

[net-next,00/14,pull,request] ice, iavf: Add support for Rx timestamping

Message ID 20250214192739.1175740-1-anthony.l.nguyen@intel.com (mailing list archive)
Headers show
Series ice, iavf: Add support for Rx timestamping | expand

Message

Tony Nguyen Feb. 14, 2025, 7:27 p.m. UTC
Mateusz Polchlopek says:

Initially, during VF creation it registers the PTP clock in
the system and negotiates with PF it's capabilities. In the
meantime the PF enables the Flexible Descriptor for VF.
Only this type of descriptor allows to receive Rx timestamps.

Enabling virtual clock would be possible, though it would probably
perform poorly due to the lack of direct time access.

Enable timestamping should be done using userspace tools, e.g.
hwstamp_ctl -i $VF -r 14

In order to report the timestamps to userspace, the VF extends
timestamp to 40b.

To support this feature the flexible descriptors and PTP part
in iavf driver have been introduced.
---
IWL: https://lore.kernel.org/intel-wired-lan/20241106173731.4272-1-mateusz.polchlopek@intel.com/

The following are changes since commit 7a7e0197133d18cfd9931e7d3a842d0f5730223f:
  Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 100GbE

Jacob Keller (10):
  virtchnl: add support for enabling PTP on iAVF
  virtchnl: add enumeration for the rxdid format
  iavf: add support for negotiating flexible RXDID format
  iavf: negotiate PTP capabilities
  iavf: add initial framework for registering PTP clock
  iavf: add support for indirect access to PHC time
  iavf: periodically cache PHC time
  iavf: refactor iavf_clean_rx_irq to support legacy and flex
    descriptors
  iavf: handle set and get timestamps ops
  iavf: add support for Rx timestamps to hotpath

Mateusz Polchlopek (3):
  libeth: move idpf_rx_csum_decoded and idpf_rx_extracted
  iavf: define Rx descriptors as qwords
  iavf: Implement checking DD desc field

Simei Su (1):
  ice: support Rx timestamp on flex descriptor

 drivers/net/ethernet/intel/Kconfig            |   1 +
 drivers/net/ethernet/intel/iavf/Makefile      |   2 +
 drivers/net/ethernet/intel/iavf/iavf.h        |  35 +-
 drivers/net/ethernet/intel/iavf/iavf_main.c   | 228 +++++++-
 drivers/net/ethernet/intel/iavf/iavf_ptp.c    | 485 ++++++++++++++++++
 drivers/net/ethernet/intel/iavf/iavf_ptp.h    |  47 ++
 drivers/net/ethernet/intel/iavf/iavf_trace.h  |   6 +-
 drivers/net/ethernet/intel/iavf/iavf_txrx.c   | 433 ++++++++++++----
 drivers/net/ethernet/intel/iavf/iavf_txrx.h   |  24 +-
 drivers/net/ethernet/intel/iavf/iavf_type.h   | 239 ++++-----
 drivers/net/ethernet/intel/iavf/iavf_types.h  |  34 ++
 .../net/ethernet/intel/iavf/iavf_virtchnl.c   | 203 ++++++++
 drivers/net/ethernet/intel/ice/ice_base.c     |   3 -
 drivers/net/ethernet/intel/ice/ice_lib.c      |   5 +-
 drivers/net/ethernet/intel/ice/ice_ptp.c      |   4 +-
 drivers/net/ethernet/intel/ice/ice_ptp.h      |   8 +
 drivers/net/ethernet/intel/ice/ice_vf_lib.h   |   3 +
 drivers/net/ethernet/intel/ice/ice_virtchnl.c |  80 ++-
 drivers/net/ethernet/intel/ice/ice_virtchnl.h |   6 +
 .../intel/ice/ice_virtchnl_allowlist.c        |   7 +
 .../ethernet/intel/idpf/idpf_singleq_txrx.c   |  51 +-
 drivers/net/ethernet/intel/idpf/idpf_txrx.c   |  16 +-
 drivers/net/ethernet/intel/idpf/idpf_txrx.h   |  19 -
 include/linux/avf/virtchnl.h                  | 135 ++++-
 include/net/libeth/rx.h                       |  47 ++
 25 files changed, 1790 insertions(+), 331 deletions(-)
 create mode 100644 drivers/net/ethernet/intel/iavf/iavf_ptp.c
 create mode 100644 drivers/net/ethernet/intel/iavf/iavf_ptp.h
 create mode 100644 drivers/net/ethernet/intel/iavf/iavf_types.h

Comments

patchwork-bot+netdevbpf@kernel.org Feb. 18, 2025, 1:20 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (main)
by Tony Nguyen <anthony.l.nguyen@intel.com>:

On Fri, 14 Feb 2025 11:27:21 -0800 you wrote:
> Mateusz Polchlopek says:
> 
> Initially, during VF creation it registers the PTP clock in
> the system and negotiates with PF it's capabilities. In the
> meantime the PF enables the Flexible Descriptor for VF.
> Only this type of descriptor allows to receive Rx timestamps.
> 
> [...]

Here is the summary with links:
  - [net-next,01/14] virtchnl: add support for enabling PTP on iAVF
    https://git.kernel.org/netdev/net-next/c/27ebd8bf9e4b
  - [net-next,02/14] ice: support Rx timestamp on flex descriptor
    https://git.kernel.org/netdev/net-next/c/7c1178a9df58
  - [net-next,03/14] virtchnl: add enumeration for the rxdid format
    https://git.kernel.org/netdev/net-next/c/6a88c797ab40
  - [net-next,04/14] iavf: add support for negotiating flexible RXDID format
    https://git.kernel.org/netdev/net-next/c/2a86e210f1a1
  - [net-next,05/14] iavf: negotiate PTP capabilities
    https://git.kernel.org/netdev/net-next/c/3247d65ad9de
  - [net-next,06/14] iavf: add initial framework for registering PTP clock
    https://git.kernel.org/netdev/net-next/c/d734223b2f0d
  - [net-next,07/14] iavf: add support for indirect access to PHC time
    https://git.kernel.org/netdev/net-next/c/52e3beac764d
  - [net-next,08/14] iavf: periodically cache PHC time
    https://git.kernel.org/netdev/net-next/c/7c01dbfc8a1c
  - [net-next,09/14] libeth: move idpf_rx_csum_decoded and idpf_rx_extracted
    https://git.kernel.org/netdev/net-next/c/ce5cf4af7ceb
  - [net-next,10/14] iavf: define Rx descriptors as qwords
    https://git.kernel.org/netdev/net-next/c/e9f476d7b39c
  - [net-next,11/14] iavf: refactor iavf_clean_rx_irq to support legacy and flex descriptors
    https://git.kernel.org/netdev/net-next/c/2dc8e7c36d80
  - [net-next,12/14] iavf: Implement checking DD desc field
    https://git.kernel.org/netdev/net-next/c/8447357e7b04
  - [net-next,13/14] iavf: handle set and get timestamps ops
    https://git.kernel.org/netdev/net-next/c/51534239ef13
  - [net-next,14/14] iavf: add support for Rx timestamps to hotpath
    https://git.kernel.org/netdev/net-next/c/48ccdcd87e0d

You are awesome, thank you!