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

"Clark, Gilbert J. (GRC-LCA0)" <gilbert.j.clark@nasa.gov> Wed, 30 May 2018 22:18 UTC

Return-Path: <gilbert.j.clark@nasa.gov>
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 2BF2212D7F1 for <dtn@ietfa.amsl.com>; Wed, 30 May 2018 15:18:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-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 vOC1g5v8MkVB for <dtn@ietfa.amsl.com>; Wed, 30 May 2018 15:18:32 -0700 (PDT)
Received: from ndjsvnpf101.ndc.nasa.gov (NDJSVNPF101.ndc.nasa.gov [198.117.1.151]) (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 CEE05126E64 for <dtn@ietf.org>; Wed, 30 May 2018 15:18:32 -0700 (PDT)
X-Comment: SPF check N/A for local connections - client-ip=198.117.1.144; helo=ndjsppt202.ndc.nasa.gov; envelope-from=gilbert.j.clark@nasa.gov; receiver=dtn@ietf.org
DKIM-Filter: OpenDKIM Filter v2.11.0 ndjsvnpf101.ndc.nasa.gov AEFDE4048A1C
Received: from ndjsppt202.ndc.nasa.gov (NDJSPPT202.ndc.nasa.gov [198.117.1.144]) by ndjsvnpf101.ndc.nasa.gov (Postfix) with ESMTP id AEFDE4048A1C; Wed, 30 May 2018 17:18:31 -0500 (CDT)
Received: from pps.filterd (ndjsppt202.ndc.nasa.gov [127.0.0.1]) by ndjsppt202.ndc.nasa.gov (8.16.0.22/8.16.0.22) with SMTP id w4UMFURp194236; Wed, 30 May 2018 17:18:31 -0500
Received: from ndjscht105.ndc.nasa.gov (ndjscht105-sc.ndc.nasa.gov [198.117.1.175]) by ndjsppt202.ndc.nasa.gov with ESMTP id 2ja3d80d33-2; Wed, 30 May 2018 17:18:31 -0500
Received: from NDJSMBX201.ndc.nasa.gov ([169.254.4.233]) by NDJSCHT105.ndc.nasa.gov ([198.117.1.175]) with mapi id 14.03.0382.000; Wed, 30 May 2018 17:18:30 -0500
From: "Clark, Gilbert J. (GRC-LCA0)" <gilbert.j.clark@nasa.gov>
To: Felix Walter <felix.walter@tu-dresden.de>, Marc Blanchet <marc.blanchet@viagenie.ca>
CC: "Burleigh, Scott C (JPL-312B)[Jet Propulsion Laboratory]" <scott.c.burleigh@jpl.nasa.gov>, "dtn@ietf.org" <dtn@ietf.org>
Thread-Topic: [dtn] "Block data length" field in BPbis
Thread-Index: AQHTwsMn5fMaAOLF7UGpMBJCGdY+KqRJXYcAgAAEgICAAAd2gIAAEH0A///Zi4A=
Date: Wed, 30 May 2018 22:18:30 +0000
Message-ID: <4B24FE9E-3A90-4069-BFAD-984D2BB48CA2@nasa.gov>
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> <c53cc640-4763-39ef-932f-9aacec80c52b@tu-dresden.de>
In-Reply-To: <c53cc640-4763-39ef-932f-9aacec80c52b@tu-dresden.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [139.88.243.47]
Content-Type: text/plain; charset="utf-8"
Content-ID: <5D5CA7D4F229C0428F9756631379258A@mail.nasa.gov>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-05-30_10:, , signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dtn/HbYWt72EfKfzbS-2urWn163rHhs>
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 22:18:35 -0000

What about e.g. an index field in the primary block that includes an array of both the offset and type of each canonical block included within that particular bundle?

The ability to index directly to specific canonical blocks without needing to walk the bundle to find them at all would be nice.  It would also be useful to reduce the variance in processing time where e.g. a policy does need to be applied to a canonical block that comes later in a bundle.

-Gilbert

The views expressed in this mail reflect the opinions of the author.  They are, therefore, not intended to reflect official positions of NASA or the U.S. Government.
 
On 5/30/18, 4:36 PM, "dtn on behalf of Felix Walter" <dtn-bounces@ietf.org on behalf of felix.walter@tu-dresden.de> wrote:

    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
    
    
    _______________________________________________
    dtn mailing list
    dtn@ietf.org
    https://www.ietf.org/mailman/listinfo/dtn