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

Martin Burnicki <martin.burnicki@meinberg.de> Wed, 06 January 2021 10:24 UTC

Return-Path: <martin.burnicki@meinberg.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 287D33A129A for <ntp@ietfa.amsl.com>; Wed, 6 Jan 2021 02:24:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.361
X-Spam-Level:
X-Spam-Status: No, score=-2.361 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, 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=meinberg.de
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 DXGLwJuU4TIP for <ntp@ietfa.amsl.com>; Wed, 6 Jan 2021 02:24:28 -0800 (PST)
Received: from server1a.meinberg.de (server1a.meinberg.de [176.9.44.212]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DD9433A1299 for <ntp@ietf.org>; Wed, 6 Jan 2021 02:24:27 -0800 (PST)
Received: from srv-kerioconnect.py.meinberg.de (unknown [193.158.22.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by server1a.meinberg.de (Postfix) with ESMTPSA id 049E571C09B6; Wed, 6 Jan 2021 11:24:23 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meinberg.de; s=dkim; t=1609928664; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RgXlknE7HEnWST4BAr7OSF94b62rjRr+9ZAHTBTnVD0=; b=Yb1p1RD15aEVDL6OsUR/JiFMZaCpIFbQkpNYEQDQATK1NwrvLMhlM2ieuzDX3t7JMBIDbH pNY6hSpE3UZNUw0eJZ8mBWvO2VLuAINkScE7sYD7X3mRUM/4ojjGxVWfA9bWdeh6rz/+7x iYMEdfvv/jswcVB3Z1lUxHS8FgZ0ReAAtyezIEcMnjZuf3d+1ek1yuC5WCq4j7GoVvvJkQ 9lJcXvlS9RV6WeA+ADSUnQ842dGxb1VVQQMDcn8JoTOrj5AWvF13g2G2Nej0LN3r4l7FoT VWrOPoI3F8Y4qsaHA0oVSDRuKFbqyNuQ8bp2nChKKHnDbz1CFZKQT2rf8qREKA==
X-Footer: bWVpbmJlcmcuZGU=
Received: from localhost ([127.0.0.1]) by srv-kerioconnect.py.meinberg.de with ESMTPSA (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)); Wed, 6 Jan 2021 11:24:21 +0100
To: Magnus Danielson <magnus@rubidium.se>, Miroslav Lichvar <mlichvar@redhat.com>
Cc: ntp@ietf.org
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>
From: Martin Burnicki <martin.burnicki@meinberg.de>
Organization: Meinberg Funkuhren GmbH & Co. KG, Bad Pyrmont, Germany
Message-ID: <39e28d2c-454d-43f1-ee58-b136187212b1@meinberg.de>
Date: Wed, 06 Jan 2021 11:24:21 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0
MIME-Version: 1.0
In-Reply-To: <75348282-d6aa-e1f1-0ab1-4dfbc1379ff4@rubidium.se>
Content-Type: text/plain; charset="utf-8"
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ntp/3TMPj-NY1-BdSnPoEhuxxzjH2IE>
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: Wed, 06 Jan 2021 10:24:30 -0000

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 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.

>>> OK, so we want something more continuous and then
>>> concluding some variant of TAI-like property, similar to that of PTP is
>>> useful, not at all saying or suggesting it needs to be the PTP one.
>>>
>>> Second challenge, if we have a TAI-like core format, and we indeed can
>>> rebuild a TAI replica, and we do not consider this enough, would a TAI
>>> format allows us to fairly cheaply adapt that to other formats? Turns
>>> out that this comes very cheap and is easy to do robust, if and only if,
>>> one has access to the TAI-UTC difference and information about an
>>> upcoming one as that eventually approaches.
>> Agreed.
> Good we have agreement on that.
>>
>>> 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.

>>> 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.

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?

Martin
-- 
Martin Burnicki

Senior Software Engineer

MEINBERG Funkuhren GmbH & Co. KG
Email: martin.burnicki@meinberg.de
Phone: +49 5281 9309-414
Linkedin: https://www.linkedin.com/in/martinburnicki/

Lange Wand 9, 31812 Bad Pyrmont, Germany
Amtsgericht Hannover 17HRA 100322
Geschäftsführer/Managing Directors: Günter Meinberg, Werner Meinberg,
Andre Hartmann, Heiko Gerstung
Websites: https://www.meinberg.de  https://www.meinbergglobal.com
Training: https://www.meinberg.academy