[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211105172539.2bmj4bavcyw2uimf@skbuf>
Date: Fri, 5 Nov 2021 19:25:39 +0200
From: Vladimir Oltean <olteanv@...il.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: Richard Cochran <richardcochran@...il.com>,
Martin Kaistra <martin.kaistra@...utronix.de>,
Florian Fainelli <f.fainelli@...il.com>,
Andrew Lunn <andrew@...n.ch>,
Vivien Didelot <vivien.didelot@...il.com>,
Kurt Kanzenbach <kurt@...utronix.de>,
"David S. Miller" <davem@...emloft.net>,
John Stultz <john.stultz@...aro.org>,
Thomas Gleixner <tglx@...utronix.de>,
Stephen Boyd <sboyd@...nel.org>,
Russell King <linux@...linux.org.uk>,
Marc Kleine-Budde <mkl@...gutronix.de>,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org
Subject: Re: [PATCH 7/7] net: dsa: b53: Expose PTP timestamping ioctls to
userspace
On Fri, Nov 05, 2021 at 08:09:39AM -0700, Jakub Kicinski wrote:
> On Fri, 5 Nov 2021 16:28:33 +0200 Vladimir Oltean wrote:
> > On Fri, Nov 05, 2021 at 07:13:19AM -0700, Richard Cochran wrote:
> > > On Fri, Nov 05, 2021 at 02:38:01PM +0100, Martin Kaistra wrote:
> > > > Ok, then I will remove HWTSTAMP_FILTER_PTP_V2_(EVENT|SYNC|DELAY_REQ) from
> > > > this list, what about HWTSTAMP_FILTER_ALL?
> > >
> > > AKK means time stamp every received frame, so your driver should
> > > return an error in this case as well.
> >
> > What is the expected convention exactly? There are other drivers that
> > downgrade the user application's request to what they support, and at
> > least ptp4l does not error out, it just prints a warning.
>
> Which is sad because that's one of the best documented parts of our API:
>
> Desired behavior is passed into the kernel and to a specific device by
> calling ioctl(SIOCSHWTSTAMP) with a pointer to a struct ifreq whose
> ifr_data points to a struct hwtstamp_config. The tx_type and
> rx_filter are hints to the driver what it is expected to do. If
> the requested fine-grained filtering for incoming packets is not
> supported, the driver may time stamp more than just the requested types
> of packets.
>
> Drivers are free to use a more permissive configuration than the requested
> configuration. It is expected that drivers should only implement directly the
> most generic mode that can be supported. For example if the hardware can
> support HWTSTAMP_FILTER_V2_EVENT, then it should generally always upscale
> HWTSTAMP_FILTER_V2_L2_SYNC_MESSAGE, and so forth, as HWTSTAMP_FILTER_V2_EVENT
> is more generic (and more useful to applications).
>
> A driver which supports hardware time stamping shall update the struct
> with the actual, possibly more permissive configuration. If the
> requested packets cannot be time stamped, then nothing should be
> changed and ERANGE shall be returned (in contrast to EINVAL, which
> indicates that SIOCSHWTSTAMP is not supported at all).
>
> https://www.kernel.org/doc/html/latest/networking/timestamping.html#hardware-timestamping-configuration-siocshwtstamp-and-siocghwtstamp
Yeah, sorry, I've been all over that documentation file for the past few
days, but I missed that section. "that's one of the best documented
parts of our API" is a nice euphemism for all the SO_TIMESTAMPING flags :)
Powered by blists - more mailing lists