Re: [multipathtcp] MPTCP implementation feedback for RFC6824bis

Yoshifumi Nishida <nsd.ietf@gmail.com> Wed, 11 December 2019 07:55 UTC

Return-Path: <nsd.ietf@gmail.com>
X-Original-To: multipathtcp@ietfa.amsl.com
Delivered-To: multipathtcp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 56E1E120892 for <multipathtcp@ietfa.amsl.com>; Tue, 10 Dec 2019 23:55:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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 dNYqMg1Kbacp for <multipathtcp@ietfa.amsl.com>; Tue, 10 Dec 2019 23:55:28 -0800 (PST)
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) (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 3B4AC12088E for <multipathtcp@ietf.org>; Tue, 10 Dec 2019 23:55:28 -0800 (PST)
Received: by mail-wm1-x32b.google.com with SMTP id t14so5872466wmi.5 for <multipathtcp@ietf.org>; Tue, 10 Dec 2019 23:55:28 -0800 (PST)
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=QCBas/m61Pl9RnM3IcnjjOmbVQBnw/5G++L9N2FTR50=; b=sjxjqQ1LAYInVkDMTQo8HAFdGvlIMY0UiuKpWHD1ENjcgg2R4Yt/6I7hZyJAWpEDuG eFHN/ueyv/In9Z6QSGMtZ+m7tJu6QSwWm6Lppz7neUJDlPQIFd9Qe5ntQ4WscotbC4bF bFb7jkY7P5MDQzC3SFDfOs5XYpy9EAEuKrfXXT3Tk+pJRamjG7kGW4XsF6cgvIIpilIB uZJISwZ0OqxkOGbHLbqLnxTtjMA1OG9w6h0HikU7hGzV4ycrs6Loj4eXFUcC1Z85IfaS SJB63WfC6iAWyimsmz0phndCOv1g8qZRaSAlDTBPnXMdgSmDPycYVncFosZBL1P6hVaM nqZQ==
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=QCBas/m61Pl9RnM3IcnjjOmbVQBnw/5G++L9N2FTR50=; b=o4DkzFeoEB98alUAlVIrXM7YX7Ii0HyDUCRrGUqNHXb8J9v3ETpsUSo0oYpuOC+bu/ ibHOsBTVzLTZtJn1AYFYiJtjLuLqPAzxayKIqNnWWSS+I9GRMRHEbdT3vId3/XQ3kMQO U2rGkKfpqknoXC9Vsjsk0MtOARqAePnA/asGuCtF4+5eUReWLWPAv+iif1wOPzn5V6TQ 6oGbVTbGWcf71nTWswgSuDbSe6J1Pa1q9ZoXN0ZpCOWjtaEhivpjyvk3WPtTBtdjBEan CuYjzPvnAuo9LwrphAu1x5Py0/axk70VJM5+8fh++zkEtkcWa/Q/42ZzdKmpSa+ewOX1 VcTQ==
X-Gm-Message-State: APjAAAVbqe15ICEitkNqYveoSnaVIPhubR4zWTpgt5nJ/KN1ZWEM6hzm v9E2mN/CSNUf2C2HRho5pEcCvhDRCbROICie510=
X-Google-Smtp-Source: APXvYqzKAVwTKFJfVm+yw2eCvQlHXO3sW9yP2YGEa1Ckx0H8dWeE3rCjdnsgak7lNnfotBM0U+IpZjxpk4bLqIZGyFE=
X-Received: by 2002:a7b:c935:: with SMTP id h21mr1872954wml.173.1576050926720; Tue, 10 Dec 2019 23:55:26 -0800 (PST)
MIME-Version: 1.0
References: <17233788-D98B-4484-B785-2F58D43EA7CA@apple.com> <D070F2D5-6E8C-4551-86DD-E50B4ADF11B7@gmail.com> <3F1F1135-D2C0-48E2-9B6E-A83DDC11DF4F@apple.com> <83BFBFD6-255E-4022-96D4-BE183B709CB2@gmail.com> <20191202172757.GA84163@MacBook-Pro-64.local> <CF3EBAFD-E24E-4233-8FCE-775396E747A2@gmail.com> <D784F90C-5027-4753-9088-00CF25D22DFD@apple.com> <3278EB11-686A-4E0F-9DE4-321B239F8913@gmail.com> <DEE3E51B-373C-40BE-A296-8517FB23A7B7@apple.com> <6978C97F-24D5-4CF0-8CEB-2F58BE26D174@gmail.com> <CAAK044RLUJSZEcyuv1FmPGmOA0pCMKLBD8EzXZn9h23ZCfaYWA@mail.gmail.com> <63E04612-7410-4E38-BE19-F2351C23C7F7@gmail.com>
In-Reply-To: <63E04612-7410-4E38-BE19-F2351C23C7F7@gmail.com>
From: Yoshifumi Nishida <nsd.ietf@gmail.com>
Date: Tue, 10 Dec 2019 23:55:15 -0800
Message-ID: <CAAK044S2azKbH6FyJ4TG_UR3PGzV=1vmXZ-qiVKnqW2RN6VqGw@mail.gmail.com>
To: Alan Ford <alan.ford@gmail.com>
Cc: Christoph Paasch <cpaasch@apple.com>, MultiPath TCP - IETF WG <multipathtcp@ietf.org>, Philip Eardley <philip.eardley@bt.com>, Mirja Kuehlewind <ietf@kuehlewind.net>, mptcp Upstreaming <mptcp@lists.01.org>
Content-Type: multipart/alternative; boundary="000000000000a29c16059968f3bf"
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/A5BJx9rhrYNJb-tgDbnhKNsEDPc>
Subject: Re: [multipathtcp] MPTCP implementation feedback for RFC6824bis
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multi-path extensions for TCP <multipathtcp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/multipathtcp/>
List-Post: <mailto:multipathtcp@ietf.org>
List-Help: <mailto:multipathtcp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Dec 2019 07:55:30 -0000

Hi Alan,

On Tue, Dec 10, 2019 at 8:09 AM Alan Ford <alan.ford@gmail.com> wrote:

> Hi Yoshifumi,
>
> On 10 Dec 2019, at 05:30, Yoshifumi Nishida <nsd.ietf@gmail.com> wrote:
>
> Hi Alan,
>
> The texts look fine to me, but I have a few questions on them.
>
> On Fri, Dec 6, 2019 at 7:58 AM Alan Ford <alan.ford@gmail.com> wrote:
>
>> Hi all,
>>
>> Following on from the discussion of implementation feedback with
>> Christoph, I propose the following edits to RFC6824bis - which is currently
>> in AUTH48 - as clarifications.
>>
>> ADs, please can you confirm you consider these edits sufficiently
>> editorial to fit into AUTH48.
>>
>> WG participants, please speak up if you have any concerns.
>>
>>
>> *Edit 1, clarifying reliability of MP_CAPABLE*
>>
>> Change the sentence reading:
>>
>>    The SYN with MP_CAPABLE occupies the first octet of data sequence
>> space, although this does not need to be acknowledged at the connection
>> level until the first data is sent (see Section 3.3).
>>
>> To:
>>
>>    The SYN with MP_CAPABLE occupies the first octet of data sequence
>> space, and this MUST be acknowledged at the connection level at or before
>> the time the first data is sent or received (see Section 3.3).
>>
>
> What implementations should do when they receive the first data before
> MP_CAPABLE is acked?
> They should terminate the connection or discard the data?
>
>
> By asking this question you have made me realise that this text is in fact
> incompatible with the case when A (the initiator) is also the first sender
> of data.
>
> Given the problem is only with B sending data first, let us forget this
> change, and revert to Christoph’s original problem text, and use only the
> below change:
>
> Change the sentence reading:
>>
>>    If B has data to send first, then the reliable delivery of the ACK +
>> MP_CAPABLE can be inferred by the receipt of this data with an MPTCP Data
>> Sequence Signal (DSS) option (Section 3.3).
>>
>> To:
>>
>>    If B has data to send first, then the reliable delivery of the ACK +
>> MP_CAPABLE is ensured by the receipt of this data with an MPTCP Data
>> Sequence Signal (DSS) option (Section 3.3) containing a DATA_ACK for the
>> MP_CAPABLE (which is the first octet of the data sequence space).
>>
>
> This will resolve the ambiguity in the case of B sending first.
>

Thanks. this makes sense to me. But, I am wondering if we want to make the
use of DATA_ACK mandatory in this case.
How about something like: "if B has data to send first, then it MUST use an
MPTCP Data Sequence Signal (DSS) option (Section 3.3) containing a DATA_ACK
for the MP_CAPABLE (which is the first octet of the data sequence space) to
provide the reliable delivery of the ACK + MP_CAPABLE."?

In my personal opinion either one of these edits would be sufficient for
>> making the point, however clearly this has caused some confusion amongst
>> the implementor community so making both these changes should make it
>> absolutely clear as to the expected behaviour here.
>>
>>
>> *Edit 2, mapping constraint*
>>
>> Change the sentence reading:
>>
>>    A Data Sequence Mapping does not need to be included in every
>> MPTCP packet, as long as the subflow sequence space in that packet
>> is covered by a mapping known at the receiver.
>>
>> To:
>>
>>    A Data Sequence Mapping MUST appear on a TCP segment which is covered
>> by the mapping. It does not need to be included in every MPTCP packet, as
>> long as the subflow sequence space in that packet is covered by a mapping
>> known at the receiver.
>>
>>
> What implementations should do when a Data Sequence Mapping doesn't cover
> the TCP segment that carries this option?
>
>
> There are a number of cases where the MUST does not have a consequence; it
> should be obvious from the text for similar failures that it can close it
> with a RST.
>
> BTW, This is not a strong opinion, but I may prefer a text like: "A Data
> Sequence Mapping MUST provide the mapping for the segment that carries this
> option.”
>
>
> OK how about: "A Data Sequence Mapping MUST provide the mapping which
> includes the segment that carries this option.”
>

Works for me. Thanks!
--
Yoshi