rfc9240.original.xml   rfc9240.xml 
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft
-ietf-alto-unified-props-new-24" number="9240" obsoletes="" updates="" submissio
nType="IETF" category="std" consensus="true" xml:lang="en" tocInclude="true" toc
Depth="3" sortRefs="true" symRefs="true" version="3">
<!-- [rfced] v23 was approved. Authors submitted v24 before we even added the do
c to our queue.
Please start with v24 but note the diffs in URL https://datatracker.ietf.org/doc
/html/draft-ietf-alto-unified-props-new-24 and ask the ADs for approval as neede
d. -->
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.13 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc iprnotified="no"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft
-ietf-alto-unified-props-new-24" category="std" obsoletes="" updates="" submissi
onType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" sortRefs="true" symRe
fs="true" version="3">
<!-- xml2rfc v2v3 conversion 2.40.0 -->
<front> <front>
<title abbrev="Entity Property Maps">An ALTO Extension: Entity Property Maps <title abbrev="Entity Property Maps">An Extension for Application-Layer Traf
</title> fic Optimization (ALTO): Entity Property Maps</title>
<seriesInfo name="Internet-Draft" value="draft-ietf-alto-unified-props-new-2 <seriesInfo name="RFC" value="9240"/>
4"/>
<author initials="W." surname="Roome" fullname="Wendy Roome"> <author initials="W." surname="Roome" fullname="Wendy Roome">
<organization abbrev="Nokia Bell Labs">Nokia Bell Labs (Retired)</organiza tion> <organization abbrev="Nokia Bell Labs">Nokia Bell Labs (Retired)</organiza tion>
<address> <address>
<postal> <postal>
<street>124 Burlington Rd</street> <street>124 Burlington Rd</street>
<city>Murray Hill</city> <city>Murray Hill</city>
<region>NJ</region> <region>NJ</region>
<code>07974</code> <code>07974</code>
<country>USA</country> <country>United States of America</country>
</postal> </postal>
<phone>+1-908-464-6975</phone> <phone>+1-908-464-6975</phone>
<email>wendy@wdroome.com</email> <email>wendy@wdroome.com</email>
</address> </address>
</author> </author>
<author initials="S." surname="Randriamasy" fullname="Sabine Randriamasy"> <author initials="S." surname="Randriamasy" fullname="Sabine Randriamasy">
<organization>Nokia Bell Labs</organization> <organization>Nokia Bell Labs</organization>
<address> <address>
<postal> <postal>
<street>Route de Villejust</street> <street>Route de Villejust</street>
<city>NOZAY</city> <city>NOZAY</city>
<code>91460</code> <code>91460</code>
<country>FRANCE</country> <country>France</country>
</postal> </postal>
<email>Sabine.Randriamasy@nokia-bell-labs.com</email> <email>Sabine.Randriamasy@nokia-bell-labs.com</email>
</address> </address>
</author> </author>
<author initials="Y." surname="Yang" fullname="Y. Richard Yang"> <author initials="Y." surname="Yang" fullname="Y. Richard Yang">
<organization>Yale University</organization> <organization>Yale University</organization>
<address> <address>
<postal> <postal>
<street>51 Prospect Street</street> <street>51 Prospect Street</street>
<city>New Haven</city> <city>New Haven</city>
<code>CT 06511</code> <region>CT</region>
<country>USA</country> <code>06511</code>
<country>United States of America</country>
</postal> </postal>
<phone>+1-203-432-6400</phone> <phone>+1-203-432-6400</phone>
<email>yry@cs.yale.edu</email> <email>yry@cs.yale.edu</email>
</address> </address>
</author> </author>
<author initials="J." surname="Zhang" fullname="Jingxuan Jensen Zhang"> <author initials="J." surname="Zhang" fullname="Jingxuan Jensen Zhang">
<organization>Tongji University</organization> <organization>Tongji University</organization>
<address> <address>
<postal> <postal>
<street>4800 Cao'An Hwy</street> <street>4800 Cao'An Hwy</street>
skipping to change at line 86 skipping to change at line 77
<address> <address>
<postal> <postal>
<street>No.24 South Section 1, Yihuan Road</street> <street>No.24 South Section 1, Yihuan Road</street>
<city>Chengdu</city> <city>Chengdu</city>
<code>610000</code> <code>610000</code>
<country>China</country> <country>China</country>
</postal> </postal>
<email>kaigao@scu.edu.cn</email> <email>kaigao@scu.edu.cn</email>
</address> </address>
</author> </author>
<date year="2022" month="February" day="28"/> <date year="2022" month="July"/>
<area>Networks</area> <area>tsv</area>
<workgroup>ALTO WG</workgroup> <workgroup>alto</workgroup>
<keyword>ALTO</keyword> <keyword>ALTO</keyword>
<abstract> <abstract>
<t>This document specifies an extension to the base <t>This document specifies an extension to the base
Application-Layer Traffic Optimization (ALTO) Application-Layer Traffic Optimization (ALTO)
protocol that generalizes the concept of "endpoint properties", Protocol that generalizes the concept of "endpoint properties",
which were so far tied to IP addresses, which have been tied to IP addresses so far,
to entities defined by a wide set of objects. to entities defined by a wide set of objects.
Further, these properties are presented as maps, similar to the Further, these properties are presented as maps, similar to the
network and cost maps in the base ALTO protocol. network and cost maps in the base ALTO Protocol.
While supporting the endpoints and related endpoint property service defi While supporting the endpoints and related Endpoint Property Service defi
ned in RFC7285, ned in RFC 7285,
the ALTO protocol is extended in two major directions. the ALTO Protocol is extended in two major directions.
First, from endpoints restricted to IP addresses to First, from endpoints restricted to IP addresses to
entities covering a wider and extensible set of objects; second, from entities covering a wider and extensible set of objects; second, from
properties on specific endpoints to entire entity property maps. These properties for specific endpoints to entire entity property maps. These
extensions introduce additional features allowing entities and property extensions introduce additional features that allow entities and property
values to be specific to a given information resource. This is made possi ble values to be specific to a given information resource. This is made possi ble
by a generic and flexible design of entity and property types.</t> by a generic and flexible design of entity and property types.</t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section anchor="introduction" numbered="true" toc="default"> <section anchor="introduction" numbered="true" toc="default">
<name>Introduction</name> <name>Introduction</name>
<t>The ALTO protocol <xref target="RFC7285" format="default"/> introduce s <t>The ALTO Protocol <xref target="RFC7285" format="default"/> introduce s
the concept of "properties" attached to "endpoint addresses". the concept of "properties" attached to "endpoint addresses".
It also defines the Endpoint Property Service (EPS) to It also defines the Endpoint Property Service (EPS) to
allow ALTO clients to retrieve those properties. While useful, the EPS, a allow ALTO clients to retrieve those properties. While useful, the EPS as
s defined in <xref target="RFC7285" format="default"/> has at least three l
defined in <xref target="RFC7285" format="default"/>, has at least three imitations,
limitations which are elaborated here.</t>
that are further elaborated hereafter.</t> <t>First, the EPS allows properties to be associated only with endpoints t
hat
<t>First, the EPS allows properties to be associated with only endpoints t
hat
are identified by individual communication addresses like IPv4 and IPv6 are identified by individual communication addresses like IPv4 and IPv6
addresses. It is reasonable to think that collections of endpoints addresses. It is reasonable to think that collections of endpoints
<!--, as defined by CIDRs <xref target="RFC4632" format="default"/> --> identified by Provider-Defined Identifiers (PIDs) may also have properti
or Provider-Defined Identifiers (PIDs), may also have properties. es.
<!-- Furthermore,
recent ALTO use cases show that properties of entities such as network fl
ows
<xref target="RFC7011" format="default"/>
and routing elements <xref target="RFC7921" format="default"/> are also u
seful.
Such cases are documented, for example, in <xref target="I-D.gao-alto-fcs
" format="default"/>. -->
Furthermore, recent ALTO use cases show that properties Furthermore, recent ALTO use cases show that properties
of entities such as abstracted network elements as defined in of entities such as Abstract Network Elements as defined in
<xref target="I-D.ietf-alto-path-vector" format="default"/> <xref target="I-D.ietf-alto-path-vector" format="default"/>
are also useful. are also useful.
However, the current EPS is restricted to However, the current EPS is restricted to
individual endpoints and cannot be applied to those entities.</t> individual endpoints and cannot be applied to those entities.</t>
<t>Second, the EPS only allows endpoints identified by global communicatio n <t>Second, the EPS only allows endpoints identified by global communicatio n
addresses. However, an endpoint address may be a local IP address or an addresses. However, an endpoint address may be a local IP address or an
anycast IP address that may not be globally unique. Additionally, an entity anycast IP address that may not be globally unique. Additionally, an entity
such as a PID may have an identifier that is not globally unique. That is, a such as a PID may have an identifier that is not globally unique. That is, the
same PID may be used in multiple network maps, while in each same PID may be used in multiple network maps, while in each
network map, this PID points to a different set of addresses. network map, this PID points to a different set of addresses.
<!--
For
example, PID "mypid10" may be defined in "netmap1" and "netmap2" while in
each network map, "mypid10" covers a different set of addresses.-->
</t> </t>
<t>Third, in section 11.4 of <xref target="RFC7285" format="default"/>,
<t>Third, in <xref target="RFC7285" section="11.4" sectionFormat="of" form
at="default"/>,
the EPS is only defined as a POST-mode service. ALTO clients must request the EPS is only defined as a POST-mode service. ALTO clients must request
the properties for an explicit set of endpoint addresses. By contrast, the properties for an explicit set of endpoint addresses. By contrast,
<xref target="RFC7285" format="default"/>, in section 11.2.3, <xref target="RFC7285" section="11.2.3" sectionFormat="of" format="default"/>
defines a GET-mode cost map resource which returns all available defines a GET-mode cost map resource that returns all available
costs, so an ALTO Client can retrieve a full set of costs once, and then process costs, so an ALTO Client can retrieve a full set of costs once and then process
cost cost
lookups without querying the ALTO server. lookups without querying the ALTO server.
<xref target="RFC7285" format="default"/> does not define a <xref target="RFC7285" format="default"/> does not define a
similar service for endpoint properties. At first, a map of endpoint similar service for endpoint properties. At first, a map of endpoint
properties might seem impractical, because it could require enumerating the properties might seem impractical because it could require enumerating the
property value for every possible endpoint. property value for every possible endpoint.
In particular, the number of endpoint addresses involved by In particular, the number of endpoint addresses involved by
an ALTO server can be quite large. To avoid enumerating a large number an ALTO server can be quite large. To avoid enumerating a large number
of endpoint addresses inefficiently, the ALTO server might define of endpoint addresses inefficiently, the ALTO server might define
properties for a sufficiently large subset of endpoints and uses an aggregation properties for a sufficiently large subset of endpoints and then use an aggregat
representation to reference endpoints to allow efficient enumeration. ion
representation to reference endpoints in order to allow efficient enumeration.
This is particularly true if blocks of This is particularly true if blocks of
endpoint addresses with a common prefix have the same value endpoint addresses with a common prefix have the same value
for a property. Entities in other domains may very well allow aggregated for a property. Entities in other domains may very well allow aggregated
representation and hence be enumerable as well.</t> representation and hence be enumerable as well.</t>
<t>To address these three limitations, this document specifies an <t>To address these three limitations, this document specifies an
ALTO protocol extension for defining and retrieving ALTO properties:</t> ALTO Protocol extension for defining and retrieving ALTO properties:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>The first limitation is addressed by introducing a generic <li>The first limitation is addressed by introducing a generic
concept called ALTO Entity, which generalizes an endpoint and may represent concept called ALTO entity, which generalizes an endpoint and may represent
a PID, a network element, a cell in a cellular network, an abstracted a PID, a network element, a cell in a cellular network, an Abstract
network element <xref target="I-D.ietf-alto-path-vector" format="default"/>, Network Element <xref target="I-D.ietf-alto-path-vector" format="default"/>,
or other physical or logical objects involved in a network topology. Each entity is or other physical or logical objects involved in a network topology. Each entity is
included in a collection called an ALTO entity domain. Since each ALTO included in a collection called an ALTO entity domain. Since each ALTO
entity domain includes only one type of entities, each entity domain can be entity domain includes only one type of entity, each entity domain can be
classified by the type of enclosed entities.</li> classified by the type of enclosed entities.</li>
<li>The second limitation is addressed by using resource-specific <li>The second limitation is addressed by using resource-specific
entity domains. A resource-specific entity domain contains entities that entity domains. A resource-specific entity domain contains entities that
are defined and identified with respect to a given ALTO information are defined and identified with respect to a given ALTO information
resource, which provides scoping. For example, an entity domain containing resource, which provides scoping. For example, an entity domain containing
PIDs is identified with respect to the network map in which these PIDs are PIDs is identified with respect to the network map in which these PIDs are
defined. Likewise, an entity domain containing local IP addresses may be defined. Likewise, an entity domain containing local IP addresses may be
defined with respect to a local network map.</li> defined with respect to a local network map.</li>
<li>The third limitation is addressed by defining two new types of ALTO <li>The third limitation is addressed by defining two new types of ALTO
information resources: Property Map (<xref target="prop-map" format="defa information resources: property map (<xref target="prop-map" format="defa
ult"/>) ult"/>)
and Filtered Property Map (<xref target="filter-prop-map" format="default and filtered property map (<xref target="filter-prop-map" format="default
"/>). "/>).
The former is a resource that is requested using the HTTP GET method, The former is a resource that is requested using the HTTP GET method,
returns the property values for all entities in one or more returns the property values for all entities in one or more
entity domains, and is analogous to a network map or a cost map in entity domains, and is analogous to a network map or a cost map in
Section 11.2 of <xref target="RFC7285" format="default"/>. <xref target="RFC7285" section="11.2" sectionFormat="of" format="default"
The latter is a resource that that is requested using the HTTP POST metho />.
d, The latter is a resource that is requested using the HTTP POST method,
returns the values for returns the values for
sets of properties and entities requested by the client, and is analogous sets of properties and entities requested by the client, and is analogous
to a filtered network map or a filtered cost map.</li> to a filtered network map or a filtered cost map.</li>
</ul> </ul>
<t>The Entity Property Maps extension described in this document introduce s a <t>The entity property maps extension described in this document introduce s a
number of features that are summarized in number of features that are summarized in
<xref target="features-introduced-with-epm-extension" format="default"/>, <xref target="features-introduced-with-epm-extension" format="default"/>,
where <xref target="TableUPFeatures" format="default"/> lists where <xref target="TableUPFeatures" format="default"/> lists
the features and references the sections in this document that give the features and references the sections in this document that give
their high-level and their normative description.</t> their high-level and their normative descriptions.</t>
<t>The protocol extension defined in this document is augmentable. New ent ity <t>The protocol extension defined in this document can be augmented. New e ntity
domain types can be defined without revising the present specification. domain types can be defined without revising the present specification.
Similarly, new cost metrics and new endpoint properties can be Similarly, new cost metrics and new endpoint properties can be
defined in other documents without revising the protocol specification defined in other documents without revising the protocol specification
defined in <xref target="RFC7285" format="default"/>.</t> defined in <xref target="RFC7285" format="default"/>.</t>
<section anchor="terminology" numbered="true" toc="default"> <section anchor="terminology" numbered="true" toc="default">
<name>Terminology and notation</name> <name>Terminology and Notation</name>
<t>This document uses the following terms and abbreviations, that will b <t>This document uses the following terms and abbreviations that will be
e
further defined in the document. While this document introduces the feature further defined in the document. While this document introduces the feature
"entity property map", it will use both the term "property map" and "entity "entity property map", it will use both the term "property map" and "entity
property map" to refer to this feature.</t> property map" to refer to this feature.</t>
<ul spacing="normal"> <dl spacing="normal">
<li>Transaction: A request/response exchange between an ALTO client an <dt>Transaction:</dt>
d an ALTO server.</li> <dd>A request/response exchange between an ALTO client and an ALTO ser
<li>Client: When used with a capital "C", this term refers to an ALTO ver.</dd>
client.
Note that expressions "ALTO client", "ALTO Client" and "Client" are eq <dt>Client:</dt>
uivalent. </li> <dd>When used with a capital "C", this term refers to an ALTO client.
<li>Server: When used with a capital "S", this term refers to an ALTO Note that expressions "ALTO client", "ALTO Client", and "Client" are e
server. quivalent. </dd>
Note that expressions "ALTO server", "ALTO Server" and "Server" are eq
uivalent.</li> <dt>Server:</dt>
<li>EPS: An abbreviation for Endpoint Property Service.</li> <dd>When used with a capital "S", this term refers to an ALTO server.
</ul> Note that expressions "ALTO server", "ALTO Server", and "Server" are e
<t>This document uses the semi-formal notation defined in Section 8.2 quivalent.</dd>
of <xref target="RFC7285" format="default"/>.</t>
<dt>EPS:</dt>
<dd>An abbreviation for Endpoint Property Service.</dd>
</dl>
<t>This document uses the notation defined in
<xref target="RFC7285" section="8.2" sectionFormat="of" format="default"/>
.</t>
</section> </section>
</section> </section>
<section anchor="requirements-language" numbered="true" toc="default"> <section anchor="requirements-language" numbered="true" toc="default">
<name>Requirements Language</name> <name>Requirements Language</name>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SH <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14
OULD", >REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this SHOULD</bcp14>",
document are to be interpreted as described in BCP 14 <xref target="RFC2119" for "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMEND
mat="default"/> <xref target="RFC8174" format="default"/> ED</bcp14>", "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this
when, and only when, they appear in all capitals, as shown here. When the document are to be interpreted as described in BCP&nbsp;14 <xref target="RFC2119
words appear in lower case, they are to be interpreted with their natural " format="default"/> <xref target="RFC8174" format="default"/>
language meanings.</t> when, and only when, they appear in all capitals, as shown here.</t>
</section> </section>
<section anchor="basic-features-of-the-unified-property-extension" numbered= "true" toc="default"> <section anchor="basic-features-of-the-unified-property-extension" numbered= "true" toc="default">
<name>Basic Features of the Entity Property Map Extension</name> <name>Basic Features of the Entity Property Map Extension</name>
<t>This section gives a high-level overview of the basic features involved in <t>This section gives a high-level overview of the basic features involved in
ALTO Entity Property Maps. It assumes the reader is familiar with the ALTO ALTO entity property maps. It assumes the reader is familiar with the ALTO
protocol <xref target="RFC7285" format="default"/>. The purpose of this extensio Protocol <xref target="RFC7285" format="default"/>. The purpose of this extensio
n is to convey n is to convey
properties on objects that extend ALTO Endpoints and are called ALTO properties for objects that extend ALTO endpoints and are called ALTO
Entities, or entities for short.</t> Entities, or entities for short.</t>
<t>The features introduced in this section can be used as standalone. Howe ver, <t>The features introduced in this section can be used standalone. However ,
in some cases, these features may depend on particular information resources in some cases, these features may depend on particular information resources
and need to be defined with respect to them. To this end, and need to be defined with respect to them. To this end,
<xref target="advanced-features-of-the-unified-property-extension" format="defau lt"/> introduces <xref target="advanced-features-of-the-unified-property-extension" format="defau lt"/> introduces
additional features that extend the ones presented in the present section. additional features that extend the ones presented in this section.
</t> </t>
<section anchor="con-entity" numbered="true" toc="default"> <section anchor="con-entity" numbered="true" toc="default">
<name>Entity</name> <name>Entity</name>
<t>The concept of an ALTO Entity generalizes the concept of an ALTO Endp <t>The concept of an ALTO entity generalizes the concept of an ALTO endp
oint oint
defined in Section 2.1 of <xref target="RFC7285" format="default"/>. defined in <xref target="RFC7285" section="2.1" sectionFormat="of" format="defau
lt"/>.
An entity is an object that can be an An entity is an object that can be an
endpoint defined by its network address, but can also be an object endpoint defined by its network address, but it can also be an object
that has a defined mapping to a set of one or more network addresses or an that has a defined mapping to a set of one or more network addresses or an
object that is not even related to any network address. Thus, whereas all object that is not even related to any network address. Thus, whereas all
endpoints are entities, not all entities are endpoints.</t> endpoints are entities, not all entities are endpoints.</t>
<!-- Examples of entities -->
<t>Examples of entities are:</t> <t>Examples of entities are:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>an ALTO endpoint <li>an ALTO endpoint
that represents an application or a host identified by a communication address that represents an application or a host identified by a communication address
(e.g., an IPv4 or IPv6 address) in a network,</li> (e.g., an IPv4 or IPv6 address) in a network,</li>
<li>a PID, defined in <xref target="RFC7285" format="default"/>, that has a provider defined human-readable <li>a PID, defined in <xref target="RFC7285" format="default"/>, that has a provider-defined, human-readable
identifier specified by an ALTO network map, which maps a PID to a set of identifier specified by an ALTO network map, which maps a PID to a set of
IPv4 and IPv6 addresses, IPv4 and IPv6 addresses,
</li> </li>
<li>an Autonomous System (AS), that has an AS number (ASN) as its iden tifier <li>an Autonomous System (AS) that has an AS number (ASN) as its ident ifier
and maps to a set of IPv4 and IPv6 addresses, and maps to a set of IPv4 and IPv6 addresses,
that is defined in <xref target="I-D.ietf-alto-cdni-request-routi ng-alto" format="default"/>, which is defined in <xref target="RFC9241" format="default"/>,
</li> </li>
<li>a country with a code specified in <xref target="ISO3166-1" format <li>a country with a code specified in <xref target="ISO3166-1" format
="default"/>, ="default"/>
to which applications such as CDN providers associate properties and c to which applications such as content delivery network (CDN) providers
apabilities, associate properties and capabilities,
that is defined in <xref target="I-D.ietf-alto-cdni-request-routing-al which is defined in <xref target="RFC9241" format="default"/>,
to" format="default"/>,
</li> </li>
<li>a TCP/UDP network flow, that is identified by a TCP/UDP 5-tuple sp <li>a TCP or UDP network flow that is identified by a 5-tuple
ecifying specifying its source and destination addresses and port numbers,
its source and destination addresses and port numbers, and the IP and the IP protocol (TCP or UDP),
protocol,
</li> </li>
<li>a routing element, that is specified in <xref target="RFC7921" for <li>a routing element, as specified in <xref target="RFC7921" format="
mat="default"/> and is associated with default"/>, that is associated with
routing capabilities information,</li> routing capabilities information, or</li>
<li>an abstract network element, <li>an Abstract Network Element,
that is specified in <xref target="I-D.ietf-alto-path-vector" format=" as specified in <xref target="I-D.ietf-alto-path-vector" format="defau
default"/> lt"/>,
and that represents an abstraction of a network that represents an abstraction of a network
part such as a router, one or more links, a network domain or the part such as a router, one or more links, a network domain, or th
ir eir
aggregation.</li> aggregation.</li>
</ul> </ul>
<t>Some of the example entities listed above have already been documented as ALT O entities. <t>Some of the example entities listed above have already been documented as ALT O entities.
The other examples are provided for illustration as potential entities. </t> The other examples are provided for illustration as potential entities. </t>
</section> </section>
<section anchor="con-entity-domain" numbered="true" toc="default"> <section anchor="con-entity-domain" numbered="true" toc="default">
<name>Entity Domain</name> <name>Entity Domain</name>
<t>An entity domain defines a set of entities of the same semantic type. An <t>An entity domain defines a set of entities of the same semantic type. An
entity domain is characterized by a type and identified by a name.</t> entity domain is characterized by a type and identified by a name.</t>
<t>In this document, an entity is owned by exactly one entity domain nam e. <t>In this document, an entity is owned by exactly one entity domain nam e.
An entity identifier points to exactly one entity. If two entities in two An entity identifier points to exactly one entity. If two entities in two
different entity domains refer to the same physical or logical object, they different entity domains refer to the same physical or logical object, they
are treated as different entities. For example, if an end host has both an IPv4 are treated as different entities. For example, if an end host has both an IPv4
and an IPv6 address, these two addresses will be treated as two entities, and an IPv6 address, these two addresses will be treated as two entities,
defined respectively in the "ipv4" and "ipv6" entity domains.</t> defined respectively in the "ipv4" and "ipv6" entity domains.</t>
<section anchor="con-entity-domain-type" numbered="true" toc="default"> <section anchor="con-entity-domain-type" numbered="true" toc="default">
<name>Entity Domain Type</name> <name>Entity Domain Type</name>
<t>The type of an entity domain type defines the semantics of a type o <t>The entity domain type defines the semantics of the type of
f entity. entity found in an entity domain.
Entity domain types can be defined in different documents. For example: t he Entity domain types can be defined in different documents. For example: t he
present document defines entity domain types "ipv4", "ipv6" and "pid" in present document defines entity domain types "ipv4" and "ipv6" in <xref t
<xref target="inet-addr-domain" format="default"/> and <xref target="pid- arget="inet-addr-domain" format="default"/>
domain" format="default"/>. and "pid"
The entity domain type in <xref target="pid-domain" format="default"/>.
"ane", that defines Abstract Network Elements (ANEs), is introduced in The entity domain type
<xref target="I-D.ietf-alto-path-vector" format="default"/>. "ane", which defines Abstract Network Elements (ANEs), is introduced in
The entity domain type that defines country <xref target="I-D.ietf-alto-path-vector" format="default"/>.
codes is introduced in <xref target="I-D.ietf-alto-cdni-request-routing-a The "countrycode" entity domain type that defines country
lto" format="default"/>. An entity codes is introduced in <xref target="RFC9241" format="default"/>. An enti
domain type MUST be registered at the IANA, as specified in ty
domain type <bcp14>MUST</bcp14> be registered with IANA, as specified in
<xref target="dom-reg-process" format="default"/>.</t> <xref target="dom-reg-process" format="default"/>.</t>
</section> </section>
<section anchor="con-entity-domain-name" numbered="true" toc="default"> <section anchor="con-entity-domain-name" numbered="true" toc="default">
<name>Entity Domain Name</name> <name>Entity Domain Name</name>
<t> <t>
In this document, the identifier of an entity domain is mostly ca lled "entity domain name". In this document, the identifier of an entity domain is mostly ca lled "entity domain name".
The identifier of an entity domain is defined in the scope of an ALTO server. The identifier of an entity domain is scoped to an ALTO server.
An entity domain identifier can sometimes be identical to the ide ntifier An entity domain identifier can sometimes be identical to the ide ntifier
of its relevant entity domain type. of its relevant entity domain type.
This is the case when the entities of a domain have an This is the case when the entities of a domain have an
identifier that points to the same object throughout all the info identifier that points to the same object throughout all the
rmation information resources of the Server that are providing entity pr
resources of the Server that provide entity properties for this d operties
omain. For for this domain. For
example, a domain of type "ipv4" containing entities that are ide ntified by a public example, a domain of type "ipv4" containing entities that are ide ntified by a public
IPv4 address can be named "ipv4" because its entities are uniquel y identified IPv4 address can be named "ipv4" because its entities are uniquel y identified
by all the Server resources.</t> by all the Server resources.</t>
<t>In some cases, the name of an entity domain cannot be <t>In some cases, the name of an entity domain cannot be
simply its entity domain type. simply its entity domain type.
Indeed, for some domain types, entities are defined relative to a given Indeed, for some domain types, entities are defined relative to a given
information resource. This is the case for entities of domain typ e "pid". A information resource. This is the case for entities of domain typ e "pid". A
PID is defined relative to a network map. For example, an entity "mypid10" of PID is defined relative to a network map. For example, an entity "mypid10" of
domain type "pid" may be defined in a given network map and be un defined in domain type "pid" may be defined in a given network map and be un defined in
other network maps. Or "mypid10" may even be defined in two diffe other network maps. The entity "mypid10" may even be defined in t
rent network wo different network
maps and map, in each of these network maps, to a different set o maps, and it may map in each of these network maps to a different
f endpoint set of endpoint
addresses. In this case, naming an entity domain only by its type "pid" does addresses. In this case, naming an entity domain only by its type "pid" does
not guarantee that its set of entities is owned by exactly one en tity domain.</t> not guarantee that its set of entities is owned by exactly one en tity domain.</t>
<t><xref target="rsed-name" format="default"/> and <t>Sections <xref target="rsed-name" format="counter"/> and
<xref target="domain-names" format="default"/> <xref target="domain-names" format="counter"/>
describe how a domain is uniquely identified, across the ALTO describe how a domain is uniquely identified across the ALTO
server, by a name that associates the domain type and the related server by a name that associates the domain type and the related
information information
resource.</t> resource.</t>
</section> </section>
</section> </section>
<section anchor="con-property" numbered="true" toc="default"> <section anchor="con-property" numbered="true" toc="default">
<name>Entity Property Type</name> <name>Entity Property Type</name>
<t>An entity property defines a property of an entity. This is similar t o the <t>An entity property defines a property of an entity. This is similar t o the
endpoint property defined in Section 7.1 of <xref target="RFC7285" format="defau lt"/>. An entity property endpoint property defined in <xref target="RFC7285" section="7.1" sectionFormat= "of" format="default"/>. An entity property
can convey either network-aware or network-agnostic information. Similar to can convey either network-aware or network-agnostic information. Similar to
an entity domain, an entity property is characterized by a type and an entity domain, an entity property is characterized by a type and
identified by a name. An entity property type MUST be registered at the identified by a name. An entity property type <bcp14>MUST</bcp14> be registered with
IANA, as specified in <xref target="IANAEntityProp" format="default"/>.</t> IANA, as specified in <xref target="IANAEntityProp" format="default"/>.</t>
<t>Below are listed some examples with real and fictitious entity domain and property <t>Below are listed some examples with real and fictitious entity domain and property
names:</t> names:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>an entity in the "ipv4" domain type may have a property whose valu e is an <li>an entity in the "ipv4" domain type may have a property whose valu e is an
Autonomous System (AS) number indicating the AS to which this IPv4 address Autonomous System (AS) number indicating the AS to which this IPv4 address
belongs and another property named "countrycode" indicating a country code mappi ng belongs and another property named "countrycode" indicating a country code mappi ng
to this address,</li> to this address,</li>
<li>an entity identified by its country code in the entity domain type <li>an entity identified by its country code in the entity domain type
"countrycode", defined in <xref target="I-D.ietf-alto-cdni-request-routing-alto" "countrycode", defined in <xref target="RFC9241" format="default"/>, may
format="default"/> may have a property indicating what delivery protocol is used by a CDN, or</li>
have a property indicating what delivery protocol is used by a CDN,</li>
<li>an entity in the "netmap1.pid" domain may have a property that ind icates <li>an entity in the "netmap1.pid" domain may have a property that ind icates
the central geographical location of the endpoints it includes.</li> the central geographical location of the endpoints it includes.</li>
</ul> </ul>
<t>It should be noted that some identifiers may be used for both an enti ty <t>It should be noted that some identifiers may be used for both an enti ty
domain type and a property type. For example:</t> domain type and a property type. For example:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>the identifier "countrycode" may point to both the entity domain t ype <li>the identifier "countrycode" may point to both the entity domain t ype
"countrycode" and the fictitious property type "countrycode".</li> "countrycode" and the fictitious property type "countrycode".</li>
<li>the identifier "pid" may point to both the entity domain type "pid " and the <li>the identifier "pid" may point to both the entity domain type "pid " and the
property type "pid".</li> property type "pid".</li>
</ul> </ul>
<t>Likewise, the same identifier may point to both a domain name and a p roperty <t>Likewise, the same identifier may point to both a domain name and a p roperty
name. For example: the identifier "netmap10.pid" may point to either the name. For example: the identifier "netmap10.pid" may point to either the
domain defined by the PIDs of network map "netmap10" or to a property that domain defined by the PIDs of network map "netmap10" or to a property that
returns, for an entity defined by its IPv4 address, the PID of netmap10 that returns, for an entity defined by its IPv4 address, the PID of "netmap10" that
contains this entity. Such cases will be further explained in contains this entity. Such cases are further explained in
<xref target="advanced-features-of-the-unified-property-extension" format="defau lt"/>.</t> <xref target="advanced-features-of-the-unified-property-extension" format="defau lt"/>.</t>
</section> </section>
<section anchor="con-propmap" numbered="true" toc="default"> <section anchor="con-propmap" numbered="true" toc="default">
<name>New Information Resource and Media Type: ALTO Property Map</name> <name>New Information Resource and Media Type: ALTO Property Map</name>
<t>This document introduces a new ALTO information resource named Proper <t>This document introduces a new ALTO information resource named proper
ty Map. ty map.
An ALTO property map provides a set of properties on one or more sets of An ALTO property map provides a set of properties for one or more sets of
entities. A property may apply to different entity domain types and names. entities. A property may apply to different entity domain types and names.
For example, an ALTO property map may define the "ASN" property for both For example, an ALTO property map may define the "ASN" property for both
"ipv4" and "ipv6" entity domains.</t> "ipv4" and "ipv6" entity domains.</t>
<t>The present extension also introduces a new media type.</t> <t>The present extension also introduces a new media type.</t>
<t>This document uses the same definition of an information resource as <t>This document uses the same definition of an information resource as
Section <xref target="RFC7285" section="9.1" sectionFormat="of" format="default"/>. ALTO
9.1 of <xref target="RFC7285" format="default"/>. ALTO uses media types to uniqu uses media types to uniquely indicate the data
ely indicate the data
format used to encode the content to be transmitted between an ALTO server format used to encode the content to be transmitted between an ALTO server
and an ALTO client in the HTTP entity body. In the present case, an ALTO and an ALTO client in the HTTP entity body. In the present case, an ALTO
property map resource is property map resource is
<!-- represented by a JSON object of type InfoResourcePropertyMap and -->
defined by the media type "application/alto-propmap+json".</t> defined by the media type "application/alto-propmap+json".</t>
<t>A Property Map can be queried as a GET-mode resource, thus conveying <t>A property map can be queried as a GET-mode resource, thus conveying
all all
properties on all entities indicated in its capabilities. It can also be properties for all entities indicated in its capabilities. It can also be
queried as a POST-mode resource, thus conveying a selection of properties on queried as a POST-mode resource, thus conveying a selection of properties for
a selection of entities.</t> a selection of entities.</t>
</section> </section>
</section> </section>
<section anchor="advanced-features-of-the-unified-property-extension" number ed="true" toc="default"> <section anchor="advanced-features-of-the-unified-property-extension" number ed="true" toc="default">
<name>Advanced Features of the Entity Property Map Extension</name> <name>Advanced Features of the Entity Property Map Extension</name>
<t>This section gives a high-level overview of the advanced features <t>This section gives a high-level overview of the advanced features
involved in ALTO Entity Property Maps. Most of these features are involved in ALTO entity property maps. Most of these features
defined to extend the ones defined in extend the features defined in
<xref target="basic-features-of-the-unified-property-extension" format="default" />.</t> <xref target="basic-features-of-the-unified-property-extension" format="default" />.</t>
<section anchor="entity-identifier-and-entity-domain" numbered="true" toc= "default"> <section anchor="entity-identifier-and-entity-domain" numbered="true" toc= "default">
<name>Entity Identifier and Entity Domain Name</name> <name>Entity Identifier and Entity Domain Name</name>
<t>In <xref target="RFC7285" format="default"/>, an endpoint has an iden tifier that is explicitly associated <t>In <xref target="RFC7285" format="default"/>, an endpoint has an iden tifier that is explicitly associated
with the "ipv4" or "ipv6" address domain. Examples are "ipv4:192.0.2.14" and with the "ipv4" or "ipv6" address domain. Examples are "ipv4:192.0.2.14" and
"ipv6:2001:db8::12".</t> "ipv6:2001:db8::12".</t>
<t>In this document, example IPv4 and IPv6 addresses and prefixes are tak en <t>In this document, example IPv4 and IPv6 addresses and prefixes are tak en
from the address ranges reserved for documentation by from the address ranges reserved for documentation by
<xref target="RFC5737" format="default"/> and <xref target="RFC5737" format="default"/> and
<xref target="RFC3849" format="default"/>. <xref target="RFC3849" format="default"/>.
</t> </t>
<t>In this document, an entity must be owned by exactly one entity <t>In this document, an entity must be owned by exactly one entity
domain name and an entity identifier must point to exactly one domain name, and an entity identifier must point to exactly one
entity. To ensure this, an entity identifier is explicitly attached entity. To ensure this, an entity identifier is explicitly attached
to the name of its entity domain and an entity domain type to the name of its entity domain, and an entity domain type
characterizes the semantics and identifier format of its entities. characterizes the semantics and identifier format of its entities.
</t> </t>
<t>The encoding format of an entity identifier is further specified in <t>The encoding format of an entity identifier is further specified in
<xref target="entity-addrs" format="default"/> of this document.</t> <xref target="entity-addrs" format="default"/> of this document.</t>
<t>For instance:</t> <t>For instance:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>if an entity is an endpoint with IPv4 address <li>if an entity is an endpoint with IPv4 address
"192.0.2.14", its identifier is associated with entity domain name "ipv4" and is "192.0.2.14", its identifier is associated with entity domain name "ipv4" and is
"ipv4:192.0.2.14",</li> "ipv4:192.0.2.14";</li>
<li>if an entity is a PID named "mypid10" in network map resource "net map2", <li>if an entity is a PID named "mypid10" in network map resource "net map2",
its identifier is associated with entity domain name "netmap2.pid" and is its identifier is associated with entity domain name "netmap2.pid" and is
"netmap2.pid:mypid10".</li> "netmap2.pid:mypid10".</li>
</ul> </ul>
</section> </section>
<section anchor="rsed-name" numbered="true" toc="default"> <section anchor="rsed-name" numbered="true" toc="default">
<name>Resource-Specific Entity Domain Name</name> <name>Resource-Specific Entity Domain Name</name>
<t>Some entities are defined and identified uniquely and globally <t>Some entities are defined and identified uniquely and globally
in the context of an ALTO server. This is the in the context of an ALTO server. This is the
case for instance when entities are endpoints that are identified by a case, for instance, when entities are endpoints that are identified by a
reachable IPv4 or IPv6 address. The entity domain for such entities can be reachable IPv4 or IPv6 address. The entity domain for such entities can be
globally defined and named "ipv4" or "ipv6". Those entity domains are called globally defined and named "ipv4" or "ipv6". Those entity domains are called
resource-agnostic entity domains in this document, as they are not associated resource-agnostic entity domains in this document, as they are not associated
with any specific ALTO information resources.</t> with any specific ALTO information resources.</t>
<t>Some other entities and entity types are only defined relative to a g iven <t>Some other entities and entity types are only defined relative to a g iven
information resource. This is the case for entities of domain type "pid", information resource. This is the case for entities of domain type "pid",
that can only be understood with respect to the network map where they are which can only be understood with respect to the network map where they are
defined. For example, a PID named "mypid10" may be defined to represent a set defined. For example, a PID named "mypid10" may be defined to represent a set
S1 of IP addresses in a network map resource named "netmap1". Another network S1 of IP addresses in a network map resource named "netmap1". Another network
map "netmap2" may use the same name "mypid10" and define it to represent map "netmap2" may use the same name "mypid10" and define it to represent
another set S2 of IP addresses. The identifier "pid:mypid10" may thus point another set S2 of IP addresses. The identifier "pid:mypid10" may thus point
to different objects because the information on the originating information to different objects because the information on the originating information
resource is lost.</t> resource is lost.</t>
<t>To solve this ambiguity, the present extension introduces the concept of <t>To solve this ambiguity, the present extension introduces the concept of
resources-specific entity domain. This concept applies to domain types where resource-specific entity domain. This concept applies to domain types where
entities are defined relative to a given information resource. It can also entities are defined relative to a given information resource. It can also
apply to entity domains that are defined locally, such as local networks of apply to entity domains that are defined locally, such as local networks of
objects identified with a local IPv4 address.</t> objects identified with a local IPv4 address.</t>
<t>In such cases, an entity domain type is explicitly associated with an <t>In such cases, an entity domain type is explicitly associated with an
identifier of the information resource where these entities are defined. Such identifier of the information resource where these entities are defined. Such
an information resource is referred to as the "specific information an information resource is referred to as the "specific information
resource". Using a resource-aware entity domain name, an ALTO property map resource". Using a resource-aware entity domain name, an ALTO property map
can unambiguously identify distinct entity domains of the same type, on which can unambiguously identify distinct entity domains of the same type, on which
entity properties may be queried. Examples of resource-specific entity domain entity properties may be queried. Examples of resource-specific entity domain
names may look like: "netmap1.pid" or "netmap2.pid". Thus, a name association names may look like "netmap1.pid" or "netmap2.pid". Thus, a name association
such as "netmap1.pid:mypid10" and "netmap2.pid:mypid10" allows to distinguish such as "netmap1.pid:mypid10" and "netmap2.pid:mypid10" distinguishes
the two abovementioned PIDs that are both named "mypid10" but in two the two abovementioned PIDs that are both named "mypid10" but in two
different resources, "netmap1" and "netmap2".</t> different resources, "netmap1" and "netmap2".</t>
<t>An information resource is defined in the scope of an ALTO Server and so is <t>An information resource is defined in the scope of an ALTO Server and so is
an entity domain name. The format of a resource-specific entity domain name an entity domain name. The format of a resource-specific entity domain name
is further specified in <xref target="domain-names" format="default"/>.</t> is further specified in <xref target="domain-names" format="default"/>.</t>
</section> </section>
<section anchor="rsep" numbered="true" toc="default"> <section anchor="rsep" numbered="true" toc="default">
<name>Resource-Specific Entity Property Value</name> <name>Resource-Specific Entity Property Value</name>
<t>Like entity domains, some types of properties are defined relative to an <t>Like entity domains, some types of properties are defined relative to an
information resource. That is, an entity may have a property of a given type, information resource. That is, an entity may have a property of a given type
whose values are associated to different information resources.</t> whose values are associated with different information resources.</t>
<t>For example, suppose entity "192.0.2.34" defined in the "ipv4" domain has a <t>For example, suppose entity "192.0.2.34" defined in the "ipv4" domain has a
property of type "pid", whose value is the PID to which address "192.0.2.34" property of type "pid" whose value is the PID to which address "192.0.2.34"
is attached in a network map. The mapping of network addresses to PIDs is is attached in a network map. The mapping of network addresses to PIDs is
specific to a network map and probably different from one network map specific to a network map and probably different from one network map
resource to another one. Thus, if a property "pid" is defined for entity resource to another one. Thus, if a property "pid" is defined for entity
"192.0.2.34" in two different network maps "netmap1" and "netmap2", the value "192.0.2.34" in two different network maps "netmap1" and "netmap2", the value
for this property can be a different value in "netmap1" and for this property can be a different value in "netmap1" and
"netmap2".</t> "netmap2".</t>
<t>To support information resource dependent property values, this docum <t>To support information-resource-dependent property values, this docum
ent uses ent uses
the same approach as in Section 10.8.1 of <xref target="RFC7285" format="default the same approach as in Section <xref target="RFC7285" section="10.8.1" sectionF
"/> entitled ormat="bare">
"Resource-Specific Endpoint Properties". When a property value depends on a "Resource-Specific Endpoint Properties"</xref> of <xref target="RFC7285" format=
given information resource, the name of this property MUST be explicitly "default"/>. When a property value depends on a
given information resource, the name of this property <bcp14>MUST</bcp14> be exp
licitly
associated with the information resource that defines it.</t> associated with the information resource that defines it.</t>
<t>For example, the property "pid" queried on entity "ipv4:192.0.2.34" a nd <t>For example, the property "pid" queried on entity "ipv4:192.0.2.34" a nd
defined in both "netmap1" and "netmap2", can be named "netmap1.pid" and defined in both "netmap1" and "netmap2" can be named "netmap1.pid" and
"netmap2.pid". This allows a Client to get a property of the same type but "netmap2.pid". This allows a Client to get a property of the same type but
defined in different information resources with a single query. defined in different information resources with a single query.
Specifications on the property name format are provided in <xref target="def-pro perty" format="default"/>.</t> Specifications for the property name format are provided in <xref target="def-pr operty" format="default"/>.</t>
</section> </section>
<section anchor="con-hni" numbered="true" toc="default"> <section anchor="con-hni" numbered="true" toc="default">
<name>Entity Hierarchy and Property Inheritance</name> <name>Entity Hierarchy and Property Inheritance</name>
<t>For some domain types, there is an underlying structure that allows e ntities to <t>For some domain types, there is an underlying structure that allows e ntities to
efficiently be grouped into a set and be defined by the identifier of thi s set. be efficiently grouped into a set and be defined by the identifier of thi s set.
This is the case for domain types "ipv4" and "ipv6", This is the case for domain types "ipv4" and "ipv6",
where individual Internet addresses can be grouped in blocks. When the sa me where individual Internet addresses can be grouped in blocks. When the sa me
property value applies to a whole set, a Server can define a property for the property value applies to a whole set, a Server can define a property for the
identifier of this set instead of enumerating all the entities and their identifier of this set instead of enumerating all the entities and their
properties. This allows a substantial reduction of transmission payload b oth properties. This allows a substantial reduction of transmission payload b oth
for the Server and the Client. For example, all the entities included in the for the Server and the Client. For example, all the entities included in the
set defined by the address block "ipv6:2001:db8::1/64" share the same set defined by the address block "ipv6:2001:db8::1/64" share the same
properties and values defined for this block.</t> properties and values defined for this block.</t>
<t>Additionally, entity sets sometimes are related by inclusion, hierarc hy or <t>Additionally, entity sets sometimes are related by inclusion, hierarc hy, or
other relations. This allows defining inheritance rules for entity proper ties other relations. This allows defining inheritance rules for entity proper ties
that propagate properties among related entity sets. The Server and the that propagate properties among related entity sets. The Server and the
Client can use these inheritance rules for further payload savings. Entit y Client can use these inheritance rules for further payload savings. Entit y
hierarchy and property inheritance rules are specified in the documents t hat hierarchy and property inheritance rules are specified in the documents t hat
define the applicable domain types. The present document defines these ru les define the applicable domain types. The present document defines these ru les
for the "ipv4" and "ipv6" domain types.</t> for the "ipv4" and "ipv6" domain types.</t>
<t>This document introduces, for applicable domain types, "Entity Proper <t>For applicable domain types, this document introduces entity property
ty inheritance rules with the following concepts: entity hierarchy, property
Inheritance rules", with the following concepts: Entity Hierarchy, Proper inheritance, and property value unicity. A detailed specification of enti
ty ty
Inheritance and Property Value Unicity. A detailed specification of entit
y
hierarchy and property inheritance rules is provided in hierarchy and property inheritance rules is provided in
<xref target="def-hierarchy-and-inheritance" format="default"/>.</t> <xref target="def-hierarchy-and-inheritance" format="default"/>.</t>
<section anchor="entity-hierarchy" numbered="true" toc="default"> <section anchor="entity-hierarchy" numbered="true" toc="default">
<name>Entity Hierarchy</name> <name>Entity Hierarchy</name>
<t>An entity domain may allow using a single identifier to identify a <t>An entity domain may allow the use of a single identifier to identi
set of fy a set of
related individual entities. For example, a CIDR block can be use related individual entities. For example, a Classless Inter-Domai
d to identify a set n Routing
(CIDR) block can be used to identify a set
of IPv4 or IPv6 entities. A CIDR block is called a hierarchical e ntity of IPv4 or IPv6 entities. A CIDR block is called a hierarchical e ntity
identifier, as it can reflect inclusion relations among entity se ts. identifier, as it can reflect inclusion relations among entity se ts.
That is, in an entity hierarchy, "supersets" are defined at upper levels That is, in an entity hierarchy, "supersets" are defined at upper levels
and include "subsets" defined at lower levels." and include "subsets" defined at lower levels.
For example, the CIDR "ipv4:192.0.1.0/24" includes all the indivi dual IPv4 For example, the CIDR "ipv4:192.0.1.0/24" includes all the indivi dual IPv4
entities identified by the CIDR "ipv4:192.0.1.0/26". entities identified by the CIDR "ipv4:192.0.1.0/26".
This document will sometimes use the term "hierarchical address" This document will sometimes use the term "hierarchical address"
to refer to a hierarchical entity identifier. </t> to refer to a hierarchical entity identifier. </t>
</section> </section>
<section anchor="property-inheritance" numbered="true" toc="default"> <section anchor="property-inheritance" numbered="true" toc="default">
<name>Property Inheritance</name> <name>Property Inheritance</name>
<t>A property may be defined for a hierarchical entity identifier, while it may <t>A property may be defined for a hierarchical entity identifier, while it may
skipping to change at line 578 skipping to change at line 567
"ipv4:192.0.1.0/24" because the address "ipv4:192.0.1.1" is included in t he "ipv4:192.0.1.0/24" because the address "ipv4:192.0.1.1" is included in t he
CIDR block "ipv4:192.0.1.0/24".</t> CIDR block "ipv4:192.0.1.0/24".</t>
<t>Property value inheritance rules also apply among entity set s. A property map <t>Property value inheritance rules also apply among entity set s. A property map
may define values for an entity set belonging to a hierarchy but not for may define values for an entity set belonging to a hierarchy but not for
"subsets" that are covered by this set identifier. In this case, inherita nce "subsets" that are covered by this set identifier. In this case, inherita nce
rules must specify how entities in "subsets" inherit property values from rules must specify how entities in "subsets" inherit property values from
their "superset". their "superset".
For instance, suppose a property P is defined only for the entity set def ined For instance, suppose a property P is defined only for the entity set def ined
by address block "ipv4:192.0.1.0/24". We know that entity set "ipv4:192.0 .1.0/30" by address block "ipv4:192.0.1.0/24". We know that entity set "ipv4:192.0 .1.0/30"
is included in "ipv4:192.0.1.0/24". Therefore, the entities of "ipv4:192. 0.1.0/30" is included in "ipv4:192.0.1.0/24". Therefore, the entities of "ipv4:192. 0.1.0/30"
may inherit the value of property P from set "ipv4:192.0.1.0/24", may inherit the value of property P from set "ipv4:192.0.1.0/24"
if an inheritance rule from "ipv4" CIDR blocks to included "ipv4" CIDR bl if an inheritance rule from "ipv4" CIDR blocks to included "ipv4" CIDR bl
ocks, is specified.</t> ocks is specified.</t>
</section> </section>
<section anchor="property-value-unicity" numbered="true" toc="default"> <section anchor="property-value-unicity" numbered="true" toc="default">
<name>Property Value Unicity</name> <name>Property Value Unicity</name>
<t>The inheritance rules must ensure that an entity belonging to a hie rarchical <t>The inheritance rules must ensure that an entity belonging to a hie rarchical
set of entities inherits no more than one property value, for the sake of set of entities inherits no more than one property value, for the sake of
consistency. Indeed, a property map may define a property on a hierarchy consistency. Indeed, a property map may define a property for a hierarchy
of of
entity sets that inherit property values from one or more supersets (loca entity sets that inherits property values from one or more supersets (loc
ted at upper ated at upper
levels). On the other hand, a property value, defined on a subset (locate levels). On the other hand, a property value defined for a subset (locate
d at a lower d at a lower
level) may be different from the value defined on a superset. In such a c level) may be different from the value defined for a superset. In such a
ase, case,
subsets may potentially end up with different property values. This may b e subsets may potentially end up with different property values. This may b e
the case for address blocs with increasing prefix length, on which a prop the case for address blocks with increasing prefix length, on which a pro
erty perty
value gets increasingly accurate and thus may differ. For example, a value becomes increasingly accurate and thus may differ. For example, a
fictitious property such as "geo-location" or "average transfer volume" m ay fictitious property such as "geo-location" or "average transfer volume" m ay
be defined at a progressively finer grain for lower level subsets of enti ties, defined with be defined at a progressively finer grain for lower-level subsets of enti ties defined with
progressively longer CIDR prefixes. It seems more interesting to have progressively longer CIDR prefixes. It seems more interesting to have
property values of progressively higher accuracy. A unicity rule, applied to property values of progressively higher accuracy. A unicity rule applied to
the entity domain type must specify an arbitration rule among the differe nt the entity domain type must specify an arbitration rule among the differe nt
property values for an entity. An example illustrating the need for such property values for an entity. An example illustrating the need for such
rules is provided in <xref target="inet-inheritance" format="default"/>.< /t> rules is provided in <xref target="inet-inheritance" format="default"/>.< /t>
</section> </section>
</section> </section>
<section anchor="applicable-entity-domains-and-properties-in-the-property- map-capabilities" numbered="true" toc="default"> <section anchor="applicable-entity-domains-and-properties-in-the-property- map-capabilities" numbered="true" toc="default">
<name>Supported Properties on Entity Domains in Property Map Capabilitie s</name> <name>Supported Properties for Entity Domains in Property Map Capabiliti es</name>
<t>A property type is not necessarily applicable to any domain type, or an ALTO <t>A property type is not necessarily applicable to any domain type, or an ALTO
Server may choose not to provide a property on all applicable domains. Fo Server may choose not to provide a property for all applicable domains. F
r or
instance, a property type reflecting link bandwidth is likely not defined instance, a property type reflecting link bandwidth is likely not defined
on for
entities of a domain of type "countrycode". Therefore, an ALTO server entities of a domain of type "countrycode". Therefore, an ALTO server
providing Property Maps needs to specify the properties that can be queri ed providing property maps needs to specify the properties that can be queri ed
on the different entity domains it supports.</t> on the different entity domains it supports.</t>
<t>This document explains how the Information Resources Directory (IRD) <t>This document explains how the Information Resource Directory (IRD)
capabilities of a Property Map resource unambiguously expose what propert capabilities of a property map resource unambiguously expose which proper
ies ties
a Client can query on a given entity domain:</t> a Client can query on a given entity domain:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>a field named "mappings" lists the names of the entity domains sup ported by <li>a field named "mappings" lists the names of the entity domains sup ported by
the Property Map,</li> the property map, and</li>
<li>for each listed entity domain, a list of the names of the applicab le <li>for each listed entity domain, a list of the names of the applicab le
properties is provided.</li> properties is provided.</li>
</ul> </ul>
<t>An example is provided in <xref target="ird-example" format="default" />. <t>An example is provided in <xref target="ird-example" format="default" />.
The "mappings" field associates The "mappings" field associates
entity domains and properties that can be resource-agnostic or entity domains and properties that can be resource-agnostic or
resource-specific. This allows a Client to formulate compact and unambigu ous resource-specific. This allows a Client to formulate compact and unambigu ous
entity property queries, possibly relating to one or more information entity property queries, possibly relating to one or more information
resources. In particular:</t> resources. In particular:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>it prevents a Client from querying a property on entity domains on <li>it prevents a Client from querying a property for entity domains f
which it is not or which it is not
defined,</li> defined;</li>
<li>it allows a Client to query, for an entity E, values for a propert y P that <li>it allows a Client to query, for an entity E, values for a propert y P that
are defined in several information resources,</li> are defined in several information resources; and</li>
<li>it allows a Client to query a property P on entities that are defi ned in <li>it allows a Client to query a property P on entities that are defi ned in
several information resources.</li> several information resources.</li>
</ul> </ul>
<t>Further details are provided in <xref target="FullPropMapCapabilities " format="default"/>.</t> <t>Further details are provided in <xref target="FullPropMapCapabilities " format="default"/>.</t>
</section> </section>
<section anchor="def-ir" numbered="true" toc="default"> <section anchor="def-ir" numbered="true" toc="default">
<name>Defining Information Resource for Resource-Specific Entity Domains </name> <name>Defining Information Resource for Resource-Specific Entity Domains </name>
<t>A Client willing to query properties on entities belonging to a domai n needs <t>A Client willing to query entity properties belonging to a domain nee ds
to know how to retrieve these entities. To this end, the Client can look up to know how to retrieve these entities. To this end, the Client can look up
the "mappings" field exposed in IRD capabilities of a property map, see the "mappings" field exposed in IRD capabilities of a property map; see
<xref target="applicable-entity-domains-and-properties-in-the-property-map-capab ilities" format="default"/>. <xref target="applicable-entity-domains-and-properties-in-the-property-map-capab ilities" format="default"/>.
This field, in its keys, exposes all the entity domains supported by the This field, in its keys, exposes all the entity domains supported by the
property map. The syntax of the entity domain identifier specified in property map. The syntax of the entity domain identifier specified in
<xref target="domain-names" format="default"/> allows the client to infer whethe r the entity domain is <xref target="domain-names" format="default"/> allows the client to infer whethe r the entity domain is
resource-specific or not. The Client can extract, if applicable, the resource-specific or not. The Client can extract, if applicable, the
identifier of the specific resource, query the resource and retrieve the identifier of the specific resource, query the resource, and retrieve the
entities. For example: entities. For example:
</t> </t>
<ul spacing="normal"> <ul spacing="normal">
<li>an entity domain named "netmap1.ipv4" includes the IPv4 addresses that <li>an entity domain named "netmap1.ipv4" includes the IPv4 addresses that
appear in the "ipv4" field of the endpoint address group of each PID in the appear in the "ipv4" field of the endpoint address group of each PID in the
network map "netmap1", and that have no meaning outside "netmap1" network map "netmap1" and that have no meaning outside "netmap1"
because, for instance, these are local addresses not reachable outside some priv because, for instance, these are local addresses not reachable outside some priv
ate network,</li> ate network;</li>
<li>an entity domain named "netmap1.pid" includes the PIDs listed in n etwork <li>an entity domain named "netmap1.pid" includes the PIDs listed in n etwork
map "netmap1".</li> map "netmap1"; and</li>
<li>an entity domain named "ipv4" is resource-agnostic and covers all the <li>an entity domain named "ipv4" is resource-agnostic and covers all the
reachable IPv4 addresses.</li> reachable IPv4 addresses.</li>
</ul> </ul>
<t>Besides, it is not possible to prevent a Server from mistakenly expos ing <t>Besides, it is not possible to prevent a Server from mistakenly expos ing
inappropriate associations of information resources and entity domain ty pes. inappropriate associations of information resources and entity domain ty pes.
To prevent failures due to invalid queries, it is necessary to inform th e Client To prevent failures due to invalid queries, it is necessary to inform th e Client
about which associations are allowed. which associations are allowed.
An informed Client will just ignore inappropriate associations ex posed by a An informed Client will just ignore inappropriate associations ex posed by a
Server and avoid error-prone transactions with the Server. Server and avoid error-prone transactions with the Server.
</t> </t>
<t>For example, the association "costmap3.pid" is not allowed for the fo llowing <t>For example, the association "costmap3.pid" is not allowed for the fo llowing
reason: although a cost map exposes PID identifiers, it does not define the reason: although a cost map exposes PID identifiers, it does not define the
set of addresses included in this PID. Neither does a cost map list all the set of addresses included in this PID. Neither does a cost map list all the
PIDs on which properties can be queried, because a cost map only exposes PID PIDs on which properties can be queried because a cost map only exposes PID
pairs on which a queried cost type is defined. Therefore, the resource pairs on which a queried cost type is defined. Therefore, the resource
"costmap3" does not enable a Client to extract information on the existing "costmap3" does not enable a Client to extract information on the existing
PID entities or on the addresses they contain.</t> PID entities or on the addresses they contain.</t>
<t>Instead, the cost map uses a network map, where all the PIDs used in a cost <t>Instead, the cost map uses a network map where all the PIDs used in a cost
map are defined together with the addresses contained by the PIDs. This map are defined together with the addresses contained by the PIDs. This
network map is qualified in this document as the Defining Information network map is qualified in this document as the defining information
Resource for the entity domain of type "pid" and this concept is explained in resource for the entity domain of type "pid", and this concept is explained in
<xref target="defining-information-resource-and-media-type" format="default"/>.< /t> <xref target="defining-information-resource-and-media-type" format="default"/>.< /t>
<section anchor="defining-information-resource-and-media-type" numbered=" true" toc="default"> <section anchor="defining-information-resource-and-media-type" numbered=" true" toc="default">
<name>Defining Information Resource and its Media Type</name> <name>Defining Information Resource and Its Media Type</name>
<t>For the reasons explained in <xref target="def-ir" format="default"/>, <t>For the reasons explained in <xref target="def-ir" format="default"/>,
this document introduces the concept of "Defining Information Resource this document introduces the concept of "Defining Information Resource
and its Media Type".</t> and its Media Type".</t>
<t>A defining information resource for an entity domain D is the informatio n <t>A defining information resource for an entity domain D is the informatio n
resource where entities of D are defined. That is, all the information on the resource where entities of D are defined. That is, all the information on the
entities of D can be retrieved in this resource. entities of D can be retrieved in this resource.
A defining information resource is defined for resource-specific entity d omains. A defining information resource is defined for resource-specific entity d omains.
It does not exist for entity domains that are not resource-specific such as It does not exist for entity domains that are not resource-specific such as
"ipv4" or "ipv6". Neither does it exist for entity domains that are cover ing "ipv4" or "ipv6". Neither does it exist for entity domains that are cover ing
entity identifiers already defined in other standardization documents, entity identifiers already defined in other standardization documents,
at it is the case for country code identifiers standardized in [ISO3166-1 as is the case for country code identifiers standardized in <xref target=
] "ISO3166-1" format="default"/>
or AS numbers allocated by the IANA. or AS numbers allocated by IANA.
This is useful for entity domain types that are by This is useful for entity domain types that are by
essence domain-specific, such as the "pid" domain type. It is also essence domain-specific, such as the domain type "pid". It is also
useful for resource-specific entity domains constructed from useful for resource-specific entity domains constructed from
resource-agnostic domain types, such as network map specific domains of l ocal resource-agnostic domain types, such as network-map-specific domains of l ocal
IPv4 addresses.</t> IPv4 addresses.</t>
<t>The defining information resource of a resource-specific entity domain D , <t>The defining information resource of a resource-specific entity domain D ,
when it exists, is unique and has the following specificities:</t> when it exists, is unique and has the following characteristics:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>it has an entry in the IRD,</li> <li>it has an entry in the IRD;</li>
<li>it defines the entities of D,</li> <li>it defines the entities of D;</li>
<li>it does not use another information resource that defines these <li>it does not use another information resource that defines these
entities,</li> entities;</li>
<li>it defines and exposes entity identifiers that are all persisten <li>it defines and exposes entity identifiers that are all persisten
t,</li> t; and</li>
<li>its media type is equal to the one that is specified for the <li>its media type is equal to the one that is specified for the
defining information resource of an entity domain type.</ li> defining information resource of an entity domain type.</ li>
</ul> </ul>
<t>A fundamental characteristic of a defining information resource is its media type. <t>A fundamental characteristic of a defining information resource is its media type.
There is a unique association between an entity domain type and the media There is a unique association between an entity domain type and the media
type of its defining information resource. When an entity domain type all ows associations type of its defining information resource. When an entity domain type all ows associations
with defining information resources, the media type of the potential defi ning information with defining information resources, the media type of the potential defi ning information
resource MUST be specified:</t> resource <bcp14>MUST</bcp14> be specified:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>in the document that defines this entity domain type,</li> <li>in the document that defines this entity domain type, and</li>
<li>in the IANA ALTO Entity Domain Type Registry and related information <li>in the "ALTO Entity Domain Types" IANA registry.</li>
.</li>
</ul> </ul>
<!-- commented text
If an entity domain type can be
resource-specific, the document that defines this entity domain type must
specify the association between the entity domain type and the media type of
the potential defining information resource in the "ALTO Entity Domain Type
Registry" (<xref target="IANADomain" format="default"/>) and request the additio
n to the IANA.
<t>When the Client wants to use a resource-specific entity domain, it needs to <t>When the Client wants to use a resource-specific entity domain, it needs to
be cognizant of the media-type of its defining information resource. If the be cognizant of the media type of its defining information resource. If the
Server exposes a resource-specific entity domain with a Server exposes a resource-specific entity domain with a
non-compliant media type for the defining resource, the Client MUST ignore the noncompliant media type for the defining resource, the Client <bcp14>MUST</bcp14 > ignore the
entities from that entity domain to avoid errors.</t> entities from that entity domain to avoid errors.</t>
<!--
The same holds for property types whose values are defined relative to an
information resource. Similarly to resource specific entity domains, the
Client needs to be cognizant of appropriate associations of information
resource and property types. Therefore, when specifying and registering a
property type whose values are resource-specific, it is necessary to specify
the media type of its defining information resource. For example: the
defining information resource for property type "pid" is a network map; the
defining information resource for property type "cdnifci-capability", defined in
{{I-D.ietf-alto-cdni-request-routing-alto}} is a "cdnifci-map" information
resource, defined in that same document.
</section> </section>
<!-- Examples of Defining Information Resources and Their Media Types -->
<section anchor="example-specific-ir-mediatype" numbered="true" toc="defa ult"> <section anchor="example-specific-ir-mediatype" numbered="true" toc="defa ult">
<name>Examples of Defining Information Resources and Their Media Type< /name> <name>Examples of Defining Information Resources and Their Media Types </name>
<t>Here are examples of defining information resource types and their media <t>Here are examples of defining information resource types and their media
types associated to different entity domain types:</t> types associated with different entity domain types:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>For entity domain type "pid": the media type of the specific res <li>For entity domain type "pid", the media type of the specific res
ource is ource is
"application/alto-networkmap+json", because PIDs are defined in network map "application/alto-networkmap+json" because PIDs are defined in network map
resources.</li> resources.</li>
<li>For entity domain types "ipv4" and "ipv6": the media type of the <li>For entity domain types "ipv4" and "ipv6", the media type of the
specific specific
resource is "application/alto-networkmap+json", because IPv4 and IPv6 resource is "application/alto-networkmap+json" because IPv4 and IPv6
addresses covered by the Server are defined in network map resources.</li> addresses covered by the Server are defined in network map resources.</li>
<li>For entities of domain type "ane": <xref target="I-D.ietf-alto-p <li>For entities of domain type "ane"; <xref target="I-D.ietf-alto-p
ath-vector" format="default"/> defines ath-vector" format="default"/> defines
entities named "ANE", where ANE stands for Abstracted Network Element, and entities named "ANE", where ANE stands for Abstract Network Element, and
the entity domain type "ane". An ANE may have a persistent identifier, say, the entity domain type "ane". An ANE may have a persistent identifier, say,
"entity-4", that is provided by the Server as a value of the "entity-4", that is provided by the Server as a value of the
"persistent-entity-id" property of this ANE. Further properties may then be "persistent-entity-id" property of this ANE. Further properties may then be
queried on an ANE by using its persistent entity ID. These properties are queried on an ANE by using its persistent entity identifier. These properties ar
available from a persistent property map, that defines properties on a e
available from a persistent property map that defines properties for a
specific "ane" domain. Together with the persistent identifier, the Server specific "ane" domain. Together with the persistent identifier, the Server
also provides the property map resource identifier where the "ane" domain also provides the property map resource identifier where the "ane" domain
containing "entity-4" is defined. The definition of the "ane" entity domain containing "entity-4" is defined. The definition of the "ane" entity domain
containing "entity-4" is thus specific to the property map. Therefore, for containing "entity-4" is thus specific to the property map. Therefore, for
entities of domain type "ane" that have a persistent identifier, the media entities of domain type "ane" that have a persistent identifier, the media
type of the defining information resource is type of the defining information resource is
"application/alto-propmap+json".</li> "application/alto-propmap+json".</li>
<li>Last, the entity domain types "asn" and "countrycode" defined in <li>Last, the entity domain types "asn" and "countrycode" defined in
<xref target="I-D.ietf-alto-cdni-request-routing-alto" format="default"/> do not have a defining <xref target="RFC9241" format="default"/> do not have a defining
information resource. Indeed, the entity identifiers in these two entity information resource. Indeed, the entity identifiers in these two entity
domain types are already standardized in documents that the Client can use.</li> domain types are already standardized in documents that the Client can use.</li>
</ul> </ul>
</section> </section>
</section> </section>
<section anchor="def-ir-for-irsp" numbered="true" toc="default"> <section anchor="def-ir-for-irsp" numbered="true" toc="default">
<name>Defining Information Resource for Resource-Specific Property Value s</name> <name>Defining Information Resources for Resource-Specific Property Valu es</name>
<t>As explained in <xref target="rsep" format="default"/>, a property ty pe may <t>As explained in <xref target="rsep" format="default"/>, a property ty pe may
take values that are resource-specific. This is the case for property type take values that are resource-specific. This is the case for property type
"pid", whose values are by essence defined relative to a specific network "pid", whose values are by essence defined relative to a specific network
map. That is, the PID value returned for an IPv4 address is specific to the netw ork map. That is, the PID value returned for an IPv4 address is specific to the netw ork
map defining this PID and may differ from one network map to another one.</t> map defining this PID and may differ from one network map to another one.</t>
<!--
Property values may be specific to different types of information resources.
For example: the value for property "pid" is specific to a network map. The
value for property type "cdnifci-capab" is specific to the information
resource "cdnifci-map", defined in
{{I-D.ietf-alto-cdni-request-routing-alto}}, while network maps do not define
property "fci-capability" for IPv4 addresses and a cdnifci-map does not
define "pid" values for IPv4 addresses.
<t>Another example is provided in <t>Another example is provided in
<xref target="I-D.ietf-alto-cdni-request-routing-alto" format="default"/> <xref target="RFC9241" format="default"/>,
that defines property type "cdni-capabilities". The value of this property is which defines property type "cdni-capabilities". The value of this property is
specific to a CDNI advertisement resource, that provides a list of CDNI specific to a Content Delivery Network Interconnection (CDNI) Advertisement reso
urce, which provides a list of CDNI
capabilities. The property is provided for entity domain types "ipv4", capabilities. The property is provided for entity domain types "ipv4",
"ipv6", "asn" and "countrycode". A CDNI Advertisement resource does however "ipv6", "asn", and "countrycode". However, a CDNI Advertisement resource does
not define PID values for IPv4 addresses while a network map does not define not define PID values for IPv4 addresses, while a network map does not define
CDNI capabilities for IPv4 addresses.</t> CDNI capabilities for IPv4 addresses.</t>
<!--
Thus, similarly to resource specific entity domains, the Client needs to be
cognizant of appropriate associations of information resource and property
types.
<t>Similar to resource-specific entity domains, the Client needs to be <t>Similar to resource-specific entity domains, the Client needs to be
cognizant of appropriate associations of information resource and property cognizant of appropriate associations of information resource and property
types. Therefore, when specifying and registering a property type whose types. Therefore, when specifying and registering a property type whose
values are resource-specific, the media type of its defining information values are resource-specific, the media type of its defining information
resource needs to be specified. For example:</t> resource needs to be specified. For example:</t>
<!--
### Examples of defining resources media-types for properties {#example-specific
-ir-mediatype-prop}
<!--
Here are some examples of specific information resources types associated to
entity property types and their media type.
<ul spacing="normal"> <ul spacing="normal">
<li>The media type of the defining information resource for property t ype "pid" <li>The media type of the defining information resource for property t ype "pid"
is "application/alto-networkmap+json".</li> is "application/alto-networkmap+json".</li>
<li>The media type of the defining information resource for property t ype <li>The media type of the defining information resource for property t ype
"cdni-capabilities" defined in <xref target="I-D.ietf-alto-cdni-request-routing- alto" format="default"/> "cdni-capabilities" defined in <xref target="RFC9241" format="default"/>
is "application/alto-cdni+json".</li> is "application/alto-cdni+json".</li>
</ul> </ul>
</section> </section>
</section> </section>
<section anchor="protocol-specification-basic-data-types" numbered="true" to c="default"> <section anchor="protocol-specification-basic-data-types" numbered="true" to c="default">
<name>Protocol Specification: Basic Data Types</name> <name>Protocol Specification: Basic Data Types</name>
<section anchor="def-domain" numbered="true" toc="default"> <section anchor="def-domain" numbered="true" toc="default">
<name>Entity Domain</name> <name>Entity Domain</name>
<section anchor="domain-types" numbered="true" toc="default"> <section anchor="domain-types" numbered="true" toc="default">
<name>Entity Domain Type</name> <name>Entity Domain Type</name>
<t>An entity domain has a type, which is uniquely identified by a string th at <t>An entity domain has a type, which is uniquely identified by a string th at
MUST be no more than 64 characters, and MUST NOT contain characters other <bcp14>MUST</bcp14> be no more than 64 characters, and <bcp14>MUST NOT</b cp14> contain characters other
than US-ASCII alphanumeric characters (U+0030-U+0039, U+0041-U+005A, and than US-ASCII alphanumeric characters (U+0030-U+0039, U+0041-U+005A, and
U+0061-U+007A), the hyphen ('-', U+002D), the colon (':', U+003A), U+0061-U+007A), the hyphen-minus ('-', U+002D), the colon (':', U+003A),
or the low line ('_', U+005F).</t> or the low line ('_', U+005F).</t>
<t>The usage of colon (':', U+003A) MUST obey the rules below:</t> <t>The usage of colon (':', U+003A) <bcp14>MUST</bcp14> obey the rules be low:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>The colon (':', U+003A) character MUST NOT appear more than once,</l <li>The colon (':', U+003A) character <bcp14>MUST NOT</bcp14> appear mor
i> e than once;</li>
<li>The colon character MUST NOT be used unless within the string "priv: <li>The colon character <bcp14>MUST NOT</bcp14> be used unless within th
",</li> e string "priv:";</li>
<li>The string "priv:" MUST NOT be used unless it starts the string that <li>The string "priv:" <bcp14>MUST NOT</bcp14> be used unless it starts
identifies an entity domain type,</li> the string that identifies an entity domain type; and</li>
<li>For an entity domain type identifier with the "priv:" prefix , <li>For an entity domain type identifier with the "priv:" prefix,
an additional string (e.g., company identifier or random string) an additional string (e.g., company identifier or random string)
MUST follow "priv:", <bcp14>MUST</bcp14> follow "priv:"
to reduce potential collisions.</li> to reduce potential collisions.</li>
</ul> </ul>
<t>For example, the strings "ipv4", "ipv6", "pid" and "priv:example-test-ed <t>For example, the strings "ipv4", "ipv6", "pid", and "priv:example-test-e
t", dt",
are valid entity domain types. "ipv4.anycast", "pid.local" and "priv:" are are valid entity domain types. "ipv4.anycast", "pid.local", and "priv:" are
invalid.</t> invalid.</t>
<t>Although “_”, “-“, “__--" are valid entity domain types, <t>Although "_", "-", "__--" are valid entity domain types,
it is desirable to add characters such as alphanumeric ones, it is desirable to add characters, such as alphanumeric ones,
for better intelligibility. </t> for better intelligibility. </t>
<t>The type EntityDomainType is used in this document to denote a JSON stri ng <t>The type EntityDomainType is used in this document to denote a JSON stri ng
meeting the preceding requirements.</t> meeting the preceding requirements.</t>
<t>An entity domain type defines the semantics of a type of entity, <t>An entity domain type defines the semantics of a type of entity,
independently of any specifying resource. All entity independently of any specifying resource. All entity
domain types that are not prefixed with "priv:" MUST be registered with the I domain types that are not prefixed with "priv:" <bcp14>MUST</bcp14> be regist
ANA, ered with IANA
in the "ALTO Entity Domain Type Registry", defined in <xref target="IANADomai in the "ALTO Entity Domain Types" registry, defined in <xref target="IANADoma
n" format="default"/>, in" format="default"/>,
following the procedure specified in <xref target="dom-reg-process" format="d efault"/> following the procedure specified in <xref target="dom-reg-process" format="d efault"/>
of this document. of this document.
The format of the entity identifiers (see <xref target="entity-addrs" format= "default"/>) The format of the entity identifiers (see <xref target="entity-addrs" format= "default"/>)
in that entity domain type, as well as any hierarchical or inheritance rules in that entity domain type, as well as any hierarchical or inheritance rules
(see <xref target="def-hierarchy-and-inheritance" format="default"/>) for (see <xref target="def-hierarchy-and-inheritance" format="default"/>) for
those entities, MUST be specified in the IANA registration.</t> those entities, <bcp14>MUST</bcp14> be specified in the IANA registration.</t >
<t>Entity domain type identifiers prefixed with "priv:" are reserved for Priv ate Use <t>Entity domain type identifiers prefixed with "priv:" are reserved for Priv ate Use
(see <xref target="RFC8126" format="default"/>) without a need to register wi th IANA. (see <xref target="RFC8126" format="default"/>) without a need to register wi th IANA.
The definition of a private use entity domain type MUST apply the same way in all The definition of a private-use entity domain type <bcp14>MUST</bcp14> apply the same way in all
property maps of an IRD where it is present. property maps of an IRD where it is present.
</t> </t>
</section> </section>
<section anchor="domain-names" numbered="true" toc="default"> <section anchor="domain-names" numbered="true" toc="default">
<name>Entity Domain Name</name> <name>Entity Domain Name</name>
<t>As discussed in <xref target="con-entity-domain" format="default"/> , <t>As discussed in <xref target="con-entity-domain" format="default"/> ,
an entity domain is characterized by a type and identified by a name.< /t> an entity domain is characterized by a type and identified by a name.< /t>
<t>This document distinguishes three categories of entity domains: <t>This document distinguishes three categories of entity domains:
resource-specific entity domains, resource-agnostic entity domain s and resource-specific entity domains, resource-agnostic entity domain s, and
self-defined entity domains. Their entity domain names are constr ucted as self-defined entity domains. Their entity domain names are constr ucted as
specified in the following sub-sections.</t> specified in the following subsections.</t>
<t>Each entity domain is identified by a unique entity domain name. <t>Each entity domain is identified by a unique entity domain name.
Borrowing the symbol "::=" from the Backus-Naur Form notation Borrowing the symbol "::=" from the Backus-Naur Form notation
<xref target="RFC5511" format="default"/>, <xref target="RFC5511" format="default"/>,
the format of an entity domain name is defined as follows:</t> the format of an entity domain name is defined as follows:</t>
<sourcecode type="rbnf"><![CDATA[
<artwork name="" type="" align="left" alt=""><![CDATA[
EntityDomainName ::= [ [ ResourceID ] '.' ] EntityDomainType EntityDomainName ::= [ [ ResourceID ] '.' ] EntityDomainType
]]></artwork> ]]></sourcecode>
<t>The presence and construction of the component</t> <t>The presence and construction of the component</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <sourcecode type="rbnf"><![CDATA[
"[ [ ResourceID ] '.' ]" "[ [ ResourceID ] '.' ]"
]]></artwork> ]]></sourcecode>
<t>depends on the category of entity domain.</t> <t>depends on the category of entity domain.</t>
<!-- commented text <t>The component</t> --> <t>Note that the '.' separator is not allowed in EntityDomainType, and
<!-- commented text <artwork name="" type="" align="left" alt=""> hence
<![CDATA[
"['priv:']"
]]></artwork> -->
<!-- commented text <t>is present when the entity domain type is defi
ned for Private Use.
</t> -->
<t>Note that the '.' separator is not allowed in EntityDomainType and
hence
there is no ambiguity on whether an entity domain name refers to a there is no ambiguity on whether an entity domain name refers to a
resource-agnostic entity domain or a resource-specific entity dom ain.</t> resource-agnostic entity domain or a resource-specific entity dom ain.</t>
<t>Note also that Section 10.1 of <xref target="RFC7285" format="defau lt"/> <t>Note also that <xref target="RFC7285" section="10.1" sectionFormat= "of" format="default"/>
specifies the format of the PID specifies the format of the PID
name which is the format of the resource ID including the followi name, which is the format of the resource identifier including th
ng e following
specification: "the '.' separator is reserved for future use and specification:</t>
MUST NOT be <blockquote>The '.' separator is reserved for future use and <bcp14>MU
ST NOT</bcp14> be
used unless specifically indicated in this document, or an extens ion used unless specifically indicated in this document, or an extens ion
document". The present extension keeps the format specification o document.</blockquote>
f <t>The present extension keeps the format specification of
<xref target="RFC7285" format="default"/>, hence the '.' separato <xref target="RFC7285" format="default"/>, hence the '.' separato
r MUST NOT r <bcp14>MUST NOT</bcp14>
be used in an information resource ID.</t> be used in an information resource identifier.</t>
<section anchor="resource-specific-ED" numbered="true" toc="default"> <section anchor="resource-specific-ED" numbered="true" toc="default">
<name>Resource-specific Entity Domain</name> <name>Resource-Specific Entity Domain</name>
<t>A resource-specific entity domain is identified by an entity doma in name <t>A resource-specific entity domain is identified by an entity doma in name
constructed as follows. It MUST start with a resource ID using the ResourceID constructed as follows. It <bcp14>MUST</bcp14> start with a resource identifier
type defined in Section 10.2 of <xref target="RFC7285" format="default"/>, follo using the ResourceID
wed by the '.' separator type defined in <xref target="RFC7285" section="10.2" sectionFormat="of" format=
"default"/>, followed by the '.' separator
(U+002E), followed by a string of the type EntityDomainType specified in (U+002E), followed by a string of the type EntityDomainType specified in
<xref target="domain-types" format="default"/>.</t> <xref target="domain-types" format="default"/>.</t>
<t>For example, if an ALTO server provides two network maps "netmap- 1" and <t>For example, if an ALTO server provides two network maps "netmap- 1" and
"netmap-2", these network maps can define two resource-specific domains of "netmap-2", these network maps can define two resource-specific domains of
type "pid", respectively identified by "netmap-1.pid" and "netmap-2.pid".</t> type "pid", respectively identified by "netmap-1.pid" and "netmap-2.pid".</t>
</section> </section>
<section anchor="resource-agnostic-ED" numbered="true" toc="default"> <section anchor="resource-agnostic-ED" numbered="true" toc="default">
<name>Resource-agnostic Entity Domain</name> <name>Resource-Agnostic Entity Domain</name>
<t>A resource-agnostic entity domain contains entities that are iden tified <t>A resource-agnostic entity domain contains entities that are iden tified
independently of any information resource. The identifier of a independently of any information resource. The identifier of a
resource-agnostic entity domain is simply the identifier of its entity domain resource-agnostic entity domain is simply the identifier of its entity domain
type. For example, "ipv4" and "ipv6" identify the two resource-agnostic type. For example, "ipv4" and "ipv6" identify the two resource-agnostic
Internet address entity domains defined in <xref target="inet-addr-domain" forma t="default"/>.</t> Internet address entity domains defined in <xref target="inet-addr-domain" forma t="default"/>.</t>
</section> </section>
<section anchor="self-defined-ED" numbered="true" toc="default"> <section anchor="self-defined-ED" numbered="true" toc="default">
<name>Self-defined Entity Domain</name> <name>Self-Defined Entity Domain</name>
<t>A property map can define properties on entities that are specifi <t>A property map can define properties for entities that are specif
c to a ic to a
unique information resource, which is the property map itself. This may be unique information resource, which is the property map itself. This may be
the case when an ALTO Server provides properties on a set of entities that the case when an ALTO Server provides properties for a set of entities that
are defined only in this property map, are not relevant to another one and do are defined only in this property map, are not relevant to another one, and do
not depend on another specific resource.</t> not depend on another specific resource.</t>
<t>For example: a specialised property map may define a domain of ty pe "ane", <t>For example: a specialized property map may define a domain of ty pe "ane",
defined in <xref target="I-D.ietf-alto-path-vector" format="default"/>, that con tains a set of ANEs defined in <xref target="I-D.ietf-alto-path-vector" format="default"/>, that con tains a set of ANEs
representing data centers, that each have a persistent identifier and are representing data centers that each have a persistent identifier and are
relevant only to this property map.</t> relevant only to this property map.</t>
<t>In this case, the entity domain is qualified as "self-defined". T he <t>In this case, the entity domain is qualified as "self-defined". T he
identifier of a self-defined entity domain can be of the format:</t> identifier of a self-defined entity domain can be of the format:</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <sourcecode type="rbnf"><![CDATA[
EntityDomainName ::= '.' EntityDomainType EntityDomainName ::= '.' EntityDomainType
]]></artwork> ]]></sourcecode>
<t>where '.' indicates that the entity domain only exists within the property <t>where '.' indicates that the entity domain only exists within the property
map resource using it.</t> map resource using it.</t>
<t>A self-defined entity domain can be viewed as a particular case o f <t>A self-defined entity domain can be viewed as a particular case o f
resource-specific entity domain, where the specific resource is the current resource-specific entity domain, where the specific resource is the current
resource that uses this entity domain. In that case, for the sake of resource that uses this entity domain. In that case, for the sake of
simplification, the component "ResourceID" MUST be omitted in its entity simplification, the component ResourceID <bcp14>MUST</bcp14> be omitted in its e ntity
domain name.</t> domain name.</t>
</section> </section>
</section> </section>
<section anchor="entity-addrs" numbered="true" toc="default"> <section anchor="entity-addrs" numbered="true" toc="default">
<name>Entity Identifier</name> <name>Entity Identifier</name>
<!-- FIXME: The entity identifier is not global unique. -->
<t>Entities in an entity domain are identified by entity identifiers (Ent ityID) of <t>Entities in an entity domain are identified by entity identifiers (Ent ityID) of
the following format: the following format:
</t> </t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <sourcecode type="rbnf"><![CDATA[
EntityID ::= EntityDomainName ':' DomainTypeSpecificEntityID EntityID ::= EntityDomainName ':' DomainTypeSpecificEntityID
]]></artwork> ]]></sourcecode>
<t>Examples from the Internet address entity domains include individual IP <t>Examples from the Internet address entity domains include individual IP
addresses such as "net1.ipv4:192.0.2.14" and "net1.ipv6:2001:db8::12", as well addresses such as "net1.ipv4:192.0.2.14" and "net1.ipv6:2001:db8::12", as well
as address blocks such as "net1.ipv4:192.0.2.0/26" and as address blocks such as "net1.ipv4:192.0.2.0/26" and
"net1.ipv6:2001:db8::/48".</t> "net1.ipv6:2001:db8::/48".</t>
<t>The format of the second part of an entity identifier, <t>The format of the second part of an entity identifier,
DomainTypeSpecificEntityID, depends on the entity domain type, and MUST b DomainTypeSpecificEntityID, depends on the entity domain type and <bcp14>
e MUST</bcp14> be
specified when defining a new entity domain type and registering it with specified when defining a new entity domain type and registering it with
the
IANA. IANA.
Identifiers MAY be hierarchical, and properties Identifiers <bcp14>MAY</bcp14> be hierarchical, and properties
MAY be inherited based on that hierarchy. The rules defining any hierarch <bcp14>MAY</bcp14> be inherited based on that hierarchy. The rules defini
y or ng any hierarchy or
inheritance MUST be defined when the entity domain type is registered. inheritance <bcp14>MUST</bcp14> be defined when the entity domain type is
registered.
</t> </t>
<t>The type EntityID is used in this document to denote a JSON string <t>The type EntityID is used in this document to denote a JSON string
representing an entity identifier in this format.</t> representing an entity identifier in this format.</t>
<t>Note that two entity identifiers with different valid textual repre sentations <t>Note that two entity identifiers with different, valid textual repr esentations
may refer to the same entity, for a given entity domain. For example, the may refer to the same entity, for a given entity domain. For example, the
strings "net1.ipv6:2001:db8::1" and "net1.ipv6:2001:db8:0:0:0:0:0:1" refer to strings "net1.ipv6:2001:db8::1" and "net1.ipv6:2001:db8:0:0:0:0:0:1" refer to
the same entity in the "ipv6" entity domain. Such equivalences should be the same entity in the "ipv6" entity domain. Such equivalences should be
established by the object represented by DomainTypeSpecificEntityID, for established by the object represented by DomainTypeSpecificEntityID. For
example, <xref target="RFC5952" format="default"/> establishes equivalence for I Pv6 addresses, while example, <xref target="RFC5952" format="default"/> establishes equivalence for I Pv6 addresses, while
<xref target="RFC4632" format="default"/> does so for IPv4 addresses.</t> <xref target="RFC4632" format="default"/> does so for IPv4 addresses.</t>
</section> </section>
<section anchor="def-hierarchy-and-inheritance" numbered="true" toc="def ault"> <section anchor="def-hierarchy-and-inheritance" numbered="true" toc="def ault">
<name>Hierarchy and Inheritance</name> <name>Hierarchy and Inheritance</name>
<t>To simplify the representation, some types of entity domains allow the ALTO <t>To simplify the representation, some types of entity domains allow the ALTO
Client and Server to use a hierarchical entity identifier format to represent Client and Server to use a hierarchical entity identifier format to represent
a block of individual entities. For instance, in an IPv4 domain "net1.ipv4", a block of individual entities. For instance, in an IPv4 domain "net1.ipv4",
a CIDR "net1.ipv4:192.0.2.0/26" covers 64 individual IPv4 entities. In this a CIDR "net1.ipv4:192.0.2.0/26" covers 64 individual IPv4 entities. In this
case, the corresponding property inheritance rule MUST be defined for the case, the corresponding property inheritance rule <bcp14>MUST</bcp14> be defined
entity domain type. The hierarchy and inheritance rule MUST have no for the
entity domain type. The hierarchy and inheritance rule <bcp14>MUST</bcp14> have
no
ambiguity.</t> ambiguity.</t>
</section> </section>
</section> </section>
<section anchor="def-property" numbered="true" toc="default"> <section anchor="def-property" numbered="true" toc="default">
<name>Entity Property</name> <name>Entity Property</name>
<t>Each entity property has a type to indicate the encoding and the sema ntics of <t>Each entity property has a type to indicate the encoding and the sema ntics of
the value of this entity property, and has a name to identify it.</t> the value of this entity property, and has a name to identify it.</t>
<section anchor="def-property-type" numbered="true" toc="default"> <section anchor="def-property-type" numbered="true" toc="default">
<name>Entity Property Type</name> <name>Entity Property Type</name>
<t>The type EntityPropertyType is used in this document to indicate a strin g <t>The type EntityPropertyType is used in this document to indicate a strin g
denoting an entity property type. The string MUST be no more than 32 denoting an entity property type. The string <bcp14>MUST</bcp14> be no mo
characters, and it MUST NOT contain characters other than US-ASCII re than 32
characters, and it <bcp14>MUST NOT</bcp14> contain characters other than
US-ASCII
alphanumeric characters (U+0030-U+0039, U+0041-U+005A, and U+0061-U+007A) , alphanumeric characters (U+0030-U+0039, U+0041-U+005A, and U+0061-U+007A) ,
the hyphen ('-', U+002D), the colon (':', U+003A), or the low line ('_', the hyphen-minus ('-', U+002D), the colon (':', U+003A), or the low line ('_',
U+005F). Note that the '.' separator is not allowed because it is reserve d to U+005F). Note that the '.' separator is not allowed because it is reserve d to
separate an entity property type and an information resource identifier w hen separate an entity property type and an information resource identifier w hen
an entity property is resource-specific.</t> an entity property is resource-specific.</t>
<t>While, in <xref target="domain-types" format="default"/>, <t>While <xref target="domain-types" format="default"/> allows the use of
character ":" is allowed with restrictions on entity domain identifiers, the
character ":" with restrictions on entity domain identifiers,
it can be used without restrictions on entity property type identifiers. it can be used without restrictions on entity property type identifiers.
This relates to <xref target="RFC7285" format="default"/>, where a Server This relates to <xref target="RFC7285" format="default"/>, where a Server
can define properties on endpoints "ipv4" and "ipv6". In the present exte can define properties for endpoints "ipv4" and "ipv6". In the present ext
nsion, ension,
there is a mapping of ALTO entity domain types "ipv4" and "ipv6", to ALTO there is a mapping of ALTO entity domain types "ipv4" and "ipv6" to ALTO
address types "ipv4" and "ipv6". Properties defined on "ipv4" and "ipv6" address types "ipv4" and "ipv6". Properties defined for "ipv4" and "ipv6"
endpoints should be re-usable on "ipv4" and "ipv6" entities. Forbidding t endpoints should be reusable on "ipv4" and "ipv6" entities. Forbidding th
he e
usage of ":" in a non-private entity property type identifier would not usage of ":" in a non-private entity property type identifier would not
allow to use properties previously defined on "ipv4" and "ipv6" endpoint s allow the use of properties previously defined for "ipv4" and "ipv6" endp oints
because their identifiers would be invalid.</t> because their identifiers would be invalid.</t>
<t>Although “:” or “_::-“ are valid entity domain types, <t>Although ":" or "_::-" are valid entity domain types,
it is desirable to add characters such as alphanumeric ones, it is desirable to add characters, such as alphanumeric ones,
for better intelligibility. </t> for better intelligibility. </t>
<t>Identifiers prefixed with "priv:" are reserved for Private Use <t>Identifiers prefixed with "priv:" are reserved for Private Use
<xref target="RFC8126" format="default"/> <xref target="RFC8126" format="default"/>
without a need to register with IANA. All other identifiers for entity without a need to register with IANA. All other identifiers for entity
property types MUST be registered in the "ALTO Entity property types <bcp14>MUST</bcp14> be registered in the "ALTO Entity
Property Type Registry", defined in <xref target="IANAEntityProp" format= Property Types" registry, which is defined in <xref target="IANAEntityPro
"default"/>. p" format="default"/>.
The intended semantics of the entity property type MUST be specified in t The intended semantics of the entity property type <bcp14>MUST</bcp14> be
he IANA registration. specified in the IANA registration.
</t> </t>
<t>For an entity <t>For an entity
property identifier with the "priv:" prefix, an additional string (e.g., property identifier with the "priv:" prefix, an additional string (e.g.,
company identifier or random string) MUST follow the prefix to reduce company identifier or random string) <bcp14>MUST</bcp14> follow the prefi x to reduce
potential collisions, that is, the string "priv:" alone is not a valid potential collisions, that is, the string "priv:" alone is not a valid
entity property identifier. entity property identifier.
The definition of a private use entity property type must apply The definition of a private-use entity property type must apply
the same way in all property maps of an IRD where it is present. the same way in all property maps of an IRD where it is present.
</t> </t>
<t>To distinguish from the endpoint property type, the entity property type has <t>To distinguish from the endpoint property type, the entity property type has
the following characteristics:</t> the following characteristics:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>Some entity property types are applicable to entities in particu <li>Some entity property types are applicable only to entities in pa
lar entity rticular entity
domain types only. For example, the property type "pid" is applicable to domain types. For example, the property type "pid" is applicable to
entities in the entity domain types "ipv4" or "ipv6" while is not entities in the entity domain types "ipv4" or "ipv6", while it is not
applicable to entities in an entity domain of type "pid".</li> applicable to entities in an entity domain of type "pid".</li>
<li>The intended semantics of the value of an entity property may al so depend <li>The intended semantics of the value of an entity property may al so depend
on the entity domain type. For example, suppose that a property n amed on the entity domain type. For example, suppose that a property n amed
"geo-location" is defined as the coordinates of a point, encoded as: "geo-location" is defined as the coordinates of a point and is en coded as:
"latitude longitude [altitude]." When applied to an entity that r epresents "latitude longitude [altitude]." When applied to an entity that r epresents
a specific host computer, identified by an address in an entity d omain of a specific host computer and identified by an address in an entit y domain of
type "ipv4" or "ipv6", the "geo-location" property would define t he host's type "ipv4" or "ipv6", the "geo-location" property would define t he host's
location. However, when applied to an entity in a "pid" domain ty pe, the location. However, when applied to an entity in a domain of type "pid", the
property would indicate a location representative of all hosts in this property would indicate a location representative of all hosts in this
"pid" entity.</li> "pid" entity.</li>
</ul> </ul>
</section> </section>
<section anchor="entity-property-name" numbered="true" toc="default"> <section anchor="entity-property-name" numbered="true" toc="default">
<name>Entity Property Name</name> <name>Entity Property Name</name>
<t>Each entity property is identified by an entity property name, whic h is a <t>Each entity property is identified by an entity property name, whic h is a
string of the following format:</t> string of the following format:</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <sourcecode type=""><![CDATA[
EntityPropertyName ::= [ [ ResourceID ] '.' ] EntityPropertyType EntityPropertyName ::= [ [ ResourceID ] '.' ] EntityPropertyType
]]></artwork> ]]></sourcecode>
<t>Similar to the endpoint property type defined in Section 10.8 of <x <t>Similar to the endpoint property type defined in <xref target="RFC7
ref target="RFC7285" format="default"/>, 285" section="10.8" sectionFormat="of" format="default"/>,
each entity property may be defined by either the property map itself each entity property may be defined by either the property map itself
(self-defined) or some other specific information resource (self-defined) or some other specific information resource
(resource-specific).</t> (resource-specific).</t>
<t>The entity property name of a resource-specific entity property sta rts with a <t>The entity property name of a resource-specific entity property sta rts with a
string of the type ResourceID defined in <xref target="RFC7285" format="default" />, followed by the '.' string of the type ResourceID defined in <xref target="RFC7285" format="default" />, followed by the '.'
separator (U+002E) and a EntityDomainType typed string. For example, the separator (U+002E) and an EntityDomainType typed string. For example, the
"pid" properties of an "ipv4" entity defined by two different maps "pid" properties of an "ipv4" entity defined by two different maps
"net-map-1" and "net-map-2" are identified by "net-map-1.pid" and "net-map-1" and "net-map-2" are identified by "net-map-1.pid" and
"net-map-2.pid" respectively.</t> "net-map-2.pid" respectively.</t>
<t>The specific information resource of an entity property may be the current <t>The specific information resource of an entity property may be the current
information resource itself, that is, the property map defining the property. information resource itself, that is, the property map defining the property.
In that case, the ResourceID in the property name SHOULD be omitted. For In that case, the ResourceID in the property name <bcp14>SHOULD</bcp14> be omitt
example, the property name ".asn" applied to an entity identified by its ed. For
IPv4 address, indicates the AS number of the AS that "owns" the entity, where example, the property name ".ASN" applied to an entity identified by its
IPv4 address indicates the AS number of the AS that "owns" the entity, where
the returned AS number is defined by the property map itself.</t> the returned AS number is defined by the property map itself.</t>
</section> </section>
<section anchor="format-entity-property-value" numbered="true" toc="defa ult"> <section anchor="format-entity-property-value" numbered="true" toc="defa ult">
<name>Format for Entity Property Value</name> <name>Format for Entity Property Value</name>
<t>Section 11.4.1.6 of <xref target="RFC7285" format="default"/> speci <t><xref target="RFC7285" section="11.4.1.6" sectionFormat="of" format
fies that an implementation of the ="default"/> specifies that an implementation of the
Endpoint Property Service specified in <xref target="RFC7285" format="default"/> Endpoint Property Service specified in <xref target="RFC7285" format="default"/>
SHOULD assume that the <bcp14>SHOULD</bcp14> assume that the
property value is a JSONString and fail to parse if it is not. This document property value is a JSONString and fail to parse if it is not. This document
extends the format of a property value by allowing it to be a JSONValue extends the format of a property value by allowing it to be a JSONValue
instead of just a JSONString.</t> instead of just a JSONString.</t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="entity-domain-types" numbered="true" toc="default"> <section anchor="entity-domain-types" numbered="true" toc="default">
<name>Entity Domain Types Defined in this Document</name> <name>Entity Domain Types Defined in This Document</name>
<t>The definition of each entity domain type MUST include <t>The definition of each entity domain type <bcp14>MUST</bcp14> include
(1) the entity domain type name and (2) domain-specific entity identifiers, the entity domain type name and the domain-specific entity identifiers.
and MAY include (3) hierarchy and inheritance semantics optionally. This The definition of an entity domain type
<bcp14>MAY</bcp14> include hierarchy and inheritance semantics. This
document defines three initial entity domain types as follows.</t> document defines three initial entity domain types as follows.</t>
<section anchor="inet-addr-domain" numbered="true" toc="default"> <section anchor="inet-addr-domain" numbered="true" toc="default">
<name>Internet Address Domain Types</name> <name>Internet Address Domain Types</name>
<t>The document defines two entity domain types (IPv4 and IPv6) for Inte rnet <t>The document defines two entity domain types (IPv4 and IPv6) for Inte rnet
addresses. Both types are resource-agnostic entity domain types and hence addresses. Both types are resource-agnostic entity domain types and hence
define corresponding resource-agnostic entity domains as well. Since the two define corresponding resource-agnostic entity domains as well. Since the two
domains use the same hierarchy and inheritance semantics, we define the domains use the same hierarchy and inheritance semantics, we define the
semantics together, instead of repeating for each.</t> semantics together, instead of repeating for each.</t>
<section anchor="ipv4-domain" numbered="true" toc="default"> <section anchor="ipv4-domain" numbered="true" toc="default">
<name>Entity Domain Type: IPv4</name> <name>Entity Domain Type: IPv4</name>
<section anchor="ipv4-edt" numbered="true" toc="default"> <section anchor="ipv4-edt" numbered="true" toc="default">
<name>Entity Domain Type Identifier</name> <name>Entity Domain Type Identifier</name>
<t>The identifier for this Entity Domain Type is "ipv4".</t> <t>The identifier for this entity domain type is "ipv4".</t>
</section> </section>
<section anchor="ipv4-dsei" numbered="true" toc="default"> <section anchor="ipv4-dsei" numbered="true" toc="default">
<name>Domain-Specific Entity Identifiers</name> <name>Domain-Specific Entity Identifiers</name>
<t>Individual addresses are strings as specified by the IPv4address rule in <t>Individual addresses are strings as specified by the IPv4address rule in
Section 3.2.2 of <xref target="RFC3986" format="default"/>; <xref target="RFC3986" section="3.2.2" sectionFormat="of" format=
Hierarchical addresses are strings as specified by the prefix not "default"/>;
ation in Section 3.1 hierarchical addresses are strings as specified by the prefix not
of <xref target="RFC4632" format="default"/>. ation in
To define properties, an <xref target="RFC4632" section="3.1" sectionFormat="of" format="d
efault"/>.
An
individual Internet address and the corresponding full-length pre fix are individual Internet address and the corresponding full-length pre fix are
considered aliases for the same entity on which to define propert ies. considered aliases for the same entity on which to define propert ies.
Thus, "ipv4:192.0.2.0" and "ipv4:192.0.2.0/32" are equivalent.</t > Thus, "ipv4:192.0.2.0" and "ipv4:192.0.2.0/32" are equivalent.</t >
</section> </section>
</section> </section>
<section anchor="ipv6-domain" numbered="true" toc="default"> <section anchor="ipv6-domain" numbered="true" toc="default">
<name>Entity Domain Type: IPv6</name> <name>Entity Domain Type: IPv6</name>
<section anchor="ipv6-edt" numbered="true" toc="default"> <section anchor="ipv6-edt" numbered="true" toc="default">
<name>Entity Domain Type Identifier</name> <name>Entity Domain Type Identifier</name>
<t>The identifier for this Entity Domain Type is "ipv6".</t> <t>The identifier for this Entity Domain Type is "ipv6".</t>
</section> </section>
<section anchor="ipv6-dsei" numbered="true" toc="default"> <section anchor="ipv6-dsei" numbered="true" toc="default">
<name>Domain-Specific Entity Identifiers</name> <name>Domain-Specific Entity Identifiers</name>
<t>Individual addresses are strings as specified by <t>Individual addresses are strings as specified by
Section 4 of <xref target="RFC5952" format="default"/>; <xref target="RFC5952" section="4" sectionFormat="of" format="de
Hierarchical addresses are strings as specified by fault"/>;
IPv6 address prefixes notation in Section 2.3 of hierarchical addresses are strings as specified by
<xref target="RFC4291" format="default"/>. IPv6 address prefixes notation in
<xref target="RFC4291" section="2.3" sectionFormat="of" format="d
efault"/>.
To define properties, an individual Internet address and the To define properties, an individual Internet address and the
corresponding 128-bit prefix are considered aliases for the same entity. That corresponding 128-bit prefix are considered aliases for the same entity. That
is, "ipv6:2001:db8::1" and "ipv6:2001:db8::1/128" are equivalent, and have is, "ipv6:2001:db8::1" and "ipv6:2001:db8::1/128" are equivalent and have
the same set of properties.</t> the same set of properties.</t>
</section> </section>
</section> </section>
<section anchor="inet-inheritance" numbered="true" toc="default"> <section anchor="inet-inheritance" numbered="true" toc="default">
<name>Hierarchy and Inheritance of Internet Address Domains</name> <name>Hierarchy and Inheritance of Internet Address Domains</name>
<t>Both Internet address domains allow property values to be inherited . <t>Both Internet address domains allow property values to be inherited .
Specifically, if a property P is not defined for a specific Inter net address Specifically, if a property P is not defined for a specific Inter net address
I, but P is defined for a hierarchical Internet address C which I, but P is defined for a hierarchical Internet address C that
represents a set of addresses containing I, then the address I in herits represents a set of addresses containing I, then the address I in herits
the value of P defined for the hierarchical address C. the value of P defined for the hierarchical address C.
If more than one such hierarchical addresses define a If more than one such hierarchical addresses define a
value for P, I inherits the value of P in the hierarchical addres s with the value for P, I inherits the value of P in the hierarchical addres s with the
longest prefix. Note that this longest prefix rule ensures no mul tiple value longest prefix. Note that this longest prefix rule ensures no mul tiple value
inheritances, and hence no ambiguity.</t> inheritances, and hence no ambiguity.</t>
<t>Hierarchical addresses can also inherit properties: if a property P <t>Hierarchical addresses can also inherit properties. For instance, i
is not f a property P:</t>
defined for the hierarchical address C, but is defined for <ul>
a set of hierarchical addresses, where each address C' in the set <li>is not
contains all IP addresses in C, and C' has a shorter prefix lengt defined for the hierarchical address C,</li>
h than C, <li>
then C MUST inherit the property P from the C' having the longest <t>but is defined for
prefix length. a set of hierarchical addresses where:</t>
<ul>
<li>each address C' in the set
contains all IP addresses in C, and</li>
<li>C' has a shorter prefix length than C,</li>
</ul>
</li>
</ul>
<t>then C <bcp14>MUST</bcp14> inherit the property P from the C' having
the longest prefix length.
</t> </t>
<t>As an example, suppose that a server defines a property P for the f ollowing <t>As an example, suppose that a server defines a property P for the f ollowing
entities:</t> entities:</t>
<figure anchor="fig_def-prop-val"> <table anchor="fig_def-prop-val">
<name>Defined Property Values.</name> <name>Defined Property Values</name>
<artwork name="" type="" align="left" alt=""><![CDATA[ <tbody>
ipv4:192.0.2.0/26: P=v1 <tr>
ipv4:192.0.2.0/28: P=v2 <td>ipv4:192.0.2.0/26:</td>
ipv4:192.0.2.0/30: P=v3 <td>P=v1</td>
ipv4:192.0.2.0: P=v4 </tr>
]]></artwork> <tr>
</figure> <td>ipv4:192.0.2.0/28:</td>
<td>P=v2</td>
</tr>
<tr>
<td>ipv4:192.0.2.0/30:</td>
<td>P=v3</td>
</tr>
<tr>
<td>ipv4:192.0.2.0:</td>
<td>P=v4</td>
</tr>
</tbody>
</table>
<t>Then the following entities have the indicated values:</t> <t>Then the following entities have the indicated values:</t>
<figure anchor="fig_inh-prop-val"> <table anchor="fig_inh-prop-val">
<name>Inherited Property Values.</name> <name>Inherited Property Values</name>
<artwork name="" type="" align="left" alt=""><![CDATA[ <tbody>
ipv4:192.0.2.0: P=v4 <tr>
ipv4:192.0.2.1: P=v3 <td>ipv4:192.0.2.0:</td>
ipv4:192.0.2.16: P=v1 <td>P=v4</td>
ipv4:192.0.2.32: P=v1 </tr>
ipv4:192.0.2.64: (not defined) <tr>
ipv4:192.0.2.0/32: P=v4 <td>ipv4:192.0.2.1:</td>
ipv4:192.0.2.0/31: P=v3 <td>P=v3</td>
ipv4:192.0.2.0/29: P=v2 </tr>
ipv4:192.0.2.0/27: P=v1 <tr>
ipv4:192.0.2.0/25: (not defined) <td>ipv4:192.0.2.16:</td>
]]></artwork> <td>P=v1</td>
</figure> </tr>
<!-- Improve words of this paragraph. (Done, waiting for review) --> <tr>
<td>ipv4:192.0.2.32:</td>
<td>P=v1</td>
</tr>
<tr>
<td>ipv4:192.0.2.64:</td>
<td>(not defined)</td>
</tr>
<tr>
<td>ipv4:192.0.2.0/32:</td>
<td>P=v4</td>
</tr>
<tr>
<td>ipv4:192.0.2.0/31:</td>
<td>P=v3</td>
</tr>
<tr>
<td>ipv4:192.0.2.0/29:</td>
<td>P=v2</td>
</tr>
<tr>
<td>ipv4:192.0.2.0/27:</td>
<td>P=v1</td>
</tr>
<tr>
<td>ipv4:192.0.2.0/25:</td>
<td>(not defined)</td>
</tr>
</tbody>
</table>
<t>An ALTO server MAY explicitly indicate a property as not having a value for <t>An ALTO server <bcp14>MAY</bcp14> explicitly indicate a property as not havin
a particular entity. That is, a server MAY say that property P of entity X is g a value for
"defined to have no value", instead of "undefined". To indicate "no value", a particular entity. That is, a server <bcp14>MAY</bcp14> say that property P of
a server MAY perform different behaviors:</t> entity X is
"defined to have no value" instead of "undefined". To indicate "no value",
a server <bcp14>MAY</bcp14> perform different behaviors:</t>
<ul spacing="normal"> <ul spacing="normal">
<li> <li>
If entity X would inherit a value for property P, and if the ALTO server decides to If entity X would inherit a value for property P, and if the ALTO server decides to
say that "X has no value for P", then the say that "X has no value for P", then the
ALTO server MUST return a "null" value for that property on X. In this ALTO server <bcp14>MUST</bcp14> return a "null" value for that property o
case, the ALTO client MUST recognize the JSON "null" value as "no value" n X. In this
case, the ALTO client <bcp14>MUST</bcp14> recognize the JSON "null" value
as "no value"
and interpret it as "do not apply the inheritance rules for this property on X". and interpret it as "do not apply the inheritance rules for this property on X".
</li> </li>
<li>If the entity would not inherit a value, then the ALTO server MA Y return <li>If the entity would not inherit a value, then the ALTO server <b cp14>MAY</bcp14> return
"null" or just omit the property. In this case, the ALTO client c annot infer "null" or just omit the property. In this case, the ALTO client c annot infer
the value for this property of this entity from the Inheritance r the value for this property of this entity from the Inheritance r
ules. So, the ules. Thus, the
client MUST interpret that this property has no value.</li> client <bcp14>MUST</bcp14> interpret that this property has no va
lue.</li>
</ul> </ul>
<t>If the ALTO server does not define any properties for an entity, th en the <t>If the ALTO server does not define any properties for an entity, th en the
server MAY omit that entity from the response.</t> server <bcp14>MAY</bcp14> omit that entity from the response.</t>
</section> </section>
<section anchor="defining-IR-media-type-ipv4-ipv6" numbered="true" toc=" default"> <section anchor="defining-IR-media-type-ipv4-ipv6" numbered="true" toc=" default">
<name>Defining Information Resource Media Type for domain types IPv4 a <name>Defining Information Resource Media Type for Domain Types IPv4 a
nd IPv6</name> nd IPv6</name>
<t>Entity domain types "ipv4" and "ipv6" both allow to define resource <t>Entity domain types "ipv4" and "ipv6" both allow the definition of
specific resource-specific
entity domains. When resource specific domains are defined with entities of entity domains. When resource-specific domains are defined with entities of
domain type "ipv4" or "ipv6", the defining information resource for an entity domain type "ipv4" or "ipv6", the defining information resource for an entity
domain of type "ipv4" or "ipv6" MUST be a Network Map. The media type of a domain of type "ipv4" or "ipv6" <bcp14>MUST</bcp14> be a network map. The media type of a
defining information resource is therefore:</t> defining information resource is therefore:</t>
<t>application/alto-networkmap+json</t> <t>application/alto-networkmap+json</t>
</section> </section>
</section> </section>
<section anchor="pid-domain" numbered="true" toc="default"> <section anchor="pid-domain" numbered="true" toc="default">
<name>Entity Domain Type: PID</name> <name>Entity Domain Type: PID</name>
<t>The PID entity domain associates property values with the PIDs in a n etwork map. <t>The PID entity domain associates property values with the PIDs in a n etwork map.
Accordingly, this entity domain always depends on a network map.</t> Accordingly, this entity domain always depends on a network map.</t>
<section anchor="entity-domain-type-identifier" numbered="true" toc="def ault"> <section anchor="entity-domain-type-identifier" numbered="true" toc="def ault">
<name>Entity Domain Type Identifier</name> <name>Entity Domain Type Identifier</name>
<t>The identifier for this Entity Domain Type is "pid"</t> <t>The identifier for this Entity Domain Type is "pid".</t>
</section> </section>
<section anchor="domain-specific-entity-identifiers" numbered="true" toc ="default"> <section anchor="domain-specific-entity-identifiers" numbered="true" toc ="default">
<name>Domain-Specific Entity Identifiers</name> <name>Domain-Specific Entity Identifiers</name>
<t>The entity identifiers are the PID names of the associated network map.</t> <t>The entity identifiers are the PID names of the associated network map.</t>
</section> </section>
<section anchor="hierarchy-and-inheritance" numbered="true" toc="default "> <section anchor="hierarchy-and-inheritance" numbered="true" toc="default ">
<name>Hierarchy and Inheritance</name> <name>Hierarchy and Inheritance</name>
<t>There are no hierarchy or inheritance for properties associated wit h PIDs.</t> <t>There is no hierarchy or inheritance for properties associated with PIDs.</t>
</section> </section>
<section anchor="defining-IR-media-type-pid" numbered="true" toc="defaul t"> <section anchor="defining-IR-media-type-pid" numbered="true" toc="defaul t">
<name>Defining Information Resource Media Type for Domain Type PID</na me> <name>Defining Information Resource Media Type for Domain Type PID</na me>
<t>The entity domain type "pid" allows to define resource specific ent <t>The entity domain type "pid" allows the definition of resource-spec
ity ific entity
domains. When resource specific domains are defined with entities of domain domains. When resource-specific domains are defined with entities of domain
type "pid", the defining information resource for entity domain type "pid" type "pid", the defining information resource for entity domain type "pid"
MUST be a Network Map. The media type of a defining information resource is <bcp14>MUST</bcp14> be a network map. The media type of a defining information r esource is
therefore:</t> therefore:</t>
<t>application/alto-networkmap+json</t> <t>application/alto-networkmap+json</t>
</section> </section>
<section anchor="relationship-to-internet-addresses-domains" numbered="t rue" toc="default"> <section anchor="relationship-to-internet-addresses-domains" numbered="t rue" toc="default">
<name>Relationship To Internet Addresses Domains</name> <name>Relationship To Internet Addresses Domains</name>
<t>The PID domain and the Internet address domains are completely inde pendent; <t>The PID domain and the Internet address domains are completely inde pendent;
the properties associated with a PID have no relation to the properties the properties associated with a PID have no relation to the properties
associated with the prefixes or endpoint addresses in that PID. An ALTO associated with the prefixes or endpoint addresses in that PID. An ALTO
server MAY choose to assign all the properties of a PID to the prefixes in server <bcp14>MAY</bcp14> choose to assign all the properties of a PID to the pr efixes in
that PID or only some of these properties.</t> that PID or only some of these properties.</t>
<t>For example, suppose "PID1" consists of the prefix "ipv4:192.0.2.0/ <t>For example, suppose "PID1" consists of the prefix "ipv4:192.0.2.0/
24", and 24" and
has the property "P" with value "v1". The Internet address entities has the property P with value v1. The Internet address entities
"ipv4:192.0.2.0" and "ipv4:192.0.2.0/24" in the IPv4 domain MAY have a value "ipv4:192.0.2.0" and "ipv4:192.0.2.0/24" in the IPv4 domain <bcp14>MAY</bcp14> h
for the property "P", and if they do, it is not necessarily "v1".</t> ave a value
for the property P, and if they do, it is not necessarily v1.</t>
</section> </section>
</section> </section>
<section anchor="internet-address-properties-vs-pid-properties" numbered=" true" toc="default"> <section anchor="internet-address-properties-vs-pid-properties" numbered=" true" toc="default">
<name>Internet Address Properties vs. PID Properties</name> <name>Internet Address Properties vs. PID Properties</name>
<t>Because the Internet address and PID domains relate to completely dis tinct domain types, the <t>Because the Internet address and PID domains relate to completely dis tinct domain types, the
question may arise as to which entity domain type is the best for a property. In general, the question may arise as to which entity domain type is the best for a property. In general, the
Internet address domain types are RECOMMENDED for properties that are closely re Internet address domain types are <bcp14>RECOMMENDED</bcp14> for properties that
lated are closely related
to the Internet address, or are associated with, and inherited through, hierarch to the Internet address or are associated with, and inherited through, hierarchi
ical addresses.</t> cal addresses.</t>
<t>The PID domain type is RECOMMENDED for properties that arise from the <t>The PID domain type is <bcp14>RECOMMENDED</bcp14> for properties that
definition of arise from the definition of
the PID, rather than from the Internet address prefixes in that PID.</t> the PID, rather than from the Internet address prefixes in that PID.</t>
<t>For example, because Internet addresses are allocated to service prov iders by <t>For example, because Internet addresses are allocated to service prov iders by
blocks of prefixes, an "ISP" property would be best associated with Internet blocks of prefixes, an "ISP" property would be best associated with Internet
address domain types. On the other hand, a property that explains why a PID address domain types. On the other hand, a property that explains why a PID
was formed, or how it relates to a provider's network, would best be was formed, or how it relates to a provider's network, would best be
associated with the PID domain type.</t> associated with the PID domain type.</t>
</section> </section>
</section> </section>
<section anchor="prop-map" numbered="true" toc="default"> <section anchor="prop-map" numbered="true" toc="default">
<name>Property Map</name> <name>Property Map</name>
<t>A property map returns the properties defined for all entities in one o r more <t>A property map returns the properties defined for all entities in one o r more
domains, e.g., the "location" property of entities in "pid" domain, and t domains, e.g., the "location" property of entities in a domain of type "p
he id", and the
"ASN" property of entities in "ipv4" and "ipv6" domains. "ASN" property of entities in domains of types "ipv4" and "ipv6".
<xref target="prop-map-example" format="default"/> gives an example of a <xref target="prop-map-example" format="default"/> gives an example of a
property map request and its response. property map request and its response.
</t> </t>
<t>Downloading the whole property map is a way for the Client to obtain t <t>Downloading the whole property map is a way for the Client to obtain t
he Entity IDs he entity identifiers
that can be used as input for a Filtered Property Map request. that can be used as input for a filtered property map request.
However, a whole property map may be too voluminous for a Client that However, a whole property map may be too voluminous for a Client that
only wants the list of applicable Entity IDs. How to obtain the list of e ntities only wants the list of applicable entity identifiers. How to obtain the l ist of entities
of a filtered property map in a simplified response is specified in of a filtered property map in a simplified response is specified in
<xref target="filter-prop-map" format="default"/>. <xref target="filter-prop-map" format="default"/>.
</t> </t>
<section anchor="FullPropMapMediaType" numbered="true" toc="default"> <section anchor="FullPropMapMediaType" numbered="true" toc="default">
<name>Media Type</name> <name>Media Type</name>
<t>The media type of a property map is "application/alto-propmap+json".< /t> <t>The media type of a property map is "application/alto-propmap+json".< /t>
</section> </section>
<section anchor="http-method" numbered="true" toc="default"> <section anchor="http-method" numbered="true" toc="default">
<name>HTTP Method</name> <name>HTTP Method</name>
<t>The property map is requested using the HTTP GET method.</t> <t>The property map is requested using the HTTP GET method.</t>
</section> </section>
<section anchor="accept-input-parameters" numbered="true" toc="default"> <section anchor="accept-input-parameters" numbered="true" toc="default">
<name>Accept Input Parameters</name> <name>Accept Input Parameters</name>
<t>A Property Map has no Accept Input parameters.</t> <t>A property map has no Accept Input parameters.</t>
</section> </section>
<section anchor="FullPropMapCapabilities" numbered="true" toc="default"> <section anchor="FullPropMapCapabilities" numbered="true" toc="default">
<name>Capabilities</name> <name>Capabilities</name>
<t>The capabilities are defined by an object of type PropertyMapCapabili ties:</t> <t>The capabilities are defined by an object of type PropertyMapCapabili ties:</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
object { object {
EntityPropertyMapping mappings; EntityPropertyMapping mappings;
} PropertyMapCapabilities; } PropertyMapCapabilities;
skipping to change at line 1381 skipping to change at line 1369
<dd> <dd>
A JSON object whose keys are names of entity domains and values are the A JSON object whose keys are names of entity domains and values are the
supported entity properties of the corresponding entity domains.</dd> supported entity properties of the corresponding entity domains.</dd>
</dl> </dl>
</section> </section>
<section anchor="FullPropMapUses" numbered="true" toc="default"> <section anchor="FullPropMapUses" numbered="true" toc="default">
<name>Uses</name> <name>Uses</name>
<t> The "uses" field of a property map resource in an IRD entry specifie s <t> The "uses" field of a property map resource in an IRD entry specifie s
the resources in this same IRD on which this property map directly dep ends. It is an array of the resources in this same IRD on which this property map directly dep ends. It is an array of
resource ID(s). This array identifies the defining information resourc es associated with resource identifier(s). This array identifies the defining information resources associated with
the resource-specific entity domains and properties that are indicated in this resource. the resource-specific entity domains and properties that are indicated in this resource.
</t> </t>
</section> </section>
<section anchor="FullPropMapResponse" numbered="true" toc="default"> <section anchor="FullPropMapResponse" numbered="true" toc="default">
<name>Response</name> <name>Response</name>
<t>If the entity domains in this property map depend on other resources, the <t>If the entity domains in this property map depend on other resources, the
"dependent-vtags" field in the "meta" field of the response MUST be an array "dependent-vtags" field in the "meta" field of the response <bcp14>MUST</bcp14>
that includes the version tags of those resources, and the order MUST be be an array
that includes the version tags of those resources, and the order <bcp14>MUST</bc
p14> be
consistent with the "uses" field of this property map resource. The data consistent with the "uses" field of this property map resource. The data
component of a property map response is named "property-map", which is a JSON component of a property map response is named "property-map", which is a JSON
object of type PropertyMapData, where:</t> object of type PropertyMapData, where:</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
object { object {
PropertyMapData property-map; PropertyMapData property-map;
} InfoResourceProperties : ResponseEntityBase; } InfoResourceProperties : ResponseEntityBase;
object-map { object-map {
EntityID -> EntityProps; EntityID -> EntityProps;
} PropertyMapData; } PropertyMapData;
object { object {
EntityPropertyName -> JSONValue; EntityPropertyName -> JSONValue;
} EntityProps; } EntityProps;
]]></artwork> ]]></artwork>
<t>The ResponseEntityBase type is defined in Section 8.4 <t>The ResponseEntityBase type is defined in
of <xref target="RFC7285" format="default"/>. <xref target="RFC7285" section="8.4" sectionFormat="of" format="default"
/>.
</t> </t>
<t>Specifically, a PropertyMapData object has one member for each entity in the <t>Specifically, a PropertyMapData object has one member for each entity in the
property map. The entity's properties are encoded in the correspo nding property map. The entity's properties are encoded in the correspo nding
EntityProps object. EntityProps encodes one name/value pair for e ach property, EntityProps object. EntityProps encodes one name/value pair for e ach property,
where the property names are encoded as strings of type PropertyN ame. where the property names are encoded as strings of type PropertyN ame.
A protocol implementation SHOULD assume that the property value i s either A protocol implementation <bcp14>SHOULD</bcp14> assume that the p roperty value is either
a JSONString or a JSON "null" value, and fail to parse if it is n ot, unless the a JSONString or a JSON "null" value, and fail to parse if it is n ot, unless the
implementation is using an extension to this document that indica tes when and implementation is using an extension to this document that indica tes when and
how property values of other data types are signaled.</t> how property values of other data types are signaled.</t>
<t>For each entity in the property map:</t> <t>For each entity in the property map:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>If the entity is in a resource-specific entity domain, the ALTO se <li>If the entity is in a resource-specific entity domain, the ALTO se
rver MUST rver <bcp14>MUST</bcp14>
only return self-defined properties and resource-specific propert only return self-defined properties and resource-specific propert
ies which ies that
depend on the same resource as the entity does. The ALTO client M depend on the same resource as the entity does. The ALTO client <
UST ignore bcp14>MUST</bcp14> ignore
any resource-specific property for this entity if the mapping bet ween any resource-specific property for this entity if the mapping bet ween
this resource-specific property and this entity is not indicated, in the this resource-specific property and this entity is not indicated, in the
IRD, in the "mappings" capability of the property map resource. IRD, in the "mappings" capability of the property map resource.
</li> </li>
<li> <li>
If the entity identifier is resource-agnostic, the ALTO server SH If the entity identifier is resource-agnostic, the ALTO server <
OULD bcp14>SHOULD</bcp14>
return the self-defined properties and all the resource-specific return the self-defined properties and all the resource-specific
properties that are defined in the property defining information properties defined in the property-defining information resource
resources s that are
indicated, in the IRD, in the “mappings” capability of the proper indicated, in the IRD, in the "mappings" capability of the prope
ty map resource, rty map resource,
unless property values can be omitted upon some inheritance rules unless property values can be omitted upon some inheritance rule
. s.
</li> </li>
</ul> </ul>
<!--
For each entity in the Property Map, the ALTO server returns the value defined
for each of the properties specified in this resource's `capabilities` list.
<t> <t>
The ALTO server MAY omit property values that are inherited rather than The ALTO server <bcp14>MAY</bcp14> omit property values that are inherited rathe
explicitly defined, in order to achieve more compact encoding. As a consequence, r than
the ALTO Client MUST NOT assume inherited property values will all be present. explicitly defined in order to achieve more compact encoding. As a consequence,
If the Client needs inherited values, it MUST use the entity domain's the ALTO Client <bcp14>MUST NOT</bcp14> assume inherited property values will al
l be present.
If the Client needs inherited values, it <bcp14>MUST</bcp14> use the entity doma
in's
inheritance rules to deduce those values. inheritance rules to deduce those values.
</t> </t>
</section> </section>
</section> </section>
<section anchor="filter-prop-map" numbered="true" toc="default"> <section anchor="filter-prop-map" numbered="true" toc="default">
<name>Filtered Property Map</name> <name>Filtered Property Map</name>
<t>A filtered property map returns the values of a set of properties for a set of <t>A filtered property map returns the values of a set of properties for a set of
entities selected by the client. entities selected by the client.
</t> </t>
<t><xref target="filt-prop-map-example-1" format="default"/>, <t>Sections <xref target="filt-prop-map-example-1" format="counter"/>,
<xref target="filt-prop-map-example-2" format="default"/>, <xref target="filt-prop-map-example-2" format="counter"/>,
<xref target="filt-prop-map-example-3" format="default"/> <xref target="filt-prop-map-example-3" format="counter"/>,
and <xref target="filt-prop-map-example-4" format="default"/> giv and <xref target="filt-prop-map-example-4" format="counter"/> giv
e examples of e examples of
filtered property map requests and responses. filtered property map requests and responses.
</t> </t>
<t> <t>
While the IRD lists all the names of the supported properties, While the IRD lists all the names of the supported properties,
it only lists the names of the supported entity domains and not t it only lists the names of the supported entity domains and not t
he entity IDs. he entity identifiers.
A client, sometimes, may only want to know what entity IDs it can Sometimes a client only wants to know what entity identifiers it
provide as input to a can provide as input to a
filtered property map request but wants to avoid the burden of do filtered property map request but does not want to download the
wnloading the full property full property
map. Or it may want to check whether some given entity IDs are el map, or it may want to check whether some given entity identifie
igible for a query. rs are eligible for a query.
To support such a case, the filtered property map supports a ligh To support these cases, the filtered property map supports a lig
t weight response, htweight response
with empty property values. with empty property values.
</t> </t>
<section anchor="FilterPropMapMediaType" numbered="true" toc="default"> <section anchor="FilterPropMapMediaType" numbered="true" toc="default">
<name>Media Type</name> <name>Media Type</name>
<t>The media type of a property map resource is <t>The media type of a property map resource is
"application/alto-propmap+json".</t> "application/alto-propmap+json".</t>
</section> </section>
<section anchor="http-method-1" numbered="true" toc="default"> <section anchor="http-method-1" numbered="true" toc="default">
<name>HTTP Method</name> <name>HTTP Method</name>
skipping to change at line 1492 skipping to change at line 1476
<section anchor="filter-prop-map-params" numbered="true" toc="default"> <section anchor="filter-prop-map-params" numbered="true" toc="default">
<name>Accept Input Parameters</name> <name>Accept Input Parameters</name>
<t>The input parameters for a filtered property map request are supplied in the <t>The input parameters for a filtered property map request are supplied in the
entity body of the POST request. This document specifies the inpu t parameters entity body of the POST request. This document specifies the inpu t parameters
with a data format indicated by the media type with a data format indicated by the media type
"application/alto-propmapparams+json", which is a JSON object of type "application/alto-propmapparams+json", which is a JSON object of type
ReqFilteredPropertyMap. ReqFilteredPropertyMap is designed to sup port the ReqFilteredPropertyMap. ReqFilteredPropertyMap is designed to sup port the
following cases of client requests: following cases of client requests:
</t> </t>
<ul spacing="normal"> <ul spacing="normal">
<li>The client wants the value of a selected set of properties o <li>The client wants the value of a selected set of properties f
n a selected set of entities,</li> or a selected set of entities;</li>
<li>The client wants all properties values on all the entities, <li>The client wants all property values on all the entities; </
</li> li>
<li>The client wants all entities on which a property is defined <li>The client wants all entities for which a property is define
but is not interested in their property values,</li> d
<li>The Client wants to cross-check whether some entity IDs are but is not interested in their property values; or</li>
present in <li>The client wants to cross-check whether some entity identifi
the Filtered Property Map but is not interested in their propert ers are present in
y values.</li> the filtered property map but is not interested in their propert
y values.</li>
</ul> </ul>
<t>The third case is equivalent to querying the whole unfiltered property map, which <t>The third case is equivalent to querying the whole unfiltered property map, which
can also be achieved with a GET request. can also be achieved with a GET request.
Some Clients however, may prefer to systematically make filtered property map queries, Some Clients, however, may prefer to systematically make filtered property map queries,
where filtering parameters may sometimes be empty.</t> where filtering parameters may sometimes be empty.</t>
<t>The JSON object ReqFilteredPropertyMap is specified as follows :</t> <t>The JSON object ReqFilteredPropertyMap is specified as follows :</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
object { object {
EntityID entities<0..*>; EntityID entities<0..*>;
[EntityPropertyName properties<0..*>;] [EntityPropertyName properties<0..*>;]
} ReqFilteredPropertyMap; } ReqFilteredPropertyMap;
]]></artwork> ]]></artwork>
<t>with fields:</t> <t>with fields:</t>
<dl newline="false" spacing="normal"> <dl newline="false" spacing="normal">
<dt>entities:</dt> <dt>entities:</dt>
<dd> <dd>
List of entity identifiers for which the specified properties are to be A list of entity identifiers for which the specified properties a re to be
returned. returned.
If the list is empty, the ALTO Server MUST interpret the list as if it If the list is empty, the ALTO Server <bcp14>MUST</bcp14> interpr et the list as if it
contained a list of all entities currently defined in the filtere d property map. contained a list of all entities currently defined in the filtere d property map.
The domain of each entity MUST be included in the list of entity domains in The domain of each entity <bcp14>MUST</bcp14> be included in the list of entity domains in
this resource's "capabilities" field (see this resource's "capabilities" field (see
<xref target="FilteredPropMapCapabilities" format="default"/>). <xref target="FilteredPropMapCapabilities" format="default"/>).
The ALTO server MUST interpret entries appearing multiple times The ALTO server <bcp14>MUST</bcp14> interpret entries appearing m ultiple times
as if they appeared only once. as if they appeared only once.
</dd> </dd>
<dt>properties:</dt> <dt>properties:</dt>
<dd> <dd>
List of properties to be returned for each entity. A list of properties to be returned for each entity.
If the list is empty, the ALTO Sever MUST interpret the list as i f it If the list is empty, the ALTO Sever <bcp14>MUST</bcp14> interpre t the list as if it
contained a list of all properties currently defined in the filte red property map. contained a list of all properties currently defined in the filte red property map.
Each specified property MUST be included in the list of propertie s in this resource's Each specified property <bcp14>MUST</bcp14> be included in the li st of properties in this resource's
"capabilities" field (see <xref target="FilteredPropMapCapabiliti es" format="default"/>). "capabilities" field (see <xref target="FilteredPropMapCapabiliti es" format="default"/>).
The ALTO server MUST interpret entries appearing multiple times a s if The ALTO server <bcp14>MUST</bcp14> interpret entries appearing m ultiple times as if
they appeared only once. they appeared only once.
This field is optional. If it is absent, the Server returns This field is optional. If it is absent, the Server returns
a property value equal to the literal string "{}" a property value equal to the literal string "{}"
for all the entity IDs of the "entities" field on which at least one property is for all the entity identifiers of the "entities" field for which at least one property is
defined. defined.
</dd> </dd>
</dl> </dl>
<t>Note that the field "properties" is optional. When in addition, <t>Note that the field "properties" is optional. In addition, when
the "entities" field is an empty list, it corresponds to a the "entities" field is an empty list, it corresponds to a
query for all applicable entity IDs of the filtered property map, with no query for all applicable entity identifiers of the filtered prope rty map, with no
current interest on any particular property. When current interest on any particular property. When
the "entities" field is not empty, it allows the Client the "entities" field is not empty, it allows the Client
to check whether the listed entity IDs can be used as input to a filtered property to check whether the listed entity identifiers can be used as inp ut to a filtered property
map query.</t> map query.</t>
</section> </section>
<section anchor="FilteredPropMapCapabilities" numbered="true" toc="default "> <section anchor="FilteredPropMapCapabilities" numbered="true" toc="default ">
<name>Capabilities</name> <name>Capabilities</name>
<t>The capabilities are defined by an object of type PropertyMapCapabili ties, as <t>The capabilities are defined by an object of type PropertyMapCapabili ties, as
defined in <xref target="FullPropMapCapabilities" format="default "/>.</t> defined in <xref target="FullPropMapCapabilities" format="default "/>.</t>
</section> </section>
<section anchor="uses" numbered="true" toc="default"> <section anchor="uses" numbered="true" toc="default">
<name>Uses</name> <name>Uses</name>
<t>Same to the "uses" field of the Property Map resource (see <t>This is the same as the "uses" field of the property map resource (se e
<xref target="FullPropMapUses" format="default"/>). <xref target="FullPropMapUses" format="default"/>).
</t> </t>
<!--
The `uses` field of a filtered property map is an array with the resource ID(s)
of resource(s) that each domain in `entity-domains` depends on, in order to
provide the properties specified in the `properties` capability. The same `uses`
rule as defined by the property map resource applies (see [](#FullPropMapUses)).
<!-- YRY: say refer to the same consistency of uses in Section 4.5. -->
</section> </section>
<!-- Filtered Property Map Response -->
<section anchor="FilteredPropMapResponse" numbered="true" toc="default"> <section anchor="FilteredPropMapResponse" numbered="true" toc="default">
<name>Filtered Property Map Response</name> <name>Filtered Property Map Response</name>
<t>The response MUST indicate an error, using ALTO protocol error handli <t>The response <bcp14>MUST</bcp14> indicate an error, using ALTO Protoc
ng, as ol error handling, as
defined in Section 8.5 of <xref target="RFC7285" format="default" defined in <xref target="RFC7285" section="8.5" sectionFormat="of
/>, if the request is invalid. " format="default"/>, if the request is invalid.
</t> </t>
<t>Specifically, a filtered property map request can be invalid in the f ollowing cases: <t>Specifically, a filtered property map request can be invalid in the f ollowing cases:
</t> </t>
<ul spacing="normal"> <ul spacing="normal">
<li>The input field "entities" is absent from the Client request. <li>The input field "entities" is absent from the Client request.
In this case, the Server MUST return an "E_MISSING_FIELD" error In this case, the Server <bcp14>MUST</bcp14> return an "E_MISSING
as defined in Section 8.5.2 of <xref target="RFC7285" format="de _FIELD" error
fault"/>. as defined in <xref target="RFC7285" section="8.5.2" sectionForma
t="of" format="default"/>.
</li> </li>
<li> <li>
<t>An entity identifier in the "entities" field of the request is inva lid. <t>An entity identifier in the "entities" field of the request is inva lid.
This occurs when: This occurs when:
</t> </t>
<ul spacing="normal"> <ul spacing="normal">
<li>The domain of this entity is not defined in the "entity-domain <li>The domain of this entity is not defined in the "mappings"
s" capability of this resource in the IRD, or</li>
capability of this resource in the IRD,</li>
<li>The entity identifier is not valid for the entity domain.</li> <li>The entity identifier is not valid for the entity domain.</li>
</ul> </ul>
<t> A valid entity identifier does never generate an error, even if t he filtered property <t> A valid entity identifier never generates an error, even if the f iltered property
map resource does not define any properties for it. map resource does not define any properties for it.
</t> </t>
<t> <t>
If an entity identifier in the "entities" field of the re quest is invalid, the ALTO If an entity identifier in the "entities" field of the re quest is invalid, the ALTO
server MUST return an "E_INVALID_FIELD_VALUE" error defin server <bcp14>MUST</bcp14> return an "E_INVALID_FIELD_VAL
ed in Section UE" error defined in
8.5.2 of <xref target="RFC7285" format="default"/>, and t <xref target="RFC7285" section="8.5.2" sectionFormat="of"
he "value" field of the error message SHOULD format="default"/>, and the "value" field of the error message <bcp14>SHOULD</b
cp14>
indicate the provided invalid entity identifier. indicate the provided invalid entity identifier.
</t> </t>
</li> </li>
<li> <li>
<t>A property name in the "properties" field of the request is invalid . This <t>A property name in the "properties" field of the request is invalid . This
occurs when this property name is not defined in the "properties" capa bility of this occurs when this property name is not defined in the "properties" capa bility of this
resource in the IRD. resource in the IRD.
</t> </t>
<t> When a filtered property map resource does not define a value for a <t> When a filtered property map resource does not define a value for a
property requested on a particular entity, it is not an error. In property requested for a particular entity, it is not an error. I
this n this
case, the ALTO server MUST omit that property from the response f case, the ALTO server <bcp14>MUST</bcp14> omit that property from
or that the response for that
endpoint. </t> endpoint. </t>
<t> If a property name in "properties" in the request is invalid, the <t> If a property name in the "properties" field in the request is inv
ALTO alid, the ALTO
server MUST return an "E_INVALID_FIELD_VALUE" error defined in Se server <bcp14>MUST</bcp14> return an "E_INVALID_FIELD_VALUE" erro
ction r defined in
8.5.2 of <xref target="RFC7285" format="default"/>. The "value" f <xref target="RFC7285" section="8.5.2" sectionFormat="of" format=
ield of the error message SHOULD "default"/>. The "value" field of the error message <bcp14>SHOULD</bcp14>
indicate the property name. indicate the property name.
</t> </t>
</li> </li>
</ul> </ul>
<t>Some identifiers can be interpreted as both an entity name and a property name, <t>Some identifiers can be interpreted as both an entity name and a property name,
as it is the case for "pid" if it would be erroneously used alone as is the case for "pid" if it were erroneously used alone.
. In such a case, the Server <bcp14>SHOULD</bcp14> follow
In such a case, the Server SHOULD follow Section 8.5.2 of <xref target="RFC7285" section="8.5.2" sectionFormat="of" format=
<xref target="RFC7285" format="default"/>, that says: "default"/>, which says:</t>
"For an E_INVALID_FIELD_VALUE error, the server may include an op <blockquote>
tional field For an E_INVALID_FIELD_VALUE error, the server may include an opt
ional field
named "field" in the "meta" field of the response, to indicate th e field that contains the named "field" in the "meta" field of the response, to indicate th e field that contains the
wrong value." wrong value.
</t> </blockquote>
<t>The response to a valid request is the same as for the Property Map <t>The response to a valid request is the same as for the property map
(see <xref target="FullPropMapResponse" format="default"/>), exce (see <xref target="FullPropMapResponse" format="default"/>) excep
pt that:</t> t that:</t>
<ul spacing="normal"> <ul spacing="normal">
<li> If the requested entities include entities with a resource-agnost ic identifier, <li> If the requested entities include entities with a resource-agnost ic identifier,
the "dependent-vtags" field in its "meta" field MUST include version t ags of all the "dependent-vtags" field in its "meta" field <bcp14>MUST</bcp14> in clude version tags of all
dependent resources appearing in the "uses" field. dependent resources appearing in the "uses" field.
</li> </li>
<li>If the requested entities only include entities in resource-specif ic entity <li>If the requested entities only include entities in resource-specif ic entity
domains, the "dependent-vtags" field in its "meta" field MUST inc lude the version domains, the "dependent-vtags" field in its "meta" field <bcp14>M UST</bcp14> include the version
tags of the resources on which the requested resource-specific en tity domains and tags of the resources on which the requested resource-specific en tity domains and
the requested resource-specific properties are dependent on. the requested resource-specific properties are dependent.
</li> </li>
<li>The response only includes the entities and properties requested b y the <li>The response only includes the entities and properties requested b y the
client. If an entity in the request is identified by a hierarchic al identifier client. If an entity in the request is identified by a hierarchic al identifier
(e.g., a "ipv4" or "ipv6" prefix), the response MUST return all p (e.g., a "ipv4" or "ipv6" prefix), the response <bcp14>MUST</bcp1
roperties that 4> return all properties that
are present on any address covered by the prefix, even though som are present for any address covered by the prefix, even though so
e of those me of those
properties may not be present on all addresses covered by the pre properties may not be present for all addresses covered by the pr
fix. efix.
</li> </li>
<li>When the input member "properties" is absent from the client request, <li>When the input member "properties" is absent from the client request,
the Server returns a property map containing all the requested en tity identifiers the Server returns a property map containing all the requested en tity identifiers
on which one or more properties are defined. For all the entities for which one or more properties are defined. For all the entitie
of the returned map, s of the returned map,
the returned property value is equal to '{}'. the returned property value is equal to "{}".
</li> </li>
</ul> </ul>
<t>The filtered property map response MUST include all the inherited pro <t>The filtered property map response <bcp14>MUST</bcp14> include all th
perty e inherited property
values for the requested entities and all the entities which are values for the requested entities and all the entities that are a
able to ble to
inherit property values from the requested entities. To achieve t his goal, inherit property values from the requested entities. To achieve t his goal,
the ALTO server MAY follow two rules:</t> the ALTO server <bcp14>MAY</bcp14> follow two rules:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>If a property for a requested entity is inherited from another ent ity not <li>If a property for a requested entity is inherited from another ent ity not
included in the request, the response MUST include this property included in the request, the response <bcp14>MUST</bcp14> include
for the this property for the
requested entity. For example, A full property map may skip a pro requested entity. For example, a full property map may skip a pro
perty P for perty P for
an entity A (e.g., ipv4:192.0.2.0/31) if P can be derived using i an entity A (e.g., "ipv4:192.0.2.0/31") if P can be derived using
nheritance inheritance
from another entity B (e.g., ipv4:192.0.2.0/30). A filtered prope from another entity B (e.g., "ipv4:192.0.2.0/30"). A filtered pro
rty map perty map
request may include only A but not B. In such a case, the propert request may include only A but not B. In such a case, the propert
y P MUST be y P <bcp14>MUST</bcp14> be
included in the response for A.</li> included in the response for A.</li>
<li>If there are entities covered by a requested entity but having dif <li>If there are entities covered by a requested entity but they have
ferent different
values for the requested properties, the response MUST include al values for the requested properties, the response <bcp14>MUST</bc
l those p14> include all those
entities and the different property values for them. For example, entities and the different property values for them. For example,
considering consider
a request for property P of entity A (e.g., ipv4:192.0.2.0/31), i a request for property P of entity A (e.g., "ipv4:192.0.2.0/31"):
f P has value if P has value
v1 for A1=ipv4:192.0.2.0/32 and v2 for A2=ipv4:192.0.2.1/32, then v1 for "A1=ipv4:192.0.2.0/32" and v2 for "A2=ipv4:192.0.2.1/32",
, the then the
response SHOULD include A1 and A2.</li> response <bcp14>SHOULD</bcp14> include A1 and A2.</li>
</ul> </ul>
<t>For the sake of response compactness, the ALTO server SHOULD obey the following rule:</t> <t>For the sake of response compactness, the ALTO server <bcp14>SHOULD</b cp14> obey the following rule:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>If an entity identifier in the response is already covered by othe r <li>If an entity identifier in the response is already covered by othe r
entities identifiers in the same response, it SHOULD be removed f rom the entities identifiers in the same response, it <bcp14>SHOULD</bcp1 4> be removed from the
response. In the previous example, the entity response. In the previous example, the entity
A = ipv4:192.0.2.0/31 SHOULD be removed because A1 and A2 cover a ll the "A=ipv4:192.0.2.0/31" <bcp14>SHOULD</bcp14> be removed because A1 and A2 cover all the
addresses in A.</li> addresses in A.</li>
</ul> </ul>
<t>An ALTO client should be aware that the entities in the response may be <t>An ALTO client should be aware that the entities in the response may be
different from the entities in its request.</t> different from the entities in its request.</t>
</section> </section>
<section anchor="prop-type-pid" numbered="true" toc="default"> <section anchor="prop-type-pid" numbered="true" toc="default">
<name>Entity Property Type Defined in This Document</name> <name>Entity Property Type Defined in This Document</name>
<t>This document defines the entity property type "pid". This property t ype <t>This document defines the entity property type "pid". This property t ype
extends the ALTO Endpoint Property Type "pid" defined in section 7.1.1 of extends the ALTO endpoint property type "pid" defined in
<xref target="RFC7285" format="default"/> as follows: the property has the same <xref target="RFC7285" section="7.1.1" sectionFormat="of" format="default"/> as
semantics and applies to follows: the property has the same semantics and applies to
IPv4 and IPv6 addresses; the difference is that the IPv4 and IPv6 addresses IPv4 and IPv6 addresses; the difference is that the IPv4 and IPv6 addresses
have evolved from the status of endpoints to the status of entities.</t> have evolved from the status of endpoints to the status of entities.</t>
<t>The defining information resource for property type MUST be a network <t>The defining information resource for property type <bcp14>MUST</bcp1
map. 4> be a network map.
This document requests a IANA registration for this property
</t> </t>
<section anchor="entity-property-type-pid" numbered="true" toc="default" > <section anchor="entity-property-type-pid" numbered="true" toc="default" >
<name>Entity Property Type: pid</name> <name>Entity Property Type: pid</name>
<ol spacing="normal" type="1"> <dl spacing="normal">
<li>Identifier: pid</li> <dt>Identifier:</dt>
<li>Semantics: the intended semantics are the same as in <xref targe <dd>pid</dd>
t="RFC7285" format="default"/> for the
ALTO Endpoint Property Type "pid"</li> <dt>Semantics:</dt>
<li>Media type of defining information resource: application/alto-ne <dd>the intended semantics are the same as in <xref target="RFC7285"
tworkmap+json</li> format="default"/> for the
<li>Security considerations: for entity property type "pid" are the ALTO endpoint property type "pid".</dd>
same as
documented in <xref target="RFC7285" format="default"/> for the ALTO Endpoint Pr <dt>Media type of defining information resource:</dt>
operty Type "pid".</li> <dd>application/alto-networkmap+json</dd>
</ol>
<dt>Security considerations:</dt>
<dd>for entity property type "pid" are the same as
documented in <xref target="RFC7285" format="default"/> for the ALTO endpoint pr
operty type "pid".</dd>
</dl>
</section> </section>
</section> </section>
</section> </section>
<section anchor="legacy" numbered="true" toc="default"> <section anchor="legacy" numbered="true" toc="default">
<name>Impact on Legacy ALTO Servers and ALTO Clients</name> <name>Impact on Legacy ALTO Servers and ALTO Clients</name>
<section anchor="impact-on-endpoint-property-service" numbered="true" toc= "default"> <section anchor="impact-on-endpoint-property-service" numbered="true" toc= "default">
<name>Impact on Endpoint Property Service</name> <name>Impact on Endpoint Property Service</name>
<t>Since the Property Map and the Filtered Property Map defined in this document <t>Since the property map and the filtered property map defined in this document
provide a functionality that covers the EPS provide a functionality that covers the EPS
defined in Section 11.4 of <xref target="RFC7285" format="default"/>, ALTO serve defined in <xref target="RFC7285" section="11.4" sectionFormat="of" format="defa
rs may prefer to provide ult"/>, ALTO servers may prefer to provide
Property Map and Filtered Property Map in place of EPS. However, for the property map and filtered property map in place of EPS. However, for the
legacy endpoint properties, it is recommended that ALTO servers also provide legacy endpoint properties, it is recommended that ALTO servers also provide
EPS so that legacy clients can still be supported.</t> EPS so that legacy clients can still be supported.</t>
</section> </section>
<section anchor="impact-on-resource-specific-properties" numbered="true" t oc="default"> <section anchor="impact-on-resource-specific-properties" numbered="true" t oc="default">
<name>Impact on Resource-Specific Properties</name> <name>Impact on Resource-Specific Properties</name>
<t>Section 10.8 of <xref target="RFC7285" format="default"/> defines <t><xref target="RFC7285" section="10.8" sectionFormat="of" format="defa ult"/> defines
two categories of endpoint properties: "resource-specific" and "global". two categories of endpoint properties: "resource-specific" and "global".
Resource-specific property names are Resource-specific property names are
prefixed with the ID of the resource they depend on, while global property prefixed with the identifier of the resource they depend on, while global proper ty
names have no such prefix. The property map and the filtered property map names have no such prefix. The property map and the filtered property map
defined in this document define similar categories of entity properties. The specified in this document define similar categories of entity properties. The
difference is that entity property maps do not define "global" entity difference is that entity property maps do not define "global" entity
properties. Instead, they define "self-defined" entity properties as a properties. Instead, they define self-defined entity properties as a
special case of "resource-specific" entity properties, where the specific special case of "resource-specific" entity properties, where the specific
resource is the property map itself. This means that "self-defined" resource is the property map itself. This means that self-defined
properties are defined within the scope of the property map.</t> properties are defined within the scope of the property map.</t>
</section> </section>
<section anchor="impact-on-other-properties" numbered="true" toc="default" > <section anchor="impact-on-other-properties" numbered="true" toc="default" >
<name>Impact on Other Properties</name> <name>Impact on Other Properties</name>
<t>In the present extension, properties can be defined on sets of entity <t>In the present extension, properties can be defined for sets of entit y
addresses, rather than just individual endpoint addresses as initially defined addresses, rather than just individual endpoint addresses as initially defined
in <xref target="RFC7285" format="default"/>. in <xref target="RFC7285" format="default"/>.
This might change the semantics of a property. These sets can be This might change the semantics of a property. These sets can be,
for example hierarchical IP address blocks. For instance, a property such as for example, hierarchical IP address blocks. For instance, a property such as th
fictitious "geo-location", defined on a set of IP addresses would have a e
fictitious "geo-location" defined for a set of IP addresses would have a
value corresponding to a location representative of all the addresses in this se t. value corresponding to a location representative of all the addresses in this se t.
</t> </t>
</section> </section>
</section> </section>
<!-- Examples -->
<section anchor="examples" numbered="true" toc="default"> <section anchor="examples" numbered="true" toc="default">
<name>Examples</name> <name>Examples</name>
<t>In this document, the HTTP message bodies of all the <t>In this document, the HTTP message bodies of all the
examples use Unix-style line-ending character (%x0A) as the line separato r.</t> examples use Unix-style line-ending character (%x0A) as the line separato r.</t>
<section anchor="net-map-example" numbered="true" toc="default"> <section anchor="net-map-example" numbered="true" toc="default">
<name>Network Map</name> <name>Network Map</name>
<t>The examples in this section use a very simple default network map:</t> <t>The examples in this section use a very simple default network map:</t>
<figure anchor="net-map-values-ex"> <table anchor="net-map-values-ex">
<name>Example Default Network Map</name> <name>Example Default Network Map</name>
<artwork name="" type="" align="left" alt=""><![CDATA[ <tbody>
defaultpid: ipv4:0.0.0.0/0 ipv6:::/0 <tr>
pid1: ipv4:192.0.2.0/25 <td>defaultpid:</td>
pid2: ipv4:192.0.2.0/27 <td>ipv4:0.0.0.0/0 ipv6:::/0</td>
pid3: ipv4:192.0.3.0/28 </tr>
pid4: ipv4:192.0.3.16/28 <tr>
]]></artwork> <td>pid1:</td>
</figure> <td>ipv4:192.0.2.0/25</td>
</tr>
<tr>
<td>pid2:</td>
<td>ipv4:192.0.2.0/27</td>
</tr>
<tr>
<td>pid3:</td>
<td>ipv4:192.0.3.0/28</td>
</tr>
<tr>
<td>pid4:</td>
<td>ipv4:192.0.3.16/28</td>
</tr>
</tbody>
</table>
<t>And another simple alternative network map:</t> <t>And another simple alternative network map:</t>
<figure anchor="alt-net-map-values-ex"> <table anchor="alt-net-map-values-ex">
<name>Example Alternative Network Map</name> <name>Example Alternative Network Map</name>
<artwork name="" type="" align="left" alt=""><![CDATA[ <tbody>
defaultpid: ipv4:0.0.0.0/0 ipv6:::/0 <tr>
pid1: ipv4:192.0.2.0/27 <td>defaultpid:</td>
pid2: ipv4:192.0.3.0/27 <td>ipv4:0.0.0.0/0 ipv6:::/0</td>
]]></artwork> </tr>
</figure> <tr>
<td>pid1:</td>
<td>ipv4:192.0.2.0/27</td>
</tr>
<tr>
<td>pid2:</td>
<td>ipv4:192.0.3.0/27</td>
</tr>
</tbody>
</table>
</section> </section>
<section anchor="inet-prop-example" numbered="true" toc="default"> <section anchor="inet-prop-example" numbered="true" toc="default">
<name>Property Definitions</name> <name>Property Definitions</name>
<t>Beyond "pid", the examples in this section use four additional fictitious property types <t>Beyond "pid", the examples in this section use four additional , fictitious property types
for entities of domain type "ipv4": "countrycode", "ASN", "ISP", and "state". for entities of domain type "ipv4": "countrycode", "ASN", "ISP", and "state".
These properties are assumed to be resource-agnostic so their nam e is identical These properties are assumed to be resource-agnostic so their nam e is identical
to their type. The entities have the following values: to their type. The entities have the following values:
</t> </t>
<table anchor="prop-map-values-ip-ex">
<name>Example Property Values for Internet Address Domains</name>
<thead>
<tr>
<th>&nbsp;</th>
<th align="center">ISP</th>
<th align="center">ASN</th>
<th align="center">countrycode</th>
<th align="center">state</th>
</tr>
</thead>
<tbody>
<tr>
<td>ipv4:192.0.2.0/23:</td>
<td align="center">BitsRus</td>
<td align="center">-</td>
<td align="center">us</td>
<td align="center">-</td>
</tr>
<tr>
<td>ipv4:192.0.2.0/28:</td>
<td align="center">-</td>
<td align="center">65543</td>
<td align="center">-</td>
<td align="center">NJ</td>
</tr>
<tr>
<td>ipv4:192.0.2.16/28:</td>
<td align="center">-</td>
<td align="center">65543</td>
<td align="center">-</td>
<td align="center">CT</td>
</tr>
<tr>
<td>ipv4:192.0.2.1:</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">PA</td>
</tr>
<tr>
<td>ipv4:192.0.3.0/28:</td>
<td align="center">-</td>
<td align="center">65544</td>
<td align="center">-</td>
<td align="center">TX</td>
</tr>
<tr>
<td>ipv4:192.0.3.16/28:</td>
<td align="center">-</td>
<td align="center">65544</td>
<td align="center">-</td>
<td align="center">MN</td>
</tr>
</tbody>
</table>
<figure anchor="prop-map-values-ip-ex"> <t>The examples in this section use the property "region" for the PID do
<name>Example Property Values for Internet Address Domains</name> main of
<artwork name="" type="" align="left" alt=""><![CDATA[
ISP ASN countrycode state
ipv4:192.0.2.0/23: BitsRus - us -
ipv4:192.0.2.0/28: - 65543 - NJ
ipv4:192.0.2.16/28: - 65543 - CT
ipv4:192.0.2.1: - - - PA
ipv4:192.0.3.0/28: - 65544 - TX
ipv4:192.0.3.16/28: - 65544 - MN
]]></artwork>
</figure>
<t>And the examples in this section use the property "region" for the PI
D domain of
the default network map with the following values:</t> the default network map with the following values:</t>
<figure anchor="prop-map-values-pid-ex"> <table anchor="prop-map-values-pid-ex">
<name>Example Property Values for Default Network Map's PID Domain</na <name>Example Property Values for Default Network Map's PID Domain</
me> name>
<artwork name="" type="" align="left" alt=""><![CDATA[ <thead>
region <tr>
pid:defaultpid: - <th>&nbsp;</th>
pid:pid1: us-west <th>region</th>
pid:pid2: us-east </tr>
pid:pid3: us-south </thead>
pid:pid4: us-north <tbody>
]]></artwork> <tr>
</figure> <td>pid:defaultpid:</td>
<td>-</td>
</tr>
<tr>
<td>pid:pid1:</td>
<td>us-west</td>
</tr>
<tr>
<td>pid:pid2:</td>
<td>us-east</td>
</tr>
<tr>
<td>pid:pid3:</td>
<td>us-south</td>
</tr>
<tr>
<td>pid:pid4:</td>
<td>us-north</td>
</tr>
</tbody>
</table>
<t>Note that "-" means the value of the property for the entity is "unde fined". So <t>Note that "-" means the value of the property for the entity is "unde fined". So
the entity would inherit a value for this property by the inherit ance rule if the entity would inherit a value for this property by the inherit ance rule if
possible. For example, the value of the "ISP" property for "ipv4: 192.0.2.1" is possible. For example, the value of the "ISP" property for "ipv4: 192.0.2.1" is
"BitsRus" because of "ipv4:192.0.2.0/24". But the "region" proper ty for "BitsRus" because of "ipv4:192.0.2.0/24". But the "region" proper ty for
"pid:defaultpid" has no value because no entity from which it can inherit.</t> "pid:defaultpid" has no value because there is no entity from whi ch it can inherit.</t>
<t>Similar to the PID domain of the default network map, the examples in this <t>Similar to the PID domain of the default network map, the examples in this
section use the property "ASN" for the PID domain of the alternat ive network map section use the property "ASN" for the PID domain of the alternat ive network map
with the following values:</t> with the following values:</t>
<figure anchor="alt-prop-map-values-pid-ex"> <table anchor="alt-prop-map-values-pid-ex">
<name>Example Property Values for Alternative Network Map's PID Domain <name>Example Property Values for Alternative Network Map's PID Doma
</name> in</name>
<artwork name="" type="" align="left" alt=""><![CDATA[ <thead>
ASN <tr>
pid:defaultpid: - <th>&nbsp;</th>
pid:pid1: 65543 <th>ASN</th>
pid:pid2: 65544 </tr>
]]></artwork> </thead>
</figure> <tbody>
<tr>
<td>pid:defaultpid:</td>
<td>-</td>
</tr>
<tr>
<td>pid:pid1:</td>
<td>65543</td>
</tr>
<tr>
<td>pid:pid2:</td>
<td>65544</td>
</tr>
</tbody>
</table>
</section> </section>
<section anchor="ird-example" numbered="true" toc="default"> <section anchor="ird-example" numbered="true" toc="default">
<name>Information Resource Directory (IRD)</name> <name>Information Resource Directory (IRD)</name>
<t>The following IRD defines ALTO Server information resources that are relevant <t>The following IRD defines ALTO Server information resources that are relevant
to the Entity Property Service. It provides a property map for th e to the Entity Property Service. It provides a property map for th e
"ISP" and "ASN" properties. "ISP" and "ASN" properties.
The server could have provided a single property map for all four The server could have provided a single property map for all four
properties, but does not, presumably because the organization tha t runs the properties, but it does not, presumably because the organization that runs the
ALTO server believes that a client is not necessarily interested in getting ALTO server believes that a client is not necessarily interested in getting
all four properties.</t> all four properties.</t>
<t>The server provides several filtered property maps. The first returns all <t>The server provides several filtered property maps. The first returns all
four properties, and the second returns only the "pid" property f or the four properties, and the second returns only the "pid" property f or the
default network map and the "alt-network-map".</t> default network map and the "alt-network-map".</t>
<t>The filtered property maps for the "ISP", "ASN", "countrycode" and "s tate" <t>The filtered property maps for the "ISP", "ASN", "countrycode", and " state"
properties do not depend on the default network map (it does not have a properties do not depend on the default network map (it does not have a
"uses" capability), because the definitions of those properties d "uses" capability) because the definitions of those properties do
o not depend not depend
on the default network map. The Filtered Property Map providing t on the default network map. The filtered property map providing t
he "pid" he "pid"
property does have a "uses" capability for the default network ma p because property does have a "uses" capability for the default network ma p because
the default network map defines the values of the "pid" property. </t> the default network map defines the values of the "pid" property. </t>
<t>Note that for legacy clients, the ALTO server provides an Endpoint Pr operty <t>Note that for legacy clients, the ALTO server provides an Endpoint Pr operty
Service for the "pid" property defined on the endpoints of the de fault Service for the "pid" property defined for the endpoints of the d efault
network map and the "alt-network-map".</t> network map and the "alt-network-map".</t>
<t>The server provides another filtered Property map resource, named <t>The server provides another filtered Property map resource, named
"ane-dc-property-map", that returns fictitious properties named "ane-dc-property-map", that returns fictitious properties named
"storage-capacity", "ram" and "cpu" for ANEs that have a persiste "storage-capacity", "ram", and "cpu" for ANEs that have a persist
nt ent
identifier. The entity domain to which the ANEs belong is "self-d identifier. The entity domain to which the ANEs belong is self-de
efined" and fined and
valid only within the property map.</t> valid only within the property map.</t>
<t>The other property maps in the returned IRD are here for purposes o f illustration.</t> <t>The other property maps in the returned IRD are shown here for purp oses of illustration.</t>
<figure anchor="example-ird"> <figure anchor="example-ird">
<name>Example IRD</name> <name>Example IRD</name>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
GET /directory HTTP/1.1 GET /directory HTTP/1.1
Host: alto.example.com Host: alto.example.com
Accept: application/alto-directory+json,application/alto-error+json Accept: application/alto-directory+json,application/alto-error+json
HTTP/1.1 200 OK HTTP/1.1 200 OK
skipping to change at line 1969 skipping to change at line 2050
} }
} }
} }
]]></artwork> ]]></artwork>
</figure> </figure>
</section> </section>
<section anchor="prop-map-example" numbered="true" toc="default"> <section anchor="prop-map-example" numbered="true" toc="default">
<name>Full Property Map Example</name> <name>Full Property Map Example</name>
<t>The following example uses the properties and IRD defined in <t>The following example uses the properties and IRD defined in
<xref target="ird-example" format="default"/> to retrieve a Prope rty Map for <xref target="ird-example" format="default"/> to retrieve a prope rty map for
entities with the "ISP" and "ASN" properties.</t> entities with the "ISP" and "ASN" properties.</t>
<t>Note that, to be compact, the response does not include the entity <t>Note that, to be compact, the response does not include the entity
"ipv4:192.0.2.1" because values of all those properties for this entity are "ipv4:192.0.2.1" because values of all those properties for this entity are
inherited from other entities.</t> inherited from other entities.</t>
<t>Also note that the entities "ipv4:192.0.2.0/28" and "ipv4:192.0.2.16/ 28" are <t>Also note that the entities "ipv4:192.0.2.0/28" and "ipv4:192.0.2.16/ 28" are
merged into "ipv4:192.0.2.0/27", because they have the same value of the merged into "ipv4:192.0.2.0/27" because they have the same value of the
"ASN" property. The same rule applies to the entities "ipv4:192.0 .3.0/28" and "ASN" property. The same rule applies to the entities "ipv4:192.0 .3.0/28" and
"ipv4:192.0.3.16/28". Both of "ipv4:192.0.2.0/27" and "ipv4:192.0 "ipv4:192.0.3.16/28". Both "ipv4:192.0.2.0/27" and "ipv4:192.0.3.
.3.0/27" omit 0/27" omit
the value for the "ISP" property, because it is inherited from the value for the "ISP" property because it is inherited from
"ipv4:192.0.2.0/23".</t> "ipv4:192.0.2.0/23".</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
GET /propmap/full/inet-ia HTTP/1.1 GET /propmap/full/inet-ia HTTP/1.1
Host: alto.example.com Host: alto.example.com
Accept: application/alto-propmap+json,application/alto-error+json Accept: application/alto-propmap+json,application/alto-error+json
]]></artwork> ]]></artwork>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: 418 Content-Length: 418
skipping to change at line 2012 skipping to change at line 2093
"ipv4:192.0.2.0/27": {".ASN": "65543"}, "ipv4:192.0.2.0/27": {".ASN": "65543"},
"ipv4:192.0.3.0/27": {".ASN": "65544"} "ipv4:192.0.3.0/27": {".ASN": "65544"}
} }
} }
]]></artwork> ]]></artwork>
</section> </section>
<section anchor="filt-prop-map-example-1" numbered="true" toc="default"> <section anchor="filt-prop-map-example-1" numbered="true" toc="default">
<name>Filtered Property Map Example #1</name> <name>Filtered Property Map Example #1</name>
<t>The following example uses the filtered property map resource to requ est the <t>The following example uses the filtered property map resource to requ est the
"ISP", "ASN" and "state" properties for several IPv4 addresses.</ t> "ISP", "ASN", and "state" properties for several IPv4 addresses.< /t>
<t>Note that the value of "state" for "ipv4:192.0.2.1" is the only expli citly <t>Note that the value of "state" for "ipv4:192.0.2.1" is the only expli citly
defined property; the other values are all derived by the inherit ance rules defined property; the other values are all derived from the inher itance rules
for Internet address entities.</t> for Internet address entities.</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
POST /propmap/lookup/inet-iacs HTTP/1.1 POST /propmap/lookup/inet-iacs HTTP/1.1
Host: alto.example.com Host: alto.example.com
Accept: application/alto-propmap+json,application/alto-error+json Accept: application/alto-propmap+json,application/alto-error+json
Content-Length: 158 Content-Length: 158
Content-Type: application/alto-propmapparams+json Content-Type: application/alto-propmapparams+json
{ {
skipping to change at line 2060 skipping to change at line 2141
"ipv4:192.0.2.17": "ipv4:192.0.2.17":
{".ISP": "BitsRus", ".ASN": "65543", ".state": "CT"} {".ISP": "BitsRus", ".ASN": "65543", ".state": "CT"}
} }
} }
]]></artwork> ]]></artwork>
</section> </section>
<section anchor="filt-prop-map-example-2" numbered="true" toc="default"> <section anchor="filt-prop-map-example-2" numbered="true" toc="default">
<name>Filtered Property Map Example #2</name> <name>Filtered Property Map Example #2</name>
<t>The following example uses the filtered property map resource to requ est the <t>The following example uses the filtered property map resource to requ est the
"ASN", "countrycode" and "state" properties for several IPv4 pref ixes.</t> "ASN", "countrycode", and "state" properties for several IPv4 pre fixes.</t>
<t>Note that the property values for both entities "ipv4:192.0.2.0/26" a nd <t>Note that the property values for both entities "ipv4:192.0.2.0/26" a nd
"ipv4:192.0.3.0/26" are not explicitly defined. They are inherite d from the "ipv4:192.0.3.0/26" are not explicitly defined. They are inherite d from the
entity "ipv4:192.0.2.0/23".</t> entity "ipv4:192.0.2.0/23".</t>
<t>Also note that some entities like "ipv4:192.0.2.0/28" and <t>Also note that some entities like "ipv4:192.0.2.0/28" and
"ipv4:192.0.2.16/28" in the response are not explicitly listed in the "ipv4:192.0.2.16/28" in the response are not explicitly listed in the
request. The response includes them because they are refinements of the request. The response includes them because they are refinements of the
requested entities and have different values for the requested pr operties.</t> requested entities and have different values for the requested pr operties.</t>
<t>The entity "ipv4:192.0.4.0/26" is not included in the response, becau <t>The entity "ipv4:192.0.4.0/26" is not included in the response becaus
se there e there
are neither entities which it is inherited from, nor entities inh are neither entities from which it is inherited, nor entities inh
erited from erited from
it.</t> it.</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
POST /propmap/lookup/inet-iacs HTTP/1.1 POST /propmap/lookup/inet-iacs HTTP/1.1
Host: alto.example.com Host: alto.example.com
Accept: application/alto-propmap+json,application/alto-error+json Accept: application/alto-propmap+json,application/alto-error+json
Content-Length: 174 Content-Length: 174
Content-Type: application/alto-propmapparams+json Content-Type: application/alto-propmapparams+json
{ {
skipping to change at line 2121 skipping to change at line 2202
".state": "MN"} ".state": "MN"}
} }
} }
]]></artwork> ]]></artwork>
</section> </section>
<section anchor="filt-prop-map-example-3" numbered="true" toc="default"> <section anchor="filt-prop-map-example-3" numbered="true" toc="default">
<name>Filtered Property Map Example #3</name> <name>Filtered Property Map Example #3</name>
<t>The following example uses the filtered property map resource to requ est the <t>The following example uses the filtered property map resource to requ est the
"default-network-map.pid" property and the "alt-network-map.pid" property for "default-network-map.pid" property and the "alt-network-map.pid" property for
a set of IPv4 addresses and prefixes.</t> a set of IPv4 addresses and prefixes.</t>
<t>Note that the entity "ipv4:192.0.3.0/27" is decomposed into two entit ies <t>Note that the entity "ipv4:192.0.3.0/27" is decomposed into two entit ies:
"ipv4:192.0.3.0/28" and "ipv4:192.0.3.16/28", as they have different "ipv4:192.0.3.0/28" and "ipv4:192.0.3.16/28", as they have different
"default-network-map.pid" property values.</t> "default-network-map.pid" property values.</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
POST /propmap/lookup/pid HTTP/1.1 POST /propmap/lookup/pid HTTP/1.1
Host: alto.example.com Host: alto.example.com
Accept: application/alto-propmap+json,application/alto-error+json Accept: application/alto-propmap+json,application/alto-error+json
Content-Length: 222 Content-Length: 222
Content-Type: application/alto-propmapparams+json Content-Type: application/alto-propmapparams+json
{ {
skipping to change at line 2171 skipping to change at line 2252
"ipv4:192.0.3.16/28": {"default-network-map.pid": "pid4", "ipv4:192.0.3.16/28": {"default-network-map.pid": "pid4",
"alt-network-map.pid": "pid2"} "alt-network-map.pid": "pid2"}
} }
} }
]]></artwork> ]]></artwork>
</section> </section>
<section anchor="filt-prop-map-example-4" numbered="true" toc="default"> <section anchor="filt-prop-map-example-4" numbered="true" toc="default">
<name>Filtered Property Map Example #4</name> <name>Filtered Property Map Example #4</name>
<t>Here is an example of using the filtered property map to query the re gions <t>Here is an example of using the filtered property map to query the re gions
for several PIDs in "default-network-map". The "region" property is specified for several PIDs in "default-network-map". The "region" property is specified
as a "self-defined" property, i.e., the values of this property are defined as a self-defined property, i.e., the values of this property are defined
by this property map resource.</t> by this property map resource.</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
POST /propmap/lookup/region HTTP/1.1 POST /propmap/lookup/region HTTP/1.1
Host: alto.example.com Host: alto.example.com
Accept: application/alto-propmap+json,application/alto-error+json Accept: application/alto-propmap+json,application/alto-error+json
Content-Length: 132 Content-Length: 132
Content-Type: application/alto-propmapparams+json Content-Type: application/alto-propmapparams+json
{ {
"entities" : ["default-network-map.pid:pid1", "entities" : ["default-network-map.pid:pid1",
skipping to change at line 2223 skipping to change at line 2304
several ANEs defined in this property map.</t> several ANEs defined in this property map.</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
POST /propmap/lookup/ane-dc HTTP/1.1 POST /propmap/lookup/ane-dc HTTP/1.1
Host: alto.example.com Host: alto.example.com
Accept: application/alto-propmap+json,application/alto-error+json Accept: application/alto-propmap+json,application/alto-error+json
Content-Length: 155 Content-Length: 155
Content-Type: application/alto-propmapparams+json Content-Type: application/alto-propmapparams+json
{ {
"entities" : [".ane:dc21", "entities" : [".ane:dc21",
".ane:dc45.srv9", ".ane:dc45-srv9",
".ane:dc6.srv-cluster8"], ".ane:dc6-srvcluster8"],
"properties" : [ "storage-capacity", "cpu"] "properties" : [ "storage-capacity", "cpu"]
} }
]]></artwork> ]]></artwork>
<artwork name="" type="" align="left" alt=""><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: 295 Content-Length: 295
Content-Type: application/alto-propmap+json Content-Type: application/alto-propmap+json
{ {
"meta" : { "meta" : {
}, },
"property-map": { "property-map": {
".ane:dc21": ".ane:dc21":
{"storage-capacity" : 40000, "cpu" : 500}, {"storage-capacity" : 40000, "cpu" : 500},
".ane:dc45.srv9": ".ane:dc45-srv9":
{"storage-capacity" : 100, "cpu" : 20}, {"storage-capacity" : 100, "cpu" : 20},
".ane:dc6.srv-cluster8": ".ane:dc6-srvcluster8":
{"storage-capacity" : 6000, "cpu" : 100} {"storage-capacity" : 6000, "cpu" : 100}
} }
} }
]]></artwork> ]]></artwork>
</section> </section>
</section> </section>
<section anchor="SecSC" numbered="true" toc="default"> <section anchor="SecSC" numbered="true" toc="default">
<name>Security Considerations</name> <name>Security Considerations</name>
<t>Both Property Map and Filtered Property Map defined in this document fi t into <t>Both property map and filtered property map defined in this document fi t into
the architecture of the ALTO base protocol, and hence the Security the architecture of the ALTO base protocol, and hence the Security
Considerations (Section 15 of <xref target="RFC7285" format="default"/>) of the base protocol fully apply: Considerations (<xref target="RFC7285" section="15" sectionFormat="of" format="d efault"/>) of the base protocol fully apply:
authenticity and integrity of ALTO information (i.e., authenticity and authenticity and integrity of ALTO information (i.e., authenticity and
integrity of Property Maps), potential undesirable guidance from integrity of property maps), potential undesirable guidance from
authenticated ALTO information (e.g., potentially imprecise or even wrong authenticated ALTO information (e.g., potentially imprecise or even wrong
value of a property such as geo-location), confidentiality of ALTO value of a property such as geo-location), confidentiality of ALTO
information (e.g., exposure of a potentially sensitive entity property such information (e.g., exposure of a potentially sensitive entity property such
as geo-location), privacy for ALTO users, and availability of ALTO services as geo-location), privacy for ALTO users, and availability of ALTO services
should all be considered.</t> should all be considered.</t>
<t>ALTO clients using this extension should in addition be aware that the entity <t>ALTO clients using this extension should in addition be aware that the entity
properties they require may convey more details than the endpoint propert ies properties they require may convey more details than the endpoint propert ies
conveyed by using <xref target="RFC7285" format="default"/>. conveyed by using <xref target="RFC7285" format="default"/>.
Client requests may reveal details on their Client requests may reveal details of their
activity or plans thereof, that a malicious Server, that is in a position activity or plans thereof such that a malicious Server, which is in a pos
to do so, ition to do so,
may monetize or use for may monetize or use for
attacks or undesired surveillance. Likewise, ALTO Servers expose entities and attacks or undesired surveillance. Likewise, ALTO Servers expose entities and
properties related to specific parts of the infrastructure that reveal properties related to specific parts of the infrastructure that reveal
details on capabilities, locations, or resource availability. These detai ls details of capabilities, locations, or resource availability. These detai ls
may be maliciously used for competition purposes, or to cause resource may be maliciously used for competition purposes, or to cause resource
shortage or undesired publication.</t> shortage or undesired publication.</t>
<t>To address these concerns, the Property Maps provided by this extension <t>To address these concerns, the property maps provided by this extension
require additional attention on two security considerations discussed in require additional attention to two security considerations discussed in:
<xref target="RFC7285" format="default"/>: "potential undesirable guidance from Section <xref target="RFC7285" section="15.2" sectionFormat="bare">"Potential Un
authenticated ALTO desirable Guidance from Authenticated ALTO Information"</xref> of <xref target="
information" (Section 15.2 of <xref target="RFC7285" format="default"/>) and "co RFC7285" format="default"/>
nfidentiality of ALTO and Section <xref target="RFC7285" section="15.3" sectionFormat="bare">"Confiden
information" (Section 15.3 of <xref target="RFC7285" format="default"/>). Threat tiality of ALTO
s to the availability of Information"</xref> of <xref target="RFC7285" format="default"/>. Threats to the
the ALTO Service caused by highly demanding queries should be addressed as availability of
specified in Section 15.5 of <xref target="RFC7285" format="default"/>.</t> the ALTO service caused by highly demanding queries should be addressed as
specified in <xref target="RFC7285" section="15.5" sectionFormat="of" format="de
fault"/>.</t>
<ul spacing="normal"> <ul spacing="normal">
<li> <li>
<t>Potential undesirable guidance from authenticated ALTO information: it can <t>Potential undesirable guidance from authenticated ALTO information: this can
be caused by Property values that change over time and thus lead to be caused by Property values that change over time and thus lead to
performance degradation or system rejection of application requests. </t> performance degradation or system rejection of application requests. </t>
<t> <t>
To avoid these consequences, a more robust ALTO client should adopt and To avoid these consequences, a more robust ALTO client should adopt and
extend protection strategies specified in Section 15.2 of <xref target="RFC728 5" format="default"/>. extend protection strategies specified in <xref target="RFC7285" section="15.2 " sectionFormat="of" format="default"/>.
For example, to be notified immediately when a particular ALTO value that For example, to be notified immediately when a particular ALTO value that
the Client depends on changes, it is RECOMMENDED that both the ALTO the Client depends on changes, it is <bcp14>RECOMMENDED</bcp14> that both the
Client and ALTO Server using this extension implement "Application-Layer ALTO
Traffic Optimization (ALTO) Incremental Updates Using Server-Sent Events Client and ALTO Server using this extension implement
(SSE)" <xref target="RFC8895" format="default"/>.</t> "<xref target="RFC8895" format="title"/>" <xref target="RFC8895" format="defau
lt"/>.</t>
</li> </li>
<li> <li>
<t>Confidentiality of ALTO information: as discussed in Section 15 of <t>Confidentiality of ALTO information: as discussed in
<xref target="RFC7285" format="default"/>, properties may have sensitive custome <xref target="RFC7285" section="15" sectionFormat="of" format="default"/>, prope
r-specific information. rties may have sensitive customer-specific information.
If this is the case, an ALTO Server may limit access to those properties by If this is the case, an ALTO Server may limit access to those properties by
providing several different property maps. For non-sensitive properties, providing several different property maps. For a nonsensitive properties,
the ALTO Server would provide a URI which accepts requests from any client. the ALTO Server would provide a URI that accepts requests from any client.
Sensitive properties, on the other hand, would only be available via a Sensitive properties, on the other hand, would only be available via a
secure URI which would require client authentication. Another way is to secure URI that would require client authentication. Another way is to
expose highly abstracted coarse-grained property values to all Clients while expose highly abstracted, coarse-grained property values to all Clients while
restricting access to URIs exposing more fine-grained values to authorized restricting access to URIs that expose more fine-grained values to authorized
Clients. Restricted access URIs may be gathered in delegate IRDs as Clients. Restricted access URIs may be gathered in delegate IRDs as
specified in Section 9.2.4 of <xref target="RFC7285" format="default"/>. </t> specified in <xref target="RFC7285" section="9.2.4" sectionFormat="of" format="d efault"/>. </t>
<t> <t>
Also, while technically this document does not introduce any security Also, while technically this document does not introduce any security
risks not inherent in the Endpoint Property Service defined by <xref target="R FC7285" format="default"/>, risks not inherent in the Endpoint Property Service defined by <xref target="R FC7285" format="default"/>,
the GET-mode property map resource defined in this document does make it the GET-mode property map resource defined in this document does make it
easier for a client to download large numbers of property values. easier for a client to download large numbers of property values.
Accordingly, an ALTO Server should limit GET-mode property maps to Accordingly, an ALTO Server should limit GET-mode property maps to
properties that do not contain sensitive data. </t> properties that do not contain sensitive data. </t>
<t> <t>
Section 12 of this document specifies that the ALTO service <xref target="iana-considerations"/> of this document specifies that the ALTO
provider MUST be aware of the potential sensitivity of exposed entity service
domains and properties. Section 12.2.2. (ALTO Entity Domain Type provider <bcp14>MUST</bcp14> be aware of the potential sensitivity of exposed
Registration Process) of this document specifies that when the entity
registration of an entity domain type is requested at the IANA, the domains and properties. <xref target="dom-reg-process"/> (<xref target="dom-re
request MUST include security considerations that show awareness of how g-process" format="title"/>)
of this document specifies that when the
registration of an entity domain type is requested of IANA, the
request <bcp14>MUST</bcp14> include security considerations that show awarenes
s of how
the exposed entity addresses may be related to private information about the exposed entity addresses may be related to private information about
an ALTO client or an infrastructure service provider. Likewise, Section an ALTO client or an infrastructure service provider. Likewise,
12.3. (ALTO Entity Property Type Registry) of this document specifies <xref target="IANAEntityProp"/> (<xref target="IANAEntityProp" format="title"/
that when the registration of a property type is requested at the IANA, >) of this document specifies
the request MUST include security considerations that explain why this that when the registration of a property type is requested of IANA,
the request <bcp14>MUST</bcp14> include security considerations that explain w
hy this
property type is required for ALTO-based operations. </t> property type is required for ALTO-based operations. </t>
<t> <t>
The risk of ALTO information being leaked to malicious Clients or third The risk of ALTO information being leaked to malicious Clients or third
parties is addressed similarly to Section 7 of <xref target="RFC8896" format=" parties is addressed similarly to <xref target="RFC8896" section="7" sectionFo
default"/>. ALTO rmat="of" format="default"/>. ALTO
clients and servers SHOULD support TLS 1.3 <xref target="RFC8446" format="defa clients and servers <bcp14>SHOULD</bcp14> support TLS 1.3 <xref target="RFC844
ult"/>. 6" format="default"/>.
</t> </t>
</li> </li>
</ul> </ul>
</section> </section>
<!-- IANA Considerations -->
<section anchor="iana-considerations" numbered="true" toc="default"> <section anchor="iana-considerations" numbered="true" toc="default">
<name>IANA Considerations</name> <name>IANA Considerations</name>
<t>This document defines additional application/alto-* media types, that a re <t>This document defines additional application/alto-* media types, which are
listed in <xref target="TableMediaTypes" format="default"/>. listed in <xref target="TableMediaTypes" format="default"/>.
It defines It defines
an ALTO Entity Domain Type Registry that extends the ALTO Address Type the "ALTO Entity Domain Types" registry that extends the "ALTO Address Ty
Registry defined in <xref target="RFC7285" format="default"/>. pes"
It also defines an ALTO Entity Property Type registry defined in <xref target="RFC7285" format="default"/>.
Registry that extends the ALTO endpoint property registry defined in It also defines the "ALTO Entity Property Types"
registry that extends the "ALTO Endpoint Property Types" registry defined
in
<xref target="RFC7285" format="default"/>.</t> <xref target="RFC7285" format="default"/>.</t>
<table anchor="TableMediaTypes" align="center"> <table anchor="TableMediaTypes" align="center">
<name>Additional ALTO Media Types.</name> <name>Additional ALTO Media Types</name>
<thead> <thead>
<tr> <tr>
<th align="left">Type</th> <th align="left">Type</th>
<th align="left">Subtype</th> <th align="left">Subtype</th>
<th align="left">Specification</th> <th align="left">Specification</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td align="left">application</td> <td align="left">application</td>
skipping to change at line 2394 skipping to change at line 2473
<dt>Optional parameters:</dt> <dt>Optional parameters:</dt>
<dd>n/a</dd> <dd>n/a</dd>
<dt>Encoding considerations:</dt> <dt>Encoding considerations:</dt>
<dd>Encoding considerations are identical to those specified for the <dd>Encoding considerations are identical to those specified for the
"application/json" media type. See <xref target="RFC8259" format= "default"/>.</dd> "application/json" media type. See <xref target="RFC8259" format= "default"/>.</dd>
<dt>Security considerations:</dt> <dt>Security considerations:</dt>
<dd>Security considerations related to the generation and consumption of ALTO <dd>Security considerations related to the generation and consumption of ALTO
Protocol messages are discussed in Section 15 of Protocol messages are discussed in
<xref target="RFC7285" format="default"/> <xref target="RFC7285" section="15" sectionFormat="of" format="de
fault"/>
and <xref target="SecSC" format="default"/> of this document.</dd > and <xref target="SecSC" format="default"/> of this document.</dd >
<dt>Interoperability considerations:</dt> <dt>Interoperability considerations:</dt>
<dd>n/a</dd> <dd>n/a</dd>
<dt>Published specification:</dt> <dt>Published specification:</dt>
<dd> <dd>
This document is the specification for this media type. This document is the specification for this media type.
See <xref target="FullPropMapMediaType" format="default"/>.</dd> See <xref target="FullPropMapMediaType" format="default"/>.</dd>
skipping to change at line 2407 skipping to change at line 2486
<dt>Interoperability considerations:</dt> <dt>Interoperability considerations:</dt>
<dd>n/a</dd> <dd>n/a</dd>
<dt>Published specification:</dt> <dt>Published specification:</dt>
<dd> <dd>
This document is the specification for this media type. This document is the specification for this media type.
See <xref target="FullPropMapMediaType" format="default"/>.</dd> See <xref target="FullPropMapMediaType" format="default"/>.</dd>
<dt>Applications that use this media type:</dt> <dt>Applications that use this media type:</dt>
<dd>ALTO servers and ALTO clients <xref target="RFC7285" format="defau lt"/>, <dd>ALTO servers and ALTO clients <xref target="RFC7285" format="defau lt"/>,
either stand alone or embedded within other applications, either standalone or embedded within other applications,
when the queried resource is a property map, whether filtered or not. </dd> when the queried resource is a property map, whether filtered or not. </dd>
<dt>Fragment identifier considerations:</dt> <dt>Fragment identifier considerations:</dt>
<dd>n/a</dd> <dd>n/a</dd>
<dt>Additional information:</dt> <dt>Additional information:</dt>
<dd> <dd>
<dl newline="false" spacing="normal"> <dl newline="false" spacing="normal">
<dt>Magic number(s):</dt> <dt>Magic number(s):</dt>
<dd>n/a</dd> <dd>n/a</dd>
skipping to change at line 2439 skipping to change at line 2519
<dt>Intended usage:</dt> <dt>Intended usage:</dt>
<dd>COMMON</dd> <dd>COMMON</dd>
<dt>Restrictions on usage:</dt> <dt>Restrictions on usage:</dt>
<dd>n/a</dd> <dd>n/a</dd>
<dt>Author:</dt> <dt>Author:</dt>
<dd>See Authors' Addresses section.</dd> <dd>See Authors' Addresses section.</dd>
<dt>Change controller:</dt> <dt>Change controller:</dt>
<dd>Internet Engineering Task Force (mailto:iesg@ietf.org).</dd> <dd>Internet Engineering Task Force (iesg@ietf.org).</dd>
</dl> </dl>
</section> </section>
<section anchor="application-alto-propmapparams-media-type" numbered="tru e" toc="default"> <section anchor="application-alto-propmapparams-media-type" numbered="tru e" toc="default">
<name>alto-propmapparams+json Media Type</name> <name>alto-propmapparams+json Media Type</name>
<dl newline="true" spacing="normal"> <dl newline="true" spacing="normal">
<dt>Type name:</dt> <dt>Type name:</dt>
<dd>application</dd> <dd>application</dd>
skipping to change at line 2465 skipping to change at line 2545
<dt>Optional parameters:</dt> <dt>Optional parameters:</dt>
<dd>n/a</dd> <dd>n/a</dd>
<dt>Encoding considerations:</dt> <dt>Encoding considerations:</dt>
<dd>Encoding considerations are identical to those specified for the <dd>Encoding considerations are identical to those specified for the
"application/json" media type. See <xref target="RFC8259" format= "default"/>.</dd> "application/json" media type. See <xref target="RFC8259" format= "default"/>.</dd>
<dt>Security considerations:</dt> <dt>Security considerations:</dt>
<dd>Security considerations related to the generation and consumption of ALTO <dd>Security considerations related to the generation and consumption of ALTO
Protocol messages are discussed in Section 15 of Protocol messages are discussed in
<xref target="RFC7285" format="default"/> <xref target="RFC7285" section="15" sectionFormat="of" format="de
fault"/>
and <xref target="SecSC" format="default"/> of this document.</dd > and <xref target="SecSC" format="default"/> of this document.</dd >
<dt>Interoperability considerations:</dt> <dt>Interoperability considerations:</dt>
<dd>n/a</dd> <dd>n/a</dd>
<dt>Published specification:</dt> <dt>Published specification:</dt>
<dd> <dd>
This document is the specification for this media type. This document is the specification for this media type.
See <xref target="filter-prop-map-params" format="default"/>.</dd> See <xref target="filter-prop-map-params" format="default"/>.</dd>
<dt>Applications that use this media type:</dt> <dt>Applications that use this media type:</dt>
<dd>ALTO servers and ALTO clients <xref target="RFC7285" format="defau lt"/>, <dd>ALTO servers and ALTO clients <xref target="RFC7285" format="defau lt"/>,
either stand alone or embedded within other applications, either standalone or embedded within other applications,
when the queried resource is a filtered property map. when the queried resource is a filtered property map.
This media-type indicates the data format used by the ALTO client to s upply the property map This media type indicates the data format used by the ALTO client to s upply the property map
filtering parameters. filtering parameters.
</dd> </dd>
<dt>Fragment identifier considerations:</dt> <dt>Fragment identifier considerations:</dt>
<dd>n/a</dd> <dd>n/a</dd>
<dt>Additional information:</dt> <dt>Additional information:</dt>
<dd> <dd>
<dl newline="false" spacing="normal"> <dl newline="false" spacing="normal">
<dt>Magic number(s):</dt> <dt>Magic number(s):</dt>
skipping to change at line 2513 skipping to change at line 2593
<dt>Intended usage:</dt> <dt>Intended usage:</dt>
<dd>COMMON</dd> <dd>COMMON</dd>
<dt>Restrictions on usage:</dt> <dt>Restrictions on usage:</dt>
<dd>n/a</dd> <dd>n/a</dd>
<dt>Author:</dt> <dt>Author:</dt>
<dd>See Authors' Addresses section.</dd> <dd>See Authors' Addresses section.</dd>
<dt>Change controller:</dt> <dt>Change controller:</dt>
<dd>Internet Engineering Task Force (mailto:iesg@ietf.org).</dd> <dd>Internet Engineering Task Force (iesg@ietf.org).</dd>
</dl> </dl>
</section> </section>
<section anchor="IANADomain" numbered="true" toc="default"> <section anchor="IANADomain" numbered="true" toc="default">
<name>ALTO Entity Domain Type Registry</name> <name>ALTO Entity Domain Types Registry</name>
<t>This document requests IANA to create and maintain the "ALTO Entity D <t>IANA has created and will maintain the "ALTO Entity Domain Types"
omain Type registry listed in <xref target="TableEntityDomainNames" format="
Registry", listed in <xref target="TableEntityDomainNames" format default"/>.
="default"/>. The first row lists information items that must be provided with
The first line lists information items that must be provided with each
each
registered entity domain type. registered entity domain type.
<xref target="dom-reg-process" format="default"/> specifies how t o document <xref target="dom-reg-process" format="default"/> specifies how t o document
these items and provides guidance on the security considerations these items and in addition provides guidance on the security con
item that must siderations item that must
be documented in addition. be documented.
</t> </t>
<table anchor="TableEntityDomainNames" align="center"> <table anchor="TableEntityDomainNames" align="center">
<name>ALTO Entity Domain Types</name> <name>ALTO Entity Domain Types</name>
<thead> <thead>
<tr> <tr>
<th align="left">Identifier</th> <th align="left">Identifier</th>
<th align="left">Entity Identifier Encoding</th> <th align="left">Entity Identifier Encoding</th>
<th align="left">Hierarchy &amp; Inheritance</th> <th align="left">Hierarchy and Inheritance</th>
<th align="left">Media Type of Defining Resource</th> <th align="left">Media Type of Defining Resource</th>
<th align="left">Mapping to ALTO Address Type</th> <th align="left">Mapping to ALTO Address Type</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td align="left">ipv4</td> <td align="left">ipv4</td>
<td align="left">See <xref target="ipv4-domain" format="default"/> </td> <td align="left">See <xref target="ipv4-domain" format="default"/> </td>
<td align="left">See <xref target="inet-inheritance" format="defau lt"/></td> <td align="left">See <xref target="inet-inheritance" format="defau lt"/></td>
<td align="left">application/alto-networkmap+json</td> <td align="left">application/alto-networkmap+json</td>
skipping to change at line 2572 skipping to change at line 2652
</tbody> </tbody>
</table> </table>
<t>This registry serves two purposes. First, it ensures uniqueness of <t>This registry serves two purposes. First, it ensures uniqueness of
identifiers referring to ALTO entity domain types. Second, it states the identifiers referring to ALTO entity domain types. Second, it states the
requirements for allocated entity domain types.</t> requirements for allocated entity domain types.</t>
<t> <t>
As specified in <xref target="domain-types" format="default"/>, identifiers pref ixed As specified in <xref target="domain-types" format="default"/>, identifiers pref ixed
with "priv:" are reserved for Private Use without a need to register with IANA with "priv:" are reserved for Private Use without a need to register with IANA
</t> </t>
<section anchor="consistency-procedure" numbered="true" toc="default"> <section anchor="consistency-procedure" numbered="true" toc="default">
<name>Consistency Procedure between ALTO Address Type Registry and ALT <name>Consistency Procedure between ALTO Address Types Registry and AL
O Entity Domain Type Registry</name> TO Entity Domain Types Registry</name>
<t>One potential issue of introducing the "ALTO Entity Domain Type Reg <t>One potential issue of introducing the "ALTO Entity Domain Types" r
istry" is egistry is
its relationship with the "ALTO Address Types Registry" already defined in its relationship with the "ALTO Address Types" registry already defined in
Section 14.4 of <xref target="RFC7285" format="default"/>. In particular, the en <xref target="RFC7285" section="14.4" sectionFormat="of" format="default"/>. In
tity identifier of a type particular, the entity identifier of a type
of an entity domain registered in the "ALTO Entity Domain Type Registry" MAY of an entity domain registered in the "ALTO Entity Domain Types" registry <bcp14
match an address type defined in "ALTO Address Type Registry". It is >MAY</bcp14>
match an address type defined in "ALTO Address Types" registry. It is
necessary to precisely define and guarantee the consistency between "ALTO necessary to precisely define and guarantee the consistency between "ALTO
Address Type Registry" and "ALTO Entity Domain Registry".</t> Address Types" registry and "ALTO Entity Domain Types" registry.</t>
<t>We define that the ALTO Entity Domain Type Registry is consistent w <t>We define that the "ALTO Entity Domain Types" registry is consisten
ith ALTO t with "ALTO
Address Type Registry if two conditions are satisfied:</t> Address Types" registry if two conditions are satisfied:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>When an address type is already or able to be registered in the <li>When an address type is already registered or is able to be regi
ALTO Address stered in the "ALTO Address
Type Registry <xref target="RFC7285" format="default"/>, the same identifier MUS Types" registry <xref target="RFC7285" format="default"/>, the same identifier <
T be used when a bcp14>MUST</bcp14> be used when a
corresponding entity domain type is registered in the ALTO Entity Domain Type corresponding entity domain type is registered in the "ALTO Entity Domain Types"
Registry.</li> registry.</li>
<li>If an ALTO entity domain type has the same identifier as an ALTO address type, <li>If an ALTO entity domain type has the same identifier as an ALTO address type,
their addresses encoding MUST be compatible.</li> their address encodings <bcp14>MUST</bcp14> be compatible.</li>
</ul> </ul>
<t>To achieve this consistency, the following items MUST be checked be fore <t>To achieve this consistency, the following items <bcp14>MUST</bcp14 > be checked before
registering a new ALTO entity domain type in a future document:</t> registering a new ALTO entity domain type in a future document:</t>
<ul spacing="normal"> <ul spacing="normal">
<li>Whether the ALTO Address Type Registry contains an address type that can be <li>Whether the "ALTO Address Types" registry contains an address ty pe that can be
used as an identifier for the candidate entity domain type identifier. This has been used as an identifier for the candidate entity domain type identifier. This has been
done for the identifiers "ipv4" and "ipv6" of <xref target="TableEntityDomainNam es" format="default"/>.</li> done for the identifiers "ipv4" and "ipv6" of <xref target="TableEntityDomainNam es" format="default"/>.</li>
<li>Whether the candidate entity domain type identifier can potentia lly be an <li>Whether the candidate entity domain type identifier can potentia lly be an
endpoint address type, as defined in Sections 2.1 and 2.2 of <xref target="RFC72 endpoint address type, as defined in Sections <xref target="RFC7285" section="2.
85" format="default"/>.</li> 1" sectionFormat="bare" format="default"/>
and <xref target="RFC7285" section="2.2" sectionFormat="bare" format="default"/>
of <xref target="RFC7285" format="default"/>.</li>
</ul> </ul>
<t>When a new ALTO entity domain type is registered, the consistency w <t>When a new ALTO entity domain type is registered, the consistency w
ith the ALTO ith the "ALTO
Address Type Registry MUST be ensured by the following procedure:</t> Address Types" registry <bcp14>MUST</bcp14> be ensured by the following procedur
e:</t>
<ul spacing="normal"> <ul spacing="normal">
<li> <li>
<t>Test: Do corresponding entity domain type identifiers match a k nown "network" address type? <t>Test: Do corresponding entity domain type identifiers match a k nown "network" address type?
</t> </t>
<ul spacing="normal"> <ul spacing="normal">
<li> <li>
<t>If yes (e.g., cell, MAC or socket addresses): <t>If yes (e.g., cell, MAC, or socket addresses):
</t> </t>
<ul spacing="normal"> <ul spacing="normal">
<li> <li>
<t>Test: Is such an address type present in the ALTO Addre <t>Test: Is such an address type present in the "ALTO Addr
ss Type ess Types"
Registry? registry?
</t> </t>
<ul spacing="normal"> <ul spacing="normal">
<li>If yes: Set the new ALTO entity domain type identifi er to be the <li>If yes: Set the new ALTO entity domain type identifi er to be the
found ALTO address type identifier.</li> found ALTO address type identifier.</li>
<li>If no: Define a new ALTO entity domain type identifi er and use it to <li>If no: Define a new ALTO entity domain type identifi er and use it to
register a new address type in the ALTO Address Type Registry register a new address type in the "ALTO Address Types" registry
following Section 14.4 of <xref target="RFC7285" format="default"/>.</li> following <xref target="RFC7285" section="14.4" sectionFormat="of" format="defau
lt"/>.</li>
</ul> </ul>
</li> </li>
<li>Use the new ALTO entity domain type identifier to regist er a new ALTO <li>Use the new ALTO entity domain type identifier to regist er a new ALTO
entity domain type in the ALTO Entity Domain Type Registry following entity domain type in the "ALTO Entity Domain Types" registry following
<xref target="dom-reg-process" format="default"/> of this document.</li> <xref target="dom-reg-process" format="default"/> of this document.</li>
</ul> </ul>
</li> </li>
<li>If no (e.g., pid name, ane name or country code): Proceed wi th the ALTO <li>If no (e.g., PID name, ANE name, or "countrycode"): Proceed with the ALTO
Entity Domain Type registration as described in <xref target="dom-reg-process" f ormat="default"/>.</li> Entity Domain Type registration as described in <xref target="dom-reg-process" f ormat="default"/>.</li>
</ul> </ul>
</li> </li>
</ul> </ul>
</section> </section>
<section anchor="dom-reg-process" numbered="true" toc="default"> <section anchor="dom-reg-process" numbered="true" toc="default">
<name>ALTO Entity Domain Type Registration Process</name> <name>ALTO Entity Domain Type Registration Process</name>
<t>New ALTO entity domain types are assigned after IETF Review <xref t arget="RFC8126" format="default"/> to <t>New ALTO entity domain types are assigned after IETF Review <xref t arget="RFC8126" format="default"/> to
ensure that proper documentation regarding the new ALTO entity do main types ensure that proper documentation regarding the new ALTO entity do main types
and their security considerations has been provided. RFCs definin g new entity and their security considerations has been provided. RFCs definin g new entity
domain types MUST indicate how an entity in a registered type of domain types <bcp14>MUST</bcp14> indicate how an entity in a regi
domain is stered type of domain is
encoded as an EntityID, and, if applicable, the rules defining th encoded as an EntityID and, if applicable, provide the rules for
e entity defining the entity
hierarchy and property inheritance. Updates and deletions of ALTO entity hierarchy and property inheritance. Updates and deletions of ALTO entity
domains types follow the same procedure. domains types follow the same procedure.
</t> </t>
<t>Registered ALTO entity domain type identifiers MUST conform to the <t>Registered ALTO entity domain type identifiers <bcp14>MUST</bcp14> conform to the
syntactical requirements specified in <xref target="domain-names" format="default"/>. syntactical requirements specified in <xref target="domain-names" format="default"/>.
Identifiers are to be recorded and displayed as strings. Identifiers are to be recorded and displayed as strings.
</t> </t>
<t>Requests to the IANA to add a new value to the Entity Domain Type r <t>Requests to IANA to add a new value to the "ALTO Entity Domain Type
egistry s" registry
MUST include the following information:</t> <bcp14>MUST</bcp14> include the following information:</t>
<ul spacing="normal"> <dl spacing="normal">
<li>Identifier: The name of the desired ALTO entity domain type.</li <dt>Identifier:</dt>
> <dd>The name of the desired ALTO entity domain type.</dd>
<li>Entity Identifier Encoding: The procedure for encoding the ident
ifier of an <dt>Entity Identifier Encoding:</dt>
<dd>The procedure for encoding the identifier of an
entity of the registered domain type as an EntityID (see entity of the registered domain type as an EntityID (see
<xref target="entity-addrs" format="default"/>). If corre sponding entity identifiers of an entity domain <xref target="entity-addrs" format="default"/>). If corre sponding entity identifiers of an entity domain
type match a known "network" address type, the Entity Ide ntifier Encoding type match a known "network" address type, the Entity Ide ntifier Encoding
of this domain identifier MUST include both Address Encod of this domain identifier <bcp14>MUST</bcp14> include bot
ing and Prefix h Address Encoding and Prefix
Encoding of the same identifier registered in the ALTO Ad Encoding of the same identifier registered in the "ALTO A
dress Type ddress Types"
Registry <xref target="RFC7285" format="default"/>. To de registry <xref target="RFC7285" format="default"/>. To de
fine properties, an individual entity identifier fine properties, an individual entity identifier
and the corresponding full-length prefix MUST be consider and the corresponding full-length prefix <bcp14>MUST</bcp
ed aliases for the 14> be considered aliases for the
same entity.</li> same entity.</dd>
<li>Hierarchy: If the entities form a hierarchy, the procedure for d
etermining <dt>Hierarchy:</dt>
that hierarchy.</li> <dd>If the entities form a hierarchy, the procedure for determining
<li>Inheritance: If entities can inherit property values from other that hierarchy.</dd>
entities, the
procedure for determining that inheritance.</li> <dt>Inheritance:</dt>
<li> <dd>If entities can inherit property values from other entities, the
<t>Media type of defining information resource: Some entity domain procedure for determining that inheritance.</dd>
types allow
<dt>Media type of defining information resource:</dt>
<dd>Some entity domain types allow
an entity domain name to be combined with an information resource name to an entity domain name to be combined with an information resource name to
define a resource-specific entity domain. Such an informa tion resource is define a resource-specific entity domain. Such an informa tion resource is
called "defining information resource", called a "defining information resource" and is
defined in <xref target="def-ir" format="default"/>. defined in <xref target="def-ir" format="default"/>.
For each entity domain type, the potential defining infor mation resources For each entity domain type, the potential defining infor mation resources
have one common media type. This unique common media type is specific to have one common media type. This unique common media type is specific to
the entity domain type and MUST be specified. the entity domain type and <bcp14>MUST</bcp14> be specifi
</t> ed. </dd>
</li>
<li>Mapping to ALTO Address Type: A boolean value to indicate if the <dt>Mapping to ALTO Address Type:</dt>
entity domain <dd>A boolean value to indicate if the entity domain
type can be mapped to the ALTO address type with the same type can be mapped to the ALTO address type with the same
identifier.</li> identifier.</dd>
<li>Security Considerations: In some usage scenarios, entity identif
iers carried in <dt>Security Considerations:</dt>
<dd>In some usage scenarios, entity identifiers carried in
ALTO Protocol messages may reveal information about an AL TO client or an ALTO ALTO Protocol messages may reveal information about an AL TO client or an ALTO
service provider. Applications and ALTO service providers using addresses of service provider. Applications and ALTO service providers using addresses of
the registered type should be cognizant of how (or if) th e addressing scheme the registered type should be cognizant of how (or if) th e addressing scheme
relates to private information and network proximity.</li relates to private information and network proximity.</dd
> >
</ul> </dl>
<t>This specification requests registration of the identifiers "ipv4", <t>IANA has registered the identifiers "ipv4", "ipv6", and
"ipv6" and
"pid", as shown in <xref target="TableEntityDomainNames" format=" default"/>.</t> "pid", as shown in <xref target="TableEntityDomainNames" format=" default"/>.</t>
</section> </section>
</section> </section>
<section anchor="IANAEntityProp" numbered="true" toc="default"> <section anchor="IANAEntityProp" numbered="true" toc="default">
<name>ALTO Entity Property Type Registry</name> <name>ALTO Entity Property Types Registry</name>
<t>This document requests IANA to create and maintain the "ALTO Entity P <t>IANA has created and will maintain the "ALTO Entity Property
roperty Types" registry, which is listed in <xref target="TablePropertyTy
Type Registry", listed in <xref target="TablePropertyTypes" forma pes" format="default"/>.
t="default"/>.
</t> </t>
<t>This registry extends the "ALTO Endpoint Property Type Registry", def <t>This registry extends the "ALTO Endpoint Property Types" registry, de
ined in fined in
<xref target="RFC7285" format="default"/>, in that a property typ <xref target="RFC7285" format="default"/>, in that a property typ
e is defined on e is defined for
one or more entity domains, rather than just on IPv4 and IPv6 Int one or more entity domains, rather than just for IPv4 and IPv6 In
ernet address domains. ternet address domains.
An entry in this registry is an ALTO entity property type defined in An entry in this registry is an ALTO entity property type defined in
<xref target="def-property-type" format="default"/>. <xref target="def-property-type" format="default"/>.
Thus, a registered ALTO entity property type identifier MUST conf orm to Thus, a registered ALTO entity property type identifier <bcp14>MU ST</bcp14> conform to
the syntactical requirements specified in that section. the syntactical requirements specified in that section.
</t> </t>
<t>As specified in <xref target="def-property-type" format="defau lt"/>, <t>As specified in <xref target="def-property-type" format="defau lt"/>,
identifiers prefixed with "priv:" are identifiers prefixed with "priv:" are
reserved for Private Use without a need to register with IANA. reserved for Private Use without a need to register with IANA.
</t> </t>
<t>The first line of <xref target="TablePropertyTypes" format="de fault"/> lists <t>The first row of <xref target="TablePropertyTypes" format="def ault"/> lists
information items that must be provided with each registered entity pr operty type. information items that must be provided with each registered entity pr operty type.
</t> </t>
<table anchor="TablePropertyTypes" align="center"> <table anchor="TablePropertyTypes" align="center">
<name>ALTO Entity Property Types.</name> <name>ALTO Entity Property Types</name>
<thead> <thead>
<tr> <tr>
<th align="left">Identifier</th> <th align="left">Identifier</th>
<th align="left">Intended Semantics</th> <th align="left">Intended Semantics</th>
<th align="left">Media Type of Defining Resource</th> <th align="left">Media Type of Defining Resource</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td align="left">pid</td> <td align="left">pid</td>
<td align="left">See Section 7.1.1 of <xref target="RFC7285" forma t="default"/></td> <td align="left">See <xref target="RFC7285" section="7.1.1" sectio nFormat="of" format="default"/></td>
<td align="left">application/alto-networkmap+json</td> <td align="left">application/alto-networkmap+json</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<t>New ALTO entity property types are assigned after <t>New ALTO entity property types are assigned after
IETF Review <xref target="RFC8126" format="default"/> IETF Review <xref target="RFC8126" format="default"/>
to ensure that proper documentation regarding the new ALTO entity to ensure that proper documentation regarding the new ALTO entity
property types and their security considerations has been provide d. property types and their security considerations has been provide d.
RFCs defining new entity property types SHOULD indicate how a pro perty RFCs defining new entity property types <bcp14>SHOULD</bcp14> ind icate how a property
of a registered type is encoded as a property name. of a registered type is encoded as a property name.
Updates and deletions of ALTO entity property types follow the sa me procedure. Updates and deletions of ALTO entity property types follow the sa me procedure.
</t> </t>
<t>Requests to the IANA to add a new value to the registry MUST include the <t>Requests to IANA to add a new value to the registry <bcp14>MUST</bcp1 4> include the
following information:</t> following information:</t>
<ul spacing="normal"> <dl spacing="normal">
<li>Identifier: The identifier for the desired ALTO entity property ty <dt>Identifier:</dt>
pe. The <dd>The identifier for the desired ALTO entity property type. The
format MUST be as defined in <xref target="def-property-type" format="default"/> format <bcp14>MUST</bcp14> be as defined in <xref target="def-property-type" for
of this document. mat="default"/> of this document.
</li> </dd>
<li>Intended Semantics: ALTO entity properties carry with them semanti
cs to guide <dt>Intended Semantics:</dt>
their usage by ALTO clients. Hence, a document defining a new type SHOULD <dd>ALTO entity properties carry with them semantics to guide
their usage by ALTO clients. Hence, a document defining a new type <bcp14>SHOULD
</bcp14>
provide guidance to both ALTO service providers and applications utilizing provide guidance to both ALTO service providers and applications utilizing
ALTO clients as to how values of the registered ALTO entity property should ALTO clients as to how values of the registered ALTO entity property should
be interpreted.</li> be interpreted.</dd>
<li>Media type of defining information resource: when the property typ <dt>Media type of defining information resource:</dt>
e allows <dd>when the property type allows
values to be defined relative to a given information resource, th e latter values to be defined relative to a given information resource, th e latter
is referred to as the "defining information resource", see descri ption is referred to as the "defining information resource"; see the de scription
in <xref target="def-ir-for-irsp" format="default"/>. in <xref target="def-ir-for-irsp" format="default"/>.
For each property type, the potential defining information resour ces have For each property type, the potential defining information resour ces have
one common media type. This unique common media type is specific to the one common media type. This unique common media type is specific to the
property type and MUST be specified. property type and <bcp14>MUST</bcp14> be specified.
</li> </dd>
<li>Security Considerations: ALTO entity properties expose information <dt>Security Considerations:</dt>
to ALTO <dd>ALTO entity properties expose information to ALTO
clients. ALTO service providers should be cognizant of the security clients. ALTO service providers should be cognizant of the security
ramifications related to the exposure of an entity property.</li> ramifications related to the exposure of an entity property.</dd>
</ul> </dl>
<t>In security considerations, the request should also discuss the sensi tivity <t>In security considerations, the request should also discuss the sensi tivity
of the information, and why it is required for ALTO-based operations. of the information and why it is required for ALTO-based operations.
Regarding this discussion, the request SHOULD follow the recommendations of Regarding this discussion, the request <bcp14>SHOULD</bcp14> follow the recommen
Section 14.3. ALTO Endpoint Property Type Registry in <xref target="RFC7285" for dations of
mat="default"/>.</t> the "ALTO Endpoint Property Types" registry in <xref target="RFC7285" section="1
<t>This document requests registration of the identifier "pid", listed i 4.3" sectionFormat="of" format="default"/>.</t>
n <t>IANA has registered the identifier "pid", which is listed in
<xref target="TablePropertyTypes" format="default"/>. Semantics for this propert y are documented in <xref target="TablePropertyTypes" format="default"/>. Semantics for this propert y are documented in
Section 7.1.1 of <xref target="RFC7285" format="default"/>. No security issues r elated to the exposure of a <xref target="RFC7285" section="7.1.1" sectionFormat="of" format="default"/>. No security issues related to the exposure of a
"pid" identifier are considered, as it is exposed with the Network Map "pid" identifier are considered, as it is exposed with the Network Map
Service defined and mandated in <xref target="RFC7285" format="default"/>.</t> Service defined and mandated in <xref target="RFC7285" format="default"/>.</t>
</section> </section>
</section> </section>
<section anchor="ack" numbered="true" toc="default">
<name>Acknowledgments</name>
<t>The authors would like to thank Dawn Chen, and Shenshen
Chen for their contributions to earlier drafts.
Thank you also to Qiao Xiang, Shawn Lin, Xin Wang and Vijay
Gurbani for fruitful discussions. Last, big thanks to Danny
Perez and Luis Contreras for their
substantial Working Group review feedback and suggestions to improve this docume
nt,
to Vijay Gurbani, ALTO WG Chair and Martin Duke, Transport Area Director,
for their thorough review, discussions, guidance and shepherding, that further h
elped to
enrich this document.</t>
</section>
</middle> </middle>
<back> <back>
<displayreference target="I-D.ietf-alto-path-vector" to="PATH-VECTOR"/>
<references> <references>
<name>References</name> <name>References</name>
<references> <references>
<name>Normative References</name> <name>Normative References</name>
<reference anchor="ISO3166-1"> <reference anchor="ISO3166-1">
<front> <front>
<title>ISO 3166-1: Codes for the representation of names of countrie <title>Codes for the representation of names of countries and their
s and their subdivisions -- Part 1: Country codes</title> subdivisions -- Part 1: Country codes</title>
<author initials="." surname="ISO (International Organization for St <author>
andardization)" fullname="ISO (International Organization for Standardization)"> <organization>International Organization for Standardization</orga
<organization/> nization>
</author>
<date year="2020"/>
</front>
</reference>
<reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2
119">
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</tit
le>
<seriesInfo name="DOI" value="10.17487/RFC2119"/>
<seriesInfo name="RFC" value="2119"/>
<seriesInfo name="BCP" value="14"/>
<author initials="S." surname="Bradner" fullname="S. Bradner">
<organization/>
</author> </author>
<date year="1997" month="March"/> <date month="August" year="2020"/>
<abstract>
<t>In many standards track documents several words are used to sig
nify the requirements in the specification. These words are often capitalized.
This document defines these words as they should be interpreted in IETF document
s. This document specifies an Internet Best Current Practices for the Internet
Community, and requests discussion and suggestions for improvements.</t>
</abstract>
</front> </front>
<seriesInfo name="ISO" value="3166-1:2020"/>
</reference> </reference>
<reference anchor="RFC4291"> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<front> FC.2119.xml"/>
<title>IP Version 6 Addressing Architecture</title> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<author fullname="R. Hinden" initials="R." surname="Hin FC.4291.xml"/>
den"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<author fullname="S. Deering" initials="S." surname="De FC.3986.xml"/>
ering"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<date month="February" year="2006"/> FC.4632.xml"/>
</front> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
</reference> FC.5952.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7285.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8126.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8174.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8259.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8446.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8895.xml"/>
<reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3
986">
<front>
<title>Uniform Resource Identifier (URI): Generic Syntax</title>
<seriesInfo name="DOI" value="10.17487/RFC3986"/>
<seriesInfo name="RFC" value="3986"/>
<seriesInfo name="STD" value="66"/>
<author initials="T." surname="Berners-Lee" fullname="T. Berners-Lee
">
<organization/>
</author>
<author initials="R." surname="Fielding" fullname="R. Fielding">
<organization/>
</author>
<author initials="L." surname="Masinter" fullname="L. Masinter">
<organization/>
</author>
<date year="2005" month="January"/>
<abstract>
<t>A Uniform Resource Identifier (URI) is a compact sequence of ch
aracters that identifies an abstract or physical resource. This specification d
efines the generic URI syntax and a process for resolving URI references that mi
ght be in relative form, along with guidelines and security considerations for t
he use of URIs on the Internet. The URI syntax defines a grammar that is a supe
rset of all valid URIs, allowing an implementation to parse the common component
s of a URI reference without knowing the scheme-specific requirements of every p
ossible identifier. This specification does not define a generative grammar for
URIs; that task is performed by the individual specifications of each URI schem
e. [STANDARDS-TRACK]</t>
</abstract>
</front>
</reference>
<reference anchor="RFC4632" target="https://www.rfc-editor.org/info/rfc4
632">
<front>
<title>Classless Inter-domain Routing (CIDR): The Internet Address A
ssignment and Aggregation Plan</title>
<seriesInfo name="DOI" value="10.17487/RFC4632"/>
<seriesInfo name="RFC" value="4632"/>
<seriesInfo name="BCP" value="122"/>
<author initials="V." surname="Fuller" fullname="V. Fuller">
<organization/>
</author>
<author initials="T." surname="Li" fullname="T. Li">
<organization/>
</author>
<date year="2006" month="August"/>
<abstract>
<t>This memo discusses the strategy for address assignment of the
existing 32-bit IPv4 address space with a view toward conserving the address spa
ce and limiting the growth rate of global routing state. This document obsoletes
the original Classless Inter-domain Routing (CIDR) spec in RFC 1519, with chang
es made both to clarify the concepts it introduced and, after more than twelve y
ears, to update the Internet community on the results of deploying the technolog
y described. This document specifies an Internet Best Current Practices for the
Internet Community, and requests discussion and suggestions for improvements.</
t>
</abstract>
</front>
</reference>
<reference anchor="RFC5952" target="https://www.rfc-editor.org/info/rfc5
952">
<front>
<title>A Recommendation for IPv6 Address Text Representation</title>
<seriesInfo name="DOI" value="10.17487/RFC5952"/>
<seriesInfo name="RFC" value="5952"/>
<author initials="S." surname="Kawamura" fullname="S. Kawamura">
<organization/>
</author>
<author initials="M." surname="Kawashima" fullname="M. Kawashima">
<organization/>
</author>
<date year="2010" month="August"/>
<abstract>
<t>As IPv6 deployment increases, there will be a dramatic increase
in the need to use IPv6 addresses in text. While the IPv6 address architecture
in Section 2.2 of RFC 4291 describes a flexible model for text representation o
f an IPv6 address, this flexibility has been causing problems for operators, sys
tem engineers, and users. This document defines a canonical textual representat
ion format. It does not define a format for internal storage, such as within an
application or database. It is expected that the canonical format will be foll
owed by humans and systems when representing IPv6 addresses as text, but all imp
lementations must accept and be able to handle any legitimate RFC 4291 format.
[STANDARDS-TRACK]</t>
</abstract>
</front>
</reference>
<reference anchor="RFC7285" target="https://www.rfc-editor.org/info/rfc7
285">
<front>
<title>Application-Layer Traffic Optimization (ALTO) Protocol</title
>
<seriesInfo name="DOI" value="10.17487/RFC7285"/>
<seriesInfo name="RFC" value="7285"/>
<author initials="R." surname="Alimi" fullname="R. Alimi" role="edit
or">
<organization/>
</author>
<author initials="R." surname="Penno" fullname="R. Penno" role="edit
or">
<organization/>
</author>
<author initials="Y." surname="Yang" fullname="Y. Yang" role="editor
">
<organization/>
</author>
<author initials="S." surname="Kiesel" fullname="S. Kiesel">
<organization/>
</author>
<author initials="S." surname="Previdi" fullname="S. Previdi">
<organization/>
</author>
<author initials="W." surname="Roome" fullname="W. Roome">
<organization/>
</author>
<author initials="S." surname="Shalunov" fullname="S. Shalunov">
<organization/>
</author>
<author initials="R." surname="Woundy" fullname="R. Woundy">
<organization/>
</author>
<date year="2014" month="September"/>
<abstract>
<t>Applications using the Internet already have access to some top
ology information of Internet Service Provider (ISP) networks. For example, vie
ws 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 wa
y to distribute it.</t>
<t>The Application-Layer Traffic Optimization (ALTO) services defi
ned in this document provide network information (e.g., basic network location s
tructure and preferences of network paths) with the goal of modifying network re
source consumption patterns while maintaining or improving application performan
ce. The basic information of ALTO is based on abstract maps of a network. Thes
e maps provide a simplified view, yet enough information about a network for app
lications to effectively utilize them. Additional services are built on top of
the maps.</t>
<t>This document describes a protocol implementing the ALTO servic
es. Although the ALTO services would primarily be provided by ISPs, other entiti
es, such as content service providers, could also provide ALTO services. Applic
ations that could use the ALTO services are those that have a choice to which en
d points to connect. Examples of such applications are peer-to-peer (P2P) and c
ontent delivery networks.</t>
</abstract>
</front>
</reference>
<reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8
126">
<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs
</title>
<seriesInfo name="DOI" value="10.17487/RFC8126"/>
<seriesInfo name="RFC" value="8126"/>
<seriesInfo name="BCP" value="26"/>
<author initials="M." surname="Cotton" fullname="M. Cotton">
<organization/>
</author>
<author initials="B." surname="Leiba" fullname="B. Leiba">
<organization/>
</author>
<author initials="T." surname="Narten" fullname="T. Narten">
<organization/>
</author>
<date year="2017" month="June"/>
<abstract>
<t>Many protocols make use of points of extensibility that use con
stants to identify various protocol parameters. To ensure that the values in th
ese fields do not have conflicting uses and to promote interoperability, their a
llocations are often coordinated by a central record keeper. For IETF protocols
, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
<t>To make assignments in a given registry prudently, guidance des
cribing the conditions under which new values should be assigned, as well as whe
n and how modifications to existing values can be made, is needed. This documen
t defines a framework for the documentation of these guidelines by specification
authors, in order to assure that the provided guidance for the IANA Considerati
ons is clear and addresses the various issues that are likely in the operation o
f a registry.</t>
<t>This is the third edition of this document; it obsoletes RFC 52
26.</t>
</abstract>
</front>
</reference>
<reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8
174">
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti
tle>
<seriesInfo name="DOI" value="10.17487/RFC8174"/>
<seriesInfo name="RFC" value="8174"/>
<seriesInfo name="BCP" value="14"/>
<author initials="B." surname="Leiba" fullname="B. Leiba">
<organization/>
</author>
<date year="2017" month="May"/>
<abstract>
<t>RFC 2119 specifies common key words that may be used in protoco
l specifications. This document aims to reduce the ambiguity by clarifying tha
t only UPPERCASE usage of the key words have the defined special meanings.</t>
</abstract>
</front>
</reference>
<reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8
259">
<front>
<title>The JavaScript Object Notation (JSON) Data Interchange Format
</title>
<seriesInfo name="DOI" value="10.17487/RFC8259"/>
<seriesInfo name="RFC" value="8259"/>
<seriesInfo name="STD" value="90"/>
<author initials="T." surname="Bray" fullname="T. Bray" role="editor
">
<organization/>
</author>
<date year="2017" month="December"/>
<abstract>
<t>JavaScript Object Notation (JSON) is a lightweight, text-based,
language-independent data interchange format. It was derived from the ECMAScri
pt Programming Language Standard. JSON defines a small set of formatting rules
for the portable representation of structured data.</t>
<t>This document removes inconsistencies with other specifications
of JSON, repairs specification errors, and offers experience-based interoperabi
lity guidance.</t>
</abstract>
</front>
</reference>
<reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8
446">
<front>
<title>The Transport Layer Security (TLS) Protocol Version 1.3</titl
e>
<seriesInfo name="DOI" value="10.17487/RFC8446"/>
<seriesInfo name="RFC" value="8446"/>
<author initials="E." surname="Rescorla" fullname="E. Rescorla">
<organization/>
</author>
<date year="2018" month="August"/>
<abstract>
<t>This document specifies version 1.3 of the Transport Layer Secu
rity (TLS) protocol.
TLS allows client/server applications to communicate over the Inte
rnet in a way that
is designed to prevent eavesdropping, tampering, and message forge
ry.</t>
<t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 50
77, 5246, and 6961.
This document also specifies new requirements for TLS 1.2 implemen
tations.</t>
</abstract>
</front>
</reference>
<reference anchor="RFC8895" target="https://www.rfc-editor.org/info/rfc8
895">
<front>
<title>Application-Layer Traffic Optimization (ALTO) Incremental Upd
ates Using Server-Sent Events (SSE)</title>
<seriesInfo name="DOI" value="10.17487/RFC8895"/>
<seriesInfo name="RFC" value="8895"/>
<author initials="W." surname="Roome" fullname="W. Roome">
<organization/>
</author>
<author initials="Y." surname="Yang" fullname="Y. Yang">
<organization/>
</author>
<date year="2020" month="November"/>
<abstract>
<t>The Application-Layer Traffic Optimization (ALTO) protocol (RFC
7285) provides network-related information,
called network information resources, to client applications so th
at clients can make
informed decisions in utilizing network resources. This document p
resents a mechanism to
allow an ALTO server to push updates to ALTO clients to achieve tw
o benefits:
(1) updates can be incremental, in that if only a small section of
an
information resource changes, the ALTO server can send just the ch
anges and
(2) updates can be immediate, in that the ALTO server can send upd
ates
as soon as they are available.</t>
</abstract>
</front>
</reference>
</references> </references>
<references> <references>
<name>Informative References</name> <name>Informative References</name>
<reference anchor="RFC3849"> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<front> FC.3849.xml"/>
<title>IPv6 Address Prefix Reserved for Documentation</title> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<author fullname="G. Huston" initials="G." surname="Huston"/> FC.5737.xml"/>
<author fullname="A. Lord" initials="A." surname="Lord"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<author fullname="P. Smith" initials="P." surname="Smith"/> FC.5511.xml"/>
<date month="July" year="2004"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
</front> FC.7921.xml"/>
</reference> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8896.xml"/>
<reference anchor="RFC5737">
<front>
<title>IPv4 Address Blocks Reserved for Documentation</title>
<author fullname="J. Arkko" initials="J." surname="Arkko"/>
<author fullname="M. Cotton" initials="M." surname="Cotton"/>
<author fullname="L. Vegoda" initials="L." surname="Vegoda"/>
<date month="January" year="2010"/>
</front>
</reference>
<reference anchor="RFC5511">
<front>
<title>Routing Backus-Naur Form (RBNF): A Syntax Used to Form
Encoding Rules in Various Routing Protocol Specifications</title>
<author fullname="A. Farrel" initials="A." surname="Farrel"/>
<date month="April" year="2009"/>
</front>
</reference>
<!-- commented text <reference anchor="RFC7011" target="https://www.rfc-
editor.org/info/rfc7011">
<front>
<title>Specification of the IP Flow Information Export (IPFIX) Proto
col for the Exchange of Flow Information</title>
<seriesInfo name="DOI" value="10.17487/RFC7011"/>
<seriesInfo name="RFC" value="7011"/>
<seriesInfo name="STD" value="77"/>
<author initials="B." surname="Claise" fullname="B. Claise" role="ed
itor">
<organization/>
</author>
<author initials="B." surname="Trammell" fullname="B. Trammell" role
="editor">
<organization/>
</author>
<author initials="P." surname="Aitken" fullname="P. Aitken">
<organization/>
</author>
<date year="2013" month="September"/>
<abstract>
<t>This document specifies the IP Flow Information Export (IPFIX)
protocol, which serves as a means for transmitting Traffic Flow information over
the network. In order to transmit Traffic Flow information from an Exporting P
rocess to a Collecting Process, a common representation of flow data and a stand
ard means of communicating them are required. This document describes how the I
PFIX Data and Template Records are carried over a number of transport protocols
from an IPFIX Exporting Process to an IPFIX Collecting Process. This document o
bsoletes RFC 5101.</t>
</abstract>
</front>
</reference> -->
<reference anchor="RFC7921" target="https://www.rfc-editor.org/info/rfc7
921">
<front>
<title>An Architecture for the Interface to the Routing System</titl
e>
<seriesInfo name="DOI" value="10.17487/RFC7921"/>
<seriesInfo name="RFC" value="7921"/>
<author initials="A." surname="Atlas" fullname="A. Atlas">
<organization/>
</author>
<author initials="J." surname="Halpern" fullname="J. Halpern">
<organization/>
</author>
<author initials="S." surname="Hares" fullname="S. Hares">
<organization/>
</author>
<author initials="D." surname="Ward" fullname="D. Ward">
<organization/>
</author>
<author initials="T." surname="Nadeau" fullname="T. Nadeau">
<organization/>
</author>
<date year="2016" month="June"/>
<abstract>
<t>This document describes the IETF architecture for a standard, p
rogrammatic interface for state transfer in and out of the Internet routing syst
em. It describes the high-level architecture, the building blocks of this high-
level architecture, and their interfaces, with particular focus on those to be s
tandardized as part of the Interface to the Routing System (I2RS).</t>
</abstract>
</front>
</reference>
<reference anchor="RFC8896" target="https://www.rfc-editor.org/info/rfc8
896">
<front>
<title>Application-Layer Traffic Optimization (ALTO) Cost Calendar</
title>
<seriesInfo name="DOI" value="10.17487/RFC8896"/>
<seriesInfo name="RFC" value="8896"/>
<author initials="S." surname="Randriamasy" fullname="S. Randriamasy
">
<organization/>
</author>
<author initials="R." surname="Yang" fullname="R. Yang">
<organization/>
</author>
<author initials="Q." surname="Wu" fullname="Q. Wu">
<organization/>
</author>
<author initials="L." surname="Deng" fullname="L. Deng">
<organization/>
</author>
<author initials="N." surname="Schwan" fullname="N. Schwan">
<organization/>
</author>
<date year="2020" month="November"/>
<abstract>
<t>This document is an extension to the base Application-Layer Tra
ffic Optimization (ALTO) protocol. It extends the ALTO cost information service
so that applications decide not only 'where' to connect but also 'when'. This
is useful for applications that need to perform bulk data transfer and would lik
e to schedule these transfers during an off-peak hour, for example. This extens
ion introduces the ALTO Cost Calendar with which an ALTO Server exposes ALTO cos
t values in JSON arrays where each value corresponds to a given time interval.
The time intervals, as well as other Calendar attributes, are specified in the I
nformation Resources Directory and ALTO Server responses.</t>
</abstract>
</front>
</reference>
<!-- commented text
<reference anchor="I-D.gao-alto-fcs" target="http://www.ietf.org/interne
t-drafts/draft-gao-alto-fcs-07.txt">
<front>
<title>ALTO Extension: Flow-based Cost Query</title>
<seriesInfo name="Internet-Draft" value="draft-gao-alto-fcs-07"/>
<author initials="J" surname="Zhang" fullname="J. Zhang">
<organization/>
</author>
<author initials="K" surname="Gao" fullname="Kai Gao">
<organization/>
</author>
<author initials="J" surname="Wang" fullname="Junzhuo Wang">
<organization/>
</author>
<author initials="Y" surname="Yang" fullname="Y. Yang">
<organization/>
</author>
<date month="March" day="16" year="2020"/>
<abstract>
<t>ALTO cost maps and endpoint cost services map a source-destinat
ion pair into a cost value. However, current filter specifications, which defin
e the set of source-destination pairs in an ALTO query, have two limitations: 1)
Only very limited address types are supported (IPv4 and IPv6), which is not suf
ficient to uniquely identify a flow in networks with fine-grained routing, such
as the emerging Software Defined Networks; 2) The base ALTO protocol only define
s filters enumerating all sources and all destinations, leading to redundant inf
ormation in the response; 3) Cannot distinguish transmission types of flows in t
he query, which makes the server hard to respond the accurate resource consumpti
on. To address these three issues, this document extends the base ALTO protocol
with a more fine-grained filter type which allows ALTO clients to select only t
he concerned source-destination pairs and announce the flow-specific information
like data transmission type, and a more expressive address space which allows A
LTO clients to make queries beyond the limited IP addresses.</t>
</abstract>
</front>
</reference> -->
<reference anchor="I-D.ietf-alto-cdni-request-routing-alto" target="http ://www.ietf.org/internet-drafts/draft-ietf-alto-cdni-request-routing-alto-16.txt "> <reference anchor="RFC9241" target="https://www.rfc-editor.org/info/rfc9 241">
<front> <front>
<title>Content Delivery Network Interconnection (CDNI) Request Routi <title>Content Delivery Network Interconnection (CDNI) Footprint and
ng: CDNI Footprint and Capabilities Advertisement using ALTO</title> Capabilities Advertisement Using Application-Layer Traffic Optimization (ALTO)<
<seriesInfo name="Internet-Draft" value="draft-ietf-alto-cdni-reques /title>
t-routing-alto-16"/>
<author initials="J" surname="Seedorf" fullname="Jan Seedorf"> <author initials="J" surname="Seedorf" fullname="Jan Seedorf">
<organization/> <organization/>
</author> </author>
<author initials="Y" surname="Yang" fullname="Y. Yang"> <author initials="Y" surname="Yang" fullname="Y. Yang">
<organization/> <organization/>
</author> </author>
<author initials="K" surname="Ma" fullname="Kevin Ma"> <author initials="K" surname="Ma" fullname="Kevin Ma">
<organization/> <organization/>
</author> </author>
<author initials="J" surname="Peterson" fullname="Jon Peterson"> <author initials="J" surname="Peterson" fullname="Jon Peterson">
<organization/> <organization/>
</author> </author>
<author initials="J" surname="Zhang" fullname="Jingxuan Zhang"> <author initials="J" surname="Zhang" fullname="Jingxuan Zhang">
<organization/> <organization/>
</author> </author>
<date month="January" day="12" year="2021"/> <date year="2022" month="July"/>
<abstract>
<t>The Content Delivery Networks Interconnection (CDNI) framework
defines a set of protocols to interconnect CDNs, to achieve multiple goals such
as extending the reach of a given CDN to areas that are not covered by that part
icular CDN. One component that is needed to achieve the goal of CDNI described
in CDNI framework is the CDNI Request Routing Footprint &amp; Capabilities Adver
tisement interface (FCI). RFC 8008 defines precisely the semantics of FCI and p
rovides guidelines on the FCI protocol, but the exact protocol is explicitly out
side the scope of that document. This document defines an FCI protocol using th
e Application-Layer Traffic Optimization (ALTO) protocol, following the guidelin
es defined in RFC 8008.</t>
</abstract>
</front>
</reference>
<reference anchor="I-D.ietf-alto-path-vector" target="http://www.ietf.or
g/internet-drafts/draft-ietf-alto-path-vector-13.txt">
<front>
<title>ALTO Extension: Path Vector</title>
<seriesInfo name="Internet-Draft" value="draft-ietf-alto-path-vector
-13"/>
<author initials="K" surname="Gao" fullname="Kai Gao">
<organization/>
</author>
<author initials="Y" surname="Lee" fullname="Young Lee">
<organization/>
</author>
<author initials="S" surname="Randriamasy" fullname="Sabine Randriam
asy">
<organization/>
</author>
<author initials="Y" surname="Yang" fullname="Y. Yang">
<organization/>
</author>
<author initials="J" surname="Zhang" fullname="J. Zhang">
<organization/>
</author>
<date month="November" day="20" year="2020"/>
<abstract>
<t>This document is an extension to the base Application-Layer Tra
ffic Optimization (ALTO) protocol. It extends the ALTO Cost Map service and ALT
O Property Map service so that the application can decide which endpoint(s) to c
onnect based on not only numerical/ordinal cost values but also details of the p
aths. This is useful for applications whose performance is impacted by specifie
d components of a network on the end-to-end paths, e.g., they may infer that sev
eral paths share common links and prevent traffic bottlenecks by avoiding such p
aths. This extension introduces a new abstraction called Abstract Network Eleme
nt (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 representatio
n of the underlying network(s) for informed traffic optimization among endpoints
.</t>
</abstract>
</front> </front>
<seriesInfo name="RFC" value="9241"/>
<seriesInfo name="DOI" value="10.17487/RFC9241"/>
</reference> </reference>
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D
.ietf-alto-path-vector.xml"/>
</references> </references>
</references> </references>
<section anchor="features-introduced-with-epm-extension" numbered="true" toc ="default"> <section anchor="features-introduced-with-epm-extension" numbered="true" toc ="default">
<name>Features introduced with the Entity Property Maps extension</name> <name>Features Introduced with the Entity Property Maps Extension</name>
<t>The Entity Property Maps extension described in this document introduce <t>The entity property maps extension described in this document introduce
s a s a
number of features that are summarized in table below. The first column number of features that are summarized in table below. The first column
provides the name of the feature. The second column provides the section provides the name of the feature. The second column provides the section
number of this document that gives a high level description of the feature. number of this document that gives a high-level description of the feature.
The third column provides the section number of this document that gives a The third column provides the section number of this document that gives a
normative description relating to the feature, when applicable.</t> normative description relating to the feature, when applicable.</t>
<table anchor="TableUPFeatures" align="center"> <table anchor="TableUPFeatures" align="center">
<name>Features introduced with ALTO Entity Property Maps</name> <name>Features Introduced with ALTO Entity Property Maps</name>
<thead> <thead>
<tr> <tr>
<th align="left">Feature</th> <th align="left">Feature</th>
<th align="left">High-level description</th> <th align="left">High-Level Description</th>
<th align="left">Related normative description</th> <th align="left">Related Normative Description</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td align="left">Entity</td> <td align="left">Entity</td>
<td align="left"> <td align="left">
<xref target="con-entity" format="default"/></td> <xref target="con-entity" format="default"/></td>
<td align="left"> <td align="left">
<xref target="entity-addrs" format="default"/></td> <xref target="entity-addrs" format="default"/></td>
</tr> </tr>
<tr> <tr>
<td align="left">Entity domain (ED)</td> <td align="left">Entity domain</td>
<td align="left"> <td align="left">
<xref target="con-entity-domain" format="default"/></td> <xref target="con-entity-domain" format="default"/></td>
<td align="left"> &lt;/td> <td align="left"></td>
</tr> </tr>
<tr> <tr>
<td align="left">Entity domain type</td> <td align="left">Entity domain type</td>
<td align="left"> <td align="left">
<xref target="con-entity-domain-type" format="default"/></td> <xref target="con-entity-domain-type" format="default"/></td>
<td align="left"> <td align="left">
<xref target="domain-types" format="default"/></td> <xref target="domain-types" format="default"/></td>
</tr> </tr>
<tr> <tr>
<td align="left">Entity domain name</td> <td align="left">Entity domain name</td>
<td align="left"> <td align="left">
<xref target="con-entity-domain-name" format="default"/></td> <xref target="con-entity-domain-name" format="default"/></td>
<td align="left"> <td align="left">
<xref target="domain-names" format="default"/></td> <xref target="domain-names" format="default"/></td>
</tr> </tr>
<tr> <tr>
<td align="left">Entity property (EP) type</td> <td align="left">Entity property type</td>
<td align="left"> <td align="left">
<xref target="con-property" format="default"/></td> <xref target="con-property" format="default"/></td>
<td align="left"> <td align="left">
<xref target="def-property" format="default"/>, <xref target="def- property-type" format="default"/>, <xref target="entity-property-name" format="d efault"/>, <xref target="format-entity-property-value" format="default"/></td> Sections <xref target="def-property" format="counter"/>, <xref tar get="def-property-type" format="counter"/>, <xref target="entity-property-name" format="counter"/>, and <xref target="format-entity-property-value" format="coun ter"/></td>
</tr> </tr>
<tr> <tr>
<td align="left">Entity property map</td> <td align="left">Entity property map</td>
<td align="left"> <td align="left">
<xref target="con-propmap" format="default"/></td> <xref target="con-propmap" format="default"/></td>
<td align="left"> <td align="left">
<xref target="prop-map" format="default"/>, <xref target="filter-p rop-map" format="default"/></td> Sections <xref target="prop-map" format="counter"/> and <xref targ et="filter-prop-map" format="counter"/></td>
</tr> </tr>
<tr> <tr>
<td align="left">Resource-specific ED name</td> <td align="left">Resource-specific entity domain name</td>
<td align="left"> <td align="left">
<xref target="rsed-name" format="default"/></td> <xref target="rsed-name" format="default"/></td>
<td align="left"> <td align="left">
<xref target="domain-names" format="default"/>, <xref target="reso urce-specific-ED" format="default"/></td> Sections <xref target="domain-names" format="counter"/> and <xref target="resource-specific-ED" format="counter"/></td>
</tr> </tr>
<tr> <tr>
<td align="left">Resource-specific EP value</td> <td align="left">Resource-specific entity property value</td>
<td align="left"> <td align="left">
<xref target="rsep" format="default"/></td> <xref target="rsep" format="default"/></td>
<td align="left"> <td align="left">
<xref target="format-entity-property-value" format="default"/></td > <xref target="format-entity-property-value" format="default"/></td >
</tr> </tr>
<tr> <tr>
<td align="left">Entity Hierarchy and property inheritance</td> <td align="left">Entity Hierarchy and property inheritance</td>
<td align="left"> <td align="left">
<xref target="con-hni" format="default"/></td> <xref target="con-hni" format="default"/></td>
<td align="left"> <td align="left">
<xref target="def-hierarchy-and-inheritance" format="default"/></t d> <xref target="def-hierarchy-and-inheritance" format="default"/></t d>
</tr> </tr>
<tr> <tr>
<td align="left">Defining information resource</td> <td align="left">Defining information resource</td>
<td align="left"> <td align="left">
<xref target="def-ir" format="default"/>, <xref target="def-ir-for -irsp" format="default"/></td> Sections <xref target="def-ir" format="counter"/> and <xref target ="def-ir-for-irsp" format="counter"/></td>
<td align="left"> <td align="left">
<xref target="dom-reg-process" format="default"/>, <xref target="I ANAEntityProp" format="default"/></td> Sections <xref target="dom-reg-process" format="counter"/> and <xr ef target="IANAEntityProp" format="counter"/></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</section> </section>
<section anchor="ack" numbered="false" toc="default">
<name>Acknowledgments</name>
<t>The authors would like to thank <contact fullname="Dawn Chen"/> and <co
ntact fullname="Shenshen Chen"/> for their contributions to earlier drafts.
Thank you also to <contact fullname="Qiao Xiang"/>, <contact fullname="Shawn Lin
"/>, and <contact fullname="Xin Wang"/>
for fruitful discussions. Last, big thanks to <contact fullname="Danny Perez"/>
and <contact fullname="Luis Contreras"/> for their
substantial working group review feedback and suggestions for improving this doc
ument,
to <contact fullname="Vijay Gurbani"/>, ALTO WG Chair, and <contact fullname="Ma
rtin Duke"/>, Transport Area Director,
for their thorough review, discussions, guidance, and shepherding, which further
helped to
enrich this document.</t>
</section>
</back> </back>
<!-- ##markdown-source:
H4sIAJOmdWAAA+29aXcbR5Yg+j1/RT74nGexGoC5iZLoqZmiJbnMalnSiHQt
092nnQCSZJZAJDoTII2y1b/93TXiRmQkQKr8uuZDq7otCMiM5caNuy+j0Sib
1dNFcVue5rOmuFqNqnJ1NSrmq3q0XlRXVTkbLZt62Y4W5f3o4Fm2qlZzeHZw
9ubyXf76p1W5aKt6cZq/XsAvm/w9PFs28OH7YtkOsmIyaco7eDz987RYldd1
sznN29Usy6plc5qvmnW7Otzff7F/mBVNWZzmb8vVfd18bDP873VTr5enOU3/
p99nH8sNfDvjL7KsXRWL2b8X83oBa9yUbbasTrM8X9VT/id9rG+XxXRlvpiV
y9XNaX4E/4IlLOoV7fs0X9TwTVs3q6a8avX5dnNr/xmN1q4n7ht4PSvWq5u6
wTWM4P9h/AW8+adx/qGub0v6hmH/p3Ix25hv6+YaNl5/rIr8m3I+z98UkzZ/
8qFcVU0526NHFLbRU/RbC0suYQkHh8f5N+tmXi2uV/Ui/zCjX6dwFKf59+um
KTb5d9V8Tt825TWd5Ns/8EP1DNa1/+zFs2P593qxwqP64eKMvljeEJT/6WD0
Yv/56PjkeHTy4tlT+qm8Lar5aX6Pm/rd/azBbY0BLiEYLgAMcFxNVdwW7cYA
46KYVIuy82MKJsFuP9TrVZnPyvyPsKfyr4BHZrtv3/2fs7+Ynb04OD7ZD3f2
7Yezty9f2x3wSsZmJb9b4AJGE1jAaA4L6G7rL+P8L8Xi2uwHvvlQTW+KZuZ/
oc38pZiX+Q+L6q5sWlhksJmnB3hb2mU5XeUX9J3dTHmff1fclQuzoZeX+f7J
04ODXad1uH80Oj46HJ0c7+/bvW6aze+m7XgDaxqXs3W4qT+M8/9zE+7qD4BU
P62LRf4HoAHlwvxOe7usF9d/rfp2d/x8fz9/WdRfni3y7+43ZmsXOMxNUZmd
He4fPN+PsPDlTbUo7PL/KssZL8Z/wyF+d43fd4/nn8f574va7OOfi8p9Qyu/
gLPCffUs/W09hlt1Abh2k1/A6cClyQ+G+V8qeulDXdhL9vKmXFwTMHUzJwf7
+/v7Ozbzsaiui/p37XSNRzGeLrJsUTe3xQpWhMTk/OLd0cHJyejglN5Sogxf
5/J9/hJma/OruslXNyVc7mVTwimtClpvfUWbb/EDr6KCfwCW48NVg2RsVt1V
SNrbfDTK3xfNKqdBacW0FaDfRIYchcM/IwEqLeXJ+WJVNguaspjn75rrYlH9
jVeAC7tAag23Qr7bG8ggclJ/xxgzYCyIN4cI6A/fvjw8OHhxyh+PXjw/kY/H
J0eH8vHp4bF++/TFU/322eHzp/Lx+cHhifv47Fg/Hj7VcZ8f4wjV4sqeE46x
f3CgH18c6sfnz1889R9p5PPRqzEcOvPeq2mr33mGPJ0tqlFT/se6bFcj4IMr
QHn6pfvosljdjO4AO/FoshEcIdCqVQN8Kcuyy5uqzYHtr28BIfISmfisJTSZ
FG2Zny2X82pK4By9KTZlk1+CZHBVTfN3y1V1q9B/gix3LwMihTx1nk82+XW5
KJtiXv0NFkbjTevFFJgrotkAJlnWFUy4ZCEAMG6QF4B1OF0JmFdn+kiL38/K
K6C9Mxz3/H1ezGaAwC1g6arO/XPmoSK/r2aw2LbE+bJ68lfYfjvOv103sJRm
iAuC3fnZcxAvcrkWMARMeQtSyTBvYY/zosGJ4JVsweIH3Y5p3a7oKcBQAzAU
RpYCh3F+eVO6f+UAaQYwzFAtMhgK3v8rIO4MODkRD1xi1bSrYX7V1Ldmb7Ay
uJfTFcEmhgHACm497mJaA5VCgCsAcKElS2YT4C8Mj1zg8TX8G05lxrNlBhpw
pMhtKjxovwiCNkod9BdIbksV4RAMtNm2zEoVBBEwq6aeraclLreSa3tVFqt1
gyCfz+t7XKxbPq5Wx8zuivmaj3hS+tXAP4v8Gq7UInf3C1YL49XrZlriIgDM
FZ4fMP9l3dLGM8IJQkkYA6e5mpc/EUiAeFXXRAVlU3YR+WqzLNsx35rbajaD
obLsi/xcNoZz4x2Kzj3/+WehGJ8+eSC0nWsQYP9qVUxvylkGO/T3wx3zYEgL
YxznkV7rQ06Sviibuwqg/eT1+4s9RAwCMa9tChdLDrEpkcbflTBKHdyCcf6n
mwpgsm7Lq/V8yLO8v4Cp20xvFyC72d0wv8Fru8rnZQHXYXUDfDGfw6Vh5oKg
E4SWsfjUW3v1+ISLtq2nVYEYfl8BO60X843FvZtihTpADmi9YKEcL3q1QN40
WwNeAXe/BTWFiZW5H/PqYwk35u6YAAgfTjL34zg/XyGygG7RAnIiPtBNrxYf
aUYYFKRHvpqMIrKeACSwjpfnrz60DBjkJHDscK3fn7+CB29BsC7mbQ2QuguB
LdTotm7KYQYUACkwnRXAP58WuPj2Bs6PVmJv55W/Mu16eoPkSinTFUI34xMC
bgMLwV0Lg8jLeXlLWMAPAA/CBwCqtEA+9nF+gWPy/PBbptxBDz9mTp8+MZ2b
ghKBW8BThmUDgjUMW0O6MnNghsIjOS0WoG0RJjgmIAiqmwVkuhCCpdhEWCIo
5ccLceR6Xk9i/LAo8B2vFS9YHl88Oj1cUz6vpzCIp7x4wAWMs9hMEfPND3Rc
+J7sh+eHdcLswK/H+ZkjhvONzIqUJ9OzLBBzaARCGXjAbajh0QGsOHhn5Ev+
EQbNWpC9aBzzrmwGzpmO8nY9X1VLwHlFHuZ590QD4PcSCFJmfkOww8zRoJ45
FMDIrq5KQgLhNAbM39YN8IbiFiYc0hiD282ymh3sD3RdhsQMYFqY8WBAuCH/
Ohy4tWW4tjxYmx+OuGC7fTkk+TQGk6qWkUkXwefw7uJydAsCLgxApHWcvxQ6
egsqZS4CWLa6CYSJK8INYLwoPFVu9i5VH+ffoAANHAJwaJhZtqGUvsh//1rW
oBKH43YIDgAD0PN1syCGmhd3oDQgIcvwaZRg8FyY+OMdAyYI8+dwz+e6LHow
R7Y0VLF/gbuZIjLjj9m8rj+uQdBBwgyUJIdNNxuV64hiIXjKZhwwvlldMpry
VhAnRZoSYBKcEqIg3JBVfsVso6ANG+BZMeW2ur5B6Ja3eXW7RIkWrjfwrUk5
LZCGVkjA1/MZnRPLLUDJmmIla88cnydhg9cD+9g4wcFNa8hEhdChuQBgFd63
7AYWQtcQmQ18iCn2fQXgNhjuJ4pxYpwxR7pFWoCcIe8ZMrozOCITQ1TYRO7t
Ipw7YSdROSXQjL0m0g9M9Pq6Ka+ZYEZaI153Ei4cSOuFF76WoCNW0zWcNa68
AdBWV/kESOjHNr0u5vkFEeka4Qvb+il/Uo6vx4gDyF73mBrS2pG20ZFldNWc
vDZm2yPuAU6pRu4KaAh69IIBRiC/R4MRL143CGJXtD8EE9wDQNKJQxvEByAL
+D7Sj9pQ/LIr+gi1dLqVAJyutAqKXlimA6TDJPEdeTZLafhPFS7lfECL+w1x
XLojZk4EvYJUxCOWPVklEPmXLJUshMJtmcOTbMAlJjQUmuLUN8YEf2KwMoSk
AxeMRvwKj0npsYgZ+NUUgQ1nwZ8QI/Qp4nyqiZZoKIlet4qfEzySai3KoYj/
eN4Z2rc2LRIC/G5eX/NHVnlgoLt6fscj+gWv6mUNTyL+IF8RTaBCk2K1mM7X
M33By4MKO9iEAV/+irANZKgKcYe4FJmj8/ABHVaYTg3kEVUNK9oN+e3wNaTg
EzQLT+cgMDsRhxAweh8XXK3Ggiqs6W3DlXWLWKKsZaT0AeYScMhFAurcfSp8
hlgaXTq3GJLfc5I1HYeF9RhJjSgADExWTqPmEXSNrpflbnpFVrgaIFOiNDyt
l7ALEjZyJ2w4CStaXkU2SpTSERhbloLgNbIGQpYnZjMCjYCScq57G+dvgGrf
V+322TtCpaPrfqgEXPgtsyA95BWKNNvO2BEYtD0synvWbxFrBElTOnV7Gvhq
hjAKrH/OV+Jf/u3JF0iZRrCMPTrSb6v5CoQuvNDbX7uiB0fubdYicH5WHLzk
Y46c+aBKPEbuEh4uwtd8HtwDvF/wNfLTDj4zS8T5QCCvr+u1yLL2wInJOPGr
Qhw0kg4vfA4avC7cy4396/bLRV9RuWojJkymG92DCJr+trNE1107ebFQwJNT
6G7D/aL7GbMFwxkvPE8y1DfkZTjj+ho/IlMckw9ClBhBckYsJlcBKqP82JRo
Txb5MRRE/JRZMCVSVBIeUWVCzOXVI4+cMqwWtIaOMKkk0+xF5QIeuU0vy4Ej
WF+PGQRA+MUX+SXo8tWCGElsWCWJakXorVYvOIRbXjl77yovNgCmiMSYXbGN
IDyK0oCFLTbR8YQmJ7G4ZYOE2W5AIizNhhLzBGDD3ARW5wxU/CSrYnLM4S9k
VLoqxU4KS5EpxySpNMWiLYhpnhLvIFT+Ckka7BeY5E9TdNKgpLW6L8uFY6ms
ajGI5KsL1jNgVP7xFPYPb5BGqyJksQTyN88HLwcigtFeaH18tYPhcSweddtY
FzvG8ut6/f572OUiOFRRdDrAx+e/7Xve3dP4DdBW02/0GgQRPfMPrAMxyr8B
gK+L65Kv/scSpOK6mbX54PsfLi5hr/R3/vYdff7w+n//cP7h9Sv8fPHd2Zs3
7oM+cfHdux/ewO+ZfPJvvnz3/fev377il+HbPPrq+7O/iGlz8O795fm7t2dv
BkpvnOWJxAY2E1boAgLRU6z0wPSnTTXhi/HNy/f5wTHfS/TygA5Kn9FJ8+lT
dg+ny1ORzMX/BFzfoMWpBMEUJTy4B3LoZOMjA9wCNAHAZUYPVBsZVv4tuNGA
+2gx0wGT6yWkYqfaAq9HMc/mcg5AyQpkzC0d1TcFyK/5t2ooB77A9t5O3ISP
ush//mKCb43UvD6qr0bwVhC5ga+NHHn/JESqFYEWxS1kXqjMjuagnoLUfIcI
BIRVlkBTeAu+EaYzKwQHoR1kYwVhdX0r5KgpixkzyqsCSHoFMFTIsBiSMqOL
K2XdLNEiSMtRd0orko5TSUHAuivRPhG5NFQHIALLnhiV3a0lEg/PKEbZayeQ
6y1WGw8gR7MS9mmAIsTX883WqQwLZ39D3CJ/JQaoeOtCBu+09a3Yf9VR5QZH
6XBWLktCYqNmpwW3jPki21IjPhzJt7cAYKHdMPgwQwGtmN0VoMXMHoFTe4b3
ZCmnj4U9HniNNi7veBP2Jl8o4ATEKewKpBVDC3oZYpGBMj8B/AMcCleF5w5Y
els0oPUSTpOUqnv35zpC+I3K5a3ZN6oiQCRIsL1EoeiH93p/90Aib1dttrJY
who+WSeVTbfqaOgsn5aH1xNWb24nna66mGX7S7bO4FrqKxZLBGw/fwH3YsRc
6BMD1PiiIjXWqv+rvifFIGdEE42BOBwf4KPB/T1beL0aB+HbKG4WvhjFwpuG
1M5tnCzVyvs5RK0Z5pM1v04eDBpDRs5oBHJPuUGAgy5J9kIRWZ2hXjeIRy/V
ym/XKrb3EnXTppwX4pMtFpv4daRZ61YwoyD7rHVrN6XR9XHIQGvhn+VhOMj/
8f+MRkDuSaUNXUCj0f/MsuQvMAbZivTIdLxh3ufNEy1F7h8bAX0IQE66CnAI
lL1DJ0uR9r85E96CXXAATvLA5frAXmCIGeJi2Zq0dYV8qqL2e+H4Zn1bLEbI
X8gCnls3hZrfeLUCkMCBwCo9efTZA2OwBIMqrAvRWFQZvsV6VS/qW9Qe2w0o
arf5k7OLPbtcmPIiF9oDv73dQxZQWW8VAZfsa8s2QNFtU2vkkLegzshK6ffL
tjONEiIY1rJZc7YcscgOqJev3jrgtt4zG2unICgVE2DghMG0lsuX7786fx84
I4fu1sQIIw8/HV2u0QnFC96wUQbhIoozu73bVbWIPbvkqQcOLFB1QUv5elUh
6UIThMoSvL7ID+rXFkHLOEdFvw6902iQkKEsECwXVrwQA2fXNpq6avKwWOTd
tcB9YNSVdxDi7OiLsMRrXi0+ttYMK6o4h31VhF3eoB/wBrEuWhYx4reBU5zF
BizvmnKOLSE4IiaSfb4t4TKuMGRjs0Sn5yILRwGoYhwkGn+Z4QqFJztmZBtU
4g/jwrrPI/5obWzoxrsXflH+BIOLdTWcmwcyHCnlzuy+DqLsFZnOrG0J/p15
R2NoW7JasYCl3zjNugMFOayAhqmGEw5diSvVWzerKzHQM1lGWkNavJDcTNRn
SzpUrMStWBcMO6nM5HavQ8foRXIEoWO+UYltUC3vjsVEAB9PBrHVGNEtxrdL
POoE0o0QB0RGUbN2x4xKP9h4GEW4lu9OYA/fjLPXnbc79inEbQduZx8K4H0q
fkOWT52EpuvoLrEV0AwVLgSiZTVDNTdzMh/KjTDCaoTnIWBgeypZWKuZfseK
UHeebFAsyoGQFV3OmVIfiZvPX2sAyJOzt69b4E9VpLBkW90sfZOHswpHyigy
tDNDx5HTG8oYSI3WsJiTdWJSUpx6y1aSYkVIcH729mzY4X8CZhLoYRyY7Xok
Hm4GcqvGRWvUce49JGAp/H2LFzqFv0hfBH/xYxJ/qzY26qH3orQitnrVO7ST
BkXkRVVxVaFmPdHQKCQo6rOQuSuKIASlAe5H1j0977clUR/DGO/F1BGQ9kJf
krCULA5L8bTTkTsnOcPBXpOVFaVc/Nm6dJzGqhyE7WnO6Y2SSGRAUx1cOAF7
3YIYE7dcHBOxRmiU8b94Oh7JJsv1BASjjAUvQQMhFgjUmY7lIw3aUHTniJy5
YS0zCkKUzcv+3L6Zq1nFv4MvdJiVZQgUI+pm1gczPtLzxQwU/yHbKXBcS5OG
4WI9YZ+zLundb9n2KEuHMFfWNgIAt7eVqB1gcUaRQ23PdNafFVJcDwof4wMi
eWeKRByROhGtFwTvO1phFsbXwC4BGwc1zt81UYgSqXzh+Mgg/YGouMY6BEvy
Q42kEtRu43CrdOCUC3exsYoi97ChEfCBQwUiPCHjppWlGDYYjZNR0NgahK7F
qhSiTZJ2JMY9SIgClEVy2rTljOid51aGCAJ5FVtdZngl22kwSNBfUpgzcWfg
HkybWkIsyBrHN2fI15TuBBtvVEBvxT/icUO1AlXWU4QnkIadgcnIJ2rqCuRh
Z5n3ErH7ypJ8f1+iePLYX7XJE8aUZ1uNKS5eGskTWz7zsrLoPCru8ZLX5ovr
BYiKIJobUBgHG0UOR2hlCZJb7C4RPusR4RPL38HXs618nbAOn+ADxPPbgxP9
pqQYHzTrIQEs1UQi5s+CLWhX1RTRHjX38CIF0eiEzGpMUa0hEH0tyvnYTb/B
e4pl5UAzsoCBPnbmrQYX3mqgVgKMlZ26YDU0HxCqw9VsmRBY9iS2g2LBpMxN
K+xKZDIUyQZ2YG8/IMOBGMjYi0xzqMoQ7rxzrsEolZEdQiE1D1cSmXkeLBci
gGGsGMRmX/cskM4rDuczKRjrVpn8y1dvh8kDleDTsRBOWn7qSJmA8qScQIrs
sMRwznl+XdbXTbG8IYEMQzZUrWfQuFjllYsFQiFghU4FDFlESaMm2yJOQgjs
xS0X/kebQd6rKl9CWCa0CC9ayGARq0ki8+JciC84mVhla+8i3n28jvSaOxZe
+ODxcWIdjq8/ZH55XGZl64+djOSQLDOxOSykRiHS4VRFIICFwMyYnMX6YbAD
Qab9cXcrQqdxrYFpxUV5UGQRJugZ8cUNOCDLTh0jZCZBJkMXhixwCg3plnYM
dTKZi4bnwVwkl7iGmJ2ZDAG1GmigAgY9FypWfa4XidkxRpWkxE8WrcpZxUq+
ZIAHflHPtGEvn+JoDOsOoriROMbMT8Xk045NdiMbkUmOeR+D5qxikfPRWOok
2sflbWFInRmMHNKsivYYlsSyQA4gZEzjLA546y6QXYcUiU1E7uzi7cA/oTQk
e4Ah59J46Lz7jRwwHcj6Yxr3xsTQHeTQNGf6TKd3oQAgYlH2IiUWSfZMa+Yl
fdSLlkKtWUosVkXGszAlpQw3YmHi9FqVQgnQLFYs2ttqRUFYUaQKK+pqajP5
VspSvru8fK+AnNSzjQjzHo4s08vLQXSN3zwI0eQFckZjZWR/uHj3VjVtVXbP
AXwf5E1F3+9F+0GPUURpPLzygfEKfMU2IL5H//TXtl4gAT0LL5soxpgVUGnm
hEta8LGaq5t1633z5A0Lr0gUtccHNeM41jYwtFNMgfH6ZcHc3ei77uRwZBrI
G1/VLPrR3VIMzTgTavbo6IzPIIOfrFJy7lkKHmHSECVGKM99RvBox55/HnnU
bHi3eKoS+UaazIIpBs4ZkrnADSEbQEXUzClWEzXNOAclyuP09OnBi8Px/vhw
fMD0hkjPyenh/v7B6Wzy/PT04HCQtPbTLW3Xjap+DzT+Zx0+/lj7v03WMq9E
0JFEzpQRrqtgFLFpj66g1api43bgGmlyIV88QWZwlS21QMwQ3/1TyU1jLI7w
b6tfEf8W9MHz9Nq8D0DMiPUAY1ghepMsWV2FZ2IRjBBGGBV5sSirIlJkBgYz
hpGPNOGNCwQ0w78ofr+DasPUCkn4EVXJ2Xyq0G7k6LBLRxuKp/IRq5NXx05Q
5UWar091fhaClIaPLjTUPnn1nRkGLvgFabspA1/kVnNcEb/XZMLAuJc5456e
MJuGg9HDLN28m6VbZOFJSxSAjZOIxXkyW641F8PE8bqcR7unwCbraBCO6/JH
vU/Ox3c584+3iETPxqE4ZIJwIX4UtBERQ4wDcVkRvXIl5bLiMbG27sGpQd8b
FfHQcmPzEtVoKq6KX9lKO8xcPA7bEdlO2rSrut6dF8EhUAoeFTHibIzkXYtM
txRQrLIRSdTZxQGHQhiPZZDDE1xRGV6zSNHiFJh4M6NJHfLsaMZ30ihfVrc6
n3qP+rpdXKYGFxT6Lw7jJTJqRwrtabBrkkzY1hsI/BqtqC6GyGeSc5gXYHt1
TaERQOVTlk08/zngNmestRivKYad20l1vSautkoK9L2FC7y7pif/RzBP3+CE
buKpgfpC6JIlCVUSy3sqPhhRMHOKU3SPHWHSCSiHBnMJNKYiSKppTdWQTmKQ
zwX3TEv8N04tTvhv6JL1CVIycuBSE8EyqQe5m9amKT2r6FmfGlVJZEIjsWt8
wgN3milEgkv0Q8uysyeb9y6KLfBTpVVQMlGvF4x49br1ln54ucIIn2kngMJG
lCAEMeSFg5dUburmxIoyMA7C5XakrLGBl0bAbGfKuj2NLIF1E/Jvje8TP4Se
JgJNscoOcBqQkyTL11IGRAgQIHBB2xuKHKVYjUl9R/57mAKtEmgdcphNxqqY
rGJ0ZCdGxV3fYV+e/Zi8HH2os8ttLc5N8qvXKOAkfZk+3UsE051ZhfhW1iOq
dh1PO8Qnp6j9kSzyJEGhpQiNg50MMTK/uly5qGxQD83qZ8pao8FBJWVbJogw
2SO8z4z/gOc11CNgHH3yRsCF2/VyaWQjJ3EfoScjPN/Qv0EaYmaXaaSH2Mmh
ZkUfcChaoZ0Pj9QpTTFLZyzRuF1jCg2KQEkOZxaWCYqdvrDoCQihm9iFjgqe
edazTjpGZu8UpM/XHZUHf04SyuNvhc/1yQKo9nmLOdyz5yIyb/ap7sS5vUsJ
ba9SH4CKlPjB5QiiShqZveEoDiAWNGmUkTyD0nonGfvizHY0uGWOSsNRNXXB
5M94MQ/2x887FjsGFErig9RFDdOZsEySJOEU0ZJkrWxFyvqFhWGgkYfAVN+j
589ZzJ972XEQ/lSt4su2smmqjDBqsKp9bEOgqB6JTcTcRSLwvXgSRqcEfMse
vGNcVavMptBEO0B3rg4S3G7LfZGf2CXtIDoqL6HYMGe+vBlnFzahslU5NnBY
KlvgqmxkWPdEvrxytrK9wG//HUhNRTO9YX3WEfjzBVzgipVX9gvcLKpPfETb
ImMEolRlVikTSvkSPxIaUDuCG6X9rHp0sER8oLG4I61H8c7USuLKh6WtmNFd
HhfYcFcETy2ucGJE8QKJNdeEQxFGmDaOqvVaQu9A/ybJNlAWMzaW+gorGuwU
aLccimyLvYS4iNVLVmjqgl2DeLp2Zlixv7ekmyyLzbyGGclloYUtjdyB/5T8
zkj7jNdk6zvgFnE/kW1cmRbBN+9YKb86gdNrb4rG64/WsI3LEa5tWQQBj0ZE
YSuoCCUEgbxEPsAPx9cQFirtAetGWAzzG4f3dSORTCyLUEFBC16X/1+ZO9Gs
5xJL15GoM1d1priOEwBuayoXwQsyS2aOHZ5F9tIXIBJdFoPmkotQ6U6PuC3u
KDFSbnl2E9xy4/uPB6PADysirkzitFSkMA4x8XpQTUBzPbWGY0/AL++EJnR4
2HWhBQP2eyPFZZteyLBTOTs7j/eMEpgyKp9pLnp4e9ohlMP0WAH5ZPn4hwXy
xA16Kl0dh04JofKRJ8TsV6l7ptTdvU/uC/PaXhiF67aRyFHgqnsY/7MWpVWY
kHVt1F7/dIk+QYG6ZMA9lyMSamBTOjvjZZq7owZP6/A1g1BMH1eTcZeZwkY6
voYhJw3RtKDBo5fKUwJ/6+V2BrcyiI0l+ogLsFLHwXj/q0OSVKU2jQ/V9YwI
Uwo88QzMvP2Dngzk5FJMGf2Jgfc7KmuVhEluYSJV4ajqXhaEdrLlunOiXCJO
V21zkxoXZpm5fO62TI4hiBlKLyqOWkJfdgKlpULdivJuk3pZETrvXYChZ+jv
aXRWqyqyQ1fXcPK8gD8esP1WSdJ2rEpiAZoO0MDdB0I1jQsPu9CFo0dWAqO2
U2Qc2F8CLaObdcPpRKLBCpnVHUfDWcGdgmydEDtlm5dAWo1E4QYPBrq4VAkZ
Ap6UK8uSkDEWWafQdiYwooWIiObGJ4aFG/I+XEcCgAhctnEmbvhZaG0zAR+2
NM7CvARbmcMwLiXWU25z+tkAZLIBiyPO2hRfIBIDu5dI4hrMTjLeCZVPlJQ/
CgS2eGUm1EvWqfKDFYtJlsSn4acBi9vWGRmr6u+tmm6vR2YgEnmuOqJfdGpD
G4qGJD98P37jaF/D09Yd0VNLH5FAjpQsSWDea61CtFzggtOoFBDbgIWzZ7iL
W3Qiab96D5YgMck6seN6sRY1BzvBWBz9FB7h0NGmtviI6jiGmrUY9buYbnz6
QkQHDU5bNXUR4K5GVm0Mzm7DozA2i6ontvkToGdlk1Gmfbs3zt+Ju4VkU9hS
uDbZkkcu0mTgNwTPE6oPwkPtOQ4X2qCcmSfMXuDV0HVikzJfqEzHbiWgEOOU
KnKLYiLgeimeZzdHtG3RCqTWWKCaWowXBR7wFPPX8fylMOO8XFyvbrwt3oZE
8i6u+fLqi0iwptN1g0qEw386TFpiLGFlqYBRZ1O/LuuRBtSyVb4AYoRVVEhH
RNp/V89BuB6oQOB8xWLduMYtsqkWf2hAi1ans8UcWy8jC1/DC1EK/2KgSFQS
ViNtGZWo9gtlLtPFQQtvFuMfm5PNwFjfARUngtaUBO41X1y6p0NbI78nCjag
regZaybVqhHbzBqLWBLvIHVIMaSzsIBXcMS+RG1UcxA3V76KKlcYUYd9lhLt
fXpjR5rPL9gG6aMsJRosCHMgthDEVr20edc/f+GVpjDeqSUdwuutI8wuvSl9
tBVQlZENLfsUiKPqtENWuCgxX7BoqvnG6mhS+8EcwJCrRth8FcL16U2NEhKO
BS9pWltEx7A2aawAivTu+VoUzq2qAJUUxNrlE9j0fTXDu9uqgdhX4kX65GV4
m9jnrPkSlj3iuGxUgWEKxOko4pE3gfOGVVkQJcjKpGhoeJiWg4ziBjMxBPbm
UmMhZcaVrg4tUcdtzvXSOfxR7ZEfnD3yFTVaqJtN/uT8w6u9LEjeJ0AEOObs
u6HTEiarKUcyqMibBSIo2TqZD7A5OnSQUyIJ0J5y7oJXxMfRDrhcjLNUOx9o
BI7W3ZvJRlIP7OIxzInoGZricURvpXEZPfS9Dh/M5VHQR9FX4bVmH6EjCon7
3sxG8rNkLZs98tZ91lYW7c5YDmJ86QbtwN3o+A77bdyIGGs0W2nDLprMHHHk
Wd4IhrZDLQu9EU2b6bqVHpJJrcS+fa0mjpGDWe/qahYujbEmpAixQ3zhdT4m
TL5W6FAG7u6ZBo4zAl4PA2JvZcxEuVZKt0I+O08b+3dMHo5fmxCyTmwG1dfc
Ohc6WEInsHoTUh6Db9fzOV4NuBWWawj/eaU20RTJIMjsCMFD9oNmq6oh3iH7
Rt+cIAjvP4x1druPZGt1dSP9xHigjwsgaETUgr4dNu4jrNxlTN90YSiaYb0k
WaFz/5iSEaCAHuZdchgq2SDbcErHr8Vs4QjoltJqhhrp/bHcoB+G1taGFvs0
+SMdzi6VyU27WayKn5LkM10ZqHIVAkz+qoZk3GjRVbLzkYXh/qbUBJ5Ocn+X
IlEGZr3itZkTKn+iGg2srTrIDpMOF9MJx/s0Gb9WN6barCkgXnoNN7ZlRvmM
JszCuBDZHONsgsRcTeRT6Ws7u3qIxgjOeBZlvTklg5xXpD4il6L0cDYC5cmU
p4GWr2dmIP01gKXX1wvKP63XqxZlKvcCDCTWmmEQxap2PSQXEvlVL0YuSjWu
7rQVQFLLw8CHwhGE5/ogYlhLsJnxlrEF6G2C2XHvKe5wwVdDqhF1IqmJTn5T
IkRa6VTAFiSVZDeCykD2PMEuJlilQdQ6H9JEIXEd5AsiVsPcJOoqg5rvLGjI
IDzLNVggSRgz61feCcnNr/D+s6+KQgqWDdWgskuiyhi8fgCaIbw5NnzMKwAZ
8eS+9x39oxhl47Ii1pyXTVNTfeqFaJaFFGtxPhYt+9p195tpUJpu8ciPxhor
ItXeEDjODOL8NRl3IzqFJ7Au8fWNrT2tVDFswsLHGzfcUHembXwSGZ24nQsW
cOZURBrCTEcCoqIZZyMufNH1sMSyCvL+uM1A3M7JLz5bFlXTWgOCRkTQK6p3
uXBGp4EMA0KXOdgO/PZL7uRkRRChsakA2vInjrSj6hReK2r0d0vnyo1WD6GA
T/J6DyU6VjbKvTPiynIl3wZPHbQHD4OIwpGtCLSqr5m1OFQzjn9eQZglyuKu
7daD4PuPdTE37k+rMUnMZ0r6yQLpp8vcgpgvocgm3FdiXIMkUHU8j8wBjDxt
A6mBEtCo8JN6+bYLZpTKAMLC95S4JpUaHjONRIAwNuGFC5ctGmt5R0YoKTQQ
Rz6ZYqdhiHQ+eOzqOa/OOOgTYUZRQi+fxiuNLklGfzPqWWX/VRgn7MMRu3V5
5Apk4etODWPxwuNWlHjQDf9OyEShVOfDZbgXmbXIBdzFR71uMrwVaMYWsU2H
9qHdHk+pRlbk3j93fDEzk+5aKe6uXTVr6mtGzogupw6993GnNryibnAT7kzi
SNbh4yg0bseOVJGpV76uCgHghq995oMDdAmV6yxTuTTAkko6yF0ABUFUPFt0
LUAN/V0JMfEACaDcHTcXajXRXNzIktlHxwNs8AGxGE3j5Eig4u54zUx2awiP
EimkprIQn+8UhFQfUf4Z4Je857P8ar2YFdQvYY6xrk01wfbUbHrbOmrVRhtA
jYmCw5DL6E6MsGFSkxOmYY2NovEyLZFXrdrty6DCh+kRJS2rc1+GQbhNfNJV
qlQeGa4zazFMbazH6B3sTIv/cWM29Y7sArUoLt12PkSggStiUZpmM8ifaL0Z
/nlvT/QtKlWi3LrSPll0eeBhQAStIO9k1UJyTVla2kF0SMhTyyq6NVjvKRbO
hue528OPFXFbRF+9YEa63xmUzyGeGapPaE6bV7gccwgqQgT28chGIYJ6wGrE
K1Z0Kh/UVjrXyshEHilM9aaez9igFZjI27wTP//IuH1bHskjTQ97YO1dtuiM
4fGR9eoleHgpbp7oTWslY0rN9HV0BSu5lBL9OwvdBh2QJG6xqGxWY5QZss51
ewjGdWpp7hZ5ElVcmPwZVvr1542FNYauppU3Sm2CmkSdapjbahLRktyI1Bcl
dYhBzSMu7kP1L1xCNdXzpjA3k760VZxk9nhJ0RBeokS7pEDaneeoalgEFgn4
O1JMGlMcC7NCt0LRlx7h8AvPStrelJSECEcukG+T4h0f8WmXnKcNYJJC3ala
IdjhCld4vVQbdtmTsAkgvt1UO+5dZSJwe9eSbR8rwJbHLDlsYJwH6qCJxPGB
t72769lbKiMYpeXT7Y33lKdrWy0cRmxYZ29fD1T3hc/c7oJJ85lr+xdXpiUL
n7izUpiBSyJvNI5o86aczBdEBrbFBpP0pWvR6FgL5Fp3VQQ4vMUcw8Cnh6/7
0dXgjTQoTJOAIWFNrqtznJe4uimldZ9J/Sh4H677HtJPsxMBABpoLhMN6xEN
tN0r88sADqHtPhDAoror6G7RW2VVJPQsxHaIHkB7COKq0MjoCiIF4UthQRtv
3XYJrcECuFWlVmv1pxibhqLqQX6YAIW2jUYBKTZ9LF51wGivqBHC1nuTS+V/
j51JmDH1zNMUrkcjSFK7qEbPb/I3hbZdT9Kuol0I6QoqtgU+uMdwv1lNKp9s
WFlIT0tBH99l1mf1OZbFpUS5xKvmKQMzNnvYSCedZiaNW6Io/1jcBHr6+a6/
MKjO+/5G8Dj81WIO6VlkSpI6qcu9buQGBiitMABOpDCnyPY5tONUomC4rJuG
2YqZJHdmkp4Ue4d1pkSCMQ+JoVFII9eY0wDtReB2MOqzu0m27IJvQqndxLWp
LAsMyaTMOBdTxP4wYtZlgNvpvRTiEnh7fMqxaGq6QnfTPXtTTYlQZIlXExJn
Z6ReO14gV36uiKqR8kHmqVxcHtErCINILKa9RI4/LoZoVuZMP5pYw+AyUQax
XYuEXS3O0RNM8ogdZik2Z0EfuJ85sslyextX3sknfvnq7TkWAEPO2XKLYptY
6kuVtya0Bl/Kwtpll5a12L32WTulg0Am6YF9xJuySvrXyIdzw43GMuMnctc6
dUSCMmE2deRpymjWIHogddaqqWMSdftobTrvatPZ52jTeVKbzkQpIXxMqvp9
luD/usU9StXPE6p+tl3Vf7g+7+mStW04m2kcZEDnHmu0blxvbfLmq8CCU+1W
ZUn8+cSnR7M5xTYs/QzzbpWu2jyhyHbiwZIqsFhnaQncjrmrCH6WrQNlqIco
i+Nfa1oq49uhlZ9Zqrlv9fiKKyhJuQpcoTnIDj+VVpivipXYNJJdi1ACc+UN
e9vMiH+IDi/V1oibirGBUkLskjXpueYmKLAswxSrTEsHBCkPJ8e+jJ80mdam
qqqGmAekeT29+cPF6Ozi5fk5iLdL+DcmVAMMzLNPfvin/f2j/RH99WKY49/H
B/TPp2esQePnE/7q2dke3+2bzRKpxpMvR1/yO4ev9obSHgp7mGLscAk//+u/
y+9Pv91LxTbw1uPGNtLFlX1tDXHVKgoNUTpGL46LxQak2JXviDMm1xe/XS3o
/bFpAsSHymd6qa6cNuXbRqmvxOrZWhuVV5zdlqULWl9iOtmM6Y9vjDtO4MXj
Gg1hB09XOWMufQA2llR7Jeh1oQXuwskEnzJTBt/p3+RJiErn9ChRTzReTzRd
LuG45+yO4cJ9WDDw/BLD0FtaeZDtQyFUceYQzpPvTt7dE18AMiLn5XNlN7zD
TRQ2LjpR3W5tvWND9VjxaovK6Vydxjx7zDfVbe9awATN4KNyoZ/fpywMUTcF
nQiPmhK1uFV5XTdiQwiXcrrTWz5MRIdFXmokBW05B/IoxLvrb0cG1o1BkzKJ
xsldOHHYZqw5N/J6MtJmVrD1BGZXcbqwc192Z/f0t8iE0Aqa+xkZ/UG6+M//
/E9gMnlAHwg9Tk9/m/8L/E+VeBBz/y3/cvwl/DemJTQIuufECMX5/iKGOSiI
eQn9XKCDLuzkg/REAx7YlKdh5Z2OfdM5dIDc23pVeqsFDtKWS0C/Vd3EkWPV
oksTycmPK0fvTCO5K77WHwdcsUkv3WHI9DbfVR6T0lx2yce6JZ8XbCoCdeoB
KYZJ4/qAwmHU2NsAObrPOKGGQkkx0k3pvQ+va0MJY5CEM55/cyc62dUaKzZL
OINh40CiiQGtF3O0e7iB56bQeJc9aXqQq7ToWuMMwmITvhTjx7JcBtuNSy9k
QUVnQoAE/piF+wC0RVqwP3/FdNeUUHMHHMtfHRQYvX5FsfC7nMddmpDCySwk
Q3KUHLpDW2pX2B1Tig1ZFGCrOgLCX83M8POgzw7g42GEj0OZy3sJAoBmJIgd
vt4Ln3PCoSBlWnrpCzsnGakjd1VxVzhjX7+vk7XERmHNr5FUE4saUNmKPzhS
98h8bFJmS701QRfIMOtZF+DLHLtFjKUJR4hajsD0opY+0UGtHtrkGlc4K32i
OHFaVktbrL8rNW48D6Pyd9NJbvxElUk7b/f1bwtOv1tRxhUaIQSz56ZryOKa
UbFsYK5AsvukHtKFlR/i87HChR5N4Owx6NWTAeObr1trWybCQbqMW8ACgvkA
nrCkngRnkv6iMpXuHkVOsU5XNFL1rF+VYpqVukflKKQ6tHZdjMzXXFC4FiMc
IiB7A6WUcOzhDonBqRrrQUFCIt6fIB/H61KH0GyLHh+4dsWm6S6Sgwi2Ds1c
BWQkdNhIgxofkarLUTsoAW5zzrL1uEEtR2BE8NS+U4HvzXcBcEVZulfMBztj
zKdFTOarUTINdXnoEYw1xtUJnQ8RNZE1pOVKdm7i765ZlBfxIpGK4+QpAxQZ
mgtEFktg4D9VpzGFGO7ezV1V3pfSI8OnI/LNMFWde6PPvI82FYPBku26oWzy
MMJTOr3EQX9SJaTQ7idxQQiimU7K0Th7kb3zgWfpg/ziu3c/vHlFRyYtWiSX
LNTlRDH7ItlW4+dAT/7EhsT82/M/f//61FaoD6v9U0tFqkkv6syY2qtwu2Gp
Z9KRarol8lPqOy/x/NWeRjL2KD/6HGFhBzW/PP0y9wip5jV9hxHU2WVdLYpd
zEPSSMLSUL5ZpYt2/hHG4Bwy04PhR7r77qew58ePzgKRFW1YgGXrsFhmigbO
0gN/dfz8RzEnhToDqK01GttRhuxrkBEpcCFWscnQaQaBMYM4jrO/ck+khMUH
l23N99UqtvicG8z4/uwvOIu1zAyjjOlMnhEDDCJZ0XLQCQcmqJmGVQ425Ph1
GrsPVRW0Rh/dpKuOcdMflUualBqxusY87gf7OCNewHjS3UxkKD7mUKd24QTB
VYuqpbDpcgX615qqUMqE7LGhukrdvu5i/ZNU6lTOfx4bUjNnSE0irBec49/2
3f/gIV1KFi3FJmLGXbykgxsaPmGvKNi2vu9gVraYS4h2Kqf2SHOpqPNUP1nh
EBm3WVKpnr54eoglf93orV2AegxPTPIl+x5Ztz0+OTqkMBNcap32LyJdD4vA
hrVft9onP3FFZOY5mk5rTz4uAx6b2qjaIL5GdT80mxIWoc2sNcx7ezk7pU5h
lwmpQEXewp4Chabs1cLFZMhldFiEbmQpYDhI09CBZpeeHMeF/8yEnSJ58FaD
KiGQUi4U1FP1sUM+ohpcQd03JBdhNcn0cCRnLurM2bnS/Xx/DooHfwrNlG7F
3g/E6bGmYZzrp6TZBtYVkPmQEY0liIYeuhwcbV1sKkaSGPdFfxdiu3RNYIvI
qb6y0zviNqWmioxIbUhRA5+gZNSzXSPp7zo6zGJ/V7Xa7fLKA5dX9vkurzxy
eWX9Li9G13mNP5zKD0dnvb6wTH1h+SOMs2HKszMnAp2WV8o+UOfSmywd/ReE
TC6yxBg2a9wFj/XgunU35dvdTVjNajEr0Z9g3F+G76cH3erXsUKNVNGSuQfL
pro7HWiogrfFvofvEXg/AGyJMTw/ODz59ImaL2HiesHlqIh68nZ4QN7I2Xwu
aGfZv4+7yWIfP9U0YNc5ngn1cdREH04TBIqHlgXp39J1dP9mYD3yCVgn8o6y
8PK7zKNhbLSJm14TI/AuLI8TBm1cyz4BMQOePF+Fq0OtV/1JOb4eDzOqlLMI
xsHdA6ZiFUJ6dI/3xjqKOlGwWBwdBSbJZj4TC24fiAAoTrmAbOtb9sc/R2uJ
Xi0WzBJd003lSeLixtfmVZruaz4ZKYnCQKgjtcs7AtHCxumSvttaN0KkKaNK
Yc6YVNmKQD0RrmgL6EqNvekwdiIbnVz1Sedtp2OaVtLVukL9i++otEFSuIai
KM3IOzTD8ckEAePazW0tWheso+7bQk/1XDYphj0FcJyodKApB1pok6u6mWE7
LVcABzFmyIyfHjvFYTBydoXqL9XuoU//+i9w2+njv/7beCA1+F2pPrNNWpuT
7Khvu7en3GAZAbxs6xVGiHecIy7ENnkCGkceHyvjTbR5B5x7kvtNJXRcxJe4
MH14nH/HUYMSd5bcFxUzGNiW6e562U7cPFsgVcXN0dmQSPAHco2rcdWGKRkD
p+BJeyQmtHv0MLwtHqcAW4aPdkGHIphxQHe8wl1hja0wEnaoamWaXvV4rp7H
nqusTG0/Kq+NhifXgzxlR8+eWLPiXq4tMyJDdUpUyZ50pJA915a0C/AdLaB8
FVD09WlnkSzhaDPgDizd2516mRfk1Kkn4c0dxx3OMhNGlVDqGT+tM4GInNxJ
vbKmw0TQFAhdcuSxG3kPXu7+fThImA7902G7l5H3twXOOjmE7Vkm/ZR5UgaW
3rSUSsgTsfYAvUwSgP9lnIUG4dBx64tyWLTxll/OIp4lKt2HbwzGHD6dJGIz
ZnJXLpgnqMQwDAz4oOlf5KCrTHx1LviC1j+o7xftwDAtsZ5nbFaQ5An/uuFE
k03fZRRq9y3bB1BojQmf9jLjI9HYJ6c1EtMFtdFGXFgycjA+Hh+MT4ZBGAZX
gkazCIXIWUqdxS2aNmTrqKahdzuI8JDzKtp2fet1qbhPDeXSotXvgi843oKr
oqJSDXBPUa+68tWkxNunGm5GgROzOD6k0zRqIi0ixODKQcw8LQEyM31tqKCU
XRJFrYbeUE66fWWze2FVr1Tvdv6FKBA1DBOTaERefJjWVm4LFxSDfPbkYK/P
GOsaXz853IurpSSsokPqZ492ZDX2Pzna22KOMTLeUpvZSFmiRNsUDH+jvXkb
WJje5eM8yJbjHBJnIgIFQP+5474W60h35vs6Od+TIMOWYxV1Tu/XGOffYBcu
L97vcv37UHGOyhIxKzSW7Q7jY4cIFiHQyB5q6Sg/B61rH3BAQIxKI/AZjV7r
Tg1zg/sgrJZc7fRKCsomQzLxJE7ZTgjHAdwuiMlOBmUH3jd6pZyt4Hn8KG/x
453Sm9ZyoLO1ZUXt7Z3N0mQqNT5subDVXYTa4qrP3NNkWARxWgnj0fjQhAYd
vXh+8unT187STGbccCrWfIEBr+DGyrxZMK8hu0cmDI6t3FTRsxM0MeTaFL09
wZxRMkSuq/V8PuKC7aqRo9edqu3PyAABSjX2rDX+V6fRUqr1jjmzh86Z75hT
TcCuKNwqAQXtwhi2y9sXsSeyZh+JwOT8DKvtmHvCuHTyeMw98Zh78kjMPfls
zFUMOnb4wz6Wr7NH4mbeh5vPXGwhj9yPmbuwhAhNiCUHh89HE+rJ8FAMcViJ
aalZJWiQ8pp1vL8wWYwLao6/K73vTEJcDL7tcithj6c0b3JsKfQyEQfpgCh0
I4WSiiZYOWeuaaJIHeMSfU5suXf2STpWH8+dnQ+p30vQH+Wq23mps+aX0onZ
ohQs9pyk7qB6Yn6eBx13nPnnfccPdJNA3fwllSoK+4lQLEDqafVkw+wmD/f9
cMsiRLVIzq0G04x6PrSKr6E3AOvsBz8zE+F+KtwMZT1fVZjdeieypcMJ8ZZw
1K6N1gbc67nI2vA8j/qaYA23HmzIIkCnN/uSUSFGBI5M6zmbL4Vcm6q05++D
kqM4LG4RHuX+we0N1m5uwn4ifLQvBXteiuiZ6IFDJt2XXyJOSJg7XmwH4G2I
gc0Q4NUhDs9iM4+v/YTSULkp7lRXjU6ZVz6m1JNi0WuJlJhdV83OHk+3AKwa
Wk3EWfpPx3l7mr//7d3BI954Tm8cPvyNo3164+jBb5ziV/DGMe3l59P8i6vq
+lS9maiT5ivsAfzbgWpOUYmF8YBl+TjlxJmjyftLkbUu5p7J5lb49a3yAU8f
6NN9UAifPjnlp/vOJWz8e/iYp0+O8eknhtjvPWi7X+E0D90uPH2w9dBjpHqx
Fanip59tRdr46aen0XYtVsFt7mDVuYuASuEVxfid32IQcJnf182s9YUAiqa4
borlzTh/8goYDmhNReXUIKwMW97v5VLAIAjNR8Ll20hbb7u79kWr5VI4Lszx
qazoOoZslVY7R1uIO8F2VnCBKX/GCgYDX1FYoyR4rkGg4g1cy8QBiXhuyQP/
fBbMDfOhacWYLicl7gYUWfaLUWlBX75P7f5Mbs2Gwx0Y0cH2mcmZWrPlDN7+
cQEaxo99g8Tt59xoXMDfjyaF4+MBMX7Y7ZvlSamSwb33mNb4lna5aV8bBC+P
BwqIMoQDjhXBIr1zgjVvG6aRVcI0ZI/CWNfQgLp941o0n7oXSJEtC0Ibdh2F
sJjA0Cj9c5xf1OLkkVmEsQJ/Bya5MhJSEGKjAMYwgKvOtuNa5uh8Njb1oBKy
h1xmgCbA8RjotqBO+wfVmTb1pa/izt2ByciWnz7/YApNj8g6gQrJJwkL3lVH
jlu9S0CZ07c6VTKinjmuTWZcTMOpFiZ3gYRax0FByQsKWCX9h4+oTZ3FTuHY
z6xhEIWr//a9du0IyxcUO2o6ctw5V8UAsrOrSEKifAAr/1gD5ecvltUsNB/i
1xqz7XoVdbQzF1JBhQXJEWoLAmVn0ym5la/nm2GeKH5bzO+LTWuDjKMB+ooa
eFtClsHaBZ932h0CL5wNhNEe5rjtsB+Ur4fRXVivbpz5WsVw221AcWCXjEp9
mLkIsFTe/jOuqgUUH2/P/QTIfQpA0qlF6ZrA9F/GEPP/vstoM8E03e5hN7Bv
A9nDL9zOgtTZYy8c5vlJY+qbaoniRWwwKZ3JpHvtxKjZbzBpOCtkXq5KFrY0
o+/rzPDGFGYVNJGKRdo9O6r+R63dohd9dFNJrSLixjYadQPMh9priHxo2ZM0
A0TvI3VudvX3I88xLdGtSKZE3JDBuVMFbJz98nRdg0qRcSapaqYDePlgkEvX
VXfTRa+NLanU6hZNrFJB3lREez9goLAkMbg7kDTmdAoJgjNlu03NqGYZG8mM
sJO0MjakqPpsFyThp7QjvA1D7ysM2jjSYtPupff+GO7gNiOk/VfYVsf3gE6a
Oz0Kt4xZdNYGUTlGbbqK2gSgFEPhhYiJFAnVVC2JpPA621kSl1zSryZombgK
mrmRSHhdLrCZGo/ec5OMU+vD65fvvv/+9dtXr1/FxNk3gJ4DEmknvHKWaaHz
aHBOdm/K+O4NrXcK1ZObBlvdDHvsNuMOXdBt714rgs/JfoFHNRNeN8ybYuVi
kftzoMz985c7ul6uYG/0sqtYSdFOrJC14iyXFFRgwJNNJplOZITm6ci8Pji/
eN8J2prIkcf0KXZcRi0vtvcyZplZG2reI1un2gv3BafUYNlO2DE2patWcv5c
MMJt5EvX5mLoVtqihpikpNGpaj0oXg324QTBDJV64Cnd/GLWjdqYdAbWy3nY
tt40bFR2PcwpzpXj5BIxcmGH6yDMbei8G4Ozi7db3ulI+SoqZJT+r1t0PTMp
ichaFbst+VwosvSTyQLVJuyNY7og0veXPoUglgDC2JM2/3FrtdkfeTIKjf6+
XN3UMx41HkXWivUyXFkGeun3ry9hCfgijwTiMvaNOV8s0SlRNCCIrkhqfcuV
P+GRqPtvT4dH2V5QmNDKXRz+J7lNqqso5kVjGVuivPCzWKzCcL7vucVirq0W
v6anPvUNyz+bYamMZji0SeYc/c9oOvz2fxyMx7/5nzpRcjmSh4w3jjry4XZ0
hafZaX7GKXayMy4fi20YOZFdNYE4KmExszVm2Qbg+zKGwWOVVyZCL2CkxNLx
/tDGx4rfyHH+iOnEP/rOgp0r4ft5FNzXsqQ+Ni6oKXMSoqn71yn/SaVcpTkQ
Zuw2xSZRZeZJu5dF3z7RzqIfNDkg2Il++8nZPSKwpioKmCoBTLXdwpmn/+i2
NLpbFdcOPCJA/Qg3qPgxbMboUhecaiC7ZNEyaGiIfh2SjGFofh8RxKxBpXRQ
c8vG1S8T2bJcmGzW+PS6W/UlNyiAp1gVmc/6Tp4376PSyvM/uoA3+P1HG8lL
WJ71X3isMyiRev33PXo+t7PpJUT9VPVSI0meOpzgW/pN0ZZfZ9tvPzDH4Nan
KAquIxinhzgpDXEhbl2iAcMTrbjk2MtosXFjPhsr8Hzs4xA42A+uQeinLjrA
k+WiVoFs+bakcEiNMwpTWRMtXvn3L4PiHeTkl3h9wf+A4phI7VbmH1sAyMu8
IMSor1izwY6FfmXOYJ35sghBnGm4EAywkFiLGO/eUlECEmu4BGYUa5mOmIyD
GdGoRKHcWRA4SboA0fYB2o4HamveHlA51JJWCPVoOZRXqJmCrkKVlu0IGz75
aFmpvAL6YyK6ASDCVI3qiHg9BPXiYk6J498mMSKgBN7r4G1bYo3bWdoiNj8z
zCnzhHQccjsEFTYswlHt3XgG8wBHSeSGiLt4E8dKijbkBVoo2prvBRM40Fns
970T+9I0CgwCDZarFRHFpfl0k9FoVmdYi8OML7EZKmada2KaDcBHoKX4vC9m
03dK7U3RxLVL+o7G+0S2nQpK/ltPJlITTIOWCFXcMXpvs7TtSYXRYtFbU+gm
Ln7ii2H3oLXVfroQsCoPX37ZRuaokzPmuJ1GtRtNkihQzx+tiPwj1S6XSsa0
wCvsDwiUbNN7GuRs6QQtuYJbquZnVs82HlJZ/9ccujK1tbS9iYBHlexdduTJ
7GqICTDnyzbvliolAy7mIooIw2OSxvltNecrEKmeV/T9KNBAr/TZXlXUU7ai
G1OmAVn0vW95BphcTn1Hc9mkqIc4pVuE6oijg71h3v/r4d5wy7tHnOHS/8Ax
q6C2enbWt3NS7RwpJKmhTSmh9PrnqKHWAP15+mh66dsU0/fvLh6kmXaxZITB
A7eqsVT0/NI/z+e/FZbMANeSpFKZRqybfFLPHMmlNco7UR5EVE0zXkUmNnBi
upIm4SNoBAf9mfRDnffKsO9I25F6nX0o/0NvmpEFnbQdiK9OALZ/9LpYrTch
5ebmvvlHP+Xp+b9OKcg+DOs0fyPtHBJOMzxMiVe+sYkvkUjKTQFyl/1j2Lu6
BUK/OWqtVZCD7iLcMH2eMkdbZ+Tmp7QqHbbeFf3JeWItn1GdT7uBU58eWv88
3GislPYzDdboqOZ0TkTFgjmyeuyhhmxCFg2Arf22lj7DvtWM2YOUz+7Ae6Ph
HWZ78ebMJN2NYZxF39YesDF3rCSbfM7Bpo5VRVE6WNT0wlIUPyquSmktv0FZ
fWsKpcA787JASCxKto1gurimdXRsa/27/TXta1j1y5YmJECnzXp73kgECqbU
UUnbFkJRyjMRVxo9MjERYrqGol1LUy8PcSYiZ+joGomMgSj3NRK1gOFCDlHz
w2BiHxBANX3YuLKqMzGz7xDxyhANfC8fqeWCgOMdZhSrXGzPQfSaivTz9veh
C0PXiCP/y4e/nFKgWrdkljMPTYmbrcVt6rIaxk+llt4XfdKZtbCFaGqsbJcd
Y5cPyFtwG9mhcH6ixk4Pp5/IPzKHH2ME9WaPp52qwZWa2JiVk4Kj/Qxii8h2
KUBKN8rrerCmIgXmSJDme9ZbCi0gD5ENMF4gLP2UDUm/idhHoEqG+QXBLB5/
xQTlEc8NY2205GnD3uJ+0sQ+eEJeonp8AxY15lWfhX0nbAk/iijDKgbiDg3O
v8R6bXJsnROhkYM78IDwNKrnhC+e99QUfPTZeO2LxrXMRQMjgYi8/vfzt388
e3P+6t+/PX/95tW/w+cfXv8oyNzFXxoKcDhR+1qNuj+SMhMtj8e7RVf6dent
JXlY2mHp23j1nAv1gTU+PUpSTdGv3YibS4WIaKw0rqZJo2Jo0KnV4agcKNf2
6L24fShiQi0LGse95xUQCv3qxP/a8AVFWV+Cje9YEO5pUcPHQbr5OpGQLoQ2
Ywmbo1kM/nbPJwCggOgfjbLM2P4+dPW7HLNrLmAf5OVmfDObdRyt8Olqlk9l
KVapHGoPVPjyJ9Ir8QSsFdPjhXEkcyq29SzT9H22M5Rm+51DmAoVOIdsLnnH
7cMWspT3LKiTFYti4607kira3W31GW1dmSSxBX329oxnC42pzrdlPFsmFzVY
/Q6DMufF5jtfilRED9l6oSWUHOpZOBlbsZo6zVB+RpbjXGT2OOJF3VsbNWgJ
gnE8zYYBuS4YVvyJQ3s5akWq7IVyFyWI2bi63MVndJq/wmp6Zh9vM+fEgh6f
tMbWeWOiY+2m8WEPgqohOQA5IwVF9EjFrSgTz1lBDbGNh6ZUC9ABqpJMyrDl
67qYc+XCOAfA1VXDwglkzFRKYYjzlXRkCSYSA7vunBtFa8dNfoDdALG2LONE
J6lOCHeJrP9WkzjzziKiSjlnlCMenh1Gu7Ufq2UnPQ4tHQ5rzxT3OjlKeygD
vFeRGXSl6s7Z9MJ0jRQMvukbd38PG2sm0c3vkxavMKGrekaJlMiyvyFezaWr
Dac2e3RFbJKnYHj0maelkvXoMNL0gU+gAK5Fko1cxg5M1ov9/pJuP36+GNjS
Kw9vDL7kc4M6l4InvI2wQtO/uXO020bYotDmOG1BhiFjA3qWOVAUdnvAQDz4
bScbjoNZDvn3w/D3A/idc0yGDrnT0Dg7oHHODuWYtsn9Nm5B+1ibM+SEW1vG
r9Me23kQaRwSEn01pKa8re/0uoer7lTap7DUYrpagHgkciUFAmM2VxsWH3Qs
+Cz/bRfoifk1HtKBRriAUFQ8ZhszfTb22XTiB3KFqfPinuOMbOcEIwN52k+1
zzOPfqYGpH8FhQM1nNu8EIdocbm10MEtQYlBBkHQ7810DCxTI3OlRDbZB78E
9YukKmhcZ+nS5yaYFbZatmF8QEVFgkpPvqLOaUh/NKRbCiBoLRjie2LrAf4W
Jju5Q/s6uOmakSMn1PNORmbI8q6eWwzF0m6rtQSa8X5bZy8yPwnvlPo+j+yo
6vMggjyWbg0mdmdR2Vjxjzc8eCdVrr9q82lOSTkHtno/f3c4BmVGAH0qokmn
VKZm46hqEVXS8rx2N5JkR2NxxKl7bSvgTvOdeR3HuIPpusFNK9nmHI9Tm4mS
QPl4X7gBBX23XpiSqp1bJCfuOdExlNrflNfFdGM7/TBG0xdcnB2t23N67BPn
ALiXe+uaYZFGrcAUWCKV5aXtlH1ExFlyCxCHFlOumuWKhEo9BRy2v9Dak9fv
L/ZSdkms5tYx6RipkrsjLZ1ZVpaSdbaV3hIWsJ0XXP8ElmBKhCpeMmg7ZSxJ
pNCq2MB4bhntacfB8qi+ha4Kpsi1gaAMPJVDRHmvXVXATyalDz8dR0eqwSw+
L87H5WXZlkqaQeWwuGFnZ2un2aCj5knQN3eJAYr/oT9kxwWOZWE5bCKmrzrx
p+QiclFF0i9B29E4+sSDapoTyaFawuQytvIrHqfF3V5mKDYu6eqe7mvqgcTt
mBI8IyYa1KBOUq9lCgWjSiJ21HNOaB8qXPiFoBNUIiqZC5JwQy1thpSnTrHz
aqolkm99tLs7WVksZOPhIjO7uihPUEW/ae37ewdxkRHevyMdx+K6l+/CLpND
CxS8VAvQNye23RlGrJgT9WXxwgQayk0P2lR0suOQm7WuaRTAHNTnXK6cQqe6
vllhxe3FtUA4bLusmyZkakteG+t+HAclSRNkRdAKRq4sjTQUijtnGM1TWg1l
cKYocaAkHFZQHlrIuCifoPIN576w01VKEYVBcSLeTIpm46se09WS4YL2Jrnr
0/TzFxqUw6zLJHXCb1r8VZ7R5FZ9WW+vSovclQRo7obbn9CRF+v5yspI6Voq
8iDw31Mp1bE/pv99tU//Pjk9PYXP8WvwPNdQIQtsXOEj8fRh79PPEk8fpZ4+
onI3iaeP008fnODjWl1EQcr6K0BWy4vIkWBqMoHMnMSAuszPfF8/Bm6BlHVR
YDHefwyAUyBLAviIn1YYwMJHO+FwZnYXwQIR1ckQr1winiuTRvqUx9lvyk2t
HeVF+dyGwVdAdW0Dg9Ad15f1iCXkMLMO/sLsLfhrWq8xJEKYNioeWCvFFQHz
rtcH1Bjyf2AO/AvmgP/KFPCJhncvxwfFePwNMI0PQH3yfMSP0Wf8M+p987ke
J71ycHh0/DT3A+T52z+kXyWkP9366svLnlcdBrmHw7/y/P1Z6tWj9IJPglcv
/5x+Nbng8NXv3zoMduF5gr7VMoHBDkX/6G1VfRX+9IrvxM6ATQ9QocT8Qucs
8hmQkpWaoMBeEvxMHOQ/PHfqYSQyAb3JLYpFDwYUJkekHN2Dzrzl8cPocQxB
2vL4UfQ4SFWrmy3PH0fPL0ANuOk9eaz08bCjTxD2L1s6McYBRAEfjDUYDZxc
F3SDsuXrwvgFwJSg/NIFt3KTX7fVTbKGo0mnLBFXIKyusmXdttVkHjfL6Cww
SjG+Ep+OueIDKiklBGngbHsoL3ez98f5N2s2Azl8t2NToXyDb4OgKpAbe+HK
NZOdSKJLOTBGNjvutE4I7lPec5/SPCXrv7WU3pu8svRND1/Pfp1ri39gAX1P
P/jumhtj7i+R+R2PH4aPnwRyweffrx6BoXPHqEhDourLq6qhhsWb/Mn5h1d7
KEw0s0j09ZDHdFBV6G0X6JQVzGQwaI9iLXMQW/vEGkMJo0vbmD1QZU8p4lLt
I3zdSMqwieOV5lPaftGKdUnpJIs0a3UbTr324eJwQE/BOkSRWqpeWJShMrsO
dBtpIMuQVMb1bTGZb9z1xEXVzXWxqP4mxVOovc2aCWBmvZiTco6OToWqmvcT
ZTkoVJb9UBUWr1hh1b1MF2gNCdLKIurk3aIhCkTApBFDYHRVNe3KpWxgZEM0
to9/kgax+iy3qb5Ra2bH95kgNdtc1t779gBB1FoGnF3EJpWl5IYnlT9EVUYl
PsNHPu0NgzOdGfHcJfz2TZ71T87ATpsQ+bw044Lt1A4ytGAp9NJZrANZkqzL
PnrlKOuZ8Xk63RMNOsfijKHhsRtv5RCwSJiQM7XYuuMO0ccYE5j9qwsk5GBZ
F626szPhuOpA3QaoDaUrFnaFH82mvksIPDSQ1i3ueuTGCmKwQEZogfwW1+UI
D2gKx4PY2xS3grnT5ZrZJvaN53E7feFNb3ab2OvKgtQmCoeGAWJScwpjZN/D
wBsO0KJ7muihLpAj1oulJ76aOQ6CWT9fHYwPsvy7ul2dIkuvx8JKxtP6NpMM
oIR/xA1C7pFh53cKQGPXSZ65ifLD/f383T9n+csa/T+r0RuqJ3yaHz5HNV2/
ZWfSjjlxXMqbGWDE0yA/1STwgaDOyDpy6JjhGfej/R7f+0QRuc4O2qYGjMbS
pHOQZ5uKBr9ZrZanX30Vw/Er7036SsYaDN3LvjQbjbHLFTXgFz/JAIPiV1pY
8WsuCt4NLtijFoVv4oowZOYrrihfPGJp8jqvy7+GRHVwmv9L+jiHCUD+m3/Z
5nwEm8H1SGGRQfB1LqFiNONYWN2YJB8/rj52knzMP/UpCz8YOE/bXwHS87r+
uF4qrKft3w/tgggHwqT3FZNH93/jMeHfKpPgZ5ZIHnh4fS8/4EhZeQwPNT7T
hx+pqKLJ8/wvO878VznPBx5nYhpqCseHpKp5dIxF7wsPv4pL0gJ/tctIduBf
6xpue+f/94N7/EXsO8Pg0HYcX/9N/XVGfwBKsAA9UtnW4cbj8IJH+apckpnh
ETih8+K0j0IM+2IaO7adrxeY+/FnG7wfAvQY0imh/u+4ezzcP5ALfg7hG8Oq
BeJ9GspQ1JNtyJvxfz45e5fWR6iaWWzgOv/wSj1dmOoR6rv60M+dWn8dM5U6
rykn0igvGl3rzVizvJhg74JqQfmsxva1x523MdeYtK1gLS5Eq7L1q51JKotN
UlYXHkpmtkSNRgHCztJg0ywkYCAu/OptDqZehkYUxwl1NgERI2SikHYTzM3r
PcP4oUWQJu123DFXP08VoSXnEsWrZbdlc03mKNh65+Vng8B4solqxFgje1Qk
0qTicg6ui7fsX++RX2+W+F5aFKZs8s+6mzyS7zFLLPMegcAk5WtduV1Wq25S
Qaf72uHRQPRsUrNTWozXuHsU7l592xKYrdo2FXbA/8Q6d6xyHx88z3Yo3HbS
LENqw7q2Up5BlIqE7FXIyc8+oohEqbQQ4egdvI0PHZXl4XTyrHw+Ozmavbgq
Js8OJi8mR8fTydWzk+Pjo5Ojg6dPjw/LgRL+7jyxVNKZY7o/LfcPjybPT549
L55NXpTT/f2jw+OTZ0eTF8/Lp8cnT09mB1cnswETRCSVNNsgyVwSSHBKyyJ1
AKZT75GsOIGk8jxeFHieXBOpp4/6nj6hlX7KmGL3Z48rPf7iIIdnfu4rsbOb
OO/IBCUyzIkMzu4vZl5r243pnVqxbQPikBCHLjwdpuu32x9oqBXZxHzhJRfQ
pwvnaG4mpaa0J9JkzafpcTS2WeAnj2t+CyGgajW9WvZ/ATWIL/3B04deeiOX
yNXXvYmMEfO2rjAXe1N3P/JMpPauDNnRrp1G/enhJO/p8f5/k7xfm+QNTu2x
dgmfHpqjbf704Kv3Z2nKePD3Dfv2Dz3DPvv7xn15+Vhie7iN2B7+6sR2izNt
K8HV4usdeuumNals1K+nX7g86RHWTjgXAoXlbjE8Eg03Yf08n80lcnBa5Iok
X+oM4VZHHRB75N8sKf/G6VWJNWNhJV+mzJQjs3luJnf5NpSX2cWO274tvcsr
60nGJenaJ3c9IIdxHLR3sZs8lnOoAp2lk3wZyPegDhAIuN5qnBOcEo2HMHhj
k88CuZkiWP7v5I7PHsofHskdEeY7uN/Rg57S8+vjklttz4/glM9OTv6bU/76
ygEaIJHn6PGcop21VzV4Lk+H7GiL0exBHPCEB/7ccZEDJtc7OFWOuoO5Hz0K
Ekd/NyQu/5we9++FxPdvHysLHG2TBY5+dVmgz+7qX9eQn7S1NQhfNBkfVj+T
Yhw9wkOCA6kFhoqqU6H7Vg1NGECmZDRl6klYc/gMh1JOehPxyoeAwJXE7eVI
8Pw/gBcdHh78Oryog80RPUD47XiGbX5bH9Jj7WFMj3IBpLDxkezr2fF/s69f
mX0dMBWGVfV7WPWnXd6dPoerfX+rwWzrIjB49/OmxyjhXUxo+8RHnz3x4S4u
tX3i479n4sexseNtbOwY2Nh30gUz7OXkq02n+RhwAGBezUY0EfTTs5VNFVVt
N5q8b6x9dUPvK1MoNMPc1ziCzlv7q3E5NnkCiSY5Jjs1I8NgbzOXLfyEl/iP
UG+ODn8dltKHihRln2IUW54/HPTpMi5U4zGU/+jwsxWXvJf0Wzb6OOLvKPOz
FwdPZ9P9wxf708Nn+0+Pnx9Mj18cFIeT46sr0LWPnx9OjqZXJ4cPpMxbD8A7
hh0QSbymjCWO1FNSs/VgesfBVCYZ50GUw0XDOhLylEkI+tkf7BPeLv2mA3ut
TGzMX10HuYndBaxQikOLjqsAJAJrk/ec1/MPMfI//ZXuOYYUnM6mh8lLLT8e
Px23zd2LLU+c4AOj6XyNTVee9933VMwCnsejrv/hi4duve/6b7t1HhxqRP45
gUmn+fE+/Ml/P9msMK+Cseo0fwrfvawBX/XyRQDcPuZBYsTD9IARvLePe5Ja
6oFbanC/fQmcl0EJHLjJ8MvFS8xiRtNwcPn7a6r0lte4QqMiaITkoaeSiKty
ulo3LnWPshAmBQdNUPVqTl+5KbVaja40i1b6xJU+ictY7+ngwbhUt4/q0s83
p1mxhgewKEMlyjOm7lw3UkmXVmUzq56wRBG/lQVvWZC0e8N8WSP2YnEOzJJs
q4YqLl6vqxl3D0cTqhuReld05+UicW4kzDG6BSV9ir1h0TKL1Z/vm3pxnTl3
arcURG7LP+xRtborzlso5mbHWWLm8idQ6+W8imAdLRbfoOS3uPgJzpp1Z102
1R1moRAPwY0CP2g0ZeyuqOamlLFLTqmmZZtJIbWCK+Vo0SYqlRNURVK5FMNt
XIMveRkbNUmOfV9FNluThY0QyHAqeA4LDsG0d/AVNl8FfF/BeluuGmKTXmyN
UH6BHc+8sqDiLy/al+y6pVLzd2Uxd8NzRk3VZAVg+h2BpsHiRZyj1pT11VBz
0m4L9GhglsuaCgXjaLc1CAPV3whRuNAAjLRaFdSlt1GkxMpd6+aurObzgppv
vKk+lvcVug6CGlSECWHtVgsvaadM3YFddaCi8WlAgFwNSBvNmu+/pOngfjOz
32nQWUGxh7sx+0L+Blu0ioqMkeHGJ6WHxxyBL0040EhVrhgHlusG98MjY4Nr
cpK4pBHEuWaFkAwgtVxPlAeha6Z24QIrWsQUu1w0Wt83oAc+k1HVDYeimaKZ
KQIB54SQxraZCzKntemaZdiNe7pu2fJmq+ahRrib/uRd+mOpwMBS2U7V6j0R
tXZTk3Cco3gcPMOmLHzVvIgc+LqymopGp0WgvKmub8j3eFtwZRrUPKmphK++
KCZObGaYBb0mzKJiJgLHO8rffxYELQU/xcTaaYFlCyZ22Q43bMsxqRlEZSax
oYpYdeFSz8sCrxaMAm/R4Dj/DHhPMWN6jdr1BsSEW8Dhv8q2kGZ7ocmRGimP
jth7V1czj7stPrDgvqhM6Jp6gjWRDJVVuBazermSatE54zLJ8yuZm8oOgqoR
t/fYgk9ctzxM9ad4zUUttZ2rWwrfpTb03JjR1pynVTIbdCXhEXNk4b4piQDa
lXOzrdjpIMgtrkhH48gYrhCfZF+nOQ6XcssHZx74ozfFhsqi5tiEEPvS5e+W
cMaaffwER93LzxfThltWzvMfljPqQPkDzcETji5wFa/vkN3RYE8uLl7vDRiK
z5+/UMR9mb6TIWaehdQjDwQqGD0owGdIPZJYMs97EQAGWdW3sD5H+81MeK7n
YoAxlbOoO7wFJo47r7DqP0Zbt0INooDaCdZw9Qm4qt8lKvbeUso0otMC4O/X
6gdDYTsgLbAILluxdOUNf/hwrjWzOQTcc2wpxrxx/e5yGCQxi2bG2rb1PA1F
tU0cvQPaclcV1GSByH1pZucXlFNICrqhPQjn/EwSaO8LMpcRwRC+LXSymODF
pGZ905rapwIJwZKIMT2qSdxSyYrq82VUiXfVYEYttlF1hwSrFPkAv0dVoJFh
zWiw1LoBaQQJhgxLFQVpPKTNPByNJUz8mmqzMXLOSsyeWFGkesvFN5N05cX4
MNXOF+8KRpdoqUEgUzcL7mUTqSwmDHzV1NRyEc9Y+S+N1FTtR33ohtFO4i76
612aFkX2Yjkq9fvXl6PbetbXvKi/gmFNV/IjxjYzLS7aSloRu1oF2D6yvl/M
a2AjQCqBySzW2LC4NU3FvAeNgDWd1g1eMWr2E15UYQF8V5PrFtyzveyYskr6
PTCbVUF1f/W+YDM/7dthSNEhXh6qZRvJPWrRVThESe3VtNT58SK71t4i+Gtl
G8ff3UKwlDRVCvyJ/ZmubnRuWyQENSH9Ysf4P6blWmmD64BQuVca5IMtyQtI
gki/19lN0AGxWDGzW3HN3LCqb22LdWvWufS69hFFWtYYADk047A5Leg40Cdn
ckAWNkEmCCqY4AuHwSHIjGdZrrNREUgXXJWBrltM6jVjcBHW0UZEXsT6gxyy
O2Crt9h2K3AoR9GRuKtJNXi1FfC2Q5AtmoPoHkJUMbgX/A5cjwc/xq3h+d7f
MNGyNyyclpQVVbRHaAcBZrPU0VQAxEUAJUtaPCYl0nKQOz/yiXkFU3kCZ7Y0
LACSGFYSf/fitlRVRRJbWxr9zNFnEFlOUBmO5Cy+Y6p5Sm12FatIOLt8c5Ef
gCbBoxwfn2CdcHiHvz+ksei3p4fuN6yuroPgv6lKU3mPEePcTIUwGkcoQOLG
Kg0cjECDLcprkEIZNku+tmjomGKvX67gjEQqtFH1VVa3el5s1PyN6VzaUlke
eSvTW9ElLL6dtaBJVIVda79dch9TedZwlMAwAVNSBWO32nDe4PZkO2aO7SIb
vTd2+ixk1V98kYKK78bbAat2AefCRQa4tAQDzqEP96Scs0sUuVwzX2rP+Mto
NMp+Yaj+kl+sJyv5pM3viLD8cjri/4NHrYb1S94xTMN3Uf8kN+GeztY/hDHr
y0Dpfr17lN8X7Udz/M4iiBhQjjHpD16FazCH0/jtAOhrCd/R/rFICnY4NcvL
MgWJ/th3FK4zaMsvUJ9ME27bA/8PSrx8u1+cBdAgy1Bh4gqZ3d9eL6Y1KQRR
SXf4vecnDlCesfg897qGlyp9nfqggzC1CzZohQJAKYTo8OkLwuG+CvOwnJ6f
LHfE6yOt/ogxLmb08Pp2qdxG6OV7tW1LfzCputyr1EVCMSW9EFsQU0t3tX19
mZlRtNyDg9gGtYN1y5BwNNc7thCGLHZLmPw9mtLaG2QT9m51J9U+ZfYpPZvW
Nnpuv859E98Yt3zrEAGIjk8eSuxnak40y4zqLsyXY6ip+rU+h2sNK7+reUBL
vEukNVZpRvs1VkRDaQbb34D4PZv52tjaNsVgGuWC+rtrdXeY+PviGtRsFuOf
tHvoG5K7kKOXpvQGCfdrCFfnjr1FUxNdavKx+rL6MW6pNQpVDhgQBXlnukSn
rpmTRIzviyk6f9ob/pGmgLtYhst9D5CD8/h/i9vl1wAW0IS9VbVmTWHKZayu
1g2BM4IEXr8zUi/bL5XXla6KqeA51eon2zi+gvaed2+R3Ig+S8x/4R+glfGg
D5riJZvucLVNPZ+X9JZLKnu9uAbqSu2B8ssCJK5va2rmi5td1adwoa5/V5Wr
q3HdXEuT4J2s/ucvUOLgnzo9XJyNgqQSBCPaV9mgiC+Q8kXxon26is4zGKaI
Nr/Az2PXcss7fcsQYFkysvnOkeNf8u+kT9pGDv/cpOb9YtgUUplX2vZD6yd6
Jsx8GGOtkFFLw0L8pzR03bNfU1KCnwd/29kyRDaGdSfCGU5+5RkwPNKPhEVI
/PhvkXg8YCgnCHTOyMkD6SOnmsCX3OVWcIzomtSDFH/JGIhLg73VKux6gK7B
Nl8vKjQcs0poKqK1TE0aKRgvEmGsqbIGXaNVDMakoOzWZdFUjWTWSKXHms3s
qVG4nc1L05t5AqApy0VXCPa3yFHs7VfNdHwekfQ/g40DuN4trBGhalt2warp
yJUI3DUF1aflvk5zpv03lambPOjsoDWvahMuI1E7rn/cNYahfcVbzW13LNvs
i1RaauqUsjConOcTjh6wRdC/MqDaaEpdeBIf9arqbtWPQLoJAEpLbm6YT5E3
3OWf0ZFer0FEBOrLIQTTBE7QPFl6Hqlt2t2QX0mW/UmX7b3IOxGpav1aVny8
/cugxsD3xAFnlRdZW8CPFuVTaqPILX0jcJrGbHhruM8jW2DiY7PQBpYc4b11
ALiqEAZJ1KhGXi12yGR51CmizzSVXEnSaKbr8b3peihJ2BDMrLPwWqwFlNj/
q8bYqkplT7o3KhayojLU7PG1bS8NZjGEfNRbtSpvWz/KTTn9SF3lgJAhaePt
kx0dta/eLVXUsXlNNi9l73ryK+5cktDy/RmKpbXtIAl7HLntSM4nyGAycFOZ
eYq+VfRGJVcYVMDE9qcFlrksUdyf2RrAljFI91XNAzkZIMHZKl6EO37gimiD
NmoFLcC4sLi1C+MDQqDbkarND8fcBPAw4bPMpKv21kO0CD/s0CRH57cQA0Uk
5rmumoHHN8eWCDsuSwxRfFU/4DKaUxHqnH9c1PdAIkW0GARA+l9kDqObuIH7
InFC03I+HwKFf0mO6Bpw3XTN2fOZ2rqy81aCkyKs1OY+CfLkbej8R0Hzv4Jw
RV0YyuxMlbcejMcUppBq7vN/ruq1ygghkTV9fTsLWNSnLLGWuzDDECkxSWLX
8zpahGKPjBYupAdUDkCdDSnKbJMSzIn9IKWVHw7IaLnOust/0lTuQQzUrd0M
h1QDxhrBpKNln0Nl7LF2UbuwOhC30Y6FDi62aOUUJcRNTlBT3TtlH41tZ2Z2
k1hq4BcgctJOm2ri9ad4qSK37th64C8CgTQaBVs59J+O1EJp2+qa6m5d4dGc
v778Fka/q+A9Nl4dHKKlHHCPaQxzCDbcOjhqJMl10bgC2FvwAq3WM+Gxfa4N
ZRcuQmqMDbVa3+gRxxc3XLAp18N2RsE3OTmnbJPwwooZrn8kDwFiJLF6x/YY
9uevKCCRevCKqjXRnhNULcYvy8QN3jhF1vgGN7bUzNiFc+AT6Mx2bkwDukxd
jLxB1zpbJBpH4slQ6na2+0622sacDCdiYszaDZlWyPwZ6FqBY11wFkYdLZgV
G21een3WGQmX6DFGeOIOq3Y5LzYMXbSxLK5bMe+SXUKsnGqeAIImtELid4Ju
BYn7tckCt1kkeln7EAqNpokpOr34pmt1co7s6wEiyh39NoxT7UPIxyLF6USA
DEUedtRmjvq5jojuGO3RhSiZP/F2TX59hByg3cOzuEqzeHv4CQ0OJV+c6CEc
f2jPIgEFGMuTW75ckYqgx0SuO+VRzhCE+PKeEo+z3H8rAIpF+e0qTKwyhIrv
pTq1om4JYc+/CHxokxVrdghojCcfzSldQfKmjc6gIcqgiFVF66t8YNhKoVVN
SKNxRrBT6Y/uQ2zpsha5oy6u/bpBtxn6QW6JImXio3bPk8LkaRBN4AY3fWi6
pWG6dQk1bKB3dp7bkrzsN49r3evLvcTcCy82nUP0M11kV9Nx4npNSrxAt6+y
vJDlzljgfvOha8Ec4/xC5NTkgOSExzAimHmwdX8DaVCOWiNFv1Ggq4uKYreC
XkvfOqF/QK9csv2Nfdz8VRwdRYMFbuiQgwUkzxkVXOxLQJqoE7fAW1g4wdwN
6xY4FIcJhpDSmpRVz8yVcsYNzs/oXTZKcJe7YCJRTzvO1BeVK+XOoILyG5JE
eNvNRqc///BqSD+a5hsmDF5+05gx6kgpQXjJ9XEQ1LahnNd9JgE1bYqkuwY/
GKXn21GM/T4UK7y7Kgfmq55O2nw/sDneaQeewP3+5wVzXHIjBXd9J/riIQC4
4NTJckTBk+xFcwKdezR9jK2u2kae0XX0OQRjF1GyKNm5ipyOTGs3pUViNtu6
ZXKso5wZof0iZXVmUxtcCJRa0W6PkRNDYdWw/VHVcJS8/lvt+YinGGFNl8JE
yv4GkwWW1mBuOdtpfgY8tJ6XxcILSg5c1VX3pJSgsKEHAbT0PuauUuuUnIjt
4sJ6UsbQzcWkmzNP2mm5KJqqhtufwNtp0TSMb5l0f+/6sE0mTCc+LB0bJipZ
NyYscOM6W3/8nGYOeSsgxT9H8hkByGcVTOtr7B21WEkYXP4EG/Je7TFd55Eo
Qnl6A2I14dOcXRs94W+wOm2RAwv7CYMrN2PxyITOb+fdi4PQ0la2oZrYqFAa
dyUtKEHifrHbqxfppungOfFG8jP4yK/kkdTZstBAn/RJ6rMuliT0ZdnYJJ0j
jtWNZ0nHKA2Z7lDeVSf6znRDEm8/JVKE+l2i7TSGuVI9HiyS/f7upFuRVN7F
KG9mUZnGAjfGvxBZx8P1mf0oQXL5sfgAZeKsKf2jSeuXwXhZLOeHCmb+MAWT
cjW8Jz3lRXYO/AvXSvsR/uHAsepiEMeYfCxGZznaB7lqnX81wLeUbzVAKw61
eqT+2wTWX6PsZg9XdkUMqFw8U1LlDc6V29znEuTjQ6cD43gagbqGt/x8RUzO
11AMyJ72oKT64Uk1XEVFnQgjT4A4sXIT48Vpales7jSNt7TfmqbsAGvM6Cqd
M4j52GQThPKM8+9K6bTeFaT56OiKsVHK5aiYbDHUU2rx+CVYEEUIWXa1XoEM
8zfW64KgooLWjCwnbAK368oy7+JMNBeYhVm0j9TTXAx0SFxYMYDhfdLHxJMc
dmzflRwMXOTXGGufnIA1ozlmQKLyXWkUAcst4uHboWsNMRJMw1jRALsUoc4g
btWM4E34q13ucc2ZrgQrHWglh1TnDIU2Lyj262Oe4m2VpHpwV1J47JwiHaK0
q/jZg1c9EouEwmlOS1PcOvmiE4sYJIEvYryiAKs+6672WOBQd5fIjefCUYqy
EM6+wLX4dGHdLKeIY9A7p+s9JMD9g7FQVy7PjQazCxITsjG0ohXzFm73zOWZ
2GCKo3H+ENEhjqnuFYa2C3DaQj4RtRwJO4YxdjssF8Z1HIaHOCYYmMnemmxj
CmnZjhAsUgaerMaawEjY5JPTDBGnZpi+uVmcKMWSIR5EN0gdA+7PpqjKzcvZ
NQsVP39RTD9K8Rm2q7SSNUeVg2npxeJj/qoAsfcl0rAnl/Xi+q9V/sOiogwA
aiZKmQfwa4tKqX3sq78U89I+qwy1ajjur5qsJV60zsuimSMoZk1xhRm3lzT1
pl4z8sMT/7sq6vzPVQEo+iQeeQgrwFW+qQBf/wx7/1MhdtI/Vn8tNtnv182k
WFT5kz9itCTn/UqI61WzrlaoVHuUB9rwpsCQrUl1zTCgJb4qFosNRl+Wf8uf
+MnxTF8Wt6CDFi3rrm/WcHRYi6WB+9UCOMp5eVVj9pwBQdauJxjmSoFQDbuV
rkDlnsCh0Cjt+hqUOwcgLGNRaxiFt/FkIP3l+A72osm/BRWBIsxcLp7BnVjK
oix7n4X78xdX8vbIvz3Ct0fl8nbkHhSM2TFa4MYLs4Tc6MCZM47HRRjq7N5U
065vbws29uEgFJeD7UDvbWNf0ITXt4ts6XoxR/4KGVb7JVODX34nD94Rgdos
KFw1rQqZcEsW5uubfA4q99yyy3hKghOl/GybMX/IjNmCiftdGUzIQgIbP8zM
Q4ktcv44ryYIhlAw6fXNqLuHX4AoM+1KThloCYIDnGgBkB0xp9uTbwLXiy7g
dSCrPnn9aq/zvg/iTL8kKSbJl0Sq/sW64cgo3rMAQpW+sfDHaCx26UVjOc7x
5PX7vXh5+qMbyOgAQLjSasHQAtD9ROvhn5jZj+InSJTsXR4myIYLg290XZoh
oxOEeTNuzA8dU/HrVwpFerEBhtUPOR68Y28eAR5smeG9qHm/6Axu1Y+Bw3c7
vc4GOjeLyp6Y8xGN4N0gXFknebXVePuLtXAOkzK1B1cQ78APh9Yik770w3tH
9EWl7mUCSV0b6TZo2v8fkozN8RWcAQA=
</rfc> </rfc>
 End of changes. 391 change blocks. 
2236 lines changed or deleted 1243 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/