Annotation of embedaddon/ntp/libparse/README, revision 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>