Home | History | Annotate | only in /src/external/bsd/ntp/dist/libparse
Up to higher level directory
NameDateSize
binio.c25-May-20203.9K
clk_computime.c18-Aug-20246.4K
clk_dcf7000.c18-Aug-20246K
clk_hopf6021.c18-Aug-20247.1K
clk_meinberg.c18-Aug-202422.7K
clk_rawdcf.c18-Aug-202420.6K
clk_rcc8000.c18-Aug-20245.1K
clk_schmid.c18-Aug-20247.1K
clk_sel240x.c18-Aug-20244K
clk_trimtaip.c18-Aug-20246.7K
clk_trimtsip.c18-Aug-202413.4K
clk_varitext.c18-Aug-20248.2K
clk_wharton.c18-Aug-20244.9K
data_mbg.c25-May-202012K
gpstolfp.c25-May-20202.5K
ieee754io.c18-Aug-202413.7K
info_trimble.c25-May-20206.9K
Makefile.am18-Aug-20244.9K
Makefile.in18-Aug-202437.4K
mfp_mul.c25-May-20206.4K
mkinfo_rcmd.sed07-Apr-2015243
mkinfo_scmd.sed07-Apr-2015342
parse.c18-Aug-202420.1K
parse_conf.c18-Aug-20244.7K
parsesolaris.c25-May-202027.8K
parsestreams.c25-May-202030.5K
README13-Dec-20094.1K
trim_info.c25-May-20202.5K

README

      1 PARSE reference clock driver:
      2 
      3 This directory contains the files making up the parser for
      4 the parse refclock driver. For reasonably sane clocks this refclock
      5 drivers allows a refclock implementation by just providing a
      6 conversion routine and the appropriate NTP parameters. Refclock
      7 support can run as low a 3k code with the parse refclock driver.
      8 
      9 The modules in here are designed to live in two worlds. In userlevel
     10 as part of the xntp daemon and in kernel land as part of a STREAMS module
     11 or, if someone gets to it, as part of a line discipline. Currently only
     12 SunOS4.x/SunOS5.x STREAMS are supported (volunteers for other vendors like HP?).
     13 This structure means, that refclock_parse can work with or without kernel
     14 support. Kernelsupport increases accuracy tremendingly. The current restriction
     15 of the parse driver is that it only supports SYSV type ttys and that kernel
     16 support is only available for Suns right now.
     17 
     18 Three kernel modules are part of this directory. These work only on
     19 SunOS (SunOS4 and SunOS5).
     20 
     21 	SunOS4 (aka Solaris 1.x):
     22 		parsestreams.loadable_module.o	- standard parse module for SunOS 4
     23 
     24 		Both modules can be loaded via modload <modulename>.
     25 
     26 	SunOS5 (aka Solaris 2.x):
     27 		parse		- auto loadable streams module
     28 
     29 		To install just drop "parse" into /kernel/strmod and
     30 		start the daemon (SunOS5 will do the rest).
     31 
     32 The structure of the parse reference clock driver is as follows:
     33 
     34 	ntpd	- contains NTP implementation and calls a reference clock
     35 		  127.127.8.x which is implemented by
     36 	 	  refclock_parse.c
     37 		  - which contains several refclock decriptions. These are
     38 		    selected by the x part of the refclock address.
     39 		    The lower two bits specify the device to use. Thus the
     40 		    value (x % 4) determines the device to open
     41 		    (/dev/refclock-0 - /dev/refclock-3).
     42 
     43 		    The kind of clock is selected by the mode parameter. This parameter
     44 		    selects the clock type which deterimines how I/O is done,
     45 		    the tty parameters and the NTP parameters.
     46 
     47 		    refclock_parse operates on an abstract reference clock
     48 		    that delivers time stamps and stati. Offsets and sychron-
     49 		    isation information is derived from this data and passed
     50 		    on to refclock_receive of xntp which uses that data for
     51 		    syncronisation.
     52 
     53 		    The abstract reference clock is generated by the parse*
     54 		    routines. They parse the incoming data stream from the
     55 		    clock and convert it to the appropriate time stamps.
     56 		    The data is also mapped int the abstract clock states
     57 		    	POWERUP - clock has no valid phase and time code
     58 				  information
     59 
     60 			NOSYNC	- Time code is not confirmed, phase is probably
     61 				  ok.
     62 			SYNC	- Time code and phase are correct.
     63 
     64 		    A clock is trusted for a certain time (type parameter) when
     65 		    it leaves the SYNC state. This is derived from the
     66 		    observation that quite a few clocks can still generate good
     67 		    time code information when losing contact to their
     68 		    synchronisation source. When the clock does not reagain
     69 		    synchronisation in that trust period it will be deemed
     70 		    unsynchronised until it regains synchronisation. The same
     71 		    will happen if xntp sees the clock unsynchronised at
     72 		    startup.
     73 
     74 		    The upper bit of x specifies that all samples delivered
     75 		    from the clock should be used to discipline the NTP
     76 		    loopfilter. For clock with accurate once a second time
     77 		    information this means big improvements for time keeping.
     78 		    A prerequisite for passing on the time stamps to
     79 		    the loopfilter is, that the clock is in synchronised state.
     80 
     81 	   parse.c  These are the general routines to parse the incoming data
     82 		    stream. Usually these routines should not require
     83 		    modification.
     84 
     85 	   clk_*.c  These files hole the conversion code for the time stamps
     86 		    and the description how the time code can be parsed and
     87 		    where the time stamps are to be taken.
     88 		    If you want to add a new clock type this is the file
     89 		    you need to write in addition to mention it in
     90 		    parse_conf.c and setting up the NTP and TTY parameters
     91 		    in refclock_parse.c.
     92 
     93 Further information can be found in parse/README.parse and the various source
     94 files.
     95 
     96 Frank Kardel
     97