<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that
    most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-ietf-idr-bgp-ls-sr-epe-over-l2bundle-00" updates="9085, 9086" ipr="trust200902" consensus="true">

  <front>
    <title abbrev="SR BGP EPE over L2 Bundle Members">Members</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ls-sr-epe-over-l2bundle-00"/>
    <author initials="C." surname="Lin" fullname="Changwang Lin">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <street>8 Yongjia North Road</street>
          <!-- Reorder these if your country does things differently -->
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100094</code>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
    <author initials="Z." surname="Li" fullname="Zhenqiang Li">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street>32 Xuanwumen West Street</street>
          <!-- Reorder these if your country does things differently -->

          <city>Beijing</city>

          <region>Xicheng District</region>

          <code>100053</code>

          <country>China</country>
        </postal>
        <email>lizhenqiang@chinamobile.com</email>       
      </address>
    </author>
    <author initials="R." surname="Pang" fullname="Ran Pang">
      <organization>China Unicom</organization>
      <address>
       <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>pangran@chinaunicom.cn</email>       
      </address>
    </author>
    <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar">
      <organization>Cisco Systems</organization>
      <address>
         <postal>
          <country>India</country>
        </postal>
        <email>ketant.ietf@gmail.com</email> 
      </address>
    </author>
    <author initials="R." surname="Chen" fullname="Ran Chen">
      <organization>ZTE Corporation</organization>
      <address>
         <postal>
          <country>China</country>
        </postal>
        <email>chen.ran@zte.com.cn</email> 
      </address>
    </author>
    <date year="2025" month="July" day="30"/>
    <workgroup>IDR Working Group</workgroup>
    <abstract>
      <t>
   There are deployments where the Layer 3 interface on which a BGP
   peer session is established is a Layer 2 interface bundle. In order
   to allow BGP-EPE to control traffic flows on individual member links
   of the underlying Layer 2 bundle, BGP Peering SIDs need to be
   allocated to individual bundle member links, and advertisement of
   such BGP Peering SIDs in BGP-LS is required. This document describes
   how to support Segment Routing BGP Egress Peer Engineering over
   Layer 2 bundle members. This document updates RFC9085 to allow the
   L2 Bundle Member Attributes TLV to be added to the BGP-LS Attribute
   associated with the Link NLRI of BGP peering link. This document
   updates RFC9085 and RFC9086 to allow the PeerAdj SID TLV to be
   included as a sub-TLV of the L2 Bundle Member Attributes TLV.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
   Segment Routing (SR) leverages the source routing paradigm.  A node
   steers a packet through an ordered list of instructions called
   "segments". Segment Routing can be instantiated on both MPLS and
   IPv6 data planes, which are referred to as SR-MPLS and SRv6.</t>
      <t>
   BGP Egress Peer Engineering (BGP-EPE) allows an ingress Provider
   Edge (PE) router within the domain to use a specific egress PE and a
   specific external interface/neighbor to reach a particular
   destination.</t>
      <t>
   The SR architecture <xref target="RFC8402" format="default"/> defines three types of BGP Peering
   Segments that may be instantiated at a BGP node:</t>
      <ul spacing="normal">
        <li>
          <t>Peer Node Segment (PeerNode SID): instruction to steer to a
      specific peer node</t>
        </li>
        <li>
          <t>Peer Adjacency Segment (PeerAdj SID): instruction to steer over a
      specific local interface towards a specific peer node</t>
        </li>
        <li>
          <t>Peer Set Segment (PeerSet SID): instruction to load-balance to a
      set of specific peer nodes</t>
        </li>
      </ul>
      <t>
   <xref target="RFC9087" format="default"/> illustrates a centralized controller-based BGP-EPE
   solution involving SR path computation using the BGP Peering
   Segments. A centralized controller learns the BGP Peering SIDs via
   Border Gateway Protocol - Link State (BGP-LS) and then uses this
   information to program a BGP-EPE policy. <xref target="RFC9086" format="default"/> defines the
   extension to BGP-LS for advertisement of BGP Peering Segments along
   with their BGP peering node information.</t>
      <t>
   There are deployments where the Layer 3 interface on which a BGP
   peer session is established is a Layer 2 interface bundle (L2
   Bundle), for instance, a Link Aggregation Group (LAG) [IEEE802.1AX].
   BGP-EPE may wish to control traffic flows on individual member links
   of the underlying Layer 2 bundle. In order to do so, BGP Peering
   SIDs need to be allocated to individual bundle member links, and
   advertisement of such BGP Peering SIDs in BGP-LS is required.</t>
      <t>
   This document describes how to support Segment Routing BGP Egress
   Peer Engineering over Layer 2 bundle members.</t>
      <t>
   This document updates <xref target="RFC9085" format="default"/> to allow the L2 Bundle Member
   Attributes TLV to be added to the BGP-LS Attribute associated with
   the Link NLRI of BGP peering link. This document updates <xref target="RFC9085" format="default"/>
   and <xref target="RFC9086" format="default"/> to allow the PeerAdj SID TLV to be included as a sub-
   TLV of the L2 Bundle Member Attributes TLV.</t>
      <section anchor="sect-1.1" numbered="true" toc="default">
        <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>
      </section>
    </section>
    <section anchor="sect-2" numbered="true" toc="default">
      <name>Problem Statement</name>
      <t>
   In the network depicted in Figure 1, B and C establish BGP peer
   session on a Layer 2 bundle. Assume that, the member link 1 has the
   largest available bandwidth. The operator of AS1 wishes to apply a
   BGP-EPE policy to steer certain flows from AS1 to AS2 via member
   link 1 of the Layer 2 bundle to ensure there is no over-
   subscription.</t>
      <figure anchor="ure-bgp-epe-over-l2-bundle">
        <name>BGP-EPE over L2 Bundle</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
                 L2 Bundle      +--------+
              /---member 1---\  |        |
            --+---member 2---+--C   AS2  |
+--------+ /  \---member 3---/  |        |
|        |/                     +--------+
A   AS1  B
|        |\                     +--------+
+--------+ \                    |        |
            --------------------D   AS3  |
                                |        |
                                +--------+
]]></artwork>
      </figure>
      <t>
   The existing Peer Adjacency SID can be allocated to the Layer 3
   interface between B and C, which is a Layer 2 interface bundle. If
   steered by that Peer Adjacency SID, the traffic will be forwarded by
   load balancing among all the bundle member links. So, the existing
   mechanism cannot meet the requirement of steering traffic flows via
   individual member link.</t>
      <t>
   In order to support BGP Egress Peer Engineering over Layer 2 bundle
   members, a BGP router needs to have the ability to assign Peer
   Adjacency Segments for member links. And, the Peer Adjacency
   Segments of bundle members need to be advertised in BGP-LS, which
   will be specified in this document.</t>
    </section>
    <section anchor="sect-3" numbered="true" toc="default">
      <name>Advertising Peer Adjacency Segment for L2 Bundle Member in BGP-LS</name>
      <t>
   BGP peering segments are generally advertised in BGP-LS from a BGP
   node along with its peering topology information, in order to enable
   computation of BGP-EPE policies.</t>
      <t>
   When a BGP peer session is established over a Layer 2 interface
   bundle, an implementation MAY allocate one or more Peer Adjacency
   Segments for each member link. If so, it SHOULD advertise the Peer
   Adjacency Segments of bundle members in BGP-LS, using the method
   defined in this section.</t>
      <t>
   In order to advertise the EPE Peer Adjacency SIDs for L2 bundle
   members in BGP-LS, the L2 Bundle Member Attributes TLVs <xref target="RFC9085" format="default"/>
   MUST also be included in the Link Attributes for the BGP-LS Link
   NLRI corresponding to the BGP peering session.</t>
      <t>
   Section 2.2 of <xref target="RFC9085" format="default"/> restricted that the L2 Bundle Member
   Attributes TLV "should only be added to the BGP-LS Attribute associated with the Link NLRI that describes the link of the IGP node". This document updates <xref target="RFC9085" format="default"/> to allow the L2 Bundle Member
   Attributes TLV to be added to the BGP-LS Attribute associated with
   the Link NLRI of BGP peering link.</t>
      <t>
   Each L2 Bundle Member Attributes TLV identifies an L2 bundle member,
   and includes the EPE Peer Adjacency SID for the associated L2 bundle
   member.</t>
      <t>
   Note that the inclusion of a L2 Bundle Member Attributes TLV implies
   that the identified link is a member of the L2 bundle and that the
   member link is operationally up. If any member link fails, an
   implementation MUST withdraw the L2 Bundle Member Attributes TLV in
   BGP-LS, along with the Peer Adjacency Segments for the failed member
   link.</t>
      <section anchor="sect-3.1" numbered="true" toc="default">
        <name>SR-MPLS</name>
        <t>
   For SR-MPLS, Section 5 of <xref target="RFC9086" format="default"/> defined the PeerAdj SID TLV and
   its usage for the BGP-LS advertisement of the BGP-EPE PeerAdj SID
   for L3 link. When advertising the SR-MPLS BGP-EPE Peer Adjacency
   SIDs for L2 bundle members, the PeerAdj SID TLV <xref target="RFC9086" format="default"/> MUST be
   carried in the L2 Bundle Member Attributes TLV to advertise the SR-
   MPLS Peer Adjacency SID for the associated L2 bundle member. This
   document updates <xref target="RFC9085" format="default"/> and <xref target="RFC9086" format="default"/> to allow the PeerAdj SID
   TLV to be included as a sub-TLV of the L2 Bundle Member Attributes
   TLV.</t>
        <t>
   When advertising SR-MPLS BGP-EPE Peer Adjacency SIDs for L2 bundle
   members, since L2 bundle information is considered a Layer 3 link
   attribute, it must be advertised in the BGP-LS Link NLRI. The
   details for LINK NLRI are the same as those for the PeerAdj SID, as
   described in Section 5.2 of <xref target="RFC9086" format="default"/>. This information mustnot be
   included in the BGP-LS Link NLRI that corresponds to the PeerNode
   SID, as defined in Section 5.1 of <xref target="RFC9086" format="default"/>.</t>
        <t>
   Note that for directly connected EBGP neighbors, if a BGP neighbor
   is established over an L2 Bundle, an additional BGP-LS Link NLRI(as
   described in Section 5.2 of <xref target="RFC9086" format="default"/>) must be generated to
   advertise Peer Link information when generating the BGP-LS Link NLRI
   (as described in Section 5.1 of <xref target="RFC9086" format="default"/>) corresponding to the
   PeerNode SID. The L2 Bundle Member Attributes TLV should be included
   under the BGP-LS Link Attribute TLVs.</t>
        <t>
   The SR-MPLS BGP-EPE Peer Adjacency SIDs for L2 bundle members are
   advertised with a BGP-LS Link NLRI, where:</t>
        <ul spacing="normal">
          <li>
            <t>BGP-LS Link NLRI: as described in Section 5.2 of <xref target="RFC9086" format="default"/>.</t>
          </li>
          <li>
            <t>Link Attribute TLVs:</t>
            <ul spacing="normal">
              <li>
                <t>include the PeerAdj SID TLV <xref target="RFC9086" format="default"/> for Peer Link(Optional)</t>
              </li>
              <li>
                <t>include the L2 Bundle Member Attributes TLV.</t>
                <ul spacing="normal">
                  <li>
                    <t>include the PeerAdj SID TLV <xref target="RFC9086" format="default"/> for each L2 Bundle</t>
                    <t>
	Member.
                    </t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="sect-3.2" numbered="true" toc="default">
        <name>SRv6</name>
        <t>
   For SRv6, according to Section 4.1 of <xref target="RFC9514" format="default"/>, the SRv6 End.X SID
   TLV is used for the advertisement of L3 link BGP EPE Peer Adjacency
   SID. When advertising the SRv6 BGP-EPE Peer Adjacency SIDs for L2
   bundle members, the SRv6 End.X SID TLV <xref target="RFC9514" format="default"/> MUST be carried in
   the L2 Bundle Member Attributes TLV to advertise the SRv6 Peer
   Adjacency SID for the associated L2 bundle member.</t>
        <t>
   Note Appendix A of [RFC9514], SRv6 BGP PeerNode is no longer
   advertised as BGP LINK NLRI. When advertising SRv6 BGP-EPE Peer
   Adjacency SIDs for L2 bundle members, since L2 bundle information is
   considered a Layer 3 link attribute, it must be advertised in the
   BGP-LS Link NLRI. The details for LINK NLRI are the same as those
   for the Peer Adjacency SID, as described in Section 5.2 of
   <xref target="RFC9086" format="default"/>.</t>
        <t>
   The SRv6 BGP-EPE Peer Adjacency SIDs for L2 bundle members are
   advertised with a BGP-LS Link NLRI, where:</t>
        <ul spacing="normal">
          <li>
            <t>BGP-LS Link NLRI: as described in Section 5.2 of <xref target="RFC9086" format="default"/>.</t>
          </li>
          <li>
            <t>Link Attribute TLV:</t>
            <ul spacing="normal">
              <li>
                <t>include the SRv6 End.X SID TLV <xref target="RFC9514" format="default"/> for Peer</t>
                <t>
	Link (Optional).
                </t>
              </li>
              <li>
                <t>include the L2 Bundle Member Attributes TLV.</t>
                <ul spacing="normal">
                  <li>
                    <t>include the SRv6 End.X SID TLV <xref target="RFC9514" format="default"/> for each L2 Bundle</t>
                    <t>
	Member.
                    </t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sect-4" numbered="true" toc="default">
      <name>Manageability Considerations</name>
      <t>
   The manageability considerations described in <xref target="RFC9552" format="default"/> and
   <xref target="RFC9086" format="default"/> also apply to this document.</t>
      <t>
   The operator MUST be provided with the options of configuring,
   enabling, and disabling the advertisement of Peer Adjacency Segment
   for L2 Bundle member links, as well as control of which information
   is advertised to which internal or external peer.</t>
    </section>
    <section anchor="sect-5" numbered="true" toc="default">
      <name>MC-LAG Bundles Considerations</name>
      <t>
   In environments where MC-LAG (Multi-Chassis Link Aggregation Group)
   bundles are deployed across multiple devices, it is critical to
   implement mechanisms to prevent Broadcast, Unknown Unicast, and
   Multicast (BUM) traffic from looping and ensure a loop-free network.
   The following loop prevention mechanisms are included:</t>
      <ul spacing="normal">
        <li>
          <t>Split Horizon Forwarding: Each MC-LAG device maintains a split
      horizon rule where it does not forward BUM traffic received from
      one MC-LAG member port to another MC-LAG member port. This
      prevents BUM frames from being forwarded back into the MC-LAG,
      creating loops.</t>
        </li>
        <li>
          <t>Designated Forwarder Election: In a typical MC-LAG configuration,
      one device is elected as the designated forwarder for BUM
      traffic. This ensures that only one device is responsible for
      forwarding BUM frames, preventing the possibility of multiple
      devices forwarding the same frame simultaneously and causing a
      loop.</t>
        </li>
        <li>
          <t>Consistent Hashing Algorithms: MC-LAG devices employ consistent
      hashing algorithms to ensure that traffic distribution across
      member links is stable and predictable. This minimizes the risk
      of reordering and helps in effective loop prevention.</t>
        </li>
      </ul>
      <t>
   By incorporating these mechanisms, MC-LAG deployments can
   effectively prevent BUM traffic from looping and ensure a stable,
   loop-free network.</t>
    </section>
    <section anchor="sect-6" numbered="true" toc="default">
      <name>Implementation Status</name>
      <t>
   [Note to the RFC Editor - remove this section before publication, as well as remove the reference to [RFC7942].</t>
      <t>
   This section records the status of known implementations of the
   protocol defined by this specification at the time of posting of
   this Internet-Draft, and is based on a proposal described in
   [RFC7942]. The description of implementations in this section is
   intended to assist the IETF in its decision processes in progressing
   drafts to RFCs.  Please note that the listing of any individual
   implementation here does not imply endorsement by the IETF.
   Furthermore, no effort has been spent to verify the information
   presented here that was supplied by IETF contributors.  This is not
   intended as, and must not be construed to be, a catalog of available
   implementations or their features.  Readers are advised to note that
   other implementations may exist.</t>
      <t>
   According to [RFC7942], "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature. It is up to the individual working groups to use this information as they see fit".</t>
      <section anchor="sect-6.1" numbered="true" toc="default">
        <name>New H3C Technologies</name>
        <ul spacing="normal">
          <li>
            <t>Organization: New H3C Technologies.</t>
          </li>
          <li>
            <t>Implementation: H3C CR16000, CR19000 series routers
      implementation.</t>
          </li>
          <li>
            <t>Description: All sections including all the "MUST" and "SHOULD"
      clauses have been implemented in above-mentioned New H3C Products
      (running Version 7.1.110 and above).</t>
          </li>
          <li>
            <t>Maturity Level: Product</t>
          </li>
          <li>
            <t>Coverage: All sections.</t>
          </li>
          <li>
            <t>Version: Draft-00</t>
          </li>
          <li>
            <t>Licensing: N/A</t>
          </li>
          <li>
            <t>Implementation experience: Nothing specific.</t>
          </li>
          <li>
            <t>Contact: li_meng_limeng@h3c.com</t>
          </li>
          <li>
            <t>Last updated: July 19, 2025</t>
          </li>
        </ul>
      </section>
      <section anchor="sect-6.2" numbered="true" toc="default">
        <name>ZTE Corp</name>
        <ul spacing="normal">
          <li>
            <t>Organization: ZTE Corporation</t>
          </li>
          <li>
            <t>Implementation: ZTE's M6000 Series Routers</t>
          </li>
          <li>
            <t>Description: This feature has been implemented in ZTE M6000 series
      routers and follows the definition and mechanism as defined in
      <xref target="sect-3" format="default"/> including all the "MUST" and "SHOULD" clauses.</t>
          </li>
          <li>
            <t>Maturity Level: Beta</t>
          </li>
          <li>
            <t>Coverage: All</t>
          </li>
          <li>
            <t> Version: Draft-00</t>
          </li>
          <li>
            <t> Licensing: N/A</t>
          </li>
          <li>
            <t> Implementation experience: Nothing specific.</t>
          </li>
          <li>
            <t> Contact: zhu.xiaolong@zte.com.cn</t>
          </li>
          <li>
            <t> Last updated: July 19, 2025</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sect-7" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
   The security considerations described in <xref target="RFC9552" format="default"/> and <xref target="RFC9086" format="default"/>
   also apply to this document.</t>
      <t>
   This document does not introduce any new security consideration.</t>
    </section>
    <section anchor="sect-8" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
   This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <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://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <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="RFC8402" target="https://www.rfc-editor.org/info/rfc8402" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml">
          <front>
            <title>Segment Routing Architecture</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <date month="July" year="2018"/>
            <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="RFC9085" target="https://www.rfc-editor.org/info/rfc9085" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9085.xml">
          <front>
            <title>Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing</title>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="H. Gredler" initials="H." surname="Gredler"/>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <date month="August" year="2021"/>
            <abstract>
              <t>Segment Routing (SR) allows for a flexible definition of end-to-end paths by encoding paths as sequences of topological subpaths, called "segments". These segments are advertised by routing protocols, e.g., by the link-state routing protocols (IS-IS, OSPFv2, and OSPFv3) within IGP topologies.</t>
              <t>This document defines extensions to the Border Gateway Protocol - Link State (BGP-LS) address family in order to carry SR information via BGP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9085"/>
          <seriesInfo name="DOI" value="10.17487/RFC9085"/>
        </reference>
        <reference anchor="RFC9086" target="https://www.rfc-editor.org/info/rfc9086" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9086.xml">
          <front>
            <title>Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing BGP Egress Peer Engineering</title>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="S. Ray" initials="S." surname="Ray"/>
            <author fullname="J. Dong" initials="J." surname="Dong"/>
            <date month="August" year="2021"/>
            <abstract>
              <t>A node steers a packet through a controlled set of instructions, called segments, by prepending the packet with a list of segment identifiers (SIDs). A segment can represent any instruction, topological or service based. SR segments allow steering a flow through any topological path and service chain while maintaining per-flow state only at the ingress node of the SR domain.</t>
              <t>This document describes an extension to Border Gateway Protocol - Link State (BGP-LS) for advertisement of BGP Peering Segments along with their BGP peering node information so that efficient BGP Egress Peer Engineering (EPE) policies and strategies can be computed based on Segment Routing.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9086"/>
          <seriesInfo name="DOI" value="10.17487/RFC9086"/>
        </reference>
        <reference anchor="RFC9514" target="https://www.rfc-editor.org/info/rfc9514" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9514.xml">
          <front>
            <title>Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing over IPv6 (SRv6)</title>
            <author fullname="G. Dawra" initials="G." surname="Dawra"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <author fullname="D. Bernier" initials="D." surname="Bernier"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <date month="December" year="2023"/>
            <abstract>
              <t>Segment Routing over IPv6 (SRv6) allows for a flexible definition of end-to-end paths within various topologies by encoding paths as sequences of topological or functional sub-paths called "segments". These segments are advertised by various protocols such as BGP, IS-IS, and OSPFv3.</t>
              <t>This document defines extensions to BGP - Link State (BGP-LS) to advertise SRv6 segments along with their behaviors and other attributes via BGP. The BGP-LS address-family solution for SRv6 described in this document is similar to BGP-LS for SR for the MPLS data plane, which is defined in RFC 9085.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9514"/>
          <seriesInfo name="DOI" value="10.17487/RFC9514"/>
        </reference>
        <reference anchor="RFC9552" target="https://www.rfc-editor.org/info/rfc9552" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9552.xml">
          <front>
            <title>Distribution of Link-State and Traffic Engineering Information Using BGP</title>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <date month="December" year="2023"/>
            <abstract>
              <t>In many environments, a component external to a network is called upon to perform computations based on the network topology and the current state of the connections within the network, including Traffic Engineering (TE) information. This is information typically distributed by IGP routing protocols within the network.</t>
              <t>This document describes a mechanism by which link-state and TE information can be collected from networks and shared with external components using the BGP routing protocol. This is achieved using a BGP Network Layer Reachability Information (NLRI) encoding format. The mechanism applies to physical and virtual (e.g., tunnel) IGP links. The mechanism described is subject to policy control.</t>
              <t>Applications of this technique include Application-Layer Traffic Optimization (ALTO) servers and Path Computation Elements (PCEs).</t>
              <t>This document obsoletes RFC 7752 by completely replacing that document. It makes some small changes and clarifications to the previous specification. This document also obsoletes RFC 9029 by incorporating the updates that it made to RFC 7752.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9552"/>
          <seriesInfo name="DOI" value="10.17487/RFC9552"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="IEEE802.1AX" target="https://ieeexplore.ieee.org/document/7055197" quoteTitle="true" derivedAnchor="IEEE802.1AX">
          <front>
            <title>IEEE Standard for Local and metropolitan area networks -- Link Aggregation</title>
            <author>
              <organization abbrev="IEEE" showOnFrontPage="true">IEEE</organization>
            </author>
          </front>
          <seriesInfo name="IEEE" value="802.1AX"/>
        </reference>
        <reference anchor="RFC9087" target="https://www.rfc-editor.org/info/rfc9087" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9087.xml">
          <front>
            <title>Segment Routing Centralized BGP Egress Peer Engineering</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="G. Dawra" initials="G." role="editor" surname="Dawra"/>
            <author fullname="E. Aries" initials="E." surname="Aries"/>
            <author fullname="D. Afanasiev" initials="D." surname="Afanasiev"/>
            <date month="August" year="2021"/>
            <abstract>
              <t>Segment Routing (SR) leverages source routing. A node steers a packet through a controlled set of instructions, called segments, by prepending the packet with an SR header. A segment can represent any instruction, topological or service based. SR allows for the enforcement of a flow through any topological path while maintaining per-flow state only at the ingress node of the SR domain.</t>
              <t>The Segment Routing architecture can be directly applied to the MPLS data plane with no change on the forwarding plane. It requires a minor extension to the existing link-state routing protocols.</t>
              <t>This document illustrates the application of Segment Routing to solve the BGP Egress Peer Engineering (BGP-EPE) requirement. The SR-based BGP-EPE solution allows a centralized (Software-Defined Networking, or SDN) controller to program any egress peer policy at ingress border routers or at hosts within the domain.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9087"/>
          <seriesInfo name="DOI" value="10.17487/RFC9087"/>
        </reference>
      </references>
    </references>
    <section anchor="sect-a" numbered="true" toc="default">
      <name>Example</name>
      <t>
   This section shows an example of how Node B in Figure 1 allocates
   and advertises Peer Adjacency Segments for L2 bundle members.</t>
      <t>
   B allocates a PeerAdj SID for the Layer 2 interface bundle to peer
   C, along with a PeerAdj SID for each member link. B programs its
   forwarding table accordingly:</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
+===============================+====================+
|          PeerAdj SID          | Outgoing Interface |
+---------------+---------------+                    |
| IF on SR-MPLS |  IF on SRv6   |                    |
|   Data Plane  |  Data Plane   |                    |
+===============+===============+====================+
|     1010      |     A::A0     | L2 Bundle to C     |
+---------------+---------------+--------------------+
|     1011      |     A::A1     | Member link 1 to C |
+---------------+---------------+--------------------+
|     1012      |     A::A2     | Member link 2 to C |
+---------------+---------------+--------------------+
|     1013      |     A::A3     | Member link 3 to C |
+---------------+---------------+--------------------+
]]></artwork>
      <t>
   B signals the related BGP-LS Link NLRI and Link Attributes including
   the PeerAdj SID for L3 parent link to the BGP-EPE controller, as
   specified in Section 5.2 of <xref target="RFC9086" format="default"/>. In addition, B also
   advertises L2 Bundle Member Attribute TLVs carrying the PeerAdj SIDs
   for L2 bundle members.</t>
      <t>
   For SR-MPLS, the Link Attributes are as follows:</t>
      <ul spacing="normal">
        <li>
          <t>PeerAdj SID TLV (Label-1010)</t>
        </li>
        <li>
          <t>L2 Bundle Member Attribute TLV (Link Local Identifier describing
      the member link 1)</t>
          <ul spacing="normal">
            <li>
              <t>PeerAdj SID TLV (Label-1011)</t>
            </li>
          </ul>
        </li>
        <li>
          <t>L2 Bundle Member Attribute TLV (Link Local Identifier describing
      the member link 2)</t>
          <ul spacing="normal">
            <li>
              <t>PeerAdj SID TLV (Label-1012)</t>
            </li>
          </ul>
        </li>
        <li>
          <t>L2 Bundle Member Attribute TLV (Link Local Identifier describing
      the member link 3)</t>
          <ul spacing="normal">
            <li>
              <t>PeerAdj SID TLV (Label-1013)</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>
   For SRv6, the Link Attributes are as follows:</t>
      <ul spacing="normal">
        <li>
          <t>SRv6 End.X SID TLV (SID-A::A0)</t>
        </li>
        <li>
          <t>L2 Bundle Member Attribute TLV (Link Local Identifier describing
      the member link 1)</t>
          <ul spacing="normal">
            <li>
              <t>SRv6 End.X SID TLV (SID-A::A1)</t>
            </li>
          </ul>
        </li>
        <li>
          <t>L2 Bundle Member Attribute TLV (Link Local Identifier describing
      the member link 2)</t>
          <ul spacing="normal">
            <li>
              <t>SRv6 End.X SID TLV (SID-A::A2)</t>
            </li>
          </ul>
        </li>
        <li>
          <t>L2 Bundle Member Attribute TLV (Link Local Identifier describing
      the member link 3)</t>
          <ul spacing="normal">
            <li>
              <t>SRv6 End.X SID TLV (SID-A::A3)</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgements" toc="default">
      <name>Acknowledgements</name>
      <t>
   Many thanks to Sasha Vainshtein, Acee Lindem, Chen Ran, Liyan Gong,
   Yongqing Zhu, Lan cheng, Wisdom Tan, Yisong Liu, Libin Liu, Liu Yao,
   Hongwei Li, Allan Michael, Huo Pengfei, Gyan Mishra, Dong Jie, Meng
   Liu, etc. for their valuable comments on this document.</t>
    </section>
  </back>
</rfc>
