RFC 6255

Delay-Tolerant Networking Bundle Protocol IANA Registries

πŸ“… published May 2011, from ietf

Delay-Tolerant Networking Bundle Protocol IANA Registries 🧚

okay bestie, this is RFC 6255 and it's giving paperwork glow-up πŸŽ€

πŸ“‹ RFC number: 6255 πŸ“‹ Title: Delay-Tolerant Networking Bundle Protocol IANA Registries πŸ“‹ Author: M. Blanchet, Viagenie πŸ“‹ Stream: Internet Research Task Force (IRTF) πŸ“‹ Category: Informational πŸ“‹ Date: May 2011 πŸ“‹ ISSN: 2070-1721 πŸ“‹ Obsoletes / Updates: nothing is listed in the title block, so this one doesn't obsolete or update anything 🫢


Abstract

so the DTN Research Group cooked up a bunch of protocols, like the Bundle Protocol and the Licklider Transmission Protocol πŸ¦‹. Their specs have fields that need a registry, and for their research they made some ad hoc registries. The specs are stable and have multiple interoperable implementations, so the group wants to hand those registries over to IANA for official custody πŸ’…. This document is about what IANA does.

Status of This Memo

this is not an Internet Standards Track spec, it's published for information only 🌸.

it's a product of the Internet Research Task Force (IRTF), which shares research and development results. Those results might not be suitable for deployment, so keep that in mind πŸ‘€. This RFC represents the consensus of the Delay-Tolerant Network Research Group of the IRTF. Documents approved for publication by the IRSG are not a candidate for any level of Internet Standard, see Section 2 of RFC 5741 (no cap, that's important ✨).

for the current status, any errata, and how to give feedback, check http://www.rfc-editor.org/info/rfc6255 πŸ”—.

Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.

this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as of the publication date. read those carefully bc they spell out your rights and restrictions πŸ“œπŸ™ˆ.

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 a lot of protocols for the DTN architecture [RFC4838], like the Bundle Protocol [RFC5050] and the Licklider Transmission Protocol [RFC5326]. Those specs have fields that are subject to a registry. For their research, the group made ad hoc registries (http://www.dtnrg.org/wiki/AssignedNamesAndNumbers). Since the specs are stable and have multiple interoperable implementations, the group wants to give those registries to IANA for official custody. This document describes what IANA does next 🧚.

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 handles how bit positions in the unencoded field get allocated and used πŸŽ€. The SDNV encoding treats all the bits in the unencoded value as one numeric value, which gets encoded when sent and decoded when received, as described in [RFC5050].

processing of SDNV-encoded flags is covered in [RFC6256], so go there for that part πŸ“–.

Section 4.1 of [RFC5050] says implementations are not required to handle SDNVs with more than 64 bits in their unencoded value. So, SDNV-encoded flag fields should be limited to 64 bit positions. Honestly the limit is very on brand for a "keep it small" energy 🌈.

the IANA registry policies and the wording used in this document are described in [RFC5226] πŸ’….

3. Bundle Protocol πŸ¦‹

the Bundle Protocol (BP) [RFC5050] has fields that need a registry managed by IANA. Here's the tea on each one πŸ«–.

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 like this:

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 never defined in any document or in the ad hoc registry. As per consensus by the DTNRG research group, it's 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 like this:

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 values "0-5" were never defined in any document or in the ad hoc registry. As per consensus by the DTNRG research group, they're 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 like this:

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 like this:

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                       |           |
   +--------------------+----------------------------------+-----------+

next up are the bundle status report flags, the status report reason codes, and the custody signal reason codes, so stay tuned πŸ’œβœ¨

3.5. Bundle Status Report Flags πŸ’–

okay so the Bundle Protocol has this Status Report Status Flag field πŸŽ€ (check Section 6.1.1 of [RFC5050] if you want the full tea β˜•). IANA set up a registry for it, and here's how it works:

The registration policy 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                             |               |
   +----------+----------------------------------------+---------------+

so the value "00000000" was never defined in any document or in the ad hoc registry πŸ™ˆ. After a consensus call by the DTNRG research group, it's reserved per this document. no cap, that's a clean fix πŸ’…

3.6. Bundle Status Report Reason Codes 🧚

the Bundle Protocol also has a Bundle Status Report Reason Codes field (again, Section 6.1.1 of [RFC5050] is where it's at πŸ“–). IANA made a registry for this one too:

The registration policy 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 |
   +-------+-------------------------------------------+---------------+

and the value "255" was not defined in any document or in the ad hoc registry either 😭. The DTNRG research group agreed on it, so it's reserved per this document. iykyk 🫢

3.7. Bundle Custody Signal Reason Codes πŸ”₯

last registry, bestie! The Bundle Protocol has a Bundle Custody Signal Reason Codes field (see Section 6.1.2 of [RFC5050] πŸ¦‹). IANA set this one up too:

The registration policy 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 never defined in any document or in the ad hoc registry, so (you guessed it) the DTNRG research group said it's reserved per this document πŸ’€βœ¨


4. Security Considerations πŸ”

okay, this part is serious, so I'm keeping it straight 😀. This document asks for the creation of registries managed by IANA. There are no security issues involved. For security, you need to look at 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 wants to thank these people, who gave comments and suggestions to this document (listed in no specific order, obviously πŸ’œ): Stephen Farrell, Daniel Ellard, Scott Burleigh, Keith Scott, and Elwyn Davies. legends, all of them πŸ‘‘

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

and that's a wrap, bestie!! πŸŒˆπŸ’…βœ¨

πŸ“¦ where this page comes from