diff --git a/include/netutils/ptpd.h b/include/netutils/ptpd.h index ccacb6a0053..cb331d012a5 100644 --- a/include/netutils/ptpd.h +++ b/include/netutils/ptpd.h @@ -140,6 +140,11 @@ int ptpd_start(FAR const char *interface); * On success, returns OK. * On failure, a negated errno value is returned. * + * Assumptions/Limitations: + * Multiple threads with priority less than CONFIG_NETUTILS_PTPD_SERVERPRIO + * can request status simultaneously. If higher priority threads request + * status simultaneously, some of the requests may timeout. + * ****************************************************************************/ int ptpd_status(int pid, FAR struct ptpd_status_s *status); diff --git a/netutils/ptpd/ptpd.c b/netutils/ptpd/ptpd.c index 4226dfcb85e..9d048b605c3 100644 --- a/netutils/ptpd/ptpd.c +++ b/netutils/ptpd/ptpd.c @@ -381,7 +381,7 @@ static int ptp_getrxtime(FAR struct ptp_state_s *state, cmsg->cmsg_type == SO_TIMESTAMP && cmsg->cmsg_len == CMSG_LEN(sizeof(struct timeval))) { - TIMEVAL_TO_TIMESPEC((struct timeval *)CMSG_DATA(cmsg), ts); + TIMEVAL_TO_TIMESPEC((FAR struct timeval *)CMSG_DATA(cmsg), ts); /* Sanity-check the value */ @@ -607,8 +607,8 @@ static int ptp_check_multicast_status(FAR struct ptp_state_s *state) mcast_addr.s_addr = HTONL(PTP_MULTICAST_ADDR); ipmsfilter(&state->interface_addr.sin_addr, - &mcast_addr, - MCAST_EXCLUDE); + &mcast_addr, + MCAST_EXCLUDE); return ipmsfilter(&state->interface_addr.sin_addr, &mcast_addr, @@ -762,7 +762,7 @@ static int ptp_send_delay_req(FAR struct ptp_state_s *state) timespec_to_ptp_format(&state->delayreq_time, req.origintimestamp); ret = sendto(state->tx_socket, &req, sizeof(req), 0, - (struct sockaddr *)&addr, sizeof(addr)); + (FAR struct sockaddr *)&addr, sizeof(addr)); /* Get timestamp after send completes. * TODO: Implement SO_TIMESTAMPING and use the actual tx timestamp here. @@ -826,7 +826,7 @@ static int ptp_periodic_send(FAR struct ptp_state_s *state) clock_gettime(CLOCK_MONOTONIC, &time_now); clock_timespec_subtract(&time_now, - &state->last_transmitted_delayreq, &delta); + &state->last_transmitted_delayreq, &delta); if (timespec_to_ms(&delta) > state->delayreq_interval * MSEC_PER_SEC) { @@ -910,7 +910,7 @@ static int ptp_update_local_clock(FAR struct ptp_state_s *state, if (ret == OK) { ptpinfo("Jumped to timestamp %lld.%09ld s\n", - (long long)new_time.tv_sec, (long)new_time.tv_nsec); + (long long)new_time.tv_sec, (long)new_time.tv_nsec); } else { @@ -1012,9 +1012,9 @@ static int ptp_update_local_clock(FAR struct ptp_state_s *state, state->last_adjtime_ns = adjustment_ns; ptpinfo("Delta: %+lld ns, adjustment %+lld ns, drift rate %+lld ppb\n", - (long long)delta_ns, - (long long)state->last_adjtime_ns, - (long long)state->drift_ppb); + (long long)delta_ns, + (long long)state->last_adjtime_ns, + (long long)state->drift_ppb); ret = ptp_adjtime(state, adjustment_ns); @@ -1132,7 +1132,7 @@ static int ptp_process_delay_req(FAR struct ptp_state_s *state, resp.header.logmessageinterval = CONFIG_NETUTILS_PTPD_DELAYRESP_INTERVAL; ret = sendto(state->tx_socket, &resp, sizeof(resp), 0, - (struct sockaddr *)&addr, sizeof(addr)); + (FAR struct sockaddr *)&addr, sizeof(addr)); if (ret < 0) { @@ -1333,7 +1333,7 @@ static void ptp_process_statusreq(FAR struct ptp_state_s *state) { /* Copy relevant parts of announce info to status struct */ - struct ptp_announce_s *s = &state->selected_source; + FAR struct ptp_announce_s *s = &state->selected_source; memcpy(status->clock_source_info.id, s->header.sourceidentity, @@ -1390,7 +1390,7 @@ static void ptp_process_statusreq(FAR struct ptp_state_s *state) static int ptp_daemon(int argc, FAR char** argv) { - const char *interface = "eth0"; + FAR const char *interface = "eth0"; FAR struct ptp_state_s *state; struct pollfd pollfds[2]; struct msghdr rxhdr; @@ -1546,6 +1546,11 @@ int ptpd_start(FAR const char *interface) * On success, returns OK. * On failure, a negated errno value is returned. * + * Assumptions/Limitations: + * Multiple threads with priority less than CONFIG_NETUTILS_PTPD_SERVERPRIO + * can request status simultaneously. If higher priority threads request + * status simultaneously, some of the requests may timeout. + * ****************************************************************************/ int ptpd_status(int pid, FAR struct ptpd_status_s *status) diff --git a/system/ptpd/ptpd_main.c b/system/ptpd/ptpd_main.c index c4390152f3b..f3e402aa3c5 100644 --- a/system/ptpd/ptpd_main.c +++ b/system/ptpd/ptpd_main.c @@ -33,7 +33,7 @@ * Private Functions ****************************************************************************/ -static int do_ptpd_start(const char *interface) +static int do_ptpd_start(FAR const char *interface) { int pid;