From: Dan Drown Date: Tue, 7 Mar 2023 15:29:19 +0000 (+0100) Subject: ntp: increment sequence id in PTP messages X-Git-Tag: 4.4-pre1~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c3e4e3e47a443927582e77c54b962efb78e3a2cb;p=thirdparty%2Fchrony.git ntp: increment sequence id in PTP messages --- diff --git a/ntp_io.c b/ntp_io.c index ade3a0ef..e5f3418d 100644 --- a/ntp_io.c +++ b/ntp_io.c @@ -528,6 +528,8 @@ NIO_UnwrapMessage(SCK_Message *message, int sock_fd) static int wrap_message(SCK_Message *message, int sock_fd) { + static uint16_t sequence_id = 0; + assert(PTP_NTP_PREFIX_LENGTH == 48); if (!is_ptp_socket(sock_fd)) @@ -548,6 +550,7 @@ wrap_message(SCK_Message *message, int sock_fd) ptp_message->header.length = htons(PTP_NTP_PREFIX_LENGTH + message->length); ptp_message->header.domain = PTP_DOMAIN_NTP; ptp_message->header.flags = htons(PTP_FLAG_UNICAST); + ptp_message->header.sequence_id = htons(sequence_id++); ptp_message->tlv_header.type = htons(PTP_TLV_NTP); ptp_message->tlv_header.length = htons(message->length); memcpy((char *)ptp_message + PTP_NTP_PREFIX_LENGTH, message->data, message->length); diff --git a/ptp.h b/ptp.h index 7a935906..8034a2c6 100644 --- a/ptp.h +++ b/ptp.h @@ -44,7 +44,12 @@ typedef struct { uint8_t domain; uint8_t min_sdoid; uint16_t flags; - uint8_t rest[26]; + uint8_t correction[8]; + uint8_t msg_specific[4]; + uint8_t port_id[10]; + uint16_t sequence_id; + uint8_t control; + int8_t interval; } PTP_Header; typedef struct {