Re: [Ext] Consensus call for qlog serialization format (issue #144)

Lucas Pardue <lucaspardue.24.7@gmail.com> Thu, 05 August 2021 19:38 UTC

Return-Path: <lucaspardue.24.7@gmail.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BDAE93A1FD0; Thu, 5 Aug 2021 12:38:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.847
X-Spam-Level:
X-Spam-Status: No, score=-1.847 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=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=gmail.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 GxRNqfhcUUTG; Thu, 5 Aug 2021 12:38:48 -0700 (PDT)
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B1AFC3A1FC6; Thu, 5 Aug 2021 12:38:47 -0700 (PDT)
Received: by mail-ed1-x52f.google.com with SMTP id i6so10008727edu.1; Thu, 05 Aug 2021 12:38:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9B4eRHIZUUeiQDSy5g55cNddZLsRy08WNHGDpaDwb3w=; b=F0rKV0aFObEjMPRHi2Sa/JC5liEFVfyW5qj1My5PCZw0bUPlWGXykcMRNrFLE+D6kI 1c/pTx9QMavFof2rCLR00wZRbUj9TQQPEMBOUugUyLF1HVV0jjrAFwbBKKQ4Jn9h0uee edeyE5us/n7asdawl0CpfM8CPwzo6BlSocZ3ZYuGyS3qXyddEs7pUOcUHMO59lR/QSSa oxsjmKCJ7GJrowVjy/miweYXGnsRDqhffcr3evoCSkPjEzGyzX5I8e1XOIeNSobIWUQU bwVMi0NPMWQW3izz13N+NxIKTTeg4/7m2f/j4DO1vnt0CTazVUUY3LmzYPDvrfoHdDLY kbTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9B4eRHIZUUeiQDSy5g55cNddZLsRy08WNHGDpaDwb3w=; b=gWJ9w0BgDKkItvx75a6UXp39F8eZYtpSyg1d/581r+f7bnBfjPbrq+sE3LqYpVQWxW UlnAfAyDZR6NuhMAgf8XG3LBN2Xtk689hFI/m4GVDBji3YNTLYkWnwP6GRrJYqami5DM UUCk/CsMM4onoP7x16iawlTaAp+VBR2jw9LawAHOOuxI60TC6ryotqoJWSa3lDRoy/Hz gZjgOGtghvQD5PypsSRv4mvwYhBSAbjPRMfiWHcCa8tPIoxK0bc3QIxwQuHJvi82YgIF KeUOIFk9zvXGDi8ThxSf1AFUrvVlX4An8vaN8xX0VUu5eYlcW+ElmDd37dDYKFCK08HL XkKA==
X-Gm-Message-State: AOAM532nOF4hrPDjC/72fV9a1g5zxQzwSEFSKxDyaS68gFpbAlVulU3z RcymkH5J8qqywDtSYp+qHvFTd7Mxf8SkhZPlDz+WfV/N0scl/Q==
X-Google-Smtp-Source: ABdhPJwrcqC5f83rrc5pGSiy7KLTo2fUqS9xF0zzTBSWSB4D4xzZSs6O0ftn16wJJEA6FeQHggUYvXNP91p/Tivtddg=
X-Received: by 2002:aa7:db95:: with SMTP id u21mr8568881edt.152.1628192324975; Thu, 05 Aug 2021 12:38:44 -0700 (PDT)
MIME-Version: 1.0
References: <CALGR9oZS=k8XhyfugHH6VmdMVAAj6ER8s18g5eaZqX_3hie4ig@mail.gmail.com> <46CBE180-6B80-4B29-AAE3-BABBC59A02C4@icann.org> <CALGR9obnuPNYcFh1tZanFoLE1FCRSfQ1WoEEcSL+uc_5usGNSA@mail.gmail.com> <89EE247B-A26C-4C58-863C-6C938A6BA023@icann.org> <CALGR9oa0Q=N+E3ycDMBPM6HLkeGa4anWA+taJ3f088fxbo3S4Q@mail.gmail.com> <CC735BD8-0AF3-4E99-BD12-78C4181C3E19@icann.org>
In-Reply-To: <CC735BD8-0AF3-4E99-BD12-78C4181C3E19@icann.org>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Thu, 05 Aug 2021 20:38:31 +0100
Message-ID: <CALGR9oZTgmfnsKykOvB=mwOg8QUaLtEuAVWtZn_uZ_iBj7f2xg@mail.gmail.com>
Subject: Re: [Ext] Consensus call for qlog serialization format (issue #144)
To: Paul Hoffman <paul.hoffman@icann.org>
Cc: QUIC WG <quic@ietf.org>, QUIC WG Chairs <quic-chairs@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000027feed05c8d51133"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/5cf29ihKbJY5TfyrWE3ChobeCCg>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Aug 2021 19:38:54 -0000

Hi Paul,


On Thu, Aug 5, 2021 at 5:41 PM Paul Hoffman <paul.hoffman@icann.org> wrote:

>
>
> We are having a disconnect here that is central to the question in this
> consensus call. The original call said:
>
> > The feeling in the room was to keep the JSON serialization format.
> Noting that implementations can use their own intermediate formats and
> transform to and from JSON as needed, and that future documents could
> specify other interop formats if there is sufficient interest.
> >
> > The proposed resolution for this matter is to keep the JSON
> serialization format as the canonical interoperable format. This email
> seeks to establish consensus for this. If you have comments, for or
> against, please respond on the issue. The call will run until EoD August 9
> 2021.
> >
>
>
> The call asked whether the (now "a") JSON serialization format will be the
> canonical interoperable format. That is quite different than "including at
> least one serialization format". As a concrete example:
>
> - The JSON serialization says that numbers such as packet_number may be
> represented as a number or a string
>
> - The data format says that the numbers such as packet_number are uint64
>

> If the JSON serialization format is the canonical interoperable format,
> and I'm writing a CBOR emitter, I would be allowed to write packet_number
> as a number or string because both could convert to JSON. However, if the
> data format is the canonical interoperable format, I would only be able to
> write it as a number.
>
> Thus, it is critical for interoperability between formats to specify if
> the data definition is canonical, or if the JSON serialization is
> canonical. If the latter, there really is no need for the data definitions
> at all; if this choice is made, interoperability would be more likely if
> the data definitions were removed.
>
> I hope this helps clarify why the WG needs to choose one or the other.
>

Thanks for the additional commentary. I fear my use of canonical hasn't
helped clarity much (blame my co-chair for allowing me to use big words
:-)).

The adopted qlog documents included a TypeScript-based data model (schema)
and a JSON serialization. There have been some discussions about changing
either of these. As you mentioned upthread, the two are associated. In an
attempt to keep discussions focused, we've somewhat avoided mentioning the
schema. The aim of finding consensus on the serialization format was so
that we could use that as input into deciding on schema definition. Picking
JSON for serialization would, hypothetically speaking for now, allow us to
rewrite the schema in CDDL. Using an IETF format for schema definition
would assuage some of the concerns that have been expressed about
Typescript or other options. And I anticipate a schema rewrite would
require the WG tackle some of the thornier issues in good time. Speaking
personally, I think that nailing down JSON as the working format du jour
will allow us to tackle data definition aspects that have been hanging over
the spec for a while.

qlog has an objective to support alternative serializations formats and
robust transformations between them. If I understand your comments
correctly. There's an argument to say we might be approaching things
backwards and that the group should pick a data definition language first,
and then the serialization stuff might just come out in the wash. It's a
bit chicken and egg. Given we have interoperability today between QUIC
implementations generating qlogs in JSON and tools consuming JSON, for many
people the decision about data definition is of less immediate practical
importance. But that's not to downplay the long term importance of creating
a robust data definition.

Speaking as a co-chair, getting clear consensus about the topic of schema
and serialization is important at this stage of the document's lifecycle. I
want to make sure we're asking the right questions now, and we understand
the potential impacts of things we might be trying to defer. So thanks for
picking at this. Does the intent to revist (soon) the qlog schema and
(possibly) extract the serialization address some of your concerns? Is
there a clearer way we could articulate the question to ensure the WG
understands what it is agreeing to?

Cheers,
Lucas