<?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.6.26 (Ruby 2.7.0) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-contreras-alto-service-edge-09" category="info" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title>Use of ALTO for Determining Service Edge</title>
    <seriesInfo name="Internet-Draft" value="draft-contreras-alto-service-edge-09"/>
    <author fullname="Luis M. Contreras">
      <organization>Telefonica</organization>
      <address>
        <email>luismiguel.conterasmurillo@telefonica.com</email>
      </address>
    </author>
    <author fullname="Sabine Randriamasy">
      <organization>Nokia Bell Labs</organization>
      <address>
        <email>sabine.randriamasy@nokia-bell-labs.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="Danny Lachos">
      <organization>Benocs</organization>
      <address>
        <email>dlachos@benocs.com</email>
      </address>
    </author>
    <author fullname="Christian Rothenberg">
      <organization>Unicamp</organization>
      <address>
        <email>chesteve@dca.fee.unicamp.br</email>
      </address>
    </author>
    <date year="2023" month="July" day="10"/>
    <area>AREA</area>
    <workgroup>ALTO</workgroup>
    <keyword>ALTO</keyword>
    <keyword>compute</keyword>
    <keyword>edge computing</keyword>
    <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>
    <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-contreras-alto-service-edge/#go.draft-contreras-alto-service-edge.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-contreras-alto-service-edge/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        WG Working Group mailing list (<eref target="mailto:alto@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/alto/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/alto/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/giralt/draft-contreras-alto-service-edge"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>With the advent of network virtualization, operators
can make use of dynamic instantiation of network functions and
applications by using different techniques on top of
commoditized computation infrastructures, permitting
a flexible and on-demand deployment of services, aligned
with the actual needs as demanded by the users.</t>
      <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 is translated 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, as this decision should be
influenced not only by the available resources
in a given computing
environment, but also by the network capacity of the
path connecting the traffic source with the destination.</t>
      <t>It is then essential for a network operator to have
mechanisms assisting this decision by considering
a number of constraints related to the function or
application to be deployed, understanding how a
given decision on the computing environment
for the service edge affects the transport network
substrate. This would enable the integration of network
capabilities in the function placement decision
and further optimize performance of the deployed
application.</t>
      <t>This document proposes the use of ALTO <xref target="RFC7285"/>
for assisting such a decision.</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>
    </section>
    <section anchor="computing-needs">
      <name>Computing Needs</name>
      <t>The compute needs for an application or service function are typically set in terms of certain requirements in terms of processing capabilities (i.e., CPU), as well as volatile memory (i.e., RAM) and storage capacity. There are two ways of considering those needs: either as individual values for each of the resources, or as a pre-defined bundle of them in the form of instance or compute flavor.</t>
      <section anchor="working-with-compute-resource-values">
        <name>Working with compute resource values</name>
        <t>Compute resource values can be obtained from cloud manager systems able to provide information about compute resources in a given compute node. These cloud manager systems typically provide information about total resources in the compute node and either the used or the allocatable resources. This information can be leveraged for taking application or service function placement decisions from the compute capability perspective.
Each cloud management system has their own schema of information to be provided. In general terms, information about CPU, memory and storage can be provided, together with the identifiers of the compute node and some other system information. Examples of these cloud management systems are Kubernetes, OpenStack and OpenNebula.
The following table summarizes some of the obtainable information from these cloud management systems.</t>
        <figure anchor="table_CloudMngrs">
          <name>Compute resource information from well known cloud managers</name>
          <artwork><![CDATA[
+-------------------------+---------------------------+----------------------------------+
| Cloud Management System | Basic compute information | Additional information (example) |
+-------------------------+---------------------------+----------------------------------+
| Kubernetes              | CPU, memory (total and    | Node name, machine ID, operating |
|                         | allocatable)              | system, etc                      |
+-------------------------+---------------------------+----------------------------------+
| OpenStack               | CPU, memory, storage      | Compute node ID, node name,      |
|                         | (total and used)          | hypervisor type, etc             |
+-------------------------+---------------------------+----------------------------------+
| OpenNebula              | CPU, memory, storage      | Compute node name, cluster ID    |
|                         | (max and used)            | hypervisor type, etc             |
+-------------------------+---------------------------+----------------------------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="working-with-compute-flavors">
        <name>Working with compute flavors</name>
        <t>Cloud computing providers such as Amazon Web Services
Microsoft Azure, or Google Cloud Platform, typically structure their offerings
of computing capabilities by bundling CPU, RAM and
storage units as quotas, instances, and flavors that
can be consumed in an ephemeral fashion,
during the actual lifetime of the required function
or application. In the case of Amazon Web Services such grouping of compute resources is denominated instance type, being the same concept named as virtual machine size in Microsoft Azure and machine type in Google Cloud Platform.</t>
        <t>This same approach is being taken for
characterizing bundles of resources on the
so-called Network Function Virtualization
Infrastructure Points of Presence (NFVI-PoPs)
being deployed by the telco operators.
For instance, the Common Network Function
Virtualization Infrastructure Telecom Taskforce
(CNTT) <xref target="CNTT"/>, jointly hosted by GSMA
<xref target="GSMA"/> and the Linux Foundation, intends to harmonize
the definition of
instances and flavors for abstracting capabilities
of the underlying NFVI, facilitating a
more efficient utilization of the infrastructure
and simplifying the integration and certification
of functions. (Here certification means the assessment
of the expected behavior for a given function
according to the level of resources determined by
a given flavor.) An evolution of this initiative is
Anuket <xref target="Anuket"/>, which works to consolidate
different architectures for well-known tools
such as OpenStack and Kubernetes.</t>
        <t>Taking CNTT as an example, the flavors or instances
can be characterized according to:</t>
        <ul spacing="normal">
          <li>
            <em>Type of instance (T):</em> Used to specify the type of instances,
which are characterized as B (Basic), or N (Network Intensive).
The latter includes network acceleration extensions
for offloading network intensive operations to hardware.</li>
          <li>
            <em>Interface Option (I):</em> Used to specify the associated
bandwidth of the network interface.</li>
          <li>
            <em>Compute flavor (F):</em> Used to specify a given predefined
combination of resources in terms of virtual CPU, RAM,
disk, and bandwidth for the management interface.</li>
          <li>
            <em>Optional storage extension (S):</em> Used to specify additional storage capacity.</li>
          <li>
            <em>Optional hardware acceleration characteristics (A):</em>
Used to specify acceleration capabilities for
improving the performance of the application.</li>
        </ul>
        <t>The naming convention of an instance is thus encoded as TIFSA.</t>
      </section>
      <section anchor="alto-to-support-abstracted-compute-information">
        <name>ALTO to support abstracted compute information</name>
        <t>Examples in sections 3.1  in particular Figure 1 stress the need
to abstract these values for the sake of harmonization and ALTO
could provide the information services to do so. Abstraction is
also needed to (i) aggregate values for simplicity or scalability
and (ii) support potential confidentiality needs of data center
management entity.  To specify the ALTO metrics relevant to compute
capabilities, an exercise similar to the RFC-9439 to be <xref target="I-D.ietf-alto-performance-metrics"/>
would be useful. The initial metrics could be taken from different
standardization bodies or cloud providers or IETF working groups.
Besides, metrics reflecting energy consumption of application
deployment footprint also need to be considered, given the expected
massive usage of ML/AI and the current context urging to optimize
energy consumption.</t>
      </section>
    </section>
    <section anchor="usage-of-alto-for-service-placement">
      <name>Usage of ALTO for Service Placement</name>
      <t>ALTO can assist the deployment of a service on a
specific flavor or instance of
the computing substrate by taking into consideration
network cost metrics.
A generic and primary approach is to take into
account metrics related to the computing environment,
such as availability of resources, unitary cost
of those resources, etc.
Nevertheless, the function or application to be
deployed on top of a given flavor must also be
interconnected outside the computing
environment where it is deployed,
therefore requiring the necessary network
resources to satisfy application performance
requirements such as bandwidth or latency.</t>
      <t>The objective then is to leverage ALTO to
provide information about the more convenient
execution environments to deploy virtualized
network functions or applications, allowing
the operator to get a coordinated service edge
and transport network recommendation.</t>
      <section anchor="integrating-compute-information-in-alto">
        <name>Integrating Compute Information in ALTO</name>
        <t>CNTT proposes the existence of a catalogue
of compute infrastructure profiles collecting
the computing capability instances available
to be consumed. Such a catalogue could be
communicated to ALTO or even incorporated to it.</t>
        <t>ALTO server queries could support
TIFSA encoding in order to retrieve proper
maps from ALTO. Additionally, filtered queries
for particular characteristics of a flavor
could also be supported.</t>
      </section>
      <section anchor="association-of-compute-capabilities-to-network-topology">
        <name>Association of Compute Capabilities to Network Topology</name>
        <t>It is required to associate the location of the
available instances with topological information
to allow ALTO construct the overall map. The
expectation is that the management of the network and
cloud capabilities will be performed by the same entity,
producing an integrated map to handle both network and
compute abstractions jointly. While this can be
straightforward when an ISP owns both the network
and the cloud infrastructure, it can in general require
collaboration between multiple administrative domains.
Details on potential scenarios will be provided
in future versions of this document.</t>
        <t>At this stage, four potential solutions could be
considered:</t>
        <ul spacing="normal">
          <li>To leverage (and possibly extend)
<xref target="I-D.ietf-teas-sf-aware-topo-model"/> for
disseminating topology information together
with the notion of function location (that would
require to be adapted to the existence of available
compute capabilities). A recent effort in this
direction can be found in
<xref target="I-D.llc-teas-dc-aware-topo-model"/>.</li>
          <li>To extend BGP-LS <xref target="RFC7752"/>,
which is already considered as a mechanism for
feeding topology information in ALTO, in order
to also advertise computing capabilities
as well.</li>
          <li>To combine information from the infrastructure
profiles catalogue with topological information
by leveraging the IP prefixes allocated to
the gateway providing connectivity to the NFVI PoP.</li>
          <li>To integrate with Cloud Infrastructure
Managers that could expose cloud infrastructure
capabilities as in <xref target="CNTT"/> and <xref target="GSMA"/>.</li>
        </ul>
        <t>The viability of these options will be explored
in future versions of this document.</t>
      </section>
      <section anchor="alto-architecture-for-determining-serve-edge">
        <name>ALTO Architecture for Determining Serve Edge</name>
        <t>The following logical architecture defines the
usage of ALTO for determining service edges.</t>
        <figure anchor="EdgeArchitecture">
          <name>Service Edge Information Exchange.</name>
          <artwork><![CDATA[
                         +--------+   Topological   +---------+
                         |        |   Information   |         |
                         |        |<--------------->| e.g.BGP |
                ALTO     |        |                 |         |
  +--------+  protocol   |        |                 +---------+
  | Client |<----------->|  ALTO  |
  +--------+             | Server |
                         |        |    Computing    +---------+
                         |        |   Information   |  e.g.,  |
                         |        |<--------------->|  Infra. |
                         |        |                 |Catalogue|
                         +--------+                 +---------+
]]></artwork>
        </figure>
        <t>In order to select the optimal edge server
from both the network (e.g.,
the path with lower latency and/or higher bandwidth)
and the cloud perspectives (e.g., number of CPUs/GPUs,
available RAM and storage capacity),
there is a need to see the edge server as
both an IP entity (as in <xref target="RFC7285"/>)
and an Abstract Network Element (ANE)
entity (as in <xref target="RFC9275"/>).</t>
        <t>Currently there is no mechanism (neither in <xref target="RFC9275"/> nor
<xref target="RFC9240"/>) to see the same edge server as an entity
in both domains. The design of ALTO, however,
allows extensions that could be used to identify
that an entity can be defined in several domains.
These different domains and their related properties
can be specified in extended ALTO property maps,
as proposed in the next sections.</t>
      </section>
    </section>
    <section anchor="alto-design-considerations-for-determining-service-edge">
      <name>ALTO Design Considerations for Determining Service Edge</name>
      <t>This section is in progress and gathers the
ALTO features that are needed to support the
exposure of both networking capabilities and
compute capabilities in ALTO Maps.</t>
      <t>In particular, ALTO Entity Property Maps defined in
<xref target="RFC9240"/> can be extended. <xref target="RFC9240"/> generalizes
the concept of endpoint properties to domains of other
entities through property maps. Entities can be
defined in a wider set of entity domains such as IPv4,
IPv6, PID, AS, ISO3166-1 country codes or ANE.
In addition, RFC 9240 specifies how properties can be
defined on entities of each of these domains.</t>
      <section anchor="example-of-entity-definition-in-different-domains">
        <name>Example of Entity Definition in Different Domains</name>
        <t>As there can be applications that do not
necessarily need both compute and networking information,
it is fine to keep the entity domains separate, each with
their own native properties.
However, some applications need information
on both topics, and a scalable and flexible
solution consists in defining an ALTO property
type, that:</t>
        <ul spacing="normal">
          <li>Indicates that an entity can be defined in
several domains;</li>
          <li>Specifies, for an entity, the other domains
where this entity is defined.</li>
        </ul>
        <t>For instance, one possible approach is to
introduce entity properties that
list other entity domains where an
edge server is identified. This property
type should be usable in all entity
domains types. The following provides an
example where the property "entity domain mapping"
lists the other domains in which an entity is defined.</t>
        <t>Suppose an edge server is identified as follows:</t>
        <ul spacing="normal">
          <li>In the IPV4 domain, with an IP address, e.g., ipv4:1.2.3.4;</li>
          <li>In the ANE domain, with an identifier, e.g., ane:DC10-HOST1.</li>
        </ul>
        <t>To get information on this edge server as an
entity in the "ipv4" entity domain, an ALTO
client can query the properties "pid" and
"entity-domain-mappings" and obtain a response as follows:</t>
        <artwork><![CDATA[
POST /propmap/lookup/dc-ip HTTP/1.1
Host: alto.example.com
Accept: application/alto-propmap+json,application/alto-error+json
Content-Length: TBC
Content-Type: application/alto-propmapparams+json
{
"entities" : ["ipv4:1.2.3.4"],
"properties" : [ "pid", "entity-domain-mappings"]
}


HTTP/1.1 200 OK
Content-Length: TBC
Content-Type: application/alto-propmap+json
{
"meta" : {},

"property-map":  {
    "ipv4:1.2.3.4" :
      {"pid" : DC10,
        "entity-domain-mappings" : ["ane"]}
    }
}
]]></artwork>
        <t>To get information on this edge server as an
  entity in the "ane" entity domain, an ALTO
  client can query the properties "entity-domain-mappings"
  and "network-address" and obtain a response as follows:</t>
        <artwork><![CDATA[
POST /propmap/lookup/dc-ane HTTP/1.1
Host: alto.example.com
Accept: application/alto-propmap+json,application/alto-error+json
Content-Length: TBC
Content-Type: application/alto-propmapparams+json
{
"entities" : ["ane:DC10-HOST1"],
"properties" : [ "entity-domain-mappings", "network-address"]
}

HTTP/1.1 200 OK
Content-Length: TBC
Content-Type: application/alto-propmap+json
{
"meta" : {},

"property-map":  {
  "ane:DC10-HOST1"
      {"entity domain mappings :  ["ipv4"]",
        "network-address" :  ipv4:1.2.3.4}
      }
}
]]></artwork>
        <t>Thus, if the ALTO Client sees the edge server
as an entity with a network address, it knows
that it can see the server as an ANE on which
it can query relevant properties.</t>
        <t>Further elaboration will be provided in future
versions of this document.</t>
      </section>
      <section anchor="definition-of-flavors-in-alto-property-map">
        <name>Definition of Flavors in ALTO Property Map</name>
        <t>The ALTO Entity Property Maps <xref target="RFC9240"/>
generalize the concept of endpoint properties
to domains of other entities through
property maps. The term "flavor" or "instance"
refers to an abstracted set of computing
resources, with well-specified properties such as
CPU, RAM and Storage. Thus, a flavor can be
seen as an ANE with properties defined in terms
of TIFSA. A flavor or instance
is a group of 1 or more elements that can be
reached via one or more network addresses. So
an instance can also be seen as a PID that
groups one or more IP addresses. In a context
such as the one defined in CNTT, an ALTO
property map could be used to expose TIFSA
information of potential candidate flavors, i.e.,
potential NFVI-PoPs where an application or
service can be deployed.</t>
        <t><xref target="example_edge"/> below depicts an example of a typical edge-cloud scenario
<xref target="RFC9275"/> where each ANE represents a flavor/instance that resides on
different cloud servers.  Flavors on the "on-premise" edge nodes have
limited resources (but are closer to the end hosts), and flavors on
the site-radio edge node and access central office (CO) have more
available resources.</t>
        <figure anchor="example_edge">
          <name>Example Use Case for Service Edge.</name>
          <artwork><![CDATA[
   A                B
   |                |         Access CO    Cloud DC
+--|-------+  +-----|-----+  +---------+  +---------+
|          |  |           |  |         |  |         |
|+--------+|  |+---------+|  |+-------+|  |+-------+|
||small-1 ||--||medium-1 ||--||large-1||--||large-2||
|+--------+|  |+---------+|  |+-------+|  |+-------+|
|   ANE    |  |    ANE    |  |   ANE   |  |   ANE   |
+----------+  +-----------+  +----|----+  +---------+
 On premise    site-radio         |
               edge node          |
+----------+                      |
|          |                      |
|+--------+|                      |
||small-2 ||----------------------+
|+--------+|
|   ANE    |
+--|-------+
   |On premise
   |
   C
]]></artwork>
        </figure>
        <t>Based on the reference scenario (<xref target="example_edge"/>), <xref target="table_PropertyMap"/> shows fictitious
TIFSA property types for entities of domain type "ane":</t>
        <figure anchor="table_PropertyMap">
          <name>ALTO Property Map.</name>
          <artwork><![CDATA[
  +--------+------------+-------+-----+------+------+-----+---+---+
  | flavor |  type (T)  | inter | f-c | f-ra | f-di | f-b | S | A |
  | -name  |            |  face |  pu |  m   |  sk  |  w  |   |   |
  |        |            |  (I)  | (F) | (F)  | (F)  | (F) |   |   |
  +--------+------------+-------+-----+------+------+-----+---+---+
  | small- |   basic    |   1   |  1  | 512  | 1 GB | 1 G |   |   |
  |   1    |            |  Gbps |     |  MB  |      | bps |   |   |
  .................................................................
  | small- |  network-  |   9   |  1  | 512  | 1 GB | 1 G |   |   |
  |   2    | intensive  |  Gbps |     |  MB  |      | bps |   |   |
  .................................................................
  | medium |  network-  |   25  |  2  | 4 GB |  40  | 1 G |   |   |
  |   -1   | intensive  |  Gbps |     |      |  GB  | bps |   |   |
  .................................................................
  | large- |  compute-  |   50  |  4  | 8 GB |  80  | 1 G |   |   |
  |   1    | intensive  |  Gbps |     |      |  GB  | bps |   |   |
  .................................................................
  | large- |  compute-  |  100  |  8  |  16  | 160  | 1 G |   |   |
  |   2    | intensive  |  Gbps |     |  GB  |  GB  | bps |   |   |
  +--------+------------+-------+-----+------+------+-----+---+---+
]]></artwork>
        </figure>
        <t>Subsequently, an ALTO client may request flavor(s) information from
source [A] to destinations [B,C].  The following is a simplified
example of an ALTO client request and the corresponding response.
Note that the response consists of two parts: (i) ANE array for each
source and destination pair (out of the scope of this document), and
(ii) the requested properties of ANEs.</t>
        <artwork><![CDATA[
POST /costmap/pv HTTP/1.1
Host: alto.example.com
Accept: multipart/related;type=application/alto-costmap+json,
        application/alto-error+json
Content-Length: 163
Content-Type: application/alto-costmapfilter+json

{
  "cost-type": {
    "cost-mode": "array",
    "cost-metric": "ane-path"
  },
  "pids": {
    "srcs": [ "A" ],
    "dsts": [ "B", "C" ]
  },
  "ane-property-names": [
    "type",
    "cpu",
    "ram",
    "disk"
  ]
}

HTTP/1.1 200 OK
Content-Length: 952
Content-Type: multipart/related; boundary=example-1;
              type=application/alto-costmap+json

Content-ID: <costmap@alto.example.com>
Content-Type: application/alto-costmap+json

{
  "meta": {
    "vtag": {
      "resource-id": "filtered-cost-map-pv.costmap",
      "tag": "d827f484cb66ce6df6b5077cb8562b0a"
    },
    "dependent-vtags": [
      {
        "resource-id": "my-default-networkmap",
        "tag": "c04bc5da49534274a6daeee8ea1dec62"
      }
    ],
    "cost-type": {
      "cost-mode": "array",
      "cost-metric": "ane-path"
    }
  },
  "cost-map": {
    "A": {
      "B": [ "small-1", "medium-1"],
      "C": [ "small-1", "medium-1", "large-1", "small-2" ]
    }
  }
}

Content-ID: <propmap@alto.example.com>
Content-Type: application/alto-propmap+json

{
    "meta" : {
    },
    "property-map": {
      ".ane:small-1":
        {"type" : "basic", "cpu" : 1,
          "ram" : "512MB", "disk" : 1GB},
      ".ane:small-2":
        {"type" : "network-intensive", "cpu" : 1,
          "ram" : "512MB", "disk" : 1GB},
      ".ane:medium-1":
        {"type" : "compute-intensive", "cpu" : 2,
          "ram" : "4GB", "disk" : 40GB},
      ".ane:large-1":
       {"type" : "compute-intensive", "cpu" : 4,
         "ram" : "8GB", "disk" : 80GB}
   }    }
]]></artwork>
      </section>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <section anchor="open-abstraction-for-edge-computing">
        <name>Open Abstraction for Edge Computing</name>
        <t>As shown in this document, 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 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 and GPUs) are deployed to build the edge cloud through
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>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.</li>
          <li>Latency: For applications such as driverless vehicles which require real-time
inference at very low latency, running at the edge is necessary.</li>
          <li>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.</li>
          <li>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.</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>
    <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>
    <section anchor="conclusions">
      <name>Conclusions</name>
      <t>Telco networks will increasingly contain a number
of interconnected data centers and edge
clouds of different sizes
and characteristics, allowing flexibility in the
dynamic deployment of functions and applications
for advanced services. The overall objective of
this document is to begin a discussion in the
ALTO WG regarding the suitability of the ALTO
protocol for determining where to deploy a
function or application in these distributed computing
environments. The result of these discussions
will be reflected in future versions of this draft.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC7285" target="https://www.rfc-editor.org/info/rfc7285" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7285.xml">
          <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="RFC7752" target="https://www.rfc-editor.org/info/rfc7752" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7752.xml">
          <front>
            <title>North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP</title>
            <author fullname="H. Gredler" initials="H." role="editor" surname="Gredler"/>
            <author fullname="J. Medved" initials="J." surname="Medved"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="S. Ray" initials="S." surname="Ray"/>
            <date month="March" year="2016"/>
            <abstract>
              <t>In a number of environments, a component external to a network is called upon to perform computations based on the network topology and current state of the connections within the network, including Traffic Engineering (TE) information. This is information typically distributed by IGP routing protocols within the network.</t>
              <t>This document describes a mechanism by which link-state and TE information can be collected from networks and shared with external components using the BGP routing protocol. This is achieved using a new BGP Network Layer Reachability Information (NLRI) encoding format. The mechanism is applicable to physical and virtual IGP links. The mechanism described is subject to policy control.</t>
              <t>Applications of this technique include Application-Layer Traffic Optimization (ALTO) servers and Path Computation Elements (PCEs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7752"/>
          <seriesInfo name="DOI" value="10.17487/RFC7752"/>
        </reference>
        <reference anchor="RFC9275" target="https://www.rfc-editor.org/info/rfc9275" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9275.xml">
          <front>
            <title>An Extension for Application-Layer Traffic Optimization (ALTO): Path Vector</title>
            <author fullname="K. Gao" initials="K." surname="Gao"/>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <author fullname="S. Randriamasy" initials="S." surname="Randriamasy"/>
            <author fullname="Y. Yang" initials="Y." surname="Yang"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <date month="September" year="2022"/>
            <abstract>
              <t>This document is an extension to the base Application-Layer Traffic Optimization (ALTO) protocol. It extends the ALTO cost map and ALTO property map services so that an application can decide to which endpoint(s) to connect based not only on numerical/ordinal cost values but also on fine-grained abstract information regarding the paths. This is useful for applications whose performance is impacted by specific components of a network on the end-to-end paths, e.g., they may infer that several paths share common links and prevent traffic bottlenecks by avoiding such paths. This extension introduces a new abstraction called the "Abstract Network Element" (ANE) to represent these components and encodes a network path as a vector of ANEs. Thus, it provides a more complete but still abstract graph representation of the underlying network(s) for informed traffic optimization among endpoints.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9275"/>
          <seriesInfo name="DOI" value="10.17487/RFC9275"/>
        </reference>
        <reference anchor="RFC9240" target="https://www.rfc-editor.org/info/rfc9240" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9240.xml">
          <front>
            <title>An Extension for Application-Layer Traffic Optimization (ALTO): Entity Property Maps</title>
            <author fullname="W. Roome" initials="W." surname="Roome"/>
            <author fullname="S. Randriamasy" initials="S." surname="Randriamasy"/>
            <author fullname="Y. Yang" initials="Y." surname="Yang"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <author fullname="K. Gao" initials="K." surname="Gao"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document specifies an extension to the base Application-Layer Traffic Optimization (ALTO) Protocol that generalizes the concept of "endpoint properties", which have been tied to IP addresses so far, to entities defined by a wide set of objects. Further, these properties are presented as maps, similar to the network and cost maps in the base ALTO Protocol. While supporting the endpoints and related Endpoint Property Service defined in RFC 7285, the ALTO Protocol is extended in two major directions. First, from endpoints restricted to IP addresses to entities covering a wider and extensible set of objects; second, from properties for specific endpoints to entire entity property maps. These extensions introduce additional features that allow entities and property values to be specific to a given information resource. This is made possible by a generic and flexible design of entity and property types.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9240"/>
          <seriesInfo name="DOI" value="10.17487/RFC9240"/>
        </reference>
        <reference anchor="I-D.ietf-alto-performance-metrics" target="https://datatracker.ietf.org/doc/html/draft-ietf-alto-performance-metrics-28" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-alto-performance-metrics.xml">
          <front>
            <title>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., estimation based on measurements or service-level agreement) to derive 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.ietf-teas-sf-aware-topo-model" target="https://datatracker.ietf.org/doc/html/draft-ietf-teas-sf-aware-topo-model-11" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teas-sf-aware-topo-model.xml">
          <front>
            <title>SF Aware TE Topology YANG Model</title>
            <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
              <organization>Individual</organization>
            </author>
            <author fullname="Xufeng Liu" initials="X." surname="Liu">
              <organization>IBM Corporation</organization>
            </author>
            <author fullname="Young Lee" initials="Y." surname="Lee">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Jim Guichard" initials="J." surname="Guichard">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Daniele Ceccarelli" initials="D." surname="Ceccarelli">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Dmytro Shytyi" initials="D." surname="Shytyi"/>
            <date day="12" month="March" year="2023"/>
            <abstract>
              <t>This document describes a YANG data model for TE network topologies that are network service and function aware.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-sf-aware-topo-model-11"/>
        </reference>
        <reference anchor="I-D.llc-teas-dc-aware-topo-model" target="https://datatracker.ietf.org/doc/html/draft-llc-teas-dc-aware-topo-model-02" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.llc-teas-dc-aware-topo-model.xml">
          <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>IBM Corporation</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <date day="11" month="July" year="2022"/>
            <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-02"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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>
        <name>Informative References</name>
        <reference anchor="CNTT">
          <front>
            <title>Cloud Infrastructure Telco Taskforce Reference Model</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="June"/>
          </front>
          <seriesInfo name="https://github.com/cntt-n/CNTT/wiki" value=""/>
        </reference>
        <reference anchor="GSMA">
          <front>
            <title>Cloud Infrastructure Reference Model, Version 2.0</title>
            <author>
              <organization/>
            </author>
            <date year="2021" month="October"/>
          </front>
          <seriesInfo name="https://www.gsma.com/newsroom/wp-content/uploads//NG.126-v2.0-1.pdf" value=""/>
        </reference>
        <reference anchor="Anuket">
          <front>
            <title>Anuket Project</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="October"/>
          </front>
          <seriesInfo name="https://wiki.anuket.io/" value=""/>
        </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>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The work of Luis M. Contreras has been partially funded by the European Union under the Horizon Europe project CODECO (COgnitive, Decentralised Edge-  Cloud Orchestration), grant number 101092696.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA919a3PbRrbg9/4VvcxWjTQhqUfkl5KZil52tNe2dC0lmamU
6xYINEWMQIBBA5IZS/9lf8v+sj2vbnSDpO3czM69ta5KRBKNfpw+fd7n9Gg0
Ul999ZX6Sp+XjalL04xO62Ta6DdJfZtV96W+NvNFkTRGYaN3pkzmRjez3Opp
Xhg9rau5zvCNUVNl1WhZtTU2GS3qqqnSqhjPM91U+sY02jZJ3ZhsDP3wGNTX
tKrnSaOhwwH3853r46+j7+6r+vamrtoFfKafoLvBmKbysqp1XuZNnhTamqZd
DDW8qKuyWOrSGBrVZHkDk4VB8to2elJU6a2upvDVFJnFiVxg80GTN4UZ0GsW
35sYnc6S8sZk3+rMFKYxepBMJrW5G+h8iuPUmt7BadtZVTfY11G51BWMVuu0
AmCWjU6TEvvCaZhsqCdtQ10ntZm2hS6rBgfLy6ausjaFdnVd1TStqwohQ7PU
93lR4GuwSJ20TQXQytOkgHlnbZ2XN7x6nBeMvdTQuW5LmT6D6rQq/wQQLtOi
zWAlo93dgQboDUa4r7aBNZUCpYL2F2fwOpmYwvonsEn6C7ZHeuRJWNiEyRL6
wh6aqioItrB2gBB8wF/Ttq4RUHemtnlVfgtrgQlmVYq9DXBYbT4kgICGV3KN
iNcIRuIIVt/WyRwRdVRP00M9a5qFPdzZucmbWTsZp9V8J00m1U7YCvr5O2AK
bk5toKfU0FxgHnnNQJBN1guebKKzfAofcKaMrgihEwKxBxxMFPYcV4GLgzbp
zIMO8Htr/GFe0IL+9ub1UJsmHY/H27goOH2ES4d68KM1iJ5Hr68vqOkpYF49
ByyHXb4y9V0OUz3LbsxApbD+m6peHsIOTSulBGSHskmIgLWpEztKiqYaWX53
ZODd0e4LlS/qQ93UrW32d3df7O4r207mucXJN8sF9HJ+dv1S6690UtgK5pWX
mVkY+F/ZDIZ6cH50DH8Qg87fXb8cKNjt5FAfvTs7Uh4jDmkV6tYs4afsUOkR
/wB/YVMWLRAU+IgTku+wRnVnytZAWy1d/PwKPvOMfoaOEQyv8An8Ok/y4lDj
6r7PTTMdV/UN/JrU6axDAmyDv+R3Zuwa7eAPO5O6urdmB1/fweEIWw7hbw0/
7XwWhvAKI3qIcPjqWPAurz7fyc5XN9X4s63Gs2ZeKAUHH8gMghHG1hrIR8H7
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
olB7u3u7L/afvng6Vv8XCana1c2JAAA=

-->

</rfc>
