Annotation of embedaddon/ntp/libparse/README, revision 1.1.1.1

1.1       misho       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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>