Re: [Tzdist] Getting to closure Re: [tzdist] #31 (service): Include leap seconds?

Martin Burnicki <martin.burnicki@burnicki.net> Wed, 17 December 2014 14:55 UTC

Return-Path: <martin.burnicki@burnicki.net>
X-Original-To: tzdist@ietfa.amsl.com
Delivered-To: tzdist@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3594F1A701F for <tzdist@ietfa.amsl.com>; Wed, 17 Dec 2014 06:55:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.149
X-Spam-Level: *
X-Spam-Status: No, score=1.149 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
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 xabJbdQKRh98 for <tzdist@ietfa.amsl.com>; Wed, 17 Dec 2014 06:55:35 -0800 (PST)
Received: from www52.your-server.de (www52.your-server.de [213.133.104.52]) (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 D64881A1B16 for <tzdist@ietf.org>; Wed, 17 Dec 2014 06:55:34 -0800 (PST)
Received: from [88.198.220.131] (helo=sslproxy02.your-server.de) by www52.your-server.de with esmtpsa (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) (Exim 4.80.1) (envelope-from <martin.burnicki@burnicki.net>) id 1Y1G0g-0006Gq-QS; Wed, 17 Dec 2014 15:55:30 +0100
Received: from [217.6.112.194] (helo=[172.16.102.127]) by sslproxy02.your-server.de with esmtpsa (TLSv1.2:DHE-RSA-AES256-SHA:256) (Exim 4.80) (envelope-from <martin.burnicki@burnicki.net>) id 1Y1G0d-0001Ug-G4; Wed, 17 Dec 2014 15:55:27 +0100
Message-ID: <5491995B.2030803@burnicki.net>
Date: Wed, 17 Dec 2014 15:55:23 +0100
From: Martin Burnicki <martin.burnicki@burnicki.net>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0 SeaMonkey/2.31
MIME-Version: 1.0
To: Daniel Migault <mglt.ietf@gmail.com>, Steve Allen <sla@ucolick.org>
References: <5478ADD0.2030407@cs.ucla.edu> <54790249.7050503@burnicki.net> <547910E7.4020407@lsces.co.uk> <7BE7527BD73E055AD5F2F7F8@cyrus.local> <54793054.8080705@cs.ucla.edu> <547C5944.2050907@burnicki.net> <547CB645.70009@cs.ucla.edu> <547DC510.6070601@burnicki.net> <38D6ED22-7731-4CF0-8706-161BFAA87361@hanksville.org> <547DF9F5.5050209@lsces.co.uk> <20141202175206.GA11392@ucolick.org> <CADZyTk=iYwLWu1Rw8P+EJQAERL9sz9EKLC7Fos96LeDFScLvQQ@mail.gmail.com>
In-Reply-To: <CADZyTk=iYwLWu1Rw8P+EJQAERL9sz9EKLC7Fos96LeDFScLvQQ@mail.gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Authenticated-Sender: mailout@burnicki.net
X-Virus-Scanned: Clear (ClamAV 0.98.4/19795/Wed Dec 17 12:49:28 2014)
Archived-At: http://mailarchive.ietf.org/arch/msg/tzdist/MrS12WQTE2FkzkHvnc5js1SQe8k
Cc: Time Zone Data Distribution Service <tzdist@ietf.org>
Subject: Re: [Tzdist] Getting to closure Re: [tzdist] #31 (service): Include leap seconds?
X-BeenThere: tzdist@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <tzdist.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tzdist>, <mailto:tzdist-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tzdist/>
List-Post: <mailto:tzdist@ietf.org>
List-Help: <mailto:tzdist-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tzdist>, <mailto:tzdist-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Dec 2014 14:55:37 -0000

Hi,

Daniel Migault wrote:
> Hi,
>
> Regarding the discussion on the leap second, I would suggest we make it
> optional. If you strongly disagree or think that cannot be made
> optional, then feel free to propose some text we agree for version 05.

I'm actually a little bit disappointed that all of the discussion on 
leap seconds is only with regard to the "right" time zones.

I've been hoping the new tzdist protocol would be a good chance to 
simplify all kind of applications which have to deal with times, and 
rely on regular updates coming from human intervention, like changed DST 
rules for particular time zones determined by individual countries, or 
new leap second events scheduled by the IERS.

In my opinion the "right" time zones are basically a good idea, but this 
is only *one* specific application which uses a list of leap second 
dates, and a big minus here is that an expiration date is missing from 
the TZ DB's leap second table representation.


As a summary:

1.) We have the leap second table file provided by NIST, which is 
directly used by NTP (for now). This table *does* include an expiration 
date, and this is important since programs like ntpd can emit a 
*warning* to the user or admin if the file is outdated. It is *not* 
possible to generate such a warning only based on some version info, if 
you (ntpd in this example) can't figure out if a newer version is available.

2.) We have the leap second file from TZ DB. This file has a different 
format than the NIST file, but as far as I can see is simply generated 
from a file in NIST format by a script which is part of the TZ DB 
package. Unfortunately the expiration date is *not* migrated into the TZ 
DB's leap second file, so some important information is lost.

By the way, do I recall correctly that TZ DB should only be *one* of the 
possible providers for the data distributed via the tzdist protocol?

3.) We have a leap second file from IERS, which is once more in a 
different format than the ones mentioned above.

In my opinion the IERS should be the authoritative source for a leap 
second file (or table) since this is the institution deciding whether a 
leap second is to be scheduled, or not. I've proposed this to the IERS 
folks some time ago, and also proposed to include an expiration date.

If you look at the IERS web page at
http://hpiers.obspm.fr/iers/bul/bulc/

then actually there is an outdated Leap_Second_History.datsave file 
dated 2014-01-28
http://hpiers.obspm.fr/iers/bul/bulc/Leap_Second_History.datsave

and also a newer Leap_Second_History.dat file dated 2014-09-30
http://hpiers.obspm.fr/iers/bul/bulc/Leap_Second_History.dat

which contains some more comments in its header, plus an *expiration date*.

So TZ DB's leap second file can alternatively be derived from the IERS 
file, but neither a file in NIST format nor in IERS format can be 
derived from a file in TZ DB format some information being lost.

On the other hand it should be easy for a tzdist client program to 
retrieve a generic table of leap second events plus expiration date from 
a tzdist server, and convert it to one or more formats required by 
applications like the "right" timezones, ntpd, ptpd, or the Network Time 
Forum's General Timestamp (GTS) API.
http://nwtime.org/projects/timestamp-api/


The leap second table expiration date may not be too important for the 
API calls which have actually been implemented to deal with the "right" 
timezones since existing API calls may not provide a way to alert the 
user or application if the table is outdated.

However, programs like ntpd (which already does so) or ptpd could emit a 
warning if they see that the expiration date is approaching, and the GTS 
API could set a warning flag if this is the case.

In real life it is perfectly possible that a system doesn't receive 
updates automatically, maybe in an isolated network, or because a 
caching server has not been updated and provides its clients with 
outdated information.

So my proposal is to let tzdist provide a list of leap second events 
plus an expiration date, as a simple table of UTC dates like 2014-12-31. 
This should not be too hard to be implemented but provides a huge 
benefit for future timekeeping applications, even though this may not be 
directly related to iCalendar applications.

Providing the "right" timezones with its leap second file, eventually in 
binary format, can be a good supplement but in my opinion the primary 
goal should be to make this data available in a generic format.

Best regards,

Martin