On Mon, 16 Oct 2023 07:22:04 -0700 Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > On Mon, 16 Oct 2023 12:41:34 +0200 Köry Maincent wrote: > > > Netdev vs phylib is an implementation detail of Linux. > > > I'm also surprised that you changed this. > > > > This is the main reason I changed this. This is Linux implementation > > purpose to know whether it should go through netdev or phylib, and then > > each of these drivers could use other timestamps which are hardware > > related. > > For an integrated design there's 90% chance the stamping is done > by the MAC. Even if it isn't there's no difference between PHY > and MAC in terms of quality. Ok, but there might be quality difference in case of several timestamp configuration done in the MAC. Like the timestamping precision vs frequency precision. In that case how ethtool would tell the driver to switch between them? My solution could work for this case by simply adding new values to the enum: enum { NETDEV_TIMESTAMPING = (1 << 0), PHYLIB_TIMESTAMPING = (1 << 1), MAC_TS_PRECISION = (1 << 2)|(1 << 0), MAC_FREQ_PRECISION = (2 << 2)|(1 << 0), } Automatically Linux will go through the netdev implementation and could pass the enum value to the netdev driver. > But there is a big difference between MAC/PHY and DMA which would > both fall under NETDEV? Currently there is no DMA timestamping support right? And I suppose it fill fall under the net device management? In that case we will have MAC and DMA under netdev and PHY under phylib and we won't have to do anything more than this timestamping management patch: https://lore.kernel.org/netdev/20231009155138.86458-14-kory.maincent@xxxxxxxxxxx/