Re: [alto] Ben Campbell's Discuss on draft-ietf-alto-cost-calendar-09: (with DISCUSS and COMMENT)

"Randriamasy, Sabine (Nokia - FR/Paris-Saclay)" <> Fri, 08 February 2019 09:44 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 49FE1129BBF; Fri, 8 Feb 2019 01:44:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 3bPbUIXVpygf; Fri, 8 Feb 2019 01:44:20 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 89368126F72; Fri, 8 Feb 2019 01:44:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=selector2-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hQsC54/VkIEd4uC3bE8wVnn33MSc4Dowddd3dtp+tRI=; b=GqtQVXwg+dnpvYyDzq3NrK29ME+jFk7Qq0nU/0DHagQzmFpi7pQWOhkC0CW56JQ6er67lyWDDAo32xLKTE/q/5riVxIOXQbukJtFLsc0Vpfiwh6scW6UsmNemUgqtKS4qwOUX2EgQwsvRrnC1a+QnfECpnB+nBUG32hYx8o0qlw=
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1601.16; Fri, 8 Feb 2019 09:44:17 +0000
Received: from ([fe80::5c0b:728b:7ba3:9d74]) by ([fe80::5c0b:728b:7ba3:9d74%5]) with mapi id 15.20.1601.016; Fri, 8 Feb 2019 09:44:17 +0000
From: "Randriamasy, Sabine (Nokia - FR/Paris-Saclay)" <>
To: "Randriamasy, Sabine (Nokia - FR/Paris-Saclay)" <>, Ben Campbell <>, The IESG <>
CC: "" <>, "" <>, "" <>, Vijay Gurbani <>
Thread-Topic: Ben Campbell's Discuss on draft-ietf-alto-cost-calendar-09: (with DISCUSS and COMMENT)
Thread-Index: AQHUjFQc+SFm9mAu9kKvZCJJnixQr6WqEEeAgCvZdOA=
Date: Fri, 8 Feb 2019 09:44:17 +0000
Message-ID: <>
References: <> <>
In-Reply-To: <>
Accept-Language: fr-FR, en-US
Content-Language: en-US
authentication-results: spf=none (sender IP is );
x-originating-ip: []
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; AM4PR07MB3428; 6:0bJuQAOtfEDfrXnjeSkCO5TvZUVTUUi+f19/xm0P9JMGotk3xNvcDvqFb/vXsUtYjP17DoGv71T0dBgS8gZRM6dn8DF8NHtHj4Hd8DKb4GblQnIInrHqteIhOOz6x8Rjc5LBzdMfyjMVntelBNqz0ZoOHL6SuFB6LTwcrDsTeTsEzGAQxYHKUsGt35MhbmVJw6THG5XKVUYOybVEo12j2MSHsm+QbAhoc61yge4//SqHpt5+aVCLoSZmErL5IxXWkWJI3IPQN3LVkJJPWjlyT3R6PzNVOpFMT89LgMW741mOxiTqC0EL/33aDtc+PaOK/QEg5t43yu9fHCOOhWQ98XJPVdAjK7t1L4RVG04YXqO6EwyD88rSNP/XyZHXB6ZNQZMYp/khx9G/Mu3HE/7m2VvmlNeYbaQhZ0TcPgzcJCy8Cxu33Dl6hO4BTMjZOVb/RA98vej1H6pGJPou4K24tQ==; 5:xjbHpupadvK8EmPiqjeEMO3KA1BZamvqV+ZlbdIA5bkuNsZG0fqBZ0xZItuc4GA0aPwDBW8fLhYDazuLQRTR/VoHy6ZUvnQPoBXNVyXZ6ZQ1gtXXNSN15EiqVlZtYHl21yDKxKljAd2tzd5se4z7TstrYbQSXcZFoMrwPiskrOhiLQvseN3bwPpDzC9KKCn4GSjWdypQlEUAE804M0LqIA==; 7:TTRSt2r+27najZhD3wH6/lOFrofw/COhCKppVPD47TCPz4kbBRX3qMlnviXvcoWYxdUI6++r8BYx/5EsVkHR6C67EVgItB1DSB+ahnD8Bpvp+Q2ATeUqDrGbbiNxHEFlz+86kpaobTWut+9k2pyreA==
x-ms-office365-filtering-correlation-id: 45e4084c-fbd6-4586-681c-08d68da9fe23
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020); SRVR:AM4PR07MB3428;
x-ms-traffictypediagnostic: AM4PR07MB3428:
x-ms-exchange-purlcount: 3
x-microsoft-antispam-prvs: <>
x-forefront-prvs: 094213BFEA
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(376002)(136003)(366004)(346002)(39860400002)(51914003)(199004)(189003)(13464003)(86362001)(476003)(54906003)(14454004)(6506007)(53546011)(6116002)(11346002)(102836004)(486006)(99286004)(14444005)(256004)(25786009)(305945005)(110136005)(66066001)(66574012)(97736004)(4326008)(7736002)(6246003)(6436002)(26005)(186003)(8936002)(81156014)(8676002)(30864003)(316002)(81166006)(446003)(3846002)(2906002)(68736007)(53946003)(106356001)(6306002)(966005)(71190400001)(7696005)(71200400001)(53936002)(229853002)(74316002)(33656002)(55016002)(76176011)(478600001)(105586002)(9686003); DIR:OUT; SFP:1102; SCL:1; SRVR:AM4PR07MB3428;; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:0; MX:1;
received-spf: None ( does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: BQlVCnd4Fw6RFK2aD4ml1lNZGTgBipUtmHDy44Fkn7Rt65sNacGlf6MUU+/iJpA7h+VQScqPO7/SeMaAXgg+aAdqVWFRHaQSPM86caF6PW+oAAh3R9sdUWHIC8Ea/t4OMOaNMiGs/D1uUK7g3PVPKQIQd58Bcieu2d+Eho7genBka/SkizGAu173Hz86r9ieiLFtExWrIrPVYGd+ZuPi8GFWnln/OsfVfTvzhsq6FT6tMxkzYxEt2lQrhNfVey9IDOQdk/BF8YNKm4BJO2utSM5HF7t4Fv+/bkgOC2i2ubU8HgHV/w5j64dVufoCDFstcaKSSosdHnsYMSxkLr1q4Bs6RBDe3QKts2IIXCG7sv7cFIFrrIWG0Y5Uj3Gb5fTunwIMs42Zyj2iPxSR2go0qfBq6xHZw81z11IGSCaXgRU=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 45e4084c-fbd6-4586-681c-08d68da9fe23
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Feb 2019 09:44:17.1215 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR07MB3428
Archived-At: <>
Subject: Re: [alto] Ben Campbell's Discuss on draft-ietf-alto-cost-calendar-09: (with DISCUSS and COMMENT)
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Application-Layer Traffic Optimization \(alto\) WG mailing list" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 08 Feb 2019 09:44:23 -0000

Hello Ben, 

A new version draft-ietf-alto-cost-calendar-10 has been submitted to address all the DISCUSS and COMMENT points of the IESG feedback.
I have completed inline my previous response of January 14  on your comments and nits (some of which were substantive).  
Thanks again for your review and suggestions,

-----Original Message-----
From: Randriamasy, Sabine (Nokia - FR/Paris-Saclay) <>; 
Sent: Monday, January 14, 2019 6:06 PM
To: Ben Campbell <>;; The IESG <>;
Cc:;;; Vijay Gurbani <>;
Subject: RE: Ben Campbell's Discuss on draft-ietf-alto-cost-calendar-09: (with DISCUSS and COMMENT)

Hello Ben,

Thanks a lot for your review and questions. 
Please see inline for the answers and let me know if the proposals address your concerns.
A new I-D will be produced and a new WGLC will occur in the WG to ensure that the changes proposed here are okay. 
The editorial and comments and Nits will be addressed as well. 

All my best wishes for 2019,
Best regards,

-----Original Message-----
From: Ben Campbell <>;
Sent: Wednesday, December 05, 2018 5:37 AM
To: The IESG <>;
Cc:; Gurbani, Vijay (Nokia - US/Naperville) <>;;; Gurbani, Vijay (Nokia - US/Naperville) <>;;
Subject: Ben Campbell's Discuss on draft-ietf-alto-cost-calendar-09: (with DISCUSS and COMMENT)

Ben Campbell has entered the following ballot position for
draft-ietf-alto-cost-calendar-09: Discuss

When responding, please keep the subject line intact and reply to all email addresses included in the To and CC lines. (Feel free to cut this introductory paragraph, however.)

Please refer to
for more information about IESG DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:


Thanks for the work on this document. I see value, but have a couple of points I think need to be resolved prior to publication:

§3.1, definition of "time-interval-size": What is the reasoning behind using a string to define the unit? That requires text parsing/comparison to determine the interval. I assume this is intended more for machine use than for human use. Did the working group consider making this a multiple of some primitive time interval? E.g. number of seconds, or perhaps number of minutes? it seems like that would be easier (and therefore less error prone) to interpret.

[[SR]] this has been indeed a concern raised in several reviews. The initial inspiration came from the encoding of filtering constraints in the filtered cost map input parameters, such as ["ge 5", "lt 10"] in RFC 7285 or ["[0] ge 5", "[1] lt 10"] in RFC 8189. 

We can actually take the opportunity of avoiding parsing errors as follows: 
- The value of "time-interval-size" is number defined in seconds. It is encoded in a  JSON number. ALTO servers SHOULD use at least IEEE 754 double-precision floating point [IEEE.754-2008] to store the cost value, and SHOULD perform internal computations using double-precision floating-point arithmetic.  
In section 2.1 we may stress that encoding length in JSON number of seconds cover periods gives room to cover large periods. 

Would this address your concern?

If there is a reason to use a text field, is there an enumeration of legal unit values? Can I use "12 parsecs"?
[[SR]] this would no longer be applicable is we use seconds as the time unit. 

§4.1.2, last paragraph: "The ALTO Client thus may use the same calendar for the next 4 days starting at "calendar-start-time" and will only need to request a new one for Friday July 4th at 00:00:00 GMT."

This implies that if an ALTO server delivers a calendar with a long duration, it cannot make changes to the metrics in that calendar, or if it does make them it cannot expect the client to learn about those changes. Is that the intent?
If so, it seems to contradict language in the security considerations (§6) that future events may change and that the client should ensure information updates.
(The operational considerations [§7] also say the client does not need to query again during the calendar duration.)

[[SR]] Indeed, this issue should be addressed in the document and the following is proposed:
- Section 2 Overview of ALTO Cost Calendars, after paragraph 4, says: 
"An ALTO Cost Calendar can be used like a "time table" to figure out the best time to schedule data transfers and also to proactively manage application traffic given predictable events such as flash crowds, traffic intensive holidays and network maintenance. It may be viewed as a synthetic abstraction of real measurements that can be historic or be a prediction for upcoming time periods."
Add the following text: 
"However, like for any schedule, unexpected network incidents may require the current ALTO Calendar to be updated and re-sent to the ALTO Clients needing it. To this end, it is RECOMMENDED that an ALTO Server providing ALTO Calendars also provides "ALTO Incremental Updates Using Server-Sent Events" as specified in [draft-ietf-alto-incr-update-sse], and likewise, that ALTO Clients capable of using ALTO Calendars can also use ALTO Incremental updates."

- In §4.1.2: extend the example in the last paragraph with how an ALTO Client can receive incremental updates when an incident in the network causes updates in the current version of the ALTO Calendar.

- In §6 security considerations: repeat this text and stress that it is especially used when Calendars with "repeated" values are used.



I also have a number of substantive and editorial comments that do not rise to the level of a DISCUSS:

*** Substantive Comments ***

- General: (No action expected): For future reference, this is the sort of draft that I think should be referred to the ART area review team for review.
It's effectively an application layer protocol, even if it affects transport layer decisions. (I note that none of the requested directorate reviews appear to have happened either, which is unfortunate.)

§2, 4th paragraph: "that can be historic": I don't see mention of how historic data would be used. Maybe I missed something?
[[SR]]  Maybe replace "It may be viewed as a synthetic abstraction of real measurements that can be historic" 
"It may be viewed as a synthetic abstraction of for example real measurements gathered over previous periods on which statistics have been computed"

§2.2.1, 2nd paragraph: Please elaborate on what is meant by "carefully managed". What specific things need to be considered?
[[SR]]  Is the following wording clearer?
- Simple version: ALTO Server provides updates of cost value based preferences.
- Elaborated: "... a Calendar is suitable as well for time-varying metrics provided in the "ordinal" mode, if these values are time-varying and their update is managed by the ALTO Server and utilized by ALTO Clients with awareness on the operations that are suitable for ordinal values."

§2.2.2, 3rd paragraph: This needs elaboration. I think it means that it must be possible to retrieve  the "now" version of the metric, but one could not retrieve a future value as a single value.
[[SR]] The sentence actually intended to express that: 
"When a Server provides a metric as a Calendar, it MUST also provide it as a single value as specified in [RFC7285]." 
Would this formulation be clearer?

- 3rd paragraph: "A member "calendar-attributes" MUST appear only once": Does that mean exactly once? No more than once?
[[SR]] it means no more than once. Actually "cost-type-name" in this paragraph should be without "".  
Would the following formulation be OK?
"Calendar attributes MUST be specified no more than once for each cost type name of a resource entry. If, in the "calendar attributes" member of the "capabilities" member of a resource entry, a cost type name appears several times,  the ALTO client SHOULD consider only the attributes specified for the first occurrence of this cost type name and ignore calendar attributes specified for any additional occurrence of this cost type name. "

- note after definition of "number-of-intervals": Where is "cost-type-name"
defined? Was this meant to be "cost-type-names"? If so, this paragraph makes it sound optional, but it was not shown as optional in the schema.
[[SR]] sorry, this is a typo, "s" is missing and it should be "cost-type-names". The dashes before the 2 paragraphs after definition of "number-of-intervals" are misleading and will be removed to avoid their confusion with field definition. 
In addition, expression "if used" will be removed as well in sentence "Attribute "cost-type-name" , if used, provides...", as this attribute is not optional. 

§4: It is not clear from the text if it saying the time zone is GMT in the example, or if it is always GMT. I assume the former, but the wording of the last paragraph suggests that the use of the HTTP header field format forces the time zone to always be GMT.

[[SR]] Paragraph 4 will specify the following "The dates in Calendar attributes are encoded following RFC7231 "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content", where section "Date/Time Formats" specifies that the preferred format is a fixed-length and single-zone subset of the date and time specification used by the Internet Message Format [RFC5322]."
"Note that the time zone is actually UTC, per RFC 7231, even though timestamps get displayed with the acronym "GMT." (as Alissa wrote). 


- Third paragraph:  I assume each entry corresponds to the requested metric at the same array position? If so, please say that explicitly.
[[SR]] done

4th paragraph: 'This field SHOULD NOT be specified if no member "calendar-attributes" is specified in this information resource.' Why is the SHOULD NOT not a MUST NOT?  (Also, should "specified" be "included"?) 
[[SR]] agree, it will be a MUST NOT and "included" will replace "specified".

- 2nd to last paragraph: I don't understand the purpose of this paragraph. I assume "supporting single cost type values" means "only supporting" them. Why would the client request calendared values in the first place if it only supported single values?
[[SR]] The wording indeed is unclear. These 2 paragraphs distinguish between Calendar-aware Clients that can query values for resp. a single cost type and multiple cost types as specified in RFC8189. 
Would the following formulation be ok for each paragraph:
- "A Calendar-aware ALTO client that can query values for a single cost type, as specified in [RFC7285], ...."
- "A Calendar-aware ALTO client that can query values for multiple cost types cost type, as specified in [RFC8189], ...." 

- last paragraph: How is this different than the requirement in the 2nd paragraph?
[[SR]] see response above. 

- first paragraph: "All arrays have a number of values equal to ’number-of-intervals’."

Which "number-of-intervals" does this talk about? The one in the capabilities or in "Calendar ResponseAttributes"?
[[SR]] Actually both values are the same. This is specified later in this section in the description of the Calendar ResponseAttributes fields.
How about re-phrasing as:
 "All arrays have a number of values equal to the value of member ’number-of-intervals’ of the Calendar capabilities that are indicated in the IRD and will be conveyed as metadata in the Filtered Cost Map responses.  Each element of the array is valid for the time-interval that matches its array position."

Does that mean each element is valid for the time-interval that matches its array position? If so, please say that explicitly.
[[SR]] see answer above

I'm surprised to see this require a metric entry for each individual time interval. It your want a high resolution of time intervals, you may end up with a large number of entries. Did the WG consider making it possible to have a single metric entry cover multiple time intervals? As this is currently defined, I think there needs to be guidance to implementors that they need to balance calendar length and granularity against the required number of metric entries.
[[SR]] indeed, high resolution intervals [[SR]] may be needed when values change[[SR]] , sometimes during very small time intervals but in a significant manner. And a way to avoid conveying too many entries is to leverage on the "repeated feature". A server can smartly set the calendar start time and number of intervals so as to declare them "repeated" for a large number of periods, until the Calendar values change and are conveyed to a requesting Client.  Such text has been added to section 7. Operational considerations

- definition of "Calendar-start-time" Please elaborate on why the start time SHOULD be no later than the current date? (Also, consider "SHOULD NOT be
[[SR]] ok, will use SHOULD NOT
[[SR]] we may add: "so that the ALTO Client, immediately has applicable values. In addition, reading the Calendar start time and duration, the Client can figure out when the next Calendar will start." 

§6: last paragraph:
- I'm not sure what it means for a repeat pattern to be "statistical".
[[SR]] how about replacing "a repeat pattern may be only statistical" with "Calendar values, especially in "repeated" Calendars may be only statistical" ?
- The guidance that future events can change and the client should ensure information updates seems to conflict with guidance elsewhere that the client does not need to requery until a calendar duration ends. (See DISCUSS point.) 
[[SR]] text recommending to use the ALTO Incremental updates  SSE in conjunction with ALTO Calendars has been added in Sections 2, 4.1.2 and 6 (last para).

*** Editorial Comments and Nits ***

- IDNits reports some issues; please check.
[[SR]] done: 1 warning remains on unused ref. RFC5246. I'll try to see why this comment appears 

- Abstract: Please expand ALTO on first mention in the abstract and the body.

- Please expand PID on first mention.

- 6th paragraph:
-- "specified by information
resources capabilities": should that be something to the effect of "specified in terms of resource capabilities"? -- please expand IRD on first mention -- "the proposed extensions": They will no longer be "proposed" once this is published as an RFC.
[[SR]] above nits done

- paragraph 4: "flash mobs" seems like an odd example of a predictable event, at least to anyone other than the event organizers and participants.
[[SR]] replaced by "crowded events"

- first bullet: "attributes to interpret the time scope": I think the client does the interpreting. Perhaps "attributes to describe the time scope"? 
[[SR]]  done, thanks
- "repeated": I gather there is no option for unbounded repetition; it would be worth mentioning that up front.
[[SR]] added a paragraph after the "repeated" item

§3.1, third paragraph: "If "calendarattributes"
are specified several times"
I assume this means "more than one" time. "Several" often connotes a number greater than a "few" but less than "many". That is, people may not think of "2" as "several".
[[SR]] yes, done

- Please cite the json schema format you are using. I assume it is the one defined in the alto protocol RFC, but that should be mentioned explicitly.
[[SR]] It's actually RFC 8259 upon recent discussions. Reference was added in Sections 1 Intro, 2.2, 3.1 and 7. 

- last paragraph: First sentence is hard to parse.
[[SR]] new text is: "Multiplying ’time-interval-size’ by ’number-of-intervals’ provides the duration... "

§3.2, first paragraph, first sentence: I'm not sure what "clarify" means in context; was that the correct word choice?
[[SR]] actually unclear wording: new text is "One option to better sort out IRD resources w.r.t. for instance
supported extended services...". We may also write "protocol extensions" instead of "extended services" if you think it is clearer

§3.3, first paragraph: "As [RFC7285] makes it mandatory, it uses metric "routingcost" in the "numerical" mode."
The antecedents for both occurrences of "it" have unclear antecedents.
[[SR]] indeed, new text is:  "since [RFC7285] makes it mandatory, the Server uses metric "routingcost" in the "numerical" mode"

- First paragraph: The first sentence is confusing.  I think it means "instead of the format used by legacy implementations", but it con be interpreted the say that arrays are used for legacy implementations. 
[[SR]] this paragraph has been reworded. Text on new value format for Calendars was also added in para 2 of section 2.2
- 2nd paragraph: "include at least" doesn't really fit the content of the list entries. 
[[SR]] this paragraph and the bullets have been re-organized. The text means: include at least: the 2 listed fields for a single cost request and the 3 listed fields for a multi-cost request. 
- first major bullet: I suspect "supports" should be "requested". (same for 2nd major bullet)
[[SR]] yes, done with precisions w.r.t. signle cost and Multi-Cost requests

- paragraph starting with "- In addition, the "meta" field..." If this is required, why was it not included in the bullet list of required information?
[[SR]] Section 4.1.2 has been re-organized so as to sort out "meta" fields w.r.t. "Calendar specific" and "single/multi cost" specific. Explanation text was added paragraph 2.

- definition of "calendar-start-time" : I don't understand how "by default"
interacts with SHOULD.
[[SR]] text is now: "The value provided for the "calendar-start-time" attribute SHOULD NOT be later than the request date"

§5, last paragraph: "For potential undesirable guidance of ALTO information..."
That wording is confusing. I suggest something like "To avoid malicious or erroneous guidance from ALTO information..."
[[SR]] you probably referred to §6, rewording done