Re: Opsdir last call review of draft-ietf-tsvwg-sctp-ndata-12

Michael Tuexen <tuexen@fh-muenster.de> Fri, 25 August 2017 14:32 UTC

Return-Path: <tuexen@fh-muenster.de>
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 71C34132BF1; Fri, 25 Aug 2017 07:32:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 ZRq1XaSpudv8; Fri, 25 Aug 2017 07:32:37 -0700 (PDT)
Received: from drew.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C69D4132944; Fri, 25 Aug 2017 07:32:36 -0700 (PDT)
Received: from [192.168.1.204] (p57BB598B.dip0.t-ipconnect.de [87.187.89.139]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTPSA id 4C21D721E2822; Fri, 25 Aug 2017 16:32:33 +0200 (CEST)
From: Michael Tuexen <tuexen@fh-muenster.de>
Message-Id: <FDCFFA8C-8828-4578-A66E-A1AD7FF9BDC9@fh-muenster.de>
Content-Type: multipart/signed; boundary="Apple-Mail=_A9615269-0F8E-4323-B807-63A8FB6EE3D6"; protocol="application/pkcs7-signature"; micalg="sha1"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Opsdir last call review of draft-ietf-tsvwg-sctp-ndata-12
Date: Fri, 25 Aug 2017 16:32:31 +0200
In-Reply-To: <150287547583.12471.9085655210334710687@ietfa.amsl.com>
Cc: ops-dir@ietf.org, tsvwg@ietf.org, ietf@ietf.org, draft-ietf-tsvwg-sctp-ndata.all@ietf.org
To: Stefan Winter <stefan.winter@restena.lu>
References: <150287547583.12471.9085655210334710687@ietfa.amsl.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/NOssQGMK2m4kIw8dSucAHUAmBo0>
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: Fri, 25 Aug 2017 14:32:39 -0000

> On 16. Aug 2017, at 11:24, Stefan Winter <stefan.winter@restena.lu> wrote:
> 
> Reviewer: Stefan Winter
> Review result: Has Issues
> 
Hi Stefan,

thanks for your review. See my comments in-line.

Best regards
Michael
> One issue:
> 
> The chapter IANA considerations mentions four bits to be registered: E,B,U,I.
> In the main body, only three of those are actually defined and used (End of
> fragmented message, Beginning of fragmented message, Unordered/Ordered
> message). Please add a definition of the I bit or remove the IANA registration
> request for that bit.
The I bit is defined in RFC 7053 and that is the reason why we state
"DATA chunk defined in [RFC4960]and [RFC7053]". In addition to that it is
not mentioned (in contrast to the U, B and E bit), since the delaying of the
SACK is not specific to the I-DATA chunk.

I have added the following text to the body of Section 2.2:

<t>The handling of the I bit for the I-DATA chunk corresponds to the handling
of the I bit for the DATA chunk described in <xref target='RFC7053'/>.</t>

to improve the description of the I bit. See
https://github.com/sctplab/sctp-idata/commit/f16308ffe0e67ce5deb957bd40c25c5a0e691b82
Does that address your issue?
> 
> 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.
> 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.
> 
> In 2.2.3, is there any particular reason why the "protocol violation" error
> cause is only a MAY? As it enables debugging on the remote end, a SHOULD seems
> useful.
This is for consistency with other SCTP specifications. There is always the balance
between providing more information to help diagnosing the problem and providing more
information to an attacker. This allows implementers to do what they prefer.
For interoperability it is not important if the error cause is included or not.
>