Re: [tcpm] A possible simplification for AccECN servers

Matt Mathis <mattmathis@google.com> Thu, 12 December 2019 15:08 UTC

Return-Path: <mattmathis@google.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7B13812021D for <tcpm@ietfa.amsl.com>; Thu, 12 Dec 2019 07:08:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.499
X-Spam-Level:
X-Spam-Status: No, score=-17.499 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 h57KvmqEb8k4 for <tcpm@ietfa.amsl.com>; Thu, 12 Dec 2019 07:08:00 -0800 (PST)
Received: from mail-io1-xd2d.google.com (mail-io1-xd2d.google.com [IPv6:2607:f8b0:4864:20::d2d]) (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 F1FB91201CE for <tcpm@ietf.org>; Thu, 12 Dec 2019 07:07:59 -0800 (PST)
Received: by mail-io1-xd2d.google.com with SMTP id f82so3106304ioa.9 for <tcpm@ietf.org>; Thu, 12 Dec 2019 07:07:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=PoSF7a2uTZiCUgzd9WVl3Nj6wM04PXzYhDz1om2rlNo=; b=ozA9T4H6SOIv8AK1Moa+r+jlZGciH6hbIHoJpTeYBwnlpsOj3DIKvlpbo/k+5akCj7 LCR1hBNlzga0EqjPQsOYdIESJAK+fSmJxq+9pqD86HwDtdrYs/rjhayjzcJ5kyuR/4ZK c4gkS/BnE41Iq9XQEXpFcl9wA5vNqzFvV6TKQOBkCXVHTsGllNwhhSQoYnV1eqjtMX4U sTtTarrXNZCR/DzT8sh51t1W6YNhPAtIWZ122xe1MsCEaR651LOllB8YWnusLZjBTE1a JnI2xD2j8LF0098OHKPn0TCCxm5BaDFiXAssppD05SktjDqVdCfTUFpEbSRJeuArLD1i 4+7Q==
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=PoSF7a2uTZiCUgzd9WVl3Nj6wM04PXzYhDz1om2rlNo=; b=bmVBqPCwLBQNcNLZPoVyplj4SOTOwd6Tnlj9P81Ikl7lxzzcUe7OiNihX6c8Xy+z6p no59Y2VKCXesN9cMebFFglUbVQLyy2s8BVommq1L177K+aZVJJ2HdwyJmE6p4E8BZIaE AT03OpdeVI9DaCtqYE7uOr6Ct5RAqRu6UMyhfr52zt7udepnVofd82hUpMFhKB0kFLs0 B2+QRYCVFe81aa/NXn7yWbHUmH88zFeWdxVCUTh18sfcL8218yvwb1Agmsj/eScjMatg 5SLxS0psRqDD3RH+8oQdAdW1qbrHYmUnkq0YZoQOxsU5qhUf8NhFOaoGFxNTYAqGkjVY x9RA==
X-Gm-Message-State: APjAAAXlAxBje53G7TiVOwFWnNpwpoTHUHOtC7kl1FlqPXG5GE4a9Fca L4fq0ujg/tlStV5booGe8GgIDI7jrHts4cyBxHwOBQ==
X-Google-Smtp-Source: APXvYqxo7Hh86LljB4GdNfjKaLcb1piIM7LEc3XsnI+K+bOqxPv428sDtQOWH6uLu4wlb78BumYsjNRVATZ9kIHDr7w=
X-Received: by 2002:a6b:f60e:: with SMTP id n14mr3377414ioh.241.1576163278863; Thu, 12 Dec 2019 07:07:58 -0800 (PST)
MIME-Version: 1.0
References: <d35618ee-c0dc-44ee-9e22-50bdabbe026c@bobbriscoe.net> <732C4247-BC55-4719-A399-711689CB379A@kuehlewind.net> <256E6F9D-607A-4A9D-9505-933FC4EC28FC@gmail.com> <333DA677-0930-45B2-AC65-05852FC46955@kuehlewind.net> <A76315DB-B3B4-45A4-A8CA-5F4701EB4085@gmail.com> <F90043A1-87F5-4DD1-BB11-AE8D2F3C5A7E@kuehlewind.net> <86dd14dc-0c24-d604-ea57-b280407a1a09@bobbriscoe.net> <CCA9AFF7-6EBB-4DB0-B851-7806B8E96871@kuehlewind.net> <74fe4c25-6ea2-ac5e-e59e-51acfd54be5f@bobbriscoe.net> <F74FD1C5-DB49-45FB-8AF8-73CCE1A125EC@kuehlewind.net> <6ea44dd6-e830-2bce-39a2-d0efd7a90b2e@bobbriscoe.net> <538AD737-107E-44D7-A305-7B99BEA9F0CE@kuehlewind.net> <21a45367-89fd-303b-f0e8-c51303de3760@bobbriscoe.net> <29AA3850-D1AA-4CED-BCAC-8F4C6A94A9C3@kuehlewind.net>
In-Reply-To: <29AA3850-D1AA-4CED-BCAC-8F4C6A94A9C3@kuehlewind.net>
From: Matt Mathis <mattmathis@google.com>
Date: Thu, 12 Dec 2019 09:07:47 -0600
Message-ID: <CAH56bmD9KfgZ2qzfPRG5-X6o211q+WcBY-tzDKf17wTvw02iMA@mail.gmail.com>
To: Mirja Kuehlewind <ietf@kuehlewind.net>
Cc: Bob Briscoe <ietf@bobbriscoe.net>, tcpm IETF list <tcpm@ietf.org>, Richard Scheffenegger <rscheff@gmx.at>
Content-Type: multipart/alternative; boundary="00000000000058a35e0599831cf4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/6zBKae3MEdpz29WwzENis3RTs28>
Subject: Re: [tcpm] A possible simplification for AccECN servers
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Dec 2019 15:08:03 -0000

Bob you said:
>Don't worry, the AccECN spec says that the client MUST be able to
fall-back to classic ECN support.

If the only choice is to downgrade to non-ECN, it would make the code and
documentation simpler.  It also has the property that you might be able to
reuse the 3168 codepoint in a couple of years (well, ok a decade).

Is there any reason to want to have 3168 and AccECN coexistence beyond a
transition?  Put another way, if we imagine fully supporting both 3168 and
AccECN, it there any reason to choose 3168 other than deployment inertia?

Thanks,
--MM--
The best way to predict the future is to create it.  - Alan Kay

We must not tolerate intolerance;
       however our response must be carefully measured:
            too strong would be hypocritical and risks spiraling out of
control;
            too weak risks being mistaken for tacit approval.


On Thu, Dec 12, 2019 at 3:17 AM Mirja Kuehlewind <ietf@kuehlewind.net>
wrote:

> Hi Bob,
>
> Please see inline below.
>
> > On 12. Dec 2019, at 01:13, Bob Briscoe <ietf@bobbriscoe.net> wrote:
> >
> > Mirja,
> >
> > On 11/12/2019 15:28, Mirja Kuehlewind wrote:
> >> Hi Bob,
> >>
> >> Sorry I think I just got a bit lost here.
> >>
> >> So this point:
> >>
> >>>>>> [BB] It's also important that the spec defines all three bits in
> the SYN-ACK responses, not just the 2-bits defined in RFC3168 - so that the
> combinations with AE=1 are ruled out and therefore remain available for
> future use.
> >>>>>>
> >>>> [BB] This cannot be said by referring to RFC3168 either.
> >>>>
> >> I’m not sure I understand what you mean, given that the combination
> with AE=1 is/needs to be discussion in this draft. Are we again talking
> past each other (but actually agree)?
> > In the context of these two rows in table 2:
> >    +--------+--------+------------+-----------+------------------------+
> >    | A      | B      |  SYN A->B  |  SYN/ACK  | Feedback Mode          |
> >    |        |        |            |    B->A   |                        |
> >    +--------+--------+------------+-----------+------------------------+
> >    |        |        | AE CWR ECE | AE CWR ECE|                        |
> > ...
> >    | AccECN | ECN    | 1   1   1  | 0   0   1 | classic ECN            |
> > ...
> >    | ECN    | AccECN | 0   1   1  | 0   0   1 | classic ECN            |
> >
> >
> > In the first case, I'm saying the AccECN client (A) only falls back to
> classic ECN mode if the SYN/ACK is 001. This ensures a 101 SYN/ACK in
> response to a 111 SYN is reserved for future use. Whereas if in this case
> we merely said an AccECN client does what RFC3168 says, the AccECN client
> would have to switch to classic ECN if the SYN/ACK was X01, thus wasting a
> codepoint.
>
>
> In this case the A has requested AccECN support but B only supports
> classic ECN and indicates that in the SYN/ACK. As soon as the SYN/ACK is
> received negotiation is done and A has to act as specified in RFC3168.
>
> If B would reply with 101 in the SYN/ACK, then B is also an AccECN sender
> but wants to negotiate something that is not yet specified.
>
> I don’t see any problem here.
>
> >
> > In the second case, the AccECN server only falls back to classic ECN
> mode if the SYN is 011. This ensures a 001 SYN/ACK in response to a 111 SYN
> is reserved for future use. Whereas, if in this case we merely said an
> AccECN server does what RFC3168 says, the server would have to switch to
> classic ECN if the SYN was X11, thus wasting another codepoint.
>
> In the case where A requests classic ECN, B can still decide to either
> support classic ECN or not and respectively reply with 001 or 000. And all
> I’m saying that we should not specify this reply here because that’s
> already specified in RFC3168.
>
> If A sends 111 it’s not a classic ECN sender and we can still specify it
> here but that’s not the case that is shown in the table.
>
> Mirja
>
>
>
> >
> >
> > This is a separate point from the MUST vs SHOULD language in the second
> case. I'll respond to Jonathan on that next.
> >
> >
> > Bob
> >
> >>
> >> Mirja
> >>
> >>
> >>
> >>
> >>> On 11. Dec 2019, at 11:12, Bob Briscoe <ietf@bobbriscoe.net>
> >>>  wrote:
> >>>
> >>> Mirja,
> >>>
> >>> On 11/12/2019 08:48, Mirja Kuehlewind wrote:
> >>>
> >>>> Hi Bob,
> >>>>
> >>>> Sorry about your laptop (but if I remember correctly, it was broken
> anyway…). I think we do agree (and did from the beginning). Yes, I think my
> first statement below was overly broad and I did not meant to remove all
> normative language from that section. I was only referring to language that
> talked about RFC3168 negotiation.
> >>>>
> >>>> You propose below that an AccECN sender "MUST respond to a 3168 SYN
> with either (0,0,1) or (0,0,0)” and I'm rather saying that we should not
> use normative language here but rather say something like: “If an AccECN
> sender received a 3168 SYN (without AE=1 respectively) is replies as
> specified in RFC3168 if it is configured to support classic ECN.” Or
> something like that. That’s all :-)
> >>>>
> >>> Pls respond to my two points (that keep getting overlooked), both
> starting with "This cannot be said by referring to 3168" further down the
> email.
> >>>
> >>>
> >>> Bob
> >>>
> >>>> Mirja
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> On 11. Dec 2019, at 03:19, Bob Briscoe <ietf@bobbriscoe.net>
> >>>>>  wrote:
> >>>>>
> >>>>> Mirja,
> >>>>>
> >>>>> On 23/1119 I sent an analysis of the changes that would need to be
> made to the AccECN draft if it became stds track (which would imply that it
> then updates RFC3168) instead of expt track. For context, please read and
> possibly respond to that before you respond to this email.
> >>>>>
> >>>>> However, my email below applies whether AccECN is stds track or expt
> track.
> >>>>>
> >>>>> I've shifted the quoting back into order below, so the context is
> more clear, and I've then responded inline...
> >>>>>
> >>>>>>> On 25. Nov 2019, at 22:41, Bob Briscoe <ietf@bobbriscoe.net>
> >>>>>>>  wrote:
> >>>>>>>
> >>>>>>> Mirja,
> >>>>>>>
> >>>>>>>
> >>>>>>> On 26/11/2019 01:02, Mirja Kuehlewind wrote:
> >>>>>>>
> >>>>>>>> Hi Jonathan,
> >>>>>>>>
> >>>>>>>> [MK] Sorry I wasn’t clear. I think we should not have these
> normative requirement in the draft and change the text to make it
> non-normative. This section was meant to explain which modes you end up in
> and the current use of normative language doesn’t seem to be right to me.
> >>>>>>>>
> >>>>> [BB] Please be clear exactly which requirements you are talking
> about. When I read the above, I just gave up and threw my laptop out of the
> window.
> >>>>>
> >>>>> Having bought a new laptop, I'm now wondering... perhaps you didn't
> mean all of the normative requirements under table 2 when you said 'we
> should not have these normative requirements', altho from your earlier
> email I got the distinct impression you did mean that (which is why I
> wasted a laptop).
> >>>>>
> >>>>> What did you mean? Given the considerable amount of normative
> language in this part of the draft, and that it's all been stable for all
> 16 revisions since draft-kuehlewind-01, I think we deserve to see the
> actual text you are proposing, and some sound reasoning for why the current
> normative text suddenly all has to be junked.
> >>>>>
> >>>>> more...
> >>>>>
> >>>>>
> >>>>>>>> [MK] Likewise the table was also not meant to say whenever you
> implement AccECN, you MUST negotiate it in the handshake. And likewise the
> table does not show any classic ECN only transitions.
> >>>>>>>>
> >>>>>>> [BB] In the spec of AccECN, it's necessary and reasonable to state
> normative requirements for a node "that is AccECN-enabled". That doesn't
> mean that an AccECN implementation has to always support AccECN - it can
> always disable AccECN. But we do have to say what it is expected to do if
> it is following the AccECN protocol.
> >>>>>>>
> >>>>>>> This draft has included that normative language for the
> negotiation phase in all 16 revisions since the first individual draft
> (that you wrote!).
> >>>>>>>
> >>>>>>> The table shows only cases where one end or the other is
> AccECN-capable, and the text preceding and following the table gives
> normative requirements solely for the AccECN node(s) in those cases. It
> doesn't give any normative requirements for non-AccECN nodes.
> >>>>>>>
> >>>>>>> In block 3, the server is AccECN capable, so in the AccECN spec.
> it's perfectly reasonable to say what it ought to do in response to various
> types of SYN. In particular, if it receives a SYN with AE,CWR,ECE=0,0,0 the
> AccECN-enabled server MUST respond with AE,CWR,ECE=0,0,0.
> >>>>>>>
> >>>>>>> The only case that is in question, AFAIC, is whether we have to
> say what an AccECN-capable server does in response to a SYN from an RFC3168
> client (AE,CWR,ECE=0,1,1). We need to somehow say an AccECN server can
> respond with a SYN-ACK that is either RFC3168 or non-ECN.
> >>>>>>>
> >>>>>>> I just proposed respectively SHOULD and MAY, but I can now see
> there is no need to make that judgement call. However, it is still
> important to say an AccECN-enabled server MUST respond with either (0,0,1)
> or (0,0,0).
> >>>>>>>
> >>>>> On 02/12/2019 11:15, Mirja Kuehlewind wrote:
> >>>>>
> >>>>>> Hi Bob,
> >>>>>>
> >>>>>> Regarding the [above] sentence:
> >>>>>>
> >>>>>> This is a normative statement that is defined in RFC3168 and we
> should not state it here again but refer to RFC3168 instead.
> >>>>>>
> >>>>> [BB] But an AccECN /server/ does not have to support RFC3168. It
> might be desirable to support 3168 as well as AccECN, but strictly it
> doesn't have to for interoperability - it can fall-back to non-ECN if it
> receives a 3168 SYN.
> >>>>>
> >>>>> That was my reason for starting this thread. If an AccECN server
> supports 3168, it replies (0,0,1). But it can just not support 3168 at all.
> Then it replies (0,0,0).
> >>>>>
> >>>>> However, it cannot do neither. Hence why I said it MUST respond to a
> 3168 SYN with either (0,0,1) or (0,0,0).
> >>>>>
> >>>>> This cannot be said by referring to 3168.
> >>>>>
> >>>>>>> [BB] It's also important that the spec defines all three bits in
> the SYN-ACK responses, not just the 2-bits defined in RFC3168 - so that the
> combinations with AE=1 are ruled out and therefore remain available for
> future use.
> >>>>>>>
> >>>>> [BB] This cannot be said by referring to RFC3168 either.
> >>>>>
> >>>>>
> >>>>>
> >>>>> Bob
> >>>>>
> >>>>>>>
> >>>>>>> Bob
> >>>>>>>
> >>>>>>>> Mirja
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> On 25. Nov 2019, at 17:48, Jonathan Morton <
> chromatix99@gmail.com>
> >>>>>>>>>  wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> On 25 Nov, 2019, at 6:43 pm, Mirja Kuehlewind <
> ietf@kuehlewind.net>
> >>>>>>>>>>  wrote:
> >>>>>>>>>>
> >>>>>>>>>> I don’t think we can or should derive a normative requirement
> from this table. The table rather explains which mode you are in depending
> on the handshake that has happened. So it says: when client A is ECN
> capable and requests classic ECN support in the handshake and server B is
> AccECN capable and negotiated classic ECN support in the handshake then you
> are in classic ECN mode.
> >>>>>>>>>>
> >>>>>>>>> I will merely re-quote the final sentence from my quoted text,
> which transforms that table into a normative requirement:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>>     Therefore, as soon as an
> >>>>>>>>>>     AccECN-enabled TCP server (B) receives the SYN shown, it
> MUST set
> >>>>>>>>>>     both its half connections into the feedback mode shown in
> the
> >>>>>>>>>>     rightmost column.
> >>>>>>>>>>
> >>>>>>>>> - Jonathan Morton
> >>>>>>>>>
> >>>>>>> --
> >>>>>>> ________________________________________________________________
> >>>>>>> Bob Briscoe
> >>>>>>> http://bobbriscoe.net/
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>> --
> >>>>> ________________________________________________________________
> >>>>> Bob Briscoe
> >>>>> http://bobbriscoe.net/
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>> --
> >>> ________________________________________________________________
> >>> Bob Briscoe
> >>> http://bobbriscoe.net/
> >>>
> >>>
> >>>
> >>>
> >
> > --
> > ________________________________________________________________
> > Bob Briscoe
> > http://bobbriscoe.net/
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm
>