<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- xml2rfc v3 skeleton. Fill in the TODO items. Render with:
       xml2rfc draft-hegde-spring-sr-distributed-bw-00.xml
     Date element intentionally omitted so xml2rfc uses today's date. -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     submissionType="IETF"
     category="info"
     ipr="trust200902"
     docName="draft-hegde-spring-sr-distributed-bw-00"
     obsoletes=""
     updates=""
     xml:lang="en"
     tocInclude="true"
     tocDepth="3"
     symRefs="true"
     sortRefs="true"
     consensus="true"
     version="3">

  <front>
    <title abbrev="Distributed Bandwidth Mgmt for SR">Distributed Bandwidth Management for Segment Routing</title>
    <seriesInfo name="Internet-Draft" value="draft-hegde-spring-sr-distributed-bw-00"/>

    <author fullname="Shraddha Hegde" initials="S." surname="Hegde">
      <organization>Hewlett Packard Enterprise</organization>
      <address>
        <postal>
          <street>Mahadevapura</street>
          <city>Bangalore</city>
          <region>KA</region>
          <code>560048</code>
          <country>India</country>
        </postal>
        <email>shraddha.hegde@hpe.com</email>
      </address>
    </author>

    <author fullname="Colby Barth" initials="C." surname="Barth">
      <organization>Hewlett Packard Enterprise</organization>
      <address>
        <email>jonathan.barth@hpe.com</email>
      </address>
    </author>
	
	    <author fullname="Vishnu Pavan" initials="V." surname="Beeram">
      <organization>Hewlett Packard Enterprise</organization>
      <address>
        <email>vishnupavan.ietf@gmail.com</email>
      </address>
    </author>

    <area>Routing</area>
    <workgroup>SPRING Working Group</workgroup>

    <keyword>Segment Routing</keyword>
    <keyword>SR-MPLS</keyword>
    <keyword>SRv6</keyword>
    <keyword>Traffic Engineering</keyword>
    <keyword>Bandwidth</keyword>

    <abstract>
      <t>This document defines an architecture for distributed bandwidth
      management in Segment Routing (SR) networks. Distributed bandwidth
      management is a model in which the bandwidth required by each SR Policy is
      computed and reserved in a distributed manner by the network nodes
      themselves, rather than by a centralized controller, so that path
      computation, admission control, and bandwidth accounting for SR Policies
      are performed by the head-end and transit nodes along the path.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Segment Routing (SR) <xref target="RFC8402"/> steers packets through a
      network using an ordered list of segments. An SR Policy
      <xref target="RFC9256"/> is associated with one or more candidate paths,
      and in many deployments each SR Policy has an associated bandwidth
      requirement. Distributed bandwidth management is a model in which the
      computation of SR Policy paths and the management of link bandwidth are
      performed by the network nodes in a distributed manner, without relying on
      a single centralized controller. Each head-end independently computes a
      path for its SR Policy that satisfies the policy's bandwidth requirement,
      using the traffic engineering (TE) information distributed by the IGP.</t>

      <t>Because head-ends compute paths independently and concurrently, path
      computation alone cannot guarantee that the bandwidth one head-end
      accounts for on a link is consistent with the reservations made by other
      head-ends. To make a reservation authoritative, signalling is used to
      reserve the bandwidth for each SR Policy on every transit node along the
      computed path. The signalling establishes per-SR-Policy reservation state
      on the transit nodes and confirms that the requested bandwidth is
      available end to end.</t>

      <t>When two or more head-ends concurrently compute paths over the same
      link, the same bandwidth may be provisionally accounted for by more than
      one head-end before the IGP has re-advertised the updated link bandwidth;
      that is, the bandwidth may be "double-booked". The signalling-based
      reservation resolves such races: if the requested bandwidth cannot be
      reserved on a transit node because it has already been committed to
      another SR Policy, the reservation, and therefore the SR Policy setup,
      fails. The head-end then recomputes the SR Policy path using the updated
      bandwidth information and retries the reservation.</t>

      <t>Distributed path computation and admission control rely on the TE
      bandwidth attributes that the IGP advertises for each link:</t>
      <ul spacing="normal">
        <li>Maximum Link Bandwidth: the capacity of the link.</li>
        <li>Maximum Reservable Link Bandwidth: the maximum bandwidth that may be
        reserved on the link, which may exceed the maximum link bandwidth when
        over-subscription is configured.</li>
        <li>Unreserved (available) Bandwidth: the bandwidth not yet reserved,
        advertised per priority level.</li>
      </ul>
      <t>These sub-TLVs were introduced for IS-IS in <xref target="RFC5305"/>
      (carried in the Extended IS Reachability TLV) and for OSPFv2 in
      <xref target="RFC3630"/> (carried in the TE Opaque LSA); the equivalent
      OSPFv3 extensions are defined in <xref target="RFC5329"/>.</t>

      <t>When a transit node reserves bandwidth for an SR Policy, the Unreserved
      Bandwidth of the affected link changes. The transit node re-originates and
      floods the updated bandwidth sub-TLVs through the IGP so that all
      head-ends obtain a consistent view of the remaining reservable bandwidth.
      Subsequent SR Policy computations use this updated information, reducing
      the likelihood of double-booking on that link.</t>
    </section>

    <section anchor="requirements-language" 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&nbsp;14
      <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
      appear in all capitals, as shown here.</t>
    </section>

    <section anchor="terminology" numbered="true" toc="default">
      <name>Terminology</name>
      <dl newline="false" spacing="normal">
        <dt>SR</dt><dd>Segment Routing.</dd>
        <dt>SID</dt><dd>Segment Identifier.</dd>
        
      </dl>
    </section>

    <section anchor="motivation" numbered="true" toc="default">
      <name>Motivation</name>
      <t>The current Segment Routing architecture does not define a signalling
      protocol. As a result, it cannot provide network resource management ,
      such as bandwidth admission control and reservation on its own, and
      can do so only with the aid of an off-box application such as a
      centralized network controller. For this reason, some SR
      traffic-engineering deployments rely on a centralized controller to
      compute paths, perform admission control, and manage link bandwidth for
      the SR Policies in the network. While a centralized controller provides 
      a convenient global view, this model has some drawbacks that 
      become more pronounced as the network grows:</t>
      <ul spacing="normal">
        <li>Low scalability: a single controller (or controller cluster) must
        hold the state of, and compute and continually re-optimize paths for,
        every SR Policy in the network. As the number of nodes, links, and
        policies increases, the associated computation, state, and churn become
        a bottleneck.</li>
        <li>Large failure blast radius: because the controller is on the
        critical path for provisioning and re-optimization, a controller
        failure, network partition, or software defect can simultaneously affect
        a large portion of the network.</li>
      </ul>
      <t>These limitations of centralized WAN control, and the benefits of
      distributing control functions closer to the network nodes, are examined
      for large operator networks in <xref target="DSDN"/>.</t>
      <t>A model in which path computation and
      signalling-based bandwidth reservation are performed by the network nodes
      themselves, has been deployed for many years. The computation and reservation state is spread
      across the head-end and transit nodes rather than concentrated in one
      place, and the failure of any single node affects only the SR Policies
      that traverse it, substantially reducing the blast radius.</t>
      <t>Distributing the control functions does not by itself address
      forwarding state. In the model described in this document, however, the
      forwarding plane uses SR SIDs and the segment-stacking model: each path is
      encoded as a stack of SIDs carried in the packet, and transit nodes
      forward on shared per-link (Adjacency-SID or End.X SID) entries rather
      than on per-path forwarding state. This preserves the stateless-core
      property of Segment Routing and thereby solves the scalability issues
      posed by maintaining per-path forwarding state in the network core.</t>
    </section>

    <section anchor="architecture" numbered="true" toc="default">
      <name>Distributed Bandwidth Management Architecture</name>
      <t>In the distributed bandwidth management architecture, the
      per-SR-Policy bandwidth admission control, reservation, and accounting are
      performed by the network nodes themselves rather than by a centralized
      controller. The head-end, transit, and egress nodes are responsible for
      computing paths and for reserving and maintaining bandwidth along the
      path. <xref target="fig-arch"/> shows the functional components and their
      interactions.</t>

      <figure anchor="fig-arch">
        <name>Distributed Bandwidth Management Components</name>
        <artwork type="ascii-art" align="left"><![CDATA[
  +-----------+     +-----------+     +-----------+     +-----------+
  | Head-end  | --> | Transit   | ... | Transit   | --> |  Egress   |
  |   (R1)    |     |   (R2)    |     |   (Rn)    |     |   (Rz)    |
  +-----------+     +-----------+     +-----------+     +-----------+

  Data path (forwarding):   R1 --> R2 --> ... --> Rn --> Rz,
    using the SID stack imposed by the head-end.

  Reservation signalling:   initiated by the head-end (R1) to reserve
    bandwidth on every node along the path to the egress (Rz).

  IGP flooding:  TE attributes and unreserved bandwidth are flooded
    among all nodes.
]]></artwork>
      </figure>

      <section anchor="arch-headend" numbered="true" toc="default">
        <name>Head-End</name>
        <t>The head-end is the node at which an SR Policy is instantiated, and
        is the owner of the SR Policy, consistent with the SR Policy
        architecture defined in <xref target="RFC9256"/>. The role of the
        head-end in this architecture is the same as the head-end role defined
        there.</t>
        <t>The SR Policy constructs defined in <xref target="RFC9256"/> are
        unchanged by this document. In particular, an SR Policy remains
        identified by the tuple (head-end, color, endpoint); each SR Policy has
        one or more candidate paths; a candidate path is distinguished by its
        protocol origin, originator, and discriminator (distinguisher); and the
        active candidate path is selected by preference. These concepts remain
        the same when the associated bandwidth is managed in a distributed
        manner. When one or more candidate paths are enabled for distributed 
        bandwdith management, each candidate path reserves bandwidth along 
        the path and hence multiple candidate paths have to be used carefully to
        avoid overbooking the network resources.</t>
        <t>In addition to the role defined in <xref target="RFC9256"/>, the
        head-end in this architecture:</t>
        <ul spacing="normal">
          <li>Performs path computation for the candidate path, subject to the
          locally configured Explicit Route Object (ERO) and other path
          constraints (for example, affinities and metric bounds).</li>
          <li>Initiates the signalling that reserves the required bandwidth for
          the SR Policy on every node along the computed path, as described in
          <xref target="signalling"/>.</li>
          <li>On reservation success, builds the SID stack (segment list) that
          encodes the forwarding path, as described in
          <xref target="forwarding-plane"/>.</li>
          <li>On reservation failure, recomputes the path using the updated
          bandwidth information and retries, as described in
          <xref target="introduction"/>.</li>
        </ul>
      </section>

      <section anchor="arch-transit" numbered="true" toc="default">
        <name>Transit Node</name>
        <t>A transit node is any node along the computed path between the
        head-end and the egress. For each SR Policy reservation that traverses
        it, a transit node:</t>
        <ul spacing="normal">
          <li>Performs bandwidth admission control: it checks whether the
          requested bandwidth is available on the relevant outgoing link at the
          requested priority.</li>
          <li>Reserves the requested bandwidth on the link when admission
          succeeds, establishing per-SR-Policy reservation state. When the
          requested bandwidth is not available, the request is rejected, which
          may trigger pre-emption of lower-priority reservations as described in
          <xref target="forwarding-plane"/>.</li>
          <li>Updates the IGP: after the reserved bandwidth on a link changes,
          the transit node re-originates and floods the updated unreserved
          bandwidth sub-TLVs so that all head-ends obtain a consistent view of
          the remaining reservable bandwidth.</li>
        </ul>
      </section>

      <section anchor="arch-egress" numbered="true" toc="default">
        <name>Egress Node</name>
        <t>The egress node is the endpoint (tail-end) of the SR Policy, at
        which the SR Policy's forwarding path terminates.</t>
      </section>
    </section>

    <section anchor="signalling" numbered="true" toc="default">
      <name>Signalling</name>
      <t>A signalling protocol is used to install per-SR-Policy bandwidth
      reservation state on the transit nodes along a computed path and to
      perform hop-by-hop admission control. The signalling confirms that the
      requested bandwidth is available on every link of the path and commits the
      reservation. If any node along the path cannot satisfy the request, the
      setup fails and the head-end recomputes the SR Policy path as described in
      <xref target="introduction"/>.</t>

      <t>RSVP-TE is the signalling protocol for this architecture. It is a
      proven and widely deployed control plane for bandwidth reservation and
      admission control, and <xref target="RFC8577"/> already provides the
      foundation for operating it on a shared SR forwarding plane: it describes
      how to signal RSVP-TE tunnels on a shared MPLS forwarding plane, which
      allows RSVP-TE to perform bandwidth reservation and admission control
      while the data-plane forwarding is provided by SR. In this architecture,
      RSVP-TE maintains only the per-SR-Policy reservation (control-plane) state
      on each node along the path; it creates no per-SR-Policy forwarding state,
      because forwarding follows the shared SR segments as described in
      <xref target="forwarding-plane"/>.</t>

      <t><xref target="I-D.beeram-mpls-rsvp-sr"/> extends
      <xref target="RFC8577"/> to signal RSVP-TE tunnels directly over the
      SR-MPLS forwarding plane, using IGP-advertised Adjacency SIDs (Adj-SIDs)
      as the forwarding-plane labels, and
      <xref target="I-D.beeram-spring-rsvp-srv6"/> provides the equivalent
      mechanism for the SRv6 forwarding plane using End.X SIDs. Together these
      define how RSVP-TE reserves bandwidth for SR Policies on both the SR-MPLS
      and SRv6 data planes.</t>
    </section>

    <section anchor="forwarding-plane" numbered="true" toc="default">
      <name>Forwarding Plane</name>
      <t>Once the bandwidth reservation for an SR Policy succeeds, the head-end
      builds the forwarding path by encoding an explicit segment list that
      follows the reserved links. In SR-MPLS this is a stack of Adjacency-SIDs
      <xref target="RFC8402"/>, and in SRv6 it is a list of End.X SIDs
      <xref target="RFC8986"/>; each such segment identifies a specific link
      (adjacency) on the reserved path. In SRv6, when the segment list is long,
      it can be encoded more compactly using the micro-SID (uSID) flavor of
      compressed SRv6 segment list encoding <xref target="RFC9800"/>, which
      packs multiple micro-segments into each 128-bit SID and thereby reduces
      the number of SIDs, and the encapsulation overhead, needed to express the
      path. Because the path is expressed entirely as a segment list carried in
      the packet, the transit nodes forward the traffic solely on the basis of
      the top (active) segment, which represents a link rather than a policy.</t>

      <t>Consequently, although the control plane maintains per-SR-Policy
      signalling (reservation) state on each transit node along the path, the
      forwarding plane holds no per-SR-Policy state: a transit node's forwarding
      entry for an Adjacency-SID or End.X SID is shared by all SR Policies that
      traverse that link, preserving the stateless-core property of Segment
      Routing. The per-SR-Policy signalling state in the control plane is
      required primarily to facilitate pre-emption: it records how much
      bandwidth each SR Policy has reserved on a link and at what priority, so
      that when a higher-priority SR Policy requests bandwidth that is not
      otherwise available, the node can identify the lower-priority reservations
      to pre-empt. This state also enables per-policy bandwidth accounting and
      the correct release of bandwidth when an SR Policy is torn down.</t>
    </section>

    <section anchor="autobandwidth" numbered="true" toc="default">
      <name>Auto-Bandwidth</name>
      <t>Auto-bandwidth is a mechanism by which the head-end automatically
      adjusts the bandwidth reserved for an SR Policy so that the reservation
      tracks the actual measured traffic demand, instead of relying on a
      statically configured bandwidth value. Auto-bandwidth allows reservations
      to follow real demand, improving the utilization of network capacity
      while preserving the admission guarantees provided by the distributed
      reservation mechanism.</t>
      <t>As a feature, auto-bandwidth encompasses a broad set of functions,
      including traffic statistics collection, bandwidth demand estimation and
      prediction, and periodic optimization of the path and its reservation.
      The detailed specification of these functions is outside the scope of
      this document and is expected to be described in a separate document.</t>
      <t>Traffic is measured, and bandwidth is adjusted, on a per-segment-list
      basis: the head-end independently tracks the demand for each segment list
      of the SR Policy, because each segment list is computed, reserved, and
      signalled independently along its own path. All segment lists within the
      same SR Policy use the same auto-bandwidth parameters, so that the segment
      lists of a policy are managed consistently.</t>

      <section anchor="autobw-resignalling" numbered="true" toc="default">
        <name>Resignalling Bandwidth Based on Auto-Bandwidth</name>
        <t>The traffic carried by a segment list may increase or decrease over
        time. When the auto-bandwidth-derived demand for a segment list changes
        significantly relative to its current reservation, the head-end
        resignals the reservation for that segment list using the new
        value:</t>
        <ul spacing="normal">
          <li>An increase causes the head-end to signal a reservation at the
          higher bandwidth. This is subject to admission control on every node
          along the path; if the increased bandwidth cannot be admitted, the
          head-end recomputes the path and retries, as described in
          <xref target="introduction"/>.</li>
          <li>A decrease causes the head-end to signal a reservation at the
          lower bandwidth, releasing the excess so that the freed capacity is
          returned to the links as unreserved bandwidth and flooded by the
          IGP.</li>
        </ul>
      </section>
    </section>

    <section anchor="sr-policy-containers" numbered="true" toc="default">
      <name>SR Policy Containers</name>
      <t>An SR Policy container is an SR Policy whose bandwidth demand is
      realized by one or more parallel segment lists that together carry the
      policy's traffic, with the demand load-balanced across the active segment
      lists. Modelling the SR Policy as a container of segment lists allows the
      aggregate demand of the policy to exceed the bandwidth that a single
      segment list can reserve on a single path, and allows the number of
      segment lists to adapt as the demand changes (typically driven by
      auto-bandwidth, see <xref target="autobandwidth"/>). Details of the 
      containers and splitting and merging will be specified in
      a seperate document in future.</t>
    </section>

    <section anchor="oam" numbered="true" toc="default">
      <name>Operations, Administration, and Maintenance (OAM)</name>
      <t>This architecture does not introduce a new data plane. As described in
      <xref target="forwarding-plane"/>, the forwarding path of an SR Policy is
      expressed entirely as a segment list of standard SR SIDs ,Adjacency-SIDs
      in SR-MPLS and End.X SIDs in SRv6 and transit nodes forward solely on
      those shared per-link segments, with no per-SR-Policy forwarding state.
      Because the data plane is unchanged, the existing Segment Routing OAM
      mechanisms apply to SR Policies managed by this architecture without any
      modification. This section summarizes the applicable mechanisms and the
      documents that define them.</t>
      <t>Seamless BFD (S-BFD) <xref target="RFC7880"/> <xref target="RFC7881"/>
      can be used, unchanged, to verify the continuity and liveness of the
      forwarding path of an SR Policy. An S-BFD session runs over the segment
      list imposed by the head-end. No new S-BFD procedures are required by this
      document.</t>
      <t>On-demand connectivity verification and fault isolation using MPLS LSP
      Ping and Traceroute <xref target="RFC8029"/> apply unchanged. Because an
      SR Policy path is a stack of Adjacency-SIDs that need not correspond to a
      single routed FEC, the Nil FEC <xref target="RFC8029"/> is well suited to
      validating such label stacks, and the SR-specific target FEC stack
      sub-TLVs for Prefix-SIDs and Adjacency-SIDs are defined in
      <xref target="RFC8287"/>. For the SRv6 data plane, the corresponding
      ping, traceroute, and S-BFD procedures are defined in
      <xref target="RFC9259"/>.</t>
      <t>Active performance measurement, such as delay and packet-loss
      measurement, also applies unchanged. The Two-Way Active Measurement
      Protocol (TWAMP) <xref target="RFC5357"/> and the Simple Two-Way Active
      Measurement Protocol (STAMP) <xref target="RFC8762"/> can measure the
      performance of the path taken by an SR Policy.</t>
      <t>In all of these cases the OAM packets traverse the same SR segment list
      as the monitored traffic and are processed by the standard SR data plane,
      so no OAM-specific extensions are introduced by the distributed bandwidth
      management mechanism defined in this document.</t>
    </section>

    <section anchor="operational-considerations" numbered="true" toc="default">
      <name>Operational Considerations</name>
      <t>TODO: Scaling, convergence, backward compatibility, and manageability.</t>
    </section>

    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>TODO: Describe threats and mitigations. Reference the security
      considerations of the underlying SR data planes and IGP/BGP-LS
      advertisements as applicable.</t>
    </section>

    

    <section anchor="acknowledgements" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t>TODO.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <!-- TODO: add normative references, e.g. RFC 8402 (SR Architecture) if normative -->
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3630.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5305.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5329.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8577.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8919.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8920.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8986.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9256.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9800.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5357.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7880.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7881.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8287.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8762.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9259.xml"/>
        <reference anchor="I-D.beeram-mpls-rsvp-sr" target="https://datatracker.ietf.org/doc/draft-beeram-mpls-rsvp-sr/">
          <front>
            <title>Signaling RSVP-TE Tunnels on an SR-MPLS Forwarding Plane Using Adjacency Segment Identifiers</title>
            <author initials="V. P." surname="Beeram" fullname="Vishnu Pavan Beeram"/>
            <author initials="C." surname="Barth" fullname="Colby Barth"/>
            <author initials="A." surname="Smith" fullname="Andy Smith"/>
            <date year="2026" month="July"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-beeram-mpls-rsvp-sr-00"/>
        </reference>
        <reference anchor="I-D.beeram-spring-rsvp-srv6" target="https://datatracker.ietf.org/doc/draft-beeram-spring-rsvp-srv6/">
          <front>
            <title>Signaling RSVP-TE Tunnels on an SRv6 Forwarding Plane Using End.X Segment Identifiers</title>
            <author initials="V. P." surname="Beeram" fullname="Vishnu Pavan Beeram"/>
            <author initials="C." surname="Barth" fullname="Colby Barth"/>
            <author initials="A." surname="Smith" fullname="Andy Smith"/>
            <date year="2026" month="July"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-beeram-spring-rsvp-srv6-00"/>
        </reference>
        <reference anchor="DSDN" target="https://doi.org/10.1145/3651890.3672257">
          <front>
            <title>A Decentralized SDN Architecture for the WAN</title>
            <author initials="A." surname="Krentsel" fullname="Alexander Krentsel"/>
            <author initials="N." surname="Saran" fullname="Nitika Saran"/>
            <author initials="B." surname="Koley" fullname="Bikash Koley"/>
            <author initials="S." surname="Mandal" fullname="Subhasree Mandal"/>
            <author initials="A." surname="Narayanan" fullname="Ashok Narayanan"/>
            <author initials="S." surname="Ratnasamy" fullname="Sylvia Ratnasamy"/>
            <author initials="A." surname="Al-Shabibi" fullname="Ali Al-Shabibi"/>
            <author initials="A." surname="Shaikh" fullname="Anees Shaikh"/>
            <author initials="R." surname="Shakir" fullname="Rob Shakir"/>
            <author initials="A." surname="Singla" fullname="Ankit Singla"/>
            <author initials="H." surname="Weatherspoon" fullname="Hakim Weatherspoon"/>
            <date year="2024" month="August"/>
          </front>
          <refcontent>Proceedings of the ACM SIGCOMM 2024 Conference, pp. 938-953</refcontent>
          <seriesInfo name="DOI" value="10.1145/3651890.3672257"/>
        </reference>
      </references>
    </references>
  </back>
</rfc>
