<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes"?>
<!-- sort the reference entries alphabetically -->
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<!-- control vertical white space -->
<?rfc subcompact="no"?>
<!-- keep one blank line between list items -->
<?rfc autobreaks="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-filsfils-spring-srv6-net-pgm-insertion-08" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.1 -->
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
         or pre5378Trust200902  -->

    <front>
    <!--title abbrev="Abbreviated Title">SRv6 Network Programming</title> -->
     <title>SRv6 NET-PGM extension: Insertion</title>
    <seriesInfo name="Internet-Draft" value="draft-filsfils-spring-srv6-net-pgm-insertion-08"/>
    <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>Belgium</country>
        </postal>
        <phone/>
        <email>cf@cisco.com</email>
      </address>
    </author>
    <author fullname="Pablo Camarillo Garvia" initials="P." surname="Camarillo" role="editor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>Spain</country>
        </postal>
        <email>pcamaril@cisco.com</email>
      </address>
    </author>
    <author fullname="John Leddy" initials="J." surname="Leddy">
      <organization>Individual Contributor</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>United States of America</country>
        </postal>
        <email>john@leddy.net</email>
      </address>
    </author>
    <author fullname="Daniel Voyer" initials="D." surname="Voyer">
      <organization>Bell Canada</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>Canada</country>
        </postal>
        <email>daniel.voyer@bell.ca</email>
      </address>
    </author>
    <author fullname="Satoru Matsushima" initials="S." surname="Matsushima">
      <organization abbrev="SoftBank">SoftBank</organization>
      <address>
        <postal>
          <street>1-9-1,Higashi-Shimbashi,Minato-Ku</street>
          <region>Tokyo  105-7322</region>
          <code/>
          <country>Japan</country>
        </postal>
        <phone/>
        <email>satoru.matsushima@g.softbank.co.jp</email>
      </address>
    </author>
    <author fullname="Zhenbin Li" initials="Z." surname="Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <phone/>
        <email>lizhenbin@huawei.com</email>
      </address>
    </author>
    <date/>
    <area>General</area>
    <workgroup>SPRING</workgroup>
    <keyword>SRv6</keyword>
    <keyword>Segment Routing</keyword>
    <keyword>IPv6 Segment Routing</keyword>
    <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

        <abstract>
      <t>Traffic traversing an SR domain is encapsulated in an outer IPv6 header for its journey through the SR domain.</t>
      <t>To implement transport services strictly within the SR domain, the SR domain may require insertion or deletion of an SRH after the outer IPv6 header of the SR domain. Any segment within the SRH is strictly contained within the SR domain.</t>
      <t>This document extends SRv6 Network Programming <xref target="RFC8986" format="default"/> with new SR endpoint and transit behaviors to be performed only within the SR domain in any packet owned by the domain.</t>
    </abstract>
    <note>
      <name>Requirements Language</name>
      <t>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 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as shown here.</t>
    </note>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>Packets transiting an SR Domain may be steered into an SR Policy for a variety of reasons. For example, a PLR router reroutes traffic on a TI-LFA repair path <xref target="I-D.ietf-rtgwg-segment-routing-ti-lfa" format="default"/> or when a Binding-SID is expanded <xref target="I-D.ietf-spring-segment-routing-policy" format="default"/>.</t>
      <t>This document extends the SRv6 Network Programming <xref target="RFC8986" format="default"/> model with new endpoint and transit behaviors enabling the insertion of an SRH after the outer IPv6 header of the SR domain. The operations described in this document must take into account the considerations described in <xref target="I-D.voyer-6man-extension-header-insertion" format="default"/>.</t>
    </section>
    <section numbered="true" toc="default">
      <name>SRv6 endpoint behaviors</name>
      <t>SRv6 Network Programming Section 4 defines a base set of SRv6 endpoint behaviors. This is extended with the behaviors described in this section.</t>
      <section numbered="true" toc="default">
        <name>End.B6.Insert: Endpoint bound to an SRv6 policy</name>
        <t>The "Endpoint bound to an SRv6 Policy" is a variant of the End behavior.</t>
        <t>One of its applications is to express scalable traffic-engineering policies across multiple domains. It is the one of the SRv6 instantiations of a Binding SID <xref target="RFC8402" format="default"/>.</t>
        <t>An End.B6.Insert SID is never the last segment in a SID list, and any SID instantiation must be associated with an SR Policy B<xref target="I-D.ietf-spring-segment-routing-policy" format="default"/>.</t>
        <t>When N receives a packet whose IPv6 DA is S and S is a local End.B6.Insert SID, does:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
S01. When an SRH is processed {
S02.   If (Segments Left == 0) {
S03.      Send an ICMP Parameter Problem message to the Source Address
             Code TBD-SRH (SR Upper-layer Header Error),
             Pointer set to the offset of the upper-layer header,
             interrupt packet processing and discard the packet
S04.   }
S04.   If (IPv6 Hop Limit <= 1) {
S05.       Send an ICMP Time Exceeded message to the Source Address,
             Code 0 (Hop limit exceeded in transit),
             interrupt packet processing and discard the packet
S06.   }
S07.   max_LE = (Hdr Ext Len / 2) - 1
S08.   If ((Last Entry > max_LE) or (Segments Left > (Last Entry+1)){
S09.      Send an ICMP Parameter Problem to the Source Address,
             Code 0 (Erroneous header field encountered),
             Pointer set to the Segments Left field,
             interrupt packet processing and discard the packet
S11.   }
S12.   Decrement Hop Limit by 1
S13.   Insert a new SRH in between the IPv6 Header and the received 
        SRH containing the list of segments of B
S14.   Set the IPv6 DA to the first segment of B
S15.   Resubmit the packet to the egress IPv6 FIB lookup and           
          transmission to the new destination
S16. }
                ]]></artwork>
        <t>When processing the Upper-layer header of a packet matching a FIB entry locally instantiated as an SRv6 End.B6.Insert SID, send an ICMP parameter problem message to the Source Address and discard the packet. Error code "SR Upper-layer Header Error", Pointer set to the offset of the upper-layer header.</t>
      </section>
      <section numbered="true" toc="default">
        <name>End.B6.Insert.Red: [...] with reduced SRH</name>
        <t>This is an optimization of the End.B6.Insert behavior.</t>
        <t>End.B6.Insert.Red reduces the size of the new SRH by one SID by avoiding the insertion of the first SID in the pushed SRH. In this way, the first SID is only written in the DA and the packet is forwarded according to it.</t>
        <t>The new SRH is created as described in Section 4.1.1 of <xref target="RFC8754" format="default"/>.</t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>SR Policy Headend Behaviors</name>
      <t>SRv6 Network Programming defines in Section 5 a set of SR Policy Headend Behaviors. This is extended with the following behaviors defined in this section.</t>
      <section numbered="true" toc="default">
        <name>H.Insert: SR Headend with insertion of an SRv6 Policy</name>
        <t>Node N receives two packets P1=(A, B2) and P2=(A,B2)(B3, B2, B1; SL=1). B2 is neither a local address nor SID of N.</t>
        <t>N steers the transit packets P1 and P2 into an SRv6 Policy with one SID list &lt;S1, S2, S3&gt;.</t>
        <t>The "H.Insert" transit insertion behavior is defined as follows:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
1.   insert the SRH (B2, S3, S2, S1; SL=3)             ;; Ref1, Ref1bis
2.   set the IPv6 DA = S1
3.   forward along the shortest path to S1
                ]]></artwork>
        <t>Ref1: The received IPv6 DA is placed as last SID of the inserted SRH.</t>
        <t>Ref1bis: The SRH is inserted <xref target="I-D.voyer-6man-extension-header-insertion" format="default"/> before any other IPv6 Routing Extension Header. </t>
        <t>After the H.Insert behavior, P1 and P2 respectively look like:
        </t>
        <ol spacing="normal"><li>(A, S1) (B2, S3, S2, S1; SL=3)</li>
          <li>(A, S1) (B2, S3, S2, S1; SL=3) (B3, B2, B1; SL=1)</li>
        </ol>
      </section>
      <section numbered="true" toc="default">
        <name>H.Insert.Red: H.Insert with reduced insertion</name>
        <t>The H.Insert.Red behavior is an optimization of the H.Insert behavior. It is defined as follows:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
1.   insert the SRH (B2, S3, S2; SL=3)
2.   set the IPv6 DA = S1
3.   forward along the shortest path to S1
                ]]></artwork>
        <t>H.Insert.Red will reduce the size of the SRH by one segment by avoiding the insertion of the first SID in the pushed SRH. In this way, the first segment is only introduced in the DA and the packet is forwarded according to it.</t>
        <t>After the H.Insert.Red behavior, P1 and P2 respectively look like:
        </t>
        <ol spacing="normal"><li>(A, S1) (B2, S3, S2; SL=3)</li>
          <li>(A, S1) (B2, S3, S2; SL=3) (B3, B2, B1; SL=1)</li>
        </ol>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>Maximum H.Insert MSD Type</name>
      <t>This document defines the MSD (Maximum SID Depth) for H.Insert behavior 
          and requests the MSD type assignment from the IGP MSD-Types registry created by
          <xref target="RFC8491" format="default"/>.</t>
      <t>The Maximum H.Insert MSD Type specifies the maximum number of SIDs
          that can be inserted as part of the "H.insert" behavior:
        
      </t>
      <ol spacing="normal"><li>Max H.insert Type: 43 (Suggested value - to be assigned by IANA)</li>
      </ol>
      <t>If the advertised value is zero or no value is advertised
          then the router is assumed not to support any variation
          of the "H.insert" behavior.</t>
    </section>
    <section numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section numbered="true" toc="default">
        <name>SRv6 Endpoint Behaviors</name>
        <t>This document requests IANA to allocate the following codepoints within the "SRv6 Endpoint Behaviors" sub-registry under the top-level "Segment Routing Parameters" registry.</t>
        <table anchor="endpoint_cp_types" align="center">
          <name>IETF - SRv6 Endpoint Behaviors</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="center">Hex</th>
              <th align="center">Endpoint behavior</th>
              <th align="center">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">13</td>
              <td align="center">0x000D</td>
              <td align="center">End.B6.Insert</td>
              <td align="center">[This.ID]</td>
            </tr>
            <tr>
              <td align="left">26</td>
              <td align="center">0x001A</td>
              <td align="center">End.B6.Insert.Red</td>
              <td align="center">[This.ID]</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" toc="default">
        <name>MSD Types</name>
        <t>This document requests IANA to allocate the following codepoint within the "IGP MSD-Types" sub-registry under the top-level "IGP Parameters" registry.</t>
        <table anchor="max_h_insert" align="center">
          <name>IETF - MSD Types</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="center">Hex</th>
              <th align="center">Endpoint behavior</th>
              <th align="center">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">43</td>
              <td align="center">0x2B</td>
              <td align="center">Max H.Insert</td>
              <td align="center">[This.ID]</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>The authors would like to acknowledge Stefano Previdi, Dave Barach, Mark Townsley, Peter Psenak, Thierry Couture, Kris Michielsen, Paul Wells, Robert Hanzl, Dan Ye, Gaurav Dawra, Faisal Iqbal, Jaganbabu Rajamanickam, David Toscano, Asif Islam, Jianda Liu, Yunpeng Zhang, Jiaoming Li, Narendra A.K, Mike Mc Gourty, Bhupendra Yadav, Sherif Toulan, Satish Damodaran, John Bettink, Kishore Nandyala Veera Venk, Jisu Bhattacharya and Saleem Hafeez.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Contributors</name>
      <t>Daniel Bernier</t>
            <t>Bell Canada</t>
            <t>Canada</t>
      <t>Email: daniel.bernier@bell.ca</t>
      <t>Dirk Steinberg</t>
            <t>Lapishills Consulting Limited</t>
            <t>Cyprus</t>
      <t>Email: dirk@lapishills.com</t>
      <t>Robert Raszuk</t>
            <t>Bloomberg LP</t>
            <t>United States of America</t>
      <t>Email: robert@raszuk.net</t>
      <t>Bart Peirens</t>
            <t>Proximus</t>
            <t>Belgium</t>
      <t>Email: bart.peirens@proximus.com</t>
      <t>Hani Elmalky</t>
            <t>Ericsson</t>
            <t>United States of America</t>
      <t>Email: hani.elmalky@gmail.com</t>
      <t>Prem Jonnalagadda</t>
            <t>Barefoot Networks</t>
            <t>United States of America</t>
      <t>Email: prem@barefootnetworks.com</t>
      <t>Milad Sharif</t>
            <t>Barefoot Networks</t>
            <t>United States of America</t>
      <t>Email: msharif@barefootnetworks.com</t>
      <t>David Lebrun</t>
            <t>Google</t>
            <t>Belgium</t>
      <t>Email: dlebrun@google.com</t>
      <t>Stefano Salsano</t>
            <t>Universita di Roma "Tor Vergata"</t>
            <t>Italy</t>
      <t>Email: stefano.salsano@uniroma2.it</t>
      <t>Ahmed AbdelSalam</t>
            <t>Gran Sasso Science Institute</t>
            <t>Italy</t>
      <t>Email: ahmed.abdelsalam@gssi.it</t>
      <t>Gaurav Naik</t>
            <t>Drexel University</t>
            <t>United States of America</t>
      <t>Email: gn@drexel.edu</t>
      <t>Arthi Ayyangar</t>
            <t>Arista</t>
            <t>United States of America</t>
      <t>Email: arthi@arista.com</t>
      <t>Satish Mynam</t>
            <t>Innovium Inc.</t>
            <t>United States of America</t>
      <t>Email: smynam@innovium.com</t>
      <t>Wim Henderickx</t>
            <t>Nokia</t>
            <t>Belgium</t>
      <t>Email: wim.henderickx@nokia.com</t>
      <t>Shaowen Ma</t>
            <t>Juniper</t>
            <t>Singapore</t>
      <t>Email: mashao@juniper.net</t>
      <t>Ahmed Bashandy</t>
            <t>Individual</t>
            <t>United States of America</t>
      <t>Email: abashandy.ietf@gmail.com</t>
      <t>Francois Clad</t>
            <t>Cisco Systems, Inc.</t>
            <t>France</t>
      <t>Email: fclad@cisco.com</t>
      <t>Kamran Raza</t>
            <t>Cisco Systems, Inc.</t>
            <t>Canada</t>
      <t>Email: skraza@cisco.com</t>
      <t>Darren Dukes</t>
            <t>Cisco Systems, Inc.</t>
            <t>Canada</t>
      <t>Email: ddukes@cisco.com</t>
      <t>Patrice Brissete </t>
            <t>Cisco Systems, Inc.</t>
            <t>Canada</t>
      <t>Email: pbrisset@cisco.com</t>
      <t>Zafar Ali</t>
            <t>Cisco Systems, Inc.</t>
            <t>United States of America</t>
      <t>Email: zali@cisco.com</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
            <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8754" target="https://www.rfc-editor.org/info/rfc8754" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8754.xml">
          <front>
            <title>IPv6 Segment Routing Header (SRH)</title>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils" role="editor">
              <organization/>
            </author>
            <author initials="D." surname="Dukes" fullname="D. Dukes" role="editor">
              <organization/>
            </author>
            <author initials="S." surname="Previdi" fullname="S. Previdi">
              <organization/>
            </author>
            <author initials="J." surname="Leddy" fullname="J. Leddy">
              <organization/>
            </author>
            <author initials="S." surname="Matsushima" fullname="S. Matsushima">
              <organization/>
            </author>
            <author initials="D." surname="Voyer" fullname="D. Voyer">
              <organization/>
            </author>
            <date year="2020" month="March"/>
            <abstract>
              <t>Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8754"/>
          <seriesInfo name="DOI" value="10.17487/RFC8754"/>
        </reference>
        <reference anchor="RFC8986" target="https://www.rfc-editor.org/info/rfc8986" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8986.xml">
          <front>
            <title>Segment Routing over IPv6 (SRv6) Network Programming</title>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils" role="editor">
              <organization/>
            </author>
            <author initials="P." surname="Camarillo" fullname="P. Camarillo" role="editor">
              <organization/>
            </author>
            <author initials="J." surname="Leddy" fullname="J. Leddy">
              <organization/>
            </author>
            <author initials="D." surname="Voyer" fullname="D. Voyer">
              <organization/>
            </author>
            <author initials="S." surname="Matsushima" fullname="S. Matsushima">
              <organization/>
            </author>
            <author initials="Z." surname="Li" fullname="Z. Li">
              <organization/>
            </author>
            <date year="2021" month="February"/>
            <abstract>
              <t>The Segment Routing over IPv6 (SRv6) Network Programming framework enables a network operator or an application to specify a packet processing program by encoding a sequence of instructions in the IPv6 packet header.</t>
              <t>Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
              <t>This document defines the SRv6 Network Programming concept and specifies the base set of SRv6 behaviors that enables the creation of interoperable overlays with underlay optimization.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8986"/>
          <seriesInfo name="DOI" value="10.17487/RFC8986"/>
        </reference>
        <reference anchor="I-D.voyer-6man-extension-header-insertion" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.voyer-6man-extension-header-insertion.xml" target="https://www.ietf.org/archive/id/draft-voyer-6man-extension-header-insertion-10.txt">
          <front>
            <title>Deployments With Insertion of IPv6 Segment Routing Headers</title>
            <author fullname="Daniel Voyer">
              <organization>Bell Canada</organization>
            </author>
            <author fullname="Clarence Filsfils">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Darren Dukes">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Satoru Matsushima">
              <organization>Softbank</organization>
            </author>
            <author fullname="John Leddy">
              <organization>Individual Contributor</organization>
            </author>
            <author fullname="Zhenbin Li">
              <organization>Huawei</organization>
            </author>
            <author fullname="James Guichard">
              <organization>Futurewei</organization>
            </author>
            <date month="November" day="20" year="2020"/>
            <abstract>
              <t>   SRv6 is deployed in multiple provider networks.

   This document describes the usage of SRH insertion and deletion
   within the SR domain and how security and end-to-end integrity is
   guaranteed.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-voyer-6man-extension-header-insertion-10"/>
        </reference>
        <reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8402" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml">
          <front>
            <title>Segment Routing Architecture</title>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils" role="editor">
              <organization/>
            </author>
            <author initials="S." surname="Previdi" fullname="S. Previdi" role="editor">
              <organization/>
            </author>
            <author initials="L." surname="Ginsberg" fullname="L. Ginsberg">
              <organization/>
            </author>
            <author initials="B." surname="Decraene" fullname="B. Decraene">
              <organization/>
            </author>
            <author initials="S." surname="Litkowski" fullname="S. Litkowski">
              <organization/>
            </author>
            <author initials="R." surname="Shakir" fullname="R. Shakir">
              <organization/>
            </author>
            <date year="2018" month="July"/>
            <abstract>
              <t>Segment Routing (SR) leverages the source routing paradigm.  A node steers a packet through an ordered list of instructions, called "segments".  A segment can represent any instruction, topological or service based.  A segment can have a semantic local to an SR node or global within an SR domain.  SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
              <t>SR can be directly applied to the MPLS architecture with no change to the forwarding plane.  A segment is encoded as an MPLS label.  An ordered list of segments is encoded as a stack of labels.  The segment to process is on the top of the stack.  Upon completion of a segment, the related label is popped from the stack.</t>
              <t>SR can be applied to the IPv6 architecture, with a new type of routing header.  A segment is encoded as an IPv6 address.  An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header.  The active segment is indicated by the Destination Address (DA) of the packet.  The next active segment is indicated by a pointer in the new routing header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8402"/>
          <seriesInfo name="DOI" value="10.17487/RFC8402"/>
        </reference>
        <reference anchor="RFC8491" target="https://www.rfc-editor.org/info/rfc8491" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8491.xml">
          <front>
            <title>Signaling Maximum SID Depth (MSD) Using IS-IS</title>
            <author initials="J." surname="Tantsura" fullname="J. Tantsura">
              <organization/>
            </author>
            <author initials="U." surname="Chunduri" fullname="U. Chunduri">
              <organization/>
            </author>
            <author initials="S." surname="Aldrin" fullname="S. Aldrin">
              <organization/>
            </author>
            <author initials="L." surname="Ginsberg" fullname="L. Ginsberg">
              <organization/>
            </author>
            <date year="2018" month="November"/>
            <abstract>
              <t>This document defines a way for an Intermediate System to Intermediate System (IS-IS) router to advertise multiple types of supported Maximum SID Depths (MSDs) at node and/or link granularity. Such advertisements allow entities (e.g., centralized controllers) to determine whether a particular Segment ID (SID) stack can be supported in a given network.  This document only defines one type of MSD: Base MPLS Imposition.  However, it defines an encoding that can support other MSD types.  This document focuses on MSD use in a network that is Segment Routing (SR) enabled, but MSD may also be useful when SR is not enabled.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8491"/>
          <seriesInfo name="DOI" value="10.17487/RFC8491"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
            <reference anchor="I-D.ietf-rtgwg-segment-routing-ti-lfa" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-rtgwg-segment-routing-ti-lfa.xml" target="https://www.ietf.org/archive/id/draft-ietf-rtgwg-segment-routing-ti-lfa-08.txt">
          <front>
            <title>Topology Independent Fast Reroute using Segment Routing</title>
            <author fullname="Stephane Litkowski">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Ahmed Bashandy">
              <organization>Individual</organization>
            </author>
            <author fullname="Clarence Filsfils">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Pierre Francois">
              <organization>INSA Lyon</organization>
            </author>
            <author fullname="Bruno Decraene">
              <organization>Orange</organization>
            </author>
            <author fullname="Daniel Voyer">
              <organization>Bell Canada</organization>
            </author>
            <date month="January" day="21" year="2022"/>
            <abstract>
              <t>   This document presents Topology Independent Loop-free Alternate Fast
   Re-route (TI-LFA), aimed at providing protection of node and
   adjacency segments within the Segment Routing (SR) framework.  This
   Fast Re-route (FRR) behavior builds on proven IP-FRR concepts being
   LFAs, remote LFAs (RLFA), and remote LFAs with directed forwarding
   (DLFA).  It extends these concepts to provide guaranteed coverage in
   any two connected network using a link-state IGP.  A key aspect of
   TI-LFA is the FRR path selection approach establishing protection
   over the expected post-convergence paths from the point of local
   repair, reducing the operational need to control the tie-breaks among
   various FRR options.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rtgwg-segment-routing-ti-lfa-08"/>
        </reference>
        <reference anchor="I-D.ietf-spring-segment-routing-policy" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-spring-segment-routing-policy.xml" target="https://www.ietf.org/archive/id/draft-ietf-spring-segment-routing-policy-18.txt">
          <front>
            <title>Segment Routing Policy Architecture</title>
            <author fullname="Clarence Filsfils">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Ketan Talaulikar">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Daniel Voyer">
              <organization>Bell Canada</organization>
            </author>
            <author fullname="Alex Bogdanov">
              <organization>British Telecom</organization>
            </author>
            <author fullname="Paul Mattes">
              <organization>Microsoft</organization>
            </author>
            <date month="February" day="17" year="2022"/>
            <abstract>
              <t>   Segment Routing (SR) allows a node to steer a packet flow along any
   path.  Intermediate per-path states are eliminated thanks to source
   routing.  SR Policy is an ordered list of segments (i.e.,
   instructions) that represent a source-routed policy.  Packet flows
   are steered into a SR Policy on a node where it is instantiated
   called a headend node.  The packets steered into an SR Policy carry
   an ordered list of segments associated with that SR Policy.

   This document updates RFC8402 as it details the concepts of SR Policy
   and steering into an SR Policy.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spring-segment-routing-policy-18"/>
        </reference>
      </references>
    </references>
  </back>
</rfc>
