From 9f9c6cc6ab3a22f6392c4c7bfc258a34c9bd0abd Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Mon, 8 Oct 2018 15:54:07 +0200 Subject: [PATCH] ntp: fix transposition with timestamping packet info Don't forget to include the length of the frame check sequence (FCS) in the RX timestamp transposition when the L2 length of the received packet is from SCM_TIMESTAMPING_PKTINFO. This fixes commit 934d4047f12741f4052e35c7975f72c5307b3e68. --- ntp_io_linux.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ntp_io_linux.c b/ntp_io_linux.c index 819792a..eb4a3a8 100644 --- a/ntp_io_linux.c +++ b/ntp_io_linux.c @@ -584,7 +584,11 @@ process_hw_timestamp(struct Interface *iface, struct timespec *hw_ts, if (rx_ntp_length && iface->link_speed) { if (!l2_length) l2_length = (family == IPADDR_INET4 ? iface->l2_udp4_ntp_start : - iface->l2_udp6_ntp_start) + rx_ntp_length + 4; + iface->l2_udp6_ntp_start) + rx_ntp_length; + + /* Include the frame check sequence (FCS) */ + l2_length += 4; + rx_correction = l2_length / (1.0e6 / 8 * iface->link_speed); UTI_AddDoubleToTimespec(hw_ts, rx_correction, hw_ts);