Subject: Re: What ixgbe devices support HWTSTAMP_FILTER_ALL for hardware time stamping?

From: Richard Cochran <[email-masked]>
Date: Sat, 14 May 2016 09:30:03 +0200

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