mbox series

[net-next,00/12] ionic: add PTP and hw clock support

Message ID 20210401175610.44431-1-snelson@pensando.io (mailing list archive)
Headers show
Series ionic: add PTP and hw clock support | expand

Message

Shannon Nelson April 1, 2021, 5:55 p.m. UTC
This patchset adds support for accessing the DSC hardware clock and
for offloading PTP timestamping.

Tx packet timestamping happens through a separate Tx queue set up with
expanded completion descriptors that can report the timestamp.

Rx timestamping can happen either on all queues, or on a separate
timestamping queue when specific filtering is requested.  Again, the
timestamps are reported with the expanded completion descriptors.

The timestamping offload ability is advertised but not enabled until an
OS service asks for it.  At that time the driver's queues are reconfigured
to use the different completion descriptors and the private processing
queues as needed.

Reading the raw clock value comes through a new pair of values in the
device info registers in BAR0.  These high and low values are interpreted
with help from new clock mask, mult, and shift values in the device
identity information.

First we add the ability to detect new queue features, then the handling
of the new descriptor sizes.  After adding the new interface structures,
we start adding the support code, saving the advertising to the stack
for last.

Shannon Nelson (12):
  ionic: add new queue features to interface
  ionic: add handling of larger descriptors
  ionic: add hw timestamp structs to interface
  ionic: split adminq post and wait calls
  ionic: add hw timestamp support files
  ionic: link in the new hw timestamp code
  ionic: add rx filtering for hw timestamp steering
  ionic: set up hw timestamp queues
  ionic: add and enable tx and rx timestamp handling
  ionic: add ethtool support for PTP
  ionic: ethtool ptp stats
  ionic: advertise support for hardware timestamps

 drivers/net/ethernet/pensando/ionic/Makefile  |   1 +
 drivers/net/ethernet/pensando/ionic/ionic.h   |   6 +
 .../net/ethernet/pensando/ionic/ionic_dev.c   |   2 +
 .../net/ethernet/pensando/ionic/ionic_dev.h   |   3 +
 .../ethernet/pensando/ionic/ionic_ethtool.c   |  93 +++
 .../net/ethernet/pensando/ionic/ionic_if.h    | 214 ++++++-
 .../net/ethernet/pensando/ionic/ionic_lif.c   | 439 ++++++++++++-
 .../net/ethernet/pensando/ionic/ionic_lif.h   |  75 +++
 .../net/ethernet/pensando/ionic/ionic_main.c  |  17 +-
 .../net/ethernet/pensando/ionic/ionic_phc.c   | 589 ++++++++++++++++++
 .../ethernet/pensando/ionic/ionic_rx_filter.c |  21 +
 .../ethernet/pensando/ionic/ionic_rx_filter.h |   1 +
 .../net/ethernet/pensando/ionic/ionic_stats.c |  38 +-
 .../net/ethernet/pensando/ionic/ionic_txrx.c  | 138 +++-
 .../net/ethernet/pensando/ionic/ionic_txrx.h  |   3 +
 15 files changed, 1565 insertions(+), 75 deletions(-)
 create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_phc.c

Comments

Andrew Lunn April 1, 2021, 9:02 p.m. UTC | #1
On Thu, Apr 01, 2021 at 10:55:58AM -0700, Shannon Nelson wrote:
> This patchset adds support for accessing the DSC hardware clock and
> for offloading PTP timestamping.

Hi Shannon

Please always Cc: the PTP maintainer for PTP patches.
Richard Cochran <richardcochran@gmail.com>

	Andrew
Shannon Nelson April 1, 2021, 9:11 p.m. UTC | #2
On 4/1/21 2:02 PM, Andrew Lunn wrote:
> On Thu, Apr 01, 2021 at 10:55:58AM -0700, Shannon Nelson wrote:
>> This patchset adds support for accessing the DSC hardware clock and
>> for offloading PTP timestamping.
> Hi Shannon
>
> Please always Cc: the PTP maintainer for PTP patches.
> Richard Cochran <richardcochran@gmail.com>
>
> 	Andrew

Thanks for the heads-up, Andrew, I will do so on any followups.
sln
patchwork-bot+netdevbpf@kernel.org April 2, 2021, 9:30 p.m. UTC | #3
Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Thu,  1 Apr 2021 10:55:58 -0700 you wrote:
> This patchset adds support for accessing the DSC hardware clock and
> for offloading PTP timestamping.
> 
> Tx packet timestamping happens through a separate Tx queue set up with
> expanded completion descriptors that can report the timestamp.
> 
> Rx timestamping can happen either on all queues, or on a separate
> timestamping queue when specific filtering is requested.  Again, the
> timestamps are reported with the expanded completion descriptors.
> 
> [...]

Here is the summary with links:
  - [net-next,01/12] ionic: add new queue features to interface
    https://git.kernel.org/netdev/net-next/c/57a3a98d7c0a
  - [net-next,02/12] ionic: add handling of larger descriptors
    https://git.kernel.org/netdev/net-next/c/0ec9f6669a7d
  - [net-next,03/12] ionic: add hw timestamp structs to interface
    https://git.kernel.org/netdev/net-next/c/3da258439e89
  - [net-next,04/12] ionic: split adminq post and wait calls
    https://git.kernel.org/netdev/net-next/c/4f1704faa013
  - [net-next,05/12] ionic: add hw timestamp support files
    https://git.kernel.org/netdev/net-next/c/fee6efce565d
  - [net-next,06/12] ionic: link in the new hw timestamp code
    https://git.kernel.org/netdev/net-next/c/61db421da31b
  - [net-next,07/12] ionic: add rx filtering for hw timestamp steering
    https://git.kernel.org/netdev/net-next/c/ab470bbe7aba
  - [net-next,08/12] ionic: set up hw timestamp queues
    https://git.kernel.org/netdev/net-next/c/f0790bcd3606
  - [net-next,09/12] ionic: add and enable tx and rx timestamp handling
    https://git.kernel.org/netdev/net-next/c/a8771bfe0554
  - [net-next,10/12] ionic: add ethtool support for PTP
    https://git.kernel.org/netdev/net-next/c/f8ba81da73fc
  - [net-next,11/12] ionic: ethtool ptp stats
    https://git.kernel.org/netdev/net-next/c/196f56c07f91
  - [net-next,12/12] ionic: advertise support for hardware timestamps
    https://git.kernel.org/netdev/net-next/c/afeefec67736

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html