[ntp:questions] NIST ACTS w/ Lockclock Algo Setup

Ryan A. Krenzischek ryan at bbnx.net
Fri Jul 21 20:51:52 UTC 2017


All,

I'm having difficulties with a NIST ACTS dial-up with lockclock 
algorithm setup I've performed.  From what I've read in the 
documentation, what I have is a correct setup.  However, I can't find 
any information pertaining to that via forums other than looking at 
other people's posted ntp.conf who have used the 127.127.18.x ref clock 
driver.  I went with OpenBSD as it is a small footprint.

Issues:

1) Offset/Jitter seems a bit concerning especially since I'm syncing for 
was is reputed as extremely reliable.

2) Modem stops connecting.  As you can see the "when" statistic 
component is 6h since it last updated.  Even using ntpdc to make the 
modem dial out fails unless I restart ntpd.  I'm thinking of 
re-compiling ntpd and justing the modem strings to be AT&F1.  I've found 
the modem starts working if I power cycle it or use screen to issue 
AT&F1 (provided I remove the flag2 1 parameter at top).

3) The latest ntp manual for the 127.127.1.x ref clock states not to use 
it and to use "tos orphan x", yet earlier revisions for NIST ACTS tell 
you to use it.  Which one is it?  If you only use "Orphan Mode", ntpd 
has nothing locally to discipline and the local system time isn't 
updated/adjusted to prevent drift.

Per current-stable: 
http://doc.ntp.org/current-stable/drivers/driver1.html
Per 4.2.4 which last mentions NIST ACTS: 
http://doc.ntp.org/4.2.4/drivers/driver1.html

4) I've tried "enable calibrate" in config or via ntpdc.  That did not 
seem to help.

Technical details:

Modem: US Robotics Courier V.Everything (circa V.90 vintage) connected 
to RS-232C port connected to POTS.

Version of NTP: 4.2.8p10

$ ntpq -p
      remote           refid      st t when poll reach   delay   offset  
jitter
==============================================================================
  ACTS_MODEM(0)   .NIST.           0 l   6h  68m   40    0.000   12.444   
9.855
*LOCAL(1)        .NIST.           0 l   27   64  377    0.000    0.000   
0.001

# ntpq -c rv
associd=0 status=0515 leap_none, sync_local, 1 event, clock_sync,
version="ntpd 4.2.8p10 at 1.3728-o Sat Apr  1 23:46:59 UTC 2017 (1)",
processor="amd64", system="OpenBSD/6.1", leap=00, stratum=1,
precision=-20, rootdelay=0.000, rootdisp=11.468, refid=NIST,
reftime=dd1cdaee.db8a7e19  Fri, Jul 21 2017 19:56:30.857,
clock=dd1cdb13.d790fcd4  Fri, Jul 21 2017 19:57:07.842, peer=17700, 
tc=6,
mintc=3, offset=0.000000, frequency=0.604, sys_jitter=0.000954,
clk_jitter=0.001, clk_wander=0.000, tai=37, leapsec=201701010000,
expire=201712010000

ntp.conf:

restrict default kod nomodify notrap nopeer noquery limited #IPv4 and 
IPv6 are combined now.
restrict source nomodify notrap noquery limited 
#http://support.ntp.org/bin/view/Support/ConfiguringNTP, use peer
restrict 127.0.0.1
restrict ::1
server 127.127.18.0 minpoll 12 maxpoll 17 # NIST ACTS modem driver
fudge 127.127.18.0 stratum 0 flag2 1
phone atdt13034944774 atdt13034944774 atdt13034944774
server 127.127.1.1 prefer
fudge 127.127.1.1 stratum 0 refid NIST
driftfile /usr/local/etc/ntp.drift      # path for drift file
leapfile /usr/local/etc/leap-seconds.list
statsdir /var/log/ntpstats/     # directory for statistics files
filegen peerstats file peerstats type day enable
filegen loopstats file loopstats type day enable
filegen clockstats file clockstats type day enable
enable mode7                    # To use ntpdc
keys /usr/local/etc/ntp.keys    # path for keys file
trustedkey 15                   # define trusted keys
requestkey 15                   # key (7) for accessing server variables
controlkey 15                   # key (6) for accessing server variables

Operating System: OpenBSD 6.1 amd64, running the bsd.mp kernel.
Memory: 8 GB
CPU: Intel(R) Xeon(R) CPU X3220

Crontab entries (should be self-explanatory):

# Get Leap on 2-Dec since file expires on 1-Dec
* * 2 12 * ftp -aM ftp://tycho.usno.navy.mil/pub/ntp/leap-seconds.list 
/usr/local/etc/leap-seconds.list 1>/dev/null

OpenBSD is using acpihpet0.  I've tried adjusting to i8254 and 
acpitimer0 without success.

# sysctl -a | grep kern.timecounter
kern.timecounter.tick=1
kern.timecounter.timestepwarnings=0
kern.timecounter.hardware=acpihpet0
kern.timecounter.choice=i8254(0) acpihpet0(1000) acpitimer0(1000) 
dummy(-1000000)

Thank you,

Ryan



More information about the questions mailing list