From e718fdd2c696e95e7dad2a01bc73b6fff0800b82 Mon Sep 17 00:00:00 2001 From: dongjiuzhu1 Date: Sun, 23 Mar 2025 22:30:24 +0800 Subject: [PATCH] netutils/ptpd: get nanoseconds by SO_TIMESTAMPNS to satisfy higher precision using nanoseconds as timestamp Signed-off-by: dongjiuzhu1 --- netutils/ptpd/ptpd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/netutils/ptpd/ptpd.c b/netutils/ptpd/ptpd.c index b04d7be72..4ba8d2c86 100644 --- a/netutils/ptpd/ptpd.c +++ b/netutils/ptpd/ptpd.c @@ -375,7 +375,7 @@ static int ptp_getrxtime(FAR struct ptp_state_s *state, for_each_cmsghdr(cmsg, rxhdr) { if (cmsg->cmsg_level == SOL_SOCKET && - cmsg->cmsg_type == SO_TIMESTAMP && + cmsg->cmsg_type == SO_TIMESTAMPNS && cmsg->cmsg_len == CMSG_LEN(sizeof(struct timeval))) { TIMEVAL_TO_TIMESPEC((FAR struct timeval *)CMSG_DATA(cmsg), ts); @@ -504,12 +504,12 @@ static int ptp_initialize_state(FAR struct ptp_state_s *state, if (state->config->hardware_ts) { - ret = setsockopt(state->event_socket, SOL_SOCKET, SO_TIMESTAMP, + ret = setsockopt(state->event_socket, SOL_SOCKET, SO_TIMESTAMPNS, &arg, sizeof(arg)); if (ret < 0) { - ptperr("Failed to enable SO_TIMESTAMP: %s\n", strerror(errno)); + ptperr("Failed to enable SO_TIMESTAMPNS: %s\n", strerror(errno)); return ERROR; } }