<?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.1 (Ruby 2.7.0) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rcr-opsawg-operational-compute-metrics-06" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="TODO - Abbreviation">Joint Exposure of Network and Compute Information for Infrastructure-Aware Service Deployment</title>
    <seriesInfo name="Internet-Draft" value="draft-rcr-opsawg-operational-compute-metrics-06"/>
    <author fullname="S. Randriamasy">
      <organization>Nokia Bell Labs</organization>
      <address>
        <email>sabine.randriamasy@nokia-bell-labs.com</email>
      </address>
    </author>
    <author fullname="L. M. Contreras">
      <organization>Telefonica</organization>
      <address>
        <email>luismiguel.contrerasmurillo@telefonica.com</email>
      </address>
    </author>
    <author fullname="Jordi Ros-Giralt">
      <organization>Qualcomm Europe, Inc.</organization>
      <address>
        <email>jros@qti.qualcomm.com</email>
      </address>
    </author>
    <author fullname="Roland Schott">
      <organization>Deutsche Telekom</organization>
      <address>
        <email>Roland.Schott@telekom.de</email>
      </address>
    </author>
    <date year="2024" month="July" day="07"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 86?>

<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>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://giralt.github.io/draft-rcr-opsawg-operational-compute-metrics/draft-rcr-opsawg-operational-compute-metrics.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-rcr-opsawg-operational-compute-metrics/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/giralt/draft-rcr-opsawg-operational-compute-metrics"/>.</t>
    </note>
  </front>
  <middle>
    <?line 99?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Operators are starting to deploy distributed computing environments
in different parts of the network that must support a variety of
applications with different performance needs such as latency, bandwidth,
compute power, storage, energy, etc.
This translates in the emergence of distributed compute resources
(both in the cloud and at the edge) with a variety of sizes
(e.g., large, medium, small) characterized by
distinct dimensions of CPUs, memory, and storage capabilities, as well
as bandwidth capacity for forwarding the traffic generated in and out
of the corresponding compute resource.</t>
      <t>The proliferation of the edge computing paradigm further increases
the potential footprint and heterogeneity of the environments where a
function or application can be deployed, resulting in different
unitary cost per CPU, memory, and storage. This increases the
complexity of deciding the location where a given function or
application should be best deployed or executed.
On the one hand, this decision should be jointly
influenced by the available resources in a given computing
environment and, on the other, by the capabilities of the network
path connecting the traffic source with the destination.</t>
      <t>Network and compute-aware application placement and service selection has become
of utmost importance in the last decade. The availability of such information
is taken for granted by the numerous service providers and bodies that are specifying them.
However, distributed computational resources often run different
implementations with different understandings and representations of
compute capabilities, which poses a challenge to the application placement
and service selection problems. While standardization
efforts on network capabilities representation and exposure are well advanced,
similar efforts on compute capabilitites are in their infancy.</t>
      <t>This document proposes an initial approach towards  a common understanding
and exposure scheme for metrics reflecting compute capabilities.
It aims at leveraging existing work in the IETF on compute metrics definitions to build synergies.
It also aims at reaching out to working or research groups in the IETF that would consume such information and have particular requirements.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<!-- # Motivations

TODO TEST
ANOTHE CHANGE + COMMENTS
CHANGE 2 -->

</section>
    <section anchor="problem-space-and-needs">
      <name>Problem Space and Needs</name>
      <t>Visibility and exposure of both (1) network and (2) compute
resources to the application is critical to
enable a proper functioning of the new class of services
arising at the edge (e.g., distributed AI, driverless vehicles,
AR/VR, etc.). To understand the problem space and the capabilities
that are lacking in today's protocol interfaces needed to enable
these new services, we focus on the life cycle of
a service.</t>
      <t>At the edge, compute nodes
are deployed near communication nodes (e.g., co-located
in a 5G base station) to provide computing services that are
close to users with the goal to (1) reduce latency, (2) increase
communication bandwidth, (3) increase reliability, (4) enable privacy
nd security, (5) enable personalization, and (6) reduce cloud costs and
energy consumption. Services are deployed on the communication and compute
infrastructure through a two-phase life cycle that involves first a
service <em>deployment stage</em> and then a <em>service selection</em> stage
(<xref target="lifecycle"/>).</t>
      <figure anchor="lifecycle">
        <name>Service life cycle.</name>
        <artwork><![CDATA[
 +-------------+      +--------------+      +-------------+
 |             |      |              |      |             |
 |  New        +------>  Service     +------>  Service    |
 |  Service    |      |  Deployment  |      |  Selection  |
 |             |      |              |      |             |
 +-------------+      +--------------+      +-------------+
]]></artwork>
      </figure>
      <!--
In this Section, we introduce the life cycle of a
service as a simple framework to understand the capabilities
that are lacking in today's protocol interfaces and that are necessary for
these new services. -->

<t><strong>Service deployment.</strong> This phase is carried out by the service
provider and involves the deployment of a new service
(e.g., a distributed AI training/inference, an XR/AR service, etc.)
on the communication and compute infrastructure. The service
provider needs to properly size the amount of communication and compute
resources assigned to this new service to meet the expected user
demand. The decision on where the service is deployed and how
many resources are requested from the infrastructure depends on
the levels of Quality of Experience (QoE)
that the provider wants to guarantee to the
users of the service. To make a proper deployment decision, the provider
must have visibility on the resources available within
the infrastructure, including communication (e.g., link
bandwidth and latency) and compute
(e.g., CPU, GPU, memory and storage capacity) resources. For instance,
to run a Large Language Model (LLM) with 175 billion parameters, a total
aggregated memory of 350GB and 5 GPUs may be needed <xref target="LLM_COMP_REQ"/>.
The service provider needs
an interface to query the infrastructure, extract the available compute
and communication resources, and decide which subset of resources are
needed to run the service.</t>
      <t><strong>Service selection.</strong> This phase is initiated by the user, through
a client application that connects to the deployed service. There
are two main decisions that must be performed in the service selection
stage: compute node selection and path selection. In the compute node selection
step, as the service is generally replicated in
N locations (e.g., by leveraging a microservice architecture),
the application must decide which of the service replicas
it connects to. Similar to the service deployment stage, this
decision requires knowledge about communication and compute
resources available in each replica. On the other hand, in the path selection decision,
the application must decide which path it chooses to connect to the service.
This decision depends on the communication properties (e.g., bandwidth and latency)
of the available paths. Similar to the service deployment case,
the service provider needs an interface to query the infrastructure and extract the available compute
and communication resources, with the goal to make informed node and path selection decisions.
It is also important to note that, ideally, the node and path selection
decisions should be jointly optimized, since in general the best end-to-end performance
is achieved by jointly taking into account both decisions. In some cases, however,
such decisions may be owned by different players. For instance, in some network
environments, the path selection may be decided by the network operator,
wheres the compute node selection may be decided by the application. Even in these cases,
it is crucial to have a proper interface (for both the network operator and the service
provider) to query the available compute and communication resources from the system.</t>
      <t><xref target="prob_space"/> summarizes the problem space, the information that needs to be exposed, and the stakeholders that need this information.</t>
      <table anchor="prob_space">
        <name>Problem space, needs, and stakeholders.</name>
        <thead>
          <tr>
            <th align="right">Action to take</th>
            <th align="center">Information needed</th>
            <th align="left">Who needs it</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">Service placement</td>
            <td align="center">Compute and communication</td>
            <td align="left">Service provider</td>
          </tr>
          <tr>
            <td align="right">Service selection/node selection</td>
            <td align="center">Compute and communication</td>
            <td align="left">Network/service provider and/or application</td>
          </tr>
          <tr>
            <td align="right">Service selection/path selection</td>
            <td align="center">Communication</td>
            <td align="left">Network/service and/or application</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <section anchor="distributed-ai-workloads">
        <name>Distributed AI Workloads</name>
        <t>Generative AI is a technological feat that opens up many applications such as holding
conversations, generating art, developing a research paper, or writing software, among
many others. Yet this innovation comes with a high cost in terms of processing and power
consumption. While data centers are already running at capacity, it is projected
that transitioning current search engine queries to leverage generative AI will
increase costs by 10 times compared to traditional search methods <xref target="DC-AI-COST"/>. As (1) computing
nodes (CPUs, GPUs, and NPUs) are deployed to build the edge cloud leveraging
technologies like 5G and (2) with billions of mobile user devices globally providing a large
untapped computational platform, shifting part of the processing from the cloud to the
edge becomes a viable and necessary step towards enabling the AI-transition.
There are at least four drivers supporting this trend:</t>
        <ul spacing="normal">
          <li>
            <t>Computational and energy savings: Due to savings from not needing
large-scale cooling systems and the high performance-per-watt
efficiency of the edge devices, some workloads can run at the edge
at a lower computational and energy cost <xref target="EDGE-ENERGY"/>, especially when
considering not only processing but also data transport.</t>
          </li>
          <li>
            <t>Latency: For applications such as driverless vehicles which require real-time
inference at very low latency, running at the edge is necessary.</t>
          </li>
          <li>
            <t>Reliability and performance: Peaks in cloud demand for generative AI queries can
create large queues and latency, and in some cases even lead to denial of service.
Further, limited or no connectivity generally requires running the workloads at the edge.</t>
          </li>
          <li>
            <t>Privacy, security, and personalization: A "private mode" allows users to strictly
utilize on-device (or near-the-device) AI to enter sensitive prompts to chatbots,
such as health questions or confidential ideas.</t>
          </li>
        </ul>
        <t>These drivers lead to a distributed computational model that is hybrid: Some AI workloads
will fully run in the cloud, some will fully run in the edge, and some will run both in the
edge and in the cloud. Being able to efficiently run these workloads in this hybrid,
distributed, cloud-edge environment is necessary given the aforementioned massive energy
and computational costs. To make optimized service and workload placement decisions, information
about both the compute and communication resources available in the network is necessary too.</t>
        <t>Consider as an example a large language model (LLM) used to generate text and hold intelligent
conversations. LLMs produce a single token per inference,
where a token is a set of characters forming words or fractions of words.
Pipelining and parallelization techniques are used to optimize inference, but
this means that a model like GPT-3 could potentially go through all 175 billion parameters
that are part of it to generate a single word. To efficiently run these computational-intensive
workloads, it is necessary to know the availability of compute resources in the distributed
system. Suppose that a user is driving a car while conversing with an AI model. The model
can run inference on a variety of compute nodes, ordered from lower to higher compute power
as follows: (1) the user's phone, (2) the computer in the car, (3) the 5G edge cloud,
and (4) the datacenter cloud. Correspondingly, the system can deploy four different models
with different levels of accuracy and compute requirements. The simplest model with the
least parameters can run in the phone, requiring less compute power but yielding lower
accuracy. Three other models ordered in increasing value of accuracy and computational
complexity can run in the car, the edge, and the cloud. The application can identify the
right trade-off between accuracy and computational cost, combined with metrics of
communication bandwidth and latency, to make the right decision on which of the four
models to use for every inference request. Note that this is similar to the
resolution/bandwidth trade-off commonly found in the image encoding problem, where an
image can be encoded and transmitted at different levels of resolution depending on the
available bandwidth in the communication channel. In the case of AI inference, however,
not only bandwidth is a scarce resource, but also compute.</t>
      </section>
      <section anchor="open-abstraction-for-edge-computing">
        <name>Open Abstraction for Edge Computing</name>
        <t>Modern applications such as AR/VR,
V2X, or IoT, require bringing compute
closer to the edge in order to meet
strict bandwidth, latency, and jitter requirements.  While this
deployment process resembles the path taken
by the main cloud providers
(notably, AWS, Facebook, Google and Microsoft) to deploy
their large-scale datacenters, the edge presents a
key difference: datacenter clouds (both in terms of their infrastructure
and the applications run by them) are owned and managed by a
single organization,
whereas edge clouds involve a complex ecosystem of operators,
vendors, and application providers, all striving to provide
a quality end-to-end solution to the user. This implies that,
while the traditional cloud has been implemented for the most part
by using vertically optimized and closed architectures, the edge will
necessarily need to rely on a complete ecosystem of carefully
designed open standards to enable horizontal interoperability
across all the involved parties.</t>
        <t>As an example, consider a user of an XR
application who arrives at his/her home by car. The application
runs by leveraging compute capabilities from both the
car and the public 5G edge cloud. As the user parks the
car, 5G coverage may diminish (due to building interference)
making the home local Wi-Fi connectivity a better choice.
Further, instead of relying on computational resources from
the car and the 5G edge cloud, latency can be reduced by leveraging
computing devices (PCs, laptops, tablets) available from the home
edge cloud.
The application's decision to switch from one
domain to another, however,
demands knowledge about the compute
and communication resources available both in the 5G and the Wi-Fi
domains, therefore requiring interoperability across multiple
industry standards (for instance, IETF and 3GPP on the public side,
and IETF and LF Edge <xref target="LF-EDGE"/> on the private home side).</t>
      </section>
      <section anchor="optimized-placement-of-microservice-components">
        <name>Optimized Placement of Microservice Components</name>
        <t>Current applications are transitioning from a monolithic service architecture
towards the composition of microservice components, following cloud-native
trends. The set of microservices can have
associated Service Level Objectives (SLOs) that impose
constraints not only in terms of the required computational resources
dependent on the compute facilities available, but also in terms of performance
indicators such as latency, bandwidth, etc, which impose restrictions in the
networking capabilities connecting the computing facilities. Even more complex
constraints, such as affinity among certain microservices components could
require complex calculations for selecting the most appropriate compute nodes
taken into consideration both network and compute information.</t>
      </section>
    </section>
    <section anchor="production-and-consumption-scenarios-of-compute-related-information">
      <name>Production and Consumption Scenarios of Compute-related Information</name>
      <t>It is important to understand the scenarios of production and consumption of compute-related information in combination with information related to communication. Leveraging such combination enables the possibility of resource and workload placement optimization, leading to both operational cost reductions to the operator and service provider, as well as an improvement on the service level experienced by the end users.</t>
      <section anchor="producers-of-compute-related-information">
        <name>Producers of Compute-Related Information</name>
        <t>The information relative to compute (i.e., processing capabilities, memory, and storage capacity) can be structured in two ways. On one hand, the information corresponding to the raw compute resources; on the other hand, the information of resources allocated or utilized by a specific application or service function.</t>
        <t>The former is typically provided by the management systems enabling the virtualization of the physical resources for a later assignment to the processes running on top. Cloud Managers or Virtual Infrastructure Managers are the entities that manage those resources. These management systems offer APIs to access the available resources in the computing facility. Thus, it can be expected that these APIs can be used for the consumption of such information. Once the raw resources are retrieved from the various compute facilities, it could be possible to generate topological network views of them, as being proposed in <xref target="I-D.llc-teas-dc-aware-topo-model"/>.</t>
        <t>Regarding the resources allocated or utilized by a specific application or service function, two situations apply: (1) The total allocation and (2) the allocation per service or application. In the first case, the information can be supplied by the virtualization management systems described before. For the specific per-service allocation, it can be expected that the specific management systems of the service or application is capable to provide the resources being used at run time typically as part of the allocated ones. In this last scenario, it is also reasonable to expect the availability of APIs offering this information, even though they can be specific to the service or application.</t>
      </section>
      <section anchor="consumers-of-compute-related-information">
        <name>Consumers of Compute-Related Information</name>
        <t>The consumption of compute-related information is relative to the different phases of the service lifecycle. This means that this information can be consumed in different points of time and for different purposes.</t>
        <t>The expected consumers can be both external or internal to the network. As external consumers it is possible to consider external application management systems requiring resource availability information for service function placement decision, workload migration in the case of consuming raw resources, or requiring information on the usage of resources for service assurance or service scaling, among others.</t>
        <t>As internal consumers, it is possible to consider network management entities requiring information on the level of resource utilization for traffic steering (as the Path Selector in <xref target="I-D.ldbc-cats-framework"/>), load balance, or analytics, among others.</t>
      </section>
    </section>
    <section anchor="metrics-selection-and-exposure">
      <name>Metrics Selection and Exposure</name>
      <t>Regarding metrics exposure one can distinguish the topics of (1)
how the metrics are exposed and (2) which kind of metrics need to be exposed.
The infrastructure resources can be divided into network and compute related
resources. Network based resources can roughly be subdivided according to the
network structure into edge, backbone, and cloud resources.</t>
      <t>This section intends to give a brief outlook regarding these resources
for stimulating additional discussion with related work going on in
other IETF working groups or standardization bodies.</t>
      <section anchor="edge-resources">
        <name>Edge Resources</name>
        <t>Edge resources are referring to latency, bandwidth, compute
latency or traffic breakout.</t>
      </section>
      <section anchor="network-resources">
        <name>Network Resources</name>
        <t>Network resources relate to the traditional network
infrastructure. The next table provides an overview of some of the
commonly used metrics.</t>
        <table anchor="net_res">
          <name>Examples of network resource metrics.</name>
          <thead>
            <tr>
              <th align="left">Kind of Resource</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">QoS</td>
            </tr>
            <tr>
              <td align="left">Latency</td>
            </tr>
            <tr>
              <td align="left">Bandwidth</td>
            </tr>
            <tr>
              <td align="left">RTT</td>
            </tr>
            <tr>
              <td align="left">Packet Loss</td>
            </tr>
            <tr>
              <td align="left">Jitter</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="cloud-resources">
        <name>Cloud Resources</name>
        <t>The next table provides an example of parameters that
could be exposed:</t>
        <table anchor="cloud_res">
          <name>Examples of cloud resource parameters.</name>
          <thead>
            <tr>
              <th align="left">CPU</th>
              <th align="left">Compute</th>
              <th align="left">Available cpu resources</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Memory</td>
              <td align="left">Compute</td>
              <td align="left">Available memory</td>
            </tr>
            <tr>
              <td align="left">Storage</td>
              <td align="left">Storage</td>
              <td align="left">Available storage</td>
            </tr>
            <tr>
              <td align="left">Configmaps</td>
              <td align="left">Object</td>
              <td align="left">Configuration and topology maps</td>
            </tr>
            <tr>
              <td align="left">Secrets</td>
              <td align="left">Object</td>
              <td align="left">Possible secrets</td>
            </tr>
            <tr>
              <td align="left">Pods</td>
              <td align="left">Object</td>
              <td align="left">Possible pods</td>
            </tr>
            <tr>
              <td align="left">Jobs</td>
              <td align="left">Object</td>
              <td align="left">Concurrent jobs</td>
            </tr>
            <tr>
              <td align="left">Services</td>
              <td align="left">Object</td>
              <td align="left">Concurrent services</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="considerations-about-metrics">
        <name>Considerations about Metrics</name>
        <t>The metrics considered in this document should be used to support
decisions for selection and deployment of services and applications.
Further iterations of this document may consider additional
life cycle operations such as assurance and relevant metrics.</t>
        <t>The network netrics listed above are specified in a number of
IETF documents such as RFC 9439 <xref target="I-D.ietf-alto-performance-metrics"/>,
which itself leverages on RFC 7679. The work on compute metrics
at the IETF, on the other hand, is in its first stages and merely
relates to low-level infrastructure metrics such as in <xref target="RFC7666"/>.
However:</t>
        <ul spacing="normal">
          <li>
            <t>decisions for service deployment and selection also involve
decisions that require an aggregated view for instance at the
service level,</t>
          </li>
          <li>
            <t>deciding entities may only have partial access to the compute
information and actually do not need to have all the details.</t>
          </li>
        </ul>
        <t>A number of public tools and methods to test compute facility
performances are made available by cloud service providers or
service management businesses, see <xref target="UPCLOUD"/> and <xref target="IR"/> to name a few.
However, for the proposed performance metrics, their definition and
acquisition method may differ from one provider to the other,
making it thus challenging to compare performances across different
providers. The latter aspect is particularly problematic for
applications running at the edge where a complex ecosystem of
operators, vendors, and application providers is involved
and calls for a common standardized definition.
<!--  REFS
UPCLOUD https://upcloud.com/resources/tutorials/how-to-benchmark-cloud-servers
IR https://www.ir.com/guides/cloud-performance-testing-->
        </t>
      </section>
      <section anchor="metric-dimensions">
        <name>Metric Dimensions</name>
        <t>Upon exploring existing work, this draft
proposes to consider a number of dimensions before identifying
the compute metrics needed to take a service operation decision.
This list is initial and is to be updated upon further discussion.</t>
        <t>Dimensions helping to identify needed compute metrics:</t>
        <table anchor="comp_dimensions">
          <name>Dimensions to consider when idenfitying compute metrics.</name>
          <thead>
            <tr>
              <th align="left">Dimension</th>
              <th align="left">Definition</th>
              <th align="left">Examples</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Decision</td>
              <td align="left">what are the metrics used for</td>
              <td align="left">monitoring, benchmarking, service selection and placement</td>
            </tr>
            <tr>
              <td align="left">Driving KPI</td>
              <td align="left">what is assessed with the metrics</td>
              <td align="left">speed, scalability, cost, stability</td>
            </tr>
            <tr>
              <td align="left">Decision scope</td>
              <td align="left">different granularities</td>
              <td align="left">infrastructure node/cluster, compute service, end-to-end application</td>
            </tr>
            <tr>
              <td align="left">Receiving entity</td>
              <td align="left">receiving metrics</td>
              <td align="left">router, centralized controller, application management</td>
            </tr>
            <tr>
              <td align="left">Deciding entity</td>
              <td align="left">computing decisions</td>
              <td align="left">router, centralized controller, application management</td>
            </tr>
          </tbody>
        </table>
        <t>When metrics are documented according to their life cycle action, it allows for
a more reliable interpretation and informed utilization of the metrics.
The table below provides some examples:</t>
        <table anchor="metric_action">
          <name>Metrics documented by life cycle action.</name>
          <thead>
            <tr>
              <th align="left">Lifecycle action</th>
              <th align="left">Example</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Acquisition method</td>
              <td align="left">telemetry, estimation</td>
            </tr>
            <tr>
              <td align="left">Value processing</td>
              <td align="left">aggregation, abstraction</td>
            </tr>
            <tr>
              <td align="left">Exposure</td>
              <td align="left">in-path distribution, off-path distribution</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="abstraction-level-and-information-access">
        <name>Abstraction Level and Information Access</name>
        <t>One important aspect to consider is that receiving entities that need to consume metrics to take selection or placement decisions do not always have access to computing information. In particular, several scenarios to be completed upon further discussions, may need to be considered among which:</t>
        <ul spacing="normal">
          <li>
            <t>the consumer is an ISP that does not own the compute infrastructure or has no access to full information. In this case the compute metrics will likely be estimated</t>
          </li>
          <li>
            <t>the consumer is an application that has no direct access to full information while the ISP has access to both network and compute information. However the ISP is willing to provide guidance to the application with abstract information.</t>
          </li>
          <li>
            <t>the consumer has access to full network and compute information and wants to use it for fine-grained decision making e.g. at the node/cluster level</t>
          </li>
          <li>
            <t>the consumer has access to full information but essentially needs guidance with abstracted information.</t>
          </li>
          <li>
            <t>the consumer has access to information that is abstracted or detailed depending on the metrics.</t>
          </li>
        </ul>
        <t>These scenarios further drive the selection of metrics upon the above mentioned dimensions.</t>
      </section>
      <section anchor="distribution-and-exposure-mechanisms">
        <name>Distribution and Exposure Mechanisms</name>
        <section anchor="metric-distribution-computing-aware-traffic-steering-cats">
          <name>Metric Distribution Computing-Aware Traffic Steering (CATS)</name>
          <t>Other existing work at the IETF CATS WG has explored the collection and distribution of computing metrics in <xref target="I-D.ldbc-cats-framework"/>. They consider three deployment models in their deployment considerations:</t>
          <ul spacing="normal">
            <li>
              <t>distributed among network devices directly,</t>
            </li>
            <li>
              <t>collected by a centralized control plane,</t>
            </li>
            <li>
              <t>hybrid where a part of computing metrics are distributed among involved network devices, and others may be collected by a centralized control plane.</t>
            </li>
          </ul>
          <t>In the hybrid mode, the draft suggests that some static information (e.g., capabilities information) can be distributed among network devices since they are quite stable. Frequent changing information (e.g., resource utilization) can be collected by a centralized control plane to avoid frequent flooding in the distributed control plane.</t>
          <t>Besides the required extensions to the routing protocols, the hybrid mode stresses the impact of the dynamicity of the distributed metrics and the need to carefully sort out the metric exposure mode w.r.t. their dynamicity.</t>
        </section>
        <section anchor="metric-exposure-with-extensions-of-alto">
          <name>Metric Exposure with Extensions of ALTO</name>
          <t>The ALTO protocol has been difined to expose an abstracted network topology and related path costs in <xref target="RFC7285"/>. Its extension RFC 9240 allows to define entities on which properties can be defined, while <xref target="I-D.contreras-alto-service-edge"/> introduces a proposed entity property that allows to consider an entity as both a network element with network related costs and properties and a element of a data center with compute related properties. Such an exposure mechanism is particularly useful for decision making entities which are centralized and located off the network paths.</t>
        </section>
        <section anchor="exposure-of-abstracted-generic-metrics">
          <name>Exposure of Abstracted Generic Metrics</name>
          <t>In some cases, whether due to unavailable information details or for the sake of simplicity, a consumer may need reliable but simple guidance to select a service. To this end, abstracted generic metrics may be useful.</t>
          <t>One can consider a generic metric that can be named “computingcost” and is applied to a contact point to one or more edge servers such as a load balancer, for short  an edge server, to reflect the network operator policy and preferences.  The metric “computingcost” results from an abstraction method that is hidden from users, similarly to the metric “routingcost” defined in <xref target="RFC7285"/>.  For instance, “computingcost” may be higher for an edge server located far away, or in disliked geographical areas, or owned by a provider who does not share information with the Internet Service Provider (ISP) or with which ISP has a poorer commercial agreement.  “computingcost” may also reflect environmental preferences in terms, for instance, of energy source, average consumption vs. local climate, location adequacy vs. climate.</t>
          <t>One may also consider a generic metric named “computingperf”, applied to an edge server, that reflects its performances, based on measurements or estimations by the ISP or combination thereof.  An edge server with a higher “computingperf” value will be preferred.  “computingperf” can be based on a vector of one or more metrics reflecting, for instance, responsiveness, reliability of cloud services based on metrics such as latency, packet loss, jitter, time to first and/or last byte, or a single value reflecting a global performance score.</t>
        </section>
      </section>
    </section>
    <section anchor="study-of-the-kubernetes-metrics-api-and-exposure-mechanism">
      <name>Study of the Kubernetes Metrics API and Exposure Mechanism</name>
      <t>An approach to develop IETF specifications for the definition of compute and
communication metrics is to leverage existing and mature solutions, whether based on
open standards or de facto standards. On one hand, this approach avoids
reinventing the wheel; on the other, it ensures the specifications are based
on significant industry experience and stable running code.</t>
      <t>For communication metrics, the IETF has already developed detailed and mature
specifications. An example is the ALTO Protocol <xref target="RFC7285"/>, which provides RFCs standardizing
communication metrics and a detailed exposure mechanism protocol.</t>
      <t>Compute metrics, however, have not been thoroughly studied within the IETF.
With the goal to avoid reinventing the wheel and to ensure significant industry
experience is taken into account, in this section we study the Kubernetes
Metric API. Kubernetes is not only a de facto standard to manage containerized
software in data centers, but it is also increasingly being used by telecommunication operators
to manage compute resources at the edge.</t>
      <section anchor="understanding-the-kubernetes-metrics-api-and-its-exposure-mechanism">
        <name>Understanding the Kubernetes Metrics API and its Exposure Mechanism</name>
        <t><xref target="kubernetes_metrics"/> shows the Kubernetes Metric API architecture.
It consists of the following components:</t>
        <t><strong>Pod</strong>. A collection of one or more containers.</t>
        <t><strong>Cluster</strong>. A collection of one or more pods.</t>
        <t><strong>HPA, VPA and 'kubectl stop'</strong>. Three different applications that
serve as examples of consumers of the Metrics API.
The HorizontalPodAutoscaler (HPA) and VerticalPodAutoscaler
(VPA) use data from the metrics
API to adjust workload replicas and resources to meet
customer demand. 'kubectl stop' can
be used to show all the metrics.</t>
        <t><strong>cAdvisor</strong>. Daemon for collecting metrics (CPU, memory, GPU, etc.) from all the containers
in a pod. It is responsible for aggregating and exposing these metrics to kubelet.</t>
        <t><strong>Kubelet</strong>. Node agent responsible for managing container resources. It includes the
ability to collect the metrics from the cAdvisor and making them accessible
using the /metrics/resource and /stats kubelet API endpoints.</t>
        <t><strong>Metrics server</strong>. Cluster agent responsible for collecting and aggregating resource metrics
from each kubelet.</t>
        <t><strong>API Server</strong>. General server providing API access to kubernetes services.
One of them corresponds to the Metrics API service. HPA, VPA, and
'kubectl top' query the API server to retrieve the metrics.</t>
        <figure anchor="kubernetes_metrics">
          <name>Collection and exposure of metrics using the Kubernetes Metrics API.</name>
          <artwork><![CDATA[
            +---------------------------------------------------------------------------------+
            |                                                                                 |
            |  Cluster                      +-----------------------------------------------+ |
            |                               |                                               | |
            |                               |  Node                           +-----------+ | |
            |                               |                                 | Container | | |
            |                               |                               +-+           | | |
            |                               |                               | |  runtime  | | |
            |                               |                 +----------+  | +-----------+ | |
+-------+   |                               |                 |          |  |               | |
|  HPA  <-+ |                               |               +-+ cAdvisor |<-+               | |
+-------+ | |                               |               | |          |  | +-----------+ | |
          | | +----------+    +-----------+ | +----------+  | +----------+  | | Container | | |
+-------+ | | |  API     |    |  Metrics  | | |          |  |               +-+           | | |
|  VPA  <-+-+-+          <--+-+           <-+-+ Kubelet  <--+                 |  runtime  | | |
+-------+ | | | server   |  | |   server  | | |          |  |                 +-----------+ | |
          | | +----------+  | +-----------+ | +----------+  |                               | |
+-------+ | |               |               |               |                               | |
|kubectl| | |               |               |               | +----------+                  | |
| top   <-+ |               | +-----------+ |               | |  Other   |                  | |
+-------+   |               | |  Other    | |               +-+   pod    |                  | |
            |               +-+           | |                 |   data   |                  | |
            |                 |  data     | |                 +----------+                  | |
            |                 +-----------+ |                                               | |
            |                               +-----------------------------------------------+ |
            |                                                                                 |
            +---------------------------------------------------------------------------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="example-of-how-to-map-the-kubernetes-metrics-api-with-the-ietf-cats-metrics-distribution">
        <name>Example of How to Map the Kubernetes Metrics API with the IETF CATS METRICS Distribution</name>
        <t>In this section, we describe a mapping between
the Kubernetes Metrics API and the IETF CATS metric dissemination
architecture, illustrating and example of how a de facto standard widely
used in production systems can be adapted to support the CATS metrics
framework.</t>
        <t>To describe the mapping, we take the centralized model
of the CATS metrics dissemination framework introduced in
<xref target="I-D.ldbc-cats-framework"/>, which we include in <xref target="cats_framework"/>
for ease of reading. (Similar mappings can be created with the
distributed and hybrid models also introduced in this <xref target="cats_framework"/>)</t>
        <figure anchor="cats_framework">
          <name>Collection and exposure of metrics using the CATS Centralized Model. (Taken from [I-D.ldbc-cats-framework])</name>
          <artwork><![CDATA[
            :       +------+
            :<------| C-PS |<----------------------------------+
            :       +------+ <------+              +--------+  |
            :          ^            |           +--|CS-ID 1 |  |
            :          |            |           |  |CIS-ID 1|  |
            :          |   +----------------+   |  +--------+  |
            :          |   |    C-SMA       |---|Service Site 2|
            :          |   +----------------+   |  +--------+  |
            :          |   |CATS-Forwarder 2|   +--|CS-ID 1 |  |
            :          |   +----------------+      |CIS-ID 2|  |
+--------+  :          |             |             +--------+  |
| Client |  :  Network |   +----------------------+            |
+--------+  :  metrics |   | +-------+            |            |
     |      :          +-----| C-NMA |            |      +-----+
     |      :          |   | +-------+            |      |C-SMA|<-+
+----------------+ <---+   |                      |      +-----+  |
|CATS-Forwarder 1|---------|                      |          ^    |
+----------------+         |       Underlay       |          |    |
            :              |     Infrastructure   |     +--------+|
            :              |                      |     |CS-ID 1 ||
            :              +----------------------+  +--|CIS-ID 3||
            :                        |               |  +--------+|
            :          +----------------+------------+            |
            :          |CATS-Forwarder 3|         Service Site 3  |
            :          +----------------+                         |
            :                        |       :      +-------+     |
            :                        +-------:------|CS-ID 2|-----+
            :                                :      +-------+
            :<-------------------------------:
]]></artwork>
        </figure>
        <t>The following table provides the mapping:</t>
        <table anchor="kub_cats_map">
          <name>Example of how to map the Kubernetes Metrics API with the IETF CATS Architecture.</name>
          <thead>
            <tr>
              <th align="left">IETF CATS component</th>
              <th align="left">Kubernetes Metrics API component</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">CIS-ID</td>
              <td align="left">Container runtime</td>
            </tr>
            <tr>
              <td align="left">C-SMA</td>
              <td align="left">cAdvisor</td>
            </tr>
            <tr>
              <td align="left">C-NMA</td>
              <td align="left">Other data</td>
            </tr>
            <tr>
              <td align="left">C-PS</td>
              <td align="left">HPA, VPA</td>
            </tr>
            <tr>
              <td align="left">CATS Service Site</td>
              <td align="left">Node</td>
            </tr>
            <tr>
              <td align="left">CATS Service</td>
              <td align="left">Cluster</td>
            </tr>
          </tbody>
        </table>
        <t>Note that while in Kubernetes there are multiple levels of abstraction
to reach the Metrics API (cAdvisor -&gt; kubelet -&gt; metrics  server -&gt; API server),
they can all be co-located in the cAdvisor, which can then be mapped to the
C-SMA module in CATS.</t>
      </section>
      <section anchor="available-metrics-from-the-kubernetes-metrics-api">
        <name>Available Metrics from the Kubernetes Metrics API</name>
        <t>The Kubernetes Metrics API implementation
can be found in staging/src/k8s.io/kubelet/pkg/apis/stats/v1alpha1/types.go
as part of the Kubernetes repository (https://github.com/kubernetes/kubernetes):</t>
        <t>In this section we provide a summary of the metrics offered by the API:</t>
        <table anchor="kub_metrics_node">
          <name>Summary of the Kubernetes Metric API: Node-level metrics.</name>
          <thead>
            <tr>
              <th align="left">Nodel-level metric</th>
              <th align="left">Decription</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">nodeName</td>
              <td align="left">Name of the node</td>
            </tr>
            <tr>
              <td align="left">ContainerStats</td>
              <td align="left">Stats of the containers within this node</td>
            </tr>
            <tr>
              <td align="left">CPUStats</td>
              <td align="left">Stats pertaining to CPU resources</td>
            </tr>
            <tr>
              <td align="left">MemoryStats</td>
              <td align="left">Stats pertaining to memory (RAM) resources</td>
            </tr>
            <tr>
              <td align="left">NetworkStats</td>
              <td align="left">Stats pertaining to network resources</td>
            </tr>
            <tr>
              <td align="left">FsStats</td>
              <td align="left">Stats pertaining to the filesystem resources</td>
            </tr>
            <tr>
              <td align="left">RuntimeStats</td>
              <td align="left">Stats about the underlying containers runtime</td>
            </tr>
            <tr>
              <td align="left">RlimitStats</td>
              <td align="left">Stats about the rlimits of system</td>
            </tr>
          </tbody>
        </table>
        <table anchor="kub_metrics_pod">
          <name>Summary of the Kubernetes Metric API: Pod-level metrics.</name>
          <thead>
            <tr>
              <th align="left">Pod-level metric</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">PodReference</td>
              <td align="left">Reference to the measured Pod</td>
            </tr>
            <tr>
              <td align="left">CPU</td>
              <td align="left">Stats pertaining to CPU resources consumed by pod cgroup</td>
            </tr>
            <tr>
              <td align="left">Memory</td>
              <td align="left">Stats pertaining to memory (RAM) resources consumed by pod cgroup</td>
            </tr>
            <tr>
              <td align="left">NetworkStats</td>
              <td align="left">Stats pertaining to network resources</td>
            </tr>
            <tr>
              <td align="left">VolumeStats</td>
              <td align="left">Stats pertaining to volume usage of filesystem resources</td>
            </tr>
            <tr>
              <td align="left">FsStats</td>
              <td align="left">Total filesystem usage for the containers</td>
            </tr>
            <tr>
              <td align="left">ProcessStats</td>
              <td align="left">Stats pertaining to processes</td>
            </tr>
          </tbody>
        </table>
        <table anchor="kub_metrics_container">
          <name>Summary of the Kubernetes Metric API: Container-level metrics.</name>
          <thead>
            <tr>
              <th align="left">Container-level metric</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">name</td>
              <td align="left">Name of the container</td>
            </tr>
            <tr>
              <td align="left">CPUStats</td>
              <td align="left">Stats pertaining to CPU resources</td>
            </tr>
            <tr>
              <td align="left">MemoryStats</td>
              <td align="left">Stats pertaining to memory (RAM) resources</td>
            </tr>
            <tr>
              <td align="left">AcceleratorStats</td>
              <td align="left">Metrics for Accelerators (e.g., GPU, NPU, etc.)</td>
            </tr>
            <tr>
              <td align="left">FsStats</td>
              <td align="left">Stats pertaining to the container's filesystem resources</td>
            </tr>
            <tr>
              <td align="left">UserDefinedMetrics</td>
              <td align="left">User defined metrics that are exposed by containers in the pod</td>
            </tr>
          </tbody>
        </table>
        <t>For more details, refer to https://github.com/kubernetes/kubernetes under the path
staging/src/k8s.io/kubelet/pkg/apis/stats/v1alpha1/types.go.</t>
      </section>
    </section>
    <section anchor="related-work">
      <name>Related Work</name>
      <t>Some existing work has explored compute-related metrics. They can be categorized as follows:</t>
      <ul spacing="normal">
        <li>
          <t>References providing raw compute infrastructure metrics: <xref target="I-D.contreras-alto-service-edge"/> includes references to cloud management solutions (i.e., OpenStack, Kubernetes, etc) which administer the virtualization infrastructure, providing information about raw compute infrastructure metrics. Furthermore, <xref target="NFV-TST"/> describes processor, memory and network interface usage metrics.</t>
        </li>
        <li>
          <t>References providing compute virtualization metrics: <xref target="RFC7666"/> provides several metrics as part of the Management Information Base (MIB) definition for managing virtual machines controlled by a hypervisor. The objects there defined make reference to the resources consumed by a particluar virtual machine serving as host for services or applications. Moreover, <xref target="NFV-INF"/> provides metrics associated to virtualized network functions.</t>
        </li>
        <li>
          <t>References providing service metrics including compute-related information: <xref target="I-D.dunbar-cats-edge-service-metrics"/> proposes metrics associated to services running in compute infrastructures. Some of these metrics do not depend on the infrastructure behavior itself but from where such compute infrastructure is topologically located.</t>
        </li>
        <li>
          <t>Other existing work at the IETF CATS WG has explored the collection
and distribution of computing metrics in <xref target="I-D.ldbc-cats-framework"/>.
In their deployment considerations, they consider three models: distributed,
centralized and hybrid.</t>
        </li>
      </ul>
    </section>
    <section anchor="guiding-principles">
      <name>Guiding Principles</name>
      <t>The driving principles for designing an interface to jointly extract
network and compute information are as follows:</t>
      <t>P1. Leverage metrics across working groups to avoid reinventing the wheel. For instance:</t>
      <ul spacing="normal">
        <li>
          <t>RFC 9439 <xref target="I-D.ietf-alto-performance-metrics"/> leverages IPPM metrics from RFC 7679.</t>
        </li>
        <li>
          <t>Section 5.2 of <xref target="I-D.du-cats-computing-modeling-description"/> considers delay as a good metric, since it is easy to use in both compute and communication domains. RFC 9439 also defines delay as part of the performance metrics.</t>
        </li>
        <li>
          <t>Section 6 of <xref target="I-D.du-cats-computing-modeling-description"/> proposes to represent the network structure as graphs, which is similar to the ALTO map services in <xref target="RFC7285"/>.</t>
        </li>
      </ul>
      <t>P2. Aim for simplicity, while ensuring the combined efforts
don’t leave technical gaps in supporting the full life cycle
of service deployment and selection. For instance, the CATS working
group is covering path selection from a network standpoint, while
ALTO (e.g., <xref target="RFC7285"/>) covers exposing of network information
to the service provider and the client application. However,
there is currently no effort being pursued to expose compute information
to the service provider and the client application for
service placement or selection.</t>
    </section>
    <section anchor="gap-analysis">
      <name>GAP Analysis</name>
      <t>From this related work it is evident that compute-related metrics can serve several purposes, ranging from service instance instantiation to service instance behavior, and then to service instance selection. Some of the metrics could refer to the same object (e.g., CPU) but with a particular usage and scope.</t>
      <t>In contrast, the network metrics are more uniform and straightforward. It is then necessary to consistently define a set of metrics that could assist to the operation in the different concerns identified so far, so that networks and systems could have a common understanding of the perceived compute performance. When combined with network metrics, the combined network plus compute performance behavior will assist informed decisions particular to each of the operational concerns related to the different parts of a service life cycle.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7285">
          <front>
            <title>Application-Layer Traffic Optimization (ALTO) Protocol</title>
            <author fullname="R. Alimi" initials="R." role="editor" surname="Alimi"/>
            <author fullname="R. Penno" initials="R." role="editor" surname="Penno"/>
            <author fullname="Y. Yang" initials="Y." role="editor" surname="Yang"/>
            <author fullname="S. Kiesel" initials="S." surname="Kiesel"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="W. Roome" initials="W." surname="Roome"/>
            <author fullname="S. Shalunov" initials="S." surname="Shalunov"/>
            <author fullname="R. Woundy" initials="R." surname="Woundy"/>
            <date month="September" year="2014"/>
            <abstract>
              <t>Applications using the Internet already have access to some topology information of Internet Service Provider (ISP) networks. For example, views to Internet routing tables at Looking Glass servers are available and can be practically downloaded to many network application clients. What is missing is knowledge of the underlying network topologies from the point of view of ISPs. In other words, what an ISP prefers in terms of traffic optimization -- and a way to distribute it.</t>
              <t>The Application-Layer Traffic Optimization (ALTO) services defined in this document provide network information (e.g., basic network location structure and preferences of network paths) with the goal of modifying network resource consumption patterns while maintaining or improving application performance. The basic information of ALTO is based on abstract maps of a network. These maps provide a simplified view, yet enough information about a network for applications to effectively utilize them. Additional services are built on top of the maps.</t>
              <t>This document describes a protocol implementing the ALTO services. Although the ALTO services would primarily be provided by ISPs, other entities, such as content service providers, could also provide ALTO services. Applications that could use the ALTO services are those that have a choice to which end points to connect. Examples of such applications are peer-to-peer (P2P) and content delivery networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7285"/>
          <seriesInfo name="DOI" value="10.17487/RFC7285"/>
        </reference>
        <reference anchor="I-D.ietf-alto-performance-metrics">
          <front>
            <title>Application-Layer Traffic Optimization (ALTO) Performance Cost Metrics</title>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Y. Richard Yang" initials="Y. R." surname="Yang">
              <organization>Yale University</organization>
            </author>
            <author fullname="Young Lee" initials="Y." surname="Lee">
              <organization>Samsung</organization>
            </author>
            <author fullname="Dhruv Dhody" initials="D." surname="Dhody">
              <organization>Huawei</organization>
            </author>
            <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>
            <date day="21" month="March" year="2022"/>
            <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.

 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.

 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="Internet-Draft" value="draft-ietf-alto-performance-metrics-28"/>
        </reference>
        <reference anchor="I-D.du-cats-computing-modeling-description">
          <front>
            <title>Computing Information Description in Computing-Aware Traffic Steering</title>
            <author fullname="Zongpeng Du" initials="Z." surname="Du">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Kehan Yao" initials="K." surname="Yao">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Cheng Li" initials="C." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Daniel Huang" initials="D." surname="Huang">
              <organization>ZTE</organization>
            </author>
            <author fullname="Zhihua Fu" initials="Z." surname="Fu">
              <organization>New H3C Technologies</organization>
            </author>
            <date day="6" month="July" year="2024"/>
            <abstract>
              <t>   This document describes the considerations and requirements of the
   computing information that needs to be notified into the network in
   Computing-Aware Traffic Steering (CATS).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-du-cats-computing-modeling-description-03"/>
        </reference>
        <reference anchor="I-D.ldbc-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="8" month="February" year="2024"/>
            <abstract>
              <t>   This document describes a framework for Computing-Aware Traffic
   Steering (CATS).  Particularly, the document identifies a set of CATS
   components, describes their interactions, and exemplifies the
   workflow of the control and data planes.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ldbc-cats-framework-06"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="NFV-TST" target="https://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/008/03.03.01_60/gs_NFV-TST008v030301p.pdf">
          <front>
            <title>ETSI GS NFV-TST 008 V3.3.1, NFVI Compute and Network Metrics Specification</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="June" day="01"/>
          </front>
        </reference>
        <reference anchor="NFV-INF" target="https://www.etsi.org/deliver/etsi_gs/NFV-INF/001_099/010/01.01.01_60/gs_NFV-INF010v010101p.pdf">
          <front>
            <title>ETSI GS NFV-INF 010, v1.1.1, Service Quality Metrics</title>
            <author>
              <organization/>
            </author>
            <date year="2014" month="December" day="01"/>
          </front>
        </reference>
        <reference anchor="LF-EDGE">
          <front>
            <title>Linux Foundation Edge</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="March"/>
          </front>
          <seriesInfo name="https://www.lfedge.org/" value=""/>
        </reference>
        <reference anchor="EDGE-ENERGY">
          <front>
            <title>Estimating energy consumption of cloud, fog, and edge computing infrastructures</title>
            <author>
              <organization/>
            </author>
            <date year="2019"/>
          </front>
          <seriesInfo name="IEEE Transactions on Sustainable Computing" value=""/>
        </reference>
        <reference anchor="DC-AI-COST">
          <front>
            <title>Generative AI Breaks The Data Center - Data Center Infrastructure And Operating Costs Projected To Increase To Over $76 Billion By 2028</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
          <seriesInfo name="Forbes, Tirias Research Report" value=""/>
        </reference>
        <reference anchor="UPCLOUD" target="https://upcloud.com/resources/tutorials/how-to-benchmark-cloud-servers">
          <front>
            <title>How to benchmark Cloud Servers</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="May"/>
          </front>
        </reference>
        <reference anchor="IR" target="https://www.ir.com/guides/cloud-performance-testing">
          <front>
            <title>Cloud Performance Testing Best Tips and Tricks</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="LLM_COMP_REQ" target="https://alpa.ai/tutorials/opt_serving.html">
          <front>
            <title>Serving OPT-175B, BLOOM-176B and CodeGen-16B using Alpa</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.llc-teas-dc-aware-topo-model">
          <front>
            <title>DC aware TE topology model</title>
            <author fullname="Young Lee" initials="Y." surname="Lee">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Xufeng Liu" initials="X." surname="Liu">
              <organization>Alef Edge</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   This document proposes the extension of the TE topology model for
   including information related to data center resource capabilities.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-llc-teas-dc-aware-topo-model-03"/>
        </reference>
        <reference anchor="RFC7666">
          <front>
            <title>Management Information Base for Virtual Machines Controlled by a Hypervisor</title>
            <author fullname="H. Asai" initials="H." surname="Asai"/>
            <author fullname="M. MacFaden" initials="M." surname="MacFaden"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="K. Shima" initials="K." surname="Shima"/>
            <author fullname="T. Tsou" initials="T." surname="Tsou"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, this specifies objects for managing virtual machines controlled by a hypervisor (a.k.a. virtual machine monitor).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7666"/>
          <seriesInfo name="DOI" value="10.17487/RFC7666"/>
        </reference>
        <reference anchor="I-D.contreras-alto-service-edge">
          <front>
            <title>Use of ALTO for Determining Service Edge</title>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Sabine Randriamasy" initials="S." surname="Randriamasy">
              <organization>Nokia Bell Labs</organization>
            </author>
            <author fullname="Jordi Ros-Giralt" initials="J." surname="Ros-Giralt">
              <organization>Qualcomm Europe</organization>
            </author>
            <author fullname="Danny Alex Lachos Perez" initials="D. A. L." surname="Perez">
              <organization>Benocs</organization>
            </author>
            <author fullname="Christian Esteve Rothenberg" initials="C. E." surname="Rothenberg">
              <organization>Unicamp</organization>
            </author>
            <date day="13" month="October" year="2023"/>
            <abstract>
              <t>   Service providers are starting to deploy computing capabilities
   across the network for hosting applications such as AR/VR, vehicle
   networks, IoT, and AI training, among others.  In these distributed
   computing environments, knowledge about computing and communication
   resources is necessary to determine the proper deployment location of
   each application.  This document proposes an initial approach towards
   the use of ALTO to expose such information to the applications and
   assist the selection of their deployment locations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-contreras-alto-service-edge-10"/>
        </reference>
        <reference anchor="I-D.dunbar-cats-edge-service-metrics">
          <front>
            <title>5G Edge Services Use Cases</title>
            <author fullname="Linda Dunbar" initials="L." surname="Dunbar">
              <organization>Futurewei</organization>
            </author>
            <author fullname="Kausik Majumdar" initials="K." surname="Majumdar">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Gyan Mishra" initials="G. S." surname="Mishra">
              <organization>Huawei</organization>
            </author>
            <author fullname="Haibo Wang" initials="H." surname="Wang">
              <organization>Huawei</organization>
            </author>
            <author fullname="Haoyu Song" initials="H." surname="Song">
              <organization>Futurewei</organization>
            </author>
            <date day="6" month="July" year="2023"/>
            <abstract>
              <t>   This draft describes the 5G Edge computing use cases for CATS
   and how BGP can be used to propagate additional IP layer
   detectable information about the 5G edge data centers so that
   the ingress routers in the 5G Local Data Network can make
   path selections based on not only the routing distance but
   also the IP Layer relevant metrics of the destinations. The
   goal is to improve latency and performance for 5G Edge
   Computing (EC) services even when the detailed servers
   running status are unavailable.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dunbar-cats-edge-service-metrics-01"/>
        </reference>
      </references>
    </references>
    <?line 793?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The work from Luis M. Contreras has been partially funded by the European Union under Horizon Europe projects NEMO (NExt generation Meta Operating system) grant number 101070118, and CODECO (COgnitive, Decentralised Edge-Cloud Orchestration), grant number 101092696.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
n+KWKTC1AAA=

-->

</rfc>
