Welcome everybody to the OpenSolaris NTP project.

To get the ball rolling, I'd like to start with an overview of the work
items for this project (some of which are already listed on the home page),
and get into some more detail on what I've achieved over the weekend in
subsequent messages.

Here's what I've listed on the home page:

* Identify Solaris changes to xntpd3 5.93e and assess their necessity,
  proposing them to the upstream NTP project if desirable.

  I've gone over the changes and will report on them separately.  We need
  to assess which of those changes need to be kept and why, which may
  require some insight into the CRs and ARC cases that requested them.

* Integrate current ntp 4.2.2 into Solaris, probably via the SFW Nevada
  project.

  I've made a first stab at this over the weekend.  Details will follow
  separately.

* Integrate current NTP nanokernel code into Solaris.

  Back in 2001, I had started implementing this based on the Solaris 8
  Foundataion Source which was available for free download for a short
  time.  I need to dust off my changes and bring them forward to Nevada,
  but this is the most intricate code to touch in this project, and I know
  least about it.  Poul-Henning Kamp suggested to look at FreeBSD
  timecounters here, which is certainly worthwhile.  Given the amount of
  work to do at the moment, I'll probably defer this, though.

* Implement the PPS API (RFC 2783). Initially, this might be a libc-only
  implementation leveraging the timepps-Solaris.h header file from the ntp
  4.2.2 distribution. In a second step, it is desirable to have a common
  kernel implementation of the PPS API that can be used by serial drivers
  instead of duplicating the code in every driver that supports a PPS
  signal. Change current drivers to use that and extend it to new drivers
  that don't currently support PPS signals. Publish the API as part of the
  offcial public DDI.

  Together with the nanokernel changes above, I had started a PPS API
  implementation.  The reason I think we need this two-phased approach is
  that the libc implementation will transparently work with current closed
  drivers that only implement the TIOCSPPS and TIOCGPPSEV ioctls.  I'll
  dust off this code as well, but at the moment it's so full of notes and
  question marks that it's probably barely useful.

* Integrate the parse STREAMS module into Solaris.

  I've got it to compile on Solaris/x86 over the weekend, but need to
  actually try it with a refclock.  There are other issues with the module,
  and we should investigate whether it is still useful today.  Besides,
  there two other STREAMS modules in the ntp 4.2.2 distribution
  (kernel/tty_{chu, clk}_STREAMS.c).  I have absolutely no idea if anyone
  uses those nowadays.

* Implement a low-delay mode for serial interfaces which use large FIFOs by
  default.

  There's http://www.febo.com/time-freq/ntp/jitter/index.html which
  discusses this issue for Linux and FreeBSD.  I had been bitten by it on
  an Enterprise 250 with the se(7D) driver (which is closed-source right
  now, though I had a look at the specs back in the Solaris 8 days).

* Investigate and fix the TOD synchronization model in Solaris.

  Brian mentioned this and can certainly add more details.

Apart from this, we should probably go over the ntp related bugs on
bugs.opensolaris.org and see what to do about them.  It's probably useful
to create an overview page on the project web pages with an assessment.

If you have anything else to add, please speak up.

        Rainer

-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University

Reply via email to