[Ntp] Antw: Re: Antw: [EXT] Re: Quick review of WGLC for status change for draft-ietf-ntp-update-registries

Ulrich Windl <Ulrich.Windl@rz.uni-regensburg.de> Thu, 18 August 2022 08:36 UTC

Return-Path: <Ulrich.Windl@rz.uni-regensburg.de>
X-Original-To: ntp@ietfa.amsl.com
Delivered-To: ntp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1C1E8C14CE2C for <ntp@ietfa.amsl.com>; Thu, 18 Aug 2022 01:36:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level:
X-Spam-Status: No, score=-1.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2-NVAWz4mcCk for <ntp@ietfa.amsl.com>; Thu, 18 Aug 2022 01:36:33 -0700 (PDT)
Received: from mx1.uni-regensburg.de (mx1.uni-regensburg.de [IPv6:2001:638:a05:137:165:0:3:bdf7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 455ADC14F748 for <ntp@ietf.org>; Thu, 18 Aug 2022 01:36:31 -0700 (PDT)
Received: from mx1.uni-regensburg.de (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 986146000062 for <ntp@ietf.org>; Thu, 18 Aug 2022 10:36:26 +0200 (CEST)
Received: from gwsmtp.uni-regensburg.de (gwsmtp1.uni-regensburg.de [132.199.5.51]) by mx1.uni-regensburg.de (Postfix) with ESMTP id 6911E600005A for <ntp@ietf.org>; Thu, 18 Aug 2022 10:36:25 +0200 (CEST)
Received: from uni-regensburg-smtp1-MTA by gwsmtp.uni-regensburg.de with Novell_GroupWise; Thu, 18 Aug 2022 10:36:25 +0200
Message-Id: <62FDFA06020000A10004C6A2@gwsmtp.uni-regensburg.de>
X-Mailer: Novell GroupWise Internet Agent 18.4.1
Date: Thu, 18 Aug 2022 10:36:22 +0200
From: Ulrich Windl <Ulrich.Windl@rz.uni-regensburg.de>
To: stenn@nwtime.org, mlichvar@redhat.com
Cc: "ntp@ietf.org" <ntp@ietf.org>, Heiko Gerstung <heiko.gerstung@meinberg.de>
References: <FF22AEFE-ED61-405E-AB40-B7901D0CD588@meinberg.de> <f79cecd6-92b0-595b-e449-6b6f8944ae66@nwtime.org> <133C5633-E4D5-42AF-8215-E3FDE28C5BF9@meinberg.de> <4f833218-231f-8c47-e529-b3ba00f6554e@nwtime.org> <62FB5EDB020000A10004C5CD@gwsmtp.uni-regensburg.de> <a89aeba9-5e88-2214-634f-7a9a7106eec3@nwtime.org> <Yvt4C97N+I51c54v@localhost> <d4ff7203-1c7a-2c9b-ab27-5c5143253b7e@nwtime.org> <YvyqnxraeuxbGqNs@localhost> <3d6d3d96-09cf-1122-f866-f561e676ce0b@nwtime.org> <YvzsAxnyEoNCw8bI@localhost> <59d0ab10-8c50-a71d-8c74-a94bc012a251@nwtime.org> <6AFCB82E020000327BE0EBB5@gwsmtp.uni-regensburg.de> <4CB5CC870200008B822C0D04@gwsmtp.uni-regensburg.de> <60C367EE020000A986EDC2A6@gwsmtp.uni-regensburg.de> <FEA2AE59020000BF822C0D04@gwsmtp.uni-regensburg.de> <BB908AD30200002F86EDC2A6@gwsmtp.uni-regensburg.de> <F0B7CB85020000F0822C0D04@gwsmtp.uni-regensburg.de> <62FB5EDB020000A10004C5CD@gwsmtp.uni-regensburg.de> <F7211617020000C9822C0D04@gwsmtp.uni-regensburg.de> <B01B5D8D020000786A6A8CFC@gwsmtp.uni-regensburg.de> <FE4B42EF020000DC822C0D04@gwsmtp.uni-regensburg.de> <43CEEC91020000736A6A8CFC@gwsmtp.uni-regensburg.de> <A20358250200004A822C0D04@gwsmtp.uni-regensburg.de> <4B86A8CD0200005A6A6A8CFC@gwsmtp.uni-regensburg.de> <6CAE8D93020000F1822C0D04@gwsmtp.uni-regensburg.de>
In-Reply-To: <6CAE8D93020000F1822C0D04@gwsmtp.uni-regensburg.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Archived-At: <https://mailarchive.ietf.org/arch/msg/ntp/ieuUnw7aLDbvJrJ5B0mKYnsABj4>
Subject: [Ntp] Antw: Re: Antw: [EXT] Re: Quick review of WGLC for status change for draft-ietf-ntp-update-registries
X-BeenThere: ntp@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Network Time Protocol <ntp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ntp>, <mailto:ntp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ntp/>
List-Post: <mailto:ntp@ietf.org>
List-Help: <mailto:ntp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ntp>, <mailto:ntp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Aug 2022 08:36:39 -0000

>>> Harlan Stenn <stenn@nwtime.org> schrieb am 17.08.2022 um 23:44 in Nachricht
<59d0ab10-8c50-a71d-8c74-a94bc012a251@nwtime.org>:
> Miroslav,
> 
> Sometimes I have trouble taking you seriously.
> 
> On 8/17/2022 6:24 AM, Miroslav Lichvar wrote:
>> On Wed, Aug 17, 2022 at 02:30:20AM -0700, Harlan Stenn wrote:
>>> I believe that's what has already been done.  For the timing modes:
>>>
>>> v2 to v3 changed a variable in the packet header.
>> 
>> So if a v2 server responded to v3 request with v2 data in v3 packet,
>> the client would get incorrect data?
> 
> There are slight differences in the data content between v2 and v3.
> 
> In v2 the 2nd word is Synch Distance and the 3rd word is Synch Dispersion.
> 
> In v3 and beyond the 2nd word is Root Delay and the 3rd word is Root 
> Dispersion.
> 
> None of these changes are operationally significant.

So why were the packet fields renamed then? I guess the algorithms to set them up did change, too.

> 
> Do you disagree?
> 
> And this change was made over 30 years' ago.
> 
>> I thought you said the idea was to add new fields if incompatible
>> changes are made.
>> 
>> In case you forgot, v2 was not compatible with v1 either.
> 
> Different.
> 
> In v1 the 3rd word is Estimated Drift Rate.
> 
> In v2 and beyond the 3rd word is Synch Dispersion.
> 
> OK, in v1 the 2nd word is Estimated Error and in v2 and beyond the 2nd 
> word is Synch Distance.
> 
> None of these values are used in the basic time calculations.

But "estimated error" is used to set the client's clock (via timex.h interface), right.

An of the "mode 6" side it's even more adventurous:
Some time "phase" became "offset", "error" became "noise", "freq" became "frequency" (with a different unit),
"rootdispersion" became "rootdisp", "noise" became "clk_jitter" (I guessed), "jitter" became "sys_jitter", "stability" became "clk_wander", "poll" became "tc". (Using mode 6 for monitoring is a real adventure, specifically as there is no (or little?) documentation on the variables being used).
OK, it's easy to say the packet format is still the same, but does it really help?

> 
> And this change was made/codified over 33 years' ago.
> 
>>> v3 to v4 added extension fields.
>> 
>> As Ulrich already explained, that works only for the v3-subset of the
>> protocol, i.e. the same is if the protocol number didn't change.
> 
> OK.  What's your point?
> 
> Do you agree that a v4 packet without EFs is equivalent to a v3 packet?

The packet yes, but won't the frequently cited "pulse response" be different?

> 
> If so, that's 100% compatibility.
> 
> What problem do you see?
> 
>> A v3 server is not able to respond to a v4 request containing
>> extension fields, even if it's authenticated with a symmetric key that
>> the server knows.
> 
> So what?

That means the client has to keep different implementations per protocol version, making the whole discussing a bit useless IMHO.
Just "chopping off the extras that were added later" doesn't really work.

> 
> The only EFs that have been 0-day supported by v4 have been autokey EFs.

What does that mean, "0-day supported"? You sent it out to the public, but then say nobody should use it as it is broken and there is not easy replacement? You can safely assume that those EFs will be "ghosting around" for years. I think the whole autokey stuff wasn't really ready for public; instead it was a kind of public beta test that was canceled soon.

> 
> If the v3 server authenticates with a symmetric key, there will be no 
> problem.
> 
> v3 *does not describe EFs*.
> 
> v3 went EOL in November of 1998.
> 
> Why would a v4 client decide to send an EF to a v3 server?

Because id does not have separate implementations for each protocol version?

> 
> Is what you describe a real problem?  If so, how significant is it?
> 
> I guess I'm really asking what your goal is.
> 
>>> As I have said many times, the design of the timing modes and the packet
>>> structure allows NTP to reply to packets of lesser, equal, or greater
>>> version numbers and "it just works".
>> 
>> No, it doesn't. You may think it works, but you just don't see the
>> whole picture.
> 
> Then please sufficiently describe the actual problem(s).
> 
>>> Your NTPv5 work is explicitly breaking that rule, and y'all are apparently
>>> only recently beginning to see some of the consequences of that choice.
>> 
>> That rule isn't written anywhere and as you just shown, it wasn't
>> followed anyway. Why should be v4->v5 be different?
> 
> Please support your claim that the changes in the past were 
> operationally significant.
> 
> Please show how your claim that what you have proposed for v5 changes 
> are similarly operationally (in)significant.
> 
>>> It's not clear to me what or how long it will take for a v5 client to detect
>>> and remediate an attempt to talk to a v4 server.
>> 
>> If you read the draft, you would know there is no additional delay.
> 
> So what delay is there?  I'm trying to avoid spending time slogging thru 
> a significant document to obtain a small piece of information.

Harlan, we all read a lot of documents over and over...

> 
> And the v5 work that I have see is all about "rough consensus" and, to 
> date, nothing about "working code".

I think that is how software should be done: First have a concept, them implement it, the revalidate the concept, maybe just to decide whether the concept has a flaw or the implementation of the concept. Possibly NTP developement worked the other direction in the past (first implement, then specify).
However if you want to promote different competing implementations the "design first" has clear advantages.

> 
>>> It's not clear to me what or how long it will take a v4 client to detect and
>>> remediate an attempt to get time from a v5 server that does not respond to
>>> the v4 request.
>> 
>> As was said multiple times, a v5-only server cannot respond to v4
>> requests. The same as a v4-only server following RFC5905 cannot
>> respond to a v3 request and the same as a v3-only server following
>> RFC1305 cannot respond to a v2 request.
> 
> That doesn't clearly answer my question.
> 
> This goes to "how easy will it be to deploy your proposed v5 solution".

Maybe a significant part of the NTPv5 specification should handle the "protocol gateway", i.e.: how to handle requests from older NTP versions and how to send requests to older NTP implementations. Thinking this is not a problem to care about is simply wrong. Specifically if an implemenewr just wants to implement the currenct version, the rest of the document does not have to be "polluted" with all the compatibility stuff.

> 
>>>>>> Are there any client implementations using the NTPv4 control mode?
>> 
>>> If that is, indeed, what you are asking, then no, I'm not aware of anything.
>>> But how does that matter?
>> 
>> It gives us an idea how important it is to have it specified.
> I think you removed too much context in there.
> 
> And I don't see the correlation between "client implementations using 
> the NTPv4 control mode" and "how important is it to specify the control 
> modes".

The control protocol _is_ important for remote monitoring. I guess that is why it was designed and implemented (even if "ad hoc").

Regards,
Ulrich