Re: [Gen-art] [Tzdist-bis] Genart last call review of draft-murchison-tzdist-tzif-14
Eliot Lear <lear@cisco.com> Mon, 01 October 2018 07:40 UTC
Return-Path: <lear@cisco.com>
X-Original-To: gen-art@ietfa.amsl.com
Delivered-To: gen-art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D836F130DD8; Mon, 1 Oct 2018 00:40:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.956
X-Spam-Level:
X-Spam-Status: No, score=-14.956 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.456, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
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 2dKi0M9gfOnO; Mon, 1 Oct 2018 00:40:47 -0700 (PDT)
Received: from aer-iport-2.cisco.com (aer-iport-2.cisco.com [173.38.203.52]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 991581271FF; Mon, 1 Oct 2018 00:40:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=16909; q=dns/txt; s=iport; t=1538379647; x=1539589247; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to; bh=GPyW7I0s5zzUdM64fuTy10YJCoJQF8bYX6VgmxOQj7A=; b=NM98j7aTqKqiEhdxpI0+ZxLnIcBaAIWYkDy8mJAifYL+ACVoJlm6fsiV RGY22CjflXlJsm1dNrllEt/U5uBNTbP2JqoOb23mjzz2jLLyE1ylk3hLq 6eKwB6b7dopteV9ymUjbJFxvBK3SjBjbuPaW1fO7pQRA2NmEKSA/RWCvH o=;
X-Files: signature.asc : 488
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AOAAAhzrFb/xbLJq1aGQEBAQEBAQEBAQEBAQcBAQEBAQGBU4JybRIog3SIdI0xLZZagXoIAxgLhANGAoQkNhYBAwEBAgEBAm0cDIU4AQEBAQIBAQEhSwsFCwkCFAQqAgInMAYBDAYCAQEQgw0BgXkID4dum02BLol6CgWCbYgsggCBEieCPS6DGwEBgTpHDIJVglcCiEsBAyoClC4JhAGBZl6DDIMPg04GF4FHIoQ5gmMmhiSMDIklgUkGK0GBFDMaCBsVO4JsixaFQD0wijWCTQEB
X-IronPort-AV: E=Sophos; i="5.54,327,1534809600"; d="asc'?scan'208"; a="6912531"
Received: from aer-iport-nat.cisco.com (HELO aer-core-3.cisco.com) ([173.38.203.22]) by aer-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Oct 2018 07:40:43 +0000
Received: from [10.61.230.157] ([10.61.230.157]) by aer-core-3.cisco.com (8.15.2/8.15.2) with ESMTP id w917egQ5001268; Mon, 1 Oct 2018 07:40:42 GMT
To: Dale Worley <worley@ariadne.com>, gen-art@ietf.org
Cc: draft-murchison-tzdist-tzif.all@ietf.org, ietf@ietf.org
References: <153836174465.13418.13652697245235348230@ietfa.amsl.com>
From: Eliot Lear <lear@cisco.com>
Openpgp: preference=signencrypt
Autocrypt: addr=lear@cisco.com; prefer-encrypt=mutual; keydata= xsBNBFMe1UQBCADdYOS5APDpIpF2ohAxB+nxg1GpAYr8iKwGIb86Wp9NkK5+QwbW9H035clT lpVLciExtN8E3MCTPOIm7aITPlruixAVwlBY3g7U9eRppSw9O2H/7bie2GOnYxqmsw4v1yNZ 9NcMLlD8raY0UcQ5r698c8JD4xUTLqybZXaK2sPeJkxzT+IwupRSQ+vXEvFFGhERQ88zo5Ca Sa1Gw/Rv54oH0Dq2XYkO41rhxQ60BKZLZuQK1d9+1y3I+An3AJeD3AA31fJZD3H8YRKOBgqe ILPILbw1mM7gCtCjfvFCt6AFCwEsjITGx55ceoQ+t5B5XGYJEppMWsIFrwZsfbL+gP31ABEB AAHNJUVsaW90IExlYXIgPGxlYXJAb2Zjb3Vyc2VpbXJpZ2h0LmNvbT7CwJEEEwECADsCGwMC HgECF4ACGQEWIQSY0L2QRh2wkqeyYR2HtmtG2dJ6MwUCWxJwMwULCQgHAgYVCAkKCwIEFgID AQAKCRCHtmtG2dJ6MyMyCACXvtFjAYGMtOkD9MD4nI3ifFpkrj8xTMbXjrv5hdqmzRmQ0wqA 1U/OlZux+P/NaVMiZNZc8zw0nsx/INAqDOVd4/tLWF+ywTkeRFR0VnaUxLwCReZAZOaRS+md +52u/6ddoFja2RnjZ43qbbuvVUARQVIyMJz+GbR6mEZQHR0psD7dDYZDyrpivCxm8zHQwmB6 AZUlO7OJgljDvVPVDCabg/ZnJw1qS0OzSiNb0MySk1D5A7FdwDgeKxuMYUOOoVVTTMWNWcME UkRX9LxElswEt0PQWiz/j3FYXTxiFfl/1vKcHx4pM+E5C5mhTbrdFUFLJC3Y5fLID7stK/Ch aEaBzsBNBFMe1UQBCAC0WV7Ydbv95xYGPhthTdChBIpPtl7JPCV/c6/3iEmvjpfGuFNaK4Ma cj9le20EA5A1BH7PgLGoHOiPM65NysRpZ96RRVX3TNfLmhGMFr5hPOGNdq+xcGHVutmwPV9U 7bKeUNRiPFx3YdEkExddqV2E8FltT0x2FSKe2xszPPHB6gVtMckX5buI9p1K3fbVhXdvEkcY Y/jB0JEJGyhS5aEbct5cHUvDAkT81/YFK5Jfg8RRwu1q1t1YuIJSOWAZQ9J9oUsg6D9RpClU +tIFBoe3iTp1AUfJcypucGKgLYKtpu/aygcpQONHYkYW5003mPsrajFhReVF5veycMbHs4u5 ABEBAAHCwF8EGAECAAkFAlMe1UQCGwwACgkQh7ZrRtnSejOSuQgA27p2rYB7Kh20dym6V8c6 2pWpBHHTgxr/32zevxHSiXl6xvUCg5T8WUwfUk8OvgDcBErK/blDAMXQzSg3sp450JhR8RnX HXF5Zz2T04X7HnlIVJGwf2CjnwyEAJCqMzaCmI+g3Imvg/8L4nyBFvhlFHDv+kIvMiujyycj PAu7xxKplBs1/IEwmDoAMjneFmawvfeQnwdMhSKK8PjKSuzGU5uUmxj3GBfRqvTM0qpmhMPF OmDhJSmH55HLAky2MlmqJYXJPt/9EfSEhFiua1M6gLiuNEuPkp+8jcnHQqKr0IeHt8UqcwLt 2mGfIyl0FVdF9hvWPjNRzGbgqoT1Di03RQ==
Message-ID: <0f857a7e-d080-bc1b-05a1-bf3056a1c819@cisco.com>
Date: Mon, 01 Oct 2018 09:40:41 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1
MIME-Version: 1.0
In-Reply-To: <153836174465.13418.13652697245235348230@ietfa.amsl.com>
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="9OshP1u5mOGpM1X9eaQa35jG97VeGOtXO"
X-Outbound-SMTP-Client: 10.61.230.157, [10.61.230.157]
X-Outbound-Node: aer-core-3.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/gen-art/awFKbTfdm8T91ViHY-Rizu-ufsc>
Subject: Re: [Gen-art] [Tzdist-bis] Genart last call review of draft-murchison-tzdist-tzif-14
X-BeenThere: gen-art@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <gen-art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/gen-art>, <mailto:gen-art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/gen-art/>
List-Post: <mailto:gen-art@ietf.org>
List-Help: <mailto:gen-art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/gen-art>, <mailto:gen-art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Oct 2018 07:40:51 -0000
Hi Dale, Thanks for the review. I know Paul has some comments, but here are mine. On 01.10.18 04:42, Dale Worley wrote: > Reviewer: Dale Worley > Review result: Ready with Issues > > I am the assigned Gen-ART reviewer for this draft. The General Area > Review Team (Gen-ART) reviews all IETF documents being processed > by the IESG for the IETF Chair. Please treat these comments just > like any other last call comments. > > For more information, please see the FAQ at > > <https://trac.ietf.org/trac/gen/wiki/GenArtfaq>. > > Document: draft-murchison-tzdist-tzif-14 > Reviewer: Dale R. Worley > Review Date: 2018-09-30 > IETF LC End Date: 2018-10-09 > IESG Telechat date: unknown > > Summary: > This draft is on the right track but has open issues, described > in the review. > > Major issues: > > 1. The draft does not specify the versioning and compatibility > principles governing TZif files and their processors. Certain > passages suggest that processors are expected to *not* examine the > version number in a file, but instead, extensions to the file format > are made by adding further data blocks to the end of the file, and > later-version processors handle earlier-version files by noticing that > latter data blocks are missing. This approach implies that processors > based on earlier versions to not notice that there appears to be > trailing garbage in the file. But silent acceptance of trailing > garbage is not specified, and this strategy is different from most > IETF standards. These files are self-contained, and may contain multiple versions of the same information for compatibility purposes. This is discussed in Section 4 of the document. I think it would be good to address your last sentence by adding a new second bullet point to that section, as follows: > o Implementations that only understand Version 1 MUST ignore any > data that extends beyond the calculated end of the version 1 data block. I think it also makes sense to modify the following as well. OLD: > o Implementations SHOULD calculate the total lengths of the 32- and > 64-bit headers and data blocks and compare them against the actual > file size, as part of a validity check for the file. > NEW: > o Implementations more recent than version 1 SHOULD calculate the > total lengths of the 32- and > ^^^^^^^^^^^^^^^^^^^^^^^ > 64-bit headers and data blocks and compare them against the actual > file size, as part of a validity check for the file. > If there is text that suggests that version information not be considered, could you please call that out? And it's worth noting that a vast amount of code out there operates in just this fashion today. > > 2. The semantics of the various data items -- what they mean and how > they are to be used in processing -- is only hinted at. I suspect > that the draft is targeted at members of the community who already > thoroughly understand the semantics of the data items (based on their > names), but this is not stated, nor is any reference given to where > one might learn this information. OTOH, the glossary (in section 2) > gives definitions of several terms that suggest the document is > attempting to define the semantics, but the definitions given are > nowhere near sufficient to specify those semantics. This isn't really actionable. Also, Section 2 is not in itself meant to provide comprehensive definition of all elements. Much of that is done in Section 3 for each data element. Thus I propose no change here. > > 3. Apparently (see comments on section 4), characters outside the > ASCII set are allowed in time zone designations. If so, their > encoding needs to be specified. This element is a reference to a POSIX string and must be handled in accordance with POSIX rules. This is already referenced. I'll leave it to Ken and Paul to address nits. Eliot > > Minor issues: > > Nits/editorial comments: > > > 1. Introduction > > This specification does not define the source of leap second > information, nor does it define the source the time zone data, > metadata, identifiers, aliases, localized names, or versions as > defined in Section 3 of [RFC7808]. One such source is the IANA- > hosted time zone database [RFC6557]. > > The sequence "nor does it define the source the time zone data" is > gramatically incorrect. I would suggest it should be "... the source > of ...", but making that change leaves the semantically heterogenous > list "the time zone data, metadata, identifiers, aliases, localized > names, or versions". Also, it's not clear how "as defined in Section > 3 of [RFC7808]" attaches to the sentence, since the closest item in > the list, "versions", is defined in section 3 and not RFC 7808. I > suspect that some part of the wording was accidentally deleted. > > 2. Conventions Used in This Document > > Daylight Saving Time (DST): The time according to a location's law > or practice, adjusted as necessary from standard time. The > adjustment may be positive, negative, or zero. > > This seems to read that "Daylight Saving Time" is not "standard time" > plus the summer time offset, but standard time, adjusted by whatever > summer time offset might be in effect at the moment. But that is not > not the definition of DST, at least, not as commonly used in the US. > What exactly is meant here? I would prefer a much more careful > explanation of how the various terms are used. > > 2. a change in whether standard or daylight saving time is in use > > Is this intended to include the regular transition between summer time > and winter time, or only when a locality starts or stops the practice > of using summer time each year or the schedule of transitions? > > UNIX Leap Time: [...] > Similarly, if > the second leap second record occurs at 1972-12-31 23:59:60 UTC, > its UNIX leap time would be 94694401; the second occurrence > accounts for the first leap second. > > I think this would be clearer as: > > Similarly, if the second leap second record occurs at 1972-12-31 > 23:59:60 UTC, the UNIX leap time of 1972-12-31 23:59:60 UTC > would be 94694401 and the UNIX leap time of 1973-01-01 00:00:00 > UTC would be 94694402. > > -- > > If a TZif file specifies no > leap second records, UNIX leap time is equivalent to UNIX time. > > I think s/equivalent to/equal to/ reads better here. > > Wall Time: The time as shown on a clock set according to a > location's law or practice. > > In what way does this differ from "Local Time"? > > After reading further in the document, I suspect that the structure > you are intending is: There is a "standard time" which is derived > from UTC, and a "daylight savings time" which is derived from UTC, > *both of which run all the time*. From those two, a "wall time" is > derived by specifying points where "wall time" switches between > "standard time" and "daylight savings time". > > 3. The Time Zone Information Format (TZif) > > The description here seems to be out of order. Also, the description > of the data blocks could be clearer; it seems to me that "containing" > makes more sense in this context than "using". A better ordering is: > > The time zone information format begins with a fixed 44-octet > header (Section 3.1). The TZif header contains a field which > specifies the version of the file's format. > > The header is followed by a variable-length data block (Section 3.2) > containing four-octet (32-bit) transition times and leap second > occurrences. These 32-bit values are limited to representing times > from 1901-12-13 20:45:52 through 2038-01-19 03:14:07 UT. > > Version 1 files terminate after the 32-bit data block. > Version 2 and 3 files extend the format by appending a second > 44-octet header, another variable-length data block containing eight-octet > (64-bit) transition times and leap second occurrences, and a variable > length footer (Section 3.3). These 64-bit values can represent times > approximately 292 billion years into the past or future. > > [Move "NOTE" to here.] > > Figure "General Format of TZif Files" > > I think the figure should use s/Transitions/Values/, since not all > of the values are transition times. > > 3.1. TZif Header > > +---------------+---+ > | magic (4) |ver| > +---------------+---+ > > s/ver/ver(1)/ > > '2' (0x32) Version 2 - The file MUST contain the 32-bit header > and data block, a 64-bit header and data block, and a footer. > > The phrases "32-bit header" and "64-bit header" don't work, as the > headers have the same format. They could be called "header for 32-bit > data", etc., but that's a bit awkward. Alternatively, names for all > of the data sections could be defined in section 2. > > typecnt: A four-octet unsigned integer specifying the number of > local time type records contained in the data block - MUST NOT be > zero. (Although time type 0 is not used in files that have > nonempty TZ strings but no transitions, it is nevertheless > required because many TZif readers reject files that lack time > types.) > > This is hard to understand. I *think* "time type 0" means "time type > record 0", or "the time type defined by by time type record 0", and > the parenthesized sentence means "In files that have nonempty TZ > strings but no transitions, the time type records are not used; > nonetheless, in this case there must be one record, time type 0 (which > will be ignored) because many TZif readers reject files that lack time > type records." Here, you are fighting against the very common usage > where a "record" of some sort has a "type" field which contains a > small integer, so you have to be very clear that the "0" *indexes* the > time type record, rather than being the value of a "type" field value > in the time type record. > > 3.2. TZif Data Block > > The TZif data block consists of seven variable-length elements, > [...] > > I think you want to say "A TZif data block", since there can be two of > them in a TZif file. > > In the initial data block, time values are 32-bit (TIME_SIZE = 4 > octets). > > I think it would read better to say "first data block", to parallel > "second data block" and also to clarify you are not referring to the > header. > > +---------------+-+-+---+ > | utoff (4) |dst|idx| > +---------------+---+---+ > > There is an extra "+" in the first line, and the field lengths should > be specified: > > +---------------+------+------+ > | utoff (4) |dst(1)|idx(1)| > +---------------+------+------+ > > -- > > (is)dst: A one-octet value indicating whether local time should > be considered Daylight Savings Time (DST). The value MUST be 0 > or 1. A value of one (1) indicates that DST is in effect. A > value of zero (0) indicates that standard time in effect. > > It seems to me to be better to phrase the last two sentences as "A > value of one (1) indicates that this time type is DST. A value of > zero (0) indicates that this time type is standard time." But that is > assuming that "time type" is not just describing a specific interval > of time, but rather a *type* of intervals of time. > > (desig)idx: A one-octet unsigned integer specifying an index into > the series of time zone designation octets, thereby selecting a > particular designation string. Each index MUST be in the range > [0, 'charcnt'), and MUST index a NUL-terminated (0x00) sequence > of octets. > > The last clause isn't very useful, as it is equivalent to "there must > be a NUL at or after the idx position in time zone designations". I > suspect the real meaning is "Each index MUST be in the range [0, > 'charcnt'), and is interpreted as designating the NUL-terminated > ASCII-encoded string of characters starting at position idx in the > time zone designations. (This string MAY be empty.) A NUL octet MUST > exist in the time zone designations at or after position idx." > > However, Appendix A interoperability item 9 implies that characters > outside the ASCII set are allowed. If so, their encoding needs to be > specified. > > 3.3. TZif Footer > > The footer diagram should be: > > +-------+--------------------+-------+ > | NL(1) | TZ string (0...) | NL(1) | > +-------+--------------------+-------+ > > 4. Interoperability Considerations > > o The sequence of time changes defined by the 32-bit header and data > block SHOULD be a contiguous subsequence of the time changes > defined by the 64-bit header and data block, and by the footer. > This guideline helps obsolescent version 1 readers agree with > current readers about timestamps within the contiguous > subsequence. It also lets writers not catering to obsolescent > readers use a 'timecnt' of zero in the 32-bit data to save space. > > I think s/not catering to/not supporting/, and s/32-bit data/32-bit > data block/. > > * "application/tzif-leap" (Section 8.2) to indicate that leap > second records are included in the TZif data. > > You probably need to spell out: "For version 1 files, leap second > records must be present in the 32-bit data block; for version 2 and 3 > files, leap second records must be present in the 64-bit data block." > > 10.3. URIs > > This section is odd. Item [1] is just the URL for BCP 14, but BCP 14 > is also listed in the references section. Items [6] and [7] duplicate > [8] and [9], but they're references and should be treated as such. > Items [3], [4], and [5] are more interesting -- they're locations > inside reference [POSIX]. The Editor should be able to suggest a > better way of presenting these references. > > Appendix A. Common Interoperability Issues > > Most of these are problems in generating TZif files > for use by readers conforming to predecessors of this specification. > > It would be helpful to those dealing with compatibility issues to have > references to the predecessors of this specification. > > > _______________________________________________ > Tzdist-bis mailing list > Tzdist-bis@ietf.org > https://www.ietf.org/mailman/listinfo/tzdist-bis >