From: Juergen Perlinger Date: Sat, 17 Oct 2020 14:06:54 +0000 (+0200) Subject: [Bug 3694] NMEA refclock appears to unnecessarily require location in messages X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d266828d9e9cb10aa7c65bc435575a2388084f86;p=thirdparty%2Fntp.git [Bug 3694] NMEA refclock appears to unnecessarily require location in messages - add/describe 'ignore receiver status' bit bk: 5f8afa7eeVR9PkfsLoUluIQfmh__KA --- diff --git a/ChangeLog b/ChangeLog index eeceaa9f1..005ec1eef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +--- +* [Bug 3694] NMEA refclock appears to unnecessarily require location in messages + - misleading title; essentially a request to ignore the receiver status. + Added a mode bit for this. + --- (4.2.8p15) 2020/06/23 Released by Harlan Stenn diff --git a/html/drivers/driver20.html b/html/drivers/driver20.html index 1c3ac782f..ea9aa0125 100644 --- a/html/drivers/driver20.html +++ b/html/drivers/driver20.html @@ -13,7 +13,7 @@

Generic NMEA GPS Receiver

Last update: - 13-Jan-2020 07:12 + 17-Oct-2020 16:00 UTC


Synopsis

@@ -350,6 +350,15 @@ See below. Caveat: This (hitherto undocumented) bit has moved! + + 19 + 524288 + 0x80000 + Ignore receiver status, assume time is always good as long + as it is present at all. A possible option for receivers + with a good hold-over characteristic, but most likely + harmful in general. Use at own risk. + diff --git a/ntpd/refclock_nmea.c b/ntpd/refclock_nmea.c index 1d7997c6a..237eafabf 100644 --- a/ntpd/refclock_nmea.c +++ b/ntpd/refclock_nmea.c @@ -93,6 +93,7 @@ #define NMEA_EXTLOG_MASK 0x00010000U #define NMEA_QUIETPPS_MASK 0x00020000U #define NMEA_DATETRUST_MASK 0x00040000U +#define NMEA_IGNSTATUS_MASK 0x00080000U #define NMEA_PROTO_IDLEN 4 /* tag name must be at least 4 chars */ #define NMEA_PROTO_MINLEN 6 /* min chars in sentence, excluding CS */ @@ -875,6 +876,11 @@ nmea_procrec( return; } + /* ignore receiver status? [bug 3694] */ + if (peer->ttl & NMEA_IGNSTATUS_MASK) { /* assume always good? */ + pp->leap = LEAP_NOWARNING; + } + /* check clock sanity; [bug 2143] */ if (pp->leap == LEAP_NOTINSYNC) { /* no good status? */ checkres = CEVNT_PROP;