Internet DRAFT - draft-ct-isis-nspfid-for-sr-paths

draft-ct-isis-nspfid-for-sr-paths







LSR Working Group                                       U. Chunduri, Ed.
Internet-Draft                                                Huawei USA
Intended status: Standards Track                             J. Tantsura
Expires: September 24, 2018                               Nuage Networks
                                                                   Y. Qu
                                                              Huawei USA
                                                          March 23, 2018


       Usage of Non Shortest Path Forwarding (NSPF) IDs in IS-IS
                  draft-ct-isis-nspfid-for-sr-paths-01

Abstract

   This document specifies the advertisement of Non Shortest Path
   Forwarding IDentifier (NSPF ID) TLV and the computation procedures
   for the same in IS-IS protocol.  NSPF ID allows to simplify the data
   plane path description of data traffic in SR deployments.  This helps
   mitigate the MTU issues that are caused by additional SR overhead of
   the packet and allows traffic statistics.

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 RFC2119 [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 September 24, 2018.








Chunduri, et al.       Expires September 24, 2018               [Page 1]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


Copyright Notice

   Copyright (c) 2018 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
     1.1.  Mitigation with MSD and RLD . . . . . . . . . . . . . . .   3
     1.2.  Issues with Increased SID Depth . . . . . . . . . . . . .   3
     1.3.  Acronyms  . . . . . . . . . . . . . . . . . . . . . . . .   5
   2.  Non Shortest Path Forwarding IDentifier TLV . . . . . . . . .   6
     2.1.  Flags . . . . . . . . . . . . . . . . . . . . . . . . . .   7
     2.2.  NSPF-ID Fields  . . . . . . . . . . . . . . . . . . . . .   8
     2.3.  NSP sub-TLVs  . . . . . . . . . . . . . . . . . . . . . .   9
     2.4.  Non-NSP sub-TLVs  . . . . . . . . . . . . . . . . . . . .   9
   3.  Elements of Procedure . . . . . . . . . . . . . . . . . . . .  10
   4.  NSPF ID Data Plane aspects  . . . . . . . . . . . . . . . . .  12
     4.1.  MPLS Data Plane . . . . . . . . . . . . . . . . . . . . .  12
     4.2.  SRv6 Data Plane . . . . . . . . . . . . . . . . . . . . .  12
   5.  NSP Traffic Accounting  . . . . . . . . . . . . . . . . . . .  12
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  13
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  13
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  13
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  13
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .  13
     9.2.  Informative References  . . . . . . . . . . . . . . . . .  13
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  15

1.  Introduction

   In a network implementing source routing, packets may be transported
   through the use of segment identifiers (SIDs), where a SID uniquely
   identifies a segment as defined in [I-D.ietf-spring-segment-routing].
   In SR-MPLS, a segment is encoded as a label and an ordered list of
   segments is encoded as a stack of labels.  In SRv6, a segment is
   encoded as an IPv6 address, with a new type of IPv6 routing header




Chunduri, et al.       Expires September 24, 2018               [Page 2]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


   called SRH.  An ordered list of segments is encoded as an ordered
   list of IPv6 addresses in SRH [I-D.ietf-6man-segment-routing-header].

   The segment may include one or more nodes, unidirectional adjacencies
   between two nodes or service instruction by a particular node in the
   network.  A Non Shortest Path (NSP) could be a Traffic Engineered
   (TE) path or an explicitly provisioned FRR path or a service chained
   path.  NSP can be described using list of segments in SR.  However,
   this creates a problem of having a relatively large stack imposed on
   the data packet.  A path that is encoded with SIDs can be a loose or
   strict path.  In a strict path all the nodes/links on the path are
   encoded as SIDs, with the expense of number of total SIDs in the
   stack.

1.1.  Mitigation with MSD and RLD

   The number of SIDs in the stack a node can impose is referred as
   Maximum SID Depth (MSD) capability
   [I-D.ietf-isis-segment-routing-msd], which must be taken into
   consideration when computing a path to transport a data packet in a
   network implementing segment routing.  [I-D.ietf-isis-mpls-elc]
   defines Readable Label Depth (RLD) that is used by a head-end to
   insert Entropy Label pair (ELI/EL) at appropriate depth, so it could
   be read by transit nodes.  There are situations where the source
   routed path can be excessive as path represented by SR SIDs need to
   describe all the nodes and ELI/EL based on the readability of the
   nodes in that path.

   While MSD (and RLD) capabilities advertisement help mitigate the
   problem for a central entity to create the right source routed path
   per application/operator requirements; actual depth is still limited
   by the underlying hardware in the data path.

1.2.  Issues with Increased SID Depth

   Consider the following network where SR-MPLS data plane is in use and
   with same SRGB (5000-6000) on all nodes i.e., A1 to A7 and B1 to B7
   for illustration:













Chunduri, et al.       Expires September 24, 2018               [Page 3]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


        SID:10   SID:20   SID:30   SID:40  SID:50 SID:300(Ax)  SID:60   SID:70
        A1-------A2-------A3-------A4-------A5===============A6----------A7
                 \               /  \5     5/ \   SID:310(Ay) \          /
                  \ 10        10/    +-A10-+   \               \10      /10
                   \           /      SID:100   \               \      /
             SID:80 \A8-----A9/SID:90            \  40           \    /
                    /         \                   +---+           \  /
                   /10 B2x:125 \10                     \           \/
        B1--------B2============B3----B4--------B5-------B6----------B7
        SID:110   SID:120  SID:130   SID:140   SID:150  SID:160  SID:170


                         Figure 1: SR-MPLS Network

      Global ADJ SIDs are provisioned between A5 and A6 .All other SIDs
      shown are nodal SID indices.

      All metrics of the links are set to 1, other values as configured.

      Shortest Path from A1 to A7: A2-A3-A4-A5-A6-A7

      NSP1: From A1 to A7 - A2-A8-B2-B2x-A9-A10-Ax-A7; Pushed Label
      Stack @A1: 5020:5080:5120:5125:5090:5100:5300:5070 (where B2x is a
      local ADJ-SID and Ax is a global ADJ-SID)

   In the above example NSP1 is represented with a combination of
   Adjacency and Node SIDs with a stack of 8 labels each.  However, this
   value can be larger, if the use of entropy label is desired and based
   on the RLD capabilities of each node and additional labels required
   to insert ELI/EL at appropriate places.  Though above network is
   shown with SR-MPLS data plane, problem is similar if the network were
   a SR-IPv6 network with all SIDs encoded as IPv6 SIDs in SRH.

   In various SR deployments, the following issues may arise:

   a.  Not all nodes in the path can support MSD or RLD needed to
       satisfy user/operator requirements, when the number of SIDs
       increased to describe the source routed path.  This problem gets
       multiplied by four times in SRH compared to MPLS data plane
       because of the SID size (16 bytes) in SRH.

   b.  Even if all nodes can support the required MSD or RLD, the bigger
       label stack/depth can cause potential MTU/fragmentation issues.

   c.  In some deployments, it is also required reducing the overhead in
       the network layer, especially for low packet size packets, where
       the actual data can be way lesser than all encapsulations and SR
       path overheads.



Chunduri, et al.       Expires September 24, 2018               [Page 4]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


   Apart from the above some deployments need path accounting statistics
   for path monitoring and traffic re-optimizations.
   [I-D.hegde-spring-traffic-accounting-for-sr-paths] proposes a
   solution, however this further increases the depth of SID stack.  The
   approach could be counter productive in the environments, where SID
   depth is already causing deployment issues as listed above.

   To mitigate the above issues, and also to facilitate forwarding plane
   a mechanism to identify the SR path with a corresponding data plane
   identifier for accounting of traffic for SR paths, this draft
   proposes a new IS-IS TLV (Section 2) to advertise the NSPs with Non
   Shortest Path Forwarding IDentifier (NSPF ID).

   This draft lays out procedure for IS-IS nodes to how to use NSPF ID
   TLV in Section 3.  With corresponding data plane, Section 3
   mechanism, reduces the SID stack in the data plane from 8 SIDs shown
   in SR-PATH-1 and SR-PATH-2 with a single NSPF ID.  This draft also
   introduce source routed paths with NSPF ID types defined for native
   IPv4 and IPv6 data planes as defined in Section 2.2.

1.3.  Acronyms

   EL       -  Entropy Label

   ELI      -  Entropy Label Indicator

   MPLS     -  Multi Protocol Label Switching

   MSD      -  Maximum SID Depth

   MTU      -  Maximum Transferrable Unit

   NSP      -  Non Shortest Path

   SID      -  Segment Identifier

   SPF      -  Shortest Path First

   SR       -  Segment Routing

   SRH      -  Segment Routing Header

   SR-MPLS  -  Segment Routing with MPLS data plane

   SRv6     -  Segment Routing with Ipv6 data plane with SRH

   SRH      -  IPv6 Segment Routing Header




Chunduri, et al.       Expires September 24, 2018               [Page 5]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


   TE       -  Traffic Engineering

2.  Non Shortest Path Forwarding IDentifier TLV

   This section describes the encoding of NSPF ID TLV.  This TLV can be
   seen as having 3 logical section viz., encoding od FEC Prefix,
   encoding of NSPF-ID with description of ordered path with sub-TLVs
   and a set of optional non-NSP sub-TLVs which can be used to describe
   one or more parameters of the path.  Multiple instances of this TLV
   MAY be advertised in IS-IS LSPs with different NSPF-ID Type and with
   corresponding path description sub-TLVS.  The NSPF-ID TLV has Type
   TBD (suggested value xxx), and has the following format:

        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    |     Reserved  |     Flags     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           MT-ID               | Prefix Len    |  FEC Prefix   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       //           FEC Prefix (continued, variable)                  //
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | NSPF-ID Type  | NSPF-ID Len   | NSPF-ID Flags |  NSPF-ID Algo |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       //           NSPF-ID  (continued, variable)                    //
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |No.of NSP-STs  |  NSP sub-TLVs (Variable)                     //
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |No.of Other-STs| Non-NSP sub-TLVs(variable)                   //
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Figure 2: NSPF ID TLV Format

      Type - TBD from IS-IS top level TLV registry.

      Length - Total length of the value field in bytes (variable).

      Reserved - 1 Octet reserved bits for future use.  Reserved bits
      MUST be reset on transmission and ignored on receive.

      Flags - Flags for this TLV are described in Section 2.1.

      MT-ID - is the multi-topology identifier defined in [RFC5120] with
      4 most significant bits reset on transmission and ignored on
      receive.  The remaining 12-bit field contains the MT-ID.

      Prefix Len - contains the length of the prefix in bits.  Only the
      most significant octets of the Prefix are encoded.



Chunduri, et al.       Expires September 24, 2018               [Page 6]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


      FEC Prefix - represents the Forwarding Equivalence Class at the
      tail-end of the advertised NSP.  The "FEC Prefix" corresponds to a
      routable prefix of the originating node and it MAY have one of the
      [RFC7794] flags set (X-Flag/R-Flag/N-Flag).  Value of this field
      MUST be 4 octets for IPv4 "FEC Prefix".  Value of this field MUST
      be 16 octets for IPv6 "FEC Prefix".  Encoding is similar to TLV
      135 and TLV 236 or MT-Capable [RFC5120] IPv4 (TLV 235) and IPv6
      Prefixes (TLV 237) respectively.

2.1.  Flags

   Flags: 1 octet field of NSPD ID TLV has following flags defined.
   These flags mostly related to applicability of this TLV in an L1 area
   or entire IS-IS domain:

        NSPF ID Flags Format

            0 1 2 3 4 5 6 7
           +-+-+-+-+-+-+-+-+
           |S|D|A| Rsrvd   |
           +-+-+-+-+-+-+-+-+


      S - If set, the NSPF ID TLV MUST be flooded across the entire
      routing domain.  If the S flag is not set, the NSPF ID TLV MUST
      NOT be leaked between IS-IS levels.  This bit MUST NOT be altered
      during the TLV leaking

      D - when the NSPF ID TLV is leaked from IS-IS level-2 to level-1,
      the D bit MUST be set.  Otherwise, this bit MUST be clear.  NSPF
      ID TLVs with the D bit set MUST NOT be leaked from level-1 to
      level-2.  This is to prevent TLV looping across levels.

      A - The originator of the NSPF ID TLV MUST set the A bit in order
      to signal that the prefixes and NSPF-IDs advertised in the NSPF ID
      TLV are directly connected to their originators.  If this bit is
      not set, this allows any other node in the network advertise this
      TLV on behalf of the originating node of the "FEC Prefix".  If the
      NSPF ID TLV is leaked to other areas/levels the A-flag MUST be
      cleared.

      Rsrvd - reserved bits for future use.  Reserved bits MUST be reset
      on transmission and ignored on receive.








Chunduri, et al.       Expires September 24, 2018               [Page 7]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


2.2.  NSPF-ID Fields

   This represents the actual data plane identifier in the packet and
   could be of any data plane as defined in type field.  Both "FEC
   Prefix" and NSPF-ID MUST belong to a same node in the network.

   1.  NSPF-ID Type: This is a new registry (TBD IANA) for this TLV and
       the defined types are as follows.  Type: 1 - MPLS SID/Label Type:
       2 Native IPv4 Address Type: 3 Native IPv6 Address Type 4: IPv6
       SID in SRv6 with SRH

   2.  NSPF-ID Len: Length of the NSPF Identifier field in octets and
       this depends on the NSPF-ID type.  See NSPF-ID below for the
       length of this field and other considerations.

   3.  NSPF-ID Flags: 1 Octet field for NSPF-ID flags.  Some of the bits
       could be NSPF-ID type specific and each new type MUST define the
       flags applicable to the NSPF-ID type.  For NSPF-ID Type 1, the
       flags are same as Section 2.1 definition in
       [I-D.ietf-isis-segment-routing-extensions].  For NSPF-ID Type 2,
       3 and NSPF-ID Type 4 only 'R' flag is applicable.  Undefined
       flags for each NSPF-ID type MUST be considered as reserved.
       Reserved flag bits in each NSPF-ID type specific flags MUST be
       reset on transmission and ignored on receive.

   4.  NSPF-ID Algo: 1 octet value represents the SPF algorithm.
       Algorithm registry is as defined in
       [I-D.ietf-isis-segment-routing-extensions].

   5.  NSPF-ID: This is the NSP forwarding identifier that would be on
       the data packet.  The value of this field is variable and it
       depends on the NSPF-ID Type.  For Type 1, this is and MPLS SID/
       Label.  For Type 2 this is a 4 byte IPv4 address.  For Type 3 and
       Type 4, it is a 16 byte IPv6 address.  For NSPF-ID Type 2, 3 or
       4, if the NSPF-ID Len is set to 0, then FEC Prefix would also
       become the NSPF-ID.  In the case when NSPF-ID Len is 0 and NSPF-
       ID Type is 2, then FEC Prefix length MUST be a 4 byte IPv4
       address.  Similarly, if NSPF-ID Type is 3 or 4 with NSPF-ID Len
       is set to 0, then FEC Prefix MUST be of a 16 byte IPv6 Address.
       For NSPF-ID Type 2, 3 or 4, if the NSPF-ID Len is set to non zero
       value, then the NSPF-ID MUST not be advertised as a routable
       prefix in TLV 135, TLV 235, TLV 236 and TLV 237, but that MUST
       belog to the node where "FEC Prefix" is advertised.

   6.  No.of NSP-STs: Total number of the NSP sub-TLVs are defined with
       this 1-octet field.  The value MUST NOT be zero.





Chunduri, et al.       Expires September 24, 2018               [Page 8]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


2.3.  NSP sub-TLVs

   A new sub-TLV registry is created (TBD IANA) called NSP sub-TLVs.
   These are used to describe the path in the form of set of contiguous
   and ordered sub-TLVs, with first sub-TLV representing the top of the
   stack or first segment.  These set of ordered TLVs can have both
   topological SIDs and non-topological SIDs (e.g., service segments).

      Type 1: SID/Label sub-TLV as defined in
      [I-D.ietf-isis-segment-routing-extensions].  Only Type is defined
      and Length/Value fields are per Section 2.3 of the referenced
      document.

      Type 2: Prefix SID sub-TLV as defined in
      [I-D.ietf-isis-segment-routing-extensions].  Only Type is defined
      and Length/Value fields are per Section 2.1 of the referenced
      document.

      Type 3: Adjacency SID sub-TLV as defined in
      [I-D.ietf-isis-segment-routing-extensions].  Only Type is defined
      and Length/Value fields are per Section 2.2 of the referenced
      document.

      Type 4: Length 4 bytes, value is 4 bytes IPv4 address encoded
      similar to IPv4 FEC Prefix described above.

      Type 5: Length 16 bytes; value is 16 bytes IPv6 address encoded
      similar to IPv6 FEC Prefix described above.

      Type 6: SRv6 Node SID TLV as defined in
      [I-D.bashandy-isis-srv6-extensions].  Only Type is defined and
      Length/Value fields are per Section 4 of the referenced document.

      Type 7: SRv6 Adjacency-SID sub-TLV as defined in
      [I-D.bashandy-isis-srv6-extensions].  Only Type is defined and
      Length/Value fields are per Section 6.1 of the referenced
      document.

      Type 8: SRv6 LAN Adjacency-SID sub-TLV as defined in
      [I-D.bashandy-isis-srv6-extensions].  Only Type is defined and
      Length/Value fields are per Section 6.2 of the referenced
      document.

2.4.  Non-NSP sub-TLVs

   NSPF ID TLV also defines a new sub-TLV registry (TBD IANA) for
   defining extensible set of sub-TLVs other than describing the path
   sub-TLVs.  Total number of the path sub-TLVs to describe the path are



Chunduri, et al.       Expires September 24, 2018               [Page 9]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


   defined in 1-octet field "No.of Other-STs" just before the Non-NSP
   sub-TLVs.  This field serves as a demarcation for set of ordered NSP
   sub-TLVs and Non-NSP sub-TLVs.

      Type 1: Length 0 No value field.  Specifies a counter to count
      number of packets forwarded on this NSPF-ID.

      Type 2: Length 0 No value field.  Specifies a counter to count
      number of bytes forwarded on this NSPF-ID specified in the network
      header (e.g.  IPv4, IPv6).

      Type 3: Length 4 bytes, and Value is metric of this path
      represented through the NSPF-ID.  Different nodes can advertise
      the same NSPF-ID for the same FEC-Prefix with a different set of
      NSP sub-TLVs and the receiving node MUST consider the lowest
      metric value (TBD more, what happens when metric is same for two
      different set of NSP sub-TLVs).

3.  Elements of Procedure

   As specified in Section 1, a NSP can be a TE path, locally
   provisioned by the operator.  Consider the following IS-IS network to
   describe the operation of NSPF ID TLV as defined in Section 2:

                                           1
                                        _______
                                       /   1   \
                                   +---R2-------R3---+
                                  /    \_______/      \
                                 /         1           \
                              1 /        2              \ 1
                               /       ______            \
                              /       /      \            \
                            R1------R6       R7-----------R4
                              \  2    \______/    2       /\
                               \          2              /  \
                              3 \                       / 3  \1
                                 \                 4   /      \
                                  +----R8------R9-----R10------R12
                                                \          1   /
                                               1 \            / 1
                                                  +----R11---+


                          Figure 3: IS-IS Network

   In the above diagram (Figure 3) node R1 is an ingress node, or a
   head-end node, and the node R4 may be an egress node or another head-



Chunduri, et al.       Expires September 24, 2018              [Page 10]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


   end node.  The numbers shown on each of the links between nodes
   R1-R11 indicate a IS-IS metric as provisioned by the operator.  R1
   may be configured to receive TE source routed path information from a
   central entity (PCE or Controller) that comprise NSP information
   which relates to sources that are attached to R1.  It is also
   possible to have an NSP provisioned locally by the operator for non-
   TE needs (FRR or for chaining certain services).  The NSP information
   is encoded as an ordered list of segments from source to a
   destination node in the network and is represented with an NSPF-ID.
   The NSP information includes NSP sub-TLVS which represents both
   topological and non-topological segments and specifies the actual
   path towards a FEC/Prefix by R4.

   The shortest path towards R4 from R1 are through the following
   sequence of nodes: R1-R2-R3-R4 based on the configured metrics.  The
   central entity may define a few NSPs from R1 to R4 that deviate from
   the shortest path based on other network characteristic requirements
   as requested by an application or service.  For example, the network
   characteristics or performance requirements may include bandwidth,
   jitter, latency, throughput, error rate, etc.  A first NSP may be
   identified by NSPF ID = 2 and may include the path of R1-R6-R7-R4 for
   a FEC Prefix advertised by R4.  A second NSP may be identified by
   NSPF ID = 3 and may include the path of R1-R8-R9-R10-R4.  Though
   these example shows NSP with all nodal SIDs, it is possible to have
   an NSP with combination of node and adjacency SIDS (local or global)
   or with non-topological segments along with these.

   Each receiving node, determine whether an advertised NSP includes
   information regarding the receiving node.  This MAY be done, during
   the end of the SPF computation for MTID that is advertised in this
   TLV and for the FEC/Prefix.  For example, node R9 receives the NSP
   information, and ignores the first NSP identified by NSPF ID = 2
   because this NSP does not include node R9.

   However, node R9 may determine that the second NSP identified by NSPF
   ID = 3 does include the node R9 for the FEC prefix advertised by R4.
   Therefore, node R9 updates the local forwarding database to include
   an entry for the destination address of R4 that indicates, that when
   a data packet comprising a NSPF-ID of 3 is received, forward the data
   packet to node R10 instead of R11.  This is even though from R9 the
   shortest path cost to reach R4 via R11 is 3 (R9-R11-R12-R4) it
   chooses the nexthop to R10 to reach R4 as specified in the NSP.  Same
   process happens to all the nodes on the NSP.

   In summary, the receiving node checks if this node is on the path, if
   yes, it adjusts the shortest path nexthop computed towards "FEC
   Prefix" to the shortest path nexthop towards the next segment as
   specified in the NSP.



Chunduri, et al.       Expires September 24, 2018              [Page 11]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


4.  NSPF ID Data Plane aspects

   Data plane NSPF ID is selected by the entity (e.g., a controller,
   locally provisioned) which selects a particular NSP in the network.
   Section 2.2 defines various data plane identifier types and a
   corresponding data plane identifier type and identifier is selected
   by the entity which selects the NSP.  Other data planes other than
   described below can also use this TLV to describe the NSP.  Further
   details TBD.

4.1.  MPLS Data Plane

   If NSPF-ID Type is 1, the NSP belongs to SR-MPLS data plane and the
   complete NSP stack is represented with a unique SR SID/Label and this
   gets programmed on the data plane with the appropriate nexthop
   computed as specified in Section 3 . NSP path description here is a
   set of ordered SID TLVs and MAY contain both topological and non-
   topological segments.

4.2.  SRv6 Data Plane

   If NSPF-ID Type is 4, the NSP belongs to SRv6 with SRH data plane and
   the complete NSP stack is represented with IPv6 SIDs and this gets
   programmed on the data plane with the appropriate nexthop computed as
   specified in Section 3.  NSP path description here is a set of
   ordered SID TLVs and MAY contain both topological and non-topological
   segments (e.g. network functions, service functions).  If NSPF-ID
   Type is 3 this is the traditional IPv6 mode
   ([I-D.ietf-dmm-srv6-mobile-uplane]) and this doesn't include SRH and
   NSP stack description is similar to NSPF-ID Type 4 as described.

5.  NSP Traffic Accounting

   As described in Section 2.4, each node described in the NSP optional
   sub-TLVs can provision the hardware to account the traffic statistics
   as indicated in the non-NSP sub-TLVs for the actual data traffic.
   with this more granular and dynamic enablement of traffic statistics
   for only certain NSPs would be possible.  This approach, thus is more
   safe and secure than any mechanism that involves creating state in
   the nodes with data traffic itself.  This is because creation and
   deletion of the traffic accounting state for NSPs happen through IS-
   IS LSP processing and IS-IS security Section 8 options are applicable
   to this TLV.

   How the traffic accounting is distributed to a central entity is out
   of scope of this document.  One can use any method (e.g. gRPC) to
   extract the NSPF-ID traffic stats from various nodes along the path.




Chunduri, et al.       Expires September 24, 2018              [Page 12]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


6.  Acknowledgements

   Thanks to Richard Li, Alex Clemm, Kiran Makhijani and Lin Han for
   initial discussions on this topic.

   Earlier versions of draft-ietf-isis-segment-routing-extensions have a
   mechanism to advertise EROs through Binding SID.

7.  IANA Considerations

   This document requests the following new TLVin IANA IS-IS TLV code-
   point registry.

        TLV #   Name
        -----   --------------
        TBD     NSPF ID TLV


   This document also requests IANA to create new registries for NSPF-ID
   Type, NSP sub-TLVs and Non-NSP sub-TLVs in NSPF ID TLV as described
   in Section 2.

8.  Security Considerations

   Security concerns for IS-IS are addressed in [RFC5304] and [RFC5310].
   Further security analysis for IS-IS protocol is done in [RFC7645].
   Advertisement of the additional information defined in this document
   introduces no new security concerns in IS-IS protocol.  However as
   this extension is related to SR-MPLS and SRH data planes as defined
   in [I-D.ietf-spring-segment-routing], those particular data plane
   security considerations does apply here.

9.  References

9.1.  Normative References

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

9.2.  Informative References

   [I-D.bashandy-isis-srv6-extensions]
              Ginsberg, L., Bashandy, A., Filsfils, C., Decraene, B.,
              and Z. Hu, "IS-IS Extensions to Support Routing over IPv6
              Dataplane", draft-bashandy-isis-srv6-extensions-02 (work
              in progress), March 2018.



Chunduri, et al.       Expires September 24, 2018              [Page 13]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


   [I-D.hegde-spring-traffic-accounting-for-sr-paths]
              Hegde, S., "Traffic Accounting for MPLS Segment Routing
              Paths", draft-hegde-spring-traffic-accounting-for-sr-
              paths-01 (work in progress), October 2017.

   [I-D.ietf-6man-segment-routing-header]
              Previdi, S., Filsfils, C., Leddy, J., Matsushima, S., and
              d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header
              (SRH)", draft-ietf-6man-segment-routing-header-10 (work in
              progress), March 2018.

   [I-D.ietf-dmm-srv6-mobile-uplane]
              Matsushima, S., Filsfils, C., Kohno, M., Camarillo, P.,
              daniel.voyer@bell.ca, d., and C. Perkins, "Segment Routing
              IPv6 for Mobile User Plane", draft-ietf-dmm-srv6-mobile-
              uplane-01 (work in progress), March 2018.

   [I-D.ietf-isis-mpls-elc]
              Xu, X., Kini, S., Sivabalan, S., Filsfils, C., and S.
              Litkowski, "Signaling Entropy Label Capability and
              Readable Label-stack Depth Using IS-IS", draft-ietf-isis-
              mpls-elc-03 (work in progress), January 2018.

   [I-D.ietf-isis-segment-routing-extensions]
              Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A.,
              Gredler, H., Litkowski, S., Decraene, B., and J. Tantsura,
              "IS-IS Extensions for Segment Routing", draft-ietf-isis-
              segment-routing-extensions-15 (work in progress), December
              2017.

   [I-D.ietf-isis-segment-routing-msd]
              Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg,
              "Signaling MSD (Maximum SID Depth) using IS-IS", draft-
              ietf-isis-segment-routing-msd-09 (work in progress),
              January 2018.

   [I-D.ietf-spring-segment-routing]
              Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B.,
              Litkowski, S., and R. Shakir, "Segment Routing
              Architecture", draft-ietf-spring-segment-routing-15 (work
              in progress), January 2018.

   [RFC5120]  Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi
              Topology (MT) Routing in Intermediate System to
              Intermediate Systems (IS-ISs)", RFC 5120,
              DOI 10.17487/RFC5120, February 2008,
              <https://www.rfc-editor.org/info/rfc5120>.




Chunduri, et al.       Expires September 24, 2018              [Page 14]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


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

   [RFC7413]  Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP
              Fast Open", RFC 7413, DOI 10.17487/RFC7413, December 2014,
              <https://www.rfc-editor.org/info/rfc7413>.

   [RFC7645]  Chunduri, U., Tian, A., and W. Lu, "The Keying and
              Authentication for Routing Protocol (KARP) IS-IS Security
              Analysis", RFC 7645, DOI 10.17487/RFC7645, September 2015,
              <https://www.rfc-editor.org/info/rfc7645>.

   [RFC7794]  Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and
              U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4
              and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794,
              March 2016, <https://www.rfc-editor.org/info/rfc7794>.

Authors' Addresses

   Uma Chunduri (editor)
   Huawei USA
   2330 Central Expressway
   Santa Clara, CA  95050
   USA

   Email: uma.chunduri@huawei.com


   Jeff Tantsura
   Nuage Networks
   755 Ravendale Drive
   Mountain View, CA  94043
   USA

   Email: jefftant.ietf@gmail.com










Chunduri, et al.       Expires September 24, 2018              [Page 15]

Internet-DraUsage of Non Shortest Path Forwarding (NSPF) IDs  March 2018


   Yingzhen Qu
   Huawei USA
   2330 Central Expressway
   Santa Clara, CA  95050
   USA

   Email: yingzhen.qu@huawei.com












































Chunduri, et al.       Expires September 24, 2018              [Page 16]