Internet-Draft | Carrying IPv6 Identifier | February 2023 |
Iurman | Expires 8 August 2023 | [Page] |
- Workgroup:
- IPv6 Maintenance
- Internet-Draft:
- draft-iurman-6man-generic-id-01
- Published:
- Intended Status:
- Standards Track
- Expires:
Carrying an Identifier in IPv6 packets
Abstract
Some recent use cases have a need for carrying an identifier in IPv6 packets. While those drafts might perfectly make sense on their own, each document requires IANA to allocate a new code point for a new option, and so for very similar situations, which could quickly exhaust the allocation space if similar designs are proposed in the future. As an example, one might need an 8-bit ID, while another one might need a 32-bit, 64-bit or 128-bit ID. Or, even worse, one might need a 32-bit ID in a specific context, while someone else might also need a 32-bit ID in another context. Therefore, allocating a new code point for each similar option is probably not the way to go.¶
About This Document
This note is to be removed before publishing as an RFC.¶
The latest revision of this draft can be found at https://IurmanJ.github.io/draft-iurman-6man-generic-id/draft-iurman-6man-generic-id.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-iurman-6man-generic-id/.¶
Discussion of this document takes place on the IPv6 Maintenance Working Group mailing list (mailto:ipv6@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/ipv6/. Subscribe at https://www.ietf.org/mailman/listinfo/ipv6/.¶
Source for this draft and an issue tracker can be found at https://github.com/IurmanJ/draft-iurman-6man-generic-id.¶
Status of This Memo
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 8 August 2023.¶
Copyright Notice
Copyright (c) 2023 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 (https://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. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
1. Introduction
Some recent use cases have a need for carrying an identifier in IPv6 packets. Two examples are [I-D.draft-ietf-6man-enhanced-vpn-vtn-id] and [I-D.draft-li-6man-topology-id]. While those drafts might perfectly make sense on their own, each document requires IANA to allocate a new code point for a new option, and so for very similar situations, which could quickly exhaust the allocation space if similar designs are proposed in the future. As an example, one might need an 8-bit ID, while another one might need a 32-bit, 64-bit or 128-bit ID. Or, even worse, one might need a 32-bit ID in a specific context, while someone else might also need a 32-bit ID in another context. Therefore, allocating a new code point for each similar option is probably not the way to go.¶
This document proposes two different solutions to carry an identifier in IPv6 packets, in order to avoid the aforementioned issue. Each solution defines a new option in the Destination Options and Hop-by-Hop Options sub-registry. Both are explained in this document.¶
2. Conventions and Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
3. Solution 1: Generic Identifier
For simple use cases such as a single identifier carried without additional fields and without specific context, a new Option Type named "Generic Identifier" is defined as follows:¶
1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Opt Data Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Identifier (variable length) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1. Generic Identifier Option¶
where:¶
- Option Type: 8-bit option type as defined in Section 5.1.¶
- Opt Data Len: 8-bit unsigned integer. Length of the Identifier field, in octets.¶
- Identifier: variable length field representing the carried identifier.¶
3.1. Pros and Cons
(+) Totally generic solution, similar to an Identifier container.¶
(-) Too generic, as it could be used to carry all and nothing.
(-) No context for the carried identifier, which might disturb the receiver.
(-) No multiple identifiers, where some use cases might need to carry more than
one.
(-) No additional fields, where some use cases might need that.¶
4. Solution 2: Identifier with Context
For use cases where one or several identifiers are carried with additional fields, or when a context is required, a new Option Type named "Identifier with Context" is defined as follows:¶
1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Opt Data Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Context-ID | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Context-Data (variable length) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2. Identifier with Context Option¶
where:¶
- Option Type: 8-bit option type as defined in Section 5.2.¶
- Opt Data Len: 8-bit unsigned integer. Length of this option, in octets, not including the first 2 octets.¶
- Context-ID: 16-bit field as defined in Section 5.2.1.¶
- Reserved: 16-bit field MUST be set to zero upon transmission and ignored upon reception.¶
- Context-Data: variable length field representing a data structure which depends on the Context-ID field.¶
4.1. Pros and Cons
(+) Allows for a context.
(+) Allows for multiple identifiers.
(+) Allows for additional fields.
(+) IETF review process for new Context-ID code points.¶
(-) Not hardware friendly.¶
5. IANA Considerations
5.1. Generic Identifier (Solution 1)
If the solution is adopted, this document requests IANA to allocate the following IPv6 Option Type in the Destination Options and Hop-by-Hop Options sub-registry of Internet Protocol Version 6 (IPv6) Parameters:¶
Binary Value Description Reference act chg rest -------------------------------------------------------------- 00 0 TBD Generic Identifier Option [This document]¶
5.2. Identifier with Context (Solution 2)
If the solution is adopted, this document requests IANA to allocate the following IPv6 Option Type in the Destination Options and Hop-by-Hop Options sub-registry of Internet Protocol Version 6 (IPv6) Parameters:¶
Binary Value Description Reference act chg rest -------------------------------------------------------------- 00 0 TBD Identifier with Context Option [This document]¶
This document also requests IANA to define a registry group named "Identifier with Context". The following subsections detail the registries therein contained.¶
5.2.1. Context-ID
This registry defines 65536 code points for the Context-ID field, in order to know the context. The following code points are defined in this document:¶
Code point Description Reference +--------+--------------------------+-----------------+ | 0x0000 | Reserved | This document | +--------+--------------------------+-----------------+ | 0x0001 | | | | .... | Unassigned | | | 0xffef | | | +--------+--------------------------+-----------------+ | 0xfff0 | | | | .... | RFC3692-style Experiment | [RFC8126] | | 0xfffe | | | +--------+--------------------------+-----------------+ | 0xffff | Reserved | This document | +--------+--------------------------+-----------------+¶
Unassigned code points are available for assignment via the "IETF Review" process, as per [RFC8126]. For a new registration request to be accepted, its main purpose MUST be to carry an identifier. The aforementioned identifier MUST be the centerpiece of the new context.¶
New registration requests MUST use the following template:¶
6. Security Considerations
As this document describes new options for IPv6, these are similar to the security considerations of [RFC8200] and the weakness documented in [RFC8250].¶
This document does not define security considerations for the Context-Data field of the Identifier with Context Option, which varies based on the Context-ID. These custom data structures will have security considerations in their own documents that define the new formats.¶
7. References
7.1. Normative References
- [RFC2119]
- Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
- [RFC8126]
- Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, , <https://www.rfc-editor.org/rfc/rfc8126>.
- [RFC8174]
- Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.
- [RFC8200]
- Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", STD 86, RFC 8200, DOI 10.17487/RFC8200, , <https://www.rfc-editor.org/rfc/rfc8200>.
- [RFC8250]
- Elkins, N., Hamilton, R., and M. Ackermann, "IPv6 Performance and Diagnostic Metrics (PDM) Destination Option", RFC 8250, DOI 10.17487/RFC8250, , <https://www.rfc-editor.org/rfc/rfc8250>.
7.2. Informative References
- [I-D.draft-ietf-6man-enhanced-vpn-vtn-id]
- Dong, J., Li, Z., Xie, C., Ma, C., and G. S. Mishra, "Carrying Virtual Transport Network (VTN) Information in IPv6 Extension Header", Work in Progress, Internet-Draft, draft-ietf-6man-enhanced-vpn-vtn-id-02, , <https://datatracker.ietf.org/doc/html/draft-ietf-6man-enhanced-vpn-vtn-id-02>.
- [I-D.draft-li-6man-topology-id]
- Li, Z., Hu, Z., and J. Dong, "Topology Identifier in IPv6 Extension Header", Work in Progress, Internet-Draft, draft-li-6man-topology-id-00, , <https://datatracker.ietf.org/doc/html/draft-li-6man-topology-id-00>.