libpcap icon indicating copy to clipboard operation
libpcap copied to clipboard

Replace deprecated SOF_TIMESTAMPING_SYS_HARDWARE

Open shimonran opened this issue 7 years ago • 5 comments

Replace deprecated SOF_TIMESTAMPING_SYS_HARDWARE to enable hardware timestamp

shimonran avatar Jun 27 '18 06:06 shimonran

When (what kernel/libc?) did new symbol become available?

mcr avatar Apr 25 '19 12:04 mcr

Why not hardware time stamps for transmitted packets as well?

guyharris avatar Nov 03 '19 21:11 guyharris

Does the proposed change still make sense?

infrastation avatar Nov 21 '21 23:11 infrastation

For reference, this is the Linux kernel documentation that describes SOF_TIMESTAMPING_SYS_HARDWARE as "deprecated and ignored", below is a list of values from /usr/include/linux/net_tstamp.h:

/* SO_TIMESTAMPING gets an integer bit field comprised of these values */
enum {
        SOF_TIMESTAMPING_TX_HARDWARE = (1<<0),
        SOF_TIMESTAMPING_TX_SOFTWARE = (1<<1),
        SOF_TIMESTAMPING_RX_HARDWARE = (1<<2),
        SOF_TIMESTAMPING_RX_SOFTWARE = (1<<3),
        SOF_TIMESTAMPING_SOFTWARE = (1<<4),
        SOF_TIMESTAMPING_SYS_HARDWARE = (1<<5),
        SOF_TIMESTAMPING_RAW_HARDWARE = (1<<6),
        SOF_TIMESTAMPING_OPT_ID = (1<<7),
        SOF_TIMESTAMPING_TX_SCHED = (1<<8),
        SOF_TIMESTAMPING_TX_ACK = (1<<9),
        SOF_TIMESTAMPING_OPT_CMSG = (1<<10),
        SOF_TIMESTAMPING_OPT_TSONLY = (1<<11),
        SOF_TIMESTAMPING_OPT_STATS = (1<<12),
        SOF_TIMESTAMPING_OPT_PKTINFO = (1<<13),
        SOF_TIMESTAMPING_OPT_TX_SWHW = (1<<14),

        SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TX_SWHW,
        SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
                                 SOF_TIMESTAMPING_LAST
};

infrastation avatar Dec 11 '22 13:12 infrastation

This pull request seem totally legit. I have made some basic test and timestamp seem valid with this patch.

After some research :

  • Flag SOF_TIMESTAMPING_SYS_HARDWARE usage totally disappear between kernel version 3.16 and 3.17.
  • Flag SOF_TIMESTAMPING_RX_HARDWARE is used in Ethernet kernel driver to indicate hardware timestamp capability in ethtool.

nbergont avatar Mar 02 '23 07:03 nbergont