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