Re: [Masque] ECN & Flow IDs

David Schinazi <dschinazi.ietf@gmail.com> Wed, 31 March 2021 00:36 UTC

Return-Path: <dschinazi.ietf@gmail.com>
X-Original-To: masque@ietfa.amsl.com
Delivered-To: masque@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4FB353A07BA for <masque@ietfa.amsl.com>; Tue, 30 Mar 2021 17:36:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 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, RCVD_IN_DNSWL_BLOCKED=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 cb3a5qA8CSki for <masque@ietfa.amsl.com>; Tue, 30 Mar 2021 17:36:04 -0700 (PDT)
Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com [IPv6:2607:f8b0:4864:20::429]) (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 4157E3A07A3 for <masque@ietf.org>; Tue, 30 Mar 2021 17:36:04 -0700 (PDT)
Received: by mail-pf1-x429.google.com with SMTP id j25so13323207pfe.2 for <masque@ietf.org>; Tue, 30 Mar 2021 17:36:04 -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=jRw2Ysc8EWzFNWRVN4FDc9a57CvFbmnVdB14qLHMxYE=; b=T7UaD9GZMz1v1riTWGSdGnM2PRs1iwBOFVdjaZtp1ktLygwzPAwwuGZ3iZRXX1dXK5 nR7IOuksiuc5XLAML1F1BldhNdXqZzcWa/hm/nMFBEnIBQkJK7/ADZzBboliM96nkhjx 6llGGvf/tKANPCExcoceRo6fxVPGLhC50PnF22PVBYtE82NEoViWmG+c4hp+5PGnBtqD geD6BTydob3cunojFQU2QNfesSg+SIpT5BiDqfKuDnitVgDsiDGxN38UsD19T1xngIfp 9458OU6hw3Q8rGWIhrLm/YdlIThOYfsPt9c5r7kSFrDOj5GVFnQ/mNK4b1wwv2z/p2KE o2KQ==
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=jRw2Ysc8EWzFNWRVN4FDc9a57CvFbmnVdB14qLHMxYE=; b=g6sEGqUERcWlbPdjxXSCaXmIQBpn4nlY99U+gyiSnBDS5FunMq1NO7WK/+q4OkWB8A vIGhYhFteih0Pvc8yzXAIJlVNIN5xcCjIj5EbnBxetuDkjOAK11NdqiH1UmY3GEJlfVl mbAMXASS7N8krUraUbHjC1LFZELcjsSr+0Gn31hKJb4YrOVfEaYKT2S9ZavAEK2SF180 VseYzNjBZoAIqmYWJfapKNn5F73CxuyTL/45AvY4MUj22xP37Q3OmJe+8b7LUkHRWL/j 0+LW4i9Q/7t33X3rFI8zja+f4jrWvxsZvs/c5m/dgHyPEuAjoqP52+QF5AX1fUEjWWSU r20A==
X-Gm-Message-State: AOAM530oiAIesK+3Oq83EX6w008aU3Q1ksaLSr9tq+nUZZSqAXsgLTuK gXS37mCMJ6oJ5RZNw+JeJ1Tbb3f/QktuPFzpwG4=
X-Google-Smtp-Source: ABdhPJyQ8oGkQ+12Tw6olI9LprlOKqA3PZlvkB5LRYz10BePH8FV41JBPDmcMQjZUZ1YD7W/F+JZjBPFGFcQwZGwWns=
X-Received: by 2002:a62:528e:0:b029:1f5:c5ee:a487 with SMTP id g136-20020a62528e0000b02901f5c5eea487mr477071pfb.7.1617150962752; Tue, 30 Mar 2021 17:36:02 -0700 (PDT)
MIME-Version: 1.0
References: <CAM4esxRmjWr-y-9-KAJmmKvGdONpPufgAbubUhPu_KaS1_Md9Q@mail.gmail.com>
In-Reply-To: <CAM4esxRmjWr-y-9-KAJmmKvGdONpPufgAbubUhPu_KaS1_Md9Q@mail.gmail.com>
From: David Schinazi <dschinazi.ietf@gmail.com>
Date: Tue, 30 Mar 2021 17:35:50 -0700
Message-ID: <CAPDSy+6go4xh4E55220upECkrept1Yb15diVhC8e3HEWsz52fQ@mail.gmail.com>
To: Martin Duke <martin.h.duke@gmail.com>
Cc: MASQUE <masque@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000aedef305beca4ca0"
Archived-At: <https://mailarchive.ietf.org/arch/msg/masque/_-YuQvf43q745H9DyDGo2ykeI-U>
Subject: Re: [Masque] ECN & Flow IDs
X-BeenThere: masque@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multiplexed Application Substrate over QUIC Encryption <masque.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/masque>, <mailto:masque-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/masque/>
List-Post: <mailto:masque@ietf.org>
List-Help: <mailto:masque-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/masque>, <mailto:masque-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 31 Mar 2021 00:36:09 -0000

The trivial other approach to solving ECN would be to prefix the UDP
payload with a type byte that contains the two ECN bits and 6 unused bits.
That would definitely work, and therefore I don't think ECN is a good
example to use as a discussion starter for how flow IDs are managed.
I wrote that draft to test out the extensibility of the CONNECT-UDP design,
I'm not planning on moving it forward at this time.

More conceptually, the main question is whether we allow one
client-initiated bidirectional stream to map to multiple datagram flow IDs.
The approach I've taken is to say yes: that allows us to reuse the flow ID
multiplexing logic to encode additional information in the flow ID.
You could build something isomorphic to this where you say no and have one
flow ID per stream, and then add a second varint right after the flow ID.
Since datagrams have to fit in a QUIC packet, adding more varints eats into
available datagram MTU which makes me prefer the multiple flow IDs per
stream approach.
Both are pretty much equivalent in terms of implementation complexity:
either way you need a hash table mapping from a varint to what that varint
means.
There is more complexity in how you convey that mapping (right now this is
done using parameters on the Datagram-Flow-Id header), but I don't think
requiring one flow ID per stream solves any of that complexity, you'll
still need a way to convey extension information. The ECN example is so
simple that
it doesn't require sending much extension information, but if you look
further at enabling optional IP header compression in CONNECT-IP, then
you'll want
a way to associate a varint with which IP addresses you're compressing.

I think the question we have to answer becomes: do we want MASQUE protocols
to be extensible? Our options are:
- disallow extensibility and slightly simplify the protocol
- allow extensibility via multiple flow IDs per stream, and deal with the
slight complexity
- allow extensibility with a single flow ID per stream, and deal with the
slight complexity
Personally, I feel strongly that we should allow extensibility.

David


On Tue, Mar 30, 2021 at 3:40 PM Martin Duke <martin.h.duke@gmail.com> wrote:

> Hello MASQUE,
>
> At IETF 110 there was a lot of good discussion challenging the foundations
> of the CONNECT-UDP framework, including the relationship between streams
> and Flow-IDs. While CONNECT-UDP happens to use flow IDs somewhat
> incidentally, the real action with the controversial
> multiple-flow-id-per-CONNECT happens in David's (unadopted) ECN draft:
> https://datatracker.ietf.org/doc/draft-schinazi-masque-connect-udp-ecn/
>
> Leading up to the interim, it would be great if one of the detractors of
> the flow-id mapping submitted their own approach to solve ECN. This would
> help to illuminate the tradeoffs. Speaking as an individual, I am also
> hoping to move the ECN work forward and having another design would help to
> do that.
>
> Thanks,
> Martin
> --
> Masque mailing list
> Masque@ietf.org
> https://www.ietf.org/mailman/listinfo/masque
>