DTN IANA registries: Delay-Tolerant Networking Bundle Protocol IANA Registries
How the Delay-Tolerant Networking research group handed its Bundle Protocol number lists to IANA.
Blanchet, M., "Delay-Tolerant Networking Bundle Protocol IANA Registries", RFC 6255, DOI 10.17487/RFC6255, May 2011, <https://www.rfc-editor.org/info/rfc6255>.
@misc{rfc6255,
series = {Request for Comments},
number = 6255,
howpublished = {RFC 6255},
publisher = {RFC Editor},
doi = {10.17487/RFC6255},
url = {https://www.rfc-editor.org/info/rfc6255},
author = {M. Blanchet},
title = {{Delay-Tolerant Networking Bundle Protocol IANA Registries}},
pagetotal = 9,
year = 2011,
month = may,
} RFC text
Contents
Internet Research Task Force (IRTF) M. Blanchet
Request for Comments: 6255 Viagenie
Category: Informational May 2011
ISSN: 2070-1721
Delay-Tolerant Networking Bundle Protocol IANA Registries
Abstract
The Delay-Tolerant Networking (DTN) Research Group research group has
defined many protocols such as the Bundle Protocol and Licklider
Transmission Protocol. The specifications of these protocols contain
fields that are subject to a registry. For the purpose of its
research work, the group created ad hoc registries. As the
specifications are stable and have multiple interoperable
implementations, the group would like to hand off the registries to
IANA for official custody. This document describes the actions
executed by IANA.
Status of This Memo
This document is not an Internet Standards Track specification; it is
published for informational purposes.
This document is a product of the Internet Research Task Force
(IRTF). The IRTF publishes the results of Internet-related research
and development activities. These results might not be suitable for
deployment. This RFC represents the consensus of the Delay-Tolerant
Network Research Group of the Internet Research Task Force (IRTF).
Documents approved for publication by the IRSG are not a candidate
for any level of Internet Standard; see Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc6255.
Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
Table of Contents
1. Introduction ....................................................2
2. Treatment of Flag Fields Encoded Using SDNVs ....................2
3. Bundle Protocol .................................................3
3.1. Bundle Block Types .........................................3
3.2. Primary Bundle Protocol Version ............................3
3.3. Bundle Processing Control Flags ............................4
3.4. Block Processing Control Flags .............................5
3.5. Bundle Status Report Flags .................................6
3.6. Bundle Status Report Reason Codes ..........................7
3.7. Bundle Custody Signal Reason Codes .........................7
4. Security Considerations .........................................8
5. IANA Considerations .............................................8
6. Acknowledgements ................................................8
7. References ......................................................9
7.1. Normative References .......................................9
7.2. Informative References .....................................9
1. Introduction
The DTNRG research group has defined many protocols relevant to the
DTN architecture [RFC4838] such as the Bundle Protocol [RFC5050] and
Licklider Transmission Protocol [RFC5326]. The specifications of
these protocols contain fields that are subject to a registry. For
the purpose of its research work, the group created ad hoc registries
(http://www.dtnrg.org/wiki/AssignedNamesAndNumbers). As the
specifications are stable and have multiple interoperable
implementations, the group would like to hand off the registries to
IANA for official custody. This document describes the actions
executed by IANA.
2. Treatment of Flag Fields Encoded Using SDNVs
The DTN protocols use several extensible bit flag fields that are
encoded as Self-Delimiting Numeric Values (SDNVs) as defined in
Section 4.1 of [RFC5050]. For these fields, the registry specifies
the allocation and usage of bit positions within the unencoded field.
The SDNV encoding treats the ensemble of bits in the unencoded value
as a numeric value to be encoded on transmission and decoded on
reception as described in [RFC5050].
Processing of SDNV-encoded flags is discussed in [RFC6256].
Section 4.1 of [RFC5050] specifies that implementations are not
required to handle SDNVs with more than 64 bits in their unencoded
value. Accordingly, SDNV-encoded flag fields should be limited to 64
bit positions.
IANA registry policies and wording used in this document are
described in [RFC5226].
3. Bundle Protocol
The Bundle Protocol (BP) [RFC5050] has fields requiring a registry
managed by IANA.
3.1. Bundle Block Types
The Bundle Protocol has a Bundle Block Type code field (Section
4.5.2) [RFC5050]. An IANA registry has been set up as follows.
The registration policy for this registry is:
0-191: Specification Required
192-255: Private or experimental use. No assignment by IANA.
The Value range is: unsigned 8-bit integer.
Bundle Block Type Registry
+--------------+---------------------------------+---------------+
| Value | Description | Reference |
+--------------+---------------------------------+---------------+
| 0 | Reserved | This document |
| 1 | Bundle Payload Block | [RFC5050] |
| 2-191 | Unassigned | |
| 192-255 | Private and/or Experimental Use | [RFC5050] |
+--------------+---------------------------------+---------------+
The value "0" was not defined in any document or in the ad hoc
registry. As per consensus by the DTNRG research group, it is
reserved per this document.
3.2. Primary Bundle Protocol Version
The Bundle Protocol has a version field (see Section 4.5.1 of
[RFC5050]). An IANA registry has been set up as follows.
The registration policy for this registry is: RFC Required
The Value range is: unsigned 8-bit integer.
Primary Bundle Protocol Version Registry
+-------+-------------+---------------+
| Value | Description | Reference |
+-------+-------------+---------------+
| 0-5 | Reserved | This document |
| 6 | Assigned | [RFC5050] |
| 7-255 | Unassigned | |
+-------+-------------+---------------+
The value "0-5" was not defined in any document or in the ad hoc
registry. As per consensus by the DTNRG research group, it is
reserved per this document.
3.3. Bundle Processing Control Flags
The Bundle Protocol has a Bundle Processing Control Flags field (see
Section 4.2 of [RFC5050]) encoded as an SDNV (see Section 2). An
IANA registry has been set up as follows.
The registration policy for this registry is: Specification Required
The Value range is: Variable length. Maximum number of flag bit
positions: 64
Bundle Processing Control Flags Registry
+--------------------+----------------------------------+-----------+
| Bit Position | Description | Reference |
| (right to left) | | |
+--------------------+----------------------------------+-----------+
| 0 | Bundle is a fragment | [RFC5050] |
| 1 | Application data unit is an | [RFC5050] |
| | administrative record | |
| 2 | Bundle must not be fragmented | [RFC5050] |
| 3 | Custody transfer is requested | [RFC5050] |
| 4 | Destination endpoint is a | [RFC5050] |
| | singleton | |
| 5 | Acknowledgement by application | [RFC5050] |
| | is requested | |
| 6 | Reserved | [RFC5050] |
| 7-8 | Class of service: priority | [RFC5050] |
| 9-13 | Class of service: reserved | [RFC5050] |
| 14 | Request reporting of bundle | [RFC5050] |
| | reception | |
| 15 | Request reporting of custody | [RFC5050] |
| | acceptance | |
| 16 | Request reporting of bundle | [RFC5050] |
| | forwarding | |
| 17 | Request reporting of bundle | [RFC5050] |
| | delivery | |
| 18 | Request reporting of bundle | [RFC5050] |
| | deletion | |
| 19 | Reserved | [RFC5050] |
| 20 | Reserved | [RFC5050] |
| 21-63 | Unassigned | |
+--------------------+----------------------------------+-----------+
3.4. Block Processing Control Flags
The Bundle Protocol has a Block Processing Control Flags field (see
Section 4.3 of [RFC5050]). An IANA registry has been set up as
follows.
The registration policy for this registry is: Specification Required
The Value range is: Variable length. Maximum number of flag bit
positions: 64
Block Processing Control Flags Registry
+--------------------+----------------------------------+-----------+
| Bit Position | Description | Reference |
| (right to left) | | |
+--------------------+----------------------------------+-----------+
| 0 | Block must be replicated in | [RFC5050] |
| | every fragment | |
| 1 | Transmit status report if block | [RFC5050] |
| | can't be processed | |
| 2 | Delete bundle if block can't be | [RFC5050] |
| | processed | |
| 3 | Last block | [RFC5050] |
| 4 | Discard block if it can't be | [RFC5050] |
| | processed | |
| 5 | Block was forwarded without | [RFC5050] |
| | being processed | |
| 6 | Block contains an EID-reference | [RFC5050] |
| | field | |
| 7-63 | Unassigned | |
+--------------------+----------------------------------+-----------+
3.5. Bundle Status Report Flags
The Bundle Protocol has a Status Report Status Flag field (see
Section 6.1.1 of [RFC5050]). An IANA registry has been set up as
follows.
The registration policy for this registry is: RFC Required
The Value range is: 8 bits.
Bundle Status Report Flags Registry
+----------+----------------------------------------+---------------+
| Value | Description | Reference |
+----------+----------------------------------------+---------------+
| 00000000 | Reserved | This document |
| 00000001 | Reporting node received bundle | [RFC5050] |
| 00000010 | Reporting node accepted custody of | [RFC5050] |
| | bundle | |
| 00000100 | Reporting node forwarded the bundle | [RFC5050] |
| 00001000 | Reporting node delivered the bundle | [RFC5050] |
| 00010000 | Reporting node deleted the bundle | [RFC5050] |
| 00100000 | Unassigned | |
| 01000000 | Unassigned | |
| 10000000 | Unassigned | |
+----------+----------------------------------------+---------------+
The value "00000000" was not defined in any document or in the ad hoc
registry. As per consensus by the DTNRG research group, it is
reserved per this document.
3.6. Bundle Status Report Reason Codes
The Bundle Protocol has a Bundle Status Report Reason Codes field
(see Section 6.1.1 of [RFC5050]). An IANA registry has been set up
as follows.
The registration policy for this registry is: Specification Required
The Value range is: unsigned 8-bit integer.
Bundle Status Report Reason Codes Registry
+-------+-------------------------------------------+---------------+
| Value | Description | Reference |
+-------+-------------------------------------------+---------------+
| 0 | No additional information | [RFC5050] |
| 1 | Lifetime expired | [RFC5050] |
| 2 | Forwarded over unidirectional link | [RFC5050] |
| 3 | Transmission canceled | [RFC5050] |
| 4 | Depleted storage | [RFC5050] |
| 5 | Destination endpoint ID unintelligible | [RFC5050] |
| 6 | No known route to destination from here | [RFC5050] |
| 7 | No timely contact with next node on route | [RFC5050] |
| 8 | Block unintelligible | [RFC5050] |
| 9-254 | Unassigned | |
| 255 | Reserved | This document |
+-------+-------------------------------------------+---------------+
The value "255" was not defined in any document or in the ad hoc
registry. As per consensus by the DTNRG research group, it is
reserved per this document.
3.7. Bundle Custody Signal Reason Codes
The Bundle Protocol has a Bundle Custody Signal Reason Codes field
(see Section 6.1.2 of [RFC5050]). An IANA registry has been set up
as follows.
The registration policy for this registry is: Specification Required
The Value range is: unsigned 7-bit integer.
Bundle Custody Signal Reason Codes Registry
+--------------+--------------------------------------+-------------+
| Value | Description | Reference |
+--------------+--------------------------------------+-------------+
| 0 | No additional information | [RFC5050] |
| 1-2 | Unassigned | |
| 3 | Redundant reception (reception by a | [RFC5050] |
| | node that is a custodial node for | |
| | this bundle) | |
| 4 | Depleted storage | [RFC5050] |
| 5 | Destination endpoint ID | [RFC5050] |
| | unintelligible | |
| 6 | No known route to destination from | [RFC5050] |
| | here | |
| 7 | No timely contact with next node on | [RFC5050] |
| | route | |
| 8 | Block unintelligible | [RFC5050] |
| 9-126 | Unassigned | |
| 127 | Reserved | This |
| | | document |
+--------------+--------------------------------------+-------------+
The value "127" was not defined in any document or in the ad hoc
registry. As per consensus by the DTNRG research group, it is
reserved per this document.
4. Security Considerations
This document requests the creation of registries managed by IANA.
There are no security issues involved. Refer to the Security
Considerations section of the referenced protocols.
5. IANA Considerations
IANA has created the registries as described in the previous
sections.
6. Acknowledgements
The editor would like to thank the following people who have provided
comments and suggestions to this document, in no specific order:
Stephen Farrell, Daniel Ellard, Scott Burleigh, Keith Scott, and
Elwyn Davies.
7. References
7.1. Normative References
[RFC5050] Scott, K. and S. Burleigh, "Bundle Protocol
Specification", RFC 5050, November 2007.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008.
7.2. Informative References
[RFC4838] Cerf, V., Burleigh, S., Hooke, A., Torgerson, L., Durst,
R., Scott, K., Fall, K., and H. Weiss, "Delay-Tolerant
Networking Architecture", RFC 4838, April 2007.
[RFC5326] Ramadas, M., Burleigh, S., and S. Farrell, "Licklider
Transmission Protocol - Specification", RFC 5326,
September 2008.
[RFC6256] Eddy, W. and E. Davies, "Using Self-Delimiting Numeric
Values in Protocols", RFC 6256, May 2011.
Author's Address
Marc Blanchet
Viagenie
2875 boul. Laurier, suite D2-630
Quebec, QC G1V 2M2
Canada
EMail: Marc.Blanchet@viagenie.ca
URI: http://viagenie.ca
AI ELI5
On this page
§1Why the Registries Moved
The Delay-Tolerant Networking Research Group (DTNRG) defined protocols for the DTN architecture, including the Bundle Protocol (RFC 5050) and the Licklider Transmission Protocol (RFC 5326). Their specifications contain fields whose values must be tracked in a registry.
For its research work the group had created ad hoc registries. Because the specifications are stable and have multiple interoperable implementations, the group wanted to hand the registries to IANA for official custody. This document describes the actions IANA took.
The researchers kept their own list of code numbers. Since the rules were settled, they asked the official list-keeper to take over.
§2Flag Fields Encoded as SDNVs
Several Bundle Protocol fields are extensible bit flag fields encoded as Self-Delimiting Numeric Values (SDNVs), as defined in Section 4.1 of RFC 5050. For these fields the registry lists the meaning of each bit position in the unencoded value; the SDNV encoding then treats all those bits as one number when sending and receiving.
Because implementations are not required to handle SDNVs with more than 64 bits in their unencoded value, flag fields should be limited to 64 bit positions. Processing of SDNV-encoded flags is discussed in RFC 6256.
A row of on/off switches is read as one number. The list says what each switch means, and there are at most 64 switches.
§3Value Registries
Five registries hold single values. The Bundle Block Type registry is an unsigned 8-bit value: 0 is reserved, 1 is the Bundle Payload Block, 2-191 are unassigned (Specification Required) and 192-255 are for private or experimental use, with no assignment by IANA. The Primary Bundle Protocol Version registry (policy RFC Required) reserves 0-5, assigns 6 to RFC 5050 and leaves 7-255 unassigned.
The Bundle Status Report Flags registry (RFC Required) uses 8 bits: the five assigned flags mean received, custody accepted, forwarded, delivered and deleted. The Bundle Status Report Reason Codes registry runs from 0 (no additional information) to 8 (block unintelligible), with 9-254 unassigned and 255 reserved. The Bundle Custody Signal Reason Codes registry is a 7-bit value: 0 means no additional information, 1-2 and 9-126 are unassigned, and 127 is reserved.
Values 0 (block type), 0-5 (version), 00000000 (status report flags), 255 and 127 (reason codes) were not defined in any document or in the ad hoc registry. The DTNRG agreed to reserve them in this document.
Each list is like a menu of numbered choices. Some numbers are taken, some are free, and a few are kept aside so nobody uses them by accident.
- 0No additional information — Default reason.
- 1Lifetime expired — The bundle's lifetime ran out.
- 2Forwarded over unidirectional link — Sent over a link that only works one way.
- 3Transmission canceled — Transmission was canceled.
- 4Depleted storage — A node ran out of storage.
- 5Destination endpoint ID unintelligible — The destination ID could not be understood.
- 6No known route to destination from here — The node has no route.
- 7No timely contact with next node on route — The next hop could not be reached in time.
- 8Block unintelligible — A block could not be understood.
- 255Reserved — Reserved by this document.
§4Control Flag Registries
Two registries list bit positions (counted right to left), each with a maximum of 64 flag bit positions and a Specification Required policy. The Bundle Processing Control Flags include: bit 0 bundle is a fragment, bit 1 the data unit is an administrative record, bit 2 must not be fragmented, bit 3 custody transfer requested, bit 4 destination is a singleton, bit 5 application acknowledgement requested, bits 7-8 class of service priority, and bits 14-18 requests for reports on reception, custody acceptance, forwarding, delivery and deletion. Bits 21-63 are unassigned.
The Block Processing Control Flags cover bits 0-6: replicate the block in every fragment, send a status report if the block cannot be processed, delete the bundle if it cannot be processed, last block, discard the block if it cannot be processed, block was forwarded without being processed, and block contains an EID-reference field. Bits 7-63 are unassigned.
Each switch in the row has a job, such as 'do not break this package into pieces' or 'tell me when it arrives'. The list says which switch does what.
§5Security and IANA Actions
The document only requests registries managed by IANA, so it says there are no security issues involved and refers readers to the Security Considerations of the referenced protocols. In the IANA Considerations section, IANA states that it has created the registries described in the earlier sections.
Writing down a list of numbers does not open any new doors for trouble. The real safety rules live in the protocols themselves.