Skip to main content

IS-IS Extensions to Support Routing over IPv6 Dataplane
draft-bashandy-isis-srv6-extensions-01

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
Authors Les Ginsberg , Ahmed Bashandy , Clarence Filsfils , Bruno Decraene
Last updated 2017-09-29
Replaces draft-previdi-isis-ipv6-prefix-sid
Replaced by draft-ietf-lsr-isis-srv6-extensions, draft-ietf-lsr-isis-srv6-extensions, RFC 9352
RFC stream (None)
Formats
Additional resources
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-bashandy-isis-srv6-extensions-01
Networking Working Group                                     L. Ginsberg
Internet-Draft                                               A. Bashandy
Intended status: Standards Track                             C. Filsfils
Expires: April 2, 2018                                     Cisco Systems
                                                             B. Decraene
                                                                  Orange
                                                      September 29, 2017

        IS-IS Extensions to Support Routing over IPv6 Dataplane
               draft-bashandy-isis-srv6-extensions-01.txt

Abstract

   Segment Routing (SR) allows for a flexible definition of end-to-end
   paths by encoding paths as sequences of topological sub-paths, called
   "segments".  Segment routing architecture can be implemented over an
   MPLS data plane as well as an IPv6 data plane.  This draft describes
   the IS-IS extensions required to support Segment Routing over an IPv6
   data plane.

Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

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 April 2, 2018.

Ginsberg, et al.          Expires April 2, 2018                 [Page 1]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

Copyright Notice

   Copyright (c) 2017 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 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.  SRv6-Capabilities sub-TLV . . . . . . . . . . . . . . . . . .   3
     2.1.  Maximum SL sub-sub-TLV  . . . . . . . . . . . . . . . . .   4
     2.2.  Maximum End Pop SRH sub-sub-TLV . . . . . . . . . . . . .   5
     2.3.  Maximum T.Insert SRH sub-sub-TLV  . . . . . . . . . . . .   5
     2.4.  Maximum T.Encap SRH sub-sub-TLV . . . . . . . . . . . . .   5
     2.5.  Maximum End D SRH sub-sub-TLV . . . . . . . . . . . . . .   6
   3.  SRv6-function Descriptor  . . . . . . . . . . . . . . . . . .   6
   4.  SRv6-SID TLV  . . . . . . . . . . . . . . . . . . . . . . . .   9
   5.  Function Code Points  . . . . . . . . . . . . . . . . . . . .  11
   6.  Advertising SRv6 SIDs associated with a Neighbor  . . . . . .  11
     6.1.  P2P Srv6 X-SID sub-TLV  . . . . . . . . . . . . . . . . .  11
     6.2.  LAN SRv6 X-SID sub-TLV  . . . . . . . . . . . . . . . . .  12
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  13
     7.1.  SRv6 SID TLV and sub-TLVs . . . . . . . . . . . . . . . .  14
     7.2.  IS-IS SRv6-functions Codepoints Registry  . . . . . . . .  14
     7.3.  SRv6 Capabilities sub-TLV . . . . . . . . . . . . . . . .  15
     7.4.  P2P SRv6 X-SID and LAN SRv6 X-SID sub-TLVs  . . . . . . .  15
     7.5.  IS-IS SRv6 X-SID sub-sub-TLV Codepoints Registry  . . . .  16
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  16
   9.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .  16
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  17
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  18
     10.2.  Informative References . . . . . . . . . . . . . . . . .  18
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  18

1.  Introduction

   With Segment Routing (SR)[SRARCH], a node steers a packet through an
   ordered list of instructions, called segments.

Ginsberg, et al.          Expires April 2, 2018                 [Page 2]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

   Segments are identified through Segment Identifiers (SIDs).

   Segment Routing can be directly instantiated on the IPv6 data plane
   through the use of the Segment Routing Header defined in [SRH].  SRv6
   refers to this SR instantiation on the IPv6 dataplane.

   The network programming paradigm [NP] is central to SRv6.

   It describes how any function can be bound to a SID and how any
   network program can be expressed as a combination of SID's.

   It defines several well-known functions such as End, End.X, T.Insert,
   T.Encaps, etc.

   This document specifies IS-IS extensions that allow IS-IS protocol to
   encode some of these functions.

   Familiarity with the network programming paradigm [NP] is necessary
   to understand the extensions specified in this document.

   This document defines one new top level IS-IS_TLV and three new IS-
   IS sub-TLVs.

   The SRv6 Capabilities sub-TLV announces the ability to support SRv6
   and some functions defined in [NP] as well as advertising limitations
   when applying such functions.

   The SRv6 SID top level TLV, the P2P SRv6 X-SID sub-TLV, and the LAN
   SRv6 X-SID sub-TLV are used to advertise which SIDs are instantiated
   at a node and what function is bound to each instantiated SID.

   Only ISIS-related functions such as End and its variants D and X [NP]
   are defined in this document.

2.  SRv6-Capabilities sub-TLV

   As described in [SRH] and [NP], the list of Segments is stored in the
   segment routing header referred hereafter as "SRH".

   A router that supports SRv6 MUST be able to process the segment
   routing header as described in [SRH] and [NP] up to the limitations
   set by the advertised SRv6-capabilities sub-TLV.

   To announce this ability, a router uses the newly defined SRv6-
   capabilities sub-TLV of the router capabilities TLV [RFC7981].  The
   SRv6- capabilities sub-TLV may contain optional sub-sub-TLVs.

   The SRv6 Capabilities sub-TLV has the following format:

Ginsberg, et al.          Expires April 2, 2018                 [Page 3]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

      0                   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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Type        |     Length    |            Flags              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   sub-sub-TLVs...

        Type: Suggested value 22, to be assigned by IANA

        Length: 2 + length of sub-sub-TLVs

        Flags: 2 octets  The following flags are defined:

         0                   1
          0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         |E|                             |
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         where:
           E-flag: If set, then router is able to apply "T.Encap"
           operation

   The following sections define the supported sub-sub-TLVs.

2.1.  Maximum SL sub-sub-TLV

   The Maximum Segments Left sub-sub-TLV specifies the maximum value of
   the "SL" field [SRH] in the SRH of a received packet before applying
   the function associated with a SID.

     0                   1                   2
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Type        |     Length    |  Max SL       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type: 1
      Length: 1
      SL Value: 1 octet
      An 8 bit unsigned integer.

      If the sub-sub-TLV is NOT advertised the value is assumed to be 0.

Ginsberg, et al.          Expires April 2, 2018                 [Page 4]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

2.2.  Maximum End Pop SRH sub-sub-TLV

   The Maximum End Pop SRH sub-sub-TLV specifies the maximum number of
   SIDs in the top SRH in an SRH stack to which the router can apply
   "PSP" or USP" [NP] flavors.

    0                   1                   2
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   Type        |     Length    |Max-End-Pop-SRH|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Type: 2
     Length: 1
     Max-End-Pop-SRH Value: 1 octet
     An 8 bit unsigned integer.

     If the value is zero or the sub-sub-TLV is NOT advertised,
     then it is assumed that the router cannot apply PSP or USP flavors.

2.3.  Maximum T.Insert SRH sub-sub-TLV

   The Maximum T.Insert SRH sub-sub-TLV specifies the maximum number of
   SIDs that can be inserted as part of the "T.insert" behavior [NP].

     0                   1                   2
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Type        |     Length    | Max-T.Insert  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type: 3
      Length: 1
      Max-T.Insert Value: 1 octet
      An 8 bit unsigned integer.

      If the value is zero or the sub-sub-TLV is omitted,
      then the router is assumed not to support any variation
      of the "T.insert" behavior.

2.4.  Maximum T.Encap SRH sub-sub-TLV

   The Maximum T.Encap SRH sub-sub-TLV specifies the maximum number of
   SIDs that can be included as part of the "T.Encap" behavior [NP].

Ginsberg, et al.          Expires April 2, 2018                 [Page 5]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

     0                   1                   2
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Type        |     Length    | Max-T.Encap  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type: 4
      Length: 1
      Max-T.Encap Value: 1 octet
      An 8 bit unsigned integer.

      If this value is zero or the sub-sub-TLV is omitted and
      the "E" flag is set in the associated SRv6 Capabilities
      sub-TLV, then it is assumed that the router can apply T.Encap
      by encapsulating the incoming packet in another IPv6 header
      without SRH the same way IPinIP encapsulation is performed.
      If the "E" flag is clear, then this sub-sub-TLV SHOULD NOT
      be transmitted and MUST be ignored on receipt.

2.5.  Maximum End D SRH sub-sub-TLV

   The Maximum End D SRH sub-sub-TLV specifies the maximum number of
   SIDs in an SRH when applying "End.DX6" and "End.DT6" functions.

     0                   1                   2
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Type        |     Length    | Max End D     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type: 5
      Length: 1
      Max End D Value: 1 octet
      An 8 bit unsigned integer.

      If this value is zero or the sub-sub-TLV is omitted,
      then it is assumed that the router cannot apply
      "End.DX6" or "End.DT6" functions if the extension
      header right underneath the outer IPv6 header is an SRH.

3.  SRv6-function Descriptor

   The SRv6 SID TLV defined in Section 4, P2P SRv6 X-SID sub-TLV
   specified in Section 6.1, and LAN SRv6 X-SID sub-TLV specified in
   section 6.2 MUST include one SRv6 function Descriptor.

Ginsberg, et al.          Expires April 2, 2018                 [Page 6]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

   When included in the SRv6 SID TLV, the descriptor is encoded as a
   sub-TLV.  When included in a P2P/LAN SRv6 X-SID sub-TLV, the
   descriptor is encoded as a sub-sub-TLV.

   The SRv6-function Descriptor encodes the function (and its flavors)
   bound to the SRv6 SID advertised in the SRv6 SID TLV [NP].

   The SRv6 SID function Descriptor has the following format:

Ginsberg, et al.          Expires April 2, 2018                 [Page 7]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

    0                   1
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
    +-+-+-+-+-+-+-+-+
    |   Type        |
    +-+-+-+-+-+-+-+-+
    |   Length      |
    +-+-+-+-+-+-+-+-+
    |   Flags       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Function (2 octets)           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

       Type: See IANA considerations in Section 7.

       Length: 3

       Flags:

           0 1 2 3 4 5 6 7
          +-+-+-+-+-+-+-+-+
          |P|U| Reserved  |
          +-+-+-+-+-+-+-+-+

      This document defines two flags to specify the
      flavor(s) [NP] associated with the SRv6 function
      specified in the "Function" field:

         P bit: If set, then the PSP flavor [NP] is associated with the
         function encoded in the "function" field

         U bit: If set, then the USP flavor [NP] is associated with the
         function encoded in the "function" field

         Reserved Bits SHOULD be transmitted as 0 and MUST be ignored on
         receipt.

      The second two octets encode the function. Function code points
      are defined in Section 5.

      For a given SRv6 SID function encoded in the "Function" field,
      the "P" and "U" bits are set/cleared according to the rules of
      enabling/disabling the PSP and USP flavors, respectively, for
      that function as specified in [NP].

Ginsberg, et al.          Expires April 2, 2018                 [Page 8]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

4.  SRv6-SID TLV

   A new top level TLV is introduced to advertise SRv6 Segment
   Identifiers (SID) and their attributes.

   The new TLV is used to advertise SRv6 SIDs with any of the functions
   defined in [NP] whose code point is defined in this document except
   those SIDs which must be associated with a particular neighbor in
   order to be correctly applied [NP].  SRv6 SIDs associated with a
   neighbor are advertised in the sub-TLVs defined in Section 6.

   This new TLV shares the sub-TLV space defined for TLVs 135, 235, 236
   and 237.  The SRv6 SID TLV has the following format:

Ginsberg, et al.          Expires April 2, 2018                 [Page 9]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

    0                   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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type        |     Length    |    flags      |   SID-size    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        SID (variable) . . .                                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | sub-tlv-len   |         Sub-TLVs (variable) . . .             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

       Type: 27 (Suggested value to be assigned by IANA)

       Length: variable.

       One or more SID entries, each of which has the following format:

      Flags: 1 octet. The following flags are defined

        0
        0 1 2 3 4 5 6 7
       +-+-+-+-+-+-+-+-+
       |D| Reserved    |
       +-+-+-+-+-+-+-+-+

       where:
         D bit: When the SID is leaked from level-2 to level-1, the D
         bit MUST be set.  Otherwise, this bit MUST be clear.  SIDs with
         the D bit set MUST NOT be leaked from level-1 to level-2.  This
         is to prevent looping.

         The remaining bits are reserved for future use. They SHOULD be
         set to zero on transmission and MUST be ignored on receipt.

       SID-Size: 1 octet. Number of bits in the SID field.

       SID: 1-16 octets. This field encodes the advertised SRv6 SID. The
       "SID-size" field can have the values 1-128 and indicates the
       number of bits in the SID.  The SRv6 SID is encoded in the
       minimal number of octets for the given number of bits. The owning
       router may associate one or more functions as specified in [NP],
       in other documents, or as locally configured.

      Sub-TLV-length: 1 octet. Number of octets used by sub-TLVs

      The function associated with the advertised SID is specified by
      the SRv6-Function Descriptor sub-TLV specified in Section 3.

Ginsberg, et al.          Expires April 2, 2018                [Page 10]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

5.  Function Code Points

   This section defines the code points for supported functions
   associated with SRv6 SIDs.  Functions are defined in [NP].

   o  0: Reserved

   o  1: End Function

   o  2: End.X Function

   o  3: End.DX6 Function

   o  4: End.DT6 Function

6.  Advertising SRv6 SIDs associated with a Neighbor

   Certain SRv6 functions [NP] must be associated with a particular
   neighbor, and in case of multiple layer 3 links to the same neighbor,
   with a particular link in order to be correctly applied.

   This document specifies how to advertise two such functions in IS-
   IS, namely End.X and End.DX6 [NP].

   SIDs associated with End.X and End.DX6 functions are advertised
   within neighbor reachability TLVs.

   This document defines two new sub-TLVs of TLV 22, 23, 222, 223, and
   141 - namely "P2P SRv6 X-SID" and "LAN SRv6 X- SID".

6.1.  P2P Srv6 X-SID sub-TLV

   This sub-TLV is used to advertise one or more SRv6 SIDs associated
   with End.X and End.DX6 [NP] functions over a point to point
   adjacency.

   The "P2P SRv6 X-SID" sub-TLV has the following format:

Ginsberg, et al.          Expires April 2, 2018                [Page 11]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

    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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type        |     Length    |    Flags      |   SID-size    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        SID (variable) . . .                                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |sub-sub-tlv-len|      Sub-sub-TLVs (variable) . . .            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

       Type: 40 (Suggested value to be assigned by IANA)

       Length: variable.

       One or more SIDs each of which has the following format:

       Flags: 1 octet. No flags defined in this document

       SID-Size: 1 octet. Number of bits in the SID field.

       SID: 1-16 octets. This field encodes the advertised SRv6 SID. The
       "SID-size" field can have the values 1-128 and indicates the
       number of bits in the SID.  The SRv6 SID is encoded in the
       minimal number of octets for the given number of bits. The owning
       router may associate one or more functions as specified in [NP],
       in other documents, or as locally configured.

       Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub-
       TLVs

   The function associated with the advertised SID is specified by the
   SRv6-Function Descriptor sub-sub-TLV specified in Section 3.  If the
   SRv6-Function Descriptor is encoded in the P2P SRv6 X-SID sub-TLV,
   then the encoded SRv6 SID function MUST include only the code points
   of SRv6 SID functions that require the specification of a neighbor to
   be correctly applied.  This document specifies the code points of two
   such functions, namely End.X and End.DX6 [NP].

6.2.  LAN SRv6 X-SID sub-TLV

   This sub-TLV is used to advertise one or more SRv6 SIDs associated
   with End.X and End.DX6 [NP] functions over a LAN adjacency.  The "LAN
   SRv6 X-SID" sub-TLV has the following format:

Ginsberg, et al.          Expires April 2, 2018                [Page 12]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

    0                   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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type        |     Length    |    System ID (6 octets)       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Flags       |  SID-size   |    SID (variable) . . .         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |sub-sub-tlv-len|      sub-sub-TLVs (variable) . . .            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

       Type: 41 (Suggested value to be assigned by IANA)
       Length: variable.

       System-ID: 6 octets of IS-IS System-ID of length "ID Length" as
       defined in [ISO10589].

       One or more SIDs each of which has the following format:

       Flags 1 Octet. No flags are defined in this document

       SID-Size: 1 octet. Number of bits in the SID field.

       SID: 1-16 octets. This field encodes the advertised SRv6 SID. The
       "SID-size" field can have the values 1-128 and indicates the
       number of bits in the SID.  The SRv6 SID is encoded in the
       minimal number of octets for the given number of bits. The owning
       router may associate one or more functions as specified in [NP],
       in other documents, or as locally configured.

       Sub-sub-TLV-length: 1 octet. Number of octets used by sub-sub-
       TLVs.

   The function associated with the advertised SID is specified by the
   SRv6-Function Descriptor sub-sub-TLV specified in Section 3.  If the
   SRv6-Function Descriptor is encoded in the P2P SRv6 X-SID sub-TLV,
   then the encoded SRv6 SID function MUST include only the code points
   of SRv6 SID functions that require the specification of a neighbor to
   be correctly applied.  This document specifies the code points of two
   such functions, namely End.X and End.DX6 [NP].

7.  IANA Considerations

   This documents request allocation for the following TLVs, sub- TLVs,
   and sub-sub-TLVs as well updating the ISIS TLV registry and defining
   a new registry.

Ginsberg, et al.          Expires April 2, 2018                [Page 13]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

7.1.  SRv6 SID TLV and sub-TLVs

   This document adds the following new TLV to the IS-IS TLV Codepoints
   registry.

   Value: 27 (suggested - to be assigned by IANA)

   Name: SRv6 SID

   The name of the "Sub-TLVs for TLVs 135, 235, 236 and 237 registry"
   needs to be changed to "Sub-TLVs for TLVs 27, 135, 235, 236 and 237
   registry".

   This document adds a new sub-TLV to the (renamed) "Sub-TLVs for TLVs
   27, 135, 235, 236 and 237 registry".

   Value: 5 (Suggested - to be assigned by IANA)

   Name: SRv6-function Descriptor

   The revised table of sub-TLVs in the registry should be:

      Type  27 135 235 236 237

      1     n   y   y   y   y
      2     n   y   y   y   y
      3     y   y   y   y   y
      4     y   y   y   y   y
      5(new)y   n   n   n   n
      11    y   y   y   y   y
      12    y   y   y   y   y

7.2.  IS-IS SRv6-functions Codepoints Registry

   This document requests the creation of a new IANA managed registry to
   identify SRv6 SID functions.  The registration procedure is "Expert
   Review" as defined in [RFC7370].  Suggested registry name is "SRv6
   SID Function Types".  A function identifier is an unsigned 8 bit
   value.  The following values are defined by this document:

   0 Reserved

   1 End function.

   2 End.X function

   3 End.DX6 function.

Ginsberg, et al.          Expires April 2, 2018                [Page 14]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

   4 End.DT6 function.

7.3.  SRv6 Capabilities sub-TLV

   This document adds the definition of a new sub-TLV in the "Sub- TLVs
   for TLV 242 registry".

   Type: 22 (Suggested - to be assigned by IANA)

   Description: SRv6 Capabilities

   Thuis document requests the creation of a new IANA managed registry
   for sub-sub-TLVs of the SRv6 Capability sub-TLV.  The registration
   procedure is "Expert Review" as defined in [RFC7370].  Suggested
   registry name is "sub-sub-TLVs for SRv6 Capability sub-TLV".  The
   following sub-TLVs are defined by this document:

   0: Reserved

   1: Max-SL

   2: Max-End-Pop-SRH

   3: Max-T-Ins-SRH

   4: Max-T-Encap-SRH

   5: Max-End-D-SR

7.4.  P2P SRv6 X-SID and LAN SRv6 X-SID sub-TLVs

   This document adds the definition of two new sub-TLVs in the "sub-
   TLVs for TLV 22, 23, 141, 222 and 223 registry".

   Type: 40 (suggested - to be assigned by IANA)

   Description: Point-to-Point SRv6 X-SID

   Type: 41 (suggested - to be assigned by IANA)

   Description: LAN SRv6 X-SID

      Type  22 23 141 222 223

      40     y  y  y   y   y
      41     y  y  y   y   y

Ginsberg, et al.          Expires April 2, 2018                [Page 15]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

7.5.  IS-IS SRv6 X-SID sub-sub-TLV Codepoints Registry

   This document requests the creation of a new IANA managed registry to
   identify SRv6 SID functions encoded in P2P/LAN X-SID sub-TLVs.  The
   registration procedure is "Expert Review" as defined in [RFC7370].
   Suggested registry name is "SRv6 X-SID sub-sub-TLV Codepoints
   Registry".  The following values are defined by this document:

   Value: 5 (Suggested - to be assigned by IANA)

   Name: SRv6-function

   Descriptor This sub-sub-TLV MAY appear in either the Point-to-Point
   SRv6 X-SID or the LAN SRv6 X-SID sub-TLVs described in Section 7.4.

8.  Security Considerations

   Security concerns for IS-IS are addressed in [ISO10589, [RFC5304],
   and [RFC5310].

9.  Contributors

   The following people gave a substantial contribution to the content
   of this document and should be considered as co-authors:

Ginsberg, et al.          Expires April 2, 2018                [Page 16]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

     Stefano Previdi
     Cisco Systems, Inc.
     Email: stefano@previdi.net

     Peter Psenak
     Cisco Systems
     Apollo Business Center Mlynske nivy 43
     Bratislava  821 09
     Slovakia
     Email: ppsenak@cisco.com

     Paul Wells
     Cisco Systems
     Saint Paul,
     Minnesota
     United States
     Email: pauwells@cisco.com

     Daniel Voyer
     Email:  daniel.voyer@bell.ca

     Satoru Matsushima
     Email: satoru.matsushima@g.softbank.co.jp

     Bart Peirens
     Email: bart.peirens@proximus.com

     Hani Elmalky
     Email: hani.elmalky@ericsson.com

     Prem Jonnalagadda
     Email: prem@barefootnetworks.com

     Milad Sharif
     Email: msharif@barefootnetworks.com>

     Robert Hanzl
     Cisco Systems
     Millenium Plaza Building, V Celnici 10, Prague 1,
     Prague, Czech Republic
     Email rhanzl@cisco.com

10.  References

Ginsberg, et al.          Expires April 2, 2018                [Page 17]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

10.1.  Normative References

   [ISO10589]
              "Intermediate system to Intermediate system intra-domain
              routeing information exchange protocol for use in
              conjunction with the protocol for providing the
              connectionless-mode Network Service (ISO 8473), ISO/IEC
              10589:2002, Second Edition.", Nov 2002.

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

   [RFC5304]  Li, T. and R. Atkinson, "IS-IS Cryptographic
              Authentication", RFC 5304, DOI 10.17487/RFC5304, October
              2008, <https://www.rfc-editor.org/info/rfc5304>.

   [RFC5310]  Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R.,
              and M. Fanto, "IS-IS Generic Cryptographic
              Authentication", RFC 5310, DOI 10.17487/RFC5310, February
              2009, <https://www.rfc-editor.org/info/rfc5310>.

   [RFC7370]  Ginsberg, L., "Updates to the IS-IS TLV Codepoints
              Registry", RFC 7370, DOI 10.17487/RFC7370, September 2014,
              <https://www.rfc-editor.org/info/rfc7370>.

   [RFC7981]  Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions
              for Advertising Router Information", RFC 7981,
              DOI 10.17487/RFC7981, October 2016,
              <https://www.rfc-editor.org/info/rfc7981>.

10.2.  Informative References

   [NP]       "SRv6 Network Programming, draft-filsfils-spring-srv6-
              network-programming-01 (work in progress)", June 2017.

   [SRARCH]   "Segment Routing Architecture, draft-ietf-spring-segment-
              routing-12(work in progress)", June 2017.

   [SRH]      "IPv6 SegmentRouting Header (SRH), draft-ietf-6man-
              segment-routing-header-07 (work in progress)", July 2017.

Authors' Addresses

Ginsberg, et al.          Expires April 2, 2018                [Page 18]
Internet-Draft     draft-bashandy-isis-srv6-extensions    September 2017

   Les Ginsberg
   Cisco Systems
   821 Alder Drive
   Milpitas, CA  95035
   USA

   Email: ginsberg@cisco.com

   Ahmed Bashandy
   Cisco Systems
   170 West Tasman Dr
   San Jose, CA  95134
   USA

   Email: bashandy@cisco.com

   Clarence Filsfils
   Cisco Systems
   Brussels
   Belgium

   Email: cfilsfil@cisco.com

   Bruno Decraene
   Orange
   Issy-les-Moulineaux
   France

   Email: bruno.decraene@orange.com

Ginsberg, et al.          Expires April 2, 2018                [Page 19]