]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
ntp: increment sequence id in PTP messages
authorDan Drown <dan-ntp@drown.org>
Tue, 7 Mar 2023 15:29:19 +0000 (16:29 +0100)
committerMiroslav Lichvar <mlichvar@redhat.com>
Tue, 7 Mar 2023 16:00:08 +0000 (17:00 +0100)
ntp_io.c
ptp.h

index ade3a0ef51a3d9acb4c1d9e83e8e10d94cdd045a..e5f3418d36508f9dc4cc8c96fb81ba7fdff05f43 100644 (file)
--- 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 7a935906433e8b34fbe32dc39c768cef58304ea6..8034a2c6404918d56d225682a4d9281624adeab6 100644 (file)
--- 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 {