Re: [Gen-art] Genart last call review of draft-ietf-masque-connect-udp-12
David Schinazi <dschinazi.ietf@gmail.com> Thu, 02 June 2022 15:55 UTC
Return-Path: <dschinazi.ietf@gmail.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 789D6C14F740; Thu, 2 Jun 2022 08:55:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.108
X-Spam-Level:
X-Spam-Status: No, score=-2.108 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] 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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9Hk_7nB4FiMn; Thu, 2 Jun 2022 08:55:03 -0700 (PDT)
Received: from mail-pf1-x42b.google.com (mail-pf1-x42b.google.com [IPv6:2607:f8b0:4864:20::42b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 27126C14F745; Thu, 2 Jun 2022 08:55:03 -0700 (PDT)
Received: by mail-pf1-x42b.google.com with SMTP id e11so5091095pfj.5; Thu, 02 Jun 2022 08:55:03 -0700 (PDT)
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=vt4KRJm5z9U4T8mCYozfBVw0Hb/HUuEKpsWpjtN7hvA=; b=nF4ovDn5jkaXaqTPzycz5sSnFexZ8Vn7J+q5RALuajVw9i0uphIGoN9ltEEAfYx8fx 0SyfqlrujtLksIy/2D5u0UbM36N7cX8eisJsi3gEnttDLl1LeaF92RMzex2UThGdr1m0 Q7wKlDwNyaMlT0p+gZZFrFMzdRb5bMqO2L3fc8THLobjJM9QERZdH3/XFO7Mo7sCDKEs GOVc/n4MaV6fHpDlVsMSl5HFFeXtPaH64NbelkAbFwQvHzlGbVMrOn/8Fds3u8gblVwa 9fnkaMoXbAJNcc2DD54+ha+3XS2L4Ji33gkkaH4fUExIZd3c/j8FlMZWwYcUx9LMP8h2 /6zw==
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=vt4KRJm5z9U4T8mCYozfBVw0Hb/HUuEKpsWpjtN7hvA=; b=XBZt0vxe4OB7Nl0by5vlP342uUdnLLB+U/LelNrYCFv3ZUeV4COhITtPvQRAkCQ/xu bQRF5VANWWdUWbBUa9AWunb4RRXVqOrhUNTc1ciLS22kauLn/MHF/e/4Y6z8myLLFXDG LYcGFAGczaFkBLew1FAjVP2YjS/wvP9GwRa0oowXLnp3o+80hGd2qpuv+s37x1smyHjb X/jQDT6SMUEVJrdNRHTNSTgb2/LGQS8D1pcSib1RKTi8XvjdwnCMx3qHIta8dSqVi4Kj iVOAB3q8DOdaoOeGY+nwRicBwTPnkbPNwQGybeH6ZhnyJW1cekhf649TRd3flgG9TKq9 qDqw==
X-Gm-Message-State: AOAM532DEiNElP0dnRs4MCvNseIth7XckLvlARcHYpMilK70BVSSgFe+ BnzsOyLyQc8vtYIaoc3k/KzTMZTpqS5n4rhqZXAsV6j/Rkg=
X-Google-Smtp-Source: ABdhPJwuEEM3sPRBfbc8m0bdyF6SKLsSZzVaOc+cV/CRn344DX5K6EmC/MibIFRIq/JQKdAkCyqk3kJJ2ITm7aknvA4=
X-Received: by 2002:a63:2360:0:b0:3fb:ee61:82cf with SMTP id u32-20020a632360000000b003fbee6182cfmr4774778pgm.574.1654185302419; Thu, 02 Jun 2022 08:55:02 -0700 (PDT)
MIME-Version: 1.0
References: <165376042188.7925.12885270916317718696@ietfa.amsl.com> <CAPDSy+4WyJOvyQ0pyaEEjhQLiryoXF0ho-Gfz2OgC2Jeg=mnWg@mail.gmail.com>
In-Reply-To: <CAPDSy+4WyJOvyQ0pyaEEjhQLiryoXF0ho-Gfz2OgC2Jeg=mnWg@mail.gmail.com>
From: David Schinazi <dschinazi.ietf@gmail.com>
Date: Thu, 02 Jun 2022 08:54:50 -0700
Message-ID: <CAPDSy+6dH+BV+p=oXn4EukB-ZTCDLj6ejmViarWEYGUbQ-+STQ@mail.gmail.com>
To: Christer Holmberg <christer.holmberg@ericsson.com>
Cc: gen-art <gen-art@ietf.org>, draft-ietf-masque-connect-udp.all@ietf.org, last-call@ietf.org, MASQUE <masque@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000057ee1f05e0790756"
Archived-At: <https://mailarchive.ietf.org/arch/msg/gen-art/BIqSfm8GYEbkrsexWcRhiZgAntQ>
Subject: Re: [Gen-art] Genart last call review of draft-ietf-masque-connect-udp-12
X-BeenThere: gen-art@ietf.org
X-Mailman-Version: 2.1.39
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: Thu, 02 Jun 2022 15:55:05 -0000
Hi Christer, Al and I had a productive conversation on one of the points that you had brought up, so I wanted to mention that here, see inline below. Thanks, David On Tue, May 31, 2022 at 3:53 PM David Schinazi <dschinazi.ietf@gmail.com> wrote: > Hi Christer, > > Thank you for your detailed review. I've written up the following PR to > address your comments: > https://github.com/ietf-wg-masque/draft-ietf-masque-connect-udp/pull/173 > I also added additional comments inline below. > > Thanks, > David > > > On Sat, May 28, 2022 at 10:53 AM Christer Holmberg via Datatracker < > noreply@ietf.org> wrote: > >> GENERAL: >> -------- >> >> QG_1: >> >> The document contains a mix of "SHALL", "MUST", "SHALL NOT" and "MUST >> NOT", but >> I can't see any specifc pattern based on whether "SHALL (NOT)" or "MUST >> (NOT)" >> is used. >> > > I tend to use SHALL for active requirements and MUST for reactive > requirements. > Since RFC 2119 defines those terms as strictly identical, this doesn't > harm comprehension. > > ABSTRACT: >> --------- >> >> QA_1: >> >> The text says: >> >> "This document describes how to proxy UDP in HTTP," >> >> To me "proxy UDP in HTTP" sounds a little weird. Isn't "tunneling UDP over >> HTTP" more appropriate? That terminology is also used later in the >> document. >> >> (The same comment applies to "proxy TCP in HTTP") >> > > The "proxy" terminology is the simple way of referring to these mechanisms > which is suitable to casual readers. The "tunnel" terminology is more > pedantic > and best suited for readers expert in HTTP terminology. This is why we > differentiate using the two by saying "more specifically". > > Section 1: >> ---------- >> >> Q1_1: >> >> The text says: >> >> "While HTTP provides the CONNECT method (see Section 9.3.6 of [HTTP]) >> for creating a TCP [TCP] tunnel to a proxy, it lacks a method for >> doing so for UDP [UDP] traffic." >> >> I suggest to remove the "it lacks..." part, because the following >> paragraph >> says that the document defines such method. >> > > I've added "prior to this specification" to get the best of both worlds. > > Q1_2: >> >> The text says: >> >> "This protocol supports all versions of HTTP" >> >> I think the text should say which is the latest supported, as there is no >> guarantee future versions of HTTP will be supported. >> > > Switched to "all existing versions of HTTP". > > Section 1.1: >> ------------ >> >> Q1_1_1: >> >> The txt says: >> >> "Note that, when the HTTP version in use does not support multiplexing >> streams (such as HTTP/1.1), any reference to "stream" in this >> document represents the entire connection." >> >> I suggest to replace "Note that," with e.g., "In this document,", as in >> the >> paragraph above. >> > > I personally prefer "note that". I'll let the RFC Editor have final say on > such details. > > Section 2: >> ---------- >> >> Q2_1: >> >> I suggest placing the example URIs after the requirements and procedures >> for >> creating the URL. >> > > As a first introduction to a concept, I personally find examples easier to > understand than this very long list of requirements. > > Q2_2: >> >> The text says: >> >> "If the client detects that any of the requirements above are not met >> by a URI Template, the client MUST reject its configuration and fail >> the request without sending it to the UDP proxy. While clients >> SHOULD validate the requirements above, some clients MAY use a >> general-purpose URI Template implementation that lacks this specific >> validation." >> >> It sounds strange to say "MUST reject" while saying "SHOULD validate but >> MAY >> use a general-purpose URI Template implementation". >> >> I suggest to say "SHOULD validate the URI Template and reject it if it >> does not >> fulfil the requirements above". >> > > The MUST is prefixed by an if clause. Conceptually this means: "if you > notice an issue > you have to report it, but you don't have to explicitly check for issues". > What you propose > would be "you should check and might report findings" which is not as > strong. > We've now changed the text to match both the order you were suggesting and the normative requirements that I had intended: Clients SHOULD validate the requirements above; however, clients MAY use a general-purpose URI Template implementation that lacks this specific validation. If a client detects that any of the requirements above are not met by a URI Template, the client MUST reject its configuration and fail the request without sending it to the UDP proxy. Section 3: >> ---------- >> >> Q3_1: >> >> (This comment might apply to other parts of the document too) >> >> The text says: >> >> "To initiate a UDP tunnel associated with a single HTTP stream, >> clients issue a request containing the "connect-udp" upgrade token." >> >> I suggest to refer to a single entity for the procedure, i.e., "client" >> instead >> of "clients". >> > > Agreed. I've changed this and some other parts of the draft. > > Section 3.1: >> ------------ >> >> Q3_1_1: >> >> The text says: >> >> "Upon receiving a UDP proxying request: >> >> * if the recipient is configured to use another HTTP proxy, it will >> act as an intermediary: it forwards the request to another HTTP >> server. Note that such intermediaries may need to reencode the >> request if they forward it using a version of HTTP that is >> different from the one used to receive it, as the request encoding >> differs by version (see below). >> >> * otherwise, the recipient will act as a UDP proxy: it extracts the >> "target_host" and "target_port" variables from the URI it has >> reconstructed from the request headers, and establishes a tunnel >> by directly opening a UDP socket to the requested target." >> >> It is unclear whether the rest of the Section text applies to both of >> these >> bullets, or only one of them. >> > > The rest of the section specifically mentions the "UDP proxy" and that only > applies to the second bullet. But perhaps we can do better, would you have > a textual suggestion here? > > Also, the "(see below)" part in the first bullet refers to the following >> Sections, but it is unclear. If refering to another section, I suggest >> using >> explicit Section references instead of "below". >> > > I tried spelling out the four related subsections and it became unwieldy > and less clear than "below". > > Sections 3.2, 3.3, 3.4 and 3.5: >> ------------------------------- >> >> I suggest to use sub-sections, with e.g., the following structure: >> >> 3.2. HTTP/1.1 Usage >> 3.2.1. Request >> 3.2.2. Response >> 3.3. HTTP/2 and HTTP/3 Usage >> 3.3.1. Request >> 3.3.2. Response >> > > I personally prefer the current structure. > > Section 4: >> ---------- >> >> The text says: >> >> "This protocol..." >> >> What protocol? :) As this is the first sentence of the Section, please be >> specific. >> > > Agreed. Replaced "this protocol" with "The mechanism for proxying UDP in > HTTP defined in this document". >
- [Gen-art] Genart last call review of draft-ietf-m… Christer Holmberg via Datatracker
- Re: [Gen-art] Genart last call review of draft-ie… David Schinazi
- Re: [Gen-art] Genart last call review of draft-ie… David Schinazi
- Re: [Gen-art] Genart last call review of draft-ie… Lars Eggert