ntp: increment sequence id in PTP messages

This commit is contained in:
Dan Drown 2023-03-07 16:29:19 +01:00 committed by Miroslav Lichvar
parent e949e1d991
commit c3e4e3e47a
2 changed files with 9 additions and 1 deletions

View file

@ -528,6 +528,8 @@ NIO_UnwrapMessage(SCK_Message *message, int sock_fd)
static int static int
wrap_message(SCK_Message *message, int sock_fd) wrap_message(SCK_Message *message, int sock_fd)
{ {
static uint16_t sequence_id = 0;
assert(PTP_NTP_PREFIX_LENGTH == 48); assert(PTP_NTP_PREFIX_LENGTH == 48);
if (!is_ptp_socket(sock_fd)) 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.length = htons(PTP_NTP_PREFIX_LENGTH + message->length);
ptp_message->header.domain = PTP_DOMAIN_NTP; ptp_message->header.domain = PTP_DOMAIN_NTP;
ptp_message->header.flags = htons(PTP_FLAG_UNICAST); 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.type = htons(PTP_TLV_NTP);
ptp_message->tlv_header.length = htons(message->length); ptp_message->tlv_header.length = htons(message->length);
memcpy((char *)ptp_message + PTP_NTP_PREFIX_LENGTH, message->data, message->length); memcpy((char *)ptp_message + PTP_NTP_PREFIX_LENGTH, message->data, message->length);

7
ptp.h
View file

@ -44,7 +44,12 @@ typedef struct {
uint8_t domain; uint8_t domain;
uint8_t min_sdoid; uint8_t min_sdoid;
uint16_t flags; 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; } PTP_Header;
typedef struct { typedef struct {