I've been playing around with raw sockets and timestamps, but seem to be getting strange timestamp data back on the errqueue. Specifically, if I am creating a socket(AF_PACKET, SOCK_RAW, htons(ETH_P_IP)) and requesting SO_TIMESTAMPING_NEW with options 0x4DF. I am not modifying the flags with control messages.
On both send and receive, I get the expected SOL_SOCKET/SO_TIMESTAMPING_NEW cmsg (in errqueue on send, in the message itself on receive), and it contains what appears to be valid timestamps in the ts[0] field. On send, however, I receive an additional cmsg with level = SOL_PACKET/PACKET_TX_TIMESTAMP, whose content is just the fixed value `char[16] { 42, 0, 0, 0, 4, <zeros> }`. Any ideas why I'd be getting the SOL_PACKET message on transmit, and why its payload is clearly not a valid timestamp? In case it matters, this is on an Intel I210 nic using the igb driver.