Re: [core] Last Call: <draft-ietf-core-block-18.txt> (Block-wise transfers in CoAP) to Proposed Standard

Carsten Bormann <cabo@tzi.org> Mon, 01 February 2016 23:15 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CA7421B388D; Mon, 1 Feb 2016 15:15:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham
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 qZmk-nKh6jDP; Mon, 1 Feb 2016 15:15:20 -0800 (PST)
Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [IPv6:2001:4b98:c:538::198]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A2C841B388C; Mon, 1 Feb 2016 15:15:20 -0800 (PST)
Received: from mfilter46-d.gandi.net (mfilter46-d.gandi.net [217.70.178.177]) by relay6-d.mail.gandi.net (Postfix) with ESMTP id D0383FB8A3; Tue, 2 Feb 2016 00:15:18 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mfilter46-d.gandi.net
Received: from relay6-d.mail.gandi.net ([IPv6:::ffff:217.70.183.198]) by mfilter46-d.gandi.net (mfilter46-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id UDDqd5TFWWA1; Tue, 2 Feb 2016 00:15:17 +0100 (CET)
X-Originating-IP: 93.199.254.229
Received: from nar.local (p5DC7FEE5.dip0.t-ipconnect.de [93.199.254.229]) (Authenticated sender: cabo@cabo.im) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id ECF8EFB882; Tue, 2 Feb 2016 00:15:15 +0100 (CET)
Message-ID: <56AFE702.2030307@tzi.org>
Date: Tue, 02 Feb 2016 00:15:14 +0100
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.8 (Macintosh/20151105)
MIME-Version: 1.0
To: Jim Schaad <ietf@augustcellars.com>
References: <20151120213250.32473.53283.idtracker@ietfa.amsl.com> <D27C68A8.3F21C%goran.selander@ericsson.com> <063a01d15a22$24099250$6c1cb6f0$@augustcellars.com> <D2D4CED0.4C8D8%goran.selander@ericsson.com> <00d701d15d2f$2f849840$8e8dc8c0$@augustcellars.com> <D2D58505.4CA8C%goran.selander@ericsson.com> <00e601d15d43$3b5938b0$b20baa10$@augustcellars.com>
In-Reply-To: <00e601d15d43$3b5938b0$b20baa10$@augustcellars.com>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/GPsU6XjV5rbJOYHvXmOd84GBBi4>
Cc: core-chairs@ietf.org, ietf@ietf.org, core@ietf.org, draft-ietf-core-block@ietf.org, barryleiba@gmail.com
Subject: Re: [core] Last Call: <draft-ietf-core-block-18.txt> (Block-wise transfers in CoAP) to Proposed Standard
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Feb 2016 23:15:23 -0000

Jim Schaad wrote:
> This is where the current BLOCK draft falls apart on its own merits.  It does not discuss what should happen if the set of options is not the same between all of the blocks. This is a problem if one is using security or not.  The correct set of headers is the set that needs to be protected, but there is no way to determine what the set of headers is supposed to be.

This is not entirely true.  For Content-Format, 2.3 has this discussion:

   The Content-Format Option sent with the requests or responses MUST
   reflect the content-format of the entire body.  If blocks of a
   response body arrive with different content-format options, it is up
   to the client how to handle this error (it will typically abort any
   ongoing block-wise transfer).  If blocks of a request arrive at a
   server with mismatching content-format options, the server MUST NOT
   assemble them into a single request; this usually leads to a 4.08
   (Request Entity Incomplete, Section 2.9.2) error response on the
   mismatching block.

For ETag, 2.4 has:

   Block-wise transfers can be used to GET resources the representations
   of which are entirely static (not changing over time at all, such as
   in a schema describing a device), or for dynamically changing
   resources.  In the latter case, the Block2 Option SHOULD be used in
   conjunction with the ETag Option, to ensure that the blocks being
   reassembled are from the same version of the representation: The
   server SHOULD include an ETag option in each response.  If an ETag
   option is available, the client's reassembler, when reassembling the
   representation from the blocks being exchanged, MUST compare ETag
   Options.  If the ETag Options do not match in a GET transfer, the
   requester has the option of attempting to retrieve fresh values for
   the blocks it retrieved first.  To minimize the resulting


It is hard to discuss all potential options because new options may have
interesting interactions with the Block options, which I hope will be
specified with those options.

More interesting is Max-Age, as this can change during the transfer, or
Size2.  Location-Path/-Query is something that is often only available
at the end of the block transfer, so I would expect that to come with
the block(s) carrying the 2.01.

Also, 2.4 specifies:

   When a request is answered with a response carrying a Block2 Option
   with the M bit set, the requester may retrieve additional blocks of
   the resource representation by sending further requests with the same
   options as the initial request and...

While I agree this could be spelled out in more detail, the information
basically is there.

Grüße, Carsten