From: Miroslav Lichvar Date: Wed, 18 Aug 2021 08:44:48 +0000 (+0200) Subject: ntp: add PTP rxfilter X-Git-Tag: 4.2-pre1~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f1d5d9255211ac961ecf9327dfbcefa6c49e7ab;p=thirdparty%2Fchrony.git ntp: add PTP rxfilter Setting rxfilter to ptp enables timestamping of PTPv2 packets (UDP or all transports). It will be needed for NTP-over-PTP support. --- diff --git a/conf.c b/conf.c index ce2ff000..a5252789 100644 --- a/conf.c +++ b/conf.c @@ -1556,6 +1556,8 @@ parse_hwtimestamp(char *line) iface->rxfilter = CNF_HWTS_RXFILTER_NONE; else if (!strcasecmp(filter, "ntp")) iface->rxfilter = CNF_HWTS_RXFILTER_NTP; + else if (!strcasecmp(filter, "ptp")) + iface->rxfilter = CNF_HWTS_RXFILTER_PTP; else if (!strcasecmp(filter, "all")) iface->rxfilter = CNF_HWTS_RXFILTER_ALL; else diff --git a/conf.h b/conf.h index 0ba1be17..437fa969 100644 --- a/conf.h +++ b/conf.h @@ -134,6 +134,7 @@ typedef enum { CNF_HWTS_RXFILTER_ANY, CNF_HWTS_RXFILTER_NONE, CNF_HWTS_RXFILTER_NTP, + CNF_HWTS_RXFILTER_PTP, CNF_HWTS_RXFILTER_ALL, } CNF_HwTs_RxFilter; diff --git a/doc/chrony.conf.adoc b/doc/chrony.conf.adoc index bd4f70d0..647270be 100644 --- a/doc/chrony.conf.adoc +++ b/doc/chrony.conf.adoc @@ -2416,6 +2416,8 @@ _all_:::: Enables timestamping of all received packets. _ntp_:::: Enables timestamping of received NTP packets. +_ptp_:::: +Enables timestamping of received PTP packets. _none_:::: Disables timestamping of received packets. {blank}::: diff --git a/ntp_io_linux.c b/ntp_io_linux.c index 02b59e17..a458ded4 100644 --- a/ntp_io_linux.c +++ b/ntp_io_linux.c @@ -189,6 +189,14 @@ add_interface(CNF_HwTsInterface *conf_iface) rx_filter = HWTSTAMP_FILTER_NTP_ALL; break; #endif + case CNF_HWTS_RXFILTER_PTP: + if (ts_info.rx_filters & (1 << HWTSTAMP_FILTER_PTP_V2_L4_EVENT)) + rx_filter = HWTSTAMP_FILTER_PTP_V2_L4_EVENT; + else if (ts_info.rx_filters & (1 << HWTSTAMP_FILTER_PTP_V2_EVENT)) + rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT; + else + rx_filter = HWTSTAMP_FILTER_NONE; + break; default: rx_filter = HWTSTAMP_FILTER_ALL; break;