rfc9274.original | rfc9274.txt | |||
---|---|---|---|---|
alto M. Boucadair | Internet Engineering Task Force (IETF) M. Boucadair | |||
Internet-Draft Orange | Request for Comments: 9274 Orange | |||
Updates: 7285 (if approved) Q. Wu | Updates: 7285 Q. Wu | |||
Intended status: Standards Track Huawei | Category: Standards Track Huawei | |||
Expires: 4 December 2022 2 June 2022 | ISSN: 2070-1721 July 2022 | |||
A Cost Mode Registry for the Application-Layer Traffic Optimization | A Cost Mode Registry for the Application-Layer Traffic Optimization | |||
(ALTO) Protocol | (ALTO) Protocol | |||
draft-ietf-alto-cost-mode-05 | ||||
Abstract | Abstract | |||
This document creates a new IANA registry for tracking cost modes | This document creates a new IANA registry for tracking cost modes | |||
supported by the Application-Layer Traffic Optimization (ALTO) | supported by the Application-Layer Traffic Optimization (ALTO) | |||
Protocol. Also, this document relaxes a constraint that was imposed | Protocol. Also, this document relaxes a constraint that was imposed | |||
by the ALTO specification on allowed cost mode values. | by the ALTO specification on allowed cost mode values. | |||
This document updates RFC 7285. | This document updates RFC 7285. | |||
Editorial Note (To be removed by RFC Editor) | ||||
Please update RFC XXXX statements within the document with the RFC | ||||
number to be assigned to this document. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 4 December 2022. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9274. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology | |||
3. Updates to RFC7285 . . . . . . . . . . . . . . . . . . . . . 3 | 3. Updates to RFC 7285 | |||
3.1. Updates to Section 6.1.2 of RFC7285 . . . . . . . . . . . 3 | 3.1. Updates to Section 6.1.2 of RFC 7285 | |||
3.2. Updates to Section 10.5 of RFC7285 . . . . . . . . . . . 4 | 3.2. Updates to Section 10.5 of RFC 7285 | |||
4. Backward Compatibility Considerations . . . . . . . . . . . . 5 | 4. Backward Compatibility Considerations | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 5. IANA Considerations | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | 6. Security Considerations | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 | 7. References | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 7.1. Normative References | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 6 | 7.2. Informative References | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 7 | Acknowledgements | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
The cost mode attribute indicates how costs should be interpreted | The cost mode attribute indicates how costs should be interpreted | |||
when communicated in the Application-Layer Traffic Optimization | when communicated as described in "Application-Layer Traffic | |||
(ALTO) Protocol [RFC7285]. The base ALTO specification includes a | Optimization (ALTO) Protocol" [RFC7285], which includes a provision | |||
provision for only two modes: | for only two modes: | |||
"numerical": Indicates that numerical operations can be performed | "numerical": Indicates that numerical operations can be performed | |||
(e.g., normalization) on the returned costs (Section 6.1.2.1 of | (e.g., normalization) on the returned costs (Section 6.1.2.1 of | |||
[RFC7285]). | [RFC7285]). | |||
"ordinal": Indicates that the cost values in a cost map represent | "ordinal": Indicates that the cost values in a cost map represent | |||
ranking (relative to all other values in a cost map), not actual | ranking (relative to all other values in a cost map), not actual | |||
costs (Section 6.1.2.2 of [RFC7285]). | costs (Section 6.1.2.2 of [RFC7285]). | |||
Additional cost modes are required for specific ALTO deployment cases | Additional cost modes are required for specific ALTO deployment cases | |||
(e.g., [I-D.ietf-alto-path-vector]). In order to allow for such use | (e.g., [ALTO-PV]). In order to allow for such use cases, this | |||
cases, this document relaxes the constraint imposed by the base ALTO | document relaxes the constraint imposed by the base ALTO | |||
specification on allowed cost modes (Section 3) and creates a new | specification on allowed cost modes (Section 3) and creates a new | |||
ALTO registry to track new cost modes (Section 5). | ALTO registry to track new cost modes (Section 5). | |||
The mechanisms defined in [RFC7285] are used to advertise the support | The mechanisms defined in [RFC7285] are used to advertise the support | |||
of new cost modes for specific cost metrics. Refer to Section 4 for | of new cost modes for specific cost metrics. Refer to Section 4 for | |||
more details. | more details. | |||
2. Terminology | 2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119][RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
This document makes use of the terms defined in [RFC7285]. | This document makes use of the terms defined in [RFC7285]. | |||
3. Updates to RFC7285 | 3. Updates to RFC 7285 | |||
3.1. Updates to Section 6.1.2 of RFC7285 | 3.1. Updates to Section 6.1.2 of RFC 7285 | |||
This document updates Section 6.1.2 of [RFC7285] as follows: | This document updates Section 6.1.2 of [RFC7285] as follows: | |||
OLD: | OLD: | |||
The cost mode attribute indicates how costs should be interpreted. | The cost mode attribute indicates how costs should be interpreted. | |||
Specifically, the cost mode attribute indicates whether returned | Specifically, the cost mode attribute indicates whether returned | |||
costs should be interpreted as numerical values or ordinal | costs should be interpreted as numerical values or ordinal | |||
rankings. | rankings. | |||
skipping to change at page 4, line 10 ¶ | skipping to change at line 139 ¶ | |||
It is important to communicate such information to ALTO clients, | It is important to communicate such information to ALTO clients, | |||
as certain operations may not be valid on certain costs returned | as certain operations may not be valid on certain costs returned | |||
by an ALTO server. For example, it is possible for an ALTO server | by an ALTO server. For example, it is possible for an ALTO server | |||
to return a set of IP addresses with costs indicating a ranking of | to return a set of IP addresses with costs indicating a ranking of | |||
the IP addresses. Arithmetic operations that would make sense for | the IP addresses. Arithmetic operations that would make sense for | |||
numerical values, do not make sense for ordinal rankings. ALTO | numerical values, do not make sense for ordinal rankings. ALTO | |||
clients may handle such costs differently. | clients may handle such costs differently. | |||
Cost modes are indicated in protocol messages as strings. | Cost modes are indicated in protocol messages as strings. | |||
Future documents that define a new cost mode are strongly | For any future documents that defines a new cost mode, indicating | |||
recommended to indicate whether that new cost mode applies to all | whether that new cost mode applies to all or a subset of cost | |||
or a subset of cost metrics. This recommendation is meant to | metrics is strongly recommended. This recommendation is meant to | |||
prevent non-deterministic behaviors that may result in presenting | prevent nondeterministic behaviors that may result in presenting a | |||
a cost mode with a specific metric, while such an association does | cost mode with a specific metric, while such an association does | |||
not make sense or can't be unambiguously interpreted by ALTO | not make sense or can't be unambiguously interpreted by ALTO | |||
implementations. | implementations. | |||
If the definition of a cost mode does not indicate whether that | If the definition of a cost mode does not indicate whether that | |||
cost mode applies to a subset of cost metrics, ALTO | cost mode applies to a subset of cost metrics, ALTO | |||
implementations MUST be prepared to accept that cost mode for any | implementations MUST be prepared to accept that cost mode for any | |||
cost metric. | cost metric. | |||
3.2. Updates to Section 10.5 of RFC7285 | 3.2. Updates to Section 10.5 of RFC 7285 | |||
This document updates Section 10.5 of [RFC7285] as follows: | This document updates Section 10.5 of [RFC7285] as follows: | |||
OLD: | OLD: | |||
A cost mode is encoded as a string. The string MUST have a value | A cost mode is encoded as a string. The string MUST have a value | |||
of either "numerical" or "ordinal". | of either "numerical" or "ordinal". | |||
NEW: | NEW: | |||
A cost mode is encoded as a string. The string MUST be no more | A cost mode is encoded as a string. The string MUST be no more | |||
than 32 characters, and it MUST NOT contain characters other than | than 32 characters, and it MUST NOT contain characters other than | |||
US-ASCII alphanumeric characters (U+0030-U+0039, U+0041-U+005A, | US-ASCII alphanumeric characters (U+0030-U+0039, U+0041-U+005A, | |||
and U+0061-U+007A), the hyphen-minus ('-', U+002D), the colon | and U+0061-U+007A), the hyphen-minus ('-', U+002D), the colon | |||
(':', U+003A), or the low line ('_', U+005F). Cost modes reserved | (':', U+003A), or the low line ('_', U+005F). Cost modes reserved | |||
for Private Use are prefixed with "priv:" (Section 5). Otherwise, | for Private Use are prefixed with "priv:" (Section 5). Otherwise, | |||
the cost mode MUST have a value that is listed in the registry | the cost mode MUST have a value that is listed in the registry | |||
created in Section 5 of RFCXXXX. | created in Section 5 of [RFC9274]. | |||
4. Backward Compatibility Considerations | 4. Backward Compatibility Considerations | |||
ALTO servers that support new cost modes for specific cost metrics | ALTO servers that support new cost modes for specific cost metrics | |||
will use the mechanism specified in Section 9.2 of [RFC7285] to | will use the mechanism specified in Section 9.2 of [RFC7285] to | |||
advertise their capabilities. ALTO clients (including legacy) will | advertise their capabilities. ALTO clients (including legacy) will | |||
use that information to specify cost constraints in their requests | use that information to specify cost constraints in their requests | |||
(e.g., indicate a cost metric and a cost mode). An example of such a | (e.g., indicate a cost metric and a cost mode). An example of such a | |||
behavior is depicted in Section 9.2.3 of [RFC7285]. | behavior is depicted in Section 9.2.3 of [RFC7285]. | |||
If an ALTO client includes a cost mode that is not supported by an | If an ALTO client includes a cost mode that is not supported by an | |||
ALTO server, the server indicates such an error with the error code | ALTO server, the server indicates such an error with the error code | |||
E_INVALID_FIELD_VALUE as per Section 8.5.2 of [RFC7285]. In | E_INVALID_FIELD_VALUE as per Section 8.5.2 of [RFC7285]. In | |||
practice, legacy ALTO servers will reply with the error code | practice, legacy ALTO servers will reply with the error code | |||
E_INVALID_FIELD_VALUE to requests that include a cost type other than | E_INVALID_FIELD_VALUE to requests that include a cost type other than | |||
"numerical" or "ordinal" for the "routingcost" cost metric. | "numerical" or "ordinal" for the "routingcost" cost metric. | |||
The encoding constraints in Section 3.2 do not introduce any | The encoding constraints in Section 3.2 do not introduce any | |||
interoperability issue given that currently implemented cost modes | interoperability issue given that currently implemented cost modes | |||
adhere to these constrains (mainly, those in [RFC7285] and | adhere to these constrains (mainly, those in [RFC7285] and | |||
[I-D.ietf-alto-path-vector]). | [ALTO-PV]). | |||
5. IANA Considerations | 5. IANA Considerations | |||
This document requests IANA to create a new subregistry entitled | IANA has created the new "ALTO Cost Modes" subregistry within the | |||
"ALTO Cost Modes" under the "Application-Layer Traffic Optimization | "Application-Layer Traffic Optimization (ALTO) Protocol" registry | |||
(ALTO) Protocol" registry available at [ALTO]. | available at [ALTO]. | |||
The assignment policy for this subregistry is "IETF Review" | The assignment policy for this subregistry is "IETF Review" | |||
(Section 4.8 of [RFC8126]). | (Section 4.8 of [RFC8126]). | |||
Requests to register a new ALTO cost mode must include the following | Requests to register a new ALTO cost mode must include the following | |||
information: | information: | |||
Identifier: The name of the ALTO cost mode. Refer to Section 3.2 | Identifier: The name of the ALTO cost mode. Refer to Section 3.2 | |||
for more details on allowed encoding. | for more details on allowed encoding. | |||
Description: A short description of the requested ALTO cost mode. | Description: A short description of the requested ALTO cost mode. | |||
Intended Semantics: A reference to where the semantic of the | Intended Semantics: A reference to where the semantic of the | |||
requested cost mode is defined. | requested cost mode is defined. | |||
Reference: A reference to the document that registers the requested | Reference: A reference to the document that registers the requested | |||
cost mode. | cost mode. | |||
Cost modes prefixed with "priv:" are reserved for Private Use | Cost modes prefixed with "priv:" are reserved for Private Use | |||
(Section 4.1 of [RFC8126]). This document requests IANA to add the | (Section 4.1 of [RFC8126]). IANA has added the following note to the | |||
following note to the new subregistry: | new subregistry: | |||
Note: Identifiers prefixed with 'priv:' are reserved for Private Use | | Identifiers prefixed with "priv:" are reserved for Private Use | |||
(see [RFCXXXX], Section 5). | | (RFC 9274, Section 5). | |||
The subregistry is initially populated with the following values: | The subregistry is initially populated with the following values: | |||
+============+=============================+============+===========+ | +============+=============================+============+===========+ | |||
| Identifier | Description | Intended | Reference | | | Identifier | Description | Intended | Reference | | |||
| | | Semantics | | | | | | Semantics | | | |||
+============+=============================+============+===========+ | +============+=============================+============+===========+ | |||
| numerical | Indicates that numerical | Section | RFCXXXX | | | numerical | Indicates that numerical | Section | RFC 9274 | | |||
| | operations can be performed | 6.1.2.1 of | | | | | operations can be performed | 6.1.2.1 | | | |||
| | on the returned costs | RFC7285 | | | | | on the returned costs | of | | | |||
| | | [RFC7285] | | | ||||
+------------+-----------------------------+------------+-----------+ | +------------+-----------------------------+------------+-----------+ | |||
| ordinal | Indicates that the cost | Section | RFCXXXX | | | ordinal | Indicates that the cost | Section | RFC 9274 | | |||
| | values in a cost map | 6.1.2.2 of | | | | | values in a cost map | 6.1.2.2 | | | |||
| | represent ranking | RFC7285 | | | | | represent ranking | of | | | |||
| | | [RFC7285] | | | ||||
+------------+-----------------------------+------------+-----------+ | +------------+-----------------------------+------------+-----------+ | |||
Table 1: ALTO Cost Modes | ||||
6. Security Considerations | 6. Security Considerations | |||
This document does not introduce new concerns other than those | This document does not introduce new concerns other than those | |||
already discussed in Section 15 of [RFC7285]. | already discussed in Section 15 of [RFC7285]. | |||
7. Acknowledgements | 7. References | |||
Many thanks to Benjamin Kaduk for spotting the issue during the | ||||
review of [I-D.ietf-alto-path-vector]. | ||||
Thanks to Adrian Farrel, Dhruv Dhody, Luis Miguel Contreras Murillo, | ||||
Sabine Randriamasy, and Qiao Xiang for the review and comments. | ||||
Special thanks to Kai Gao for Shepherding the document. | ||||
Thanks to Martin Duke for the AD review. | ||||
Thanks to Roni Even for the gen-art review, Jaime Jimenez for the | ||||
artart review, and Stephen Farrell for the secdir review. | ||||
Thanks to Robert Wilton, Lars Eggert, Francesca Palombini, Roman | ||||
Danyliw, Paul Wouters, and Murray Kucherawy for the IESG review. | ||||
8. References | ||||
8.1. Normative References | 7.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC7285] Alimi, R., Ed., Penno, R., Ed., Yang, Y., Ed., Kiesel, S., | [RFC7285] Alimi, R., Ed., Penno, R., Ed., Yang, Y., Ed., Kiesel, S., | |||
Previdi, S., Roome, W., Shalunov, S., and R. Woundy, | Previdi, S., Roome, W., Shalunov, S., and R. Woundy, | |||
"Application-Layer Traffic Optimization (ALTO) Protocol", | "Application-Layer Traffic Optimization (ALTO) Protocol", | |||
RFC 7285, DOI 10.17487/RFC7285, September 2014, | RFC 7285, DOI 10.17487/RFC7285, September 2014, | |||
skipping to change at page 7, line 25 ¶ | skipping to change at line 271 ¶ | |||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
<https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
8.2. Informative References | 7.2. Informative References | |||
[ALTO] "Application-Layer Traffic Optimization (ALTO) Protocol", | [ALTO] IANA, "Application-Layer Traffic Optimization (ALTO) | |||
2 March 2022, <https://www.iana.org/assignments/alto- | Protocol", | |||
protocol/alto-protocol.xhtml>. | <https://www.iana.org/assignments/alto-protocol/>. | |||
[I-D.ietf-alto-path-vector] | [ALTO-PV] Gao, K., Lee, Y., Randriamasy, S., Yang, Y. R., and J. J. | |||
Gao, K., Lee, Y., Randriamasy, S., Yang, Y. R., and J. J. | ||||
Zhang, "An ALTO Extension: Path Vector", Work in Progress, | Zhang, "An ALTO Extension: Path Vector", Work in Progress, | |||
Internet-Draft, draft-ietf-alto-path-vector-25, 20 March | Internet-Draft, draft-ietf-alto-path-vector-25, 20 March | |||
2022, <https://www.ietf.org/archive/id/draft-ietf-alto- | 2022, <https://datatracker.ietf.org/doc/html/draft-ietf- | |||
path-vector-25.txt>. | alto-path-vector-25>. | |||
Acknowledgements | ||||
Many thanks to Benjamin Kaduk for spotting the issue during the | ||||
review of [ALTO-PV]. | ||||
Thanks to Adrian Farrel, Dhruv Dhody, Luis Miguel Contreras Murillo, | ||||
Sabine Randriamasy, and Qiao Xiang for the review and comments. | ||||
Special thanks to Kai Gao for Shepherding the document. | ||||
Thanks to Martin Duke for the AD review. | ||||
Thanks to Roni Even for the gen-art review, Jaime Jimenez for the | ||||
artart review, and Stephen Farrell for the secdir review. | ||||
Thanks to Robert Wilton, Lars Eggert, Francesca Palombini, Roman | ||||
Danyliw, Paul Wouters, and Murray Kucherawy for the IESG review. | ||||
Authors' Addresses | Authors' Addresses | |||
Mohamed Boucadair | Mohamed Boucadair | |||
Orange | Orange | |||
35000 Rennes | 35000 Rennes | |||
France | France | |||
Email: mohamed.boucadair@orange.com | Email: mohamed.boucadair@orange.com | |||
Qin Wu | Qin Wu | |||
Huawei | Huawei | |||
101 Software Avenue, Yuhua District | Yuhua District | |||
101 Software Avenue | ||||
Nanjing | Nanjing | |||
Jiangsu, 210012 | Jiangsu, 210012 | |||
China | China | |||
Email: bill.wu@huawei.com | Email: bill.wu@huawei.com | |||
End of changes. 30 change blocks. | ||||
102 lines changed or deleted | 98 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/ |