<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?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. -->
<?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="3"?>
<!-- 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="info" docName="draft-shi-cats-with-real-locator-01"
     ipr="trust200902">
  <front>
    <title abbrev="draft-shi-cats-with-real-locator-01">CATS based on Real
    Locator</title>

    <author fullname="Hang Shi" initials="H." surname="Shi">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

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

        <email>shihang9@huawei.com</email>
      </address>
    </author>

    <author fullname="Xia Chen" initials="X." surname="Chen">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

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

        <email>jescia.chenxia@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Zhenbin Li" initials="Z." surname="Li">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

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

        <email>lizhenbin@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Xinxin Yi" initials="X." surname="Yi">
      <organization>China Unicom</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

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

        <email>yixx3@chinaunicom.cn</email>

        <uri/>
      </address>
    </author>

    <author fullname="Kehan Yao" initials="K." surname="Yao">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

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

        <email>yaokehan@chinamobile.com</email>

        <uri/>
      </address>
    </author>
    <date day="29" month="Feb" year="2024"/>

    <!---->

    <keyword/>

    <abstract>
      <t>This document describes a solution framework that adheres to the CATS
      framework. The solution uses anycast IP addresses as the CATS service
      identifier and real locator of the service contact instance as the CATS
      Instance Selection ID.</t>
    </abstract>

    <note title="Requirements Language">
      <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>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t><xref target="I-D.ldbc-cats-framework"/>defines a framework for
      Computing-Aware Traffic Steering (CATS). Such a framework defines an
      approach for making compute- and network-aware traffic steering
      decisions in networking environments where services are deployed in many
      locations.</t>

      <t><xref target="I-D.lbdd-cats-dp-sr"/> proposes a data plane solution
      for the realization of CATS. The solution uses an anycast IP address as
      the Computing-aware Service ID (CS-ID) associated with a service. Also,
      the solution uses Segment Routing (SR) as the data plane encapsulation
      from an ingress CATS-Router to an egress CATS-Router.</t>

      <t> <xref target="I-D.lbdd-cats-dp-sr"/> describes the scenario with
      multiple service sites connected to a single egress CATS-Router. To
      demultiplex these sites, a specific attachment circuit must be provided
      to indicate the specific target service. In order to explicitly indicate
      the interface towards a site, an END.DX is encoded as the last segment
      in the SRv6 encapsulation<xref target="RFC8986"/>. The associated END.DX
      is learned from the control plane.</t>

      <t>In the case that there are multiple service contact instances connected to the same interface of the egress, the selected specific service contact instance can not be distiguished only by END.DX and anycast IP. This document proposes
       real locator of the service contact instance acting as the CIS-ID in <xref
      target="I-D.ldbc-cats-framework"/>.</t>
    </section>

    <section title="Terminology">
      <t>This document makes use of the terms defined in <xref
      target="I-D.ldbc-cats-framework"/> and <xref
      target="I-D.lbdd-cats-dp-sr"/>.</t>
    </section>

    <section title="Solution Overview">
      <figure>
        <artwork align="center"><![CDATA[                                +------+
                                |Client|
                                +------+
                                    |
                             +-------------+
                             |    C-TC     |
                             |-------------|
                             |     | C-PS  |
       ......................|     +-------|....................
       :                     |CATS-Router 2|                   :
       :                     +-------------+                   :
       :                                                       :
       :                         Underlay                      :
       :                      Infrastructure                   :
       : SRv6 Encap 1                            SRv6 Encap 2  :
       :                                                       :
       :   +-------------+                +-------------+      :
       :   |CATS-Router 1|                |CATS-Router 3|      :
       :...|             |................|             |......:
           +-------------+                +-------------+
           |    C-SMA    |                |    C-SMA    |
           +-------------+                +-------------+
     END.DX SID1  |              END.DX SID2 |         | END.DX SID3
           ...................             ......    ......
           :                 :             :    :    :    :
           ...................             ......    ......
             | Real IP1    |Real IP2         |         |
         +-----------+  +----------+   +----------+  +----------+
         |  Service  |  | Service  |   | Service  |  | Service  |
         |  contact  |  | contact  |   | contact  |  | contact  |
         |  instance |  | instance |   | instance |  | instance |
         +-----------+  +----------+   +----------+  +----------+

                 Edge site 1           Edge site 2   Edge site 3

    Figure 1: Using SRv6 and Real Locator in CATS]]></artwork>
      </figure>

      <section title="Realization of CATS Framework Components">
        <t>The realization of CATS Framework in this document adheres to <xref
        target="I-D.ldbc-cats-framework"/> and <xref
        target="I-D.lbdd-cats-dp-sr"/> and adds some additional
        description.</t>

        <t>As in Figure 1, there is underlay infrastructure between an egress
        CATS-Router and service contact instances. One egress CATS-Router can
        connect multiple service site. One service site has only one service
        contact instance or multiple service contact instances.</t>

        <t>In the realization of CATS framework, CATS service ID is anycast IP
        and CATS Instance Selector ID is the real locator of the CATS service
        contact instance.</t>

        <t>The CATS overlay encapsulation is established from an ingress
        CATS-Router to an egress CATS-Router connected to a service site.To
        describe conveniently in this document the tunnel between CATS-Router
        assumes SRv6<xref target="RFC8986"/>.</t>

        <t>As in Figure 1, only one service contact instance is hosted in the
        edge site2. The solution proposed in I-D.lbdd-cats-dp-sr is enough.
        The solution is only use END.DX or END.DT without real locator.</t>

        <t>But as in Figure 1, the edge site1 has two service contact
        instances. As described in [I-D.ldbc-cats-framework] if the egress
        CATS-Router executes per-instance computing-related metric
        distribution the real locator should be advertised with the service ID
        too. And when the packet is forwarded according to the computing
        result of CATS PATH Selector the real locator of selected service
        contact instance should be carried besides END.DX or END.DT. The
        following section will describe the detail of process.</t>
      </section>

      <section title="Realization of CATS Framework Workflow">
        <t>As described in Section 3.4 of <xref
        target="I-D.ldbc-cats-framework"/>, CATS can be deployed in a
        distributed model, centralized model, or a hybrid model. The following
        description is about distributed model.</t>

        <section title="Service Announcement">
          <t>This section is the same as Section 3.2.1 of <xref
          target="I-D.lbdd-cats-dp-sr"/>.</t>
        </section>

        <section title="Metrics Distribution">
          <t>As per the CATS framework, CS-ID routes with metrics and CIS-ID
          are distributed among the overlay CATS-Routers for per-instance
          metric distribution. The detailed control plane solutions of metrics
          distribution are out of the scope of this document. However, a
          sample procedure is provided for the readers convenience.</t>

          <t>For example, BGP can be used to distribute anycast IP route of
          the service with additional metrics and real locator.</t>

          <t>In the case of the C-SMA running as stand alone outside an egress
          CATS-Router, the C-SMA collects the metrics of computing resource
          for the service per one service contact instance and distributes the
          anycast IP route of the service with the collected metrics and real
          locator to the egress CATS-Router. Egress CATS-Routers will generate
          new metrics combining the network metrics and computing-related
          metrics, and redistribute the anycast IP route with the new metrics
          and real locator to ingress CATS-Routers. In the case of the C-SMA
          running as a logic entity on an egress CATS-Router, the same process
          will be performed inside the egress CATS-Router.</t>
        </section>

        <section title="Service Demand processing">
          <t>In a distributed model an ingress CATS-Router receives the packet
          with destination address being anycast IP of the service. The
          ingress CATS-Router determines the special service contact instance
          to serve this packet and get the IP address of the egress
          CATS-Router the service contact instance is connected to, END.DX or
          END.DT for SRv6 and real locator.</t>

          <t>The ingress CATS-Router generates SRv6 encapsulations from itself
          to the egress CATS-Router with real locator carried in the outer
          IPv6 extension header. Egress CATS-Router decapsulates the outer
          tunnel header and get the real locator. It determines the service
          site according to END.DX or END.DT and forwards the packet to the
          specific service contact instance according to the real locator.</t>

          <t>There are two typical ways to forward the packet from the egress
          CATS-Router to the service contact instance:</t>

          <t><list style="numbers">
              <t>Tunnel mode: The packet with destination IP being anycast IP
              is encapsulated to the tunnel with destination address set to
              real locator.</t>

              <t>IP mode: The packet should be IPv6 packet with the real
              locator carried in the IPv6 extension header. The CATS-Router
              and the underlay infrastructure should forward the packet
              according to the real locator. And the real locator in the IPv6
              extension header can be inserted to the packet in the ingress or
              egress CATS-Router.</t>
            </list></t>
        </section>

        <section title="Service Instance Affinity">
          <t>This section is the same as Section 3.2.4 of <xref
          target="I-D.lbdd-cats-dp-sr"/>.</t>
        </section>
      </section>
    </section>

    <section title="Requirements">
      <t>This section describes the requirements of protocol extensions about
      the real locator used in CATS .</t>

      <t>[REQ01] IPv6 extension header should be used to carry real
      locator.</t>

      <t>[REQ02] Protocol extensions should be defined to advertise real
      locator from C-SMA running as stand alone to an egress CATS-Router.</t>

      <t>[REQ03] Protocol extensions should be defined to advertise real
      locator from an egress CATS-Router to an ingress CATS-Router in a
      distributed model.</t>
    </section>

    <section title="Security Considerations">
      <t>TBD</t>
    </section>

    <section anchor="Contributors" title="IANA Considerations">
      <t>There are no IANA considerations in this document.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.I-D.ldbc-cats-framework'?>

      <?rfc include='reference.I-D.lbdd-cats-dp-sr'?>

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