Re: NEW_CONNECTION_ID sequence numbers

Ted Hardie <ted.ietf@gmail.com> Wed, 05 January 2022 14:37 UTC

Return-Path: <ted.ietf@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 7E4A03A0A7E for <quic@ietfa.amsl.com>; Wed, 5 Jan 2022 06:37:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level:
X-Spam-Status: No, score=-1.997 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_FROM=0.001, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, 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 5sMwcaiGdzhI for <quic@ietfa.amsl.com>; Wed, 5 Jan 2022 06:37:07 -0800 (PST)
Received: from mail-io1-xd2c.google.com (mail-io1-xd2c.google.com [IPv6:2607:f8b0:4864:20::d2c]) (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 921C93A0A79 for <quic@ietf.org>; Wed, 5 Jan 2022 06:37:07 -0800 (PST)
Received: by mail-io1-xd2c.google.com with SMTP id y18so40315867iob.8 for <quic@ietf.org>; Wed, 05 Jan 2022 06:37:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=YzcZy/fe7lUkb8SE8vNahA0fukjipTd4yfUoT0slUlI=; b=BVnIgYP+aU/brYZqkcW2hKt83PNJGYSUkDh6O11H0Py1hczsPRsBCYnUn0m1sqoKaC 7tkl1EkhK60+JTl2DS3K2tbciPV7mq1pQAhfFHTvVLSVotG2HvOSuvStvvDGjgQn87EO CAYN1OofZOgA/4ecjrjTilBA+1k5eby0b4J+3xbXElH8N/3MjSzRB8e65hsRpnVoKamP PRTaRL3tdCkeDLC4suorI9gG4jNYzwvqeLhm9hKlbRZrc6SQS1fV19VPHc6BcHU89E2s e9NAERPNit9CG6cATf1Ay4w+MrRCD/cll+seGIGi2+FrKqpCbGFva9GlBFLk1PmX7Z9K +26Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=YzcZy/fe7lUkb8SE8vNahA0fukjipTd4yfUoT0slUlI=; b=TUZoUQSxVbNhjc2Kl1odqQFD+fj39irv+aJQDJYDcMMwvYn4AtMWIBjn9B2bG3+Wmk WzTj9eeCMwKpFDvavMXHkjnhsPlS5UroOAQGHxCO6XDLfEnwZ+unksbm1L9KKG8OyXTf TTglqCNJUhXnAkokDoA2icFcHmQWBopen+cdyVEfAxCtWE/Wtco/lADFH8jJiXzPPFOF c/O4L1uTQFwLt/TWvdFikVTg/8ut8AiVwlQzBtD4uZJUugD0+rrrvrU3hIMmey6Teugj i24YDI9j3V1YEKdegjmd5ZvGITE4YEjMjuPC8hnn6y3trOM6scivHXsEyANUTzLyrZId zOVw==
X-Gm-Message-State: AOAM533EwXmvXhhoQtbaTkNZkoI0yGlHj7/kc6f/M33sEkbfHR3QdItd z1ZAyv1Qtfzflw3UiAesKgpQT0ef5GBGP9Q1xDk=
X-Google-Smtp-Source: ABdhPJy4WDdhgTJNUD3/Qe8oT57FIDVbTp+QSoxmv6T9auVeP9wnaq/as8K/rwnGNDZ7trf47EWEFWwcpV3TQ7oWlJ4=
X-Received: by 2002:a05:6638:2055:: with SMTP id t21mr25904504jaj.298.1641393425976; Wed, 05 Jan 2022 06:37:05 -0800 (PST)
MIME-Version: 1.0
References: <27e024ed-a78f-416e-869d-82930c7388a3@beta.fastmail.com> <CANatvzyq_sftiTeEEWi3JpYm1+bQS3TsC+wiUxksTpAP0h9gmQ@mail.gmail.com> <A5417EA8-BF3F-4CAE-B2B8-01E5715154E7@ericsson.com> <CAKcm_gNXiRUgj4t=xoC_J13rcd5YfsuvtSzVPGz3hpYHc7fmLg@mail.gmail.com>
In-Reply-To: <CAKcm_gNXiRUgj4t=xoC_J13rcd5YfsuvtSzVPGz3hpYHc7fmLg@mail.gmail.com>
From: Ted Hardie <ted.ietf@gmail.com>
Date: Wed, 05 Jan 2022 14:36:40 +0000
Message-ID: <CA+9kkMB310zU37BV7asV8oTF8EXby3WWz=ZDnQCXNPoA2aY1Rw@mail.gmail.com>
Subject: Re: NEW_CONNECTION_ID sequence numbers
To: Ian Swett <ianswett=40google.com@dmarc.ietf.org>
Cc: Mirja Kuehlewind <mirja.kuehlewind=40ericsson.com@dmarc.ietf.org>, IETF QUIC WG <quic@ietf.org>, Martin Thomson <mt@lowentropy.net>, Kazuho Oku <kazuhooku@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000178f1205d4d6b0d8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/rjE8zIdFNoaPSkXM8vjY7Bf0LaM>
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: Wed, 05 Jan 2022 14:37:13 -0000

I agree that a short clarification would be helpful.  I did not implement
this, but I would have used logic that resulted in a situation similar to
Martin's, as it is non-intuitive to me that a connection ID of "1" has a
special meaning in an initial connection and a different one if sent in a
NEW_CONNECTION_ID.  Kazuho's text makes clear why my intuition is wrong,
but it is pretty subtle to expect an implementer to catch.

regards,

Ted Hardie

On Wed, Jan 5, 2022 at 2:22 PM Ian Swett <ianswett=
40google.com@dmarc.ietf.org> wrote:

> I think a short clarification would be helpful, since I can see this being
> misread by others, but I have no opinion of whether it's an errata or not.
>
> On Wed, Jan 5, 2022 at 8:37 AM Mirja Kuehlewind <mirja.kuehlewind=
> 40ericsson.com@dmarc.ietf.org> wrote:
>
>> If we want to keep a record we could also create an errata and ask the AD
>> to set it into “held for document update” state…
>>
>>
>>
>>
>>
>> *From: *QUIC <quic-bounces@ietf.org> on behalf of Kazuho Oku <
>> kazuhooku@gmail.com>
>> *Date: *Wednesday, 5. January 2022 at 07:21
>> *To: *Martin Thomson <mt@lowentropy.net>
>> *Cc: *IETF QUIC WG <quic@ietf.org>
>> *Subject: *Re: NEW_CONNECTION_ID sequence numbers
>>
>>
>>
>> Martin, thank you for bringing the issue to the list.
>>
>>
>>
>> 2022年1月5日(水) 14:57 Martin Thomson <mt@lowentropy.net>:
>>
>> Hey,
>>
>> I discovered a problem in my implementation of NEW_CONNECTION_ID that
>> quicly didn't like.  I was always skipping sequence number 1, even when
>> there was no preferred address, which caused quicly to think that I was
>> exceeding the limits it set.
>>
>> Kazuho, Jana, and I all agree that my code was wrong, but I found it
>> pretty hard to clearly identify how this was specified in the spec.  Here's
>> what it says:
>>
>> >  The sequence number of the initial connection ID is 0. If the
>> preferred_address transport parameter is sent, the sequence number of the
>> supplied connection ID is 1.
>> >
>> > Additional connection IDs are communicated to the peer using
>> NEW_CONNECTION_ID frames (Section 19.15). The sequence number on each newly
>> issued connection ID MUST increase by 1.
>>
>> --
>> https://quicwg.org/base-drafts/rfc9000.html#name-issuing-connection-ids
>> <https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-2a7ac3727495dfff&q=1&e=2924cc42-2683-482a-9fc8-11e09e03a8df&u=https%3A%2F%2Fquicwg.org%2Fbase-drafts%2Frfc9000.html%23name-issuing-connection-ids>
>>
>> Is it abundantly clear that I'm wrong based on this?  Did I miss a
>> clearer piece of text elsewhere?  Or, should we be looking to open an
>> erratum?
>>
>>
>>
>> I think that the cited text is the only place that discusses this, and
>> regarding the text we have now, it seems to me that it clearly *implies*
>> that if preferred_address TP is omitted, then the CID(seqnum=1) should be
>> carried by a NEW_CONNECTION_ID frame.
>>
>>
>>
>> If we were to skip CID(seqnum=1) when preferred_address TP is omitted,
>> then we would have not used a clause like "if the preferred_address
>> transport parameter is sent." Instead, we would have omitted the if clause
>> or said like "regardless of preferred_address transport parameter being
>> sent."
>>
>>
>>
>> Therefore, my personal view is that an erratum is *not* required.
>> However, I agree generally that implications are a source of confusion. If
>> we are to revise the spec, this is one place that we can do better.
>>
>>
>>
>> Anyways. Even if we are to conclude that an erratum is unnecessary, it is
>> always good to keep a record of how potentially confusing text should be
>> read (or be improved in the next revision). To that respect, I appreciate
>> your bringing this issue to the list regardless of how we would conclude.
>>
>>
>>
>>
>> Cheers,
>> Martin
>>
>>
>>
>> --
>>
>> Kazuho Oku
>>
>