[ntpwg] ntpwg Updated NTPv4 Protocol Specification/timestamp location
Danny Mayer
mayer at ntp.isc.org
Fri Feb 22 18:15:30 UTC 2008
Brian Utterback wrote:
> I seem to recall that there is an implementation in FreeBSD to
> get the transmit interrupt timestamps. Is anybody here familiar
> with how that was implemented? I talked to some Solaris interface
> driver writers and they seemed to think that it was not practical.
>
Contact Poul Henning-Kemp or Frank Kardel who did this for FreeBSD and
NetBSD respectively.
Danny
> STUART VENTERS wrote:
>> Kurt:
>>
>> Thanks for the support. In the notes Dave published, checkout the
>> section titled 'Errors Due to Interworking Between Software, Hardware,
>> and Driver Schemes' and see if it addresses your test case.
>>
>> _http://www.eecis.udel.edu/~mills/timestamp.txt_
>>
>>
>> As you can see, Dave and I are now pretty much in agreement with the
>> analysis. Hopefully it can morph into an appendix to the NTP spec.
>>
>> The notes describe a variety of timestamping schemes and shows how they
>> interoperate. The simplest scheme (called hardware) uses timestamps at
>> the start of packet. This is the scheme the 1588 spec and hardware
>> support. Another scheme (called software) uses tx timestamps at the
>> start of packet and rx timestamps at end of packet. This is the scheme
>> used by the reference NTP implementation, and I suspect also the one
>> which interoperates best with vanilla switches and routers.
>>
>> My main goal in this discussion was to get some specific scheme in the
>> spec so that as implementations get more precise, they will continue to
>> interoperate. The notes propose a single scheme (hardware) that
>> implementations should use for interoperability. This meets my original
>> goal and I'm ok with this choice on the grounds that it is simple.
>>
>> An unexpected outcome in the discussion was that the simple choice that
>> 1588 made was not optimal for some cases without on-path support. The
>> software scheme, appears to sometimes offer better accuracy.
>> Unfortunately, it's also more complex and different. I'm torn between
>> the simple hardware scheme and a slightly weird software scheme which
>> should work better with existing implementations and on paths without
>> on-path support. (Note that this is not a question of what measurement
>> means are available, because the implementation can transpose from one
>> scheme to another.)
>>
>> As I said before, I can live with the choice of the hardware scheme
>> (SOPtx, SOPrx), but am curious as to how the group feels about the
>> software scheme (SOPtx, EOPrx).
>>
>> Regards,
>>
>> Stuart
>>
>>
>> It looks like the analysis Dave published 21st,
>>
>> Kurt Roeckx wrote:
>> > On Thu, Feb 07, 2008 at 05:34:08PM +0000, David L. Mills wrote:
>> >> Stuart,
>> >>
>> >> No, compare your equation with mine. The view has to be from A, so the
>> >> delay cancels.
>> >
>> >
>> > I'm still not convinced. So I'll try to make an example. Let's assume
>> > that it takes 2 second for the packet to travel from A to B and the
>> > other way around. That is, if A sends a physical signal from low to
>> > high, B will see that change 2 seconds later. Let's also assume that it
>> > takes A 1 second to transmit the packet. Then let's assume that A's and
>> > B's clock are in sync, and that A takes the timestamp at the start of
>> > the packet, and B and the end.
>> >
>> > We start with A sending a packet at time 0.0. A takes the time
>> > when the packets starts to be transmitted, so sets T1 to 0.0.
>> >
>> > The packet will start to arrive at B at 2.0, and stop at
>> > 3.0. B takes the timestamp at the end of the packet
>> > and will set T2 to 3.0.
>> >
>> > It takes B 1 second to process the packet. It will start to transmit
>> > the packet at 4.0. But since it timestamps the packets after
>> > it's completly send, it will set T3 1 second later to 5.0. B will
>> inform
>> > A about T3 with an other packet it will send later.
>> >
>> > The packet starts to arrive at A at 6.0, which is when A takes
>> > the timestamp, getting us T4 = 6.0. The packet completly arrives at
>> > 7.0, but that doesn't matter.
>> >
>> > This gives:
>> > offset = 1/2 * [(T2-T1) + (T3-T4)] = 1/2 * [(3-0)+(5-6)] = 1.
>> >
>> > While we expected the result to be 0.
>> >
>> > Note that for the delay we don't have the problem.
>> > delay = (T4-T1) - (T3-T2) = (6-0) - (5-3) = 4.
>> >
>> >
>> > Kurt
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> ntpwg mailing list
>> ntpwg at lists.ntp.org
>> https://lists.ntp.org/mailman/listinfo/ntpwg
>
More information about the ntpwg
mailing list