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

Harlan Stenn <stenn@nwtime.org> Wed, 17 August 2022 09:30 UTC

Return-Path: <stenn@nwtime.org>
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 6F3E4C14F735 for <ntp@ietfa.amsl.com>; Wed, 17 Aug 2022 02:30:41 -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, NICE_REPLY_A=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] 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 T9h5nElnoB8o for <ntp@ietfa.amsl.com>; Wed, 17 Aug 2022 02:30:36 -0700 (PDT)
Received: from chessie.everett.org (chessie.everett.org [66.220.13.234]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CE220C14F720 for <ntp@ietf.org>; Wed, 17 Aug 2022 02:30:29 -0700 (PDT)
Received: from [10.208.75.149] (071-084-168-128.res.spectrum.com [71.84.168.128]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by chessie.everett.org (Postfix) with ESMTPSA id 4M72mw2tT5zMP5c; Wed, 17 Aug 2022 09:30:24 +0000 (UTC)
Message-ID: <3d6d3d96-09cf-1122-f866-f561e676ce0b@nwtime.org>
Date: Wed, 17 Aug 2022 02:30:20 -0700
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0
Content-Language: en-US
To: Miroslav Lichvar <mlichvar@redhat.com>
Cc: Ulrich Windl <Ulrich.Windl@rz.uni-regensburg.de>, "ntp@ietf.org" <ntp@ietf.org>, Heiko Gerstung <heiko.gerstung@meinberg.de>
References: <F74A7B5B-3D77-42AF-BD7E-1A874CCD2D66@akamai.com> <67545c9a-3291-bbe6-c876-4c762c80c710@nwtime.org> <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>
From: Harlan Stenn <stenn@nwtime.org>
In-Reply-To: <YvyqnxraeuxbGqNs@localhost>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ntp/iVW6-9ncDfEM7EntHLZ-95Gdkeg>
Subject: Re: [Ntp] 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: Wed, 17 Aug 2022 09:30:41 -0000

On 8/17/2022 1:45 AM, Miroslav Lichvar wrote:
> On Tue, Aug 16, 2022 at 04:44:31AM -0700, Harlan Stenn wrote:
>> On 8/16/2022 3:57 AM, Miroslav Lichvar wrote:
>>> I'd expect most people to assume that the version field indicates the
>>> protocol version, same as for the timing modes.
>>
>> OK, and the significant bit there is "I'd expect".
>>
>> And "protocol version" - exactly what does that mean?
> 
> The network protocol which the server and client need to support in
> order to correctly exchange data.

I believe server and client need more context here.  Specifically, I 
believe it is a good idea to treat timing modes and control modes 
separately.

And IMO it's more than just the packet layout.

>> what is the benefit of bumping the packet version in mode 6 (and probably
>> mode 7) packets?
> 
> If there are no changes in the protocol, then it doesn't make sense to
> increase the version number. This would be a good reason for keeping
> the mode-6 specification separate from the rest.
 >
>> An argument can be made that if backward incompatible changes are made to
>> the mode 6 "protocol" (and I use that term loosely) then at that point it
>> makes sense to bump the version number in the header.
> 
> Yes, exactly. And I expect the same for the timing NTP modes.

I believe that's what has already been done.  For the timing modes:

v2 to v3 changed a variable in the packet header.

v3 to v4 added extension fields.

>>> I like how it explicitly says that servers are not supposed to respond
>>> to unsupported versions.
>>
>> So the reference implementation seems to clearly implement this.
> 
> Yes and I find it interesting that it can do that for mode 6 and 7, but
> not the other modes.

The timing modes are different.

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".  Or it would, for future packet 
versions if future versions followed the design and either APPENDED new 
fields to the older base packet, or even better, used EFs to encapsulate 
new fields.

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.

>> What are the pros/cons of responding (or not) to an unknown version?  I
>> would think this would be something to consider when there is an actual
>> use-case.
> 
> Responding to an unknown version leads to problems when the new
> version is not compatible.

Yes.  That's a consequence of incompatibility.  The only way to change 
this in existing code is to replace the old code.  Good luck with that.

 > You seem to agree that protocol versions
 > should change only on incompatible changes.

I think you are taking excessive license with my POV.

A v4 timing packet without EFs is *identical* to a v3 packet.

This is fine, because (as I recall) 5906 says the presence of an EF 
means a MAC MUST be attached to the packet.  That requirement got 
unilaterally dropped in 7822 because of 7821.  You may recall I gave 
negative feedback about how this was done.

The packet changes in v5 go way beyond previous changes, when it comes 
to incompatibility.

> If the version can change for other reasons and the unknown version
> turns out to be compatible, then responding to the unknown version
> avoids the need to update the code. That's the only advantage I see.

There you go again.

In the past, there was a conscious plan that bumping the timing (at 
least) version number implied additional and POSSIBLY incompatible 
packet changes.

But I've talked about the differences between v3 and v4 above, and these 
incompatibilities are, from everything I can see, non-issues.

That is NOT the case with the v5 proposals and previous versions.

But I note I'm now not certain if I correctly parsed your first sentence 
immediately above.

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.

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.

There are a lot of people who Care Very Much about getting their clocks 
sync'd quickly and well at startup.

>>> Are there any client implementations using the NTPv4 control mode?
>>
>> Do you mean ntpsnmpd?  Something else?
> 
> ntpsnmpd seems to be reusing the ntpq code, i.e. it uses NTPv2.

So what?  ntpsnmpd is a direct and clear example of a client 
implementation using the NTPv4 control mode.

But maybe you meant "is anybody using v4 in the header of a mode 6 command?

If that is, indeed, what you are asking, then no, I'm not aware of 
anything.  But how does that matter?

-- 
Harlan Stenn <stenn@nwtime.org>
http://networktimefoundation.org - be a member!