[Intel-wired-lan] [PATCH iwl-next v7 00/12] Add support for Rx timestamping for both ice and iavf drivers.
Mateusz Polchlopek
mateusz.polchlopek at intel.com
Tue Jun 4 13:13:48 UTC 2024
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.
---
v7:
- changed .ndo_eth_ioctl to .ndo_hwtstamp_get and .ndo_hwtstamp_set
(according to Kuba's suggestion) - patch 11
v6:
- reordered tags
- added RB tags where applicable
- removed redundant instructions in ifs - patch 4 and patch 5
- changed teardown to LIFO, adapter->ptp.initialized = false
moved to the top of function - patch 6
- changed cpu-endianess for testing - patch 9
- aligned to libeth changes - patch 9
https://lore.kernel.org/netdev/20240528112301.5374-1-mateusz.polchlopek@intel.com/
v5:
- fixed all new issues generated by this series in kernel-doc
https://lore.kernel.org/netdev/20240418052500.50678-1-mateusz.polchlopek@intel.com/
v4:
- fixed duplicated argument in iavf_virtchnl.c reported by coccicheck
https://lore.kernel.org/netdev/20240410121706.6223-1-mateusz.polchlopek@intel.com/
v3:
- added RB in commit 6
- removed inline keyword in commit 9
- fixed sparse issues in commit 9 and commit 10
- used GENMASK_ULL when possible in commit 9
https://lore.kernel.org/netdev/20240403131927.87021-1-mateusz.polchlopek@intel.com/
v2:
- fixed warning related to wrong specifier to dev_err_once in
commit 7
- fixed warnings related to unused variables in commit 9
https://lore.kernel.org/netdev/20240327132543.15923-1-mateusz.polchlopek@intel.com/
v1:
- initial series
https://lore.kernel.org/netdev/20240326115116.10040-1-mateusz.polchlopek@intel.com/
---
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 (1):
iavf: Implement checking DD desc field
Simei Su (1):
ice: support Rx timestamp on flex descriptor
drivers/net/ethernet/intel/iavf/Makefile | 3 +-
drivers/net/ethernet/intel/iavf/iavf.h | 33 +-
drivers/net/ethernet/intel/iavf/iavf_main.c | 238 +++++++-
drivers/net/ethernet/intel/iavf/iavf_ptp.c | 543 ++++++++++++++++++
drivers/net/ethernet/intel/iavf/iavf_ptp.h | 49 ++
drivers/net/ethernet/intel/iavf/iavf_txrx.c | 425 +++++++++++---
drivers/net/ethernet/intel/iavf/iavf_txrx.h | 26 +-
drivers/net/ethernet/intel/iavf/iavf_type.h | 148 +++--
.../net/ethernet/intel/iavf/iavf_virtchnl.c | 238 ++++++++
drivers/net/ethernet/intel/ice/ice_base.c | 3 -
drivers/net/ethernet/intel/ice/ice_ptp.c | 4 +-
drivers/net/ethernet/intel/ice/ice_ptp.h | 2 +
drivers/net/ethernet/intel/ice/ice_vf_lib.h | 2 +
drivers/net/ethernet/intel/ice/ice_virtchnl.c | 86 ++-
drivers/net/ethernet/intel/ice/ice_virtchnl.h | 2 +
.../intel/ice/ice_virtchnl_allowlist.c | 6 +
include/linux/avf/virtchnl.h | 127 +++-
17 files changed, 1776 insertions(+), 159 deletions(-)
create mode 100644 drivers/net/ethernet/intel/iavf/iavf_ptp.c
create mode 100644 drivers/net/ethernet/intel/iavf/iavf_ptp.h
--
2.38.1
More information about the Intel-wired-lan
mailing list