From: Wojciech O. <woj...@ow...> - 2012-05-31 12:27:41
|
I'm checking if I can simulate this with any of my GMs, will ask vendors if they can help out as well. According to the spec (end of section 9.4), the LEAP59 or LEAP61 flags can be cleared during up to +/-2 Announce Intervals from the event to ensure correct propagation, also the LEAP59/61 flags can be set from up to 12 hours before the change, or basically "whenever the GM decides they should be set". I usually have a GPS_LEAP_SECOND_PENDING alarm on the GMs from 3 months before the event. So, an example initial simple approach to test (for Linux / anything with adjtimex() ) could be this: * Once LEAP59 or LEAP61 seen, set the respective TIME_INS / TIME_DEL kernel flags using adjtimex(), Test Implementation: * From 1 or 2 seconds before UTC midnight until 1 or 2 seconds after UTC midnight, suspend calculating all offsets: - add a Boolean pause_update flag to PtpClock, checked first in updateOffset() and updateClock() - if TRUE, skip and return, - create a timer for the leap second operation, - once LEAP59/61 seen for the first time, issue a "leap second pending" warning, arm the timer for (UTC midnight minus 1 or 2 seconds),using TIMER_ABSTIME - when timer expires, set the kernel flags and pause_update flag, re-arm with relative 2 or 4 seconds, issue a "leap second in progress" warning, - when timer expires again, unset flags, stop timer. By then, the kernel should be done with leap second and the UTC offset in PTP messages should now be changed. Issue a warning about new UTC offset. - hope for the best ;) Thanks Wojciech On 31 May 2012 03:03, George Neville-Neil <gn...@ne...> wrote: > > On May 30, 2012, at 13:39 , Martin Burnicki wrote: > > > Hi folks, > > > > I've just submitted a leap second bug report, see: > > > https://sourceforge.net/tracker/?func=detail&atid=744632&aid=3530870&group_id=139814 > > > > In principle I could have a look at this by myself, but I'll be on > vacation > > from June 5 to June 13, and don't have a chance to care about this > before I > > leave. > > > > After my vacation there's not much time until the leap second occurs, > and I > > don't know how much work is waiting for me when I return, so maybe > someone > > else might have a chance to care about this issue. > > > > This kind of stuff may be pretty tricky. I have done something similar > for the > > Windows port of ntpd some years ago, so if I can help by giving some > advice > > beyond what I've written in the bug report, please let me know. I'm > planning > > to have at least partial internet access during my vacation, so I hope I > can > > reply to emails and comments on Sourceforge, if required. > > > > You say in the report that you've tested this. How are you generating the > fake leap > seconds? > > Best, > George > > -- - Wojciech Owczarek |