Segment Routing Generic TLV for MPLS Label Switched Path (LSP) Ping/ Traceroute
draft-nainar-mpls-spring-lsp-ping-sr-generic-sid-00

Document Type Active Internet-Draft (individual)
Last updated 2019-07-09
Stream (None)
Intended RFC status (None)
Formats plain text pdf html bibtex
Stream Stream state (No stream defined)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
Network Work group                                        N. Nainar, Ed.
Internet-Draft                                         C. Pignataro, Ed.
Intended status: Standards Track                                  Z. Ali
Expires: January 9, 2020                                     C. Filsfils
                                                                   Cisco
                                                            July 8, 2019

  Segment Routing Generic TLV for MPLS Label Switched Path (LSP) Ping/
                               Traceroute
          draft-nainar-mpls-spring-lsp-ping-sr-generic-sid-00

Abstract

   RFC8402 introduces Segment Routing architecture that leverages source
   routing and tunneling paradigms and can be directly applied to the
   Multi Protocol Label Switching (MPLS) data plane.  A node steers a
   packet through a controlled set of instructions called segments, by
   prepending the packet with Segment Routing header.  SR architecture
   defines different types of segments with different forwarding
   semantics associated.  SR can be applied to the MPLS directly and to
   IPv6 dataplane using a new routing header.

   RFC8287 defines the extensions to MPLS LSP Ping and Traceroute for
   Segment Routing IGP-Prefix and IGP-Adjacency Segment Identifier
   (SIDs) with an MPLS data plane.  Various SIDs are proposed as part of
   SR architecture with different associated instructions that raises a
   need to come up with new Target FEC Stack Sub-TLV for each such SIDs.

   This document defines a new Target FEC Stack Sub-TLV that is used to
   validate the instruction associated with any SID.

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 January 9, 2020.

Nainar, et al.           Expires January 9, 2020                [Page 1]
Internet-Draft   SR Generic TLV for MPLS LSP Ping/Trace        July 2019

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
   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.  Challenges with Existing Mechanism  . . . . . . . . . . .   3
   2.  Requirements notation . . . . . . . . . . . . . . . . . . . .   3
   3.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  Target FEC Stack sub-TLV for Segment Routing SID  . . . . . .   4
     4.1.  Segment Routing Generic Label . . . . . . . . . . . . . .   4
     4.2.  FEC for Path validation . . . . . . . . . . . . . . . . .   4
   5.  Procedures  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     5.1.  SID to Interface Mapping  . . . . . . . . . . . . . . . .   5
     5.2.  Initiator behavior  . . . . . . . . . . . . . . . . . . .   6
       5.2.1.  SRGL in Target FEC Stack TLV  . . . . . . . . . . . .   6
     5.3.  Responder behavior  . . . . . . . . . . . . . . . . . . .   7
     5.4.  PHP flag behavior . . . . . . . . . . . . . . . . . . . .   8
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   8.  Acknowledgement . . . . . . . . . . . . . . . . . . . . . . .   8
   9.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .   8
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     10.1.  Normative References . . . . . . . . . . . . . . . . . .   8
     10.2.  Informative References . . . . . . . . . . . . . . . . .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   9

1.  Introduction

   [RFC8402] introduces and describes a Segment Routing architecture
   that leverages the source routing and tunneling paradigms.  A node
   steers a packet through a controlled set of instructions called
   segments, by prepending the packet with Segment Routing header.  A
   detailed definition of the Segment Routing architecture is available
   in [RFC8402]

Nainar, et al.           Expires January 9, 2020                [Page 2]
Internet-Draft   SR Generic TLV for MPLS LSP Ping/Trace        July 2019

   As described in [RFC8402] and [I-D.ietf-spring-segment-routing-mpls],
   the Segment Routing architecture can be directly applied to an MPLS
   data plane, the Segment identifier (Segment ID) will be of 20-bits
   size and the Segment Routing header is the label stack.

1.1.  Challenges with Existing Mechanism

   [RFC8287] defines the mechanism to perform LSP Ping and Traceroute
   for Segment Routing with MPLS data plane.  [RFC8287] defines the
   Target FEC Stack Sub-TLVs for IGP-Prefix Segment ID and IGP-Adjacency
   Segment ID.

   There are various other Segment IDs proposed by different documents
   that are applicable for SR architecture.
   [I-D.ietf-idr-bgp-prefix-sid] defines BGP Prefix Segment ID,
   [I-D.ietf-idr-bgpls-segment-routing-epe] defines BGP Peering Segment
   ID such as Peer Node SID, Peer Adj SID and Peer Set SID.
   [I-D.sivabalan-pce-binding-label-sid] defines Path Binding Segment
   ID.  As SR evolves for different usecases, we may see more types of
   SIDs defined in the future.  This raises a need to propose new Target
   FEC Stack Sub-TLV for each such Segment ID that may need specific or
   network wide software upgrade to support such new Target FEC Stack
   Sub-TLVs.

   So instead of proposing different Target FEC Stack Sub-TLV for each
   SID, this document attempt to propose a SR Generic Label Sub-TLV for
   Target FEC Stack TLV with the procedure to validate the associated
   instruction.

   This document describes the new Target FEC Stack Sub-TLV that carries
   the SID and the assigner node information and the procedure to use
   LSP Ping and Traceroute using the new sub-tlv to support path
   validation and fault isolation for any SR Segment IDs.

2.  Requirements notation

   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 RFC
   2119 [RFC2119] RFC 8174 [RFC8174] when and only when, they appear in
   all capitals, as shown here.

3.  Terminology

   This document uses the terminologies defined in [RFC8402], [RFC8029],
   readers are expected to be familiar with it.

Nainar, et al.           Expires January 9, 2020                [Page 3]
Internet-Draft   SR Generic TLV for MPLS LSP Ping/Trace        July 2019

4.  Target FEC Stack sub-TLV for Segment Routing SID

   Following the procedure defined in [RFC8029], below defined Target
   FEC Stack Sub-TLV will be included for each labels in the stack.  The
   below Sub-TLV is defined for Target FEC Stack TLV (Type 1), the
   Reverse-Path Target FEC Stack TLV (Type 16), and the Reply Path TLV
   (Type 21).

           sub-Type    Value Field
           --------  ---------------
            TBD1      Segment Routing Generic Label (SRGL)

4.1.  Segment Routing Generic Label

   The format of the Sub-TLV is as specified below:

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                             SR SID                            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                  LSP End Point (4 or 16 octets)               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   SR SID

      Carries 20 bits of Segment ID that is used for validating the
      instruction.

   LSP End Point

      This field carries the node address of the end point that
      terminates the LSP.

4.2.  FEC for Path validation

   In SR architecture, any SID is associated with topology or service
   instruction.  While the topology instruction steers the packet over
   best path or specific path, the service instruction instructs the
   type of service to be applied on the packet.

Nainar, et al.           Expires January 9, 2020                [Page 4]
Internet-Draft   SR Generic TLV for MPLS LSP Ping/Trace        July 2019

                  R3-------R6      L1
                 /           \  +-------+
                /             \ |  L2   |
        R1----R2               R7------R8
                \             /
                 \           /
                  R4-------R5

          Figure 1: Segment Routing network

 The Node Segment IDs for Rx for Algo 0 is 16000x. (Ex: For R1, it is 160001)
 The Node Segment IDs for Rx for Algo 128 is 16128x. (Ex: For R1, it is 161281)

 9178 --> Adjacency Segment ID from R7 to R8 over link L1.
 9278 --> Adjacency Segment ID from R7 to R8 over link L2.
 9378 --> Parallel Adjacency Segment ID from R7 to R8 over Link L1 or L2.
 9187 --> Adjacency Segment ID from R8 to R7 over link L1.
 9287 --> Adjacency Segment ID from R8 to R7 over link L2.
 9387 --> Parallel Adjacency Segment ID from R8 to R7 over Link L1 or L2.

   The instruction associated with any SID can be validated by verifying
   if the segment is terminated on the correct node and optionally
   received over the correct incoming interface.  In Figure 1, inorder
   to validate the SID 9178, R1 can use {(SID=9178);(EndPoint=R8} as FEC
   in Target FEC Stack Sub-TLV.

5.  Procedures

   This section describes the procedure to validate SR Generic Label
   Sub-TLV.

5.1.  SID to Interface Mapping

   Any End point MAY maintain a SID to Interface mapping table that
   maintains the below:

   o  All the local Prefix/Node SID with any SR enabled interface as
      incoming interface.

   o  All the Adj-SIDs assigned by directly connected remote nodes with
      the relevant interface incoming interface.

   In Figure 1, R8 maintains 160008 and 161288 with Incoming interface
   as any SR enabled interface.  Similarly, R8 maintains 9178 with Link
   L1 as incoming interface, 9278 with Link L2 as incoming interface and
   9378 with Link L1 or L2 as incoming interface.

Nainar, et al.           Expires January 9, 2020                [Page 5]
Internet-Draft   SR Generic TLV for MPLS LSP Ping/Trace        July 2019

   How this mapping is populated and maintained is a local
   implementation matter.  It can be populated based on the IGP database
   or can be based on a query to Path Computation Element (PCE)
   controller.  The mapping can be persistent or on-demand triggered by
   receiving LSP Ping Request.

5.2.  Initiator behavior

   This section defines the Target FEC Stack TLV construction mechanism
   by an initiator when using SR Generic Label Sub-TLV.

      Ping

         Initiator MUST include FEC(s) corresponding to the destination
         segment.

         Initiator MAY include FECs corresponding to some or all of
         segments imposed in the label stack by the initiator to
         communicate the segments traversed.

      Traceroute

         Initiator MUST initially include FECs corresponding to all of
         segments imposed in the label stack.

         When a received echo reply contains FEC Stack Change TLV with
         one or more of original segment(s) being popped, initiator MAY
         remove corresponding FEC(s) from Target FEC Stack TLV in the
         next (TTL+1) traceroute request as defined in section 4.6 of
         [RFC8029].

         When a received echo reply does not contain FEC Stack Change
         TLV, initiator MUST NOT attempt to remove FEC(s) from Target
         FEC Stack TLV in the next (TTL+1) traceroute request.

5.2.1.  SRGL in Target FEC Stack TLV

   When the last segment ID in the label stack is IGP Prefix SID,
   Binding SID or BGP Prefix SID, set the LSP End Point field to the
   address of the Node that assigns the Prefix SID.  The SR SID field is
   set to the value derived based on the index and the SRGB advertised
   by the LSP End Point.

   When the last segment ID in the label stack is IGP Adj-SID or BGP
   Peering SID, set the LSP End Point field to the address of the
   adjacency node for which the SID is assigned to.  The SR field is set
   to the Segment ID value.

Nainar, et al.           Expires January 9, 2020                [Page 6]
Internet-Draft   SR Generic TLV for MPLS LSP Ping/Trace        July 2019

   How the above values are derived is a local implementation matter.
   It can be manually defined using CLI knob while triggering the LSP
   Ping Request or can use other mechanisms like querying the local
   database.

5.3.  Responder behavior

   Step 4a defined in Section 7.4 of [RFC8287] is updated as below:

      If the Label-stack-depth is 0 and Target FEC Stack Sub-TLV at FEC-
      stack-depth is TBD1 (SRGL) {

      *  Set the Best-return-code to 10 when LSP End Point Address does
         not match the local node address.

      *  Set the Best-return-code to 35, if Interface-I does not match
         the SID to Interface mapping for the received SR SID.

      *  set FEC-Status to 1, and return.

      }

      If the Label-stack-depth is greater than 0 and Target FEC Stack
      Sub-TLV at FEC-stack-depth is TBD1 (SRGL), {

      *  If the Label at Label-stack-depth is Imp-null {

         +  Set the Best-return-code to 10 when LSP End Point Address
            does not match the local node address.

         +  Set the Best-return-code to 35, if Interface-I does not
            match the SID to Interface mapping for the received SR SID.

         +  set FEC-Status to 1, and return.

         }

      *  Else:

         +  Set the Best-return-code to 10 when the index derived from
            the label at Label-stack-depth is not advertised by LSP End
            Point.

         +  set FEC-Status to 1, and return.

      }

Nainar, et al.           Expires January 9, 2020                [Page 7]
Internet-Draft   SR Generic TLV for MPLS LSP Ping/Trace        July 2019

5.4.  PHP flag behavior

   To be Updated

6.  IANA Considerations

   To be Updated.

7.  Security Considerations

   To be Updated

8.  Acknowledgement

   TBD

9.  Contributors

   Danial Johari, Cisco Systems

10.  References

10.1.  Normative References

   [I-D.ietf-idr-bgp-prefix-sid]
              Previdi, S., Filsfils, C., Lindem, A., Sreekantiah, A.,
              and H. Gredler, "Segment Routing Prefix SID extensions for
              BGP", draft-ietf-idr-bgp-prefix-sid-27 (work in progress),
              June 2018.

   [I-D.ietf-idr-bgpls-segment-routing-epe]
              Previdi, S., Talaulikar, K., Filsfils, C., Patel, K., Ray,
              S., and J. Dong, "BGP-LS extensions for Segment Routing
              BGP Egress Peer Engineering", draft-ietf-idr-bgpls-
              segment-routing-epe-19 (work in progress), May 2019.

   [I-D.sivabalan-pce-binding-label-sid]
              Sivabalan, S., Filsfils, C., Tantsura, J., Hardwick, J.,
              Previdi, S., and C. Li, "Carrying Binding Label/Segment-ID
              in PCE-based Networks.", draft-sivabalan-pce-binding-
              label-sid-07 (work in progress), July 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>.

Nainar, et al.           Expires January 9, 2020                [Page 8]
Internet-Draft   SR Generic TLV for MPLS LSP Ping/Trace        July 2019

   [RFC8029]  Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N.,
              Aldrin, S., and M. Chen, "Detecting Multiprotocol Label
              Switched (MPLS) Data-Plane Failures", RFC 8029,
              DOI 10.17487/RFC8029, March 2017,
              <https://www.rfc-editor.org/info/rfc8029>.

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

   [RFC8287]  Kumar, N., Ed., Pignataro, C., Ed., Swallow, G., Akiya,
              N., Kini, S., and M. Chen, "Label Switched Path (LSP)
              Ping/Traceroute for Segment Routing (SR) IGP-Prefix and
              IGP-Adjacency Segment Identifiers (SIDs) with MPLS Data
              Planes", RFC 8287, DOI 10.17487/RFC8287, December 2017,
              <https://www.rfc-editor.org/info/rfc8287>.

   [RFC8402]  Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
              Decraene, B., Litkowski, S., and R. Shakir, "Segment
              Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
              July 2018, <https://www.rfc-editor.org/info/rfc8402>.

10.2.  Informative References

   [I-D.ietf-spring-segment-routing-mpls]
              Bashandy, A., Filsfils, C., Previdi, S., Decraene, B.,
              Litkowski, S., and R. Shakir, "Segment Routing with MPLS
              data plane", draft-ietf-spring-segment-routing-mpls-22
              (work in progress), May 2019.

Authors' Addresses

   Nagendra Kumar Nainar (editor)
   Cisco Systems, Inc.
   7200-12 Kit Creek Road
   Research Triangle Park, NC  27709-4987
   US

   Email: naikumar@cisco.com

   Carlos Pignataro (editor)
   Cisco Systems, Inc.
   7200-11 Kit Creek Road
   Research Triangle Park, NC  27709-4987
   US

   Email: cpignata@cisco.com

Nainar, et al.           Expires January 9, 2020                [Page 9]
Internet-Draft   SR Generic TLV for MPLS LSP Ping/Trace        July 2019

   Zafar Ali
   Cisco Systems, Inc.

   Email: zali@cisco.com

   Clarence Filsfils
   Cisco Systems, Inc.

   Email: cfilsfil@cisco.com

Nainar, et al.           Expires January 9, 2020               [Page 10]