On Fri, Nov 24, 2023 at 12:28 PM Vladimir Oltean <vladimir.oltean@xxxxxxx> wrote: > > Hi Willem, > > On Wed, Nov 22, 2023 at 01:11:02PM -0500, Willem de Bruijn wrote: > > There already is a disconnect between configuring hardware timestamp > > generation. Through the ioctl, which is a global admin-only interface. > > And requesting timestamps with SO_TIMESTAMPING. > > > > Today the user of ptp4l already has to know that the admin has > > configured the right RX and TX filters. That is no different if > > multiple filters can be installed? (PHY for PTP, DMA for everything > > else). > > Are you saying that ptp4l doesn't configure the RX and TX filters by > itself, just the admin had to do that? Because it does. > https://github.com/richardcochran/linuxptp/blob/master/sk.c#L59 > > I'm not seeing the disconnect. SO_TIMESTAMPING is for the socket, > SIOCSHWTSTAMP is for the configuration at the device level. > > It _is_ different if multiple filters can be installed, because either > we let things be (and ptp4l issues the same ioctl which affects the > default hwtstamp provider, which may or may not coincide with what we > intend), or we teach ptp4l to deal with the multitude of providers that > a port may have. I see. By disconnect, I meant that the socket option is unprivileged and can be set by many processes, while the ioctl is a global privileged setting, so must be under control of a single admin. But I did not know that ptp4l can take on both those roles for PTP. Perhaps multiple SIOCSHWTSTAMP rules can coexist, up to one per level: HWTSTAMP_FILTER_PTP_V2_EVENT, level=PHY HWTSTAMP_FILTER_ALL, level, level=DMA Then ptp4l can manage all levels except the DMA level. And DMA timestamps can be configured independently by another admin. If only one timestamp can be communicated to the host, the earliest match must takes precedence. Jakub pointed out how one device handles this by having a separate queue for PHY timestamped packets. This does not address the issue that packets with different precision skb_shinfo(skb)->hwtstamps->hwtstamp may now exist in the system. All packets reaching ptp4l sockets must have a high resolution source, but there is no explicit annotation to ensure or check this. This is fully based on trusting the HWSTAMP_FILTER. Expanding the skb infra and cmsg might be follow-on work.