Internet DRAFT - draft-bonica-6man-crh-helper-opt
draft-bonica-6man-crh-helper-opt
6man WG X. Li
Internet-Draft C. Bao
Intended status: Standards Track CERNET Center/Tsinghua University
Expires: 14 April 2022 E. Ruan
Fungible Inc.
R. Bonica
Juniper Networks
11 October 2021
Compressed Routing Header (CRH) Helper Option
draft-bonica-6man-crh-helper-opt-04
Abstract
This document defines the IPv6 Compressed Routing Header (CRH) Helper
option. When a source node sends a packet with a CRH, it can use the
CRH Helper option to provide additional information to downstream
nodes.
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 14 April 2022.
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
Li, et al. Expires 14 April 2022 [Page 1]
Internet-Draft CRH Helper Option October 2021
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 Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
3. Option Format . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Option Processing . . . . . . . . . . . . . . . . . . . . . . 4
5. Security Considerations . . . . . . . . . . . . . . . . . . . 5
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5
8. Normative References . . . . . . . . . . . . . . . . . . . . 5
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
IPv6 [RFC8200] source nodes use the Compressed Routing Header (CRH)
[I-D.bonica-6man-comp-rtg-hdr] to steer packets along a delivery path
to their destination. Two CRH versions have been defined. The
CRH-16 encodes segment endpoints in 16 bits, while CRH-32, encodes
segment endpoints in 32 bits.
Both CRH versions contain the following fields:
* Next Header - Identifies the header immediately following the CRH.
* Hdr Ext Len - Length of the CRH.
* Routing Type - Identifies the Routing header variant (i.e., CRH-16
or CRH-32).
* Segments Left - The number of segments still to be traversed
before reaching the packet's ultimate destination.
* Segment Identifier (SID) List - Represents the delivery path as an
ordered list of Segment Identifiers (SID). SIDs are listed in
reverse order, with SID[0] representing the final segment, SID[1]
representing the penultimate segment, and so forth. SIDs are
listed in reverse order so that Segments Left can be used as an
index to the SID List. The SID indexed by Segments Left is called
the current SID.
Li, et al. Expires 14 April 2022 [Page 2]
Internet-Draft CRH Helper Option October 2021
As per [RFC8200], when an IPv6 node receives a packet, it examines
the packet's destination address. If the destination address
represents an interface belonging to the node, the node processes the
next header. If the next header is a CRH, it is processed as
follows:
* If Segments Left equals 0, skip over the CRH and process the next
header in the packet.
* Decrement Segments Left.
* Query a local data structure, called the CRH Forwarding
Information Base (CRH-FIB), searching for an entry that is indexed
by the current SID.
* If the above-mentioned query returns a CRH-FIB entry, update the
packet's IPv6 Destination Address and forward the packet.
In a typical CRH deployment, every segment ingress node maintains a
complete CRH-FIB and the above-mentioned query returns a CRH-FIB
entry. However, in some CRH deployments, some segment ingress nodes
maintain a complete CRH-FIB while others do not. For example, a node
that does not participate in a control plane or communicate with a
controller may not maintain a CRH-FIB.
This document defines the IPv6 CRH Helper option. When a source node
sends a packet with a CRH, it can use the IPv6 CRH Helper option to
provide CRH-FIB information to downstream nodes that do not maintain
a complete CRH-FIB.
If a segment ingress node queries its CRH-FIB, searching for an entry
that is indexed by the current SID, and that query returns nothing,
the segment ingress node can obtain the required CRH-FIB information
from the IPv6 CRH Helper option. If the segment ingress node cannot
obtain the required CRH-FIB information from either source, it
discards the packet and sends an ICMPv6 [RFC4443] Parameter Problem
message to the source node.
2. Requirements Language
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.
Li, et al. Expires 14 April 2022 [Page 3]
Internet-Draft CRH Helper Option October 2021
3. Option Format
The CRH Helper option contains the following fields:
* Option Type - (8-bits) CRH Helper option. Value TBD by IANA.
(Suggested value: 0x11). See Note below.
* Opt Data Len - (8-bits) Length of the option, in octets, excluding
the Option Type and Option Length fields.
* Helper List - (Variable length) A list of Helpers.
Each Helper contains the following fields:
* Helper Length - (8-bits) Length of the Helper, in octets,
excluding Helper Length. Value MUST be greater than 2 and less
than 19.
* Low SID - (8-bits) Index to the CRH SID List. References the
first member of the SID List to which this Helper applies.
* High SID - (8-bits) Index to the CRH SID List. References the
last member of the SID List to which this Helper applies.
* Prefix field (variable length): An IPv6 Prefix.
NOTE : The highest-order two bits of the Option Type (i.e., the "act"
bits) are 00. These bits specify the action taken by a destination
node that does not recognize the option. The required action is to
skip over this option and continue processing the header.
The third highest-order bit of the Option Type (i.e., the "chg" bit)
is 0. This indicates that Option Data cannot be modified along the
path between the packet's source and its destination.
4. Option Processing
When a segment endpoint node processes a CRH, it attempts to resolve
the SID using information contained by its CRH-FIB. If it cannot
resolve the SID using CRH-FIB, it attempts to resolve the SID using
information received in an applicable Helper. If no Helper applies
to the current SID, the processing node discards the packet and sends
an ICMPv6 Parameter Problem message to the source node.
When the processing node uses a Helper to resolve a SID, it executes
the following procedure:
* Set the IPv6 Destination Address to 0::
Li, et al. Expires 14 April 2022 [Page 4]
Internet-Draft CRH Helper Option October 2021
* Overwrite the low order bits of the IPv6 Destination Address with
the current SID found in the CRH
* Overwrite the high order bits of the IPv6 Destination Address with
the prefix found in the applicable Helper
If the prefix found in the applicable Helper is 16 bytes long, it
overwrites the entire IPv6 Destination Address.
The CRH Helper option MAY occur in a Destination Options header that
precedes a CRH. It SHOULD NOT occur in a Hop-by-hop options header
or in a Destination Options header that precedes an upper-layer
header.
When a segment ingress node resolves a SID using information obtained
from the CRH helper option, it forwards the packet through the least-
cost path to its new destination.
Information obtained from the CRH Helper option is transient. It is
discarded as soon as the packet that carried it has been processed.
5. Security Considerations
When a segment endpoint node processes a CRH, it attempts to resolve
the SID using information contained by its CRH-FIB. If it can
resolve the SID using CRH-FIB, it MUST ignore the CRH Helper option,
even if it contains an applicable Helper.
6. IANA Considerations
IANA is requested to allocate a code point from the Destination
Options and Hop-by-hop Options registry
(https://www.iana.org/assignments/ipv6-parameters/
ipv6-parameters.xhtml#ipv6-parameters-2). This option is called "CRH
Helper Option". The "act" bits are 00 and the "chg" bit is 0.
(Suggested value: 0x11).
7. Acknowledgements
Thanks to TBD for their careful review of this document.
8. Normative References
Li, et al. Expires 14 April 2022 [Page 5]
Internet-Draft CRH Helper Option October 2021
[I-D.bonica-6man-comp-rtg-hdr]
Bonica, R., Kamite, Y., Alston, A., Henriques, D., and L.
Jalil, "The IPv6 Compact Routing Header (CRH)", Work in
Progress, Internet-Draft, draft-bonica-6man-comp-rtg-hdr-
26, 25 May 2021, <https://www.ietf.org/archive/id/draft-
bonica-6man-comp-rtg-hdr-26.txt>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet
Control Message Protocol (ICMPv6) for the Internet
Protocol Version 6 (IPv6) Specification", STD 89,
RFC 4443, DOI 10.17487/RFC4443, March 2006,
<https://www.rfc-editor.org/info/rfc4443>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", STD 86, RFC 8200,
DOI 10.17487/RFC8200, July 2017,
<https://www.rfc-editor.org/info/rfc8200>.
Authors' Addresses
Xing Li
CERNET Center/Tsinghua University
Room 225, Main Building, Tsinghua University
Beijing
100084
People's Republic of China
Email: xing@cernet.edu.cn
Congxiao Bao
CERNET Center/Tsinghua University
Room 225, Main Building, Tsinghua University
Beijing
100084
People's Republic of China
Email: congxiao@cernet.edu
Li, et al. Expires 14 April 2022 [Page 6]
Internet-Draft CRH Helper Option October 2021
Eddie Ruan
Fungible Inc.
3201 Scott Blvd
Santa Clara, California 95054
United States of America
Email: eddie.ruan@fungible.com
Ron Bonica
Juniper Networks
2251 Corporate Park Drive
Herndon, Virginia 20171
United States of America
Email: rbonica@juniper.net
Li, et al. Expires 14 April 2022 [Page 7]