diff --git a/ntp_io.c b/ntp_io.c index ec2fd7b..fc80aca 100644 --- a/ntp_io.c +++ b/ntp_io.c @@ -513,7 +513,9 @@ NIO_UnwrapMessage(SCK_Message *message, int sock_fd, double *net_correction) msg = message->data; - if (msg->header.type != PTP_TYPE_DELAY_REQ || msg->header.version != PTP_VERSION || + if ((msg->header.type != PTP_TYPE_DELAY_REQ && msg->header.type != PTP_TYPE_SYNC) || + (msg->header.version != PTP_VERSION_2 && + (msg->header.version != PTP_VERSION_2_1 || msg->header.min_sdoid != 0)) || ntohs(msg->header.length) != message->length || msg->header.domain != PTP_DOMAIN_NTP || ntohs(msg->header.flags) != PTP_FLAG_UNICAST || @@ -561,7 +563,7 @@ wrap_message(SCK_Message *message, int sock_fd) memset(ptp_message, 0, PTP_NTP_PREFIX_LENGTH); ptp_message->header.type = PTP_TYPE_DELAY_REQ; - ptp_message->header.version = PTP_VERSION; + ptp_message->header.version = PTP_VERSION_2; 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); diff --git a/ptp.h b/ptp.h index 8034a2c..4330f4b 100644 --- a/ptp.h +++ b/ptp.h @@ -31,7 +31,9 @@ #include "ntp.h" -#define PTP_VERSION 2 +#define PTP_VERSION_2 2 +#define PTP_VERSION_2_1 (2 | 1 << 4) +#define PTP_TYPE_SYNC 0 #define PTP_TYPE_DELAY_REQ 1 #define PTP_DOMAIN_NTP 123 #define PTP_FLAG_UNICAST (1 << (2 + 8))