Re: [OPS-DIR] Opsdir last call review of draft-ietf-tsvwg-sctp-ndata-12

Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com> Thu, 31 August 2017 13:46 UTC

Return-Path: <spencerdawkins.ietf@gmail.com>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2CD67132DA2; Thu, 31 Aug 2017 06:46:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level:
X-Spam-Status: No, score=-2.698 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_LOW=-0.7, 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 bI-WytcrKvSk; Thu, 31 Aug 2017 06:46:14 -0700 (PDT)
Received: from mail-yw0-x22a.google.com (mail-yw0-x22a.google.com [IPv6:2607:f8b0:4002:c05::22a]) (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 C7C22132D91; Thu, 31 Aug 2017 06:46:13 -0700 (PDT)
Received: by mail-yw0-x22a.google.com with SMTP id s143so3527047ywg.0; Thu, 31 Aug 2017 06:46:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=mfiZmmQ/N6ptode9/iozv1GiLqTvO9Tlyu6sve+pne4=; b=oEcs9orssIoUlouJSL4KDUXeuhvR0ebGidbmRkjQQVbGZvRJ1R6WipV/jirnuroimF 8w0WjPrsuOMGN60zjSBqbGMmj8+fDwry+dOg5MHazCVo0LqmklY823WpHMbLqjfcapeW S8VbnmIe3mWx5xEgRuRqX/u//2IYINxPG7dm9kd5g05GU/1R8qLP+wikdeSveCtgxqbL xY1LJSUwz5Q6gsUR7vFd+zqRZGS6ie32wn+TqkbJexIdHN5zatXB/nknxeDkCesx7WLt 578afsq7ePrx9lG4V/Rzqn+R5ceGZXg9pw1QANzbb8C66RyFKf/z7MbjgRqXtxDvZJHa p4Pw==
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=mfiZmmQ/N6ptode9/iozv1GiLqTvO9Tlyu6sve+pne4=; b=ColzcBSrZmCwcHoggdmw0iiGBKTkg0yJtpzoAYzlYzLhZybYTTgQdO9VuNa/i0+7lI f1vX2LxidneVejc3vIp0GqtO1nbkABnonAbTUEMXUOGeMLKZ0Y2dES8an2st4JtiMtNf CprmRSoF5vM02caaZXv8QuM8U3aaDtUDiBssfxnntFBcVw19e42uuXf+3sMKeH8GAZiN yrgAW9Gf2LxR6N8XQ20fZ7eklS2zVBLrJs1wRwfudqKuFsaUUDJCsKj9vbvAb2/xp2r9 AAbdsvLOBDL8Ux9vgSnwrmAuHCO9a7a9DclV/BeUJOZ1IWOyPQPI9fHxZTvETg4fJUMN RQzA==
X-Gm-Message-State: AHYfb5gPR+K08Xb2S+Hmkcqao6Gn3QFyKCk17NMP1Dg0R7POIexn1fqE /n/3550hj+RKpuYxdoh//hCfMXrvpg==
X-Google-Smtp-Source: ADKCNb67xkl4YjMIvf0aEzbKvML+Gi5V01zAMq23HQkdMte+Y1uCZAJ6lMRQzVQlwudE8jlbQYQlAUM4c9wonhFzlI8=
X-Received: by 10.129.122.77 with SMTP id v74mr4748957ywc.218.1504187173028; Thu, 31 Aug 2017 06:46:13 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.2.148 with HTTP; Thu, 31 Aug 2017 06:46:12 -0700 (PDT)
In-Reply-To: <BD327429-5C8F-4034-A9E7-834FDB1E7FB6@fh-muenster.de>
References: <150287547583.12471.9085655210334710687@ietfa.amsl.com> <FDCFFA8C-8828-4578-A66E-A1AD7FF9BDC9@fh-muenster.de> <1a39dff3-55a9-fe1d-7e19-a0fbd0b2751b@restena.lu> <F05D0F1F-47E2-4477-BFD9-F0119A4609FC@fh-muenster.de> <f4d121e4-44f5-e85d-98b1-bbea317a7539@cisco.com> <5CEB294C-AAC8-4F03-901D-487CD62BB491@fh-muenster.de> <41a1e8f1-2398-4d94-7021-638acdd58eb7@cisco.com> <1FFDADBA-4132-4D3B-B68C-A89A50AF1E24@fh-muenster.de> <CAKKJt-dM1q9NDe8r=q-aqdWW0i3i8mSYLCNssU4cvjo22GRRyw@mail.gmail.com> <BD327429-5C8F-4034-A9E7-834FDB1E7FB6@fh-muenster.de>
From: Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>
Date: Thu, 31 Aug 2017 08:46:12 -0500
Message-ID: <CAKKJt-fuJWEMd79Z2zRmg4GU8hpVcqSfN+Y6xLioMUmwu8d6fw@mail.gmail.com>
Subject: Re: [OPS-DIR] Opsdir last call review of draft-ietf-tsvwg-sctp-ndata-12
To: Michael Tuexen <tuexen@fh-muenster.de>
Cc: Benoit Claise <bclaise@cisco.com>, Stefan Winter <stefan.winter@restena.lu>, "ops-dir@ietf.org" <ops-dir@ietf.org>, draft-ietf-tsvwg-sctp-ndata.all@ietf.org, "tsvwg@ietf.org" <tsvwg@ietf.org>, "ietf@ietf.org" <ietf@ietf.org>, IESG IESG <iesg@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c0a87d61fc74005580cde5e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/VKRlTIvP7emJQq3jxbIh_qSnvoE>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 31 Aug 2017 13:46:18 -0000

Hi, Michael,

On Thu, Aug 31, 2017 at 8:25 AM, Michael Tuexen <tuexen@fh-muenster.de>
wrote:

> > On 31. Aug 2017, at 14:50, Spencer Dawkins at IETF <
> spencerdawkins.ietf@gmail.com> wrote:
> >
> > Just interjecting ...
> >
> > On Thu, Aug 31, 2017 at 7:25 AM, Michael Tuexen <tuexen@fh-muenster.de>
> wrote:
> >
> > > On 31. Aug 2017, at 14:14, Benoit Claise <bclaise@cisco.com> wrote:
> > >
> > > Hi Michael,
> > >>> On 30. Aug 2017, at 18:51, Benoit Claise <bclaise@cisco.com> wrote:
> > >>>
> > >>> Michael,
> > >>>
> > >>> I stumbled on the same point as Stefan.
> > >> Hi Benoit,
> > >>
> > >> thanks for reviewing the document. See my comments in-line.
> > >>
> > >> Best regards
> > >> Michael
> > >>> First of, I had to review RFC4960 for TSN/SSN. I was not sure
> whether TSN was per stream or not
> > >>> It would have helped me to repeat this information in the intro.
> > >>> Ok, to be candid, I deduced this information from figure 1 and 2.
> > >>>>>>> And the rest are only musings not needing any action if the
> authors don't want
> > >>>>>>> to action on them:
> > >>>>>>>
> > >>>>>>> The introduction presents a good use case, quoting: "e.g., when
> the
> > >>>>>>> transmission of an urgent
> > >>>>>>>  message is blocked from transmission because the sender has
> started
> > >>>>>>>  the transmission of another, possibly large, message".
> > >>>>>>>
> > >>>>>>> The later queueing example in figure 1 has three SIDs being
> queued
> > >>>>>>> simultanseously. It is not clear which of those "has already
> started" and which
> > >>>>>> There is actually one message queued for stream 0, three messages
> for stream 1,
> > >>>>>> and one message for stream 2.
> > >>>>>>> are the important ones being delayed. For a better understanding
> of the reader,
> > >>>>>> The figure is about in which sequence they are put on the wire.
> So no
> > >>>>>> transmission has startet. This examples also does not deal with
> the case
> > >>>>>> of one stream having a higher priority than another. That would
> be an
> > >>>>>> example using a priority scheduler. This examples illustrates the
> round
> > >>>>>> robin scheduler.
> > >>>>>> The point here is that a single scheduler (the round robin
> scheduler, for
> > >>>>>> example) behaves differently when user message interleaving is
> used or not.
> > >>>>>> That is an important point: You can even use the schedulers with
> regular
> > >>>>>> DATA chunk, i.e. with user message interleaving being negotiated.
> > >>> This was my source of confusion.
> > >>> With figure 1 and figure 2, you want to show the effect of Round
> Robin Scheduler with and without User Message Interleaving, while we were
> expecting the figure 2 to be the solution from this spec. Hence Stefan and
> I were looking for this "urgent message" in figure 2.
> > >> I don't know what you mean with "solution from this spec" means. This
> spec introduces
> > >> stream schedulers and a protocol extension to allow interleaving of
> user messages.
> > >> Using this to implement an "urgent" concept is only one possibility:
> usage of a
> > >> strict priority scheduler (SCTP_SS_PRIO). So this "urgent" is
> misleading. It seems
> > >> to ring the wrong bells. That is why I suggested to remove it...
> > >>>>>>> it might be useful to revise the figure so that the head-of-line
> blocking
> > >>>>>>> happens for SID 1 because transmission of  0 and 2 has already
> started (and
> > >>>>>>> declare SID 1 to be the "important" message). The ASCII art
> would just have to
> > >>>>>>> indent SID 1 content a bit (placing 0 and 2 earlier in time),
> and the resulting
> > >>>>>>> serialisation would then put all the SID 1 messages at the very
> end, when 0 and
> > >>>>>>> 2 have been completely submitted (right?).
> > >>>>>> One could think about adding another example based on the
> priority scheduler
> > >>>>>> and giving stream 1 a higher priority. But for illustrating the
> point of
> > >>>>>> schedulers behaving differently depending on the negotiation of
> user message
> > >>>>>> interleaving this seems not necessary.
> > >>>>> That second example might indeed be useful.
> > >>>>>
> > >>>>> It's simply a bit strange that in the introduction you speak about
> an
> > >>>>> "urgent" message (something deserving a higher-priority sending)
> and
> > >>>>> that another transmission has already started - but then the
> example has
> > >>>>> none of those two.
> > >>> Exactly.
> > >>> Please add this extra example.
> > >>> This would also clarify from the introduction that when you write ...
> > >>>
> > >>>   The sending of such large messages over
> > >>>   SCTP as specified in [RFC4960] can result in a form of sender side
> > >>>   head of line blocking (e.g., when the transmission of an urgent
> > >>>   message is blocked from transmission because the sender has started
> > >>>   the transmission of another, possibly large, message).
> > >>>
> > >>> .. the notion of transmission urgency is not within a stream but
> across streams, and that can be achieved with a priority scheduler.
> > >> I would actually prefer to remove the word "urgent" from that
> sentence. This just rings the wrong bells.
> > > That's a missed opportunity in mind, but your call.
> > Hmm. Let me remove the word "urgent"...
> >
> > Yes, please! I wasn't wild about it, either.
> It's done:
> https://github.com/sctplab/sctp-idata/commit/
> cf7b331512cd85d6195eb88fa96360673293323f
> >
> > >>> The text might have to be rephrased to explain that this spec
> provides the ability to create stream scheduler with different relative
> stream treatments.
> > >> What about:
> > >>
> > >> OLD TEXT
> > >>    This document also defines several stream schedulers for general
> SCTP
> > >>    associations.  The stream schedulers may behave differently
> depending
> > >>    on whether user message interleaving has been negotiated for the
> > >>    association or not.
> > >>
> > >> NEW TEXT
> > >>    This document also defines several stream schedulers for general
> SCTP
> > >>    associations allowing different relative stream treatments.
> > >>    The stream schedulers may behave differently depending
> > >>    on whether user message interleaving has been negotiated for the
> > >>    association or not.
> > >>
> > >> Would that address this issue?
> > > ok.
> > Fixed.
> > >>
> > >>> And also that urgent message would be placed in this high priority
> stream scheduler (reliable, I guess, but that's orthogonal) stream.
> > >> I really would like to get rid of this. I don't think giving the
> strict
> > >> priority scheduler as specific role here is a good idea.
> > >>
> > >> The RR scheduler was chosen as the simplest scheduler to illustrate
> > >> that scheduler can behave differently when using interleaving or not.
> > >>>> What about removing the word "urgent" from that sentence.
> > >>>>> In fact I wonder why you speak about urgent things in the
> introduction
> > >>>>> at all. Neither the scheduler nor the interleaving are designed to
> help
> > >>>>> urgent things to be sent earlier.
> > >>>>>
> > >>>>> All they do is make the transmission fairer so that *all* chunks
> get a
> > >>>>> more even serialised distribution on the wire.
> > >>>> That is not true in general. If you use the priority scheduler, one
> > >>>> stream gets preferred treatment. It also makes sure that the time
> > >>>> of a message spent in the stream queue is shorter. So these messages
> > >>>> get sent earlier.
> > >>>> In the case of the round robin scheduler, you are right that this is
> > >>>> about getting fairer treatment. If you take the WFQ scheduler, the
> > >>>> streams don't get the same treatment, but it depends on the weight
> > >>>> given to the stream.
> > >>>>> So, rather than saying that the spec helps urgent things to be sent
> > >>>>> earlier, it should maybe rather state that the spec helps every
> message
> > >>>>> getting an equal, and equally distributed, share of the medium.
> > >>>> It is not meant that the spec does this. It was one example, what
> > >>>> a particular stream scheduler does. But there are multiple
> schedulers
> > >>>> defined in the document.
> > >>>>
> > >>>> The RR scheduler example is not intended to illustrate what you can
> do
> > >>>> with all the schedulers, but that using message interleaving or not
> > >>>> has an impact on the scheduler. That is meant by stating:
> > >>>>
> > >>>> This document also defines several stream schedulers for general
> SCTP associations.
> > >>>> The stream schedulers may behave differently depending on whether
> user message
> > >>>> interleaving has been negotiated for the association or not.
> > >>>>
> > >>>> This is followed by illustrating this using the RR scheduler.
> > >>>>
> > >>>> Best regards
> > >>> Also, I don't see the value of the last sentence in this paragraph,
> especially with RFC2119 MAY.
> > >>>
> > >>>   This section defines several stream schedulers.  The stream
> > >>>   schedulers may behave differently depending on whether user message
> > >>>   interleaving has been negotiated for the association or not.  An
> > >>>   implementation MAY implement any subset of them.
> > >> During the review the question was brought up which scheduler have to
> be implemented
> > >> by an implementation. This sentence was add to address it.
> > >> If you want, I can remove it.
> > > The point is that the MAY is that sentence doesn't mean anything.
> > > Maybe you mean:
> > >
> > > An implementation MUST implement at least one stream scheduler.
> > That would require an implementation to implement at least one of
> > the ones being listed. You are right in the sense that an implementation
> > MUST implement at least one stream scheduler, but the original text
> > allows that one not to be specified in this document.
> >
> > Are you saying that an implementation MUST implement one of list defined
> > by this document?
> >
> > I'm pretty sure (and this came up in my AD review) the problem is that
> the original specification DID define a stream scheduler, that's wasn't
> called a stream scheduler, but SCTP implementations did schedule streams.
> And that didn't matter until there was more than one way to schedule
> streams (as in this document).
> The original specification did NOT specify a stream scheduler and left
> this completely implementation
> specific.
> Right now Linux is using (and only supporting a single scheduler) what we
> call in this document
> SCTP_SS_FCFS. FreeBSD's default scheduler is what we call in this document
> SCTP_SS_RR and
> Solaris uses one of these, forgot which one. Among these kernel
> implementations, only FreeBSD
> supports multiple streams schedulers and its selection. Possibly other
> closed source SCTP
> implementations might support other schedulers. Don't know.


Thanks for getting that right for me ...

Spencer


>  > So you're working out better wording that says something like "in
> addition to the way the original specification scheduled streams, we're
> defining more of them". I think.

I think we wanted to say something like:
>
> Here is a list of schedulers. Your implementation might support some of
> them, but this is
> left open. So you can't rely on it.
>
> The list of schedulers we specified includes the ones being used as
> default by FreeBSD, Linux and
> Solaris and was extended by the ones supported by FreeBSD and the one
> explicitly required by
> WebRTC, which is SCTP_SS_WFQ.
>
> What about this change:
>
> OLD TEXT:
>    An implementation MAY implement any subset of them.
>
> NEW TEXT:
>    An implementation MAY implement any subset of them. If the
> implementation
>    is used for WebRTC Datachannels as specified in
> [I-D.ietf-rtcweb-data-channel]
>    it MUST implement the Weighted Fair Queueing Scheduler defined in
> Section 3.6.


That works for me, but I'll let Benoit reply.

Spencer


> Best regards
> Michael
> >
> > ?
> >
> > Spencer
>
>