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 7, line 21 ¶ | skipping to change at page 7, line 27 ¶ | |||
+---------+--------------------------------------------+ | +---------+--------------------------------------------+ | |||
| (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. 37 change blocks. | ||||
88 lines changed or deleted | 100 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |