The chu software can be used in combination with NTP to produce a stratum-1 time server.

This is done using the LOCAL reference clock module in ntpd. For example, if you are using ntpd version 4, the following configuration works nicely:

  server 127.127.1.0 prefer
  fudge 127.127.1.0 stratum 0 refid CHU
  disable ntp
  
chu communicates with ntpd via the kernel's adjtimex() API. Note that adjtimex() is the Linux API, and may be called ntp_adjtime() on other systems.

The system clock is disciplined by chu, not by ntpd.

chu appropriatly maintains the status flags and error estimates so that ntpd can do the right thing.