Re: [dtn] "Block data length" field in BPbis

Felix Walter <felix.walter@tu-dresden.de> Wed, 30 May 2018 20:36 UTC

Return-Path: <felix.walter@tu-dresden.de>
X-Original-To: dtn@ietfa.amsl.com
Delivered-To: dtn@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CE92A12EACB for <dtn@ietfa.amsl.com>; Wed, 30 May 2018 13:36:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3] 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 l4vFaBMBRV5R for <dtn@ietfa.amsl.com>; Wed, 30 May 2018 13:36:14 -0700 (PDT)
Received: from mailout6.zih.tu-dresden.de (mailout6.zih.tu-dresden.de [141.30.67.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6A7C812E8B1 for <dtn@ietf.org>; Wed, 30 May 2018 13:36:14 -0700 (PDT)
Received: from mail.zih.tu-dresden.de ([141.76.14.4]) by mailout6.zih.tu-dresden.de with esmtps (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) (Exim 4.84_2) (envelope-from <felix.walter@tu-dresden.de>) id 1fO7pM-0007T1-Jz; Wed, 30 May 2018 22:36:12 +0200
Received: from i577bc13f.versanet.de ([87.123.193.63] helo=[10.20.40.38]) by server-50.mailclusterdns.zih.tu-dresden.de with esmtpsa (TLSv1.2:DHE-RSA-AES128-SHA:128) (envelope-from <felix.walter@tu-dresden.de>) id 1fO7pL-00005W-2W; Wed, 30 May 2018 22:36:11 +0200
To: Marc Blanchet <marc.blanchet@viagenie.ca>
Cc: "Burleigh, Scott C" <scott.c.burleigh@jpl.nasa.gov>, dtn@ietf.org
References: <ce643b57-1765-c189-0c2d-5fbe5f573548@tu-dresden.de> <9fea9811e748475c90f53130901dc383@jpl.nasa.gov> <ceff785c-50c7-0ad2-e4cc-f58e381c2d84@tu-dresden.de> <63DC029C-30D7-4C24-993A-7A92F42D225C@viagenie.ca>
From: Felix Walter <felix.walter@tu-dresden.de>
Openpgp: preference=signencrypt
Organization: Technische Universität Dresden
Message-ID: <c53cc640-4763-39ef-932f-9aacec80c52b@tu-dresden.de>
Date: Wed, 30 May 2018 22:36:10 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0
MIME-Version: 1.0
In-Reply-To: <63DC029C-30D7-4C24-993A-7A92F42D225C@viagenie.ca>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Language: en-US
X-TUD-Original-From: felix.walter@tu-dresden.de
X-TUD-Virus-Scanned: mailout6.zih.tu-dresden.de
Archived-At: <https://mailarchive.ietf.org/arch/msg/dtn/4t6cvJf1OI-nqWgPB2kcTBzQS3c>
Subject: Re: [dtn] "Block data length" field in BPbis
X-BeenThere: dtn@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Delay Tolerant Networking \(DTN\) discussion list at the IETF." <dtn.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dtn>, <mailto:dtn-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dtn/>
List-Post: <mailto:dtn@ietf.org>
List-Help: <mailto:dtn-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dtn>, <mailto:dtn-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 30 May 2018 20:36:19 -0000

Marc,

yes, for intermediate nodes this requires parsing the complete CBOR
representation for all blocks. It also implies that a full CBOR parser
always has to be used because it is not known in advance which types
will be contained in unknown blocks.

An alternative would be to specify the "block payload" as being a single
CBOR byte string, containing the (serialized) block-specific data.
Though not as nice as having the bundle as a single large CBOR object,
from an implementation perspective, this is probably the simplest
solution. For example, the status blocks would then contain a serialized
CBOR array in the payload field.

Felix

Am 30.05.2018 um 21:37 schrieb Marc Blanchet:
> On 30 May 2018, at 15:10, Felix Walter wrote:
>
>> Scott,
>>
>> great, I think removing the field is the best solution.
>>
>
> much safer to have one single place for authority. However, does that
> require more parsing from the intermediate nodes if they need to
> somewhat parse some blocks for policy decisions for example?
>
> Marc.
>
>> Felix
>>
>> Am 30.05.2018 um 20:54 schrieb Burleigh, Scott C (312B):
>>> Felix, sorry, I am finally replying to this email: you are right
>>> that CBOR representation would provide all of the individual lengths
>>> of the block-type-specific data fields that are summed in the block
>>> data length field, and as such the block data length field is
>>> redundant.  My first impulse on re-reading your email was simply to
>>> revise the definition of "Block data length" as you suggest.  But on
>>> reflection I think it actually makes more sense to remove block data
>>> length from the specification and instead specifically require that
>>> all block-type-specific data fields appear in CBOR representation.
>>>
>>> I want to post version 11 of this specification later today, before
>>> version 10 expires, and at this point I plan to go ahead with
>>> removal of the block data length field.  If anyone has a technical
>>> argument to make in defense of retaining block data length in bpbis,
>>> please speak up this afternoon?
>>>
>>> Scott
>>>
>>> -----Original Message-----
>>> From: dtn <dtn-bounces@ietf.org> On Behalf Of Felix Walter
>>> Sent: Friday, March 23, 2018 9:22 AM
>>> To: dtn@ietf.org
>>> Subject: [dtn] "Block data length" field in BPbis
>>>
>>> Hi,
>>>
>>> We just had a short talk with Scott, Ed, and Rick about the "Block
>>> data length" [1] field of the canonical block in BPbis that I would
>>> like to forward to the list. As far as I understand it, this value
>>> is the count of (serialized) bytes still belonging to the block, but
>>> following the length field.
>>>
>>> Because CBOR is used for the block-type-specific data, the length
>>> field by itself is redundant. For example, in the payload block, it
>>> will always be followed by a "CBOR byte string" representing the
>>> payload data. (This contains a length as well.) It needs to be
>>> considered in implementations that all these length fields are
>>> variable-length themselves - however, this turned out to be no big
>>> issue. I also see the point of having the "Block data length"
>>> available to the parser, to be able to skip over the whole block
>>> data of complex extension blocks without even parsing them.
>>>
>>> Are there any further reasons for having the "Block data length"
>>> available which I have missed? Or does anyone have a strong opinion
>>> on whether this should be removed or kept?
>>>
>>> By the way, the language concerning the "Block data length" should
>>> probably be modified slightly as it refers to "[...] the aggregate
>>> length of all remaining fields of the block, i.e., the
>>> block-type-specific data fields.", though, this may (now) be
>>> followed by the CRC checksum.
>>>
>>> Felix
>>>
>>> [1] https://tools.ietf.org/html/draft-ietf-dtn-bpbis-10#section-4.2.3
>>>
>>> _______________________________________________
>>> dtn mailing list
>>> dtn@ietf.org
>>> https://www.ietf.org/mailman/listinfo/dtn
>>>
>>> _______________________________________________
>>> dtn mailing list
>>> dtn@ietf.org
>>> https://www.ietf.org/mailman/listinfo/dtn
>>
>> _______________________________________________
>> dtn mailing list
>> dtn@ietf.org
>> https://www.ietf.org/mailman/listinfo/dtn
>
> _______________________________________________
> dtn mailing list
> dtn@ietf.org
> https://www.ietf.org/mailman/listinfo/dtn