<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cats-framework-24" category="info" consensus="true" submissionType="IETF" xml:lang="en" number="10053" tocInclude="true" sortRefs="true" symRefs="true" version="3">

  <link href="https://datatracker.ietf.org/doc/draft-ietf-cats-framework-24" rel="prev"/>
  <front>
    <title abbrev="CATS Framework">A Framework for Computing-Aware Traffic Steering (CATS)</title>
    <seriesInfo name="RFC" value="10053"/>
    <author initials="C." surname="Li" fullname="Cheng Li" role="editor">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>c.l@huawei.com</email>
      </address>
    </author>
    <author initials="Z." surname="Du" fullname="Zongpeng Du">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>duzongpeng@chinamobile.com</email>
      </address>
    </author>
    <author initials="M." surname="Boucadair" fullname="Mohamed Boucadair" role="editor">
      <organization>Orange</organization>
      <address>
        <postal>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author initials="L. M." surname="Contreras" fullname="Luis M. Contreras">
      <organization>Telefonica</organization>
      <address>
        <postal>
          <country>Spain</country>
        </postal>
        <email>luismiguel.contrerasmurillo@telefonica.com</email>
      </address>
    </author>
    <author initials="J." surname="Drake" fullname="John E Drake">
      <organization>Independent</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>je_drake@yahoo.com</email>
      </address>
    </author>
    <date year="2026" month="October"/>
    <area>RTG</area>
    <workgroup>cats</workgroup>
    <keyword>computing</keyword>
    <keyword>computing-aware traffic steering</keyword>
    <keyword>user experience</keyword>
    <keyword>collaborative networking</keyword>
    <keyword>service optimization</keyword>
    <abstract>
      <?line 134?>

<t>This document describes a framework for Computing-Aware Traffic Steering (CATS). Specifically, the document identifies a set of CATS functional components, describes their interactions, and provides illustrative workflows of the control and data planes. The framework covers only the case of a single service provider.</t>
    </abstract>
  </front>
  <middle>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Computing service architectures evolved from a single service site to multiple, sometimes collaborative, service sites to address various issues such as long response times or suboptimal utilization of service and network resources (e.g., resource under-utilization or exhaustion).</t>
      <t>The underlying networking infrastructures that include computing resources usually provide relatively static service dispatching (e.g., the selection of the service instances for a request). In such infrastructures, service-specific traffic is often directed to the closest service site from a routing perspective without considering the actual network state (e.g., traffic congestion conditions) or the service site state.</t>
      <t>As described in <xref target="RFC10054"/>, traffic steering that takes into account computing resource metrics would benefit several services, including latency-sensitive services such as immersive services that rely upon the use of augmented reality or virtual reality (AR/VR) techniques. This document provides an architectural framework that aims at facilitating the making of compute- and network-aware traffic steering decisions in dynamic networking environments with variable computing service resources.</t>
      <t>Today, organizations often distribute user services across on-premises and cloud service provider networks. To support both redundancy and responsiveness, the Computing-Aware Traffic Steering (CATS) framework supports single or multiple service instances providing one given service, which may exist in one or more service sites. Clients access service instances via client-facing service functions known as service contact instances. A single service site may host one or multiple service contact instances. A single service site may have limited computing resources available at a given time, whereas the various service sites may experience different resource availability issues over time. Therefore, steering traffic among different service sites can address resource limitations in a specific service site.</t>
      <t>Steering in CATS aims to select the appropriate service contact instance to service a request according to a set of network and computing metrics. This selection may not reveal the actual service instance that a client will invoke (e.g., in hierarchical or recursive contexts). Therefore, the metrics of the service contact instance may be aggregate metrics from multiple service instances.</t>
      <t>The CATS framework is an overlay framework for the selection of the suitable service contact instances from a set of candidates. The overlay is realized by means of encapsulation between CATS&nbhy;Forwarders. A combination of networking and computing metrics determines the exact characterization of services as "suitable" or not.</t>
      <t>Furthermore, this document describes a workflow of the main CATS procedures (<xref target="sec-cats-workflow"/>) executed in both the control and data planes. The framework covers only the case of a single service provider.</t>
      <t>This document assumes that CATS functional elements are hosted in a provider network. As such, it is out of scope to discuss deployment options where such elements are co-located with a client.</t>
      <t>It is out of the scope of this document to provide a comprehensive list of CATS realization techniques or assess how existing mechanisms meet all CATS requirements.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>This document makes use of the following terms:</t>
      <dl>
        <dt>Client:</dt>
        <dd>
          <t>An endpoint that connects to a service provider network.</t>
        </dd>
        <dt>Flow:</dt>
        <dd>
          <t>A logical grouping of packets during a time interval, identified by some fields from the packet header, such as the 5-tuple transport coordinates (source address and destination address, source and destination port numbers, and protocol). Flow identification should also cover contexts where port numbers are not present (non-initial fragments, IP Encapsulating Security Payload (ESP) <xref target="RFC4303"/>, etc.).</t>
        </dd>
        <dt>Computing-Aware Traffic Steering (CATS):</dt>
        <dd>
          <t>A traffic engineering approach <xref target="RFC9522"/> that takes into account the dynamic nature of computing resources (e.g., compute and storage) and network state to optimize service-specific traffic forwarding towards a given service contact instance. The CATS framework leverages various metrics to enable CATS policies.</t>
        </dd>
        <dt>Metric:</dt>
        <dd>
          <t>A quantitative measure that provides suitable input to a selection mechanism for CATS decision making. It can be a network metric or a computing metric.</t>
        </dd>
        <dt>Computing metric:</dt>
        <dd>
          <t>A metric specific to the computing resources in the underlying CATS systems as opposed to other metrics, such as network metrics. Examples of computing metrics are discussed in <xref target="I-D.ietf-cats-metric-definition"/>.</t>
        </dd>
        <dt>Service:</dt>
        <dd>
          <t>An offering that is made available by a service provider by orchestrating a set of resources (networking, compute, storage, etc.).</t>
        </dd>
        <dt/>
        <dd>
          <t>The service provider retains control of internal resources and the service logic. For example, these resources may be:
</t>
          <ul spacing="normal">
            <li>
              <t>Exposed by one or multiple processes.</t>
            </li>
            <li>
              <t>Provided by virtual instances, physical instances, or a combination thereof.</t>
            </li>
            <li>
              <t>Hosted within the same or distinct nodes.</t>
            </li>
            <li>
              <t>Hosted within the same or multiple service sites.</t>
            </li>
            <li>
              <t>Chained to provide a service using a variety of means.</t>
            </li>
          </ul>
        </dd>
        <dt/>
        <dd>
          <t>How a service provider structures its services remains out of the scope of CATS.</t>
        </dd>
        <dt/>
        <dd>
          <t>Service providers may provide the same service in many locations; each of them constitutes a service instance.</t>
        </dd>
        <dt>Computing service:</dt>
        <dd>
          <t>A service offered to a client by a service provider by orchestrating a set of computing resources.</t>
        </dd>
        <dt>CATS Service ID (CS-ID):</dt>
        <dd>
          <t>An identifier representing a service, which the clients use to access it. See <xref target="cats-ids"/>.</t>
        </dd>
        <dt>Service instance:</dt>
        <dd>
          <t>A collection of running resources that are orchestrated following a service logic. When invoked by a client request, these resources will collectively provide the intended service.</t>
        </dd>
        <dt/>
        <dd>
          <t>A service provider may enable many service instances that adhere to the same service logic to provide the same service.</t>
        </dd>
        <dt/>
        <dd>
          <t>A service instance runs in a service site and one or more instances may service clients' requests.</t>
        </dd>
        <dt>Service site:</dt>
        <dd>
          <t>A location that hosts the resources that implement one or more service instances.</t>
        </dd>
        <dt/>
        <dd>
          <t>A service site may be a node or a set of nodes.</t>
        </dd>
        <dt>Service contact instance:</dt>
        <dd>
          <t>A client-facing function that is responsible for receiving requests in the context of a given service.</t>
        </dd>
        <dt/>
        <dd>
          <t>A service contact instance can handle one or more service instances.</t>
        </dd>
        <dt/>
        <dd>
          <t>Steering beyond a service contact instance is hidden to both clients and CATS components.</t>
        </dd>
        <dt/>
        <dd>
          <t>A service contact instance processes a client's service request according to the service logic (e.g., handle locally or solicit backend resources).</t>
        </dd>
        <dt/>
        <dd>
          <t>A service contact instance is reachable via at least one Egress CATS&nbhy;Forwarder.</t>
        </dd>
        <dt/>
        <dd>
          <t>Clients may access a service via multiple service contact instances running at the same or different locations (service sites).</t>
        </dd>
        <dt/>
        <dd>
          <t>A service contact instance may dispatch service requests to one or more service instances (e.g., a service contact instance that behaves as a service load balancer).</t>
        </dd>
        <dt>CATS Service Contact Instance ID (CSCI-ID):</dt>
        <dd>
          <t>An identifier of a specific service contact instance. See <xref target="cats-ids"/>.</t>
        </dd>
        <dt>Service request:</dt>
        <dd>
          <t>A request to access or invoke a specific service. CATS&nbhy;Forwarders steer a service request to a service contact instance.</t>
        </dd>
        <dt/>
        <dd>
          <t>Clients generate service requests using service-specific protocols.</t>
        </dd>
        <dt/>
        <dd>
          <t>Clients send service requests to a service instance (identified by a CS-ID), without explicit knowledge of CATS&nbhy;Forwarders.</t>
        </dd>
        <dt>CATS&nbhy;Forwarder:</dt>
        <dd>
          <t>A network entity that steers traffic specific to a service request towards a service contact instance according to forwarding decisions supplied by a CATS Path Selector (C-PS), which may or may not be part of a CATS&nbhy;Forwarder.</t>
        </dd>
        <dt/>
        <dd>
          <t>A CATS&nbhy;Forwarder may behave as an Ingress or Egress CATS&nbhy;Forwarder. See <xref target="sec-ocr"/>.</t>
        </dd>
        <dt>Ingress CATS&nbhy;Forwarder:</dt>
        <dd>
          <t>An entity that steers service-specific
traffic along a CATS-computed path that leads to an Egress CATS-
Forwarder. Such an Egress CATS&nbhy;Forwarder connects to the most suitable service site that
hosts the service contact instance selected to satisfy the initial
service request.</t>
        </dd>
        <dt>Egress CATS&nbhy;Forwarder:</dt>
        <dd>
          <t>An entity located at the end of a CATS-computed path, which connects to a service site.</t>
        </dd>
        <dt>CATS Path Selector (C-PS):</dt>
        <dd>
          <t>A functional entity that selects paths towards service sites and instances (and thus service contact instances) in order to accommodate the requirements of service requests. The path selection engine takes into account the service and network status information. See <xref target="sec-cps"/>.</t>
        </dd>
        <dt>CATS Service Metric Agent (C-SMA):</dt>
        <dd>
          <t>A functional entity that is responsible for collecting service capabilities and status and for reporting them to a C-PS. See <xref target="sec-csma"/>.</t>
        </dd>
        <dt>CATS Network Metric Agent (C-NMA):</dt>
        <dd>
          <t>A functional entity that is responsible for collecting network capabilities and status and for reporting them to a C-PS. See <xref target="sec-cnma"/>.</t>
        </dd>
        <dt>CATS Traffic Classifier (C-TC):</dt>
        <dd>
          <t>A functional entity that is responsible for determining which packets belong to a traffic flow for a specific service request. It coordinates with the Ingress CATS&nbhy;Forwarder so that such packets are placed onto a path computed by the C-PS that leads to the selected service contact instance. See <xref target="sec-ctc"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="Framework-and-concepts">
      <name>CATS Framework and Components</name>
      <section anchor="assumptions">
        <name>Assumptions</name>
        <t>CATS assumes that a service might be provided by one or multiple service instances. Such instances may be hosted within the same or distinct service sites. A given service is represented by the same service identifier (<xref target="cats-ids"/>). CATS does not make any additional assumptions about these instances other than that they are reachable via one or multiple service contact instances.</t>
      </section>
      <section anchor="cats-ids">
        <name>CATS Identifiers</name>
        <t>CATS uses the following identifiers:</t>
        <dl>
          <dt>CATS Service ID (CS-ID):</dt>
          <dd>
            <t>An identifier (ID) representing a service, which the clients use to access it. Such an ID identifies all the instances of a given service, regardless of their locations.</t>
          </dd>
          <dt/>
          <dd>
            <t>The CS-ID is independent of which service contact instance serves the service request.</t>
          </dd>
          <dt/>
          <dd>
            <t>Service requests are spread over the service contact instances that can accommodate them, considering the location of the initiator of the service request and the availability (in terms of resource/traffic load, for example) of the service instances resource wise, among other considerations like traffic congestion conditions.</t>
          </dd>
          <dt>CATS Service Contact Instance ID (CSCI-ID):</dt>
          <dd>
            <t>An identifier of a specific service contact instance.</t>
          </dd>
          <dt/>
          <dd>
            <t>This document makes no assumptions about the structure or semantics of this identifier. One example of such an ID is a unicast IP address, which uniquely identifies the location of a service instance.</t>
          </dd>
        </dl>
      </section>
      <section anchor="sec-cats-framework">
        <name>Framework Overview</name>
        <t>A high-level view of the CATS framework, without expanding the functional entities in the network, is illustrated in <xref target="fig-cats-fw"/>.</t>
        <figure anchor="fig-cats-fw">
          <name>Main CATS Interactions</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="488" viewBox="0 0 488 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 8,160 L 8,192" fill="none" stroke="black"/>
                <path d="M 144,104 L 144,152" fill="none" stroke="black"/>
                <path d="M 288,32 L 288,96" fill="none" stroke="black"/>
                <path d="M 288,160 L 288,192" fill="none" stroke="black"/>
                <path d="M 312,32 L 312,336" fill="none" stroke="black"/>
                <path d="M 392,32 L 392,96" fill="none" stroke="black"/>
                <path d="M 392,160 L 392,224" fill="none" stroke="black"/>
                <path d="M 392,272 L 392,320" fill="none" stroke="black"/>
                <path d="M 408,176 L 408,240" fill="none" stroke="black"/>
                <path d="M 408,288 L 408,336" fill="none" stroke="black"/>
                <path d="M 424,96 L 424,160" fill="none" stroke="black"/>
                <path d="M 448,240 L 448,272" fill="none" stroke="black"/>
                <path d="M 464,160 L 464,176" fill="none" stroke="black"/>
                <path d="M 464,272 L 464,288" fill="none" stroke="black"/>
                <path d="M 472,32 L 472,96" fill="none" stroke="black"/>
                <path d="M 480,176 L 480,240" fill="none" stroke="black"/>
                <path d="M 480,288 L 480,336" fill="none" stroke="black"/>
                <path d="M 8,32 L 288,32" fill="none" stroke="black"/>
                <path d="M 392,32 L 472,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 288,64" fill="none" stroke="black"/>
                <path d="M 320,62 L 384,62" fill="none" stroke="black"/>
                <path d="M 320,66 L 384,66" fill="none" stroke="black"/>
                <path d="M 8,96 L 288,96" fill="none" stroke="black"/>
                <path d="M 392,96 L 472,96" fill="none" stroke="black"/>
                <path d="M 8,160 L 288,160" fill="none" stroke="black"/>
                <path d="M 392,160 L 464,160" fill="none" stroke="black"/>
                <path d="M 408,176 L 480,176" fill="none" stroke="black"/>
                <path d="M 8,192 L 288,192" fill="none" stroke="black"/>
                <path d="M 320,190 L 384,190" fill="none" stroke="black"/>
                <path d="M 320,194 L 384,194" fill="none" stroke="black"/>
                <path d="M 392,224 L 408,224" fill="none" stroke="black"/>
                <path d="M 408,240 L 480,240" fill="none" stroke="black"/>
                <path d="M 392,272 L 464,272" fill="none" stroke="black"/>
                <path d="M 408,288 L 480,288" fill="none" stroke="black"/>
                <path d="M 392,320 L 408,320" fill="none" stroke="black"/>
                <path d="M 408,336 L 480,336" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="392,192 380,186.4 380,197.6" fill="black" transform="rotate(0,384,192)"/>
                <polygon class="arrowhead" points="392,64 380,58.4 380,69.6" fill="black" transform="rotate(0,384,64)"/>
                <polygon class="arrowhead" points="328,192 316,186.4 316,197.6" fill="black" transform="rotate(180,320,192)"/>
                <polygon class="arrowhead" points="328,64 316,58.4 316,69.6" fill="black" transform="rotate(180,320,64)"/>
                <polygon class="arrowhead" points="152,152 140,146.4 140,157.6" fill="black" transform="rotate(90,144,152)"/>
                <polygon class="arrowhead" points="152,104 140,98.4 140,109.6" fill="black" transform="rotate(270,144,104)"/>
                <g class="text">
                  <text x="124" y="52">Management</text>
                  <text x="192" y="52">Plane</text>
                  <text x="432" y="68">C-SMA</text>
                  <text x="128" y="84">Control</text>
                  <text x="184" y="84">Plane</text>
                  <text x="116" y="180">Data</text>
                  <text x="160" y="180">Plane</text>
                  <text x="440" y="196">Service</text>
                  <text x="440" y="212">Contact</text>
                  <text x="444" y="228">Instance</text>
                  <text x="440" y="308">Service</text>
                  <text x="444" y="324">Instance</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
   .----------------------------------.  |         .---------.
   |         Management Plane         |  |         |         |
   +----------------------------------+  |<=======>|  C-SMA  |
   |           Control Plane          |  |         |         |
   '----------------------------------'  |         '---+-----'
                    ^                    |             |
                    |                    |             |
                    v                    |             |
   .----------------------------------.  |         .---+----.
   |           Data Plane             |  |         | .------+-.
   '----------------------------------'  |<=======>| |Service |
                                         |         | |Contact |
                                         |         '-+Instance|
                                         |           '----+---'
                                         |                |
                                         |         .------+-.
                                         |         | .------+-.
                                         |         | |Service |
                                         |         '-+Instance|
                                         |           '--------'
]]></artwork>
          </artset>
        </figure>
        <t>For the sake of illustration, "Service Instance" is shown as a single box in <xref target="fig-cats-fw"/>. However,
this does not imply that a service instance is hosted in a single node. Whether  a service instance
is realized by invoking resources within the same node or by chaining resources exposed by several nodes
is deployment specific.</t>
        <t>The following planes are defined:</t>
        <ul spacing="normal">
          <li>
            <t>CATS Management Plane: Responsible for monitoring, configuring, and maintaining CATS network devices.</t>
          </li>
          <li>
            <t>CATS Control Plane: Responsible for scheduling services based on computing and network information. It is also responsible for making decisions about how packets should be forwarded by involved forwarding nodes and communicating such decisions to the CATS Data Plane for execution.</t>
          </li>
          <li>
            <t>CATS Data Plane: Responsible for computing-aware forwarding, including classifying packets, steering them onto chosen paths towards selected service contact instances, and forwarding the packets along the paths to the service contact instances.</t>
          </li>
        </ul>
        <t>Depending on implementation and deployment, these planes may consist of several functional components, and the details will be described in the following sections. For example, the control plane may consist of C-PS, C-NMA, etc. The data plane may consist of CATS&nbhy;Forwarders, C-TC, etc.</t>
      </section>
      <section anchor="sec-cats-arch">
        <name>CATS Functional Components</name>
        <t>CATS nodes make forwarding decisions for a given service request that has been received from a client according to the capabilities and status information of both service contact instances and the network. The main CATS functional components and their interactions are shown in <xref target="fig-cats-components"/>. These components are described in the subsections that follow.</t>
        <figure anchor="fig-cats-components">
          <name>CATS Functional Components</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="630" width="480" viewBox="0 0 480 688" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,48 L 8,80" fill="none" stroke="black"/>
                <path d="M 24,32 L 24,48" fill="none" stroke="black"/>
                <path d="M 24,320 L 24,368" fill="none" stroke="black"/>
                <path d="M 40,80 L 40,128" fill="none" stroke="black"/>
                <path d="M 56,112 L 56,208" fill="none" stroke="black"/>
                <path d="M 56,592 L 56,640" fill="none" stroke="black"/>
                <path d="M 64,48 L 64,80" fill="none" stroke="black"/>
                <path d="M 64,464 L 64,528" fill="none" stroke="black"/>
                <path d="M 72,576 L 72,592" fill="none" stroke="black"/>
                <path d="M 80,32 L 80,64" fill="none" stroke="black"/>
                <path d="M 80,448 L 80,464" fill="none" stroke="black"/>
                <path d="M 88,560 L 88,576" fill="none" stroke="black"/>
                <path d="M 96,368 L 96,448" fill="none" stroke="black"/>
                <path d="M 104,144 L 104,176" fill="none" stroke="black"/>
                <path d="M 136,528 L 136,560" fill="none" stroke="black"/>
                <path d="M 144,592 L 144,640" fill="none" stroke="black"/>
                <path d="M 160,320 L 160,368" fill="none" stroke="black"/>
                <path d="M 160,576 L 160,624" fill="none" stroke="black"/>
                <path d="M 176,48 L 176,80" fill="none" stroke="black"/>
                <path d="M 176,560 L 176,608" fill="none" stroke="black"/>
                <path d="M 184,336 L 184,368" fill="none" stroke="black"/>
                <path d="M 192,32 L 192,48" fill="none" stroke="black"/>
                <path d="M 192,112 L 192,208" fill="none" stroke="black"/>
                <path d="M 192,464 L 192,528" fill="none" stroke="black"/>
                <path d="M 200,368 L 200,448" fill="none" stroke="black"/>
                <path d="M 208,80 L 208,128" fill="none" stroke="black"/>
                <path d="M 216,448 L 216,512" fill="none" stroke="black"/>
                <path d="M 232,48 L 232,80" fill="none" stroke="black"/>
                <path d="M 232,160 L 232,208" fill="none" stroke="black"/>
                <path d="M 248,32 L 248,64" fill="none" stroke="black"/>
                <path d="M 248,336 L 248,368" fill="none" stroke="black"/>
                <path d="M 264,128 L 264,160" fill="none" stroke="black"/>
                <path d="M 288,160 L 288,208" fill="none" stroke="black"/>
                <path d="M 288,576 L 288,624" fill="none" stroke="black"/>
                <path d="M 296,320 L 296,400" fill="none" stroke="black"/>
                <path d="M 296,464 L 296,528" fill="none" stroke="black"/>
                <path d="M 304,560 L 304,576" fill="none" stroke="black"/>
                <path d="M 312,112 L 312,208" fill="none" stroke="black"/>
                <path d="M 312,448 L 312,464" fill="none" stroke="black"/>
                <path d="M 328,48 L 328,80" fill="none" stroke="black"/>
                <path d="M 344,32 L 344,48" fill="none" stroke="black"/>
                <path d="M 352,528 L 352,560" fill="none" stroke="black"/>
                <path d="M 360,80 L 360,112" fill="none" stroke="black"/>
                <path d="M 360,400 L 360,448" fill="none" stroke="black"/>
                <path d="M 368,240 L 368,272" fill="none" stroke="black"/>
                <path d="M 376,576 L 376,624" fill="none" stroke="black"/>
                <path d="M 384,48 L 384,80" fill="none" stroke="black"/>
                <path d="M 392,560 L 392,608" fill="none" stroke="black"/>
                <path d="M 400,32 L 400,64" fill="none" stroke="black"/>
                <path d="M 400,464 L 400,528" fill="none" stroke="black"/>
                <path d="M 424,448 L 424,512" fill="none" stroke="black"/>
                <path d="M 432,240 L 432,272" fill="none" stroke="black"/>
                <path d="M 432,320 L 432,400" fill="none" stroke="black"/>
                <path d="M 448,112 L 448,208" fill="none" stroke="black"/>
                <path d="M 24,32 L 80,32" fill="none" stroke="black"/>
                <path d="M 192,32 L 248,32" fill="none" stroke="black"/>
                <path d="M 344,32 L 400,32" fill="none" stroke="black"/>
                <path d="M 8,48 L 64,48" fill="none" stroke="black"/>
                <path d="M 176,48 L 232,48" fill="none" stroke="black"/>
                <path d="M 328,48 L 384,48" fill="none" stroke="black"/>
                <path d="M 64,64 L 80,64" fill="none" stroke="black"/>
                <path d="M 232,64 L 248,64" fill="none" stroke="black"/>
                <path d="M 384,64 L 400,64" fill="none" stroke="black"/>
                <path d="M 8,80 L 64,80" fill="none" stroke="black"/>
                <path d="M 176,80 L 232,80" fill="none" stroke="black"/>
                <path d="M 328,80 L 384,80" fill="none" stroke="black"/>
                <path d="M 56,112 L 192,112" fill="none" stroke="black"/>
                <path d="M 312,112 L 448,112" fill="none" stroke="black"/>
                <path d="M 40,128 L 56,128" fill="none" stroke="black"/>
                <path d="M 192,128 L 208,128" fill="none" stroke="black"/>
                <path d="M 264,128 L 312,128" fill="none" stroke="black"/>
                <path d="M 56,144 L 192,144" fill="none" stroke="black"/>
                <path d="M 312,144 L 448,144" fill="none" stroke="black"/>
                <path d="M 232,160 L 288,160" fill="none" stroke="black"/>
                <path d="M 104,176 L 192,176" fill="none" stroke="black"/>
                <path d="M 56,208 L 192,208" fill="none" stroke="black"/>
                <path d="M 232,208 L 288,208" fill="none" stroke="black"/>
                <path d="M 312,208 L 448,208" fill="none" stroke="black"/>
                <path d="M 368,240 L 432,240" fill="none" stroke="black"/>
                <path d="M 368,272 L 432,272" fill="none" stroke="black"/>
                <path d="M 24,320 L 160,320" fill="none" stroke="black"/>
                <path d="M 296,320 L 432,320" fill="none" stroke="black"/>
                <path d="M 184,336 L 248,336" fill="none" stroke="black"/>
                <path d="M 24,368 L 160,368" fill="none" stroke="black"/>
                <path d="M 184,368 L 248,368" fill="none" stroke="black"/>
                <path d="M 296,368 L 432,368" fill="none" stroke="black"/>
                <path d="M 296,400 L 432,400" fill="none" stroke="black"/>
                <path d="M 80,448 L 216,448" fill="none" stroke="black"/>
                <path d="M 312,448 L 424,448" fill="none" stroke="black"/>
                <path d="M 64,464 L 192,464" fill="none" stroke="black"/>
                <path d="M 296,464 L 400,464" fill="none" stroke="black"/>
                <path d="M 192,512 L 216,512" fill="none" stroke="black"/>
                <path d="M 400,512 L 424,512" fill="none" stroke="black"/>
                <path d="M 64,528 L 192,528" fill="none" stroke="black"/>
                <path d="M 296,528 L 400,528" fill="none" stroke="black"/>
                <path d="M 88,560 L 176,560" fill="none" stroke="black"/>
                <path d="M 304,560 L 392,560" fill="none" stroke="black"/>
                <path d="M 72,576 L 160,576" fill="none" stroke="black"/>
                <path d="M 288,576 L 376,576" fill="none" stroke="black"/>
                <path d="M 56,592 L 144,592" fill="none" stroke="black"/>
                <path d="M 160,608 L 176,608" fill="none" stroke="black"/>
                <path d="M 376,608 L 392,608" fill="none" stroke="black"/>
                <path d="M 144,624 L 160,624" fill="none" stroke="black"/>
                <path d="M 288,624 L 376,624" fill="none" stroke="black"/>
                <path d="M 56,640 L 144,640" fill="none" stroke="black"/>
                <g class="text">
                  <text x="36" y="68">client</text>
                  <text x="204" y="68">client</text>
                  <text x="356" y="68">client</text>
                  <text x="116" y="132">C-TC#1</text>
                  <text x="372" y="132">C-TC#2</text>
                  <text x="148" y="164">C-PS#1</text>
                  <text x="372" y="164">CATS-Forwarder</text>
                  <text x="440" y="164">4</text>
                  <text x="260" y="180">C-PS#2</text>
                  <text x="28" y="196">......</text>
                  <text x="116" y="196">CATS-Forwarder</text>
                  <text x="184" y="196">2</text>
                  <text x="212" y="196">....</text>
                  <text x="300" y="196">..</text>
                  <text x="464" y="196">...</text>
                  <text x="8" y="212">:</text>
                  <text x="472" y="212">:</text>
                  <text x="8" y="228">:</text>
                  <text x="472" y="228">:</text>
                  <text x="8" y="244">:</text>
                  <text x="472" y="244">:</text>
                  <text x="8" y="260">:</text>
                  <text x="244" y="260">Underlay</text>
                  <text x="400" y="260">C-NMA</text>
                  <text x="472" y="260">:</text>
                  <text x="8" y="276">:</text>
                  <text x="244" y="276">Infrastructure</text>
                  <text x="472" y="276">:</text>
                  <text x="8" y="292">:</text>
                  <text x="472" y="292">:</text>
                  <text x="8" y="308">:</text>
                  <text x="472" y="308">:</text>
                  <text x="8" y="324">:</text>
                  <text x="472" y="324">:</text>
                  <text x="8" y="340">:</text>
                  <text x="84" y="340">CATS-Forwarder</text>
                  <text x="152" y="340">1</text>
                  <text x="356" y="340">CATS-Forwarder</text>
                  <text x="424" y="340">3</text>
                  <text x="472" y="340">:</text>
                  <text x="12" y="356">:.</text>
                  <text x="172" y="356">..</text>
                  <text x="216" y="356">C-SMA#1</text>
                  <text x="272" y="356">.....</text>
                  <text x="456" y="356">....:</text>
                  <text x="352" y="388">C-SMA#2</text>
                  <text x="128" y="484">Service</text>
                  <text x="344" y="484">Service</text>
                  <text x="128" y="500">Contact</text>
                  <text x="344" y="500">Contact</text>
                  <text x="132" y="516">Instance</text>
                  <text x="348" y="516">Instance</text>
                  <text x="328" y="596">Service</text>
                  <text x="96" y="612">Service</text>
                  <text x="332" y="612">Instance</text>
                  <text x="100" y="628">Instance</text>
                  <text x="304" y="644">Service</text>
                  <text x="356" y="644">Site</text>
                  <text x="384" y="644">2</text>
                  <text x="72" y="660">Service</text>
                  <text x="124" y="660">Site</text>
                  <text x="152" y="660">1</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
       .------.             .------.           .------.
     .-+----. |           .-+----. |         .-+----. |
     |client+-'           |client+-'         |client+-'
     '---+--'             '---+--'           '---+--'
         |                    |                  |
         | .----------------. |            .-----+----------.
         '-+    C-TC#1      +-'      .-----+    C-TC#2      |
           +-----+----------+        |     +----------------+
           |     |  C-PS#1  |    .---+--.  |CATS-Forwarder 4|
           |     '----------+    |C-PS#2|  |                |
     ......|CATS-Forwarder 2|....|      |..|                |...
     :     '----------------'    '------'  '----------------'  :
     :                                                         :
     :                                            .-------.    :
     :                         Underlay           | C-NMA |    :
     :                      Infrastructure        '-------'    :
     :                                                         :
     :                                                         :
     : .----------------.                .----------------.    :
     : |CATS-Forwarder 1|  .-------.     |CATS-Forwarder 3|    :
     :.|                |..|C-SMA#1|.....|                |....:
       '--------+-------'  '-+-----'     +----------------+
                |            |           |   C-SMA#2      |
                |            |           '-------+--------'
                |            |                   |
                |            |                   |
              .-+------------+-.           .-----+-------.
            .-+-------------.  |         .-+----------.  |
            |    Service    |  |         |  Service   |  |
            |    Contact    |  |         |  Contact   |  |
            |    Instance   +--'         |  Instance  +--'
            '--------+------'            '------+-----'
                     |                          |
               .-----+----.               .-----+----.
             .-+--------. |             .-+--------. |
           .-+--------. | |             | Service  | |
           | Service  | +-'             | Instance +-'
           | Instance +-'               '----------'
           '----------'                Service Site 2
          Service Site 1
]]></artwork>
          </artset>
        </figure>
        <section anchor="sec-service-sites">
          <name>Service Sites, Service Instances, and Service Contact Instances</name>
          <t>Service sites are locations that host resources (including computing resources) that are required to offer a service.</t>
          <t>A compute service (e.g., for face recognition purposes or a game server) is identified by a CATS Service ID (CS-ID). The CS-ID does not need to be globally unique but must be sufficiently unique to unambiguously identify the service at all of the components of a CATS system.</t>
          <t>A single service can be represented and accessed via several contact instances that run in the same or different regions of a network.</t>
          <t>As service instances are accessed via a service contact instance, a client will not see the service instances but only the service contact instance.</t>
          <t><xref target="fig-cats-components"/> shows two CATS nodes ("CATS&nbhy;Forwarder 1" and "CATS&nbhy;Forwarder 3") that provide access to service contact instances.  These nodes behave as Egress CATS&nbhy;Forwarders (<xref target="sec-ocr"/>).</t>
          <ul empty="true">
            <li>
              <t>Note: "Egress" is used here in reference to the direction of the service request placement.  The directionality is called to explicitly identify the exit node of the CATS infrastructure.</t>
            </li>
          </ul>
        </section>
        <section anchor="sec-csma">
          <name>CATS Service Metric Agent (C-SMA)</name>
          <t>The CATS Service Metric Agent (C-SMA) is a functional component that gathers information about service sites and server resources, as well as the status of the different service instances. A C-SMA may be co-located or located adjacent to a service contact instance, hosted by or adjacent to an Egress CATS&nbhy;Forwarder (<xref target="sec-ocr"/>), etc. There may be one or more C-SMAs in a deployment.</t>
          <t><xref target="fig-cats-components"/> shows one C-SMA embedded in "CATS&nbhy;Forwarder 3" and another C-SMA that is adjacent to "CATS&nbhy;Forwarder 1".</t>
        </section>
        <section anchor="sec-cnma">
          <name>CATS Network Metric Agent (C-NMA)</name>
          <t>The CATS Network Metric Agent (C-NMA) is a functional component that gathers information about the state of the underlay network. The C-NMAs may be implemented as standalone components or may be hosted by other components, such as CATS&nbhy;Forwarders or CATS Path Selectors (C-PSes) (<xref target="sec-cps"/>).</t>
          <t>C-NMA is likely to leverage existing techniques (e.g., <xref target="RFC7471"/>, <xref target="RFC8570"/>, and <xref target="RFC8571"/>).</t>
          <t><xref target="fig-cats-components"/> shows a single, standalone C-NMA within the underlay network. There may be one or more C-NMAs for an underlay network.</t>
        </section>
        <section anchor="sec-cps">
          <name>CATS Path Selector (C-PS)</name>
          <t>The C-SMAs and C-NMAs share the collected information with C-PSes, which use
such information to select the Egress CATS&nbhy;Forwarders (and potentially the
service contact instances) that the traffic should be forwarded to for a given
service request. C-PSes also determine the best paths (possibly using tunnels)
to forward traffic, according to various criteria that include network state
and traffic congestion conditions. The collected information is encoded into
one or more metrics that feed the C-PS path selection logic. Such information
also includes CS-IDs and possibly CSCI-IDs.</t>
          <t>There might be one or more C-PSes used to select CATS paths in a CATS infrastructure.</t>
          <t>A C-PS can be integrated into CATS&nbhy;Forwarders (e.g., "C-PS#1" in <xref target="fig-cats-components"/>) or may be deployed as a standalone component (e.g., "C-PS#2" in <xref target="fig-cats-components"/>). Generally, a standalone C-PS can be a functional component of a centralized controller (e.g., a Path Computation Element (PCE) <xref target="RFC4655"/> or a Software-Defined Networking (SDN) controller <xref target="RFC7149"/> <xref target="RFC7426"/>).</t>
          <t>Refer to <xref target="sec-met-dist"/> for a discussion on metric distribution (including interaction with routing protocols).</t>
        </section>
        <section anchor="sec-ctc">
          <name>CATS Traffic Classifier (C-TC)</name>
          <t>The CATS Traffic Classifier (C-TC) is a functional component that is responsible for associating incoming packets from clients with service requests. C-TCs also ensure that packets that are bound to a specific service contact instance are all forwarded towards that same service contact instance, as instructed by a C-PS. To that aim, a C-TC uses CS-IDs (or their resolution of CS-ID to network locators) to classify service requests. Refer to <xref target="sec-cats-provisioning"/> for more details about required provisioning actions.</t>
          <t>CS-IDs may be carried in packets if mechanisms such as TLS Server Name Indication (SNI) extensions (<xref section="3" sectionFormat="of" target="RFC6066"/>) are used. Such exposure is not possible if extensions such as <xref target="RFC9849"/> are used. Relying upon non-volatile and explicit signals (e.g., <xref target="RFC8558"/>) is thus encouraged for efficient classification rules. Note that once classified, packets will be encapsulated as described in <xref target="sec-access"/>.</t>
          <t>C-TCs are typically hosted in CATS&nbhy;Forwarders.</t>
        </section>
        <section anchor="sec-ocr">
          <name>CATS-Forwarders</name>
          <t>Ingress CATS&nbhy;Forwarders are responsible for steering service-specific traffic along a CATS-computed path that leads to an Egress CATS&nbhy;Forwarder. Egress CATS&nbhy;Forwarders are the elements that behave as an egress for service requests that are forwarded over a CATS infrastructure.</t>
          <t>A service site that hosts service instances may be connected to one or more Egress CATS&nbhy;Forwarders (e.g., multi-homing design). If a C-PS has selected a specific service contact instance and the C-TC has marked the traffic with the CSCI-ID related information, the Egress CATS&nbhy;Forwarder then forwards the traffic to the relevant service contact instance accordingly.</t>
          <t>In some cases, the choice of the service contact instance may be left open to the Egress CATS&nbhy;Forwarder (i.e., traffic is marked only with the CS-ID). In such cases, the Egress CATS&nbhy;Forwarder selects a service contact instance using its knowledge of service and network capabilities as well as the current load as observed by the CATS&nbhy;Forwarder, among other considerations. In the absence of an explicit policy, an Egress CATS&nbhy;Forwarder must make sure to forward all packets that pertain to a given service request towards the same service contact instance.</t>
          <t>Note that, depending on the design considerations and service requirements, per-service contact instance computing-related metrics or aggregated per-site
computing-related metrics (and a combination thereof) can be used by a C-PS. Using aggregated per-site computing-related metrics appears as a preferred option scalability wise, but it relies on Egress CATS&nbhy;Forwarders that connect to various service contact instances to select the proper service contact instance. An Egress CATS&nbhy;Forwarder may choose to aggregate the metrics from different sites as well. In this case, the Egress CATS&nbhy;Forwarder will choose the best site by itself when the packets arrive at it.</t>
        </section>
        <section anchor="underlay-infrastructure">
          <name>Underlay Infrastructure</name>
          <t>The "underlay infrastructure" in <xref target="fig-cats-components"/> indicates an IP and/or MPLS network that is not necessarily CATS aware. The CATS paths that are computed by a C-PS will be distributed among the CATS&nbhy;Forwarders (<xref target="sec-ocr"/>) and will not affect the underlay nodes. Underlay nodes are typically P routers (<xref section="5.3.1" sectionFormat="of" target="RFC4026"/>).</t>
        </section>
      </section>
    </section>
    <section anchor="sec-cats-workflow">
      <name>CATS Framework Workflow</name>
      <t>The following subsections provide an overview of a typical CATS workflow. In order to enable CATS in a given domain, some provisioning is needed; see more details in <xref target="sec-cats-provisioning"/>. <xref target="sec-cats-deployment"/> describes several deployment options (distributed, centralized, and hybrid models) to accommodate a variety of contexts.</t>
      <section anchor="service-announcement">
        <name>Service Announcement</name>
        <t>A service is associated by the service provider with a unique identifier called a CS-ID. A CS-ID may be a network identifier, such as an IP address. The mapping of CS-IDs to network identifiers may be learned through a name resolution service (e.g., DNS <xref target="RFC1034"/>). Note that the CATS framework does not assume or preclude any specific name resolution service.</t>
      </section>
      <section anchor="sec-met-dist">
        <name>Metrics Distribution</name>
        <t>As described in <xref target="sec-cats-arch"/>, a C-SMA collects both computing-related capabilities and metrics and associates them with a CS-ID that identifies the service. The C-SMA may aggregate the metrics for multiple service contact instances, maintain them separately, or both.</t>
        <t>The C-SMA then advertises CS-IDs along with metrics to related C-PSes in the network. Depending on the deployment choice, CS-IDs with metrics may be distributed in different ways. Refer to <xref target="sec-metric-implementation"/> for more deployment considerations.</t>
        <t>The computing metrics include computing-related metrics and potentially other service-specific metrics like the number of clients that access the service contact instance at any given time, etc.</t>
        <t>Computing metrics may change very frequently (e.g., see <xref section="5.3" sectionFormat="of" target="RFC10054"/> for a discussion). How frequently such information is distributed is to be determined as part of the specification of any communication protocol (including routing protocols) that may be used to distribute the information. Various options can be considered, such as (but not limited to) interval-based updates, threshold-triggered updates, policy-based updates, or using normalized metrics.</t>
        <t>Additionally, the C-NMA collects network-related capabilities and metrics. These may be collected and distributed by existing measurement protocols and/or routing protocols, although extensions to such protocols may be required to carry additional information (e.g., link latency). The C-NMA distributes the network metrics to the C-PSes so that they can use the combination of service and network metrics to determine the best Egress CATS&nbhy;Forwarder to provide access to a service contact instance and invoke the compute function required by a service request. Similar to computing-related metrics, the network-related metrics can be distributed using distributed, centralized, or hybrid schemes. This document does not describe such details since this is deployment specific.</t>
        <t>Network metrics may also change over time. Dynamic routing protocols may take advantage of some information or capabilities to prevent the network from being flooded with state change information (e.g., Partial Route Computation (PRC) of OSPFv3 <xref target="RFC5340"/>). C-NMAs should also be configured or instructed like C-SMAs to determine when and how often updates should be notified to the C-PSes.</t>
      </section>
      <section anchor="sec-access">
        <name>Service Access Processing</name>
        <t>A C-PS selects paths that lead to Egress CATS&nbhy;Forwarders according to both service and network metrics that were advertised. A C-PS may be collocated with an Ingress CATS&nbhy;Forwarder or logically centralized (in the centralized or hybrid models (<xref target="sec-cats-deployment"/>)).</t>
        <t>This document does not specify any specific algorithm for path selection purposes to be supported by C-PSes so as not to constrain the CATS framework to one possible selection only. Instead, it is expected that a service request or local policy may feed the C-PS with appropriate information on that selection logic that takes the suitable metric information as input and the selected service contact instance as output. Such appropriate information may be utilized to differentiate selection mechanisms to enable service-specific selections.</t>
        <t>Note that a service request to access the service may consist of one or more service packets (e.g., Session Initiation Protocol (SIP) <xref target="RFC3261"/>, HTTP <xref target="RFC9112"/>, IPv6 <xref target="RFC8200"/>, Segment Routing over IPv6 (SRv6) <xref target="RFC8754"/> <xref target="RFC8986"/>, or Real-Time Streaming Protocol (RTSP) <xref target="RFC7826"/>) that carry the CS-ID and potential parameters. When a matching classification entry maintained by a C-TC is found for the packets, the Ingress CATS&nbhy;Forwarder encapsulates and forwards them to the C-PS selected Egress CATS&nbhy;Forwarder. When these packets reach the Egress CATS&nbhy;Forwarder, the outer header of the possible overlay encapsulation will be removed and the inner packets will be sent to the relevant service contact instance.</t>
      </section>
      <section anchor="service-contact-instance-affinity">
        <name>Service Contact Instance Affinity</name>
        <t>Service contact instance affinity means that packets that belong to a flow associated with a service request should always be sent to the same service contact instance. Furthermore, packets of a given flow should be forwarded along the same path to avoid misordering and to prevent the introduction of unpredictable latency variations. A CATS framework implementation must ensure that service instance selection and path steering decisions remain consistent for a flow. Specifically, the same Egress CATS&nbhy;Forwarder needs to be solicited to forward the packets.</t>
        <t>Ensuring service affinity for flows is a feature that can be configured on the C-PS when the service is deployed (i.e., all flows bound to a service) or determined at the time of newly formulated service requests (i.e., a specific flow).</t>
        <t>Note that different services may have different notions of what constitutes a "flow", and thus may identify a flow differently. Typically, a flow is identified by the 5-tuple transport coordinates (source address and destination address, source and destination port numbers, and protocol). However, for instance, an RTP video stream may use different port numbers for video and audio channels: In that case, affinity may be identified as a combination of the two 5-tuple flow identifiers so that both flows are addressed to the same service contact instance.</t>
        <t>Hence, when specifying a protocol to communicate information about service contact instance affinity to C-TCs in particular, the protocol should support
flexible mechanisms for identifying flows. Or, from a more general perspective, there should be a mechanism to specify and identify the set of packets that are subject to a service contact instance affinity.</t>
        <t>More importantly, the means for identifying a flow for ensuring instance affinity should be application independent to avoid the need for service-specific instance affinity methods. However, service contact instance affinity information may be configurable on a per-service basis. For each service, the information can include the flow or packet identification type and means, affinity timeout value, etc.</t>
        <t>This document does not introduce any mechanism for defining or enforcing service contact instance affinity.</t>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="sec-cats-provisioning">
        <name>Provisioning of CATS Components</name>
        <t>Enabling CATS in a network can be done incrementally. That is, not all ingress routers (Provider Edges (PEs), typically) need to be upgraded to support CATS.</t>
        <t>In addition to the CATS steering policies that are communicated by a C-PS to an Ingress CATS&nbhy;Forwarder, some provisioning tasks are required. These include, but are not limited to:</t>
        <ul spacing="normal">
          <li>
            <t>Providing C-PS elements with the locators of available Ingress CATS&nbhy;Forwarders/C-TCs. Such locators may also be discovered from the network.</t>
          </li>
          <li>
            <t>Supplying information needed to connect C-PS elements with C-NMAs and C-SMAs.</t>
          </li>
          <li>
            <t>Allocating identifiers CS-ID/CSCI-ID and binding them to specific service contact instances.</t>
          </li>
          <li>
            <t>Providing C-PS elements with the set of optimization metrics (per service) and an optimization policy.</t>
          </li>
          <li>
            <t>Configuring specific encapsulation capabilities of CATS&nbhy;Forwarders for use, including any credentials for mutual authentication between peer CATS&nbhy;Forwarders.</t>
          </li>
          <li>
            <t>Resetting the classification table of C-TC elements.</t>
          </li>
          <li>
            <t>Providing C-TCs with initial classification rules based on the classification capabilities (<xref target="sec-oam"/>).</t>
          </li>
          <li>
            <t>Setting the traffic counters at CATS&nbhy;Forwarders to ease correlation between both Ingress and Egress CATS&nbhy;Forwarders. Such a correlation is needed to help identify issues induced by the underlying encapsulation.</t>
          </li>
        </ul>
        <t>Provisioning includes configuration as well as distribution through protocols. Specifically, the above tasks can be enabled using a variety of means (NETCONF <xref target="RFC6241"/>, IPFIX <xref target="RFC7011"/>, RESTCONF <xref target="RFC8040"/>, YANG notifications <xref target="RFC8639"/>, etc.). It is out of scope to discuss required CATS extensions to these protocols.</t>
      </section>
      <section anchor="sec-oam">
        <name>Supervision of CATS Components and CATS OAM</name>
        <t>Also, companion supervision and Operations, Administration, and Maintenance (OAM) tools are needed to drive CATS provisioning but also to assess the overall CATS operations. These include, but are not limited to:</t>
        <ul spacing="normal">
          <li>
            <t>Exposing classification capabilities of C-TC elements.</t>
          </li>
          <li>
            <t>Exposing encapsulation capabilities supported by CATS&nbhy;Forwarders.</t>
          </li>
          <li>
            <t>Retrieving the active classification table of C-TC elements.</t>
          </li>
          <li>
            <t>Retrieving active steering rules in CATS&nbhy;Forwarders.</t>
          </li>
          <li>
            <t>Retrieving active installed policies in C-PSes.</t>
          </li>
          <li>
            <t>Retrieving the traffic counters at CATS&nbhy;Forwarders to ease correlation between both Ingress and Egress CATS&nbhy;Forwarders.</t>
          </li>
          <li>
            <t>Enabling OAM tools to check the correct behavior of various entities (e.g., classification rules, steering rules, and forwarding behavior). See also <xref target="sec-verify"/>.</t>
          </li>
          <li>
            <t>Enabling OAM tools for performance measurement.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-cats-deployment">
        <name>Deployment Considerations</name>
        <t>This document does not make any assumptions about how the various CATS functional elements are implemented and deployed. Concretely, whether a CATS deployment follows a fully distributed design or relies upon a mix of centralized (e.g., a centralized C-PS) and distributed CATS functions (e.g., C-TCs) is deployment specific, which may reflect the preferences and policies of the (CATS) service provider. The deployment can also be informed by specific use case requirements <xref target="RFC10054"/>.</t>
        <t>For example, in a centralized design, both the computing-related metrics from the C-SMAs and the network metrics are collected by a (logically) centralized path computation logic (e.g., a PCE). In this case, the CATS computation logic may process incoming service requests to compute paths to service contact instances. More generally, the paths might be computed before a service request comes. Based on the metrics and computed paths, the C-PS can select the most appropriate path and then synchronize with C-TCs.</t>
        <t>According to the method of distributing and collecting the computing metrics, three deployment models can be considered for the deployment of the CATS framework:</t>
        <dl>
          <dt><strong>Distributed model</strong>:</dt>
          <dd>
            <t>Computing metrics are distributed among network devices directly using distributed protocols without interactions with a centralized control element (e.g., network controller). The service scheduling function is performed by the CATS&nbhy;Forwarders in the distributed model; therefore, the C-PS is integrated into an Ingress CATS&nbhy;Forwarder.</t>
          </dd>
          <dt><strong>Centralized model</strong>:</dt>
          <dd>
            <t>Computing metrics are collected by centralized control elements. These elements then compute the forwarding path for service requests and sync up with Ingress CATS&nbhy;Forwarders. In this model, C-PS is implemented in a centralized control element.</t>
          </dd>
          <dt><strong>Hybrid model</strong>:</dt>
          <dd>
            <t>This is a combination of distributed and centralized models.</t>
          </dd>
          <dt/>
          <dd>
            <t>A part of computing metrics is distributed among involved network devices, and others may be collected by a centralized control element. For example, some static information (e.g., capabilities information) can be distributed among network devices since they are quite stable (i.e., change infrequently). Frequently changing information (e.g., resource utilization) can be collected by a centralized control element to avoid frequent flooding in the distributed control plane. Service scheduling functions can be performed by a centralized control element, Ingress CATS&nbhy;Forwarders (co-located with a C-PS), or both depending on the specific deployment policies.</t>
          </dd>
          <dt/>
          <dd>
            <t>When path computation is distributed, centralized control elements have to communicate the path information they collect to Ingress CATS&nbhy;Forwarders (co-located with a C-PS) so that they take into account the full set of metrics for service scheduling.</t>
          </dd>
        </dl>
        <t>Examples to illustrate these models are provided in <xref target="sec-appendix"/>.</t>
        <t>The framework covers only the case of a single service provider. Deployment considerations about the case of multiple service providers are out of scope.</t>
      </section>
      <section anchor="sec-metric-implementation">
        <name>Implementation Considerations on Using CATS Metrics</name>
        <t>Advertising per-instance computing-related metrics instead of aggregating them into per-site advertisements has scalability implications on involved CATS elements. Special care should be considered by providers when enabling per-instance metric distribution.</t>
        <t>Computing metrics need to be normalized (i.e., convert metric values with or without units into unitless scores), aggregated, or a combination thereof in order to soften the scalability impact while providing sufficient detail for effective CATS decision making. For example, see <xref target="I-D.ietf-cats-metric-definition"/> for a discussion on metrics and distribution approaches.</t>
        <t>Depending on the resources and processing capabilities of CATS components, the normalization and aggregation functions can be located in different CATS components. An approach is to implement the normalization and aggregation functions located away from C-PSes, especially when C-PSes are co-located with CATS&nbhy;Forwarders. With this in mind, the normalization and aggregation functions of CATS metrics can be placed at service contact instances or C-SMAs.</t>
        <t>When C-SMAs are co-located with CATS&nbhy;Forwarders where there are limited resources for processing, the placement of normalization functions in a C-SMA may bring too much overhead and may influence the routing efficiency. Therefore, this document suggests implementing the normalization function at the service contact instances. Regarding the aggregation functions, it can be implemented in a C-SMA or the service contact instances.</t>
        <t>In order to ensure consistent CATS decisions, the same normalization and aggregation functions must be enabled in all involved CATS components. Also, in the case that service contact instances and C-SMAs are provided by different vendors, it is necessary to use the same common normalization and aggregation functions, so that the service contact instance selection result can be fair among all the service contact instances. To that aim, a set of normalization and aggregation functions must be standardized. To accommodate contexts where multiple functions are supported, CATS implementations must expose a configuration parameter to control the activation of normalization and aggregation functions.</t>
      </section>
      <section anchor="sec-verify">
        <name>Verifying Correct Operations</name>
        <t>A CATS implementation must log error events for better network management and operation. The means to assess the reachability and trace CATS paths should be supported.</t>
      </section>
      <section anchor="impact-on-network-operations">
        <name>Impact on Network Operations</name>
        <t>Computing metrics are collected and distributed in CATS. A new function needs to be deployed to manage the cooperation between network elements and computing elements. For example, this function may be provided by an orchestrator connecting with C-SMA and C-NMA. This might bring more complexity of the network management, especially if this function is not leveraged for other purposes beyond CATS.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The computing resource information changes over time very frequently, especially with the creation and termination of service instances. When such information is carried in a routing protocol, too many updates may affect network stability. This issue could be exploited by an attacker (e.g., by spawning and deleting service instances very rapidly). CATS solutions must support guards against such misbehaviors. For example, these solutions should support aggregation techniques, dampening mechanisms, and threshold-triggered distribution updates.</t>
      <t>The information distributed by the C-SMAs and C-NMAs may be sensitive. Such information could indeed disclose intelligence about the network and the location of compute resources hosted in service sites. This information may be used by an attacker to identify weak spots in an operator's network. Furthermore, such information may be modified by an attacker, resulting in disrupted service delivery for the clients, even including misdirection of traffic to an attacker's service implementation. CATS solutions must support authentication and integrity-protection mechanisms between C-SMAs/C-NMAs and C-PSes and between C-PSes and Ingress CATS&nbhy;Forwarders. Also, C-SMAs need to support a mechanism to authenticate the services for which they provide information to C-PS computation logics, among other CATS functions.</t>
      <t>This document focuses on the scenario of a single service provider. Hence, security considerations relevant to deployment with multiple service providers are out of scope.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>CATS solutions must support preventing on-path nodes in the underlay infrastructure from fingerprinting and tracking clients (e.g., determining which client accesses which service). More generally, personal data must not be exposed to external parties by CATS beyond what is carried in the packet that was originally issued by a client.</t>
      <t>CATS involves user-related data (e.g., access patterns or service requests) across service sites. Identifying a service site does not necessarily identify the service that is being invoked (typically, a service site may host many services, let alone that service instances may be relocated to other sites). However, when unambiguous correlation can be established between a service request and a service site, the binding of a service request and a service contact instance is sensitive, and such information should be encrypted.</t>
      <t>To prevent the information leaking between CATS components, the C-PS computed path information should be encrypted in distribution. The
specific encryption method may be applied at the network layer, transport layer, or application layer depending on the implementation. As such, the exact implementation details are out of the scope of this document.</t>
      <t>This document focuses on the scenario of a single service provider. Hence, privacy considerations relevant to deployment with multiple service providers are out of scope.</t>
      <t>For more discussions about privacy, refer to <xref target="RFC6462"/> and <xref target="RFC6973"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-cats-metric-definition" to="CATS-METRICS"/>
    <displayreference target="I-D.yao-cats-awareness-architecture" to="CNIA-CATS"/>
    <references anchor="sec-informative-references">
      <name>Informative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cats-metric-definition.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.yao-cats-awareness-architecture.xml"/>

      <reference anchor="RFC10054" target="https://www.rfc-editor.org/info/rfc10054">
        <front>
          <title>Computing-Aware Traffic Steering (CATS) Problem Statement, Use Cases, and Requirements</title>
          <author fullname="Kehan Yao">
            <organization/>
          </author>
          <author fullname="Luis M. Contreras">
            <organization/>
          </author>
          <author fullname="Hang Shi">
            <organization/>
          </author>
          <author fullname="Shuai Zhang">
            <organization/>
          </author>
          <author fullname="Qing An">
            <organization/>
          </author>
          <date year="2026" month="October"/>
        </front>
        <seriesInfo name="RFC" value="10054"/>
        <seriesInfo name="DOI" value="10.17487/RFC10054"/>
      </reference>

      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4303.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9522.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7471.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8570.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8571.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4655.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7149.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7426.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6066.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9849.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8558.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4026.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1034.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5340.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3261.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9112.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8200.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8754.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.7826.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7011.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8040.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8639.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6462.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6973.xml"/>
    </references>

<section anchor="sec-appendix">
      <name>Deployment Examples</name>
      <t>This section provides examples to illustrate CATS metrics distribution. These examples are not deployment recommendations.</t>
      <t>The following example mainly describes a per-instance computing-related metric distribution for illustration purposes. Such information may be aggregated into a single advertisement.</t>
      <section anchor="sec-met-dist1">
        <name>Distributed Model</name>
        <t><xref target="fig-cats-example-overlay"/> shows an example of how CATS metrics can be disseminated in the distributed model.</t>
        <t>There is a client attached to the network via "CATS&nbhy;Forwarder 1". There are three service contact instances of the service with "CS-ID 1": two service contact instances with CSCI-IDs "1" and "2", respectively, are located at "Service Site 2" attached via "CATS&nbhy;Forwarder 2"; the third service contact instance is located at "Service Site 3" attached via "CATS&nbhy;Forwarder 3" and with "CSCI-ID 3". There is also a second service with "CS-ID 2" with only one service contact instance located at "Service Site 3".</t>
        <t>The C-SMA collocated with "CATS&nbhy;Forwarder 2" distributes the computing metrics for both service contact instances (i.e., (CS-ID 1, CSCI-ID 1) and (CS-ID 1, CSCI-ID 2)). Similarly, the C-SMA located at "Service Site 3" advertises the computing metrics for the two services hosted by "Service Site 3". The C-SMA may distribute the computing metrics to the Egress "CATS&nbhy;Forwarder 3". Then, the computing metrics can be redistributed by the Egress CATS&nbhy;Forwarder to the Ingress CATS&nbhy;Forwarder. The C-SMA also may directly distribute the computing metrics to the Ingress CATS&nbhy;Forwarder.</t>
        <t>The computing metrics advertisements are processed by the C-PS hosted by "CATS&nbhy;Forwarder 1". The C-PS also processes network metric advertisements sent by the C-NMA. All metrics are used by the C-PS to select the most relevant path that leads to the Egress CATS&nbhy;Forwarder according to the initial client's service request, the service that is requested ("CS-ID 1" or "CS-ID 2"), the state of the service contact instances as reported by the metrics, and the state of the network.</t>
        <t>In the case of distributing aggregated per-site computing-related metrics, the per-instance CSCI-ID information will not be included in the advertisement. Instead, a per-site CSCI-ID may be used in case multiple sites are connected to the Egress CATS&nbhy;Forwarder to explicitly indicate the site from where the aggregated metrics come.</t>
        <figure anchor="fig-cats-example-overlay">
          <name>An Example of CATS Metric Dissemination in the Distributed Model</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="562" width="546" viewBox="0 0 576 592" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,224 L 8,256" fill="none" stroke="black"/>
                <path d="M 8,304 L 8,336" fill="none" stroke="black"/>
                <path d="M 48,256 L 48,304" fill="none" stroke="black"/>
                <path d="M 80,224 L 80,256" fill="none" stroke="black"/>
                <path d="M 184,304 L 184,336" fill="none" stroke="black"/>
                <path d="M 200,416 L 200,448" fill="none" stroke="black"/>
                <path d="M 224,240 L 224,264" fill="none" stroke="black"/>
                <path d="M 224,280 L 224,384" fill="none" stroke="black"/>
                <path d="M 240,256 L 240,288" fill="none" stroke="black"/>
                <path d="M 256,144 L 256,208" fill="none" stroke="black"/>
                <path d="M 304,256 L 304,288" fill="none" stroke="black"/>
                <path d="M 304,384 L 304,416" fill="none" stroke="black"/>
                <path d="M 304,456 L 304,496" fill="none" stroke="black"/>
                <path d="M 336,208 L 336,240" fill="none" stroke="black"/>
                <path d="M 336,416 L 336,448" fill="none" stroke="black"/>
                <path d="M 376,416 L 376,448" fill="none" stroke="black"/>
                <path d="M 392,144 L 392,208" fill="none" stroke="black"/>
                <path d="M 408,240 L 408,384" fill="none" stroke="black"/>
                <path d="M 424,384 L 424,416" fill="none" stroke="black"/>
                <path d="M 424,448 L 424,496" fill="none" stroke="black"/>
                <path d="M 432,128 L 432,192" fill="none" stroke="black"/>
                <path d="M 440,416 L 440,448" fill="none" stroke="black"/>
                <path d="M 456,96 L 456,144" fill="none" stroke="black"/>
                <path d="M 456,176 L 456,224" fill="none" stroke="black"/>
                <path d="M 456,352 L 456,400" fill="none" stroke="black"/>
                <path d="M 456,480 L 456,512" fill="none" stroke="black"/>
                <path d="M 520,480 L 520,512" fill="none" stroke="black"/>
                <path d="M 536,96 L 536,144" fill="none" stroke="black"/>
                <path d="M 536,176 L 536,224" fill="none" stroke="black"/>
                <path d="M 536,352 L 536,400" fill="none" stroke="black"/>
                <path d="M 144,80 L 320,80" fill="none" stroke="black"/>
                <path d="M 456,96 L 536,96" fill="none" stroke="black"/>
                <path d="M 432,128 L 456,128" fill="none" stroke="black"/>
                <path d="M 256,144 L 392,144" fill="none" stroke="black"/>
                <path d="M 456,144 L 536,144" fill="none" stroke="black"/>
                <path d="M 392,160 L 432,160" fill="none" stroke="black"/>
                <path d="M 264,176 L 384,176" fill="none" stroke="black"/>
                <path d="M 456,176 L 536,176" fill="none" stroke="black"/>
                <path d="M 432,192 L 456,192" fill="none" stroke="black"/>
                <path d="M 256,208 L 392,208" fill="none" stroke="black"/>
                <path d="M 8,224 L 80,224" fill="none" stroke="black"/>
                <path d="M 456,224 L 536,224" fill="none" stroke="black"/>
                <path d="M 224,240 L 408,240" fill="none" stroke="black"/>
                <path d="M 8,256 L 80,256" fill="none" stroke="black"/>
                <path d="M 240,256 L 304,256" fill="none" stroke="black"/>
                <path d="M 160,272 L 240,272" fill="none" stroke="black"/>
                <path d="M 240,288 L 304,288" fill="none" stroke="black"/>
                <path d="M 8,304 L 184,304" fill="none" stroke="black"/>
                <path d="M 192,320 L 216,320" fill="none" stroke="black"/>
                <path d="M 8,336 L 184,336" fill="none" stroke="black"/>
                <path d="M 456,352 L 536,352" fill="none" stroke="black"/>
                <path d="M 224,384 L 408,384" fill="none" stroke="black"/>
                <path d="M 424,384 L 456,384" fill="none" stroke="black"/>
                <path d="M 456,400 L 536,400" fill="none" stroke="black"/>
                <path d="M 200,416 L 336,416" fill="none" stroke="black"/>
                <path d="M 376,416 L 440,416" fill="none" stroke="black"/>
                <path d="M 152,432 L 200,432" fill="none" stroke="black"/>
                <path d="M 336,432 L 376,432" fill="none" stroke="black"/>
                <path d="M 200,448 L 336,448" fill="none" stroke="black"/>
                <path d="M 376,448 L 440,448" fill="none" stroke="black"/>
                <path d="M 456,480 L 520,480" fill="none" stroke="black"/>
                <path d="M 304,496 L 392,496" fill="none" stroke="black"/>
                <path d="M 424,496 L 456,496" fill="none" stroke="black"/>
                <path d="M 456,512 L 520,512" fill="none" stroke="black"/>
                <path d="M 144,528 L 392,528" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="312,456 300,450.4 300,461.6" fill="black" transform="rotate(270,304,456)"/>
                <path class="jump" d="M 224,280 C 230,280 230,264 224,264" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="168,272 156,266.4 156,277.6" fill="black" transform="rotate(180,160,272)"/>
                <polygon class="arrowhead" points="160,432 148,426.4 148,437.6" fill="black" transform="rotate(180,152,432)"/>
                <polygon class="arrowhead" points="152,528 140,522.4 140,533.6" fill="black" transform="rotate(180,144,528)"/>
                <polygon class="arrowhead" points="152,80 140,74.4 140,85.6" fill="black" transform="rotate(180,144,80)"/>
                <g class="text">
                  <text x="88" y="36">Service</text>
                  <text x="144" y="36">CS-ID</text>
                  <text x="180" y="36">1,</text>
                  <text x="224" y="36">contact</text>
                  <text x="292" y="36">instance</text>
                  <text x="360" y="36">CSCI-ID</text>
                  <text x="400" y="36">1</text>
                  <text x="452" y="36">&lt;computing</text>
                  <text x="532" y="36">metrics&gt;</text>
                  <text x="88" y="52">Service</text>
                  <text x="144" y="52">CS-ID</text>
                  <text x="180" y="52">1,</text>
                  <text x="224" y="52">contact</text>
                  <text x="292" y="52">instance</text>
                  <text x="360" y="52">CSCI-ID</text>
                  <text x="400" y="52">2</text>
                  <text x="452" y="52">&lt;computing</text>
                  <text x="532" y="52">metrics&gt;</text>
                  <text x="136" y="84">:</text>
                  <text x="328" y="84">:</text>
                  <text x="136" y="100">:</text>
                  <text x="328" y="100">:</text>
                  <text x="136" y="116">:</text>
                  <text x="328" y="116">:</text>
                  <text x="488" y="116">CS-ID</text>
                  <text x="520" y="116">1</text>
                  <text x="136" y="132">:</text>
                  <text x="328" y="132">:</text>
                  <text x="488" y="132">CSCI-ID</text>
                  <text x="528" y="132">1</text>
                  <text x="136" y="148">:</text>
                  <text x="136" y="164">:</text>
                  <text x="312" y="164">C-SMA</text>
                  <text x="488" y="164">Service</text>
                  <text x="540" y="164">Site</text>
                  <text x="568" y="164">2</text>
                  <text x="136" y="180">:</text>
                  <text x="136" y="196">:</text>
                  <text x="316" y="196">CATS-Forwarder</text>
                  <text x="384" y="196">2</text>
                  <text x="488" y="196">CS-ID</text>
                  <text x="520" y="196">1</text>
                  <text x="136" y="212">:</text>
                  <text x="488" y="212">CSCI-ID</text>
                  <text x="528" y="212">2</text>
                  <text x="136" y="228">:</text>
                  <text x="44" y="244">Client</text>
                  <text x="136" y="244">:</text>
                  <text x="184" y="244">Network</text>
                  <text x="136" y="260">:</text>
                  <text x="184" y="260">metrics</text>
                  <text x="136" y="276">:</text>
                  <text x="152" y="276">:</text>
                  <text x="272" y="276">C-NMA</text>
                  <text x="136" y="292">:</text>
                  <text x="152" y="292">:</text>
                  <text x="68" y="324">CATS-Forwarder</text>
                  <text x="156" y="324">1|C-PS</text>
                  <text x="316" y="340">Underlay</text>
                  <text x="136" y="356">:</text>
                  <text x="324" y="356">Infrastructure</text>
                  <text x="136" y="372">:</text>
                  <text x="488" y="372">CS-ID</text>
                  <text x="520" y="372">1</text>
                  <text x="136" y="388">:</text>
                  <text x="488" y="388">CSCI-ID</text>
                  <text x="528" y="388">3</text>
                  <text x="136" y="404">:</text>
                  <text x="136" y="420">:</text>
                  <text x="136" y="436">:</text>
                  <text x="260" y="436">CATS-Forwarder</text>
                  <text x="328" y="436">3</text>
                  <text x="408" y="436">C-SMA</text>
                  <text x="488" y="436">Service</text>
                  <text x="540" y="436">Site</text>
                  <text x="568" y="436">3</text>
                  <text x="136" y="452">:</text>
                  <text x="136" y="468">:</text>
                  <text x="400" y="468">:</text>
                  <text x="136" y="484">:</text>
                  <text x="400" y="484">:</text>
                  <text x="136" y="500">:</text>
                  <text x="400" y="500">:</text>
                  <text x="480" y="500">CS-ID</text>
                  <text x="512" y="500">2</text>
                  <text x="136" y="516">:</text>
                  <text x="400" y="516">:</text>
                  <text x="136" y="532">:</text>
                  <text x="400" y="532">:</text>
                  <text x="88" y="548">Service</text>
                  <text x="144" y="548">CS-ID</text>
                  <text x="180" y="548">1,</text>
                  <text x="224" y="548">contact</text>
                  <text x="292" y="548">instance</text>
                  <text x="360" y="548">CSCI-ID</text>
                  <text x="400" y="548">3</text>
                  <text x="452" y="548">&lt;computing</text>
                  <text x="532" y="548">metrics&gt;</text>
                  <text x="88" y="564">Service</text>
                  <text x="144" y="564">CS-ID</text>
                  <text x="180" y="564">2,</text>
                  <text x="236" y="564">&lt;computing</text>
                  <text x="316" y="564">metrics&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
        Service CS-ID 1, contact instance CSCI-ID 1 <computing metrics>
        Service CS-ID 1, contact instance CSCI-ID 2 <computing metrics>

                 :<----------------------:
                 :                       :               .---------.
                 :                       :               | CS-ID 1 |
                 :                       :            .--+CSCI-ID 1|
                 :              .----------------.    |  '---------'
                 :              |    C-SMA       +----+   Service Site 2
                 :              |----------------|    |  .---------.
                 :              |CATS-Forwarder 2|    '--+ CS-ID 1 |
                 :              '---------+------'       |CSCI-ID 2|
 .--------.      :                        |              '---------'
 | Client |      :  Network .-------------+--------.
 '----+---'      :  metrics | .-------.            |
      |          : :<-------)-+ C-NMA |            |
      |          : :        | '-------'            |
 .----+----------------.    |                      |
 |CATS-Forwarder 1|C-PS|----|                      |
 '---------------------'    |       Underlay       |
                 :          |     Infrastructure   |     .---------.
                 :          |                      |     | CS-ID 1 |
                 :          '---------+------------' .---+CSCI-ID 3|
                 :                    |              |   '---------'
                 :       .------------+---.    .-----+-.
                 : <-----+CATS-Forwarder 3+----+ C-SMA |  Service Site 3
                 :       '----------------'    '-----+-'
                 :                    ^           :  |
                 :                    |           :  |   .-------.
                 :                    '-----------:  '---+CS-ID 2|
                 :                                :      '-------'
                 :<-------------------------------:
        Service CS-ID 1, contact instance CSCI-ID 3 <computing metrics>
        Service CS-ID 2, <computing metrics>
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="sec-met-dist2">
        <name>Centralized Model</name>
        <t>An example of metrics distribution in the centralized model is illustrated in <xref target="fig-cats-centralized"/>.</t>
        <t>The C-SMA collocated with "CATS&nbhy;Forwarder 2" distributes the computing metrics for both service contact instances (i.e., (CS-ID 1, CSCI-ID 1) and (CS-ID 1, CSCI-ID 2)) to the centralized C-PS. In this case, the C-PS is a logically centralized element deployed separately with the "CATS&nbhy;Forwarder 1". Similarly, the C-SMA located at "Service Site 3" advertises the computing metrics for the two services hosted by "Service Site 3" to the centralized C-PS as well. Furthermore, the C-PS receives the network metrics sent from the C-NMA.  All metrics are used by the C-PS to select the most relevant path that leads to the Egress CATS&nbhy;Forwarder. The selected paths will be sent from the C-PS to "CATS&nbhy;Forwarder 1" to indicate traffic steering.</t>
        <figure anchor="fig-cats-centralized">
          <name>An Example of CATS Metric Distribution in the Centralized Model</name>
          <artset>

            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="592" width="584" viewBox="0 0 584 592" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,288 L 8,320" fill="none" stroke="black"/>
                <path d="M 8,368 L 8,416" fill="none" stroke="black"/>
                <path d="M 48,320 L 48,368" fill="none" stroke="black"/>
                <path d="M 80,288 L 80,320" fill="none" stroke="black"/>
                <path d="M 144,368 L 144,416" fill="none" stroke="black"/>
                <path d="M 160,112 L 160,160" fill="none" stroke="black"/>
                <path d="M 176,496 L 176,528" fill="none" stroke="black"/>
                <path d="M 184,168 L 184,336" fill="none" stroke="black"/>
                <path d="M 208,304 L 208,328" fill="none" stroke="black"/>
                <path d="M 208,344 L 208,376" fill="none" stroke="black"/>
                <path d="M 208,392 L 208,464" fill="none" stroke="black"/>
                <path d="M 216,112 L 216,160" fill="none" stroke="black"/>
                <path d="M 216,192 L 216,256" fill="none" stroke="black"/>
                <path d="M 232,320 L 232,352" fill="none" stroke="black"/>
                <path d="M 256,352 L 256,384" fill="none" stroke="black"/>
                <path d="M 288,144 L 288,192" fill="none" stroke="black"/>
                <path d="M 288,464 L 288,496" fill="none" stroke="black"/>
                <path d="M 288,528 L 288,560" fill="none" stroke="black"/>
                <path d="M 296,256 L 296,352" fill="none" stroke="black"/>
                <path d="M 312,496 L 312,528" fill="none" stroke="black"/>
                <path d="M 352,192 L 352,256" fill="none" stroke="black"/>
                <path d="M 384,160 L 384,240" fill="none" stroke="black"/>
                <path d="M 392,304 L 392,464" fill="none" stroke="black"/>
                <path d="M 408,544 L 408,576" fill="none" stroke="black"/>
                <path d="M 416,144 L 416,192" fill="none" stroke="black"/>
                <path d="M 416,224 L 416,272" fill="none" stroke="black"/>
                <path d="M 432,432 L 432,480" fill="none" stroke="black"/>
                <path d="M 440,304 L 440,384" fill="none" stroke="black"/>
                <path d="M 448,480 L 448,512" fill="none" stroke="black"/>
                <path d="M 472,544 L 472,576" fill="none" stroke="black"/>
                <path d="M 480,392 L 480,432" fill="none" stroke="black"/>
                <path d="M 488,304 L 488,384" fill="none" stroke="black"/>
                <path d="M 496,144 L 496,192" fill="none" stroke="black"/>
                <path d="M 496,224 L 496,272" fill="none" stroke="black"/>
                <path d="M 512,432 L 512,480" fill="none" stroke="black"/>
                <path d="M 536,128 L 536,320" fill="none" stroke="black"/>
                <path d="M 536,368 L 536,560" fill="none" stroke="black"/>
                <path d="M 160,112 L 216,112" fill="none" stroke="black"/>
                <path d="M 104,128 L 160,128" fill="none" stroke="black"/>
                <path d="M 224,128 L 536,128" fill="none" stroke="black"/>
                <path d="M 224,144 L 288,144" fill="none" stroke="black"/>
                <path d="M 416,144 L 496,144" fill="none" stroke="black"/>
                <path d="M 160,160 L 216,160" fill="none" stroke="black"/>
                <path d="M 384,160 L 416,160" fill="none" stroke="black"/>
                <path d="M 216,192 L 352,192" fill="none" stroke="black"/>
                <path d="M 416,192 L 496,192" fill="none" stroke="black"/>
                <path d="M 352,208 L 384,208" fill="none" stroke="black"/>
                <path d="M 216,224 L 352,224" fill="none" stroke="black"/>
                <path d="M 416,224 L 496,224" fill="none" stroke="black"/>
                <path d="M 384,240 L 416,240" fill="none" stroke="black"/>
                <path d="M 216,256 L 352,256" fill="none" stroke="black"/>
                <path d="M 416,272 L 496,272" fill="none" stroke="black"/>
                <path d="M 8,288 L 80,288" fill="none" stroke="black"/>
                <path d="M 208,304 L 392,304" fill="none" stroke="black"/>
                <path d="M 440,304 L 488,304" fill="none" stroke="black"/>
                <path d="M 8,320 L 80,320" fill="none" stroke="black"/>
                <path d="M 232,320 L 296,320" fill="none" stroke="black"/>
                <path d="M 488,320 L 536,320" fill="none" stroke="black"/>
                <path d="M 184,336 L 232,336" fill="none" stroke="black"/>
                <path d="M 232,352 L 296,352" fill="none" stroke="black"/>
                <path d="M 8,368 L 144,368" fill="none" stroke="black"/>
                <path d="M 496,368 L 536,368" fill="none" stroke="black"/>
                <path d="M 152,384 L 256,384" fill="none" stroke="black"/>
                <path d="M 440,384 L 488,384" fill="none" stroke="black"/>
                <path d="M 144,400 L 208,400" fill="none" stroke="black"/>
                <path d="M 8,416 L 144,416" fill="none" stroke="black"/>
                <path d="M 432,432 L 512,432" fill="none" stroke="black"/>
                <path d="M 208,464 L 392,464" fill="none" stroke="black"/>
                <path d="M 432,480 L 512,480" fill="none" stroke="black"/>
                <path d="M 176,496 L 312,496" fill="none" stroke="black"/>
                <path d="M 312,512 L 448,512" fill="none" stroke="black"/>
                <path d="M 176,528 L 312,528" fill="none" stroke="black"/>
                <path d="M 408,544 L 472,544" fill="none" stroke="black"/>
                <path d="M 288,560 L 408,560" fill="none" stroke="black"/>
                <path d="M 472,560 L 536,560" fill="none" stroke="black"/>
                <path d="M 408,576 L 472,576" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="504,368 492,362.4 492,373.6" fill="black" transform="rotate(180,496,368)"/>
                <polygon class="arrowhead" points="488,392 476,386.4 476,397.6" fill="black" transform="rotate(270,480,392)"/>
                <polygon class="arrowhead" points="232,144 220,138.4 220,149.6" fill="black" transform="rotate(180,224,144)"/>
                <polygon class="arrowhead" points="232,128 220,122.4 220,133.6" fill="black" transform="rotate(180,224,128)"/>
                <path class="jump" d="M 208,392 C 214,392 214,376 208,376" fill="none" stroke="black"/>
                <path class="jump" d="M 208,344 C 214,344 214,328 208,328" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="192,168 180,162.4 180,173.6" fill="black" transform="rotate(270,184,168)"/>
                <polygon class="arrowhead" points="160,384 148,378.4 148,389.6" fill="black" transform="rotate(180,152,384)"/>
                <polygon class="arrowhead" points="112,128 100,122.4 100,133.6" fill="black" transform="rotate(180,104,128)"/>
                <g class="text">
                  <text x="168" y="36">Service</text>
                  <text x="224" y="36">CS-ID</text>
                  <text x="260" y="36">1,</text>
                  <text x="308" y="36">instance</text>
                  <text x="376" y="36">CSCI-ID</text>
                  <text x="416" y="36">1</text>
                  <text x="468" y="36">&lt;computing</text>
                  <text x="548" y="36">metrics&gt;</text>
                  <text x="168" y="52">Service</text>
                  <text x="224" y="52">CS-ID</text>
                  <text x="260" y="52">1,</text>
                  <text x="308" y="52">instance</text>
                  <text x="376" y="52">CSCI-ID</text>
                  <text x="416" y="52">2</text>
                  <text x="468" y="52">&lt;computing</text>
                  <text x="548" y="52">metrics&gt;</text>
                  <text x="168" y="68">Service</text>
                  <text x="224" y="68">CS-ID</text>
                  <text x="260" y="68">1,</text>
                  <text x="308" y="68">instance</text>
                  <text x="376" y="68">CSCI-ID</text>
                  <text x="416" y="68">3</text>
                  <text x="468" y="68">&lt;computing</text>
                  <text x="548" y="68">metrics&gt;</text>
                  <text x="168" y="84">Service</text>
                  <text x="224" y="84">CS-ID</text>
                  <text x="260" y="84">2,</text>
                  <text x="316" y="84">&lt;computing</text>
                  <text x="396" y="84">metrics&gt;</text>
                  <text x="96" y="132">:</text>
                  <text x="188" y="132">C-PS</text>
                  <text x="96" y="148">:</text>
                  <text x="96" y="164">:</text>
                  <text x="440" y="164">CS-ID</text>
                  <text x="472" y="164">1</text>
                  <text x="96" y="180">:</text>
                  <text x="448" y="180">CSCI-ID</text>
                  <text x="488" y="180">1</text>
                  <text x="96" y="196">:</text>
                  <text x="96" y="212">:</text>
                  <text x="272" y="212">C-SMA</text>
                  <text x="424" y="212">Service</text>
                  <text x="476" y="212">Site</text>
                  <text x="504" y="212">2</text>
                  <text x="96" y="228">:</text>
                  <text x="96" y="244">:</text>
                  <text x="276" y="244">CATS-Forwarder</text>
                  <text x="344" y="244">2</text>
                  <text x="440" y="244">CS-ID</text>
                  <text x="472" y="244">1</text>
                  <text x="96" y="260">:</text>
                  <text x="448" y="260">CSCI-ID</text>
                  <text x="488" y="260">2</text>
                  <text x="96" y="276">:</text>
                  <text x="96" y="292">:</text>
                  <text x="44" y="308">Client</text>
                  <text x="96" y="308">:</text>
                  <text x="144" y="308">Network</text>
                  <text x="96" y="324">:</text>
                  <text x="144" y="324">metrics</text>
                  <text x="96" y="340">:</text>
                  <text x="264" y="340">C-NMA</text>
                  <text x="96" y="356">:</text>
                  <text x="464" y="356">C-SMA</text>
                  <text x="68" y="388">CATS-Forwarder</text>
                  <text x="136" y="388">1</text>
                  <text x="300" y="420">Underlay</text>
                  <text x="308" y="436">Infrastructure</text>
                  <text x="456" y="452">CS-ID</text>
                  <text x="488" y="452">1</text>
                  <text x="464" y="468">CSCI-ID</text>
                  <text x="504" y="468">3</text>
                  <text x="236" y="516">CATS-Forwarder</text>
                  <text x="304" y="516">3</text>
                  <text x="416" y="532">Service</text>
                  <text x="468" y="532">Site</text>
                  <text x="496" y="532">3</text>
                  <text x="432" y="564">CS-ID</text>
                  <text x="464" y="564">2</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                 Service CS-ID 1, instance CSCI-ID 1 <computing metrics>
                 Service CS-ID 1, instance CSCI-ID 2 <computing metrics>
                 Service CS-ID 1, instance CSCI-ID 3 <computing metrics>
                 Service CS-ID 2, <computing metrics>

                   .------.
           :<------+ C-PS |<--------------------------------------.
           :       |      |<-------.               .---------.    |
           :       '------'        |           .---+CS-ID 1  |    |
           :          ^            |           |   |CSCI-ID 1|    |
           :          |   .--------+-------.   |   '---------'    |
           :          |   |    C-SMA       +---+ Service Site 2   |
           :          |   +----------------+   |   .---------.    |
           :          |   |CATS-Forwarder 2|   '---+CS-ID 1  |    |
           :          |   '---------+------'       |CSCI-ID 2|    |
           :          |             |              '---------'    |
.--------. :          |             |                             |
| Client | :  Network |  .----------+-----------.     .-----.     |
'----+---' :  metrics |  |  .-------.           |     |     +-----'
     |     :          '--)--+ C-NMA |           |     |     |
     |     :             |  '--+----'           |     |C-SMA|
.----+-----------.       |     |                |     |     |<----.
|CATS-Forwarder 1+<------)-----'                |     '-----'     |
|                +-------+                      |          ^      |
'----------------'       |       Underlay       |          |      |
                         |     Infrastructure   |    .-----+---.  |
                         |                      |    |CS-ID 1  |  |
                         '---------+------------'    |CSCI-ID 3|  |
                                   |                 '-+-------'  |
                     .-------------+--.                |          |
                     |CATS-Forwarder 3+----------------'          |
                     '-------------+--'         Service Site 3    |
                                   |              .-------.       |
                                   '--------------+CS-ID 2+-------'
                                                  '-------'
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="sec-met-dist3">
        <name>Hybrid Model</name>
        <t>An example of metrics distribution in the hybrid model is illustrated in <xref target="fig-cats-hybrid"/>.</t>
        <t>For example, the metrics 1, 2, and 3 associated with the "CS-ID 1" are collected by the centralized C-PS, and the metrics 4 and 5 are distributed via distributed protocols to the Ingress CATS&nbhy;Forwarder directly. For a service with "CS-ID 2", all the metrics are collected by the centralized C-PS. The CATS-computed path result will be distributed to the Ingress CATS&nbhy;Forwarders from the C-PS by considering both the metrics from the C-SMA and C-NMA. Furthermore, the Ingress CATS&nbhy;Forwarder may also have some ability to compute the path for subsequent packets accessing the same service.</t>
        <figure anchor="fig-cats-hybrid">
          <name>An Example of CATS Metric Distribution in the Hybrid Model</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="624" width="568" viewBox="0 0 568 624" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,272 L 8,304" fill="none" stroke="black"/>
                <path d="M 8,368 L 8,448" fill="none" stroke="black"/>
                <path d="M 48,304 L 48,368" fill="none" stroke="black"/>
                <path d="M 48,416 L 48,448" fill="none" stroke="black"/>
                <path d="M 80,272 L 80,304" fill="none" stroke="black"/>
                <path d="M 144,368 L 144,416" fill="none" stroke="black"/>
                <path d="M 168,96 L 168,144" fill="none" stroke="black"/>
                <path d="M 192,152 L 192,320" fill="none" stroke="black"/>
                <path d="M 192,480 L 192,512" fill="none" stroke="black"/>
                <path d="M 224,96 L 224,144" fill="none" stroke="black"/>
                <path d="M 224,192 L 224,256" fill="none" stroke="black"/>
                <path d="M 224,288 L 224,312" fill="none" stroke="black"/>
                <path d="M 224,328 L 224,376" fill="none" stroke="black"/>
                <path d="M 224,392 L 224,448" fill="none" stroke="black"/>
                <path d="M 248,304 L 248,336" fill="none" stroke="black"/>
                <path d="M 264,336 L 264,384" fill="none" stroke="black"/>
                <path d="M 296,128 L 296,192" fill="none" stroke="black"/>
                <path d="M 304,256 L 304,288" fill="none" stroke="black"/>
                <path d="M 304,448 L 304,480" fill="none" stroke="black"/>
                <path d="M 304,512 L 304,544" fill="none" stroke="black"/>
                <path d="M 312,304 L 312,336" fill="none" stroke="black"/>
                <path d="M 328,480 L 328,512" fill="none" stroke="black"/>
                <path d="M 360,192 L 360,256" fill="none" stroke="black"/>
                <path d="M 392,160 L 392,240" fill="none" stroke="black"/>
                <path d="M 408,288 L 408,448" fill="none" stroke="black"/>
                <path d="M 424,144 L 424,192" fill="none" stroke="black"/>
                <path d="M 424,224 L 424,272" fill="none" stroke="black"/>
                <path d="M 424,528 L 424,560" fill="none" stroke="black"/>
                <path d="M 432,416 L 432,464" fill="none" stroke="black"/>
                <path d="M 448,464 L 448,496" fill="none" stroke="black"/>
                <path d="M 464,288 L 464,368" fill="none" stroke="black"/>
                <path d="M 488,528 L 488,560" fill="none" stroke="black"/>
                <path d="M 496,376 L 496,416" fill="none" stroke="black"/>
                <path d="M 504,144 L 504,192" fill="none" stroke="black"/>
                <path d="M 504,224 L 504,272" fill="none" stroke="black"/>
                <path d="M 512,288 L 512,368" fill="none" stroke="black"/>
                <path d="M 512,416 L 512,464" fill="none" stroke="black"/>
                <path d="M 544,352 L 544,544" fill="none" stroke="black"/>
                <path d="M 560,112 L 560,304" fill="none" stroke="black"/>
                <path d="M 560,336 L 560,576" fill="none" stroke="black"/>
                <path d="M 168,96 L 224,96" fill="none" stroke="black"/>
                <path d="M 112,112 L 168,112" fill="none" stroke="black"/>
                <path d="M 232,112 L 560,112" fill="none" stroke="black"/>
                <path d="M 232,128 L 296,128" fill="none" stroke="black"/>
                <path d="M 168,144 L 224,144" fill="none" stroke="black"/>
                <path d="M 424,144 L 504,144" fill="none" stroke="black"/>
                <path d="M 392,160 L 424,160" fill="none" stroke="black"/>
                <path d="M 224,192 L 360,192" fill="none" stroke="black"/>
                <path d="M 424,192 L 504,192" fill="none" stroke="black"/>
                <path d="M 360,208 L 392,208" fill="none" stroke="black"/>
                <path d="M 224,224 L 360,224" fill="none" stroke="black"/>
                <path d="M 424,224 L 504,224" fill="none" stroke="black"/>
                <path d="M 392,240 L 424,240" fill="none" stroke="black"/>
                <path d="M 224,256 L 360,256" fill="none" stroke="black"/>
                <path d="M 8,272 L 80,272" fill="none" stroke="black"/>
                <path d="M 424,272 L 504,272" fill="none" stroke="black"/>
                <path d="M 224,288 L 408,288" fill="none" stroke="black"/>
                <path d="M 464,288 L 512,288" fill="none" stroke="black"/>
                <path d="M 8,304 L 80,304" fill="none" stroke="black"/>
                <path d="M 248,304 L 312,304" fill="none" stroke="black"/>
                <path d="M 512,304 L 560,304" fill="none" stroke="black"/>
                <path d="M 192,320 L 248,320" fill="none" stroke="black"/>
                <path d="M 248,336 L 312,336" fill="none" stroke="black"/>
                <path d="M 512,336 L 560,336" fill="none" stroke="black"/>
                <path d="M 520,352 L 544,352" fill="none" stroke="black"/>
                <path d="M 8,368 L 144,368" fill="none" stroke="black"/>
                <path d="M 464,368 L 512,368" fill="none" stroke="black"/>
                <path d="M 152,384 L 264,384" fill="none" stroke="black"/>
                <path d="M 144,400 L 224,400" fill="none" stroke="black"/>
                <path d="M 8,416 L 144,416" fill="none" stroke="black"/>
                <path d="M 432,416 L 512,416" fill="none" stroke="black"/>
                <path d="M 8,448 L 48,448" fill="none" stroke="black"/>
                <path d="M 224,448 L 408,448" fill="none" stroke="black"/>
                <path d="M 432,464 L 512,464" fill="none" stroke="black"/>
                <path d="M 192,480 L 328,480" fill="none" stroke="black"/>
                <path d="M 328,496 L 448,496" fill="none" stroke="black"/>
                <path d="M 192,512 L 328,512" fill="none" stroke="black"/>
                <path d="M 424,528 L 488,528" fill="none" stroke="black"/>
                <path d="M 304,544 L 424,544" fill="none" stroke="black"/>
                <path d="M 488,544 L 544,544" fill="none" stroke="black"/>
                <path d="M 424,560 L 488,560" fill="none" stroke="black"/>
                <path d="M 112,576 L 560,576" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="528,352 516,346.4 516,357.6" fill="black" transform="rotate(180,520,352)"/>
                <polygon class="arrowhead" points="504,376 492,370.4 492,381.6" fill="black" transform="rotate(270,496,376)"/>
                <polygon class="arrowhead" points="240,128 228,122.4 228,133.6" fill="black" transform="rotate(180,232,128)"/>
                <polygon class="arrowhead" points="240,112 228,106.4 228,117.6" fill="black" transform="rotate(180,232,112)"/>
                <path class="jump" d="M 224,392 C 230,392 230,376 224,376" fill="none" stroke="black"/>
                <path class="jump" d="M 224,328 C 230,328 230,312 224,312" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="200,152 188,146.4 188,157.6" fill="black" transform="rotate(270,192,152)"/>
                <polygon class="arrowhead" points="160,384 148,378.4 148,389.6" fill="black" transform="rotate(180,152,384)"/>
                <polygon class="arrowhead" points="120,576 108,570.4 108,581.6" fill="black" transform="rotate(180,112,576)"/>
                <polygon class="arrowhead" points="120,112 108,106.4 108,117.6" fill="black" transform="rotate(180,112,112)"/>
                <g class="text">
                  <text x="104" y="36">Service</text>
                  <text x="160" y="36">CS-ID</text>
                  <text x="196" y="36">1,</text>
                  <text x="244" y="36">instance</text>
                  <text x="312" y="36">CSCI-ID</text>
                  <text x="352" y="36">1</text>
                  <text x="404" y="36">&lt;computing</text>
                  <text x="476" y="36">metric</text>
                  <text x="532" y="36">1,2,3&gt;</text>
                  <text x="104" y="52">Service</text>
                  <text x="160" y="52">CS-ID</text>
                  <text x="196" y="52">1,</text>
                  <text x="244" y="52">instance</text>
                  <text x="312" y="52">CSCI-ID</text>
                  <text x="352" y="52">2</text>
                  <text x="404" y="52">&lt;computing</text>
                  <text x="476" y="52">metric</text>
                  <text x="532" y="52">1,2,3&gt;</text>
                  <text x="104" y="68">Service</text>
                  <text x="160" y="68">CS-ID</text>
                  <text x="196" y="68">1,</text>
                  <text x="244" y="68">instance</text>
                  <text x="312" y="68">CSCI-ID</text>
                  <text x="352" y="68">3</text>
                  <text x="404" y="68">&lt;computing</text>
                  <text x="476" y="68">metric</text>
                  <text x="532" y="68">1,2,3&gt;</text>
                  <text x="104" y="84">Service</text>
                  <text x="160" y="84">CS-ID</text>
                  <text x="196" y="84">2,</text>
                  <text x="252" y="84">&lt;computing</text>
                  <text x="332" y="84">metrics&gt;</text>
                  <text x="104" y="116">:</text>
                  <text x="196" y="116">C-PS</text>
                  <text x="104" y="132">:</text>
                  <text x="104" y="148">:</text>
                  <text x="104" y="164">:</text>
                  <text x="448" y="164">CS-ID</text>
                  <text x="480" y="164">1</text>
                  <text x="104" y="180">:</text>
                  <text x="456" y="180">CSCI-ID</text>
                  <text x="496" y="180">1</text>
                  <text x="104" y="196">:</text>
                  <text x="104" y="212">:</text>
                  <text x="280" y="212">C-SMA</text>
                  <text x="432" y="212">Service</text>
                  <text x="484" y="212">Site</text>
                  <text x="512" y="212">2</text>
                  <text x="104" y="228">:</text>
                  <text x="104" y="244">:</text>
                  <text x="284" y="244">CATS-Forwarder</text>
                  <text x="352" y="244">2</text>
                  <text x="448" y="244">CS-ID</text>
                  <text x="480" y="244">1</text>
                  <text x="104" y="260">:</text>
                  <text x="456" y="260">CSCI-ID</text>
                  <text x="496" y="260">2</text>
                  <text x="104" y="276">:</text>
                  <text x="44" y="292">Client</text>
                  <text x="104" y="292">:</text>
                  <text x="152" y="292">Network</text>
                  <text x="104" y="308">:</text>
                  <text x="152" y="308">metrics</text>
                  <text x="104" y="324">:</text>
                  <text x="280" y="324">C-NMA</text>
                  <text x="104" y="340">:</text>
                  <text x="488" y="340">C-SMA</text>
                  <text x="104" y="356">:</text>
                  <text x="68" y="388">CATS-Forwarder</text>
                  <text x="136" y="388">1</text>
                  <text x="316" y="404">Underlay</text>
                  <text x="324" y="420">Infrastructure</text>
                  <text x="28" y="436">C-PS</text>
                  <text x="104" y="436">:</text>
                  <text x="456" y="436">CS-ID</text>
                  <text x="488" y="436">1</text>
                  <text x="104" y="452">:</text>
                  <text x="464" y="452">CSCI-ID</text>
                  <text x="504" y="452">3</text>
                  <text x="104" y="468">:</text>
                  <text x="104" y="484">:</text>
                  <text x="104" y="500">:</text>
                  <text x="252" y="500">CATS-Forwarder</text>
                  <text x="320" y="500">3</text>
                  <text x="104" y="516">:</text>
                  <text x="432" y="516">Service</text>
                  <text x="484" y="516">Site</text>
                  <text x="512" y="516">3</text>
                  <text x="104" y="532">:</text>
                  <text x="104" y="548">:</text>
                  <text x="448" y="548">CS-ID</text>
                  <text x="480" y="548">2</text>
                  <text x="104" y="564">:</text>
                  <text x="104" y="580">:</text>
                  <text x="56" y="596">Service</text>
                  <text x="112" y="596">CS-ID</text>
                  <text x="148" y="596">1,</text>
                  <text x="192" y="596">contact</text>
                  <text x="260" y="596">instance</text>
                  <text x="328" y="596">CSCI-ID</text>
                  <text x="372" y="596">3,</text>
                  <text x="428" y="596">&lt;computing</text>
                  <text x="500" y="596">metric</text>
                  <text x="548" y="596">4,5&gt;</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
          Service CS-ID 1, instance CSCI-ID 1 <computing metric 1,2,3>
          Service CS-ID 1, instance CSCI-ID 2 <computing metric 1,2,3>
          Service CS-ID 1, instance CSCI-ID 3 <computing metric 1,2,3>
          Service CS-ID 2, <computing metrics>
                     .------.
             :<------+ C-PS |<----------------------------------------.
             :       |      |<-------.                                |
             :       '------'        |               .---------.      |
             :          ^            |           .---+CS-ID 1  |      |
             :          |            |           |   |CSCI-ID 1|      |
             :          |   .--------+-------.   |   '---------'      |
             :          |   |    C-SMA       +---+ Service Site 2     |
             :          |   +----------------+   |   .---------.      |
             :          |   |CATS-Forwarder 2|   '---+CS-ID 1  |      |
             :          |   '---------+------'       |CSCI-ID 2|      |
 .--------.  :          |             |              '---------'      |
 | Client |  :  Network |   .---------+------------.      .-----.     |
 '----+---'  :  metrics |   |  .-------.           |      |     +-----'
      |      :          '---)--+ C-NMA |           |      |     |
      |      :              |  '-+-----'           |      |C-SMA+-----.
      |      :              |    |                 |      |     |<--. |
 .----+-----------.         |    |                 |      '-----'   | |
 |CATS-Forwarder 1|<--------)----'                 |          ^     | |
 |                +---------+       Underlay       |          |     | |
 +----+-----------'         |     Infrastructure   |  .-------+-.   | |
 |C-PS|      :              |                      |  |CS-ID 1  |   | |
 '----'      :              '---------+------------'  |CSCI-ID 3|   | |
             :                        |               '-+-------'   | |
             :          .-------------+--.              |           | |
             :          |CATS-Forwarder 3+--------------'           | |
             :          '-------------+--'         Service Site 3   | |
             :                        |              .-------.      | |
             :                        '--------------+CS-ID 2+------' |
             :                                       '-------'        |
             :<-------------------------------------------------------'
    Service CS-ID 1, contact instance CSCI-ID 3, <computing metric 4,5>
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank <contact fullname="Joel Halpern"/>, <contact fullname="John Scudder"/>, <contact fullname="Dino Farinacci"/>, <contact fullname="Adrian Farrel"/>,
<contact fullname="Cullen Jennings"/>, <contact fullname="Linda Dunbar"/>, <contact fullname="Jeffrey Zhang"/>, <contact fullname="Peng Liu"/>, <contact fullname="Fang Gao"/>, <contact fullname="Aijun Wang"/>, <contact fullname="Cong Li"/>,
<contact fullname="Xinxin Yi"/>, <contact fullname="Jari Arkko"/>, <contact fullname="Mingyu Wu"/>, <contact fullname="Haibo Wang"/>, <contact fullname="Xia Chen"/>, <contact fullname="Jianwei Mao"/>, <contact fullname="Guofeng Qian"/>, <contact fullname="Zhenbin Li"/>,
<contact fullname="Xinyue Zhang"/>, <contact fullname="Weier Li"/>, <contact fullname="Quan Xiong"/>, <contact fullname="Nagendra Kumar"/>, and <contact fullname="Taylor Paul"/> for their comments and suggestions.</t>
      <t>Some text about various deployment models was originally documented in <xref target="I-D.yao-cats-awareness-architecture"/>.</t>
      <t>Special thanks to <contact fullname="Adrian Farrel"/> for the careful shepherd review and various suggestions that enhanced this document.</t>
      <t>Thanks to <contact fullname="Ines Robles"/> and <contact fullname="Linda Dunbar"/> for the RTGDIR reviews, <contact fullname="Giuseppe Fioccola"/> and <contact fullname="Gyan Mishra"/> for the OPSDIR reviews,
<contact fullname="Thomas Fossati"/> for the GENART review, <contact fullname="Linda Dunbar"/> for the SECDIR review, and <contact fullname="Tommy Pauly"/> for the TSVDIR review.</t>
      <t>Thanks to <contact fullname="Éric Vyncke"/>, <contact fullname="Ketan Talaulikar"/>, <contact fullname="Christopher Inacio"/>, and <contact fullname="Deb Cooley"/> for the IESG review.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include">
      <name>Contributors</name>
      <contact fullname="Guangping Huang">
        <organization>ZTE</organization>
        <address>
          <email>huang.guangping@zte.com.cn</email>
        </address>
      </contact>
      <contact fullname="Gyan Mishra">
        <organization>Verizon Inc.</organization>
        <address>
          <email>hayabusagsm@gmail.com</email>
        </address>
      </contact>
      <contact fullname="Huijuan Yao">
        <organization>China Mobile</organization>
        <address>
          <email>yaohuijuan@chinamobile.com</email>
        </address>
      </contact>
      <contact fullname="Yizhou Li">
        <organization>Huawei Technologies</organization>
        <address>
          <email>liyizhou@huawei.com</email>
        </address>
      </contact>
      <contact fullname="Dirk Trossen">
        <organization>DaPaDOT Tech UG (haftungsbeschränkt)</organization>
        <address>
          <email>dirk@dapadot-tech.eu</email>
        </address>
      </contact>
      <contact fullname="Luigi Iannone">
        <organization>Huawei Technologies</organization>
        <address>
          <email>luigi.iannone@huawei.com</email>
        </address>
      </contact>
      <contact fullname="Hang Shi">
        <organization>Huawei Technologies</organization>
        <address>
          <email>shihang9@huawei.com</email>
        </address>
      </contact>
      <contact fullname="Changwang Lin">
        <organization>New H3C Technologies</organization>
        <address>
          <email>linchangwang.04414@h3c.com</email>
        </address>
      </contact>
      <contact fullname="Xueshun Wang">
        <organization>CICT</organization>
        <address>
          <email>xswang@fiberhome.com</email>
        </address>
      </contact>
      <contact fullname="Xuewei Wang">
        <organization>Ruijie Networks</organization>
        <address>
          <email>wangxuewei1@ruijie.com.cn</email>
        </address>
      </contact>
      <contact fullname="Christian Jacquenet">
        <organization>Orange</organization>
        <address>
          <email>christian.jacquenet@orange.com</email>
        </address>
      </contact>
    </section>
  </back>
</rfc>
