<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.24 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cats-metric-definition-02" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="CATS Metrics">CATS Metrics Definition</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cats-metric-definition-02"/>
    <author initials="Y." surname="Kehan" fullname="Kehan Yao">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>yaokehan@chinamobile.com</email>
      </address>
    </author>
    <author initials="H." surname="Shi" fullname="Hang Shi">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>shihang9@huawei.com</email>
      </address>
    </author>
    <author initials="C." surname="Li" fullname="Cheng Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>c.l@huawei.com</email>
      </address>
    </author>
    <author initials="L. M." surname="Contreras" fullname="L. M. Contreras">
      <organization>Telefonica</organization>
      <address>
        <email>luismiguel.contrerasmurillo@telefonica.com</email>
      </address>
    </author>
    <author initials="J." surname="Ros-Giralt" fullname="Jordi Ros-Giralt">
      <organization>Qualcomm Europe, Inc.</organization>
      <address>
        <email>jros@qti.qualcomm.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="03"/>
    <area>Routing</area>
    <workgroup>Computing-Aware Traffic Steering</workgroup>
    <keyword>CATS, metric</keyword>
    <abstract>
      <?line 72?>

<t>Computing-Aware Traffic Steering (CATS) is a traffic engineering approach that optimizes the steering of traffic to a given service instance by considering the dynamic nature of computing and network resources. In order to consider the computing and network resources, a system needs to share information (metrics) that describes the state of the resources. Metrics from network domain have been in use in network systems for a long time. This document defines a set of metrics from computing domain used for CATS.</t>
    </abstract>
  </front>
  <middle>
    <?line 76?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Service providers are deploying computing capabilities across the network for hosting applications such as distributed AI workloads, AR/VR and driverless vehicles, among others. In these deployments, multiple service instances are replicated across various sites to ensure sufficient capacity for maintaining the required Quality of Experience (QoE) expected by the application. To support the selection of these instances, a framework called Computing-Aware Traffic Steering (CATS) is introduced in <xref target="I-D.ietf-cats-framework"/>.</t>
      <t>CATS is a traffic engineering approach that optimizes the steering of traffic to a given service instance by considering the dynamic nature of computing and network resources. To achieve this, CATS components require performance metrics for both communication and compute resources. Since these resources are deployed by multiple providers, standardized metrics are essential to ensure interoperability and enable precise traffic steering decisions, thereby optimizing resource utilization and enhancing overall system performance.</t>
      <t>Metrics from network domain have already been defined in previous documents, e.g., RFC 9439, RFC 8912，and RFC 8911, and been in use in network systems for a long time. This document focuses on categorizing the relevant metrics at computing domain for CATS into three levels based on their complexity and granularity.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>This document uses the following terms defined in <xref target="I-D.ietf-cats-framework"/>:</t>
      <ul spacing="normal">
        <li>
          <t>Computing-Aware Traffic Steering (CATS)</t>
        </li>
        <li>
          <t>Service</t>
        </li>
        <li>
          <t>Service contact instance</t>
        </li>
      </ul>
    </section>
    <section anchor="definition-of-metrics">
      <name>Definition of Metrics</name>
      <t>Introducing a definition of metrics requires balancing the following trade-off: if the metrics are too fine-grained, they become unscalable due to the excessive number of metrics that must be communicated through the metrics distribution protocol. (See <xref target="I-D.rcr-opsawg-operational-compute-metrics"/> for a discussion of metrics distribution protocols.) Conversely, if the metrics are too coarse-grained, they may lack the necessary information to make informed decisions. To ensure scalability while providing sufficient detail for effective decision-making, this document provides a definition of metrics that incorporates three levels of abstraction:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Level 0 (L0): Raw metrics.</strong> These metrics are presented without abstraction, with each metric using its own unit and format as defined by the underlying resource.</t>
        </li>
        <li>
          <t><strong>Level 1 (L1): Normalized metrics in categories.</strong> These metrics are derived by aggregating L0 metrics into multiple categories, such as network, computing, and storage. Each category is summarized with a single L1 metric by normalizing it into a value within a defined range of scores.</t>
        </li>
        <li>
          <t><strong>Level 2 (L2): Fully normalized metric.</strong> These metrics are derived by aggregating lower level metrics (L0 or L1) into a single L2 metric, which is then normalized into a value within a defined range of scores.</t>
        </li>
      </ul>
      <section anchor="level-0-raw-metrics">
        <name>Level 0: Raw Metrics</name>
        <t>Level 0 metrics encompass detailed, raw metrics, including but not limit to:</t>
        <ul spacing="normal">
          <li>
            <t>CPU: Base Frequency, boosted frequency, number of cores, core utilization, memory bandwidth, memory size, memory utilization, power consumption.</t>
          </li>
          <li>
            <t>GPU: Frequency, number of render units, memory bandwidth, memory size, memory utilization, core utilization, power consumption.</t>
          </li>
          <li>
            <t>NPU: Computing power, utilization, power consumption.</t>
          </li>
          <li>
            <t>Network: Bandwidth, capacity, throughput, transmit bytes, receive bytes, host bus utilization.</t>
          </li>
          <li>
            <t>Storage: Available space, read speed, write speed.</t>
          </li>
          <li>
            <t>Delay: Time taken to process a request.</t>
          </li>
        </ul>
        <t>L0 metrics serve as foundational data and do not require classification. They provide basic information that supports higher-level metrics, which will be detailed in the following sections.</t>
        <t>L0 metrics can be encoded into an Application Programming Interface (API), such as a RESTful API, and can be solution-specific. Different resources can have their own metrics, each conveying unique information about their status. These metrics can generally have units, such as bits per second (bps) or floating point instructions per second (flops).</t>
        <t>Regarding network-related information, <xref target="RFC8911"/> and <xref target="RFC8912"/> have defined various performance metrics and their registries. Additionally, in <xref target="RFC9439"/>, the ALTO WG has introduced an extended set of metrics related to packet performance and throughput/bandwidth. For compute metrics, <xref target="I-D.rcr-opsawg-operational-compute-metrics"/> lists a set of cloud resource metrics.</t>
      </section>
      <section anchor="level-1-normalized-metrics-in-categories">
        <name>Level 1: Normalized Metrics in Categories</name>
        <t>L1 metrics are organized into distinct categories, such as computing, communication, and composed metrics. Each L0 metric is classified into one of these categories. Within each category, a single L1 metric is computed using an <em>aggregation function</em> and normalized to a unitless score that represents the performance of the underlying resources according to that category. Potential categories include:</t>
        <!-- JRG Note: TODO, define aggregation and normalization function -->

<ul spacing="normal">
          <li>
            <t><strong>Computing:</strong> A normalized value derived from computing-related L0 metrics, such as CPU, GPU, and NPU metrics.</t>
          </li>
          <li>
            <t><strong>Communication:</strong> A normalized value derived from communication-related L0 metrics.</t>
          </li>
          <li>
            <t><strong>Composed:</strong> A normalized value derived from an end-to-end aggregation function by levaraging both computing and communication metrics. For example, delay is the sum of all delays along the path.</t>
          </li>
        </ul>
        <t>Editor note: detailed categories can be updated according to the CATS WG discussion.</t>
        <t>The L0 metrics, such as those defined in <xref target="RFC8911"/>, <xref target="RFC8912"/>, <xref target="RFC9439"/>, and <xref target="I-D.rcr-opsawg-operational-compute-metrics"/>, can be categorized into the aforementioned categories. Each category will employ its own aggregation function (e.g., weighted summary) to generate the normalized value. This approach allows the protocol to focus solely on the metric categories and their normalized values, thereby avoiding the need to process solution-specific detailed metrics.</t>
      </section>
      <section anchor="level-2-fully-normalized-metric">
        <name>Level 2: Fully Normalized Metric.</name>
        <t>The L2 metric is a single score value derived from the lower level metrics (L0 or L1) using an aggregation function. Different implementations may employ different aggregation functions to characterize the overall performance of the underlying compute and communication resources. The definition of the L2 metric simplifies the complexity of collecting and distributing numerous lower-level metrics by consolidating them into a single, unified score.</t>
        <t>TODO: Some implementations may support configuration of Ingress CATS-Forwarders with the metric normalizing method so that it can decode the information from the L1 or L0 metrics.</t>
        <t>Figure 1 shows the logic of metrics in Level 0, Level 1, and Level 2.</t>
        <figure anchor="fig-metric-levels">
          <name>Logic of CATS Metrics in levels</name>
          <artwork><![CDATA[
                                    +--------+
                         L2 Metric: |   M2   |
                                    +---^----+
                                        |
                    +-------------+-----+-----+------------+
                    |             |           |            |
                +---+----+        |       +---+----+   +---+----+
    L1 Metrics: |  M1-1  |        |       |  M1-2  |   |  M1-3  | (...)
                +---^----+        |       +---^----+   +----^---+
                    |             |           |             |
               +----+---+         |       +---+----+        |
               |        |         |       |        |        |
            +--+---+ +--+---+ +---+--+ +--+---+ +--+---+ +--+---+
 L0 Metrics:| M0-1 | | M0-2 | | M0-3 | | M0-4 | | M0-5 | | M0-6 | (...)
            +------+ +------+ +------+ +------+ +------+ +------+

]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="representation-of-metrics">
      <name>Representation of Metrics</name>
      <t>The representation of metrics is a key component of the CATS architecture. It defines how metrics are encoded and transmitted over the network. The representation should be flexible enough to accommodate different types of metrics and their associated units and precisions.</t>
      <t>This section includes the detailed representation of the CATS metrics. The design follows similar principles used in other similar IETF specifications, such as the network performance metrics defined in <xref target="RFC9439"/>.</t>
      <section anchor="cats-metric-fields">
        <name>CATS Metric Fields</name>
        <t>A CATS metric is represented using a set of fields, each describing a property of the metric. The following fields are introduced:</t>
        <!-- JRG Note and TODO: Define each of the types, formats, etc.. Do we need to standardize them? -->
<figure anchor="fig-metric-def">
          <name>CATS Metric Fields</name>
          <artwork><![CDATA[
- Cats_metric:
      - Metric_type:
            The type of the CATS metric.
            Examples: compute_cpu, storage_disk_size, network_bw,
            compute_delay, network_delay, compute_norm,
            storage_norm, network_norm, delay_norm.
      - Format_std (optional):
            The standard used to encode and decode the value
            field according to the format field. This field is
            optional and only required if the value field is
            encoded using a standard, and knowing the standard
            is necessary to decode the value field.
            Example: ieee_754, ascii.
      - Format:
            The encoding format of the metric.
            Examples: int, float.
      - Length:
            The size of the value field measured in octets.
            Examples: 2, 4, 8, 16, 32, 64.
      - Unit:
            The unit of this metric.
            Examples: mhz, ghz, byte, kbyte, mbyte,
            gbyte, bps, kbps, mbps, gbps, tbps, tflops, none.
      - Source (optional):
            The source of information used to obtain.
            Examples: nominal, estimation, normalization,
            aggregation.
      - Statistics(optional):
            Statistical value of metrics.
            Examples: max, min, mean, cur.
      - Level:
            The level this metric belongs to.
            Examples: L0, L1, L2.
      - Value:
            The value of this metric.
            Examples: 12, 3.2.
]]></artwork>
        </figure>
        <t>Next, we describe each field in more detail:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Metric_Type (type)</strong>: This field specifies the category or kind of CATS metric being measured, such as computational resources, storage capacity, or network bandwidth. It serves as a label for network devices to recognize what the metric is.</t>
          </li>
          <li>
            <t><strong>Format standard (format_std, optional)</strong>: This optional field indicates the standard used to encode and decode the value field according to the format field. It is only required if the value field is encoded using a specific standard, and knowing this standard is necessary to decode the value field. Examples of format standards include ieee_754 and ascii. This field ensures that the value can be accurately interpreted by specifying the encoding method used.</t>
          </li>
          <li>
            <t><strong>Format (format)</strong>: This field indicates the data encoding format of the metric, such as whether the value is represented as an integer, a floating-point number, or has no specific format.</t>
          </li>
          <li>
            <t><strong>Length (length)</strong>: This field indicates the size of the value field measured in octets (bytes). It specifies how many bytes are used to store the value of the metric. Examples include 4, 8, 16, 32, and 64. The length field is important for memory allocation and data handling, ensuring that the value is stored and retrieved correctly.</t>
          </li>
          <li>
            <t><strong>Unit (unit)</strong>: This field defines the measurement units for the metric, such as frequency, data size, or data transfer rate. It is usually associated with the metric to provide context for the value.</t>
          </li>
          <li>
            <t><strong>Source (source, optional)</strong>: This field describes the origin of the information used to obtain the metric:  </t>
            <ul spacing="normal">
              <li>
                <t>'nominal'. Similar to <xref target="RFC9439"/>, "a 'nominal' metric indicates that the metric value is statically configured by the underlying devices.  Not all metrics have reasonable "nominal" values.  For example, throughput can have a nominal value, which indicates the configured transmission rate of the involved devices.</t>
              </li>
              <li>
                <t>'estimation'. The 'estimation' source indicates that the metric value is computed through an estimation process.</t>
              </li>
              <li>
                <t>'directly measured'. This source indicates that the metric can be obtained directly from the underlying device. The value can be dynamic and it does not need to be estimated.</t>
              </li>
              <li>
                <t>'normalization'. The 'normalization' source indicates that the metric value was normalized. For instance, a metric could be normalized to take a value from 0 to 1, from 0 to 10, or to take a percentage value. This type of metrics do not have units.</t>
              </li>
              <li>
                <t>'aggregation'. This source indicates that the metric value was obtained by using an aggregation function.</t>
              </li>
            </ul>
            <t>
Nominal metrics have inherent physical meanings and specific units without any additional processing. Aggregated metrics may or may not have physical meanings, but they retain their significance relative to the directly measured metrics. Normalized metrics, on the other hand, might have physical meanings but lack units; they are simply numerical values used for making node and path selection decisions.</t>
          </li>
          <li>
            <t><strong>Statistics (statistics, optional)</strong>: This field provides additional details about the metrics, particularly if there is any pre-computation performed on the metrics before they are collected. It is useful for services that require specific statistics for service instance selection.  </t>
            <ul spacing="normal">
              <li>
                <t>'max'. The maximum value of the data collected over intervals.</t>
              </li>
              <li>
                <t>'min'. The minimum value of the data collected over intervals.</t>
              </li>
              <li>
                <t>'mean'. The average value of the data collected over intervals.</t>
              </li>
              <li>
                <t>'cur'. The current value of the data collected.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><strong>Value (value)</strong>: This field represents the actual numerical value of the metric being measured. It provides the specific data point for the metric in question.</t>
          </li>
        </ul>
      </section>
      <section anchor="level-0-metric-representation">
        <name>Level 0 Metric Representation</name>
        <t>Several definitions have been developed within the compute and communication industry and through various standardizations, such as those by the <xref target="DMTF"/>, that could be used as L0 metrics. In this section, we provide examples.</t>
        <t>The sources of L0 metrics can be nominal, directly measured, estimated, or aggregated. Nominal L0 metrics are initially provided by resource providers. Dynamic L0 metrics are measured or estimated during the service stage. Additionally, L0 metrics support aggregation when there are multiple service instances.</t>
        <t>L0 metrics also support the statistics defined in section 4.1.</t>
        <!-- TODO: next step would be to update the examples once we agree with (and update as necessary) the above changes regarding the CATS metric specification. -->

<section anchor="compute-raw-metrics">
          <name>Compute Raw Metrics</name>
          <t>This section takes CPU frequency as an example to show the representation of compute raw metrics. The metric type of CPU frequency is named as “compute_type_CPU_frequency”. Its unit is GHZ. The format should support unsigned integer or floating point. The metric fields are shown as follows:</t>
          <figure anchor="fig-compute-raw-metric">
            <name>An Example for Compute Raw Metrics</name>
            <artwork><![CDATA[
Basic fields:
      Metric Type: “compute type_CPU_frequency”
      Level: L0
      Format: unsigned integer, floating point
      Unit: GHZ
      Length: four octets
      Value: 2.2
Source:
      nominal

|Metric Type|Level|Format| Unit|Length| Value|Source|
    8bits    2bits  1bit  4bits  3bits 32bits  3bits   
]]></artwork>
          </figure>
        </section>
        <section anchor="communication-raw-metrics">
          <name>Communication Raw Metrics</name>
          <t>This section takes the total transmitted bytes (TxBytes) as an example to show the representation of communication raw metrics. TxBytes are named as "communication type_TxBytes”. The unit is Mega Bytes (MB). Format is unsigned integer or floating point. It will occupy 4 octets. The source of the metric is "Directly measured" and the statistics is "mean". Example:</t>
          <figure anchor="fig-network-raw-metric">
            <name>An Example for Communication Raw Metrics</name>
            <artwork><![CDATA[
Basic fields:
      Metric type: “communication type_TXBytes”
      Level: L0
      Format: unsigned integer, floating point
      Unit: MB
      Length: four octets
      Value: 100
Source:
      Directly measured
Statistics:
      mean

|Metric Type|Level|Format| Unit|Length| Value|Source|Statistics|
    8bits    2bits  1bit  4bits  3bits 32bits  3bits   2bits   
]]></artwork>
          </figure>
        </section>
        <section anchor="delay-raw-metrics">
          <name>Delay Raw Metrics</name>
          <t>Delay is a kind of synthesized metric which is influenced by computing, storage access, and network transmission. Usually delay refers to the overal processing duration between the arrival time of a specific service request and the departure time of the corresponding service response. It is named as "delay_raw". The format should support both unsigned integer or floating point. Its unit is microseconds, and it occupies 4 octets. For example:</t>
          <figure anchor="fig-delay-raw-metric">
            <name>An Example for Delay Raw Metrics</name>
            <artwork><![CDATA[
Basic fields:
      Metric type: “delay_raw”
      Level: L0
      Format: unsigned integer, floating point
      Unit: Microsecond(us)
      Length: four octets
      Value: 231.5
Source:
      aggregation
Statistics:
      max

|Metric Type|Level|Format| Unit|Length| Value|Source|Statistics|
    8bits    2bits  1bit  4bits  3bits 32bits  3bits   2bits   
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="level-1-metric-representation">
        <name>Level 1 Metric Representation</name>
        <t>L1 metrics are normalized from L0 metrics. Although they don't have units, they can still be classified into types such as compute, communication and composed metrics. This classification is useful because it makes L1 metrics semantically meaningful.</t>
        <t>The sources of L1 metrics is normalization. Based on L0 metrics, service providers design their own algorithms to normalize metrics. For example, assigning different cost values to each raw metric and do weighted sum. L1 metrics do not need further statistical values.</t>
        <section anchor="normalized-compute-metrics">
          <name>Normalized Compute Metrics</name>
          <t>The metric type of normalized compute metrics is “compute_norm”, and its format is unsigned integer. It has no unit. It will occupy an octet. Example:</t>
          <figure anchor="fig-normalized-compute-metric">
            <name>An Example for Normalized Compute Metrics</name>
            <artwork><![CDATA[
Basic fields:
      Metric type: “compute_norm”
      Level: L1
      Format: unsigned integer
      Length: one octet
      Value: 5
Source:
      normalization


|Metric Type|Level|Format|Length|Value|Source|
    8bits    2bits  1bit   3bits 8bits  3bits   
]]></artwork>
          </figure>
        </section>
        <section anchor="normalized-communication-metrics">
          <name>Normalized Communication Metrics</name>
          <t>The metric type of normalized communication metrics is “communication_norm”, and its format is unsigned integer. It has no unit. It will occupy an octet. Example:</t>
          <figure anchor="fig-normalized-communication-metric">
            <name>An Example for Normalized Communication Metrics</name>
            <artwork><![CDATA[
Basic fields:
      Metric type: “communication_norm”
      Level: L1
      Format: unsigned integer
      Length: one octet
      Value: 1
Source:
      normalization

|Metric Type|Level|Format|Length|Value|Source|
    8bits    2bits  1bit   3bits 8bits  3bits 

]]></artwork>
          </figure>
        </section>
        <section anchor="normalized-composed-metrics">
          <name>Normalized Composed Metrics</name>
          <t>The metric type of normalized composed metrics is “delay_norm”, and its format is unsigned integer.  It has no unit.  It will occupy an octet. Example:</t>
          <figure anchor="fig-normalized-metric">
            <name>An Example for Normalized Composed Metrics</name>
            <artwork><![CDATA[
Basic fields:
      Metric type: “composed_norm”
      Level: L1
      Format: unsigned integer
      Length: an octet
      Value: 8
Source:
      normalization

|Metric Type|Level|Format|Length|Value|Source|
    8bits    2bits  1bit   3bits 8bits  3bits 
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="level-2-metric-representation">
        <name>Level 2 Metric Representation</name>
        <t>A fully normalized metric is a single value which does not have any physical meaning or unit.  Each provider may have its own methods to derive the value, but all providers must follow the definition in this section to represent the fully normalized value.</t>
        <t>Metric type is “norm_fi”. The format of the value is unsigned integer. It has no unit. It will occupy an octet. Example:</t>
        <figure anchor="fig-level-2-metric">
          <name>An Example for Fully Normalized Metric</name>
          <artwork><![CDATA[
Basic fields:
      Metric type: “norm_fi”
      Level: L2
      Format: unsigned integer
      Length: an octet
      Value: 1
Source:
      normalization

|Metric Type|Level|Format|Length|Value|Source|
    8bits    2bits  1bit   3bits 8bits  3bits 
]]></artwork>
        </figure>
        <t>The fully normalized value also supports aggregation when there are multiple service instances providing these fully normalized values. When providing fully normalized values, service instances do not need to do further statistics.</t>
      </section>
    </section>
    <section anchor="comparison-among-metric-levels">
      <name>Comparison among Metric Levels</name>
      <t>Metrics are consolidated from L0 to L1 to L2, with different levels of abstraction meeting the requirements of various services. Table 1 provides a comparison among the metric levels.</t>
      <table anchor="comparison">
        <name>Comparison among Metrics Levels</name>
        <thead>
          <tr>
            <th align="center">Level</th>
            <th align="left">Encoding Complexity</th>
            <th align="left">Extensibility</th>
            <th align="left">Stability</th>
            <th align="left">Accuracy</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center">Level 0</td>
            <td align="left">Complicated</td>
            <td align="left">Bad</td>
            <td align="left">Bad</td>
            <td align="left">Good</td>
          </tr>
          <tr>
            <td align="center">Level 1</td>
            <td align="left">Medium</td>
            <td align="left">Medium</td>
            <td align="left">Medium</td>
            <td align="left">Medium</td>
          </tr>
          <tr>
            <td align="center">Level 2</td>
            <td align="left">Simple</td>
            <td align="left">Good</td>
            <td align="left">Good</td>
            <td align="left">Medium</td>
          </tr>
        </tbody>
      </table>
      <t>Since Level 0 metrics are raw metrics, therefore, different services may have their own metrics, resulting in hundreds or thousands of metrics in total, this brings huge complexity in protocol encoding and standardization. Therefore, this kind of metrics are always used in customized IT systems case by case. In Level 1 metrics, metrics are categorized into several categories and each category is normalized into a value, therefore they can be encoded into the protocol and standardized. Regarding the Level 2 metrics, all the metrics are normalized into one single metric, it is easier to be encoded in protocol and standardized. Therefore, from the encoding complexity aspect, Level 2 and Level 1 metrics are suggested.</t>
      <t>Similarly, when considering extensibility, new services can define their own new L0 metrics, which requires protocol to be extended as needed. Too many metrics type can create a lot of overhead to the protocol resulting in a bad extensibility of the protocol. Level 1 introduce only several metrics categories, which is acceptable for protocol extension. Level 2 metric only need one single metric, so it brings least burden to the protocol. Therefore, from the extensibility aspect, Level 2 and Level 1 metrics are suggested.</t>
      <t>Regarding Stability, new Level 0 raw metrics may require new extension in protocol, which brings unstable format for protocol, therefore, this document does not recommend to standardize Level 0 metrics in protocol. Level 1 metrics request only few categories, and Level 2 Metric only introduce one metric to the protocol, so they are preferred from the stability aspect.</t>
      <t>In conclusion, for CATS, it is recommended to use L2 metrics due to its simplicity. If advanced scheduling is needed, L1 metrics can be used. L0 metrics are the most comprehensive and dynamic, therefore transferring them to network devices is discouraged due to their high overhead.</t>
    </section>
    <section anchor="implementation-guidance-on-using-cats-metrics">
      <name>Implementation Guidance on Using CATS Metrics</name>
      <t>This section gives some implementation guidance and provide some options for different service providers and vendors on how to use CATS metrics. The intention is to facilitate interoperability as well as achieving good effects for CATS, especially when L2 metrics are used for making decisions.</t>
      <t>As is shown in CATS framework <xref target="I-D.ietf-cats-framework"/>,  there are multiple CATS components. In addition to their different functionalities, their resources and processing capabilities differ a lot as well. All of these factors must be taken into considerations when choosing where to locate the normalization functions and aggregation functions that are used to derive L2 metrics.</t>
      <t>The intuition is to put the normalization and aggregation functions away from the decision maker, CATS Path Selector (C-PS), especially when C-PS is co-located with CATS-Forwarders. With this in mind, the normalization and aggregation functions of CATS metrics can be placed at Service contact instance or CATS Service Metric Agent (C-SMA).</t>
      <t>Since C-SMA maybe co-located with CATS-Forwarders where there are limited resources for processing, the placement of normalization functions in C-SMA will incur much overhead and may influence the routing efficiency. This document suggest that the aggregation functions be placed at C-SMA while normalization functions as well as aggregation functions can be both placed at service contact instances.</t>
      <t>Since service contact instances and C-SMAs may be provided by different vendors. There is a need to agree on a common normalization function and aggregation functions that are used for traffic steering, otherwise it might not be accurate for instance selection.</t>
      <t>Editor notes: 
Other considerations on the implementation guidance will be supplemented progressively. this draft can be updated according to the discussion of metric definition in CATS WG.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-cats-framework">
          <front>
            <title>A Framework for Computing-Aware Traffic Steering (CATS)</title>
            <author fullname="Cheng Li" initials="C." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Zongpeng Du" initials="Z." surname="Du">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <author fullname="John Drake" initials="J." surname="Drake">
              <organization>Juniper Networks, Inc.</organization>
            </author>
            <date day="10" month="February" year="2025"/>
            <abstract>
              <t>   This document describes a framework for Computing-Aware Traffic
   Steering (CATS).  Specifically, the document identifies a set of CATS
   components, describes their interactions, and provides illustrative
   workflows of the control and data planes.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cats-framework-05"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="performance-metrics" target="https://www.iana.org/assignments/performance-metrics/performance-metrics.xhtml">
          <front>
            <title>performance-metrics</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="DMTF" target="https://www.dmtf.org/">
          <front>
            <title>DMTF</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.rcr-opsawg-operational-compute-metrics">
          <front>
            <title>Joint Exposure of Network and Compute Information for Infrastructure-Aware Service Deployment</title>
            <author fullname="Sabine Randriamasy" initials="S." surname="Randriamasy">
              <organization>Nokia Bell Labs</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Jordi Ros-Giralt" initials="J." surname="Ros-Giralt">
              <organization>Qualcomm Europe, Inc.</organization>
            </author>
            <author fullname="Roland Schott" initials="R." surname="Schott">
              <organization>Deutsche Telekom</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   Service providers are starting to deploy computing capabilities
   across the network for hosting applications such as distributed AI
   workloads, AR/VR, vehicle networks, and IoT, among others.  In this
   network-compute environment, knowing information about the
   availability and state of the underlying communication and compute
   resources is necessary to determine both the proper deployment
   location of the applications and the most suitable servers on which
   to run them.  Further, this information is used by numerous use cases
   with different interpretations.  This document proposes an initial
   approach towards a common exposure scheme for metrics reflecting
   compute and communication capabilities.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rcr-opsawg-operational-compute-metrics-08"/>
        </reference>
        <reference anchor="RFC8911">
          <front>
            <title>Registry for Performance Metrics</title>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <author fullname="P. Eardley" initials="P." surname="Eardley"/>
            <author fullname="A. Morton" initials="A." surname="Morton"/>
            <author fullname="A. Akhter" initials="A." surname="Akhter"/>
            <date month="November" year="2021"/>
            <abstract>
              <t>This document defines the format for the IANA Registry of Performance
Metrics. This document also gives a set of guidelines for Registered
Performance Metric requesters and reviewers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8911"/>
          <seriesInfo name="DOI" value="10.17487/RFC8911"/>
        </reference>
        <reference anchor="RFC8912">
          <front>
            <title>Initial Performance Metrics Registry Entries</title>
            <author fullname="A. Morton" initials="A." surname="Morton"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="P. Eardley" initials="P." surname="Eardley"/>
            <author fullname="K. D'Souza" initials="K." surname="D'Souza"/>
            <date month="November" year="2021"/>
            <abstract>
              <t>This memo defines the set of initial entries for the IANA Registry of
Performance Metrics. The set includes UDP Round-Trip Latency and
Loss, Packet Delay Variation, DNS Response Latency and Loss, UDP
Poisson One-Way Delay and Loss, UDP Periodic One-Way Delay and Loss,
ICMP Round-Trip Latency and Loss, and TCP Round-Trip Delay and Loss.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8912"/>
          <seriesInfo name="DOI" value="10.17487/RFC8912"/>
        </reference>
        <reference anchor="RFC9439">
          <front>
            <title>Application-Layer Traffic Optimization (ALTO) Performance Cost Metrics</title>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="Y. Yang" initials="Y." surname="Yang"/>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <author fullname="D. Dhody" initials="D." surname="Dhody"/>
            <author fullname="S. Randriamasy" initials="S." surname="Randriamasy"/>
            <author fullname="L. Contreras" initials="L." surname="Contreras"/>
            <date month="August" year="2023"/>
            <abstract>
              <t>The cost metric is a basic concept in Application-Layer Traffic
Optimization (ALTO), and different applications may use different
types of cost metrics. Since the ALTO base protocol (RFC 7285)
defines only a single cost metric (namely, the generic "routingcost"
metric), if an application wants to issue a cost map or an endpoint
cost request in order to identify a resource provider that offers
better performance metrics (e.g., lower delay or loss rate), the base
protocol does not define the cost metric to be used.</t>
              <t>This document addresses this issue by extending the specification to
provide a variety of network performance metrics, including network
delay, delay variation (a.k.a. jitter), packet loss rate, hop count,
and bandwidth.</t>
              <t>There are multiple sources (e.g., estimations based on measurements
or a Service Level Agreement) available for deriving a performance
metric. This document introduces an additional "cost-context" field
to the ALTO "cost-type" field to convey the source of a performance
metric.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9439"/>
          <seriesInfo name="DOI" value="10.17487/RFC9439"/>
        </reference>
      </references>
    </references>
    <?line 461?>


    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="M." surname="Boucadair" fullname="Mohamed Boucadair">
        <organization>Orange</organization>
        <address>
          <email>mohamed.boucadair@orange.com</email>
        </address>
      </contact>
      <contact initials="Z." surname="Du" fullname="Zongpeng Du">
        <organization>China Mobile</organization>
        <address>
          <email>duzongpeng@chinamobile.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
/2OJhczf3L3zPzNzZTonagAA

-->

</rfc>
