Xntp/iX for HP 3000 MPE
http://www.cccd.edu/~markb/xntpix.html
Network time synchronization for MPE
Last updated September 19, 1997 @ 2300 UTC
---------------------------------------------------------------------------
What's New
* September 19, 1997
o Initial public release. Consider this to be closer to "preview"
quality than to "production" quality. See Known Bugs below.
---------------------------------------------------------------------------
Welcome
This is the official home page for the HP 3000 MPE port of the xntp Network
Time Protocol (NTP) implementation. Check here for the latest news,
implemented functionality, known bugs, to-do list, etc. Status reports
about major milestones will also be posted to the HP3000-L mailing list and
its associated gatewayed newsgroup comp.sys.hp.mpe.
I'm doing this port because I see a great need for both clients and servers
in the CCCD heterogeneous distributed networking environment to all be
synchronized to the same time of day with a high degree of accuracy. I
chose xntp because it's free, and also because it's what I run under HPUX
for the Coast Community College District.
Please send your comments, questions, and bug reports directly to me, Mark
Bixby, by e-mailing to [log in to unmask] Or just post them to HP3000-L. You
can also telephone me at +1 714 438-4647 Monday-Friday 0815-1715 PDT
(1515-0015 UTC).
The platform I'm using to do this port is an HP 3000 969KS200 running
MPE/iX 5.5 and using the gcc compiler from
http://www.interex.org/sources/freeware.html. This is my only HP 3000, so
I'm very interested to hear from people running MPE/iX 5.0 and using the HP
C compiler. As far as I know, the binaries should be able to run under
MPE/iX 5.0 or later.
For the time being, I am withholding the source code for the following
reasons:
* HP's MPE time correction support is buggy. See Known Bugs below.
* I may decide to add PDC clock adjustment code. See To-Do List below.
* xntp3-6.0 is due out Real Soon Now.
* xntp4 is coming soon. This is the source base that I want to
distribute for MPE.
---------------------------------------------------------------------------
How to Obtain Xntp/iX
1. Download and install syslog from
http://www.cccd.edu/~markb/syslogix.html if you haven't already done
so. Syslog is REQUIRED by xntpd; if all you want is ntpdate, then you
don't have to install syslog.
2. Create the XNTP account
3. Download xntp using either FTP.ARPA.SYS or some other client
4. Uncompress and extract
Create the XNTP account on your HP 3000
:HELLO MANAGER.SYS
:NEWACCT XNTP,MGR;CAP=AM,AL,ND,SF,IA,BA,PM,PH;ACCESS=(R,W,A,L,X:AC);PASS=somethingsecure
:ALTGROUP PUB.XNTP;ACCESS=(R,W,A,L,X,S:AC)
Download Xntp/iX using FTP.ARPA.SYS from your HP 3000 (the preferred
method).....
:HELLO MGR.APACHE
:FTP.ARPA.SYS
open ftp.cccd.edu
anonymous
[log in to unmask]
bytestream
cd /pub/mpe
get mover55.prvxl.telesup mover55;code=nmprg;rec=128
get xntp3-5.90.4-export.mover.Z /tmp/xntp.mover.Z
exit
.....Or download using some other generic web or ftp client (the alternate
method)
Download the following files (make sure that you use "binary mode" or
whatever client feature that is 8-bit clean):
* mover55 from http://www.cccd.edu/ftp/pub/mpe/mover55.prvxl.telesup or
ftp://ftp.cccd.edu/pub/mpe/mover55.prvxl.telesup
* xntp from http://www.cccd.edu/ftp/pub/mpe/xntp3-5.90.4-export.mover.Z
or ftp://ftp.cccd.edu/pub/mpe/xntp3-5.90.4-export.mover.Z
Upload those files to your HP 3000 in an 8-bit clean bytestream manner to:
* /tmp/mover55
* /tmp/xntp.mover.Z
Convert mover into something that is executable:
:HELLO MGR.XNTP
:FILE MOVER55;CODE=NMPRG
:FROMBYTE.HPBIN.SYS '-b /tmp/mover55 *MOVER55'
Then uncompress and extract the distribution (after both download methods)
:UNCOMPRE.HPBIN.SYS '/tmp/xntp.mover.Z'
:MOVER55.PUB.XNTP '-x /tmp/xntp.mover'
---------------------------------------------------------------------------
Distribution Contents
README
this file
JXNTPD
:STREAM this job to run the xntpd time synchronization daemon. See
Known Bugs below.
MPESHOW
Compiled binary debugging program to display the MPE clock, PDC clock,
UTC offset, and PDC difference from the offset.
NTPDATE
Compiled binary xntp ntpdate program used to perform a single
on-demand time synchronization.
NTPQ
Compiled binary xntp ntpq program used to query an NTP server, either
local or remote.
NTPTRACE
Compiled binary xntp ntptrace program used to trace the multiple hops
between a local or remote NTP server and the top-stratum time source.
XNTPD
Compiled binary xntp xntpd program used to perform continuous time
synchronization on the local machine and to act as an NTP server for
remote clients. Suitable for testing right now, but you presently
don't want to run this for long periods of time. See Known Bugs below.
XNTPDC
Compiled binary xntp xntpdc program used to control the internal
parameters of an already running xntpd, either local or remote.
etc/
Configuration directory used by xntpd. You will need to modify
etc/xntpd.conf before running xntpd.
public_html/
Symbolic link into the HTML documentation within the src/ directory.
If you're running Apache/iX on the same machine, you can browse to
http://hp3k.host.name/~MGR.XNTP/ to read the official xntp
documentation. It's a good idea to read this documentation before you
get started.
src/
Source code. Intentionally left mostly empty at this time.
---------------------------------------------------------------------------
How to Compile Xntp/iX (not yet supported)
1. cd src/xntp3-5.90.4-export
2. Read the INSTALL file for the official instructions
3. ./mpeconfigure
4. make
5. make install
---------------------------------------------------------------------------
Getting Started With Xntp/iX
1. You MUST set your PDC hardware clock to UTC time, either by rebooting
and running ISL CLKUTIL, or by using the :SETCLOCK command.
2. Modify your system logon UDC to :SETVAR TZ "time-zone-spec". The
California time-zone-spec is PST8PDT. Valid time zones are listed in
TZTAB.LIB.SYS.
3. Modify /etc/profile to export TZ=time-zone-spec.
4. Add an "ntp 123/udp" entry to SERVICES.NET.SYS and make sure that
/etc/services is a symbolic link pointing to /SYS/NET/SERVICES.
5. Decide which remote NTP server(s) you want to obtain your time from.
See http://www.eecis.udel.edu/~mills/ntp/servers.html for a list of
public NTP servers; note that some of these servers require you to ask
permission first. Note that your organization or ISP may already be
running a time server that you might be able to use.
6. Initiate a single on-demand time correction: NTPDATE -B ntpserver1
[ntpserver2 ntpserver3 ...]
7. If you desire continuous time synchronization and the ability to act
as an NTP server yourself, edit etc/xntpd.conf to specify the external
NTP servers that you wish to synch to, and then :STREAM JXNTPD. You
stop JXNTPD via :ABORTJOB. See Known Bugs below.
8. A number of freeware NTP clients for all platforms are available from
http://www.eecis.udel.edu/~ntp/software.html. The one I run on my
Win95 machine is Dimension 4.
9. If you have general non-MPE questions about NTP, consider visiting the
Usenet newsgroup comp.protocols.time.ntp.
---------------------------------------------------------------------------
MPE/iX Implementation Considerations
There some minor functionality issues to be aware of when comparing Xntp
for Unix (Xntp/UX) to Xntp/iX:
* Xntp/UX must be run as root to bind to NTP port 123. Xntp/iX must call
GETPRIVMODE() to bind to NTP port 123.
* Xntpd/UX will detach itself and run in the background as a daemon.
Xntpd/iX cannot detach itself and run in the background because MPE
POSIX doesn't allow this. Thus you must run it within the JXNTPD job.
* Xntp/UX must be run as root in order to set or adjust the system
clock. Xntp/iX must call GETPRIVMODE() to use the same routines that
:SETCLOCK uses to set or adjust the system clock.
* Xntp/iX requires GETPRIVMODE() in order to read the PDC and MPE clocks
with microsecond resolution.
* Xntp/UX comes with support for serial RS-232 external hardware clocks.
This functionality has not been implemented for Xntp/iX because 1) I
don't have access to any external hardware clocks, and 2) the POSIX
General Terminal Interface for serial I/O was never completed by HP.
* Xntp/iX uses the same internal routines as :SETCLOCK and :SHOWCLOCK,
and thus should be able to run on MPE/iX 5.0 or greater.
* This release of Xntp/iX only adjusts the MPE local time software
clock. The PDC UTC hardware clock is not adjusted. Though I may
change that in a future release. See To-Do List below.
---------------------------------------------------------------------------
Known Bugs Under Investigation
* Gradual MPE time corrections will overshoot and introduce a small,
sub-second error. :SETCLOCK has this problem, but you can't see it
with :SHOWCLOCK because the 1-second resolution is too coarse. It is
only apparent when using the internal procedures and/or data
structures that have microsecond or tick resolution. HP is
investigating with the intent of eventually doing a patch. The result
of this bug is that xntpd becomes deeply confused after 15-20 minutes,
loses synchronization, and then starts the re-synch algorithm over
again. This DOES NOT trash your system clock; it just confuses xntpd
which knows it is having trouble being accurate, and then gives up in
disgust and restarts itself. So feel free to run xntpd for testing,
but be aware your clock will drift a couple of seconds per hour, so
don't leave it running forever. After you bring xntpd down, run
ntpdate once to re-synch your clock.
---------------------------------------------------------------------------
To-Do List
* Squash the above time correction bug.
* After the bug has been squashed, evaluate whether or not the PDC UTC
clock should also be adjusted in order to maintain the proper UTC
offset at the next reboot.
* Wait for the imminent release of xntp3-6.0. Reapply MPE patches.
* Wait for the release of xntp4. Reapply MPE patches. Make the source
available to the MPE community.
* Submit the MPE patches back to the official xntp4 distribution.
---------------------------------------------------------------------------
Change History
* September 1997
o Porting begins.
---------------------------------------------------------------------------
Mark Bixby, [log in to unmask]
--
Mark Bixby E-mail: [log in to unmask]
Coast Community College Dist. Web: http://www.cccd.edu/~markb/
District Information Services 1370 Adams Ave, Costa Mesa, CA, USA 92626-5429
Technical Support +1 714 438-4647
"You can tune a file system, but you can't tune a fish." - tunefs(1M)
|