Hello Benjamin and all, Sorry, I mistakenly clicked the "Send" button and I still need to address a couple of comments. In the meantime however, I'll be happy to have your feedback on the proposed updates.
Best regards, Sabine >-----Original Message----- >From: Randriamasy, Sabine (Nokia - FR/Paris-Saclay) >Sent: Wednesday, March 11, 2020 7:18 PM >To: Benjamin Kaduk <ka...@mit.edu>; The IESG <i...@ietf.org> >Cc: draft-ietf-alto-cost-calen...@ietf.org; alto-cha...@ietf.org; >alto@ietf.org; >Vijay Gurbani <vijay.gurb...@gmail.com>; vijay.gurb...@nokia.com >Subject: RE: Benjamin Kaduk's No Objection on draft-ietf-alto-cost-calendar-20: >(with COMMENT) > >Hello Benjamin, > >Thanks again for your review. A version v21 is under edition to finish >addressing >all the review comments. >Please see inline for my responses to your comments. >Best regards, >Sabine > >>-----Original Message----- >>From: Benjamin Kaduk via Datatracker <nore...@ietf.org> >>Sent: Tuesday, March 10, 2020 1:21 AM >>To: The IESG <i...@ietf.org> >>Cc: draft-ietf-alto-cost-calen...@ietf.org; alto-cha...@ietf.org; >>alto@ietf.org; Vijay Gurbani <vijay.gurb...@gmail.com>; >>vijay.gurb...@nokia.com >>Subject: Benjamin Kaduk's No Objection on draft-ietf-alto-cost-calendar-20: >>(with COMMENT) >> >>Benjamin Kaduk has entered the following ballot position for >>draft-ietf-alto-cost-calendar-20: No Objection >> >>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 >>https://www.ietf.org/iesg/statement/discuss-criteria.html >>for more information about IESG DISCUSS and COMMENT positions. >> >> >>The document, along with other ballot positions, can be found here: >>https://datatracker.ietf.org/doc/draft-ietf-alto-cost-calendar/ >> >> >> >>---------------------------------------------------------------------- >>COMMENT: >>---------------------------------------------------------------------- >> >>Thanks for adding text about the incompatibility of constraints with >>the calendar functionality. I would suggest further clarifying that >>this reflects a limitation of this method or reduction in functionality >>when compared to RFC >>7285 (and 8189), but do not insist upon it. >> >>[comments from -19 preserved for posterity] >> >>Section 1 >> >> In this document, an "ALTO Cost Calendar" is specified in terms of >> information resources capabilities that are applicable to time- >> >>nit: "information resources capabilities" has two plurals. Either make >>"resources" possessive ("resources'") or just use "resource". >[ [SR] ] done thanks >> >>Section 1.1 >> >>I'm not sure how much *archival* value there is in the current >>discussion of SENSE and Unicorn. >[ [SR] ] Text changed to be less project-centric ans instead focusing on >the >motivating use-case. >Reference [I-D.xiang-alto-multidomain-analytics] was changed to an archived >journal paper. >> >>Section 3.1 >> >> sent to the ALTO Clients needing it. The "ALTO Incremental Updates >> Using Server-Sent Events (SSE)" Service >> [I-D.ietf-alto-incr-update-sse] can be used to update the calendar >> faster if supported by both the Server and the Client. >> >>nit(?): faster than what? >[ [SR] ] the text has been changed as follows in v20: >NEW >The "ALTO Incremental Updates > Using Server-Sent Events (SSE)" Service > [I-D.ietf-alto-incr-update-sse] can be used to directly update the > Calendar upon value changes, if supported by both the Server and the > Client. END >> >>Section 3.3 >> >> The present document extends the definition of a legacy cost map >> given in [RFC7285] to allow a cost entry to be an array of values, >> with one value one per time interval, instead of being just one >> number. Therefore the implementor of this extension MUST consider >> that a cost entry is an array of values. Specifically, an >> >>nit: this is not quite true, strictly speaking -- the cost entry is >>only an array when the cost calendar functionality is active, which is >>not a subset of when the extension is implemented. >>Also, if the cost entry is definitively an array, then this would be >>replacing the definition, not extending it. >[ [SR] ] Would the following text be better? >NEW >The present document extends the > definition of a legacy cost map given in <xref target="RFC7285"/> to allow a >cost > entry to be an array of values, with one value one per time interval, > instead of > being just one number, when the Cost Calendar functionality is activated on >this cost. > Therefore the implementor of this extension MUST consider that a cost entry >is an array of values > if this cost has been queried as a Calendar. END > >> >> implementation of this extension MUST parse the "number-of-intervals" >> attribute of the "calendar-attributes" in an IRD entry announcing a >> service providing Cost Calendar. The implementation then will know >> that a cost entry of the service will be an array of values, and the >> expected size of the array is that specified by the "number-of- >> intervals" attribute. >> >>Is it a protocol error if the cost entry is a scalar or an array of >>different size than expected? Where do we specify error handling for those >cases? >> >> To realize an ALTO Calendar, this document extends: the IRD and the >> ALTO requests and responses for Cost Calendars. >> >>nit: no colon needed. >[ [SR] ] done, thanks >> >> o it allows an ALTO Server to offer Calendar capabilities on a cost >> type, with attributes values adapted to each information resource. >> >>I'm not entirely sure what this is intending to say. Is the idea that >>this is a general mechanism that could be applied to capabilities of >>all cost types (as opposed to, e.g., making a new cost mode for >>"calendar of numerical" that would need many new types to support different >types of calendar)? >> >>Section 3.3.2 >> >> The ALTO protocol extensions for Cost Calendars have been defined so >> as to ensure that Calendar capable ALTO Servers can provide legacy >> >>nit: hyphenate "Calendar-capable" (and similarly throughout). I see >>that "calendar-aware" is already hyphenated, which is good. >[ [SR] ] done in v20 thanks > >> >> ALTO Clients with legacy information resources as well. That is, a >> legacy ALTO Client can request resources and receive responses as >> specified in [RFC7285]. >> >>Should we say anything about Calendar-aware ALTO Clients being able to >>get useful responses from legacy Servers as well? >[ [SR] ] Agree. The following sentence has been added after paragraph 2: >NEW > A Calendar-aware ALTO Client MUST implement the base protocol > specified in <xref target="RFC7285"/>. >END > >> >>Section 4 >> >> The Calendar attributes in the IRD information resources capabilities >> carry constant dateless values. A Calendar is associated with an >> >>"constant" in what sense? >[ [SR] ] Agree, the main idea is that the attribute values are dateless. So >"constant" has been removed: >NEW >The Calendar attributes in the IRD information resources capabilities carry >dateless values. >END >> >>Section 4.1 >> >> types. A cost type name MUST NOT appear more than once in the >> "calendar-attributes" member of a resource entry; multiple >> appearances of a cost type name in the CalendarAttributes object of >> the "calendar-attributes" member MUST cause the ALTO Client to ignore >> any occurrences of this name beyond the first encountered occurrence. >> >>It seems that this is most important in that the given resource entry >>has an array of calendar-attributes, and we need to know which element >>of that array to use when processing calendars for that cost type. >>Indicating the extra layer of structure in the description around this >>requirement would help the reader. >> >> An ALTO Server SHOULD specify the "time-interval-size" in the IRD as >> the smallest it is able to provide. A Client that needs a longer >> interval can aggregate multiple cost values to obtain it. >> >>nit: we haven't defined "time-interval-size" yet, so either moving this >>later or giving a bit more explanation might be useful. >[ [SR] ] Agree. This text was moved right after the definition of >CalendarAttributes >> >> o "cost-type-names": >> >> * An array of one or more elements indicating the cost-type-names >> in the IRD entry to which the capabilities apply. >> >>Which capabilities? >[ [SR] ] The text was clarified as follows: >NEW >An array of one or more elements indicating the cost-type-names > in the IRD entry to which the values of "time-interval-size" and > "number-of-intervals" apply. >END >> >> * is the duration of an ALTO Calendar time interval in a unit of >> seconds. A "time-interval-size" value contains a non-negative >> JSONNumber. Example values are: 300 and 7200, meaning that >> each Calendar value applies on a time interval that lasts 5 >> minutes and 2 hours, respectively. Since an interval size >> (e.g., 100 ms) can be smaller than the unit, the value >> specified may be a floating point (e.g., 0.1). Both ALTO >> Clients and Servers should be aware of potential precision >> issues caused by using floating point numbers; for example, the >> floating number 0.1 cannot be represented precisely using a >> finite number of binary bits. To improve interoperability and >> be consistent with [RFC7285] on the use of float point numbers, >> the Server and the Client SHOULD use IEEE 754 double-precision >> floating point [IEEE.754.2008] to store this value. >> >>nit: please be consistent about using "floating-point number" (vs., >>e.g., "floating point" or "float point"). >[ [SR] ] thanks, used "floating" everywhere >> >> - Providing attribute "cost-type-names" together with "time-interval- >> size" and "number-of-intervals" improves the readability of the >> Calendar attributes specified for an IRD resource and avoids >> confusion with Calendar attributes of other cost types. >> >>I'm not sure I understand either of these points (how readability is >>helped and how confusion is avoided). >[ [SR] ] Indeed the text was clarified as follows in v20, as readability was >not >the main point >NEW >- Attribute "cost-type-names" is associated with "time-interval-size" and > "number-of-intervals", because multiple cost types may share the same > values for attributes "time-interval-size" and "number-of-intervals". > To avoid redundancies, cost type names sharing the same values for "time- >interval-size" > and "number-of-intervals" are grouped in the "cost-type-names" attribute. > In the example IRD provided in <xref target="sect-4.3"/>, the information >resource > “filtered-cost-map-calendar” provides a Calendar for cost type names > "num-routingcost", "num-throughputrating" and "string-servicestatus". > Cost type names "num-routingcost" and "num-throughputrating" are > grouped in the "cost-type-names" attribute because they share the > same values for "time-interval-size" and "number-of-intervals", > which are respectively 7200 and 12. >END >> >>Section 4.2 >> >> It may be useful to distinguish IRD resources supported by the base >> ALTO protocol from resources supported by its extensions. To achieve >> this, one option, is that a "root" ALTO Server implementing base >> protocol resources and running at a given domain, delegates >> "specialized" information resources such as the ones providing Cost >> Calendars, to another ALTO Server running in a subdomain. The "root" >> >>How would a Client know that this mechanism is in use? >> >> This document provides an example, where a "root" ALTO Server runs in >> a domain called "alto.example.com". It delegates the announcement of >> Calendars capabilities to an ALTO Server running in a subdomain >> called "custom.alto.example.com". The location of the "delegate >> Calendar IRD" is assumed to be indicated in the "root" IRD by the >> resource entry: "custom-calendared-resources". >> >>This is "assumed" only for the purpose of the example, and not as a >>general protocol mechanism, right? >> >> Another benefit of delegation is that some cost types for some >> resources may be more advantageous as Cost Calendars and it makes few >> sense to get them as a single value. For example, if a cost type has >> predictable and frequently changing values, calendared in short time >> intervals such as a minute, it saves time and network resources to >> track the cost values via a focused delegate Server rather than the >> more general "root" Server. >> >>Is the idea just that you compartmentalize the fast-changing stuff from >>the slow-changing stuff, so that your listing of what is changing >>quickly only includes the things actually changing on that timescale, >>so you don't end up also listing the calendar for the slowly-changing things >>in >the same response? >>Also, nit: s/few/little/ >> >> >>Is there a reason for "map" and "calendar" to be in different orders in >>"filtered-cost-map-calendar" and "endpoint-cost-calendar-map"? >> >> o the Calendar for "owdelay": is an array of 12 values each provided >> on a time interval lasting 300 seconds (5 minutes). >> >>nit: s/owdelay/num-owdelay/ >[[SR]] Done, thanks > >> >>Sectgion 5 >> >>I'd consider using a more recent Date in the example. >[[SR]] agree, done thanks >> >>Section 5.1.1 >> >> The input parameters of a "legacy" request for a filtered cost map, >> defined by object ReqFilteredCostMap in section 11.3.2 of [RFC7285], >> are augmented with one additional member. >> >>There's probably some pedantic consideration here about "other >>extensions", such as the "multi-cost-types" member from RFC 8189. >> >> This field is an array of 1 to N boolean values, where N is the >> number of requested metrics. Each entry corresponds to the >> requested >> >>Maybe reference RFC 8189 so the reader doesn't get confused by RFC 7285 >>specifying only a single metric type? >> >>Section 5.1.2 >> >> The non Calendar specific "meta" fields of a calendared Filtered Cost >> Map response MUST include at least: >> [...] >> >>side note: this structure where we effectively repeat the requirements >>of all previous specifications is not going to scale well with future >>extensions. >> >> o each "CalendarResponseAttributes" object in the array is specified >> for one or more cost types for which the value of member >> "calendared" is equal to 'true' and for which a Calendar is >> provided for the requested information resource. >> >>Member 'calendared' of what data structure? >> >> o "cost-type-names": is an array of one or more cost-type-names to >> which the capabilities apply and for which a Calendar has been >> requested. The value of this member is a subset of the "cost- >> type-names" array specified in the corresponding IRD Calendar >> attributes. >> >>Just to check my understanding: in the IRD Calendar attributes, there's >>a "calendar-attributes" member whose value is an array of objects, and >>each of those objects has a "cost-type-names" member whose value is an >>array of cost-type names. So what we're saying here is that the >>"cost-type-names" in a CalendarResponseAttributes entry are a subset of >>the union of the "cost-type- names" members in all of the entries in >>the "calendar-attributes" array of objects in the IRD calendar >>attribute, which is not exactly what the quoted text seems to be saying. >> >> o "time-interval-size": as specified in Section 4.1 and with the >> same value. >> >> o "number-of-intervals": as specified in Section 4.1 and with the >> same value. >> >>nit: "with the same value" could perhaps imply that there is a >>requirement to have actually published an IRD calendar for this >>resource and literally take the value from that existing calendar; >>"with the same semantics" should relax that >>(perceived) requirement. >> >>Section 5.1.3 >> >> An example of non-real time information that can be provisioned in a >> Calendar is the expected path throughput. While the transmission >> >>nit: "non-real time" and "non-real-time" have different meanings, and I >>think the latter is the intended one. >> >> usage patterns. In this example, we assume that an ALTO Client >> requests a Calendar of network provider defined throughput ratings, >> >>nit: hyphenate "network-provider-defined". >> >> Content-Length: 1013 >> Content-Type: application/alto-costmap+json >> >>Please double-check the content length (for all the examples) -- it's a >>bit annoying to do from the text rendering of the I-D that applies a >>left indent, but assuming that the initial '{' is supposed to be the >>first byte of the response body and the rest of the whitespace is part >>of the response, I get something more like 1043 octets of content. >> >>Section 5.2.1 >> >>We should probably say that the interpretation of the various fields is >>the same as the RFC 7285/8189 ReqEndpointCostMap, and "calendared" the >>same as for ReqFilteredCostMap. >> >>Section 5.2.3 >> >> o C1 for Monday, Tuesday, Wednesday, Thursday, (weekdays) >> >> o C2 for Saturday, Sunday, (weekend) >> >> - C3 for Friday (maintenance outage on July 4, 2014 from 02:00:00 GMT >> to 04:00:00 GMT, or big holiday such as New Year evening). >> >>I'd consider using a more recent date than 2014 throughout this example. >>Also, nit: please use a consistent character to represent the bullet point. >> >> Host: alto.example.com >> >>Would it be more consistent with previous examples to use >>custom.alto.example.com here (and in other examples)? >> >>Section 7 >> >> >> [RFC8446] specifies TLS 1.3 and writes in its section 1: "While TLS >> 1.3 is not directly compatible with previous versions, all versions >> of TLS incorporate a versioning mechanism which allows Clients and >> Servers to interoperably negotiate a common version if one is >> supported by both peers". ALTO Clients and Servers SHOULD support >> both TLS 1.3 [RFC8446] and TLS 1.2 [RFC5246], and MAY support and use >> newer versions of TLS as long as the negotiation process succeeds. >> >>I know this document has been in the works for a long time and so there >>may be reluctance to make changes on this front, but I'll note that RFC >>8446 has been out for a year and half, so under normal conditions we'd >>just say "use TLS 1.3 or newer" without mentioning 1.2. >> >> participate in a DDoS attack. The Calendar information would be >> valuable information for when to persecute a DDoS attack. A >> >>nit: "persecute" is an unusual word here; "execute" or "perform" seem >>like better alternatives. >> >> Hence, a more robust ALTO Client should adapt and extend protection >> strategies specified in Section 15.2 of the base protocol. For >> >>It's probably better to use the RFC number than just "the base protocol". >> >>Section 10.2 >> >>I think [IEEE.754.2008] needs to be normative, as do RFCs 5246 and >>8446, and draft-ietf-alto-incr-update-sse. >> >> _______________________________________________ alto mailing list alto@ietf.org https://www.ietf.org/mailman/listinfo/alto