6man WG                                                            X. Li
Internet-Draft                                                    C. Bao
Intended status: Standards Track       CERNET Center/Tsinghua University
Expires: May 3, 2020                                             E. Ruan
                                                           Fungible Inc.
                                                               R. Bonica
                                                        Juniper Networks
                                                        October 31, 2019


             Compressed Routing Header (CRH) Helper Option
                  draft-bonica-6man-crh-helper-opt-00

Abstract

   This document defines the IPv6 CRH Helper option.  When an SRm6
   ingress node originates a packet, it can use the IPv6 CRH Helper
   option to provide SID Forwarding Information Base (SFIB) information
   to downstream nodes that do not maintain a complete SFIB.

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 May 3, 2020.

Copyright Notice

   Copyright (c) 2019 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



Li, et al.                 Expires May 3, 2020                  [Page 1]


Internet-Draft              CRH Helper Option               October 2019


   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.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   6
     8.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   SRm6 [I-D.bonica-spring-srv6-plus] leverages two new IPv6 [RFC8200]
   Routing types.  Generically, they are called the Compressed Routing
   Header (CRH) [I-D.bonica-6man-comp-rtg-hdr].  More specifically, the
   16-bit version of the CRH is called the CRH-16, while the 32-bit
   version of the CRH is called the CRH-32.

   Both CRH versions contain the following fields:

   o  Next Header - Identifies the header immediately following the CRH.

   o  Hdr Ext Len - Length of the CRH.

   o  Routing Type - Identifies the Routing header variant (i.e., CRH-16
      or CRH-32).

   o  Segments Left - The number of segments still to be traversed
      before reaching the SRm6 path egress node.

   o  Segment Identifier (SID) List - Represents the SRm6 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.

   As per [RFC8200], when an IPv6 node receives a packet, it examines
   the packet's destination address.  If the destination address



Li, et al.                 Expires May 3, 2020                  [Page 2]


Internet-Draft              CRH Helper Option               October 2019


   represents an interface belonging to the node, the node processes the
   next header.  If the node encounters and recognizes the CRH, it
   processes the CRH as follows:

   o  If Segments Left equal 0, skip over the CRH and process the next
      header in the packet.

   o  Decrement Segments Left.

   o  Query a local data structure, called the SID Forwarding
      Information Base (SFIB), searching for an entry that is indexed by
      the current SID.

   o  If the above-mentioned query returns an SFIB entry, update the
      packet's IPv6 Destination Address and forward the packet.

   In a typical SRm6 deployment, every segment ingress node maintains a
   complete SFIB and the above-mentioned query returns an SFIB entry.
   However, in some SRm6 deployments, some segment ingress nodes
   maintain a complete SFIB while others do not.  The following are
   reasons why a segment ingress node might not maintain a complete
   SFIB:

   o  the node is a Network Interface Card (NIC) in a data center.
      Although it originates many segments, it does not participate in
      the SRm6 control plane [I-D.bonica-lsr-crh-isis-extensions].

   o  the node resides in another autonomous system and does not
      participate in the SRm6 control plane.

   This document defines the IPv6 CRH Helper option.  When an SRm6 path
   ingress node originates a packet, it can use the IPv6 CRH Helper
   option to provide SFIB information to downstream nodes that do not
   maintain a complete SFIB.

   If a segment ingress node queries its SFIB, searching for an entry
   that is indexed by the current SID, and that query returns nothing,
   the segment ingress node can obtain the required SFIB information
   from the IPv6 CRH Helper option.  If the segment ingress node cannot
   obtain the required SFIB information from either source, it discards
   the packet sends an ICMPv6 [I-D.bonica-lsr-crh-isis-extensions]
   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



Li, et al.                 Expires May 3, 2020                  [Page 3]


Internet-Draft              CRH Helper Option               October 2019


   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  Option Format

   The CRH Helper option contains the following fields:

   o  Option Type - (8-bits) CRH Helper option.  Value TBD by IANA.
      (Suggested value: 0x11).  See Note below.

   o  Opt Data Len - (8-bits) Length of the option, in octets, excluding
      the Option Type and Option Length fields.

   o  SFIB Helper (SFIBH) List - (Variable length) A list of SFIBHs.

   Each SFIBH contains the following fields:

   o  SFIBH Length - (8-bits) Length of the SFIBH, in octets, excluding
      SFIBH Length.  Value MUST be greater than 2 and less than 19.

   o  Low SID - (8-bits) Index to the CRH SID List.  References the
      first member of the SID List to which this SFIBH applies.

   o  High SID - (8-bits) Index to the CRH SID List.  References the
      last member of the SID List to which this SFIBH applies.

   o  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 SFIB.  If it cannot
   resolve the SID using SFIB, it attempts to resolve the SID using
   information received in an applicable SFIBH.  If no SFIBH 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 an SFIBH to resolve a SID, it executes
   the following procedure:



Li, et al.                 Expires May 3, 2020                  [Page 4]


Internet-Draft              CRH Helper Option               October 2019


   o  Set the IPv6 Destination Address to 0::

   o  Overwrite the low order bits of the IPv6 Destination Address with
      the current SID found in the CRH

   o  Overwrite the high order bits of the IPv6 Destination Address with
      the prefix found in the applicable SFIBH

   If the prefix found in the applicable SFIBH 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, the SID is understood to be a prefix SID.
   Therefore, the packet is forwarded to its destination via the least
   cost path.

   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 SFIB.  If it can resolve
   the SID using SFIB, it MUST ignore the CRH Helper option, even if it
   contains an applicable SFIBH.

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.








Li, et al.                 Expires May 3, 2020                  [Page 5]


Internet-Draft              CRH Helper Option               October 2019


8.  References

8.1.  Normative References

   [I-D.bonica-6man-comp-rtg-hdr]
              Bonica, R., Kamite, Y., Niwa, T., Alston, A., Henriques,
              D., Jalil, L., So, N., Xu, F., Chen, G., Zhu, Y., Yang,
              G., and Y. Zhou, "The IPv6 Compressed Routing Header
              (CRH)", draft-bonica-6man-comp-rtg-hdr-08 (work in
              progress), October 2019.

   [I-D.bonica-spring-srv6-plus]
              Bonica, R., Hegde, S., Kamite, Y., Alston, A., Henriques,
              D., Jalil, L., Halpern, J., Linkova, J., and G. Chen,
              "Segment Routing Mapped To IPv6 (SRm6)", draft-bonica-
              spring-srv6-plus-06 (work in progress), October 2019.

   [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>.

8.2.  Informative References

   [I-D.bonica-lsr-crh-isis-extensions]
              Kaneriya, P., Shetty, R., Hegde, S., and R. Bonica, "IS-IS
              Extensions To Support The IPv6 Compressed Routing Header
              (CRH)", draft-bonica-lsr-crh-isis-extensions-00 (work in
              progress), May 2019.







Li, et al.                 Expires May 3, 2020                  [Page 6]


Internet-Draft              CRH Helper Option               October 2019


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


   Eddie Ruan
   Fungible Inc.
   3201 Scott Blvd
   Santa Clara, California  95054
   USA

   Email: eddie.ruan@fungible.com


   Ron Bonica
   Juniper Networks
   2251 Corporate Park Drive
   Herndon, Virginia  20171
   USA

   Email: rbonica@juniper.net















Li, et al.                 Expires May 3, 2020                  [Page 7]