<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<rfc category="std" docName="draft-dukes-spring-sr-for-sdwan-02" ipr="trust200902">
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

  <?rfc toc="yes" ?>

  <?rfc symrefs="yes" ?>

  <?rfc sortrefs="yes" ?>

  <?rfc iprnotified="no" ?>

  <?rfc strict="yes" ?>

  <front>
    <title>SR For SDWAN: VPN with Underlay SLA</title>

    <author fullname="Darren Dukes" initials="D." role="editor"
            surname="Dukes">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <country>Canada</country>
        </postal>

        <email>ddukes@cisco.com</email>
      </address>
    </author>

    <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <country>Belgium</country>
        </postal>

        <email>cfilsfil@cisco.com</email>
      </address>
    </author>

    <author fullname="Gaurav Dawra" initials="G." surname="Dawra">
      <organization>LinkedIn</organization>

      <address>
        <postal>
          <street/>

          <country>USA</country>
        </postal>

        <email>gdawra@linkedin.com</email>
      </address>
    </author>

    <author fullname="Xiaohu Xu" initials="X." surname="Xu">
      <organization>Alibaba</organization>

      <address>
        <postal>
          <street/>

          <country>China</country>
        </postal>

        <email>xiaohu.xxh@alibaba-inc.com</email>
      </address>
    </author>

    <author fullname="Daniel Voyer" initials="D." surname="Voyer">
      <organization>Bell Canada</organization>

      <address>
        <postal>
          <street/>

          <country>Canada</country>
        </postal>

        <email>daniel.voyer@bell.ca</email>
      </address>
    </author>

    <author fullname="Pablo Camarillo Garvia" initials="P."
            surname="Camarillo">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <country>Spain</country>
        </postal>

        <email>pcamaril@cisco.com</email>
      </address>
    </author>

    <author fullname="Francois Clad" initials="F." surname="Clad">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <country>France</country>
        </postal>

        <email/>
      </address>
    </author>

    <author fullname="Stefano Salsano" initials="S." surname="Salsano">
      <organization>Univ. of Rome Tor Vergata</organization>

      <address>
        <postal>
          <street/>

          <country>Italy</country>
        </postal>

        <email>stefano.salsano@uniroma2.it</email>
      </address>
    </author>

    <date/>

    <abstract>
      <t>This document describes how SR enables underlay Service Level
      Agreements (SLA) to a VPN with scale and security while ensuring service
      opacity. This solution applies to Over-The-Top VPN (OTT VPN) and
      Software-Defined WAN (SDWAN).</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>This document describes how SR enables underlay SLA to a VPN with
      scale and security while ensuring service opacity. This solution applies
      to Over-The-Top VPN (OTT VPN) with SLA differentiation, and
      Software-Defined WAN (SDWAN) with SLA differentiation.</t>

      <t>The body of this text uses SRv6 for illustration. A similar solution
      leveraging SR-MPLS is illustrated in an appendix.</t>

      <t>This document assumes familiarity with the following IETF
      documents:<list style="symbols">
          <t>Segment Routing Architecture <xref format="default"
          target="I-D.ietf-spring-segment-routing"/></t>

          <t>Segment Routing with MPLS data plane <xref format="default"
          target="I-D.ietf-spring-segment-routing-mpls"/></t>

          <t>IPv6 Segment Routing Header <xref format="default"
          target="I-D.ietf-6man-segment-routing-header"/></t>

          <t>SRv6 Network Programming <xref
          target="I-D.filsfils-spring-srv6-network-programming"/></t>

          <t>Segment Routing Policy For Traffic Engineering <xref
          target="I-D.filsfils-spring-segment-routing-policy"/></t>

          <t>IS-IS Extensions to Support Segment Routing over IPv6 Dataplane
          <xref target="I-D.bashandy-isis-srv6-extensions"/></t>
        </list></t>

      <t>For clarity, this version of the document uses the SDWAN example with
      SRv6 to illustrate how SR can be used to provide underlay SLA to overlay
      services. The journey of a packet from the left site to the right site
      of the SDWAN Overlay is described. The solution applies similarly for
      the return path.</t>
    </section>

    <section title="Requirements Notation">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119"/>.</t>
    </section>

    <section title="Single Provider">
      <section title="Directly Connected CE to PE">
        <t/>

        <figure align="center" anchor="sdwan_ref_diag"
                title="SDWAN Reference Diagram">
          <preamble/>

          <artwork>+------------+                                       /-----------/
|   SDWAN    |                                      /           /
|  Control   |                                     / [SDWAN-C]...
+------------+                                    /           / :
                                                 /-----------/  :
                                                                :
               /-------------------------------------------/    :
+---------+   /                                           /     :
|  SDWAN  |  /    [A]-----[E1]***********[E2]--------[Z] /      :
| Overlay | /               :              :            /       :
+---------+/                :......        :           /        :
          /-----------------------:--------:----------/         :
                                  :        :                    :
                                  :        :                    :
                   /----------/   :        :                    :
+------------+    /          /    :        :                    :
|     SP     |   /  [SR-C]  /     :        :                    :
|  Control   |  /     :    /      :        :                    :
+------------+ /------:---/   ....:        ..                   :
                      :       :             :                   :
                      :       :             :                   :
+------------+        :   /---:-------------:-------------/     :
|     SP     |        :  /    :             :            /      :
|  Underlay  |        : /   [C1]----------[C2]          /       :
+------------+        :/       \           /           /        :
                      :         \      /--/           /         :
                     /:          \    /              /          :
                    / :...........[C3]..........................:
                   /                               /
                  /-------------------------------/

**** = logical connection
:... = physical connection, between layers
/--\ = physical connection, within a layer
</artwork>

          <postamble/>
        </figure>

        <t>An SDWAN overlay is composed of two sites A and Z, connected to the
        Internet via edge nodes E1 and E2 respectively. E1 and E2 (customer
        edge nodes) are connected via a Service Provider (SP) underlay to form
        the VPN between the sites.</t>

        <t>C1, C2 and C3 are nodes of the SP underlay, where C1 and C2 are
        Provider Edge nodes. ISIS is deployed in the SP underlay with the same
        cost on each link.</t>

        <t>E1 and E2 connect to C1 and C2 respectively. The shortest path from
        C1 to C2 is the best-effort path. The explicit path C1-C3-C2 is the
        low-latency path. By default, traffic transported from C1 to C2
        follows the best-effort path. By default, an SDWAN cannot benefit from
        the low-latency path from C1 to C2.</t>

        <t>The address of A is 10.10.0.10/32 and the address of Z is
        10.26.0.26/32. E1 and E2 respectively advertise 10.10/16 and 10.26/16
        to the SDWAN controller SDWAN-C via a secure channel over the
        Internet. The solution is applicable to any traffic exchanged between
        the sites, including IPv4, IPv6 or L2. For clarity, a single example
        with IPv4 in the SDWAN Overlay is used.</t>

        <t>The SP operates an SR controller SR-C capable of computing
        constrained paths from C1 to C2.</t>
      </section>

      <section title="Best-effort Underlay Transport ">
        <t>Let’s consider the path taken by traffic from A to Z, across the
        SDWAN, between nodes E1 and E2 with addresses E1:: and E2::
        respectively.</t>

        <t>Host A sends a packet P to Z via E1. Packet P has source address
        10.10.0.10 and destination address 10.26.0.26, illustrated as P
        (10.10.0.10,10.26.0.26)(payload). E1, upon receipt of P, determines E2
        is the edge node to be used to reach Z. Edge node E1 encrypts,
        encapsulates and forwards the packet P toward E2 and Z, and it is
        handled as follow:<list style="symbols">
            <t>Between A and E1 : P (10.10.0.10,10.26.0.26)(Payload)</t>

            <t>Between E1 and C1 : P
            (E1::,E2::,NH=ESP)(NH=IPv4,(10.10.0.10,10.26.0.26)(Payload))<list
                style="symbols">
                <t>Note that ESP tunnel mode encapsulation, encryption and
                authentication is assumed but not required.</t>
              </list></t>

            <t>Between C1 and C2 : P
            (E1::,E2::,NH=ESP)(NH=IPv4,(10.10.0.10,10.26.0.26)(Payload))</t>

            <t>Between C2 and E2 : P (E1::,E2::,NH=ESP)(
            NH=IPv4,(10.10.0.10,10.26.0.26)(Payload))</t>

            <t>Between E2 and Z : P (10.10.0.10,10.26.0.26)(Payload)</t>
          </list></t>

        <t>This example illustrates that, classically (i.e., without the SR
        solution described in this document), the SDWAN cannot leverage the
        rich infrastructure of the SP to meet its needs. The SP is constrained
        to offer best-effort transit which does not reflect the capabilities
        of its infrastructure.</t>
      </section>

      <section anchor="SR_FOR_UNDERLAY_SLA"
               title="SR for Underlay SLA Differentiation  ">
        <t>SR enables the SDWAN to steer selected flows through selected
        transport paths of the SP, using the same example in <xref
        target="sdwan_ref_diag"/>.</t>

        <t>This small example, with only 3 SP routers, assumes all three
        support SRv6. As explained in <xref
        target="I-D.filsfils-spring-srv6-network-programming"/>, a typical
        deployment would only require SRv6 at a few strategic waypoints
        deployed through the network.</t>

        <t>It also assumes ISIS supports the lightweight SRv6 extension
        described in <xref target="I-D.bashandy-isis-srv6-extensions"/>.</t>

        <t>The illustration convention from <xref
        target="I-D.filsfils-spring-srv6-network-programming"/> is used such
        that:<list style="symbols">
            <t>SRv6 SID Cj:: is explicitly instantiated at node Cj and bound
            to the END.PSP function.</t>

            <t>SRv6 SID C1::B21 is a Binding SID (BSID) explicitly
            instantiated at headend C1 and bound to the SRTE policy &lt;C3::,
            C2::&gt; toward endpoint C2.<list style="symbols">
                <t>Note the return direction would use a BSID C2::B11, bound
                at headend C2, to the SRTE policy &lt;C3::, C1::&gt; toward
                endpoint C1.</t>
              </list></t>
          </list></t>

        <t>The Control-Plane (CP) workflow that leads to the instantiation of
        this Binding SID will be explained in the Control-Plane section.</t>

        <t>Let’s again consider the path from A to Z for a packet P, but this
        time E1 has been configured by SDWAN-C to steer packet P into a
        preferred low-latency path of the SP bound to the binding SID C1:B21.
        <list style="symbols">
            <t>Between A and E1<list style="symbols">
                <t>P (10.10.0.10,10.26.0.26)(payload)</t>
              </list></t>

            <t>Between E1 and C1<list style="symbols">
                <t>P (E1::,C1::B21; NH=SRH)(E2::,C1::B21; SL=1;
                NH=ESP)(NH=IPv4(10.10.0.10,10.26.0.26)(Payload))</t>
              </list></t>
          </list></t>

        <t>When the Binding SID C1::B21 is processed at C1, the SR TE Policy
        is selected and the SRH for SID list &lt;C3::,C2::&gt; is inserted
        into P:<list style="symbols">
            <t>Between C1 and C3 <list style="symbols">
                <t>P (E1::,C3::;NH=SRH)(E2::,C2::,C3::; SL=2;NH=ESP)
                (NH=IPv4(10.10.0.10,10.26.0.26)(Payload))</t>
              </list></t>
          </list></t>

        <t>At C3, the SegmentsLeft is decremented as the END SID C3:: is
        processed, and C2:: is placed in the destination address:<list
            style="symbols">
            <t>Between C3 and C2<list style="symbols">
                <t>P (E1::,C2::;NH=SRH)(E2::,C2::,C3::; SL=1;NH=ESP)
                (NH=IPv4(10.10.0.10,10.26.0.26)(Payload))</t>
              </list></t>
          </list></t>

        <t>At C2, the SegmentsLeft is decremented to 0, and penultimate
        segment pop is applied as the END SID C2:: is processed and E2:: is
        placed in the destination address while the SRH is removed: <list
            style="symbols">
            <t>Between C2 and E2 <list style="symbols">
                <t>P
                (E1::,E2::,NH=ESP)(NH=IPv4(10.10.0.10,10.26.0.26)(Payload))</t>
              </list></t>
          </list></t>

        <t>Finally, E2 decrypts the packet and strips the outer header to
        forward the original packet to Z: <list style="symbols">
            <t>Between E2 and Z <list style="symbols">
                <t>P (10.10.0.10,10.26.0.26)(Payload)</t>
              </list></t>
          </list></t>

        <t>The SDWAN edge nodes (E1,E2) maintain their existing behavior
        of<list style="symbols">
            <t>Ingress Edge Node: classify ingress traffic, determining the
            egress edge node, selecting a local output interface, secure the
            traffic, and forward to the chosen egress edge node.</t>

            <t>Egress Edge Node: decapsulate, decrypt and forward on the
            internal network.</t>
          </list></t>

        <t>The only change is that the Ingress node now monitors and selects
        an SRv6 binding SID then pushes an SRH with two SIDs.</t>

        <t>Note as well that the ingress and egress edge nodes never see the
        actual SID list used by the SP to deliver the preferred path. A
        variation of this design allows for the BSID to be kept in the packet
        so that the egress node can detect which packets have been steered on
        which preferred path (for accounting or monitoring purposes).</t>

        <t>This is a fairly simple example of how SRv6 binding SIDs and SR TE
        policies may be used to provide multiple diverse paths for SDWAN
        traffic traversing a single provider network.</t>
      </section>

      <section anchor="ACCOUNTING" title="Accounting">
        <t>As per SRv6 network programming <xref
        target="I-D.filsfils-spring-srv6-network-programming"/>, each SRTE
        policy and its bound BSID is associated with a unique traffic counter.
        This allows the SP to implement various forms of billing and reporting
        to the customer of the preferred path.</t>
      </section>

      <section anchor="SECURITY" title="Security">
        <t>The domain of trust security solution documented in <xref
        target="I-D.filsfils-spring-srv6-network-programming"/> is
        utilized.</t>

        <t>Specifically SEC1, SEC2 and SEC3 guarantee that external traffic to
        the SP cannot exercise the SID’s of the SP.</t>

        <t>The following behavior is added: the ACL implementing SEC1 and SEC2
        on node C1 is updated to specifically allow traffic from E1:: to
        C1::B21.</t>

        <t>Only the SDWAN edge that has ordered the preferential service can
        use it.</t>

        <t>Any other customer of the SP is unable to use the preferential path
        bound to BSID C1::B21.</t>

        <t>The SDWAN site that has ordered the preferential service is unable
        to directly program the network of the SP using the internal SID’s of
        the SP. The SDWAN edge node is restricted to the BSID, which opacifies
        the SP operation.</t>
      </section>

      <section title="Remotely Connected (to PE) ">
        <t>Well known authentication technology with details provided in
        subsequent revisions will be added, detailing the scenario with SDWAN
        edge nodes not directly connected to the SP node terminating the
        binding SID.</t>
      </section>
    </section>

    <section title="Multiple Providers">
      <t>Well known authentication technology with details provided in
      subsequent revisions will be added, detailing the scenario with SDWAN
      edge nodes connected to the SP node offering binding SID via an
      intermediate SP.</t>
    </section>

    <section title="Control Plane">
      <t>The SDWAN overlay in <xref target="sdwan_ref_diag"/> is managed by an
      SDWAN controller, SDWAN-C.</t>

      <t>The control protocols used by the SDWAN-C to signal the site routes,
      the BSID’s and the site policies (which traffic on which BSID when)
      securely over the SP network to E1 and E2 is outside the scope of this
      document.</t>

      <t>The SP underlay operates its internal SR deployment with an SR
      controller (SR-C). SR-C interacts with the SP’s network (Cj) through
      standardized protocols (PCE<xref target="RFC4674"/> , PCEP <xref
      target="RFC5440"/>/<xref target="RFC4657"/>, BGP RR<xref
      target="RFC4456"/>, BGP-TE <xref
      target="I-D.ietf-idr-segment-routing-te-policy"/>, BGP-LS <xref
      target="RFC7752"/>)</t>

      <t>Most likely, the SP would operate its underlay SLA service with a
      service controller (SERV-C) that is separate from SR-C. To simplify the
      illustration, this text assumes that SERV-C and SR-C are integrated.</t>

      <t>This section describes the high-level interaction between these
      controllers for the low-latency use-case described in this document,
      where an enterprise operator installs a policy in the SDWAN-C requiring
      a low latency service between E1 and E2.</t>

      <figure align="center" anchor="cp_flow" title="Controlplane Flow">
        <artwork>    +----------+
    |Enterprise|
    | Operator |
    +----------+
+---+    |        +----------+   +-------+       +---+
|E1 |    |        | SDWAN-C  |   | SR-C  |       |C1 |
+---+    |        +----------+   +-------+       +---+
  |      |              |            |             |
  |      |-------i-----&gt;|            |             |
  |      |Require low   |            |             |
  |      |latency from  |            |             |
  |      |E1 to E2 for  |            |             |
  |      |some traffic  |            |             |
  |      |              +------ii----&gt;             |
  |      |           request service |----+        |
  |      |           from E1:: to    |  iii        |
  |      |           E2:: for low    |&lt;---+        |
  |      |           latency         |Compute an SR|
  |      |              |            |Policy for E1|
  |                     |            |to E2        |
  |                     |            |             |
  |                     |            |-----iv-----&gt;|
  |                     |            | Program SR TE
  |                     |            | Policy      |
  |                     |            |             |
  |                     |            |&lt;-----v------+
  |                     |&lt;----vi-----| Report policy
  |                     |reply with  | installed   |
  |                     |binding SID |             |
  |&lt;-------vii----------|C1:B21::
  | Notify              |
  | SID C1:B21::        |
  | for low latency
  | E1:: to E2::
  |</artwork>
      </figure>

      <t><list counter="cp_flow_list" style="format (%i)">
          <t>The enterprise operator requests a low-latency path from site E1
          to site E2. It defines which traffic needs to be steered on this
          preferred path.</t>

          <t>SDWAN-C requests a low-latency service from SR-C for the public
          address of E1 to the public address of E2.</t>

          <t>SR-C computes an SR Policy to satisfy SDWAN-C’s request:<list
              style="letters">
              <t>SR-C maps the E1 and E2 addresses to its managed nodes C1 and
              C2.</t>

              <t>SR-C statefully registers the SRTE policy from C1 to C2 for
              low-latency.</t>

              <t>SR-C computes the SID list fulfilling the SLA requirement
              (e.g. &lt;C3::, C2::&gt;). The stateful nature of the SRTE
              policy ensures that the SID list is updated whenever required
              due to network state change.</t>

              <t>SR-C binds a stable Binding SID C1::B21 to the SRTE
              policy.</t>
            </list></t>

          <t>SR-C programs C1 with the computed SRTE policy and the selected
          BSID. Standardized protocols such as <xref
          target="I-D.ietf-idr-segment-routing-te-policy"/> or <xref
          target="RFC5440"/> are used.</t>

          <t>C1 installs the policy in its dataplane and reports the status of
          the SRTE policy to SR-C using standardized protocols <xref
          target="RFC7752"/> or <xref target="RFC5440"/> and <xref
          target="I-D.negi-pce-segment-routing-ipv6"/>.</t>

          <t>SR-C replies to SDWAN-C with BSID C1::B21</t>

          <t>SDWAN-C programs E1 with the flow classification and steering
          policy to insert SRv6 SID C1::B21 on the appropriate traffic</t>
        </list></t>
    </section>

    <section title="Benefits">
      <section title="Scale">
        <t>The SP network does not hold any per-SDWAN-flow state in the core
        of its network.</t>

        <t>The SP network does not hold any complex L3-L7 flow classification
        at the edge of its network.</t>

        <t>The SP network is unaware of any policy change of the SDWAN
        instance either in terms of which flow to classify, when to steer it
        and on which path.</t>

        <t>The SP’s role only consists in statefully maintaining SRTE policies
        at the edge of the network and maintaining a few 100’s of SID’s inside
        its core network. This is the stateless property of Segment
        Routing.</t>
      </section>

      <section title="Privacy">
        <t>The SP network does not share any information of its
        infrastructure, topology, capacity, internal SID’s.</t>

        <t>The SDWAN instance does not share any information on its traffic
        classification, steering policy and business logic.</t>
      </section>

      <section title="Flexible Billing">
        <t>The traffic destined to a BSID is individually accounted <xref
        format="default"
        target="I-D.filsfils-spring-srv6-network-programming"/>.</t>

        <t>The SP and SDWAN instance can agree on various forms of billing for
        the usage of the preferential path.</t>
      </section>

      <section title="Security">
        <t>By default, the SP’s SR infrastructure is protected by the simple
        domain of trust solution documented in <xref
        target="I-D.filsfils-spring-srv6-network-programming"/>.</t>

        <t>A BSID (and the related preferential path) can only be accessed by
        the specific SDWAN instance (and site) that ordered the service.</t>

        <t>The security solution supports any SDWAN site connection type:
        directly connected to the SP edge or not.</t>
      </section>
    </section>

    <section title="Appendix">
      <section anchor="SP_ENDBM"
               title="Single Provider Example Using End.BM With an MPLS Core">
        <t>Reusing the example from <xref target="SR_FOR_UNDERLAY_SLA"/>, with
        an SP core that supports SR MPLS as defined in <xref
        target="I-D.ietf-spring-segment-routing-mpls"/>. Each node C1, C2
        and C3 have node-SIDs defined, resulting in labels 16001, 16002, and
        16003 respectively. In such a case a packet from A to Z has an SRv6
        binding SID applied, associated with an SR policy at node C1. Node C1
        translates the binding SID to an MPLS label stack which is pushed on
        the packet.</t>

        <t>For example:<list style="symbols">
            <t>SRv6 SID C1::B22 is a Binding SID (BSID) explicitly
            instantiated at headend C1 and bound to the SRTE policy
            &lt;16003,16002&gt; toward endpoint C2.<list style="symbols">
                <t>Note the return direction would use a BSID C2::B12, bound
                at headend C2, to the SRTE policy &lt;16003, 16001&gt; toward
                endpoint C1.</t>
              </list></t>
          </list></t>

        <t>Let’s again consider the path from A to Z for a packet P where E1
        has been configured by SDWAN-C to steer packet P into a preferred
        low-latency path of the SP bound to the binding SID C1::B22.<list
            style="symbols">
            <t>Between A and E1<list style="symbols">
                <t>P (10.10.0.10,10.26.0.26)(payload)</t>
              </list></t>

            <t>Between E1 and C1<list style="symbols">
                <t>P (E1::,C1::B22; NH=SRH)(E2::,C1::B22; SL=1;
                NH=ESP)(NH=IPv4(10.10.0.10,10.26.0.26)(Payload))</t>
              </list></t>
          </list></t>

        <t>When the Binding SID C1::B22 is processed at C1, the SR TE Policy
        is selected and the label stack for SID list &lt;16003,16002&gt; is
        pushed on P. In practice 16003 is not pushed on the wire since it has
        been distributed with PHP:<list style="symbols">
            <t>Between C1 and C3 <list style="symbols">
                <t>P (16002)(E1::,E2::;NH=ESP)
                (NH=IPv4(10.10.0.10,10.26.0.26)(Payload))</t>
              </list></t>
          </list></t>

        <t>At C3, 16002 is popped and PHP requires no new label be pushed as P
        is forwarded via the link to C2:<list style="symbols">
            <t>Between C3 and C2<list style="symbols">
                <t>P
                (E1::,E2::;NH=ESP)(NH=IPv4(10.10.0.10,10.26.0.26)(Payload))</t>
              </list></t>
          </list></t>

        <t>At C2, there is no more label stack so it forwards E2:: using the
        global IPv6 table toward E2: <list style="symbols">
            <t>Between C2 and E2 <list style="symbols">
                <t>P
                (E1::,E2::,NH=ESP)(NH=IPv4(10.10.0.10,10.26.0.26)(Payload))</t>
              </list></t>
          </list></t>

        <t>Finally, E2 decrypts the packet and strips the outer header to
        forward the original packet to Z: <list style="symbols">
            <t>Between E2 and Z <list style="symbols">
                <t>P (10.10.0.10,10.26.0.26)(Payload)</t>
              </list></t>
          </list></t>

        <t>Again the only change is that the Ingress node now selects an MPLS
        binding SID for traffic taking the lowest latency path. The Ingress
        node has no knowledge of the SP underlay.</t>
      <section title="Accounting">
        <t>As defined in <xref target="ACCOUNTING"/></t>
      </section>

      <section title="Security">
        <t>The SRv6 SID is secured as defined in <xref target="SECURITY"/></t>

        <t>MPLS is not enabled on the CE-to-PE link.</t>
      </section>

      </section>

      <section title="Single Provider Example Using MPLS From CE to PE for BSID">
        <t>To be completed in future revisions</t>
      </section>

      <section title="Single Provider Example Using SRMPLS Over UDP For CE to PE Not Directly Connected Over Internet">
        <t>Reusing the example from <xref target="SR_FOR_UNDERLAY_SLA"/>, with
        an SP core that supports the SR MPLS extensions defined in <xref
        target="I-D.ietf-isis-segment-routing-extensions"/>. Each node C1, C2
        and C3 have node-SIDs defined, resulting in labels 16001, 16002, and
        16003 respectively.</t>

        <t>Let’s again consider the path from A to Z for a packet P, but this
        time E1 has been configured by SDWAN-C to steer packet P into a
        preferred low-latency path of the SP bound to an MPLS binding SID.</t>

        <t>For example:<list style="symbols">
            <t>MPLS label 24102 is a Binding SID (BSID) explicitly
            instantiated at headend C1 and bound to the SRTE policy
            &lt;16003,16002&gt; toward endpoint C2.<list style="symbols">
                <t>Note the return direction would use a BSID 24201, bound at
                headend C2, to the SRTE policy &lt;16003, 16001&gt; toward
                endpoint C1.</t>
              </list></t>
          </list></t>

        <t>Let’s again consider the path from A to Z for a packet P where E1
        has been configured by SDWAN-C to steer packet P into a preferred
        low-latency path of the SP bound to the binding SID 24102.<list
            style="symbols">
            <t>Between A and E1<list style="symbols">
                <t>P (10.10.0.10,10.26.0.26)(payload)</t>
              </list></t>

            <t>Between E1 and C1, RFC7510 UDP encapsulation of MPLS is used to
            transport the MPLS labeled traffic.<list style="symbols">
                <t>P (E1::,C1::; NH=UDP)(24102,(10.10.0.10,10.26.0.26)(Payload))</t>
              </list></t>
          </list></t>

        <t>When C1 receives P, it decapsulates the UDP header and pops the
        Binding SID 24102, the SR TE Policy is selected and the label stack
        for SID list &lt;16003,16002&gt; is pushed on P. In practice, 16003 is
        not pushed on the wire since it has been distributed with PHP.</t>

        <t>The remainder of this use case is identical to <xref
        target="SP_ENDBM"/>. The only change is that the Ingress node now uses
        an MPLS binding SID transported over UDP instead of an SRv6 binding
        SID, allowing the use of an IPv6 or IPv4 transport from CE to PE.</t>
      <section title="Accounting">
        <t>As defined in <xref target="ACCOUNTING"/></t>
      </section>

      <section title="Security">
        <t><xref target="RFC7510"/> defines the use of DTLS to
        authenticate and encrypt the MPLS in UDP encapsulation between CE and
        PE. The authentication ensures the source is authorized to send
        traffic to a binding SID.</t>

        <t>After the source is verified as authorized, the source address and
        Binding SID SHOULD be checked to determine if the source is permitted
        to use the specific Binding SID in the MPLS label.</t>

        <t>MPLS is not enabled on the CE-to-PE link.</t>
      </section>
      </section>

    </section>

    <section title="IANA Considerations">
      <t>No current considerations.</t>
    </section>

    <section title="Security Considerations">
      <t>A domain of trust is secured via methods documented in <xref
      target="I-D.filsfils-spring-srv6-network-programming"/></t>
    </section>
  </middle>

  <back>
    <references title="Informative References">
      <?rfc include='reference.I-D.ietf-spring-segment-routing.xml'?>

      <?rfc include='reference.I-D.ietf-spring-segment-routing-mpls.xml'?>

      <?rfc include='reference.I-D.ietf-6man-segment-routing-header.xml'?>

      <?rfc include='reference.I-D.filsfils-spring-segment-routing-policy.xml'?>

      <?rfc include='reference.I-D.ietf-isis-segment-routing-extensions.xml'?>

      <?rfc include='reference.I-D.bashandy-isis-srv6-extensions.xml'?>

      <?rfc include='reference.RFC.7510'?>

      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.4674'?>

      <?rfc include='reference.RFC.4657'?>

      <?rfc include='reference.I-D.ietf-idr-segment-routing-te-policy.xml'?>

      <?rfc include='reference.I-D.negi-pce-segment-routing-ipv6.xml'?>

      <?rfc include='reference.RFC.7752'?>

      <?rfc include='reference.RFC.5440'?>

      <?rfc include='reference.RFC.4456'?>
    </references>

    <references title="Normative References">
      <?rfc include='reference.I-D.filsfils-spring-srv6-network-programming.xml'?>
    </references>
  </back>
</rfc>
