[Last-Call] Opsdir last call review of draft-ietf-quic-version-negotiation-10

Qin Wu via Datatracker <noreply@ietf.org> Fri, 30 September 2022 12:47 UTC

Return-Path: <noreply@ietf.org>
X-Original-To: last-call@ietf.org
Delivered-To: last-call@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id B01C8C14CE45; Fri, 30 Sep 2022 05:47:50 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Qin Wu via Datatracker <noreply@ietf.org>
To: <ops-dir@ietf.org>
Cc: draft-ietf-quic-version-negotiation.all@ietf.org, last-call@ietf.org, quic@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 8.17.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <166454207071.58860.4814401318755336509@ietfa.amsl.com>
Reply-To: Qin Wu <bill.wu@huawei.com>
Date: Fri, 30 Sep 2022 05:47:50 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/last-call/EjWIH7sbpVRFgdR7jpULLjKDdJw>
Subject: [Last-Call] Opsdir last call review of draft-ietf-quic-version-negotiation-10
X-BeenThere: last-call@ietf.org
X-Mailman-Version: 2.1.39
List-Id: IETF Last Calls <last-call.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/last-call>, <mailto:last-call-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/last-call/>
List-Post: <mailto:last-call@ietf.org>
List-Help: <mailto:last-call-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/last-call>, <mailto:last-call-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 30 Sep 2022 12:47:50 -0000

Reviewer: Qin Wu
Review result: Has Issues

I have reviewed this document as part of the Operational directorate's ongoing
effort to review all IETF documents being processed by the IESG.  These
comments were written with the intent of improving the operational aspects of
the IETF drafts. Comments that are not addressed in last call may be included
in AD reviews during the IESG review.  Document editors and WG chairs should
treat these comments just like any other last call comments.

This document describes a version negotiation mechanism that allows a client
and server to select a mutually supported version. The mechanism can be further
broke down into incompatible Version Negotiation and compatible Version
Negotiation.

I believe this document is on the right track and but worth further polished
with the following editorial comments. Major Issues: No Minor Issues: 1.
Section 4 introduce verson downgrade term [Qin]What the version downgrade is? I
feel confused, does it mean when I currently use new version, I should not fall
back to the old version? Can you explain how version downgrade is different
from version incompatible? It will be great to give a definition of version
downgrade in the first place or provide an example to explain it? 2. Section 9
said: " The requirement that versions not be assumed compatible mitigates the
possibility of cross-protocol attacks, but more analysis is still needed here."
[Qin] It looks this paragraph is incomplete, what else analysis should we
provide to make this paragraph complete? 3. Section 10 [Qin]: I am not clear
why not request permanent allocation of a codepoint in the 0-63 range directly
in this document. In my understanding, provisional codepoint can be requested
without any dependent document? e.g., Each vendor can request IANA for Vendor
specific range. Secondly, if replacing provisional codepoint with permanent
allocation, requires make bis for this document, I don't think it is
reasonable. Nits: 1. Section 2 said: " For instance, if the client initiates a
connection with version A and the server starts incompatible version
negotiation and the client then initiates a new connection with .... " [Qin]Can
the client starts incompatible version negotiation? if not, I think we should
call this out, e.g., using RFC2119 language. 2. Section 2, last paragraph [Qin]
This paragraph is a little bit vague to me, how do we define not fully support?
e.g., the server can interpret version A, B,C, but the server only fully
implements version A,B, regarding version C, the server can read this version,
but can not use this version, in other words, it is partially implemented, is
my understanding correct? 3.Section 2.1 the new term "offered version" [Qin]
Can you add one definition of offered versions in section 1.2, terminology
section? To be honest, I still not clear how offered version is different from
negotiated version? Also I suggest to add definitions of accepted version,
deployed version as well in section 1.2? Too many terminologies, hard to track
them in the first place. 4. Section 6 said: " it is possible for some
application layer protocols to not be able to run over some of the offered
compatible versions. " [Qin]I believe compatible versions is not pertaining to
any application layer protocol, if yes,
 s/compatible versions/compatible QUIC versions
5.Section 7.1 said:
"For example, that could be accomplished by having the server send a Retry
packet in the original
 version first thereby validating the client's IP address before"
[Qin] Is Version first Version 1? If the answer is yes, please be consistent
and keep using
 either of them instead of inter-exchange to use them.
 s/version first/version 1