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 934d4047f1.
This commit is contained in:
Miroslav Lichvar 2018-10-08 15:54:07 +02:00
parent f176193d35
commit 9f9c6cc6ab

View file

@ -584,7 +584,11 @@ process_hw_timestamp(struct Interface *iface, struct timespec *hw_ts,
if (rx_ntp_length && iface->link_speed) { if (rx_ntp_length && iface->link_speed) {
if (!l2_length) if (!l2_length)
l2_length = (family == IPADDR_INET4 ? iface->l2_udp4_ntp_start : 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); rx_correction = l2_length / (1.0e6 / 8 * iface->link_speed);
UTI_AddDoubleToTimespec(hw_ts, rx_correction, hw_ts); UTI_AddDoubleToTimespec(hw_ts, rx_correction, hw_ts);