GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


rfc:rfc9545



Internet Engineering Task Force (IETF) W. Cheng, Ed. Request for Comments: 9545 H. Li Category: Standards Track China Mobile ISSN: 2070-1721 C. Li, Ed.

                                                   Huawei Technologies
                                                             R. Gandhi
                                                   Cisco Systems, Inc.
                                                             R. Zigler
                                                              Broadcom
                                                         February 2024
   Path Segment Identifier in MPLS-Based Segment Routing Networks

Abstract

 A Segment Routing (SR) path is identified by an SR segment list.  A
 subset of segments from the segment list cannot be leveraged to
 distinguish one SR path from another as they may be partially
 congruent.  SR path identification is a prerequisite for various use
 cases such as performance measurement and end-to-end 1+1 path
 protection.
 In an SR over MPLS (SR-MPLS) data plane, an egress node cannot
 determine on which SR path a packet traversed the network from the
 label stack because the segment identifiers are removed from the
 label stack as the packet transits the network.
 This document defines a Path Segment Identifier (PSID) to identify an
 SR path on the egress node of the path.

Status of This Memo

 This is an Internet Standards Track document.
 This document is a product of the Internet Engineering Task Force
 (IETF).  It represents the consensus of the IETF community.  It has
 received public review and has been approved for publication by the
 Internet Engineering Steering Group (IESG).  Further information on
 Internet Standards is available in Section 2 of RFC 7841.
 Information about the current status of this document, any errata,
 and how to provide feedback on it may be obtained at
 https://www.rfc-editor.org/info/rfc9545.

Copyright Notice

 Copyright (c) 2024 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 Revised BSD License text as described in Section 4.e of the
 Trust Legal Provisions and are provided without warranty as described
 in the Revised BSD License.

Table of Contents

 1.  Introduction
   1.1.  Requirements Language
   1.2.  Abbreviations and Terms
 2.  Path Segment
   2.1.  Equal-Cost Multipath (ECMP) Considerations
 3.  Use Cases
   3.1.  PSID for Performance Measurement
   3.2.  PSID for Bidirectional SR Paths
   3.3.  PSID for End-to-End Path Protection
   3.4.  Nesting of PSIDs
 4.  Security Considerations
 5.  IANA Considerations
 6.  References
   6.1.  Normative References
   6.2.  Informative References
 Acknowledgements
 Contributors
 Authors' Addresses

1. Introduction

 Segment Routing (SR) [RFC8402] leverages the source-routing paradigm
 to steer packets from a source node through a controlled set of
 instructions, called "segments", by prepending the packet with an SR
 header.  In SR with the MPLS data plane [RFC8660], the SR header is
 instantiated through a label stack.
 In an SR-MPLS network, when a packet is transmitted along an SR path,
 the labels in the MPLS label stack will be swapped or popped.  The
 result of this is that no label or only the last label may be left in
 the MPLS label stack when the packet reaches the egress node.  Thus,
 the egress node cannot use the SR label stack to determine along
 which SR path the packet came.
 However, identifying a path on the egress node is a prerequisite for
 various use cases in SR-MPLS networks, such as performance
 measurement (Section 3.1), bidirectional paths (Section 3.2), and
 end-to-end 1+1 path protection (a Live-Live case) (Section 3.3).
 Therefore, this document defines a new segment type, referred to
 herein as a "Path Segment".  A Path Segment is defined to uniquely
 identify an SR path on the egress node of the path.  It MAY be used
 by the egress node for path identification.  Note that per-path state
 will be maintained in the egress node due to the requirements in the
 aforementioned use cases, though in normal cases, the per-path state
 will be maintained in the ingress node only.

1.1. Requirements Language

 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
 "OPTIONAL" in this document are to be interpreted as described in
 BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
 capitals, as shown here.

1.2. Abbreviations and Terms

 MPLS:  Multiprotocol Label Switching
 PSID:  Path Segment Identifier
 SID:  Segment Identifier
 SR:  Segment Routing
 SR-MPLS:  SR over MPLS
 SR path:  A path described by a segment list.
 Sub-Path:  A part of a path, which contains a subset of the nodes and
    links of the path.

2. Path Segment

 A Path Segment is a local segment [RFC8402] that uniquely identifies
 an SR path on the egress node.  A Path Segment Identifier (PSID) is a
 single label that is assigned from the Segment Routing Local Block
 (SRLB) [RFC8402] of the egress node of an SR path.
 A PSID is used to identify a segment list.  However, one PSID can be
 used to identify multiple segment lists in some use cases if needed.
 For example, one single PSID MAY be used to identify some or all
 segment lists in a candidate path or an SR policy if an operator
 would like to aggregate these segment lists in operation.
 When a PSID is used, the PSID can be inserted at the ingress node and
 MUST immediately follow the last label of the SR path; in other
 words, it must be inserted after the routing segment (adjacency,
 node, or prefix segment) that is pointing to the egress node of the
 SR path.  Therefore, a PSID will not be the top label in the label
 stack when received on an intermediate node of the associated path,
 but it can be the top label in the label stack on the penultimate
 node.
 The value of the TTL field in the MPLS label stack entry containing a
 PSID can be set to any value except 0.  If a PSID is the bottom
 label, the S bit MUST be set, and if the PSID is NOT the bottom
 label, the S bit MUST be 0.
 The egress node MUST pop the PSID.  The egress node MAY use the PSID
 for further processing.  For example, when performance measurement is
 enabled on the SR path, it can trigger packet counting or
 timestamping.
 The addition of the PSID will require the egress to read and process
 the PSID label in addition to the regular processing.  This
 additional processing may have an impact on forwarding performance.
 Behavior relating to the use of explicit null directly preceding the
 PSID is undefined in this document.
 A Generic Associated Channel Label (GAL) MAY be used for Operations,
 Administration, and Maintenance (OAM) in MPLS networks.  As per
 [RFC5586], when a GAL is used, the Associated Channel Header (ACH)
 appears immediately after the bottom of the label stack.
 The SR path computation needs to know the Maximum SID Depth (MSD)
 that can be imposed at the ingress node of a given SR path [RFC8664].
 This ensures that the SID stack depth of a computed path does not
 exceed the number of SIDs the node is capable of imposing.  As per
 [RFC8491], the MSD signals the total number of MPLS labels that can
 be imposed, where the total number of MPLS labels includes the PSID.
 An example label stack with a PSID is shown in Figure 1:
             +--------------------+
             |       ...          |
             +--------------------+
             |      Label 1       |
             +--------------------+
             |      Label 2       |
             +--------------------+
             |       ...          |
             +--------------------+
             |      Label n       |
             +--------------------+
             |        PSID        |
             +--------------------+
             ~       Payload      ~
             +--------------------+
                   Figure 1: Label Stack with a PSID
 Where:
  • The Labels 1 to n are the segment label stack used to direct how

to steer the packets along the SR path.

  • The PSID identifies the SR path in the context of the egress node

of the SR path.

 The signaling of the PSID between the egress node, the ingress node,
 and possibly a centralized controller is out of the scope of this
 document.

2.1. Equal-Cost Multipath (ECMP) Considerations

 If an Entropy Label (EL) is also used on the egress node, as per
 [RFC6790], the EL and Entropy Label Indicator (ELI) would be placed
 before the tunnel label; hence, they do not interfere with the PSID,
 which is placed below.
 It is worthy to note that in the case of ECMP, with or without the
 use of an EL, the SR packets may be forwarded over multiple paths.
 In this case, the SID list cannot directly reflect the actual
 forwarding path and the PSID can only identify the SID list rather
 than the actual forwarding path.
 Also, similar to a Synonymous Flow Label (SFL) [RFC8957], the
 introduction of a PSID to an existing flow may cause that flow to
 take a different path through the network under the conditions of
 ECMP.  In turn, this may invalidate certain uses of the PSID, such as
 performance measurement applications.  Therefore, the considerations
 of SFLs as per Section 5 of [RFC8957] also apply to PSIDs in
 implementation.

3. Use Cases

 This section describes use cases that can leverage the PSID.  The
 content is for informative purposes, and the detailed solutions might
 be defined in other documents in the future.

3.1. PSID for Performance Measurement

 As defined in [RFC7799], performance measurement can be classified
 into Passive, Active, and Hybrid measurements.  Since a PSID is
 encoded in the SR-MPLS label stack, as shown in Figure 1, existing
 implementations on the egress node can leverage a PSID for measuring
 packet counts.
 For Passive performance measurement, path identification at the
 measuring points is the prerequisite.  A PSID can be used by the
 measuring points (e.g., the ingress and egress nodes of the SR path
 or a centralized controller) to correlate the packet counts and
 timestamps from the ingress and egress nodes for a specific SR path;
 then, packet loss and delay can be calculated for the end-to-end
 path, respectively.
 Furthermore, a PSID can also be used for:
  • Active performance measurement for an SR path in SR-MPLS networks

for collecting packet counters and timestamps from the egress node

    using probe messages.
  • In situ OAM [RFC9197] for SR-MPLS to identify the SR path

associated with the in situ data fields in the data packets on the

    egress node.
  • In-band performance measurement for SR-MPLS to identify the SR

path associated with the collected performance metrics.

3.2. PSID for Bidirectional SR Paths

 In some scenarios (e.g., mobile backhaul transport networks), there
 are requirements to support bidirectional paths [RFC6965], and the
 path is normally treated as a single entity.  Forward and reverse
 directions of the path have the same fate; for example, failure in
 one direction will result in switching traffic at both directions.
 MPLS supports this by introducing the concepts of a co-routed
 bidirectional Label Switched Path (LSP) and an associated
 bidirectional LSP [RFC5654].
 In the current SR architecture, an SR path is a unidirectional path
 [RFC8402].  In order to support bidirectional SR paths, a
 straightforward way is to bind two unidirectional SR paths to a
 single bidirectional SR path.  PSIDs can be used to identify and
 correlate the traffic for the two unidirectional SR paths at both
 ends of the bidirectional path.
 The mechanism of constructing bidirectional paths using a PSID is out
 of the scope of this document and has been described in several
 documents, such as [BIDIR-PATH] and [SR-EXTENSIONS].

3.3. PSID for End-to-End Path Protection

 For end-to-end 1+1 path protection (i.e., a Live-Live case), the
 egress node of the path needs to know the set of paths that
 constitute the primary and the secondaries in order to select the
 primary path packets for onward transmission and to discard the
 packets from the secondaries [RFC4426].
 To do this in SR, each SR path needs a path identifier that is unique
 at the egress node.  For SR-MPLS, this can be the Path Segment label
 allocated by the egress node.
 The detailed solution of using a PSID in end-to-end 1+1 path
 protection is out of the scope of this document.

3.4. Nesting of PSIDs

 A Binding SID (BSID) [RFC8402] can be used for SID list compression.
 With a BSID, an end-to-end SR path in a trusted domain can be split
 into several sub-paths, where each sub-path is identified by a BSID.
 Then, an end-to-end SR path can be identified by a list of BSIDs;
 therefore, it can provide better scalability.
 A BSID and a PSID can be combined to achieve both sub-path and end-
 to-end path monitoring.  A reference model for such a combination
 (Figure 2) shows an end-to-end path (A->D) in a trusted domain that
 spans three subdomains (the Access, Aggregation, and Core domains)
 and consists of three sub-paths, one in each subdomain (sub-path
 (A->B), sub-path (B->C), and sub-path (C->D)).
 The SID list of a sub-path can be expressed as <SID1, SID2, ...,
 SIDn, s-PSID>, where the s-PSID is the PSID of the sub-path.  Each
 sub-path is associated with a BSID and an s-PSID.
 The SID list of the end-to-end path can be expressed as <BSID1,
 BSID2, ..., BSIDn, e-PSID>, where the e-PSID is the PSID of the end-
 to-end path.
 Figure 2 shows the details of the label stacks when a PSID and a BSID
 are used to support both sub-path and end-to-end path monitoring in a
 multi-domain scenario.
          /--------\       /--------\       /--------\
        /            \   /            \   /            \
      A{    Access    }B{  Aggregation }C{     Core     }D
        \            /   \            /   \            /
          \--------/       \--------/       \--------/
        sub-path(A->B)    sub-path(B->C)   sub-path(C->D)
     |<--------------->|<-------------->|<-------------->|
                           E2E Path(A->D)
     |<------------------------------------------------->|
  +-------------+
  ~A->B sub-path~
  +-------------+  +-------------+
  |s-PSID(A->B) |  ~B->C sub-path~
  +-------------+  +-------------+  +-------------+
  | BSID(B->C)  |  |s-PSID(B->C) |  ~C->D sub-path~
  +-------------+  +-------------+  +-------------+
  | BSID(C->D)  |  | BSID(C->D)  |  |s-PSID(C->D) |
  +-------------+  +-------------+  +-------------+  +------------+
  |e-PSID(A->D) |  |e-PSID(A->D) |  |e-PSID(A->D) |  |e-PSID(A->D)|
  +-------------+  +-------------+  +-------------+  +------------+
                       Figure 2: Nesting of PSIDs

4. Security Considerations

 A PSID in SR-MPLS is a local label similar to other labels and
 segments, such as a VPN label, defined in MPLS and SR-MPLS.  The data
 plane processing of a PSID is a local implementation of an ingress
 node or an egress node, which follows the same logic of an existing
 MPLS data plane.  As per the definition of a PSID, only the egress
 node and the ingress node of the associated path will learn the
 information of a PSID.  The intermediate nodes of this path will not
 learn it.
 A PSID may be used on an ingress node that is not the ingress of the
 associated path if the associated label stack with the PSID is part
 of a deeper label stack that represents a longer path.  For example,
 the case described in Section 3.4 and the related BSID are not used
 while the original label stack of a sub-path is inserted as a part of
 the whole label stack.  In this case, the PSID must be distributed in
 a trusted domain under the considerations defined in Section 8.1 of
 [RFC8402].
 A PSID is used within an SR-MPLS trusted domain [RFC8402] and must
 not leak outside the domain; therefore, no new security threats are
 introduced compared to current SR-MPLS.  As per [RFC8402], SR domain
 boundary routers MUST filter any external traffic destined to a label
 associated with a segment within the trusted domain; this applies to
 a PSID as well.  Other security considerations of SR-MPLS described
 in Section 8.1 of [RFC8402] apply to this document.
 The distribution of a PSID from an egress node to an ingress node is
 performed within an SR-trusted domain, and it is out of the scope of
 this document.  The details of the mechanism and related security
 considerations will be described in other documents.

5. IANA Considerations

 This document has no IANA actions.

6. References

6.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>.
 [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>.
 [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>.
 [RFC8660]  Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S.,
            Decraene, B., Litkowski, S., and R. Shakir, "Segment
            Routing with the MPLS Data Plane", RFC 8660,
            DOI 10.17487/RFC8660, December 2019,
            <https://www.rfc-editor.org/info/rfc8660>.

6.2. Informative References

 [BIDIR-PATH]
            Li, C., Chen, M., Cheng, W., Gandhi, R., and Q. Xiong,
            "Path Computation Element Communication Protocol (PCEP)
            Extensions for Associated Bidirectional Segment Routing
            (SR) Paths", Work in Progress, Internet-Draft, draft-ietf-
            pce-sr-bidir-path-13, 13 February 2024,
            <https://datatracker.ietf.org/doc/html/draft-ietf-pce-sr-
            bidir-path-13>.
 [RFC4426]  Lang, J., Ed., Rajagopalan, B., Ed., and D. Papadimitriou,
            Ed., "Generalized Multi-Protocol Label Switching (GMPLS)
            Recovery Functional Specification", RFC 4426,
            DOI 10.17487/RFC4426, March 2006,
            <https://www.rfc-editor.org/info/rfc4426>.
 [RFC5586]  Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed.,
            "MPLS Generic Associated Channel", RFC 5586,
            DOI 10.17487/RFC5586, June 2009,
            <https://www.rfc-editor.org/info/rfc5586>.
 [RFC5654]  Niven-Jenkins, B., Ed., Brungard, D., Ed., Betts, M., Ed.,
            Sprecher, N., and S. Ueno, "Requirements of an MPLS
            Transport Profile", RFC 5654, DOI 10.17487/RFC5654,
            September 2009, <https://www.rfc-editor.org/info/rfc5654>.
 [RFC6790]  Kompella, K., Drake, J., Amante, S., Henderickx, W., and
            L. Yong, "The Use of Entropy Labels in MPLS Forwarding",
            RFC 6790, DOI 10.17487/RFC6790, November 2012,
            <https://www.rfc-editor.org/info/rfc6790>.
 [RFC6965]  Fang, L., Ed., Bitar, N., Zhang, R., Daikoku, M., and P.
            Pan, "MPLS Transport Profile (MPLS-TP) Applicability: Use
            Cases and Design", RFC 6965, DOI 10.17487/RFC6965, August
            2013, <https://www.rfc-editor.org/info/rfc6965>.
 [RFC7799]  Morton, A., "Active and Passive Metrics and Methods (with
            Hybrid Types In-Between)", RFC 7799, DOI 10.17487/RFC7799,
            May 2016, <https://www.rfc-editor.org/info/rfc7799>.
 [RFC8491]  Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg,
            "Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491,
            DOI 10.17487/RFC8491, November 2018,
            <https://www.rfc-editor.org/info/rfc8491>.
 [RFC8664]  Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
            and J. Hardwick, "Path Computation Element Communication
            Protocol (PCEP) Extensions for Segment Routing", RFC 8664,
            DOI 10.17487/RFC8664, December 2019,
            <https://www.rfc-editor.org/info/rfc8664>.
 [RFC8957]  Bryant, S., Chen, M., Swallow, G., Sivabalan, S., and G.
            Mirsky, "Synonymous Flow Label Framework", RFC 8957,
            DOI 10.17487/RFC8957, January 2021,
            <https://www.rfc-editor.org/info/rfc8957>.
 [RFC9197]  Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi,
            Ed., "Data Fields for In Situ Operations, Administration,
            and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197,
            May 2022, <https://www.rfc-editor.org/info/rfc9197>.
 [SR-EXTENSIONS]
            Li, C., Li, Z., Yin, Y., Cheng, W., and K. Talaulikar, "SR
            Policy Extensions for Path Segment and Bidirectional
            Path", Work in Progress, Internet-Draft, draft-ietf-idr-
            sr-policy-path-segment-09, 19 February 2024,
            <https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-
            policy-path-segment-09>.

Acknowledgements

 The authors would like to thank Adrian Farrel, Stewart Bryant,
 Shuangping Zhan, Alexander Vainshtein, Andrew G. Malis, Ketan
 Talaulikar, Shraddha Hegde, Xinyue Zhang, Loa Andersson, and Bruno
 Decraene for their review, suggestions, comments, and contributions
 to this document.
 The authors would like to acknowledge the contribution from Alexander
 Vainshtein on "Nesting of PSIDs" (Section 3.4).

Contributors

 The following people have substantially contributed to this document.
 Mach(Guoyi) Chen
 Huawei Technologies Co., Ltd.
 Email: mach.chen@huawei.com
 Lei Wang
 China Mobile
 Email: wangleiyj@chinamobile.com
 Aihua Liu
 ZTE Corp.
 Email: liu.aihua@zte.com.cn
 Greg Mirsky
 ZTE Corp.
 Email: gregimirsky@gmail.com
 Gyan S. Mishra
 Verizon Inc.
 Email: gyan.s.mishra@verizon.com

Authors' Addresses

 Weiqiang Cheng (editor)
 China Mobile
 Email: chengweiqiang@chinamobile.com
 Han Li
 China Mobile
 Email: lihan@chinamobile.com
 Cheng Li (editor)
 Huawei Technologies
 China
 Email: c.l@huawei.com
 Rakesh Gandhi
 Cisco Systems, Inc.
 Canada
 Email: rgandhi@cisco.com
 Royi Zigler
 Broadcom
 Email: royi.zigler@broadcom.com
/home/gen.uk/domains/wiki.gen.uk/public_html/data/pages/rfc/rfc9545.txt · Last modified: 2024/02/22 22:01 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki