Re: [tsvwg] Eric Rescorla's No Objection on draft-ietf-tsvwg-sctp-ndata-12: (with COMMENT)

Eric Rescorla <ekr@rtfm.com> Sat, 02 September 2017 13:25 UTC

Return-Path: <ekr@rtfm.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ABDCF132EC0 for <tsvwg@ietfa.amsl.com>; Sat, 2 Sep 2017 06:25:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level:
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.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 HZFIufjK3aBQ for <tsvwg@ietfa.amsl.com>; Sat, 2 Sep 2017 06:25:12 -0700 (PDT)
Received: from mail-yw0-x230.google.com (mail-yw0-x230.google.com [IPv6:2607:f8b0:4002:c05::230]) (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 4E560132E79 for <tsvwg@ietf.org>; Sat, 2 Sep 2017 06:25:06 -0700 (PDT)
Received: by mail-yw0-x230.google.com with SMTP id c85so4927697ywa.0 for <tsvwg@ietf.org>; Sat, 02 Sep 2017 06:25:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=pjjCbHeL5qv2+/PiIgKkQp7g7C78rb/4PpG5V1z9R5c=; b=ykKzxhFw2H8VrU7+AYIdQgTslWEGcv2M8I4d76FyeV0N5do01UqlhifE2xPa4F6udn zvgmhFQSsi5ZWeMsdsPXQKRmHIzlsjfXLA0Clr1nuNAjafI+CfYKLvzCqhwC6S44A1xI mD2Kyka+HA51/MaIzhhXWyt/b9+y473tOZ9BjOJpCaZ5NK1yzAQJTnw1JbpQNUkooYFQ Rzwl3OSSMM+/CmR8Pi6egRM+MnywtjsDelX2nntwVXKFqsnVp8kNtHq/fe8ON0QkzS9U SsmKtqC8osIIp9I9haQxO9WU0ascb/M9BMbKchSk4bELZeQIWHkfajF5f6d3ak3ZrInE wJCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=pjjCbHeL5qv2+/PiIgKkQp7g7C78rb/4PpG5V1z9R5c=; b=qBynVXPgn1797YSe/6mVWGyZRcRE83LvnDOtC1uetjS1W4UflNgI5T2qF8rMHlBwt4 DkK3YM50XiQaE56CIqcDU644nULUJUSBFNCoFlLWjR9ZobIV2puybI3vGlZ1cF35pr6o IH+n23ddjtB9PpaKoctxbJcWH2bKB8RK1dfgmrZJKqnGmfWHvc2IYEUYyGM2KwTcZt3G H5azAU4tKLQdt7KbXbDg1U3RVRu4t+9xJdvQdozAEPpiCiXb7fm+SpyzBJQ3xRGKuoMw roMvUKldSRPmyBLWPFfeqUBseOV/qy0VOkteWaJ9Tv2GA9MHmZ03Eo3mSBqE6sBjuusW MF1Q==
X-Gm-Message-State: AHPjjUgujzCxxDXiV5x+/IakpWWXvqPFihq0YiHuUqQ/kad0yT56e0C1 cx9Xm6PFMWHmxO44qfvur0eLZ2nrtUCE
X-Google-Smtp-Source: ADKCNb6UgpD0qzDNbOWCFvVvs65lFHuV5kw8nRPzW35+1lT+qo8HbFKXRqTsFmBJ0FgiA9tBvmfCE5SvONeKkiisFvE=
X-Received: by 10.37.4.204 with SMTP id 195mr4517116ybe.289.1504358705551; Sat, 02 Sep 2017 06:25:05 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.13.218.130 with HTTP; Sat, 2 Sep 2017 06:24:24 -0700 (PDT)
In-Reply-To: <CAKKJt-eB5imY7-4yAv4kFkBRgo2NNa7-ZOL_A1+gZpaXGPP4Xw@mail.gmail.com>
References: <150377526319.25828.13085691478621902018.idtracker@ietfa.amsl.com> <6B8221AA-0A42-4409-BDA9-63215B0789F2@fh-muenster.de> <CABcZeBM+-vkO_-Q4NZp7g8tKG6SfS4KLqaf2SHWmLxkDHYcTOg@mail.gmail.com> <7C366691-31F9-44B3-AF7A-F877B13EF27A@fh-muenster.de> <CABcZeBP9MxSWxkva1J=KTeH+vJKBxEv4+GxqfWKpKJ3dj+Rprw@mail.gmail.com> <68C4E71D-B044-4DC3-B570-97C0AD0578F6@fh-muenster.de> <CABcZeBMVFLQpzLO0=Og-OumtWfgzKQY4s3jjEj96VyTPjAzZCQ@mail.gmail.com> <EDCC4403-52B3-47AE-A97D-1A1090F52E1A@fh-muenster.de> <CAKKJt-eB5imY7-4yAv4kFkBRgo2NNa7-ZOL_A1+gZpaXGPP4Xw@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Sat, 02 Sep 2017 07:24:24 -0600
Message-ID: <CABcZeBP_xNU2eXUp_WZcKqOCuYHXq9eXP5T-HSwr5G+xHNB+ZQ@mail.gmail.com>
To: Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>
Cc: Michael Tuexen <tuexen@fh-muenster.de>, Gorry Fairhurst <gorry@erg.abdn.ac.uk>, draft-ietf-tsvwg-sctp-ndata@ietf.org, The IESG <iesg@ietf.org>, "tsvwg@ietf.org" <tsvwg@ietf.org>, "tsvwg-chairs@ietf.org" <tsvwg-chairs@ietf.org>
Content-Type: multipart/alternative; boundary="001a11c01966428940055834ce77"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/u9xaHGYjpGctesx6uZw1kfZDOHk>
Subject: Re: [tsvwg] Eric Rescorla's No Objection on draft-ietf-tsvwg-sctp-ndata-12: (with COMMENT)
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Sep 2017 13:25:15 -0000

LGTM

On Fri, Sep 1, 2017 at 2:22 PM, Spencer Dawkins at IETF <
spencerdawkins.ietf@gmail.com> wrote:

> Hi, Eric,
>
> On Wed, Aug 30, 2017 at 8:11 AM, Michael Tuexen <tuexen@fh-muenster.de>
> wrote:
>
>>
>> > On 29. Aug 2017, at 15:09, Eric Rescorla <ekr@rtfm.com> wrote:
>> >
>> >
>> >
>> > On Tue, Aug 29, 2017 at 12:24 AM, Michael Tuexen <tuexen@fh-muenster.de>
>> wrote:
>> > > On 29. Aug 2017, at 01:04, Eric Rescorla <ekr@rtfm.com> wrote:
>> > >
>> > >
>> > >
>> > > On Mon, Aug 28, 2017 at 3:39 PM, Michael Tuexen <
>> tuexen@fh-muenster.de> wrote:
>> > > > On 28. Aug 2017, at 22:56, Eric Rescorla <ekr@rtfm.com> wrote:
>> > > >
>> > > >
>> > > >
>> > > > On Mon, Aug 28, 2017 at 1:42 PM, Michael Tuexen <
>> tuexen@fh-muenster.de> wrote:
>> > > > > On 26. Aug 2017, at 21:21, Eric Rescorla <ekr@rtfm.com> wrote:
>> > > > >
>> > > > > Eric Rescorla has entered the following ballot position for
>> > > > > draft-ietf-tsvwg-sctp-ndata-12: No Objection
>> > > > >
>> > > > > When responding, please keep the subject line intact and reply to
>> all
>> > > > > email addresses included in the To and CC lines. (Feel free to
>> cut this
>> > > > > introductory paragraph, however.)
>> > > > >
>> > > > >
>> > > > > Please refer to https://www.ietf.org/iesg/stat
>> ement/discuss-criteria.html
>> > > > > for more information about IESG DISCUSS and COMMENT positions.
>> > > > >
>> > > > >
>> > > > > The document, along with other ballot positions, can be found
>> here:
>> > > > > https://datatracker.ietf.org/doc/draft-ietf-tsvwg-sctp-ndata/
>> > > > >
>> > > > >
>> > > > >
>> > > > > ------------------------------------------------------------
>> ----------
>> > > > > COMMENT:
>> > > > > ------------------------------------------------------------
>> ----------
>> > > > >
>> > > > Hi Eric,
>> > > >
>> > > > thanks for the review. See my responses in-line.
>> > > >
>> > > > Best regards
>> > > > Michael
>> > > > > TECHNICAL
>> > > > > I'm not sure I am following the rules about interleaving multiple
>> > > > > messages in the same flight.
>> > > > >
>> > > > >   The sender MUST NOT fragment more than one user message in any
>> given
>> > > > >   stream at any time.  At any time, a sender MAY fragment
>> multiple user
>> > > > >   messages, each of them on different streams.
>> > > > >
>> > > > > So, say I have one stream and the application sends M1 and M2 and
>> both
>> > > > > need to be fragmented, so I have M1a, M1b and M2a and M2b. Does
>> this
>> > > > > mean that I can't send M2a until M1{a,b} has been acknowledged?
>> > > > No, that is not what is meant.
>> > > >
>> > > > Assume M1 is sent before M2 and you end up in M1a (first fragment),
>> > > > M1b (second fragment), M2a (first fragment) and M2b (second
>> fragment).
>> > > > You would assign the TSNs in a way that they are increasing for
>> > > > M1a, M1b, M2a, and M2b. So you are not interleaving messages on
>> > > > the same stream. That is the point. So you would not send them as
>> > > > M1a, M2a, M2b, M1b. You should also not send M1a, M2, M1b (assuming
>> > > > that M2 doesn't need to be fragmented).
>> > > >
>> > > > I agree, the above text is not as clear as possible. So what about
>> stating
>> > > > it as:
>> > > >
>> > > >   The sender MUST NOT assign TSNs to more than one user message in
>> any given
>> > > >   stream at any time.  At any time, a sender MAY assign TSNs to
>> multiple user
>> > > >   messages, each of them on different streams.
>> > > >
>> > > > Perhaps you might instead say:
>> > > >
>> > > > The user messages within a given stream must have strictly
>> increasing TSNs
>> > > Not sure what you are suggesting, since TSN are assigned to chunks,
>> not
>> > > user messages.
>> > >
>> > > The problem here is that  your text focuses on TSN *assignment* which
>> is not
>> > > really the relevant property (it's an implementation artifact) rather
>> what appears
>> > > on the wire is. So, the requirement here seems to be that you
>> allocate TSNs
>> > > to fragments of user messages in order.
>> > The next sentence in the document states:
>> >
>> > The sender MUST assign TSNs in a way that the receiver can make
>> progress.
>> > One way to achieve this is to assign a higher TSN to the later
>> fragments of
>> > a user message and send out the TSNs in sequence.
>> >
>> > The reason not to mandate this is that you might you more complex
>> schemes
>> > in case of load-sharing between multiple paths.
>> >
>> > That's fine, but I don't find the current text clear and this doesn't
>> help. Why don't
>> > you try listing the requirements on what appears on the wire from the
>> receiver's
>> > perspective in response to this message, and then we can discuss how to
>> > write it in the doc.
>> Let me make another suggestion:
>>
>> OLD TEXT:
>>
>>    The sender MUST NOT fragment more than one user message in any given
>>    stream at any time.  At any time, a sender MAY fragment multiple user
>>    messages, each of them on different streams.
>>
>>    The sender MUST assign TSNs in a way that the receiver can make
>>    progress.  One way to achieve this is to assign a higher TSN to the
>>    later fragments of a user message and send out the TSNs in sequence.
>>
>>
>> NEW TEXT:
>>
>>    The sender MUST NOT process (move user data into I-DATA chunks and
>> assign
>>    a TSN to it) for more than one user message in any given stream at any
>> time.
>>    At any time, a sender MAY process multiple user messages, each of them
>> on
>>    different streams.
>>
>>    The sender MUST assign TSNs to I-DATA chunks in a way that the receiver
>>    can make progress.  One way to achieve this is to assign a higher TSN
>> to the
>>    later fragments of a user message and send out the I-DATA chunks such
>> that
>>    the TSNs are in sequence.
>>
>> Does that address your issue?
>>
>
> Michael has submitted -13 which includes this text. Diff is at
> https://tools.ietf.org/rfcdiff?url2=draft-ietf-tsvwg-sctp-ndata-13.txt.
>
> I'm planning to send an Approved notice for -13. If you see a problem,
> please let me know.
>
> Thanks,
>
> Spencer
>
>
>>
>> Best regards
>> Michael
>> >
>> > -Ekr
>> >
>> > >
>> > >
>> > > Just considering the simple case of non-fragmented user
>> > > messages, you can't guarantee that user messages of a particular
>> stream
>> > > have increasing TSNs, since there can be wrap arounds due to chunks
>> > > belonging to other streams. The TSN are 32-bit numbers with serial
>> arithmetic...
>> > >
>> > > Hmm... You don't think of these as being infinite precision but taken
>> mod 2^32?
>> > In most cases, yes. But I need to take into account that the numbers
>> can wrap
>> > and how this is handled by receivers. That is why the document states
>> some
>> > limitations you the number of outstanding MIDs and FSNs.
>> >
>> > Best regards
>> > Michael
>> > >
>> > > -Ekr
>> > >
>> > >
>> > >
>> > >
>> > > Best regards
>> > > Michael
>> > > >
>> > > >
>> > > >
>> > > > > use MID to reassemble correctly. And given this requirement, why
>> do
>> > > > > you need MID?
>> > > > You need some id to know which fragments belong to the same
>> > > > user message. You can't derive that from the TSN.
>> > > >
>> > > > Yeah, I thought you could but after some thought I see you cannot.
>> > > >
>> > > >
>> > > > -Ekr
>> > > >
>> > > > > Because fragementation is indicated by index, not range,
>> > > > > what happens if you have to reduce MTU? So, say I have a message
>> of
>> > > > > size 2K which I fragment into 1K/1K and then I have to decrease
>> > > > > my MTU to 512 bytes?
>> > > > SCTP can't adopt, so IP fragmentation will be used.
>> > > >
>> > > > The reason is that once you sent a DATA chunk or an I-DATA chunk
>> > > > you assigned a TSN will is used for reliable transfer. So you
>> > > > have to retransmit it and you can't change the user data contained
>> > > > in it. This has not changed from the base spec.
>> > > >
>> > > > Changing the information from index to range for handling reassembly
>> > > > would not really help, since you still do reliable transfer by
>> using the
>> > > > TSN assigned to the DATA or I-DATA chunk and you need to retransmit
>> it.
>> > > > >
>> > > > >
>> > > > > EDITORIAL
>> > > > > I think it would be helpful to indicate that B has to be
>> > > > > set for the first chunk in S 2.1. Or perhaps move the overview of
>> > > > > how the sender behaves in S 2.2.2 up in the document?
>> > > > Considering this comment and the ones I got from other people
>> > > > it seems like referring to RFC 4960 and RFC 7053 for the fields
>> > > > which haven't changed and only describing the new fields doesn't
>> > > > seem to work well.
>> > > >
>> > > > I'll add text describing the "old fields".
>> > > > >
>> > > > >
>> > > >
>> > > >
>> > >
>> > >
>> >
>> >
>>
>>
>