Changes RFC->v1: - reworked SOF_TIMESTAMPING_OPT_PKTINFO patch to not add new fields to skb shared info (net device is now looked up by napi_id), not require any changes in drivers, and restrict the cmsg to incoming packets - renamed SOF_TIMESTAMPING_OPT_MULTIMSG to SOF_TIMESTAMPING_OPT_TX_SWHW and fixed its description - moved struct scm_ts_pktinfo from errqueue.h to net_tstamp.h as it can't be received from the error queue anymore - improved commit descriptions and removed incorrect comment
This patchset adds new options to the timestamping API that will be useful for NTP implementations and possibly other applications. The first patch specifies a timestamp filter for NTP packets. The second patch updates drivers that can timestamp all packets, or need to list the filter as unsupported. There is no attempt to add the support to the phyter driver. The third patch adds a new option to get a new control message with the L2 length and interface index for incoming packets with hardware timestamps. The fourth patch fixes the code to not make a false software TX timestamp when hardware timestamping is enabled. The fifth patch depends on this fix. The fifth patch adds a new option to request both software and hardware timestamps for outgoing packets. The sixth patch updates drivers that assumed software timestamping cannot be used together with hardware timestamping. The patches have been tested on x86_64 machines with igb and e1000e drivers. Miroslav Lichvar (6): net: define receive timestamp filter for NTP net: ethernet: update drivers to handle HWTSTAMP_FILTER_NTP_ALL net: add new control message for incoming HW-timestamped packets net: don't make false software transmit timestamps net: allow simultaneous SW and HW transmit timestamping net: ethernet: update drivers to make both SW and HW TX timestamps Documentation/networking/timestamping.txt | 22 ++++++++++++++-- drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 4 +-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 1 + drivers/net/ethernet/cavium/liquidio/lio_main.c | 1 + drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 1 + drivers/net/ethernet/cavium/octeon/octeon_mgmt.c | 1 + drivers/net/ethernet/intel/e1000e/netdev.c | 5 ++-- drivers/net/ethernet/intel/i40e/i40e_ptp.c | 1 + drivers/net/ethernet/intel/igb/igb_ptp.c | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 1 + drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 1 + drivers/net/ethernet/mellanox/mlx5/core/en_clock.c | 1 + drivers/net/ethernet/neterion/vxge/vxge-main.c | 1 + drivers/net/ethernet/qlogic/qede/qede_ptp.c | 1 + drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 3 +-- drivers/net/ethernet/sfc/ef10.c | 1 + drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 7 +++-- drivers/net/ethernet/ti/cpsw.c | 1 + drivers/net/ethernet/tile/tilegx.c | 1 + include/linux/netdevice.h | 1 + include/linux/skbuff.h | 3 +-- include/uapi/asm-generic/socket.h | 2 ++ include/uapi/linux/net_tstamp.h | 13 +++++++++- net/core/dev.c | 18 +++++++++++++ net/core/dev_ioctl.c | 1 + net/core/skbuff.c | 4 +++ net/socket.c | 30 ++++++++++++++++++++-- 27 files changed, 110 insertions(+), 17 deletions(-) -- 2.9.3