Re: [dtn] [EXTERNAL] draft-ietf-dtn-bibect-03 issues

"Burleigh, Scott C (US 312B)" <scott.c.burleigh@jpl.nasa.gov> Tue, 08 June 2021 19:51 UTC

Return-Path: <scott.c.burleigh@jpl.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 835B63A3BB7 for <dtn@ietfa.amsl.com>; Tue, 8 Jun 2021 12:51:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.697
X-Spam-Level:
X-Spam-Status: No, score=-2.697 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.698, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FROM_GOV_DKIM_AU=-0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, 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=jpl.nasa.gov
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 P4iEwkRn9IsB for <dtn@ietfa.amsl.com>; Tue, 8 Jun 2021 12:51:16 -0700 (PDT)
Received: from mx0e-0020b901.pphosted.com (mx0e-0020b901.pphosted.com [67.231.147.103]) (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 93DC33A3BB6 for <dtn@ietf.org>; Tue, 8 Jun 2021 12:51:16 -0700 (PDT)
Received: from pps.filterd (m0196083.ppops.net [127.0.0.1]) by mx0e-0020b901.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 158Jig8t006863; Tue, 8 Jun 2021 19:51:12 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jpl.nasa.gov; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=InSight1906; bh=aoY9ZWloK0SPqjvSNtHSCuIDlBePxT+fRtox7q5ny4o=; b=C/gf1rskrzkq5y4fBCyO5P7BHkMAULxxptFcpIRzNTvEp151MTglSKbZIB3ldYu8uGQK 6ztK0EUtdMZ3LDm3/2WSkH+bFmsjQOLfhQEg2gxSbgq11t1BHmpGPRaEbQtX7hkB55iY 9GV/qRRdiM2fAzXcQ8X8w2A5lkqZ5YjJW8DT9sURbi+IUiq8Vr/NKbNk17cFfuu6dZmT H86JJzGZoXuUIFXrH7vKKfaELAveNNDqdMMqfVvxGSJyY1d/o82C4cKNmOAxqH9HG0Y3 O0mB6c3BoLiErVKlOpjBkDtmwFGN8U4epzUcKCzMUc0aPVIRs706ikxdg0W5hONLSOQa 4A==
Received: from mail.jpl.nasa.gov (smtp.jpl.nasa.gov [128.149.137.102]) by mx0e-0020b901.pphosted.com with ESMTP id 392edgr5wx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 08 Jun 2021 19:51:11 +0000
Received: from ap-embx16-sp50.RES.AD.JPL (ap-embx16-sp50.jpl.nasa.gov [128.149.137.140]) by smtp.jpl.nasa.gov (Sentrion-MTA-4.5.4/Sentrion-MTA-4.5.4) with ESMTPS id 158JpDrh101310 (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128 bits) verified FAIL); Tue, 8 Jun 2021 19:51:13 GMT
Received: from ap-embx16-sp10.RES.AD.JPL (2002:8095:8953::8095:8953) by ap-embx16-sp50.RES.AD.JPL (2002:8095:898c::8095:898c) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2176.14; Tue, 8 Jun 2021 12:51:10 -0700
Received: from ap-embx16-sp10.RES.AD.JPL ([fe80::4:f430:47b5:767b]) by ap-embx16-sp10.RES.AD.JPL ([fe80::4:f430:47b5:767b%17]) with mapi id 15.01.2176.014; Tue, 8 Jun 2021 12:51:10 -0700
From: "Burleigh, Scott C (US 312B)" <scott.c.burleigh@jpl.nasa.gov>
To: "Felix.Flentge@esa.int" <Felix.Flentge@esa.int>
CC: "dtn@ietf.org" <dtn@ietf.org>
Thread-Topic: [EXTERNAL] [dtn] draft-ietf-dtn-bibect-03 issues
Thread-Index: AQHXTh79VyDWupmNv0ykyISSrzdx9qsEAXYggAZSOwCAAEdfoA==
Date: Tue, 08 Jun 2021 19:51:10 +0000
Message-ID: <b2bd331c725f45a49319eadd9b302947@jpl.nasa.gov>
References: <36198_1621587275_60A7754B_36198_1601_1_OF73EFFF9B.4F542D9B-ONC12586DC.001DD087-C12586DC.0030F0EA@esa.int> <f4f3e6fe71a24066bcd75b471d1e7903@jpl.nasa.gov> <OF1BAFD40D.088B02BC-ONC12586EE.00229940-C12586EE.002C9C70@esa.int>
In-Reply-To: <OF1BAFD40D.088B02BC-ONC12586EE.00229940-C12586EE.002C9C70@esa.int>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [207.151.104.72]
Content-Type: multipart/alternative; boundary="_000_b2bd331c725f45a49319eadd9b302947jplnasagov_"
MIME-Version: 1.0
X-Source-IP: ap-embx16-sp50.jpl.nasa.gov [128.149.137.140]
X-Source-Sender: scott.c.burleigh@jpl.nasa.gov
X-AUTH: Authorized
X-Proofpoint-ORIG-GUID: cVO4EOsx6Swya05OrK7HcTZxj8KuSrEV
X-Proofpoint-GUID: cVO4EOsx6Swya05OrK7HcTZxj8KuSrEV
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.761 definitions=2021-06-08_14:2021-06-04, 2021-06-08 signatures=0
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 mlxlogscore=999 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 suspectscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2106080127
Archived-At: <https://mailarchive.ietf.org/arch/msg/dtn/nOUGPtjPyKWsh57dwocgf3f01V0>
Subject: Re: [dtn] [EXTERNAL] draft-ietf-dtn-bibect-03 issues
X-BeenThere: dtn@ietf.org
X-Mailman-Version: 2.1.29
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: Tue, 08 Jun 2021 19:51:23 -0000

Hi, Felix.  I will agree that there is some infelicity in language here, but the problem is the use of "instantiated" in the sentence you quote.  A BP node is explicitly expected to be able to retain outbound protocol data units in some sort of storage medium while awaiting a transmission opportunity; these retained bundles are elements of the node's state.  A BP implementation that discarded all node state upon the termination of a single process or thread would be a fragile and generally useless implementation.

I think it would be more accurate to say that a bundle node is a data structure, instantiated within some storage medium, that is animated by the spawning of a process or group of processes, or a thread or group of threads, etc.  The temporary cessation of the node's active operation should not cause the node's state to be discarded, and the subsequent re-animation of the node is very different from re-instantiation.

It's a little bit like a Starbucks franchise.  A Starbucks might be instantiated as a store front, a kiosk, a lunch counter inside a bookstore, etc.  When you instantiate your Starbucks, you sign a lease, purchase equipment and supplies, and hire staff.  When you animate it, you invite customers and your staff begin taking and filling orders.  At night you close - de-animate - the shop: the lights are turned off and the staff go home.  The next morning the shop is re-animated, not re-instantiated.

So restarting a bundle node process might indeed be a re-instantiation of that node, resetting the CTC to zero, but such an implementation of BP might not attract many users.

Scott

From: Felix.Flentge@esa.int <Felix.Flentge@esa.int>
Sent: Tuesday, June 8, 2021 1:07 AM
To: Burleigh, Scott C (US 312B) <scott.c.burleigh@jpl.nasa.gov>
Cc: dtn@ietf.org
Subject: RE: [EXTERNAL] [dtn] draft-ietf-dtn-bibect-03 issues

Scott, two thoughts on this:

1) Actually, the term "instantiation" might not be precise enough. I have checked the BPv7 specification and found:

In the most familiar case, a bundle node is instantiated as a single
process running on a general-purpose computer, but in general the
definition is meant to be broader: a bundle node might alternatively
be a thread, an object in an object-oriented operating system, a
special-purpose hardware device, etc.

>From that I understood "instantiation" as "creation of an instance of a process/thread/object/etc".
So, restarting a bundle node process would count as 'instantiation of the local node' (a new process is created) and I would have to reset the CTC to zero.

2) If we cannot resume from the 'current value', re-starting from zero might be the best option in most cases. However, there may be some cases where we would like to initiatialise the CTC differently, eg:
- we can use DTN Time mod x in cases where we know to have low bundle rates (ie less then 1 bundle/second)
- if we receive a custody signal for a bundle which we don't have in our CTDB (because we reset to zero), we might want to set the CTC to the largest Transmission ID in the scope of the report plus some offset

Maybe we should clearly separate between the CTC as a counter and the Transmission ID. The Transmission ID shall be unique per destination node for the lifetime of the encapsulating bundle (there are cases where this cannot be guaranteed). I think we might not even have to require that it is always increased by one. It's just that the whole custody signalling would become less efficient. Also, I might jut want to maintain a single transmission ID counter if I know I will be only communication to a single destination entity for some time and then to another one. So, these entities might see 'gaps' in the Transmission IDs but that would be fine.

Felix



From:        "Burleigh, Scott C (US 312B)" <scott.c.burleigh@jpl.nasa.gov<mailto:scott.c.burleigh@jpl.nasa.gov>>
To:        "Felix.Flentge@esa.int<mailto:Felix.Flentge@esa.int>" <Felix.Flentge@esa.int<mailto:Felix.Flentge@esa.int>>, "dtn@ietf.org<mailto:dtn@ietf.org>" <dtn@ietf.org<mailto:dtn@ietf.org>>
Date:        04/06/2021 16:52
Subject:        RE: [EXTERNAL] [dtn] draft-ietf-dtn-bibect-03 issues
________________________________


Felix, thanks for these.  I'm working on the next edition of this draft and have modified it per your points 1(b) and 2.



I think the language you object to in 1(a) is pretty close to correct, though.  "Instantiation" is the construction of the node's initial state.  The state of the node might or might not reside in some genuinely non-volatile medium, such as disk storage.  If it does, then restarting the node would mean resuming operation of the node starting from its current state as retrieved from that non-volatile medium; in this case, the CTCs would be elements of node state and custodial transmission counting would correctly resume from the current value.  If not - that is, if the node is truly re-instantiated - then there is no way to retain the values of the CTCs from the moment at which the node was stopped; the counts must be initialized to zero.  Do you see an alternative?



Scott



From: dtn <dtn-bounces@ietf.org<mailto:dtn-bounces@ietf.org>> On Behalf Of Felix.Flentge@esa.int<mailto:Felix.Flentge@esa.int>
Sent: Friday, May 21, 2021 1:55 AM
To: dtn@ietf.org<mailto:dtn@ietf.org>
Subject: [EXTERNAL] [dtn] draft-ietf-dtn-bibect-03 issues



Hi,

I have spotted two issues in draft 3 of the Bundle-In-Bundle Encapsulation:

1)  Custodial Transmission Count

The CTC is defined in 3.2 as:

    1. A "custodial transmission count" (CTC).  A CTC is a
       monotonically increasing integer indicating the number of
       custodial BPDUs that have been issued to this BIBE node by the
       local node since instantiation of the local node.

a) To have the CTC as the number of BPDUs since the instantiation of the local node might be problematic in cases where the local node is re-started because the CTC is later used as 'Transmission ID' which should be unique over some time frame.

b) In the definition above, the CTC is defined per custodial node. However, later it is stated:

"The transmission ID for a BPDU for which custody transfer IS
  requested SHALL be the current value of the local node's custodial
  transmission count, plus 1."

To me, this seems to indicate a single CTC per local node.

Scott confirmed that the first interpretation is correct (one CTC per custodial node), so this text should be updated. It may still make sense to require increasing of the transmission id by 'plus 1' only as this allows more efficient custody signals.

2) Section 3.4 defines:

A  "custody transfer status report" is a bundle status report with the "reporting node attempted custody transfer" flag set to 1.

This flag and issuing this status report is described nowhere. I assume this section should be removed.

Regards,
Felix

_________________________________________
ESA - European Space Agency
Dr. Felix Flentge
Software Engineer, OPS-GSB
Ground Systems Engineering Department
Directorate of Operations
ESA - ESOC
Robert-Bosch-Str.5, D-64293 Darmstadt, Germany
Phone: +49 6151 90 4075 | Email: Felix.Flentge@esa.int<mailto:Felix.Flentge@esa.int>

This message is intended only for the recipient(s) named above. It may contain proprietary information and/or

protected content. Any unauthorised disclosure, use, retention or dissemination is prohibited. If you have received

this e-mail in error, please notify the sender immediately. ESA applies appropriate organisational measures to protect

personal data, in case of data privacy queries, please contact the ESA Data Protection Officer (dpo@esa.int<mailto:dpo@esa.int>).