[Ntp] Antw: [EXT] NTPv5 draft suggestion to move timescale offset into extension fields.

Ulrich Windl <Ulrich.Windl@rz.uni-regensburg.de> Mon, 07 November 2022 07:34 UTC

Return-Path: <Ulrich.Windl@rz.uni-regensburg.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 37266C1524A1 for <ntp@ietfa.amsl.com>; Sun, 6 Nov 2022 23:34:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.906
X-Spam-Level:
X-Spam-Status: No, score=-1.906 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=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 11XJaO24aEa1 for <ntp@ietfa.amsl.com>; Sun, 6 Nov 2022 23:34:22 -0800 (PST)
Received: from mx2.uni-regensburg.de (mx2.uni-regensburg.de [IPv6:2001:638:a05:137:165:0:3:bdf8]) (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 2752DC1524A0 for <ntp@ietf.org>; Sun, 6 Nov 2022 23:34:21 -0800 (PST)
Received: from mx2.uni-regensburg.de (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id AE7CB6000050 for <ntp@ietf.org>; Mon, 7 Nov 2022 08:34:14 +0100 (CET)
Received: from gwsmtp.uni-regensburg.de (gwsmtp1.uni-regensburg.de [132.199.5.51]) by mx2.uni-regensburg.de (Postfix) with ESMTP id 71ECE600004E for <ntp@ietf.org>; Mon, 7 Nov 2022 08:34:13 +0100 (CET)
Received: from uni-regensburg-smtp1-MTA by gwsmtp.uni-regensburg.de with Novell_GroupWise; Mon, 07 Nov 2022 08:34:13 +0100
Message-Id: <6368B4F4020000A10004F61B@gwsmtp.uni-regensburg.de>
X-Mailer: Novell GroupWise Internet Agent 18.4.1
Date: Mon, 07 Nov 2022 08:34:12 +0100
From: Ulrich Windl <Ulrich.Windl@rz.uni-regensburg.de>
To: "ntp@ietf.org" <ntp@ietf.org>, david@venhoek.nl
References: <CAPz_-SU7rctchBVvm59YAoEA7p8Or9aqdGovJ2E98Tp85jVsWQ@mail.gmail.com>
In-Reply-To: <CAPz_-SU7rctchBVvm59YAoEA7p8Or9aqdGovJ2E98Tp85jVsWQ@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Content-Disposition: inline
Archived-At: <https://mailarchive.ietf.org/arch/msg/ntp/rHRfzXijiT_bWTWvjQWJxOKtrss>
Subject: [Ntp] Antw: [EXT] NTPv5 draft suggestion to move timescale offset into extension fields.
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: Mon, 07 Nov 2022 07:34:26 -0000

>>> David Venhoek <david@venhoek.nl> schrieb am 06.11.2022 um 15:25 in
Nachricht
<CAPz_-SU7rctchBVvm59YAoEA7p8Or9aqdGovJ2E98Tp85jVsWQ@mail.gmail.com>:
> Below attached is the diff of a PR on Miroslav's draft for NTPv5 for
> moving the timescale offset field into a separate extension field.
> 
> In my view, doing so has several advantes:
>  ‑ We can use larger datatypes for offset, which makes it trivial to
> allow larger than 1 second offsets for UT1 which might become
> necessary if UTC stops doing leap seconds.
>  ‑ We gain more bits for both the flag and timescale fields, giving
> additional flexibility for these fields.
> 
> Please let me know if you have any feedback on this.
> 
> Kind regards,
> David Venhoek
> 
> ‑‑‑ a/ntp‑ntpv5.xml
> +++ b/ntp‑ntpv5.xml
> @@ ‑163,6 +163,12 @@
>              describing the fractional part. The maximum value is
>              16 seconds and the resolution is about 3.7 nanoseconds. Note 
> that
>              this is different from the 32‑bit time format in NTPv4.</t>
> +
> +          <t hangText="time64"><vspace/>
> +            A 64 bit signed fixed‑point type containg values in
> seconds. It has 32
> +            signed integer bits, and 32 fractional bits. The sign
> uses 2‑complements
> +            representation for negative numbers.
> +          </t>
> 
>            <t hangText="timestamp64"><vspace/>
>              A 64‑bit unsigned fixed‑point type containing a timestamp 
> describes
> @@ ‑199,9 +205,9 @@
>   0                   1                   2                   3
>   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>  +‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
> ‑|LI | VN  |Mode | Scale |Stratum|     Poll      |  Precision    |
> +|LI | VN  |Mode |    Stratum    |     Poll      |  Precision    |
>  +‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
> ‑|     Flags     |      Era      |        Timescale Offset       |
> +|              Flags            |      Era      |   Timescale   |
>  +‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
>  |                           Root Delay                          |
>  +‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
> @@ ‑258,8 +264,8 @@
>            <t hangText="Mode"><vspace/>
>              A 3‑bit field containing the value 3 (request) or 4 
> (response).</t>
> 
> ‑          <t hangText="Scale"><vspace/>
> ‑            A 4‑bit identifier of the timescale. In requests it is the
> +          <t hangText="Timescale"><vspace/>
> +            An 8‑bit identifier of the timescale. In requests it is the
>              requested timescale. In responses it is the timescale of the
>              receive and transmit timestamps. Defined values are:
> 
> @@ ‑272,10 +278,12 @@
>            </t>
> 
>            <t hangText="Stratum"><vspace/>
> ‑            A 4‑bit field containing the stratum of the server. Primary
time
> +            An 8‑bit field containing the stratum of the server. Primary 
> time
>              servers have a stratum of 1, their clients have a stratum of 2,

> and
>              so on. The value of 0 indicates an unknown or infinite stratum.

> In
> ‑            requests it is always 0.</t>
> +            requests it is always 0. Servers advertising a stratum above
16
> +            should not be synchronized to except when the client is 
> explicitly
> +            configured to do so by the end‑user.</t>

Doesn't the NTPv4 MAXSTRAT defined that already?
HOwever with "Remember that MAXSTRAT is mapped to zero in the transmitted
packet." yo'll have to define new semantics, or adjust MAXSTRAT.


> 
>            <t hangText="Poll"><vspace/>
>              An 8‑bit signed integer containing the polling interval as a
> @@ ‑289,7 +297,7 @@
>              requests, which don't contain any timestamps, it is always
0.</t>
> 
>            <t hangText="Flags"><vspace/>
> ‑            An 8‑bit integer that can contain the following flags:
> +            A 16‑bit integer that can contain the following flags:
> 
>              <list style="hanging">
>                <t hangText="0x1: Unknown leap"><vspace/>
> @@ ‑773,6 +781,81 @@
> 
>        </section>
> 
> +      <section title="Timescale offset request">
> +        <t>A clients request for the offset between two indicated
> timescales.</t>
> +
> +        <t>The reference field MUST contain the timescale identifier of
> +          the timescale with respect to which the client wants to know
> +          the offset.</t>
> +
> +        <t>The target field MUST contain the timescale identifier of the
> +          timescale for which the client wants to know an offset.</t>
> +
> +        <t>The reserved and placeholder fields MUST be set to 0
> +          by the client, and MUST be ignored by a server</t>
> +
> +        <t>A server which does not know either the reference or target
> +          timescale, or which does not know the offset between them, MUST
> +          ignore the timescale request.</t>
> +
> +        <figure align="center" anchor="timescale‑offset‑request‑ext‑field"
> +            title="Format of Timescale Offset Request Extension Field">
> +          <artwork><![CDATA[
> + 0                   1                   2                   3
> + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
> ++‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
> +| Type = [[TBD]] (draft 0xF509) |           Length = 16         |
> ++‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
> +|   Reference   |    Target     |           Reserved            |
> ++‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
> +|                                                               |
> +|                  Offset placeholder (64 bits)                 |
> +|                                                               |
> ++‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
> +          ]]></artwork>
> +        </figure>
> +      </section>
> +
> +      <section title="Timescale offset response">
> +        <t> The offset between two given timescales.</t>
> +
> +        <t>The reference field MUST contain the timescale identifier of
> +          the timescale with respect to which the client wants to know
> +          the offset.</t>
> +
> +        <t>The target field MUST contain the timescale identifier of the
> +          timescale for which the client wants to know an offset.</t>
> +
> +        <t>The offset is given such that for a given timestamp in the
> +          reference timescale, the timestamp in the target timescale
> +          is the reference scale timestamp plus the offset. (i.e.
> +          target = reference + offset)</t>

Isn't it just the placehoder (set to zero?) here? Please do not use the same
description for request and response!


> +
> +        <t>The reserved bits MUST be set to 0 by the server, and MUST
> +          be ignored by the client.</t>
> +
> +        <t>When the offset between the target and reference timescales
> +          varies over time, the provided offset MUST be the servers
> +          best approximation of this offset at the time exactly halfway
> +          between the receive and transmit timestamps.</t>
> +
> +<figure align="center" anchor="timescale‑offset‑response‑ext‑field"
> +            title="Format of Timescale Offset Response Extension Field">
> +          <artwork><![CDATA[
> + 0                   1                   2                   3
> + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
> ++‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
> +| Type = [[TBD]] (draft 0xF50A) |           Length = 16         |
> ++‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
> +|   Reference   |    Target     |           Reserved            |
> ++‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
> +|                                                               |
> +|                  Offset (time64)                              |
> +|                                                               |
> ++‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+‑+
> +          ]]></artwork>
> +        </figure>
> +      </section>
>      </section>
> 
>      <section title="Measurement Modes" anchor="measurement‑modes">
> 
> _______________________________________________
> ntp mailing list
> ntp@ietf.org 
> https://www.ietf.org/mailman/listinfo/ntp