<?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-03" 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-03"/>
    <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="March" day="04"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 83?>

<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 understanding and 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 96?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Operators are starting to deploy distributed computing environments
in different parts of the network with the objective of addressing
different service needs including latency, bandwidth, processing
capabilities, storage, etc.
This translates in the emergence of a
number of data centers (both in the cloud and at the edge) of
different sizes (e.g., large, medium, small) characterized by
distinct dimension of CPUs, memory, and storage capabilities, as well
as bandwidth capacity for forwarding the traffic generated in and out
of the corresponding data center.</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.
This decision should be jointly
influenced on the one hand by the available resources in a given computing
environment, and on the other hand by the capabilities of the network path connecting
the traffic source with the destination.</t>
      <t>Network and compute aware function placement and 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, deployments may reach out to data centers running different implementations with different understandings and representations of compute capabilities and smooth operation is a challenge. 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 on 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 the 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) enable privacy/personalization
(e.g., federated AI learning), and (4) reduce cloud costs and
energy. 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 consists in 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 QoE that the provider wants to guarantee to the
user base. To make a proper deployment decision, the provider
must have visibility on the resources available from
the infrastructure, including communication resources (e.g., latency and
bandwidth) and compute (e.g., CPU, GPU, memory, storage). For instance,
to run a Large Language Model (LLM) with 175 billion parameters, a total
aggregated memory of 400GB and 8 GPUs are needed. 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 microservices 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 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</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.
In some cases, limited or no connectivity 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 almost equivalent
to a word. 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 precision 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. ALTO extensions to support
the exposure of compute resources would allow applications to make optimized decisions
on selecting the right computational resource, supporting the efficient execution of hybrid
AI workloads.</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.
This document envisions ALTO playing a role as part of the
ecosystem of open standards that are necessary to deploy and
operate the edge cloud.</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). ALTO
can be positioned to act as an abstraction layer supporting
the exposure of communication and compute information independently
of the type of domain the application is currently residing in.</t>
        <t>Future versions of this document will elaborate further on this
use case.</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 SLOs which impose
constraints not only in terms of required compute resources (CPU, storage, ...)
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
constrains, 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>
        <t>Thus, service/application orchestrators can benefit from the information exposed
by ALTO at the time of deciding the placement of the microservices in the network.</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.
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>
          </li>
        </ul>
      </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 allow 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>
        <t>Integration of network and compute metrics in decisions</t>
        <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:
- distributed among network devices directly,
- collected by a centralized control plane,
- hybrid where a part of computing metrics are distributed among involved network devices, and others may be collected by a centralized control plane.
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>Beside 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 centzer 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="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>
      </ul>
      <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>
    </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="Yuexia Fu" initials="Y." surname="Fu">
              <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="23" month="October" year="2023"/>
            <abstract>
              <t>   This document describes the considerations and the potential
   architecture 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-02"/>
        </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="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 601?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA619+3Ibx7nn//0UfeitOqICgKTkKzcnCUWRMhNdGJK2T2pr
yzUYNICxBtPw9AwpWGJVXmOrdqv2Wc6j5EnOd+vbALRlJ0oskcBMT/fXX3+X
33eZ8XisuqqrzbHe+7Otmk6fvVtb17dG27l+bbo7277VRTPTp3a17jujL5q5
bVdFV9lGw0/4e1u4ru3LDu4an9wVcO+1aW+r0ujnZl3bzco03Z4qptPW3MJz
bt48f6PH+oR+r2ikPVUWnVnYdnOsK3iAUjNbNsUKpjVri3k3bst2bNeuuFvA
P6alm4p6XPKkxivTtVXpxodPleunq8o5+L7brOH+i7Obc60/0UXtLDy8amZm
beAvmNJI75lZ1dm2Kmr85eLkGfwDa9q7uLo531NNv5qa9ljNYG7HqrSNM43r
3bGG1RoFS3mqYNzWFMf65OrsBH5Bai1a26+P9Xcv9HfwW9Us9Av8RL01G/h6
dqxg7Y151+mFaWQl+FHfVKVt6Ue3Ltq3Nd45q4Cy1RSWONO1mS1Mq25N08Ns
PtE6PAh/4cXmT4SPV0VV4yV/Mu+K1bo2E6AYfl605fJYL7tu7Y4PDpIvD2A4
GLrqlv0UyLWo2qLuDn7NJuzB/TVQzHVwv38CjzPhcSeV/VUj/qqLJ8tuVe8p
VfTd0rZIbZiP1vO+rpmh9q4n+go4GnZ9VbjNHn1t20XRVD/RmMf6tX1bFfqZ
qWv9spg6usIwKfdcMa0aM2njCH9q8PLxFC4f13A5khEmsP3glxP9agIHqela
mL7b9eQbU5u5BVYosofWfeVW1aI3NQwut6/6tqpr+6cu3PLgg/8MfFfpK+vG
L2gfdj35r31Rw/0rfda3QN4RHOxykk3ih9a6P/3YVZMf5dIHn3dlaxQZ1+XS
djsf9tz0nSuXhtb7FlgyfQ7fPeG7aXlwxWRm4FENi55bOABaX52ffvHky8/w
x4vx80lluvkYFmfHwBwko5oycIW/aNaPQdI4YRo4KuOVnRk8a+OZcWVbrWmC
cnU9m5Z8Pci4lcHTfaxU5SUgT0O/Pv92fHN9Qz8nf7xYPbu5vtAvrv1l+vDw
S/3t08nTydEIP7sIkhVJ5iXuK562vl6bsprD3rKUzJ9Ackk/OXxyOD78fHx4
NJxA0S5MF0/53d3dxHSumsBeHOCib017gB98v3AHMruDw8Oj7w+/+gr+/fLg
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

-->

</rfc>
