| < draft-ietf-dtn-bibect-02.txt | draft-ietf-dtn-bibect-03.txt > | |||
|---|---|---|---|---|
| Delay-Tolerant Networking Working Group S. Burleigh | Delay-Tolerant Networking Working Group S. Burleigh | |||
| Internet Draft JPL, Calif. Inst. Of Technology | Internet Draft JPL, Calif. Inst. Of Technology | |||
| Intended status: Standards Track August 4, 2019 | Intended status: Standards Track February 18, 2020 | |||
| Expires: February 5, 2020 | Expires: August 21, 2020 | |||
| Bundle-in-Bundle Encapsulation | Bundle-in-Bundle Encapsulation | |||
| draft-ietf-dtn-bibect-02.txt | draft-ietf-dtn-bibect-03.txt | |||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts. | Drafts. | |||
| skipping to change at page 1, line 31 ¶ | skipping to change at page 1, line 31 ¶ | |||
| months and may be updated, replaced, or obsoleted by other documents | months and may be updated, replaced, or obsoleted by other documents | |||
| at any time. It is inappropriate to use Internet-Drafts as | at any time. It is inappropriate to use Internet-Drafts as | |||
| reference material or to cite them other than as "work in progress." | reference material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt | http://www.ietf.org/ietf/1id-abstracts.txt | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html | http://www.ietf.org/shadow.html | |||
| This Internet-Draft will expire on February 5, 2020. | This Internet-Draft will expire on August 21, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with | carefully, as they describe your rights and restrictions with | |||
| respect to this document. Code Components extracted from this | respect to this document. Code Components extracted from this | |||
| document must include Simplified BSD License text as described in | document must include Simplified BSD License text as described in | |||
| Section 4.e of the Trust Legal Provisions and are provided without | Section 4.e of the Trust Legal Provisions and are provided without | |||
| skipping to change at page 2, line 19 ¶ | skipping to change at page 2, line 19 ¶ | |||
| layer" protocol that tunnels BP "bundles" through encapsulating | layer" protocol that tunnels BP "bundles" through encapsulating | |||
| bundles. The services provided by the BIBE convergence-layer | bundles. The services provided by the BIBE convergence-layer | |||
| protocol adapter encapsulate an outbound BP "bundle" in a BIBE | protocol adapter encapsulate an outbound BP "bundle" in a BIBE | |||
| convergence-layer protocol data unit for transmission as the payload | convergence-layer protocol data unit for transmission as the payload | |||
| of a bundle. Security measures applied to the encapsulating bundle | of a bundle. Security measures applied to the encapsulating bundle | |||
| may augment those applied to the encapsulated bundle. The protocol | may augment those applied to the encapsulated bundle. The protocol | |||
| includes a mechanism for recovery from loss of an encapsulating | includes a mechanism for recovery from loss of an encapsulating | |||
| bundle, called "custody transfer". This mechanism is adapted from | bundle, called "custody transfer". This mechanism is adapted from | |||
| the custody transfer procedures described in the experimental Bundle | the custody transfer procedures described in the experimental Bundle | |||
| Protocol specification developed by the Delay-Tolerant Networking | Protocol specification developed by the Delay-Tolerant Networking | |||
| Research group of the Internet Research Task Force and documented in | Research Group of the Internet Research Task Force and documented in | |||
| RFC 5050. | RFC 5050. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction...................................................2 | 1. Introduction...................................................2 | |||
| 2. Conventions used in this document..............................4 | 2. Conventions used in this document..............................4 | |||
| 3. BIBE Design Elements...........................................4 | 3. BIBE Design Elements...........................................4 | |||
| 3.1. BIBE Endpoints............................................4 | 3.1. BIBE Endpoints............................................4 | |||
| 3.2. BIBE Protocol Data Units..................................4 | 3.2. BIBE Protocol Data Units..................................4 | |||
| 3.3. Custody Signals...........................................6 | 3.3. Custody Signals...........................................6 | |||
| 3.4. Custody Transfer Status Reports...........................7 | 3.4. Custody Transfer Status Reports...........................8 | |||
| 4. BIBE Procedures................................................8 | 4. BIBE Procedures................................................8 | |||
| 4.1. BPDU Transmission.........................................8 | 4.1. BPDU Transmission.........................................8 | |||
| 4.2. BPDU Reception............................................8 | 4.2. BPDU Reception............................................9 | |||
| 4.3. Retransmission Timer Expiration..........................10 | 4.3. Retransmission Timer Expiration..........................10 | |||
| 4.4. Custody Signal Reception.................................10 | 4.4. Custody Signal Reception.................................10 | |||
| 5. Security Considerations.......................................11 | 5. Security Considerations.......................................11 | |||
| 6. IANA Considerations...........................................11 | 6. IANA Considerations...........................................11 | |||
| 7. References....................................................11 | 7. References....................................................11 | |||
| 7.1. Normative References.....................................11 | 7.1. Normative References.....................................11 | |||
| 7.2. Informative References...................................11 | 7.2. Informative References...................................12 | |||
| 8. Acknowledgments...............................................11 | 8. Acknowledgments...............................................12 | |||
| Appendix A. For More Information.................................13 | Appendix A. For More Information.................................13 | |||
| Appendix B. CDDL expression......................................14 | Appendix B. CDDL expression......................................14 | |||
| 1. Introduction | 1. Introduction | |||
| This document describes Bundle-in-Bundle Encapsulation (BIBE), a | This document describes Bundle-in-Bundle Encapsulation (BIBE), a | |||
| Delay-Tolerant Networking (DTN) Bundle Protocol (BP) [BP] | Delay-Tolerant Networking (DTN) Bundle Protocol (BP) [BP] | |||
| "convergence layer" protocol that tunnels BP "bundles" through | "convergence layer" protocol that tunnels BP "bundles" through | |||
| encapsulating bundles. | encapsulating bundles. | |||
| Conformance to the bundle-in-bundle encapsulation (BIBE) | Conformance to the bundle-in-bundle encapsulation (BIBE) | |||
| specification is OPTIONAL for BP nodes. Each BP node that conforms | specification is OPTIONAL for BP nodes. Each BP node that conforms | |||
| to the BIBE specification provides a BIBE convergence-layer adapter | to the BIBE specification provides a BIBE convergence-layer adapter | |||
| (CLA) that is implemented within the administrative element of the | (CLA) that is implemented by the administrative element of the BP | |||
| BP node's application agent. Like any convergence-layer adapter, | node's application agent. Like any convergence-layer adapter, the | |||
| the BIBE CLA provides: | BIBE CLA provides: | |||
| . A transmission service that sends an outbound bundle (from the | . A transmission service that sends an outbound bundle (from the | |||
| bundle protocol agent) to a peer CLA. In the case of BIBE, the | bundle protocol agent) to a peer CLA. In the case of BIBE, the | |||
| sending CLA and receiving peer CLA are both BP nodes. | sending CLA and receiving peer CLA are both BP nodes. | |||
| . A reception service that delivers to the bundle protocol agent | . A reception service that delivers to the bundle protocol agent | |||
| an inbound bundle that was sent by a peer CLA (itself a BP | an inbound bundle that was sent by a peer CLA (itself a BP | |||
| node) via the BIBE convergence layer protocol. | node) via the BIBE convergence layer protocol. | |||
| The BIBE CLA performs these services by: | The BIBE CLA performs these services by: | |||
| skipping to change at page 4, line 16 ¶ | skipping to change at page 4, line 16 ¶ | |||
| . Moreover, in the event that no single point of egress from an | . Moreover, in the event that no single point of egress from an | |||
| insecure region of network topology can be determined at the | insecure region of network topology can be determined at the | |||
| moment a bundle is to be encapsulated, multiple copies of the | moment a bundle is to be encapsulated, multiple copies of the | |||
| bundle may be encapsulated individually and forwarded to all | bundle may be encapsulated individually and forwarded to all | |||
| candidate points of egress. | candidate points of egress. | |||
| The protocol includes a mechanism for recovery from loss of an | The protocol includes a mechanism for recovery from loss of an | |||
| encapsulating bundle, called "custody transfer". This mechanism is | encapsulating bundle, called "custody transfer". This mechanism is | |||
| adapted from the custody transfer procedures described in the | adapted from the custody transfer procedures described in the | |||
| experimental Bundle Protocol specification developed by the Delay- | experimental Bundle Protocol specification developed by the Delay- | |||
| Tolerant Networking Research group of the Internet Research Task | Tolerant Networking Research Group of the Internet Research Task | |||
| Force and documented in RFC 5050 [RFC5050]. Custody transfer is a | Force and documented in RFC 5050 [RFC5050]. Custody transfer is a | |||
| convention by which the loss or corruption of BIBE encapsulating | convention by which the loss or corruption of BIBE encapsulating | |||
| bundles can be mitigated by the exchange of other bundles, which are | bundles can be mitigated by the exchange of other bundles, which are | |||
| termed "custody signals". | termed "custody signals". | |||
| 2. Conventions used in this document | 2. Conventions used in this document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC-2119 [RFC2119]. | document are to be interpreted as described in RFC-2119 [RFC2119]. | |||
| In this document, these words will appear with that interpretation | In this document, these words will appear with that interpretation | |||
| only when in ALL CAPS. Lower case uses of these words are not to be | only when in ALL CAPS. Lower case uses of these words are not to be | |||
| interpreted as carrying RFC-2119 significance. | interpreted as carrying RFC-2119 significance. | |||
| 3. BIBE Design Elements | 3. BIBE Design Elements | |||
| 3.1. BIBE Endpoints | 3.1. BIBE Endpoints | |||
| BIBE convergence-layer protocol endpoints, also known as BIBE | BIBE convergence-layer protocol endpoints, also known as BIBE | |||
| convergence-layer adapters (BCLAs), are the Administrative Elements | convergence-layer adapters (BCLAs), are implemented by the | |||
| of Bundle Protocol nodes that conform to the BIBE protocol | administrative elements of the application agents of BP nodes that | |||
| specification. The node of which a given BCLA is one component is | conform to the BIBE protocol specification. The node of which a | |||
| termed the BCLA's "local node". | given BCLA is one component is termed the BCLA's "local node". A BP | |||
| node that includes a BCLA is termed a "BIBE node". | ||||
| 3.2. BIBE Protocol Data Units | 3.2. BIBE Protocol Data Units | |||
| A BIBE Protocol Data Unit (BPDU) for which custody transfer is | ||||
| requested is termed a "custodial BPDU". | ||||
| Notionally, a BCLA is assumed to implement in some way, for each | Notionally, a BCLA is assumed to implement in some way, for each | |||
| custodial node to which the local node issues BIBE Protocol Data | BIBE node to which the local node issues custodial BPDUs, the | |||
| Units (BPDUs), the following two data resources: | following two data resources: | |||
| 1. A "custodial transmission count" (CTC). A CTC is a | 1. A "custodial transmission count" (CTC). A CTC is a | |||
| monotonically increasing integer indicating the number of | monotonically increasing integer indicating the number of | |||
| "custodial" BPDUs - that is, BPDUs for which custody transfer | custodial BPDUs that have been issued to this BIBE node by the | |||
| was requested - that have been issued to the custodial node by | local node since instantiation of the local node. | |||
| the local node since instantiation of the local node. | ||||
| 2. A "custodial transmission database" (CTDB), a notional array of | 2. A "custodial transmission database" (CTDB), a notional array of | |||
| "custodial transmission items" (CTIs). The CTDB contains one | "custodial transmission items" (CTIs). The CTDB contains one | |||
| CTI for each custodial BPDU issued to the custodial node, by | CTI for each custodial BPDU issued to this BIBE node, by the | |||
| the local node, for which (a) no custody disposition has yet | local node, for which (a) no custody disposition has yet been | |||
| been received in any custody signal (as discussed later) and | received in any custody signal (as discussed later) and (b) the | |||
| (b) the bundle encapsulated in that BPDU has not yet been | bundle encapsulated in that BPDU has not yet been destroyed due | |||
| destroyed due to, e.g., time-to-live expiration. Each CTI | to, e.g., time-to-live expiration. Each CTI notionally | |||
| notionally contains: | contains: | |||
| a. A reference to the bundle encapsulated in the | a. A reference to the bundle encapsulated in the | |||
| corresponding BPDU. | corresponding BPDU. | |||
| b. The "transmission ID" of the corresponding BPDU, as | b. The "transmission ID" of the corresponding BPDU, as | |||
| discussed below. | discussed below. | |||
| c. A "retransmission time" indicating the time by which | c. A "retransmission time" indicating the time by which | |||
| custody disposition for the corresponding BDPU is | custody disposition for the corresponding BDPU is | |||
| expected. | expected. | |||
| A BIBE protocol data unit is a Bundle Protocol administrative record | A BIBE protocol data unit is a Bundle Protocol administrative record | |||
| whose record type code is 3 (i.e., bit pattern 0011), constructed as | whose record type code is 3 (i.e., bit pattern 0011) and whose | |||
| follows. | representation conforms to the Bundle Protocol specification for | |||
| administrative record representation. The content of the record | ||||
| SHALL be a BPDU message represented as follows. | ||||
| Each BPDU SHALL be represented as a CBOR array. The number of | Each BPDU message SHALL be represented as a CBOR array. The number | |||
| elements in the array SHALL be 3. | of elements in the array SHALL be 3. | |||
| The first item of the BPDU array SHALL be the "transmission ID" for | The first item of the BPDU array SHALL be the "transmission ID" for | |||
| the BPDU, represented as a CBOR unsigned integer. The transmission | the BPDU, represented as a CBOR unsigned integer. The transmission | |||
| ID for a BPDU for which custody transfer is NOT requested SHALL be | ID for a BPDU for which custody transfer is NOT requested SHALL be | |||
| zero. The transmission ID for a BPDU for which custody transfer IS | zero. The transmission ID for a BPDU for which custody transfer IS | |||
| requested SHALL be the current value of the local node's custodial | requested SHALL be the current value of the local node's custodial | |||
| transmission count, plus 1. | transmission count, plus 1. | |||
| The second item of the BPDU array SHALL be the BPDU's retransmission | The second item of the BPDU array SHALL be the BPDU's retransmission | |||
| time (i.e., the time by which custody disposition for this BPDU is | time (i.e., the time by which custody disposition for this BPDU is | |||
| skipping to change at page 6, line 8 ¶ | skipping to change at page 6, line 12 ¶ | |||
| scope of this specification and may be dynamically responsive to | scope of this specification and may be dynamically responsive to | |||
| changes in connectivity. | changes in connectivity. | |||
| The third item of the BPDU array SHALL be a single BP bundle, termed | The third item of the BPDU array SHALL be a single BP bundle, termed | |||
| the "encapsulated bundle", represented as a CBOR byte string of | the "encapsulated bundle", represented as a CBOR byte string of | |||
| definite length. | definite length. | |||
| 3.3. Custody Signals | 3.3. Custody Signals | |||
| A "custody signal" is a Bundle Protocol administrative record whose | A "custody signal" is a Bundle Protocol administrative record whose | |||
| record type code is 4 (i.e., bit pattern 0100) and whose content is | record type code is 4 (i.e., bit pattern 0100) and whose | |||
| constructed as follows. | representation conforms to the Bundle Protocol specification for | |||
| administrative record representation. The content of the record | ||||
| shall be a Custody message represented as follows. | ||||
| The content of each custody signal SHALL be represented as a CBOR | Each custody message SHALL be represented as a CBOR array. The | |||
| array. The number of elements in the array SHALL be 2. | number of elements in the array SHALL be 2. | |||
| The first item of the custody signal content array SHALL be a | The first item of the custody signal content array SHALL be a | |||
| disposition code represented as a CBOR unsigned integer. Valid | disposition code represented as a CBOR unsigned integer. Valid | |||
| disposition codes are defined as follows: | disposition codes are defined as follows: | |||
| +---------+--------------------------------------------+ | +---------+--------------------------------------------+ | |||
| | Value | Meaning | | | Value | Meaning | | |||
| +=========+============================================+ | +=========+============================================+ | |||
| skipping to change at page 6, line 45 ¶ | skipping to change at page 7, line 4 ¶ | |||
| | 3 | Redundant (reception by a node that | | | 3 | Redundant (reception by a node that | | |||
| | | already has a copy of this bundle). | | | | already has a copy of this bundle). | | |||
| +---------+--------------------------------------------+ | +---------+--------------------------------------------+ | |||
| | 4 | Depleted storage. | | | 4 | Depleted storage. | | |||
| +---------+--------------------------------------------+ | +---------+--------------------------------------------+ | |||
| | 5 | Destination endpoint ID unintelligible. | | | 5 | Destination endpoint ID unintelligible. | | |||
| +---------+--------------------------------------------+ | +---------+--------------------------------------------+ | |||
| | 6 | No known route destination from here. | | | 6 | No known route destination from here. | | |||
| +---------+--------------------------------------------+ | +---------+--------------------------------------------+ | |||
| | 7 | No timely contact with next node on route. | | | 7 | No timely contact with next node on route. | | |||
| +---------+--------------------------------------------+ | +---------+--------------------------------------------+ | |||
| | 8 | Block unintelligible. | | | 8 | Block unintelligible. | | |||
| +---------+--------------------------------------------+ | +---------+--------------------------------------------+ | |||
| | (other) | Reserved for future use. | | | (other) | Reserved for future use. | | |||
| +---------+--------------------------------------------+ | +---------+--------------------------------------------+ | |||
| Figure 1: Disposition Codes | Figure 1: Disposition Codes | |||
| The second item of the custody signal content array SHALL be a | The second item of the custody signal content array SHALL be a | |||
| "disposition scope report", represented as a CBOR indefinite-length | "disposition scope report", represented as a CBOR array of definite | |||
| array. Each item of the disposition scope report array SHALL be a | length. Each item of the disposition scope report array SHALL be a | |||
| "disposition scope sequence", represented as a CBOR array of two | "disposition scope sequence", represented as a CBOR array of two | |||
| elements. The first element of each disposition scope sequence | elements. The first element of each disposition scope sequence | |||
| array SHALL be the first transmission ID in a sequence of 1 or more | array SHALL be the first transmission ID in a sequence of 1 or more | |||
| consecutive transmission IDs corresponding to BPDUs to which the | consecutive transmission IDs corresponding to BPDUs to which the | |||
| custody signal's disposition is declared to apply; the second | custody signal's disposition is declared to apply; the second | |||
| element of each disposition scope sequence array SHALL be the number | element of each disposition scope sequence array SHALL be the number | |||
| of transmission IDs in that sequence. Both are represented as CBOR | of transmission IDs in that sequence. Both are represented as CBOR | |||
| unsigned integers. | unsigned integers. | |||
| A custody signal constitutes an assertion by the source of that | A custody signal constitutes an assertion by the source of that | |||
| administrative bundle that the indicated disposition code applies to | administrative record that the indicated disposition code applies to | |||
| all BPDUs identified by the transmission IDs enumerated in the | all BPDUs identified by the transmission IDs enumerated in the | |||
| custody signal's disposition scope report. If the disposition code | custody signal's disposition scope report. If the disposition code | |||
| is zero, then the source of the custody signal has accepted custody | is zero, then the source of the custody signal has accepted custody | |||
| of all bundles that were encapsulated in the indicated BPDUs. | of all bundles that were encapsulated in the indicated BPDUs. | |||
| Otherwise the source of the custody signal has refused custody of | Otherwise the source of the custody signal has refused custody of | |||
| all bundles that were encapsulated in the indicated BPDUs, for the | all bundles that were encapsulated in the indicated BPDUs, for the | |||
| indicated reason. | indicated reason. | |||
| 3.4. Custody Transfer Status Reports | 3.4. Custody Transfer Status Reports | |||
| A "custody transfer status report" is a bundle status report with | A "custody transfer status report" is a bundle status report with | |||
| the "reporting node attempted custody transfer" flag set to 1. | the "reporting node attempted custody transfer" flag set to 1. | |||
| 4. BIBE Procedures | 4. BIBE Procedures | |||
| 4.1. BPDU Transmission | 4.1. BPDU Transmission | |||
| When a BCLA is requested by the bundle protocol agent to send a | When a BCLA is requested by the bundle protocol agent to send a | |||
| bundle to the peer BCLA(s) included in the BP endpoint identified by | bundle to the peer BCLA(s) included in the destination BP endpoint | |||
| a specified BP endpoint ID: | identified by a specified BP endpoint ID: | |||
| . The BCLA SHALL generate, as defined in Section 6.2 of the | . The BCLA SHALL generate, as defined in Section 6.2 of the | |||
| Bundle Protocol specification (a work in progress), a BPDU for | Bundle Protocol specification, a BPDU for which the third | |||
| which the third element of the content array is the bundle that | element of the content array is the bundle that is to be | |||
| is to be transmitted. The destination of the bundle whose | transmitted. The destination of the bundle whose payload is the | |||
| payload is the BPDU (termed the "encapsulating bundle") SHALL | BPDU (termed the "encapsulating bundle") SHALL be the specified | |||
| be the specified BP endpoint. Selection of the values of the | destination BP endpoint. Selection of the values of the | |||
| parameters governing the forwarding of the encapsulating | parameters governing the forwarding of the encapsulating | |||
| bundle, other than the destination endpoint ID, is an | bundle, other than the destination endpoint ID, is an | |||
| implementation matter. The parameter values governing the | implementation matter. The parameter values governing the | |||
| forwarding of the BPDU's encapsulated bundle MAY be consulted | forwarding of the BPDU's encapsulated bundle MAY be consulted | |||
| for this purpose. | for this purpose. | |||
| . Note that any transmission request presented to a BCLA MAY | . Note that any transmission request presented to a BCLA MAY | |||
| request that the transmission be subject to Custody Transfer, | request that the transmission be subject to Custody Transfer, | |||
| provided that the destination EID of the request identifies a | provided that the destination EID of the request identifies a | |||
| singleton endpoint. | singleton endpoint. | |||
| . If Custody Transfer is requested: | . If Custody Transfer is requested: | |||
| o The first element of the BPDU's content array MUST be the | o The first element of the BPDU's content array MUST be the | |||
| BPDU's transmission ID, which SHALL be 1 more than the | BPDU's transmission ID, which SHALL be 1 more than the | |||
| current value of the BCLA's CTC for the node that is the | current value of the BCLA's CTC for the node that is the | |||
| sole occupant of the BPDU's destination endpoint. | sole occupant of the BPDU's destination endpoint. | |||
| o The second element of the BPDU's content array MUST be the | o The second element of the BPDU's content array MUST be the | |||
| BPDU's retransmission time as discussed in 3.2 above. | BPDU's retransmission time as discussed in 3.2 above. | |||
| o The bundle protocol agent MUST add the retention constraint | o The bundle protocol agent MUST add the retention constraint | |||
| "Custody accepted" to the encapsulated bundle. | "Custody accepted" to the encapsulated bundle. | |||
| o The BCLA MAY establish a retransmission timer for the | o The BCLA MAY establish a retransmission timer for the | |||
| encapsulated bundle. If a retransmission timer is | corresponding CTI. If a retransmission timer is | |||
| established, it MUST be set to expire at the BPDU's | established, it MUST be set to expire at the | |||
| retransmission time. | retransmission time indicated in the BPDU. | |||
| . Otherwise, the first two elements of the BPDU's content array | . Otherwise: | |||
| MUST both be zero. | o The first two elements of the BPDU's content array MUST | |||
| both be zero. | ||||
| o Upon completion of step 2 of Section 6.2 of the Bundle | ||||
| Protocol specification (i.e., a request for transmission | ||||
| of the encapsulating bundle has been presented to the | ||||
| bundle protocol agent), the BCLA SHOULD notify the bundle | ||||
| protocol agent that transmission of the encapsulated | ||||
| bundle succeeded. | ||||
| Note that the custody transfer retransmission timer mechanism | Note that the custody transfer retransmission timer mechanism | |||
| provides a means of recovering from loss of an encapsulating bundle | provides a means of recovering from loss of an encapsulating bundle | |||
| as indicated by non-arrival of a responding custody signal. | as indicated by non-arrival of a responding custody signal. | |||
| 4.2. BPDU Reception | 4.2. BPDU Reception | |||
| When a BCLA receives a BPDU from the bundle protocol agent (that is, | When a BCLA receives a BPDU from the bundle protocol agent (that is, | |||
| upon delivery of the payload of an encapsulating bundle): | upon delivery of the payload of an encapsulating bundle): | |||
| skipping to change at page 9, line 27 ¶ | skipping to change at page 9, line 39 ¶ | |||
| reception". | reception". | |||
| o Otherwise, if the BCLA determines that its local node can | o Otherwise, if the BCLA determines that its local node can | |||
| neither deliver nor forward the encapsulated bundle for | neither deliver nor forward the encapsulated bundle for | |||
| any of the reasons listed in Figure 1, then custody | any of the reasons listed in Figure 1, then custody | |||
| transfer has failed. Custody transfer failure SHALL be | transfer has failed. Custody transfer failure SHALL be | |||
| handled as follows: | handled as follows: | |||
| . The BCLA SHALL add the BPDU's transmission ID to the | . The BCLA SHALL add the BPDU's transmission ID to the | |||
| disposition scope report of a pending outbound | disposition scope report of a pending outbound | |||
| custody signal, destined for the node that was the | custody signal, destined for the node that was the | |||
| source of the encapsulating bundle, whose disposition | source of the encapsulating bundle, whose disposition | |||
| is the reason code from Figure 2 that indicates the | is the reason code from Figure 1 that indicates the | |||
| reason for the custody transfer failure. | reason for the custody transfer failure. | |||
| o Otherwise, custody transfer has succeeded: | o Otherwise, custody transfer has succeeded: | |||
| . The BCLA SHALL add the BPDU's transmission ID to the | . The BCLA SHALL add the BPDU's transmission ID to the | |||
| disposition scope report of a pending outbound | disposition scope report of a pending outbound | |||
| custody signal, destined for the node that was the | custody signal, destined for the node that was the | |||
| source of the encapsulating bundle, whose disposition | source of the encapsulating bundle, whose disposition | |||
| is zero (indicating that custody was accepted). | is zero (indicating that custody was accepted). | |||
| o In each of these three cases: | o In each of these three cases: | |||
| . The pending outbound custody signal MAY then be | . The pending outbound custody signal MAY then be | |||
| issued immediately, but alternatively it MAY be | issued immediately, but alternatively it MAY be | |||
| issued at some time in the future, possibly enabling | issued at some time in the future, possibly enabling | |||
| additional BPDUs' transmission IDs to be added to the | additional BPDUs' transmission IDs to be added to the | |||
| same disposition scope report. | same disposition scope report. | |||
| . If the "request reporting of custody transfer | ||||
| attempted" flag in the encapsulating bundle's status | ||||
| report request field is set to 1, and status | ||||
| reporting is enabled, a custody transfer status | ||||
| report whose reason code is the same as the pending | ||||
| outbound custody signal's disposition SHOULD be | ||||
| generated, destined for the report-to endpoint of the | ||||
| encapsulating bundle. | ||||
| . If Custody Transfer was NOT requested for this BPDU, or if | . If Custody Transfer was NOT requested for this BPDU, or if | |||
| Custody Transfer was requested for this BPDU and custody | Custody Transfer was requested for this BPDU and custody | |||
| transfer succeeded, then the encapsulated bundle SHALL be | transfer succeeded, then the encapsulated bundle SHALL be | |||
| delivered from the convergence layer adapter to the bundle | delivered from the BCLA to the bundle protocol agent, whereupon | |||
| protocol agent, whereupon bundle reception SHALL be performed | reception of the encapsulated bundle SHALL be performed as | |||
| as defined in section 5.6 of the Bundle Protocol specification | defined in section 5.6 of the Bundle Protocol specification in | |||
| (a work in progress) as usual: the encapsulated bundle may be | the usual manner: the encapsulated bundle may be forwarded, | |||
| forwarded, delivered, etc. | delivered, etc. | |||
| Note that the manner in which pending outbound custody signals are | Note that the procedures by which pending outbound custody signals | |||
| managed, disposition scope reports are aggregated, and custody | are managed, disposition scope reports are aggregated, and custody | |||
| signal transmission is initiated is an implementation matter that | signal transmission is initiated are implementation matters that | |||
| is beyond the scope of this specification. Note, however, that | are beyond the scope of this specification. Note, however, that | |||
| failure to deliver a custody signal prior to the earliest value of | failure to deliver a custody signal prior to the earliest value of | |||
| retransmission time among all BPDUs enumerated in the custody | retransmission time among all BPDUs enumerated in the custody | |||
| signal's disposition scope report may result in unnecessary | signal's disposition scope report may result in the unnecessary | |||
| retransmission of one or more BPDUs. | re-forwarding of one or more encapsulated bundles. | |||
| 4.3. Retransmission Timer Expiration | 4.3. Retransmission Timer Expiration | |||
| Upon expiration of a retransmission timer, the BCLA SHOULD remove | Upon expiration of a retransmission timer, the BCLA SHOULD remove | |||
| the corresponding CTI from the CTDB (destroying the associated | the corresponding CTI from the CTDB (destroying the associated | |||
| retransmission timer, if any) and notify the bundle protocol agent | retransmission timer, if any) and notify the bundle protocol agent | |||
| that custodial transmission of the indicated bundle failed. This | that transmission failed for the encapsulated bundle referenced by | |||
| notification may cause the indicated bundle to be re-forwarded | that CTI. Note that this notification may cause the encapsulated | |||
| (possibly on a different route). | bundle to be re-forwarded (possibly on a different route). | |||
| 4.4. Custody Signal Reception | 4.4. Custody Signal Reception | |||
| When a BCLA receives a custody signal from the bundle protocol agent | When a BCLA receives a custody signal from the bundle protocol agent | |||
| (that is, upon delivery of the payload of a custody-signal-bearing | (that is, upon delivery of the payload of a custody-signal-bearing | |||
| bundle): | bundle): | |||
| . If the custody signal's disposition is 0 (custody acceptance), | . If the custody signal's disposition is 0 (custody acceptance), | |||
| then for each transmission ID in the custody signal's | then for each transmission ID in the custody signal's | |||
| disposition scope report: | disposition scope report: | |||
| o The bundle protocol agent MUST remove the retention | o The bundle protocol agent MUST remove the retention | |||
| constraint "Custody accepted" on the bundle referenced by | constraint "Custody accepted" on the encapsulated bundle | |||
| the corresponding CTI. | referenced by the corresponding CTI. | |||
| o The corresponding CTI MUST be removed from the CTDB | o The corresponding CTI MUST be removed from the CTDB | |||
| (destroying the associated retransmission timer, if any). | (destroying the associated retransmission timer, if any). | |||
| o The BCLA SHOULD notify the bundle protocol agent that | ||||
| transmission succeeded for the encapsulated bundle | ||||
| referenced by the corresponding CTI. | ||||
| . Otherwise (custody refusal), for each transmission ID in the | . Otherwise (custody refusal), for each transmission ID in the | |||
| custody signal's disposition scope report: | custody signal's disposition scope report: | |||
| o The corresponding CTI MUST be removed from the CTDB | o The corresponding CTI MUST be removed from the CTDB | |||
| (destroying the associated retransmission timer, if any). | (destroying the associated retransmission timer, if any). | |||
| o Any further action taken by the BCLA is implementation- | o Any further action taken by the BCLA is implementation- | |||
| specific and may depend on the reason code cited for the | specific and may depend on the reason code cited for the | |||
| refusal. For example, if the custody signal's reason code | refusal. For example, if the custody signal's reason code | |||
| was "Depleted storage", the BCLA might choose to notify | was "Depleted storage", the BCLA might choose to notify | |||
| the bundle protocol agent that custodial transmission of | the bundle protocol agent that transmission failed for the | |||
| the indicated bundle failed. If the reason code was | encapsulated bundle referenced by the corresponding CTI. | |||
| "Redundant reception", on the other hand, this might cause | If the reason code was "Redundant reception", on the other | |||
| the BCLA simply to instruct the bundle protocol agent to | hand, the BCLA might simply instruct the bundle protocol | |||
| remove the retention constraint "Custody accepted" on the | agent to remove the retention constraint "Custody | |||
| bundle referenced by the corresponding CTI and to revise | accepted" on the encapsulated bundle referenced by the | |||
| its algorithm for computing retransmission time. | corresponding CTI and to revise its algorithm for | |||
| computing retransmission time. | ||||
| 5. Security Considerations | 5. Security Considerations | |||
| An adversary on a DTN-based network that can delete bundles could | An adversary on a DTN-based network that can delete bundles could | |||
| delete a BIBE custody signal in transit. This could result in | delete a BIBE custody signal in transit. This could result in | |||
| unnecessary custodial retransmission, degrading network performance. | custody transfer failure and the possible re-forwarding of | |||
| encapsulated bundles, degrading network performance. | ||||
| Alternatively, an adversary on a DTN-based network that can reorder | Alternatively, an adversary on a DTN-based network that can reorder | |||
| bundles could cause bundles to be delivered to a BCLA in an order | bundles could cause bundles to be delivered to a BCLA in an order | |||
| that complicates the efficient construction of disposition scope | that complicates the efficient construction of disposition scope | |||
| reports in pending outbound custody signals. This could result in | reports in pending outbound custody signals. This could result in | |||
| inefficient custody transfer communications, again degrading network | inefficient custody transfer communications, again degrading network | |||
| performance. | performance. | |||
| Custody transfer in BIBE may be contraindicated in environments | Custody transfer in BIBE may be contraindicated in environments | |||
| characterized by such attacks. | characterized by such attacks. | |||
| skipping to change at page 11, line 37 ¶ | skipping to change at page 11, line 49 ¶ | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| The BIBE specification requires IANA registration of the new BIBE | The BIBE specification requires IANA registration of the new BIBE | |||
| administrative records (type codes 3 and 4) defined above. | administrative records (type codes 3 and 4) defined above. | |||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [BP] Burleigh, S., Fall, K., and E. Birrane, "Bundle Protocol | [BP] Burleigh, S., Fall, K., and E. Birrane, "Bundle Protocol | |||
| Version 7", Work In Progress, August 2019. | Version 7", draft-ietf-dtn-bpbis, February 2020. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| 7.2. Informative References | 7.2. Informative References | |||
| [RFC5050] Scott, K. and S. Burleigh, "Bundle Protocol | [RFC5050] Scott, K. and S. Burleigh, "Bundle Protocol | |||
| Specification", RFC 5050, November 2007. | Specification", RFC 5050, November 2007. | |||
| 8. Acknowledgments | 8. Acknowledgments | |||
| skipping to change at page 13, line 10 ¶ | skipping to change at page 13, line 10 ¶ | |||
| (draft-irtf-dtnrg-bundle-encapsulation-06, 2009), the influence of | (draft-irtf-dtnrg-bundle-encapsulation-06, 2009), the influence of | |||
| that earlier document is gratefully acknowledged. | that earlier document is gratefully acknowledged. | |||
| This document was prepared using 2-Word-v2.0.template.dot. | This document was prepared using 2-Word-v2.0.template.dot. | |||
| Appendix A. For More Information | Appendix A. For More Information | |||
| Please refer comments to dtn@ietf.org. The Delay Tolerant Networking | Please refer comments to dtn@ietf.org. The Delay Tolerant Networking | |||
| Research Group (DTNRG) Web site is located at http://www.dtnrg.org. | Research Group (DTNRG) Web site is located at http://www.dtnrg.org. | |||
| Copyright (c) 2019 IETF Trust and the persons identified as authors | Copyright (c) 2020 IETF Trust and the persons identified as authors | |||
| of the code. All rights reserved. | of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or without | Redistribution and use in source and binary forms, with or without | |||
| modification, is permitted pursuant to, and subject to the license | modification, is permitted pursuant to, and subject to the license | |||
| terms contained in, the Simplified BSD License set forth in Section | terms contained in, the Simplified BSD License set forth in Section | |||
| 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents | 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| Appendix B. CDDL expression | Appendix B. CDDL expression | |||
| End of changes. 39 change blocks. | ||||
| 89 lines changed or deleted | 101 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||