On Fri, May 13, 2016 at 04:12:52PM -0700, Guy Harris wrote: > The Linux implementation currently implements the inquiry by doing a > ETHTOOL_GET_TS_INFO SIOETHTOOL ioctl and looking at the > so_timestamping bits, if the linux/ethtool.h header defines > ETHTOOL_GET_TS_INFO and the ioctl succeeds on the device.
So far, so good. > This is inadequate - as libpcap requests hardware time stamping for > all packets, it should also check whether HWTSTAMP_FILTER_ALL is set > in rx_filters, and only offer hardware time stamping if it's set. The SO_TIMESTAMPING and SIOCSHWTSTAMP interfaces predate ETHTOOL_GET_TS_INFO, and they work fine without it. Applications should simply use SIOCSHWTSTAMP to request the mode that they need and check the result. That said, the information in ETHTOOL_GET_TS_INFO should be correct. > Is it the case that only the ixgbe_mac_X550 and ixgbe_mac_X550EM_x > controllers support HWTSTAMP_FILTER_ALL? Looks like it. > If so, shouldn't ixgbe_get_ts_info() be doing something such as: > if (adapter->hw.mac.type >= ixgbe_mac_X550) > info->rx_filters |= (1 << HWTSTAMP_FILTER_ALL); Yes, probably. > From a quick scan of drivers/net, it looks as if > > drivers/net/ethernet/cavium/liquidio > > also support HWTSTAMP_FILTER_ALL but don't advertise it, For this and the other drivers you mentioned, their maintainers might appreciate patches... Thanks, Richard