Re: [Ntp] CLOCK_TAI (was NTPv5: big picture)

Magnus Danielson <magnus@rubidium.se> Thu, 07 January 2021 14:19 UTC

Return-Path: <magnus@rubidium.se>
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 1A3513A117E for <ntp@ietfa.amsl.com>; Thu, 7 Jan 2021 06:19:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.36
X-Spam-Level:
X-Spam-Status: No, score=-2.36 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-0.262, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rubidium.se
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LUIX6IDgmmWc for <ntp@ietfa.amsl.com>; Thu, 7 Jan 2021 06:19:41 -0800 (PST)
Received: from ste-pvt-msa1.bahnhof.se (ste-pvt-msa1.bahnhof.se [213.80.101.70]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E71F03A117D for <ntp@ietf.org>; Thu, 7 Jan 2021 06:19:40 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by ste-pvt-msa1.bahnhof.se (Postfix) with ESMTP id 4FC953F733; Thu, 7 Jan 2021 15:19:38 +0100 (CET)
Authentication-Results: ste-pvt-msa1.bahnhof.se; dkim=pass (2048-bit key; unprotected) header.d=rubidium.se header.i=@rubidium.se header.b=avBoFmP6; dkim-atps=neutral
X-Virus-Scanned: Debian amavisd-new at bahnhof.se
Received: from ste-pvt-msa1.bahnhof.se ([127.0.0.1]) by localhost (ste-pvt-msa1.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dDPm79Ad9EYw; Thu, 7 Jan 2021 15:19:36 +0100 (CET)
Received: by ste-pvt-msa1.bahnhof.se (Postfix) with ESMTPA id B5FB23F6A7; Thu, 7 Jan 2021 15:19:35 +0100 (CET)
Received: from machine.local (unknown [192.168.0.15]) by magda-gw (Postfix) with ESMTPSA id 28AFE9A0084; Thu, 7 Jan 2021 15:19:35 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=rubidium.se; s=rubidium; t=1610029175; bh=qraPb06SDLSdK3XJK2ACG1Nw8BdkXHZnIDZu/2JiJpU=; h=Cc:Subject:To:References:From:Date:In-Reply-To:From; b=avBoFmP6+r+x6IorXWvn/c5ADJaRqlD7cS12iR47tg9k1vWYJ0g2MR7pw4kaDaql8 fPIsIasNVe7N/Xc64QLHsaKA51HdanqrNFrcyoCpAoGStiRZW61eVZhP8kCavaUttF qHNtYJZJyOvxusK1g4VmMqWWN8lFpsJMhea87/jeu2R1nTqoJuYUX71g+nHExSqE0R oMD5kx6s+BPEsnQRoHXkpFa9tozgRpLGoH0dDuehcv42uatDww9WBCMhA2ZUMeByiG knbhjxprJAOkR4JNiSXgDrmWo9nTIxoam3K3Mr4g1PCe7TcDOUMLd4+209eoF6Z6Kt F2qvxoZFBpJpQ==
Cc: magnus@rubidium.se, ntp@ietf.org
To: Martin Burnicki <martin.burnicki@meinberg.de>, Miroslav Lichvar <mlichvar@redhat.com>
References: <20210102081603.1F63C40605C@ip-64-139-1-69.sjc.megapath.net> <cecaf661-92af-8b35-4c53-2f025c928144@rubidium.se> <20210104164449.GE2992437@localhost> <b1e61f7d-6cea-5e99-69f0-7eae815d9e19@rubidium.se> <20210105083328.GA3008666@localhost> <ba5d2cde-6b5e-d9b6-1877-c4060bf43e80@rubidium.se> <f8a1b9fa-887f-3402-d6e9-19dd4fa98e33@meinberg.de> <75348282-d6aa-e1f1-0ab1-4dfbc1379ff4@rubidium.se> <39e28d2c-454d-43f1-ee58-b136187212b1@meinberg.de>
From: Magnus Danielson <magnus@rubidium.se>
Message-ID: <f1592fa2-3922-e2ac-a9d4-6dfccaa17c36@rubidium.se>
Date: Thu, 07 Jan 2021 15:19:34 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:78.0) Gecko/20100101 Thunderbird/78.6.0
MIME-Version: 1.0
In-Reply-To: <39e28d2c-454d-43f1-ee58-b136187212b1@meinberg.de>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/ntp/OaxkAhJ3fJX5PpG4o4KMOTXXKIE>
Subject: Re: [Ntp] CLOCK_TAI (was NTPv5: big picture)
X-BeenThere: ntp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <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, 07 Jan 2021 14:19:45 -0000

Martin,

On 2021-01-06 11:24, Martin Burnicki wrote:
> Magnus Danielson wrote:
>> Martin,
>>
>> On 2021-01-05 17:24, Martin Burnicki wrote:
>>> Magnus Danielson wrote:
>>>> I agree that NTPv5 cannot support only TAI.
>>>>
>>>> However, there comes the first challenge, do the core time-stamp format
>>>> be that of a single format or of any timescale format. I think we agree
>>>> that formats having the POSIX, Linux and NTPv4 type of leap-second jumps
>>>> is to be avoided.
>>> I really wonder what the "NTPv4 type of leap second jumps" is. If the
>>> system supports leap seconds at all, at least ntpd just passes the leap
>>> second announcement to the kernel. And the daemon relies on the
>>> timestamps returned by the kernel.
>>>
>>> If the kernel handles this in a way we don't consider "appropriate",
>>> what could an NTP (or PTP or whatever) daemon do to fix it? Applications
>>> will still suffer from limitations of the operating system.
>> Sure. It's a multi-front battle.
>>
>> With "NTPv4 type leap-second jump" i mean the way that the NTPv4 clock
>> ticks in combination with the leap second flag.
> Hm, isn't that a limitation of the system clock, depending on the
> operating system?
It's both. It has affected both the on-wire protocol and how some
operating systems happens to behave. I think we need those as separate
problems. It will be a benefit if we can abondon it from the on-wire
protocol while ensuring we can maintain the mapping over to whatever
operating system mechanism used in a particular machine.
>> It's not a very neat
>> format, even if it works. Alone it does not give us TAI-UTC difference,
>> but if we setup that correctly, we have padded the leap-second and a
>> good implementation can get things right.
> Right, and if we stick with the timestamps in the scale that is
> currently used (as I proposed earlier), the protocol is useful for
> applications that want/need both UTC and TAI, as well for UTC-only
> applications of which there are zillions.

I do not really agree with that. It does come with a burden that is
actually being challenged if we want to keep bearing as it makes many
parts of the core processing more complex, as is adaptation processing.
There is a will to simplify, and if you want to simplify you can do
that, but then one has to face some tough decisions. Personally, I think
those steps are worth taking, and I think there can be good ways to
mitigate many of the concerns, but I do understand that it can be hard
to take in all the various aspects.

>>>> Will that satisfy all needs? Maybe not. OK, but will this provide a
>>>> vehicle for more variants. Seems likely if we have a standard way of
>>>> augmenting the core timing with additional parameters and users add the
>>>> mapping.
>>> That's also fine, but by default it should IMO be possible to provide
>>> simple clients with time in a way as compatible as possible.
>> Indeed. I am confident that the client can be very simple and provide
>> the right time, even with leap seconds occurring.
> Of course. But the limitation is in the server. Right now, it is
> sufficient to have a time source like DCF77. If you enforce using of
> TAI, that's not sufficient anymore.
>
> You only need the UTC/TAI offset if your system supports TAI, but there
> are many applications where this isn't supported, and where it's not
> even a requirement.

Actually, your logic is NTPv4 centric. Now, I tried to make very clear
it would push requirements onto servers if you would take the suggested
path. I'm not going to hide that, rather, I want people to understand
that this would be the logical consequence. However, once that is taken,
the other parts would become much easier.

If you attempt to go the other route, in which you have a proliferation
of how many time-scales servers can support, you then push out to
intermediary and clients nodes to handle the hurdles. There are many
part of the algorithms we are used to use that will become complex, or
you would have to push to the users only to choose servers with
compatible time-scales, which would be even worse as it would deepen the
division we already seeing.

>
>>>> Sure, I am advocating for a particular part of the solution space. But I
>>>> think it is doable without any of the parts becoming cumbersomely
>>>> complex to test and verify. An example is how PTP has extension fields
>>>> extended by SMPTE 2059-2 and the various output mappings documented
>>>> separately in SMPTE 2059-1 to show how the transported parameters
>>>> generate all the legacy timing things. SMPTE 2110-10 then extends SMPTE
>>>> 2059-2 and 2059-1 for the application within the SMPTE 2110 transport
>>>> protocols and timing model of media used there. Anyway, I think it is a
>>>> fair model that seems to work.
>>> If a *simple* client needs to do this just to derive UTC (what's
>>> probably the case for most not telco devices) than it's a wrong approach
>>> to provide TAI and derive UTC from it.
>> Well, it may seem so at first, but if we taken on the burden of getting
>> TAI and TAI-UTC and transport that, the client can be very simple and
>> provide TAI, UTC, POSIX, LINUX, PTP, GPS time scale replicas using very
>> little code or complexity. The mappings provided will not require many
>> pages and it will be easy to implement them all.
>>
>> Check your inbox for a separate example.
> I've seen it. I know conversion between different time scales can be
> done easily *if* all required information is available. I've also
> written lots of functions that convert between different time scales.
Yes, I know you know that field very well. I just wanted to be explicit
so we where agreeing what we where talking about.
> AFAIK, there's no current OS that doesn't support UTC, but there are
> systems that don't support TAI. So why not use the time scale that is
> most supported, and support other scales if they are supported/required?

Exactly what do you mean with "support UTC"? Does all OSes you know
support time as 23:59:60Z? If they don't, they do not fall into "support
UTC" in my book. Some do support mechanisms that enables user layer to
print 23:59:60Z, but far from all. Those that does just renumber UTC
leap second to either 23:59:59 or 00:00:00 with no other indication does
not support UTC in my book.

Keeping a "full UTC" support core time-scale in NTP can be done, but it
comes at a cost.

Cheers,
Magnus