Hi Ben,

How are you doing?

We are wondering if you can take a look at the proposed changes of Path Vector 
and see whether they address the DISCUSS and COMMENT.

Thanks a lot!

Best,
Kai


> -----Original Messages-----
> From: [email protected]
> Sent Time: 2022-03-06 01:17:37 (Sunday)
&gt; To: "Benjamin Kaduk" <[email protected]>
&gt; Cc: [email protected], [email protected], 
[email protected], "The IESG" <[email protected]>
&gt; Subject: Re: [alto] Benjamin Kaduk's Discuss on 
draft-ietf-alto-path-vector-22: (with DISCUSS and COMMENT)
&gt; 
&gt; Hi Ben,
&gt; 
&gt; We have just submitted a new revision of path vector. Please see the diff 
in [1].
&gt; 
&gt; [1] 
https://www.ietf.org/rfcdiff?url1=draft-ietf-alto-path-vector-22&amp;url2=draft-ietf-alto-path-vector-23
&gt; 
&gt; There are two parts that are slightly different from the previously 
proposed text:
&gt; 
&gt; Section 6.2.4:
&gt; 
&gt; Old:
&gt;    ... Meanwhile, for persistent ANEs whose entity
&gt;    domain name has the format of "PROPMAP.ane" where PROPMAP is the name
&gt;                        (proposed to be replaced with "resource ID") ^^^^
&gt;    of a Property Map resource, PROPMAP is the defining resource of these
&gt;    ANEs.
&gt; 
&gt; New:
&gt;    ... Meanwhile, for any persistent ANE whose defining
&gt;    resource is a Property Map resource, its entity domain name MUST have
&gt;    the format of "PROPMAP.ane" where PROPMAP is the resource ID of the
&gt;    defining resource. 
&gt; 
&gt; 
&gt; Section 11
&gt; 
&gt; Old:
&gt;    For risk type (3), an ALTO server MUST use dynamic mappings from
&gt;    ephemeral ANE names to underlying physical entities.  Thus, ANE names
&gt;    contained in the Path Vector responses to different clients or even
&gt;    for different request from the same client SHOULD point to different
&gt;    physical entities.
&gt; 
&gt; New:
&gt;    For risk type (3), an ALTO service provider must be aware that
&gt;    persistent ANEs may be used as "landmarks" in collaborative
&gt;    inferences.  Thus, they should only be used when exposing public
&gt;                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
&gt;    service access points (e.g., API gateways, CDNi) and/or when the
&gt;    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
&gt;    granularity is coarse-grained (e.g., when an ANE represents an AS, a
&gt;    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
&gt;    data center or a WAN).  Otherwise, an ALTO server MUST use dynamic
&gt;    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (New sentence added to the proposed 
text)
&gt;    mappings from ephemeral ANE names to underlying physical entities.
&gt;    Specifically, for the same physical entity, an ALTO server SHOULD
&gt;    assign a different ephemeral ANE name when the entity appears in the
&gt;    responses to different clients or even for different request from the
&gt;    same client.  A RECOMMENDED assignment strategy is to generate ANE
&gt;    names from random numbers.
&gt; 
&gt; Please let us know whether the proposed change is OK. Suggestions and 
feedback are more than welcome!
&gt; 
&gt; Thanks!
&gt; 
&gt; Best,
&gt; Kai
&gt; 
&gt; -----Original Messages-----
&gt; From:[email protected]
&gt; Sent Time:2022-03-05 10:21:53 (Saturday)
&gt; To: "Benjamin Kaduk" <[email protected]>
&gt; Cc: [email protected], [email protected], "The IESG" <[email protected]>, 
[email protected]
&gt; Subject: Re: [alto] Benjamin Kaduk's Discuss on 
draft-ietf-alto-path-vector-22: (with DISCUSS and COMMENT)
&gt; 
&gt; Hi Ben, Martin and Qin, 
&gt;  
&gt;  Thanks for the feedback and suggestions. Please see our responses inline. 
&gt;  
&gt;  Best, 
&gt;  Kai 
&gt; 
&gt; 
&gt; &gt; -----Original Messages-----
&gt; &gt; From: "Benjamin Kaduk" <[email protected]>
&gt; &gt; Sent Time: 2022-03-05 07:31:51 (Saturday)
&gt; &gt; To: [email protected]
&gt; &gt; Cc: "The IESG" <[email protected]>, [email protected], 
[email protected], [email protected]
&gt; &gt; Subject: Re: [alto] Benjamin Kaduk's Discuss on 
draft-ietf-alto-path-vector-22: (with DISCUSS and COMMENT)
&gt; &gt; 
&gt; &gt; Hi Kai,
&gt; &gt; 
&gt; &gt; Also inline...
&gt; &gt; 
&gt; &gt; On Fri, Mar 04, 2022 at 01:51:07AM +0800, [email protected] wrote:
&gt; &gt; &gt; Hi Ben,
&gt; &gt; &gt; 
&gt; &gt; &gt; Thanks a lot for the review. The comments are really helpful. We 
have proposed texts for most of the comments except for calculating 
content-lengths and the security-related comments, which we will come up with 
some proposal tomorrow. Please see our feedback inline.
&gt; &gt; &gt; 
&gt; &gt; &gt; Best,
&gt; &gt; &gt; Kai
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; -----Original Messages-----
&gt; &gt; &gt; &gt; From: "Benjamin Kaduk via Datatracker" <[email protected]>
&gt; &gt; &gt; &gt; Sent Time: 2022-03-03 17:53:16 (Thursday)
&gt; &gt; &gt; &gt; To: "The IESG" <[email protected]>
&gt; &gt; &gt; &gt; Cc: [email protected], 
[email protected], [email protected]
&gt; &gt; &gt; &gt; Subject: [alto] Benjamin Kaduk's Discuss on 
draft-ietf-alto-path-vector-22: (with DISCUSS and COMMENT)
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Benjamin Kaduk has entered the following ballot position for
&gt; &gt; &gt; &gt; draft-ietf-alto-path-vector-22: Discuss
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; When responding, please keep the subject line intact and 
reply to all
&gt; &gt; &gt; &gt; email addresses included in the To and CC lines. (Feel free 
to cut this
&gt; &gt; &gt; &gt; introductory paragraph, however.)
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Please refer to 
https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/ 
&gt; &gt; &gt; &gt; for more information about how to handle DISCUSS and 
COMMENT positions.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; The document, along with other ballot positions, can be 
found here:
&gt; &gt; &gt; &gt; 
https://datatracker.ietf.org/doc/draft-ietf-alto-path-vector/
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
----------------------------------------------------------------------
&gt; &gt; &gt; &gt; DISCUSS:
&gt; &gt; &gt; &gt; 
----------------------------------------------------------------------
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; The IANA Considerations section seems incomplete.
&gt; &gt; &gt; &gt; Looking over the registries at
&gt; &gt; &gt; &gt; 
https://www.iana.org/assignments/alto-protocol/alto-protocol.xhtml and
&gt; &gt; &gt; &gt; comparing against the mechanisms defined in this document, 
it seems that
&gt; &gt; &gt; &gt; we need to register the "ane-path" Cost Metric. 
&gt; &gt; &gt; 
&gt; &gt; &gt; Thanks for pointing that out. We will add a new section to 
register the cost metric.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; More worryingly, there is
&gt; &gt; &gt; &gt; no registry on that page in which the "array" cost mode 
could be
&gt; &gt; &gt; &gt; registered, and it seems that using any value other than 
"numerical" or
&gt; &gt; &gt; &gt; "ordinal" would violate a "MUST" in §10.5 of RFC 7285.  
This seems to
&gt; &gt; &gt; &gt; present some procedural difficulties, especially now that 
this document is
&gt; &gt; &gt; &gt; targeting Experimental status rather than Proposed Standard 
(which, to be
&gt; &gt; &gt; &gt; clear, I think was the right thing to do).
&gt; &gt; &gt; 
&gt; &gt; &gt; Indeed this is a big issue. As it also doesn't make sense if we 
use either ordinal or numerical as the cost mode, we cannot fall back to what 
is compatible with RFC 7285. Here is what we have in mind: first we make it 
clear that the new cost mode will violate RFC 7285; second, we restrict the use 
of the cost mode to only the ALTO information resources that enable this 
extension. Here is the proposed text:
&gt; &gt; &gt; 
&gt; &gt; &gt;     Note that the new cost mode violates the requirements that 
cost mode MUST either
&gt; &gt; &gt;     be "numerical" or "ordinal" in Section 10.5 of {{RFC7285}}. 
To avoid
&gt; &gt; &gt;     compatibility issues, an ALTO server MUST NOT use this cost 
mode in an ALTO
&gt; &gt; &gt;     information resource that does not enable this extension.
&gt; &gt; 
&gt; &gt; [just noting that this has been covered downthread already] 
&gt;  
&gt;  Yes. We will reference the PS draft. 
&gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
----------------------------------------------------------------------
&gt; &gt; &gt; &gt; COMMENT:
&gt; &gt; &gt; &gt; 
----------------------------------------------------------------------
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Thanks for fleshing out the security considerations section 
substantially
&gt; &gt; &gt; &gt; in recent revisions, and thanks to Sam Weiler for the 
multiple secdir
&gt; &gt; &gt; &gt; reviews.  While I agree with Sam that it would be nice to 
be able to list
&gt; &gt; &gt; &gt; examples of non-DRM technical measures to protect the 
confidentiality of
&gt; &gt; &gt; &gt; sensitive path vector information, I can't actually think 
of any that
&gt; &gt; &gt; &gt; would be worth listing, myself.  So we may have to proceed 
with the
&gt; &gt; &gt; &gt; current text (unless you have further ideas, of course).
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; It looks like the VersionTag.tag value of 
"d827f484cb66ce6df6b5077cb8562b0a"
&gt; &gt; &gt; &gt; is used in a few different examples.  While being 
associated with
&gt; &gt; &gt; &gt; different VersionTag.ResourceID values is sufficient to 
distinguish the
&gt; &gt; &gt; &gt; uses from each other, it seems like these examples might be 
more
&gt; &gt; &gt; &gt; enlightening if distinct VersionTag.tag values were used 
for the distinct
&gt; &gt; &gt; &gt; resources.
&gt; &gt; &gt; 
&gt; &gt; &gt; Very good suggestion. We will use different version tags in 
different examples.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 1
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    Predicting such information can be very complex without 
the help of
&gt; &gt; &gt; &gt;    ISPs [BOXOPT].  [...]
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I'm not entirely sure which part(s) of [BOXOPT] are being 
referenced here.
&gt; &gt; &gt; &gt; Their scheme seems to involve producing a 
privacy-preserving scheme for
&gt; &gt; &gt; &gt; resource allocation that does involve exchnages between 
client and
&gt; &gt; &gt; &gt; network, just not ones that reveal sensitive information.  
Did I miss a
&gt; &gt; &gt; &gt; part where they compare against a scenario where the 
network/ISP does not
&gt; &gt; &gt; &gt; provide input?  (I only skimmed the paper.)
&gt; &gt; &gt; 
&gt; &gt; &gt; The paper is mainly referenced because of its analysis on the 
NP-hardness of predicting the values without the help of ISPs (in the 
introduction). How about we use the following text to make it clear?
&gt; &gt; &gt; 
&gt; &gt; &gt;    Predicting such information can be very complex without the 
help of
&gt; &gt; &gt;    ISPs, for example, [BOXOPT] has shown that finding the optimal
&gt; &gt; &gt;    bandwidth reservation for multiple flows is NP-hard without
&gt; &gt; &gt;    further information than whether a reservation succeeds.  
&gt; &gt; 
&gt; &gt; Ah!  Yes, that would be a useful clarification.
&gt; &gt; 
&gt;  Great! We will proceed with the proposed text. 
&gt;  
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 4.1
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    *  The ALTO server must expose abstract information on 
the properties
&gt; &gt; &gt; &gt;       of the ANEs used by "eh1 -&gt; eh2" and "eh1 -&gt; 
eh4", e.g., the
&gt; &gt; &gt; &gt;       available bandwidth between "eh1 - sw1", "sw1 - sw5", 
"sw5 - sw7",
&gt; &gt; &gt; &gt;       "sw5 - sw6", "sw6 - sw7", "sw7 - sw2", "sw7 - sw4", 
"sw2 - eh2",
&gt; &gt; &gt; &gt;       "sw4 - eh4" in Case 1.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Does it actually need to expose exactly the available 
bandwidth between
&gt; &gt; &gt; &gt; all those listed pairs of entities?  I would have thought 
that some of the
&gt; &gt; &gt; &gt; details could be abstracted away.
&gt; &gt; &gt; 
&gt; &gt; &gt; Not really. Actually for this use case the information can be 
abstracted as linear constraints. Maybe we should make this more explicit by 
adding the following text:
&gt; &gt; &gt; 
&gt; &gt; &gt;    *  The ALTO server must expose abstract information on the 
properties
&gt; &gt; &gt;       of the ANEs used by "eh1 -&gt; eh2" and "eh1 -&gt; eh4".  
For example,
&gt; &gt; &gt;       an ALTO server can either expose the available bandwidth 
between
&gt; &gt; &gt;       "eh1 - sw1", "sw1 - sw5", "sw5 - sw7", "sw5 - sw6", "sw6 - 
sw7",
&gt; &gt; &gt;       "sw7 - sw2", "sw7 - sw4", "sw2 - eh2", "sw4 - eh4" in Case 
1, or
&gt; &gt; &gt;       expose 3 abstract elements "A", "B" and "C", which 
represent the
&gt; &gt; &gt;       linear constraints that define the same capacity region in 
Case 1.
&gt; &gt; 
&gt; &gt; Thanks, I think that helps introduce the core ideas of this draft. 
&gt;  
&gt;  Sounds good. We will use the proposed text in the next revision. 
&gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 4.2.1
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;                                     For example, assume 
hosts "a", "b",
&gt; &gt; &gt; &gt;    "c" are in site 1 and hosts "d", "e", "f" are in site 2, 
and there
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; In Figure 5, I see something that looks like an entry for 
[d] in the "Site
&gt; &gt; &gt; &gt; 1" part, and an entry for [c] in the "Site 2" part.  I'm 
not sure if
&gt; &gt; &gt; &gt; that's just an attempt to indicate the directionality of 
the core backbone
&gt; &gt; &gt; &gt; or something else.
&gt; &gt; &gt; 
&gt; &gt; &gt; Yes. The figure is trying to illustrate a flow across sites from 
host [c] to host [d]. The reason why [d] is shown in Site 1 is to illustrate 
that the traffic to [d] goes to the backbone in Site 1's network.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 6.4
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    Note that these property types do not depend on any 
information
&gt; &gt; &gt; &gt;    resource.  As such, their ResourceID part must be empty.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Does this mean that the '.' is absent as well?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Yes, indeed. We will make this clear with the following text:
&gt; &gt; &gt; 
&gt; &gt; &gt;    Note that these property types do not depend on any 
information
&gt; &gt; &gt;    resource.  As such, the EntityPropertyName MUST only have the
&gt; &gt; &gt;    EntityPropertyType part.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 6.5.2
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    Note that this cost mode only requires the cost value to 
be a JSON
&gt; &gt; &gt; &gt;    array of JSONValue.  However, an ALTO server that 
enables this
&gt; &gt; &gt; &gt;    extension MUST return a JSON array of ANEName (Section 
6.1) when the
&gt; &gt; &gt; &gt;    cost metric is "ane-path".
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; If we're going to require that the cost mode "array" only 
be used with an
&gt; &gt; &gt; &gt; array of ANEName, then would it make more sense to call the 
cost mode
&gt; &gt; &gt; &gt; "anearray", leaving the generic "array" for a more generic 
behavior?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; This design is actually discussed in early versions of this 
document. See [1]. The main point is that "cost-mode" is the type of the value 
and "cost-metric" is the meaning of the value. I think maybe we can put this as 
a constraint to the cost metric instead of the cost mode, as proposed below:
&gt; &gt; 
&gt; &gt; Looking at this again, I think I may have misread things the first 
time.
&gt; &gt; On re-reading, it seems like the requirement to return an array of 
ANEName
&gt; &gt; is already conditioned on "when the cost-metric is 'ane-path'", which,
&gt; &gt; as you describe, is probably the right condition to use.  I think I 
got
&gt; &gt; confused by the phrase "that enables this extension", since I 
interpreted
&gt; &gt; "this extension" to mean the cost-mode "array" itself, rather than the
&gt; &gt; broader path-vector extension functionality.  So a minor rewording 
might
&gt; &gt; help here; one possible option is '''when the Path Vector procedures 
defined
&gt; &gt; in this document are in use, an ALTO Server using the "ane-path" cost
&gt; &gt; metric and the "array" cost mode MUST return as the cost value a JSON 
array
&gt; &gt; of ANEName.'''
&gt; &gt; 
&gt; &gt; &gt; [1] 
https://datatracker.ietf.org/doc/html/draft-ietf-alto-path-vector-02#section-4.1.3
&gt; &gt; &gt; 
&gt; &gt; &gt;    This cost metric MUST be used when the cost mode is "array" 
unless
&gt; &gt; &gt;    explicitly specified by another extension.  An ALTO server 
MUST
&gt; &gt; &gt;    ensure the returned cost value is an array of ANENames.  The 
client
&gt; &gt; &gt;    MUST also check that each element contained in the array is an
&gt; &gt; &gt;    ANEName (Section 6.1).  Otherwise, the client MUST discard the
&gt; &gt; &gt;    response and SHOULD follow the instructions in Section 
8.3.4.3 of
&gt; &gt; &gt;    [RFC7285] to handle the error.
&gt; &gt; 
&gt; &gt; In light of the above, I would suggest not including the requirements 
in
&gt; &gt; the first two sentences (that effectively make the ANEName the default
&gt; &gt; behavior for the "array" cost mode). 
&gt;  
&gt;  OK. The final text (for the last two comments) will be: 
&gt;  
&gt; When the Path Vector procedures defined in this document are in use,
&gt; an ALTO server using the "ane-path" cost metric and the "array" cost
&gt; mode MUST return as the cost value a JSON array of ANEName and the
&gt; client MUST also check that each element contained in the array is an
&gt; ANEName (Section 6.1).  Otherwise, the client MUST discard the
&gt; response and SHOULD follow the instructions in Section 8.3.4.3 of
&gt; [RFC7285] to handle the error. 
&gt;  
&gt; &gt; 
&gt; &gt; Sorry to have caused confusion here.
&gt; &gt; 
&gt; &gt; &gt; &gt; Section 6.6
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    DOMAIN-NAME:  DOMAIN-NAME has the same format as 
dot-atom-text
&gt; &gt; &gt; &gt;       specified in Section 3.2.3 of [RFC5322].  It must be 
the domain
&gt; &gt; &gt; &gt;       name of the ALTO server.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; (somewhat editorial) is there always exactly one domain 
name of the ALTO
&gt; &gt; &gt; &gt; server (vs. more than one)?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Yes. I think so. In the IRD, each ALTO service is associated 
with exactly one uri and hence has a unique domain name.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 7.2.4
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    object {
&gt; &gt; &gt; &gt;      [EntityPropertyName ane-property-names&lt;0..*&gt;;]
&gt; &gt; &gt; &gt;    } PVFilteredCostMapCapabilities : 
FilteredCostMapCapabilities;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    with fields:
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Up in §7.2.3 we didn't repeat any of the fields from the 
base type we
&gt; &gt; &gt; &gt; inherited from.  Here we do, but (apparently) only because 
we have more to
&gt; &gt; &gt; &gt; say about them, e.g., new restrictions on the 
cost-type-names field to
&gt; &gt; &gt; &gt; include the Path Vector cost type.  Do we want to mention 
that some fields
&gt; &gt; &gt; &gt; are repeated because we make their definiton more specific 
for the
&gt; &gt; &gt; &gt; PVFilteredCostMapCapabilities usage?
&gt; &gt; &gt; 
&gt; &gt; &gt; Very good suggestion. We intend to put the new field after "with 
fields" and then insert a sentence to explicitly say that the others have 
specific restrictions. Here is the proposed text:
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt;    ane-property-names:  ...
&gt; &gt; &gt; 
&gt; &gt; &gt;    This extension also introduces additional restrictions for the
&gt; &gt; &gt;    following fields:
&gt; &gt; &gt; 
&gt; &gt; &gt;    cost-type-names: ...
&gt; &gt; &gt;    cost-constraints: ...
&gt; &gt; 
&gt; &gt; Excellent; thank you! 
&gt;  
&gt;  No problem! We will use the proposed text in the next revision. 
&gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Also, since we're repeating most of the 
FilteredCostMapCapabilities
&gt; &gt; &gt; &gt; fields, is it worth also defining max-cost-types for 
completeness?
&gt; &gt; &gt; 
&gt; &gt; &gt; This extension does not need modification to the max-cost-types 
field. With the proposed change to the previous comment, maybe we can skip 
max-cost-types?
&gt; &gt; 
&gt; &gt; Yes, that seems fine with the "also introduces additional 
restrictions for"
&gt; &gt; text above.
&gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 7.2.6
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    The "Content-Type" header of the response MUST be 
"multipart/related"
&gt; &gt; &gt; &gt;    as defined by [RFC2387] with the following parameters:
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; This could be read as saying that all three parameters are 
mandatory, but
&gt; &gt; &gt; &gt; the actual description for "start" includes the phrase "if 
present",
&gt; &gt; &gt; &gt; implying that it is optional.  Some more clarity would be 
helpful
&gt; &gt; &gt; &gt; (especially relating to whether "boundary" is optional or 
mandatory, which
&gt; &gt; &gt; &gt; RFC 2387 itself does not actually clarify directly).
&gt; &gt; &gt; 
&gt; &gt; &gt; Good point. We explicitly specify for each parameter whether it 
is mandatory or optional. For example:
&gt; &gt; &gt; 
&gt; &gt; &gt;    start:  The start parameter is as defined in [RFC2387] and is
&gt; &gt; &gt;       optional.
&gt; &gt; &gt; 
&gt; &gt; &gt;    boundary:  The boundary parameter is as defined in [RFC2387] 
and is
&gt; &gt; &gt;       mandatory.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    *  The Path Vector part MUST include "Content-ID" and 
"Content-Type"
&gt; &gt; &gt; &gt;       [...]
&gt; &gt; &gt; &gt;       RESOURCE-ID in the "Content-ID" of the Path Vector 
part.  The
&gt; &gt; &gt; &gt;       "meta" field MUST also include the "dependent-vtags" 
field, whose
&gt; &gt; &gt; &gt;       value is a single-element array to indicate the 
version tag of the
&gt; &gt; &gt; &gt;       network map used, where the network map is specified 
in the "uses"
&gt; &gt; &gt; &gt;       attribute of the multipart Filtered Cost Map resource 
in IRD.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Just to confirm, there would not be a need to include in 
this
&gt; &gt; &gt; &gt; "dependent-vtags" field any dependent resources relating to 
persistent
&gt; &gt; &gt; &gt; ANEs?
&gt; &gt; &gt; 
&gt; &gt; &gt; The vtags of dependent resources are used by the property map 
part and here it's for the Path Vector part (which is essentially an ALTO cost 
map). Thus, the interpretation of the Path Vector part only depends on the 
network map.
&gt; &gt; 
&gt; &gt; Thanks for confirming.
&gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;       Vector part MUST be included in the 
"dependent-vtags".  If
&gt; &gt; &gt; &gt;       "persistent-entity-id" is requested, the version tags 
of the
&gt; &gt; &gt; &gt;       dependent resources that MAY expose the entities in 
the response
&gt; &gt; &gt; &gt;       MUST also be included.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; This seems a surprising use of the normative MAY, to me.
&gt; &gt; &gt; 
&gt; &gt; &gt; Thanks for pointing this out. This should not be a normative MAY.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    HTTP/1.1 200 OK
&gt; &gt; &gt; &gt;    Content-Length: 821
&gt; &gt; &gt; &gt;    Content-Type: multipart/related; boundary=example-1;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I'm having a hard time reproducing this Content-Length 
value.  Could you
&gt; &gt; &gt; &gt; double-check it?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; Thanks for the comment. I save the examples and use curl to 
calculate the value. The new value is 859.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 7.3.3
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    POST /ecs/pv HTTP/1.1
&gt; &gt; &gt; &gt;    Host: alto.example.com
&gt; &gt; &gt; &gt;    Accept: 
multipart/related;type=application/alto-endpointcost+json,
&gt; &gt; &gt; &gt;            application/alto-error+json
&gt; &gt; &gt; &gt;    Content-Length: 222
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I'm getting a length of 226 or 227 (depending on newline at 
end of file);
&gt; &gt; &gt; &gt; please confirm that 222 is correct.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; The new calculated value is 227.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 7.3.6
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    boundary:  The boundary parameter is as defined in 
[RFC2387].
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; As I alluded to above, the boundary parameter is actually 
defined in RFC
&gt; &gt; &gt; &gt; 2045; the only appearance in RFC 2387 is in two examples.
&gt; &gt; &gt; 
&gt; &gt; &gt; Thanks for the pointer. I checked RFC 2045 and see it actually 
refers to RFC 2046 (section 5.1.1) for the format of boundary. How about we use 
RFC 2046 instead?
&gt; &gt; 
&gt; &gt; Oops, I must have been too hasty.  Thanks for checking, and yes, it is
&gt; &gt; better to use 2046.
&gt; &gt;  
&gt;  
&gt;  We will use RFC 2046 in the next revision. 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;       The body of the Path Vector part MUST be a JSON 
object with the
&gt; &gt; &gt; &gt;       same format as defined in Section 11.5.1.6 of 
[RFC7285] when the
&gt; &gt; &gt; &gt;       "cost-type" field is present in the input parameters 
and MUST be a
&gt; &gt; &gt; &gt;       JSON object with the same format as defined in 
Section 4.1.3 of
&gt; &gt; &gt; &gt;       [RFC8189] if the "multi-cost-types" field is present. 
 The JSON
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think §4.2.3 of RFC 8189 is somewhat more relevant than 
§4.1.3, here.
&gt; &gt; &gt; 
&gt; &gt; &gt; Yes indeed. We will change 4.1.3 to 4.2.3.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;       The body of the Unified Property Map part MUST be a 
JSON object
&gt; &gt; &gt; &gt;       with the same format as defined in Section 4.6 of
&gt; &gt; &gt; &gt;       [I-D.ietf-alto-unified-props-new].  [...]
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Is §4.6 the right reference here?  I don't see much 
defining a JSON format
&gt; &gt; &gt; &gt; in that section or subsections.
&gt; &gt; &gt; 
&gt; &gt; &gt; Thanks for pointing that out. It should be section 7.6 now.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;       Vector part MUST be included in the 
"dependent-vtags".  If
&gt; &gt; &gt; &gt;       "persistent-entity-id" is requested, the version tags 
of the
&gt; &gt; &gt; &gt;       dependent resources that MAY expose the entities in 
the response
&gt; &gt; &gt; &gt;       MUST also be included.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; As above, this is an unusual use of the normative "MAY".
&gt; &gt; &gt; 
&gt; &gt; &gt; We will change it to "may".
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    HTTP/1.1 200 OK
&gt; &gt; &gt; &gt;    Content-Length: 810
&gt; &gt; &gt; &gt;    Content-Type: multipart/related; boundary=example-1;
&gt; &gt; &gt; &gt;                  type=application/alto-endpointcost+json
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Continuing the theme, please check this Content-Length as 
well.
&gt; &gt; &gt; 
&gt; &gt; &gt; The new calculated value is 845 and we will check the 
content-length for all examples in the document.
&gt; &gt; 
&gt; &gt; Thanks for going through and checking all of them; I think I did stop
&gt; &gt; checking around this point.
&gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 8.4
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    As mentioned in Section 6.5.1, an advanced ALTO server 
may obfuscate
&gt; &gt; &gt; &gt;    the response in order to preserve its own privacy or 
conform to its
&gt; &gt; &gt; &gt;    own policies.  [...]
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Is §6.5.1 the correct reference?  The word "obfuscate" does 
not appear
&gt; &gt; &gt; &gt; therein that I can see.
&gt; &gt; &gt; 
&gt; &gt; &gt; Thanks for pointing that out. There was a paragraph in early 
revisions on obfuscation in 6.5.1 but was later moved into security 
considerations. Here is the proposed text:
&gt; &gt; &gt; 
&gt; &gt; &gt;    Under certain scenarios where the traversal order is not 
crucial, an
&gt; &gt; &gt;    ALTO server implementation may choose to not follow strictly 
the
&gt; &gt; &gt;    physical traversal order and may even obfuscate the order
&gt; &gt; &gt;    intentionally to preserve its own privacy or conform to its 
own
&gt; &gt; &gt;    policies.
&gt; &gt; 
&gt; &gt; That looks okay, thanks. 
&gt;  
&gt;  Sounds good. We will proceed with the proposed text then. 
&gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 8.5
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Is there anything to say about updates needing to be paired 
in the same
&gt; &gt; &gt; &gt; way/for the same reasons we have to use multipart/related 
to get a
&gt; &gt; &gt; &gt; consistent picture of the path vector cost map and its 
associated ANE
&gt; &gt; &gt; &gt; property map?  Or perhaps in §9.3 instead?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Thanks for the comment. We feel 9.3 is more appropriate and 
below is the proposed text:
&gt; &gt; &gt; 
&gt; &gt; &gt;    Additionally, the incremental updates of the Path
&gt; &gt; &gt;    Vector part and the Property Map part MUST be published 
separately,
&gt; &gt; &gt;    where the substream ID of each part MUST have the following 
format:
&gt; &gt; &gt; 
&gt; &gt; &gt;    substream-id '.' part-resource-id
&gt; &gt; &gt; 
&gt; &gt; &gt;    where "substream-id" is the substream ID of the Path Vector 
request
&gt; &gt; &gt;    (e.g., "ecspvsub1" in Section 8.5) and "part-resource-id" is 
the Part
&gt; &gt; &gt;    resource ID (e.g., "ecsmap" for the Path Vector part and 
"propmap"
&gt; &gt; &gt;    for the Property Map part in Section 8.5).
&gt; &gt; 
&gt; &gt; Overall this seems reasonable.  I'd suggest tweaking the wording 
around
&gt; &gt; "MUST be published separately" -- to me, that currently is focusing on
&gt; &gt; "they are not published in the same data structure", but we probably 
want
&gt; &gt; to emphasize "if you publish one, you have to publish the other in 
order
&gt; &gt; for it to be useful".  Perhaps "MUST both be published, as separate
&gt; &gt; updates, where ..."? 
&gt;  
&gt;  I just checked RFC 8895 and realize that RFC 8895 already gives the 
specifications for streaming incremental updates for multipart messages in 
section 6.7.3. Maybe we can simply reference that section as below: 
&gt;  
&gt;  Section 8.5 (example) 
&gt;  
&gt;  When the contents change, the ALTO server will publish the updates
&gt; for each part separately, based on Section 6.7.3 of [RFC8895]. 
&gt;  
&gt;  Section 9.3 (compatibility) 
&gt;  
&gt; This extension is compatible with the incremental update extension
&gt; [RFC8895].  ALTO clients and servers MUST follow the specifications
&gt; given in Sections 5.2 and 6.7.3 of [RFC8895] to support incremental
&gt; updates for a Path Vector resource. 
&gt;  
&gt; &gt; 
&gt; &gt; &gt; &gt; Section 8.6
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    The second part is the same as in Section 8.4
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; It seems only analogous, not "the same as", to me -- this 
example uses
&gt; &gt; &gt; &gt; aggregated ANEs but §8.3 used the full topology of Figure 
10.
&gt; &gt; &gt; 
&gt; &gt; &gt; The second part is actually the same as the second (obfuscated) 
example in Section 8.4. However, to avoid ambiguity, we propose to use the 
following text instead:
&gt; &gt; &gt; 
&gt; &gt; &gt;    The second part contains a Property Map that maps the ANEs to 
their
&gt; &gt; &gt;    requested properties.
&gt; &gt; 
&gt; &gt; Ah, I was presumably going too quickly and just took the first 
example from
&gt; &gt; 8.4 for my diff.  The proposed update looks good regardless, though. 
&gt;  
&gt;  Sounds good. We will proceed with the proposed text. 
&gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;      "endpoint-cost-map": {
&gt; &gt; &gt; &gt;        "ipv4:192.0.2.34": {
&gt; &gt; &gt; &gt;          "ipv4:192.0.2.2":   [[ "NET3", "AGGR1" ], 1],
&gt; &gt; &gt; &gt;          "ipv4:192.0.2.50":   [[ "NET3", "AGGR2" ], 1]
&gt; &gt; &gt; &gt;        },
&gt; &gt; &gt; &gt;        "ipv6:2001:db8::3:1": {
&gt; &gt; &gt; &gt;          "ipv6:2001:db8::4:1": [[ "NET3", "AGGR2" ], 1]
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Is it really plausible to use the same routing cost of 1 
for all three
&gt; &gt; &gt; &gt; paths?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; We use different routing cost values as below:
&gt; &gt; &gt; 
&gt; &gt; &gt;       "endpoint-cost-map": {
&gt; &gt; &gt;         "ipv4:192.0.2.34": {
&gt; &gt; &gt;           "ipv4:192.0.2.2":   [[ "NET3", "AGGR1" ], 3],
&gt; &gt; &gt;           "ipv4:192.0.2.50":   [[ "NET3", "AGGR2" ], 2]
&gt; &gt; &gt;         },
&gt; &gt; &gt;         "ipv6:2001:db8::3:1": {
&gt; &gt; &gt;           "ipv6:2001:db8::4:1": [[ "NET3", "AGGR2" ], 2]
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 11
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Streaming updates of max-reservable-bandwidth seems to 
provide basically
&gt; &gt; &gt; &gt; an equivalent information stream as to what paths have been 
reserved (and
&gt; &gt; &gt; &gt; their bandwidth).  That information might be differently 
sensitive than
&gt; &gt; &gt; &gt; the primary network information we're exposing with the 
path-vector
&gt; &gt; &gt; &gt; methodology, so we should probably mention this 
"information leakage"
&gt; &gt; &gt; &gt; channel and give some guidance about what server behaviors 
might mitigate
&gt; &gt; &gt; &gt; the leakage (e.g., batching updates, though I suspect that 
the policy for
&gt; &gt; &gt; &gt; doing so in a way that minimizes information leakage will 
be about as hard
&gt; &gt; &gt; &gt; a problem to solve as padding policies are in general).
&gt; &gt; &gt; 
&gt; &gt; &gt; True if the server is returning all physical links on the paths. 
However, a major point of introducing (ephemeral) abstract network element is 
trying to hide such information. For example, with the obfuscation methods 
(e.g., only returning the linear constraints), only the "bottlenecks" will be 
revealed and their orders can be arbitrary. We did say in section 11 that these 
obfuscation methods should be considered/adopted (e.g., reference [NOVA]), 
though. Do you think we should make this more specific for the 
"max-reservable-bandwidth" property? 
&gt; &gt; 
&gt; &gt; Since we only define "max-reservable-bandwidth" and 
"persistent-entity-id",
&gt; &gt; it seems like the reader has a pretty clear indication that the 
obfuscation
&gt; &gt; concerns apply to "max-reservable-bandwidth".  I don't think we need 
to
&gt; &gt; make the references to the obfuscation techniques more prominent here.
&gt; &gt; 
&gt; &gt; I mostly wanted to draw the reader's attention to the causitive
&gt; &gt; relationship that when "max-reservable-bandwidth" changes, that means 
that
&gt; &gt; one or more reservations has been made or changed.  The process of
&gt; &gt; streaming individual updates to the max-reservable-bandwidth at many 
places
&gt; &gt; in the network, even in an abstract topology, does not just give
&gt; &gt; information about the network but also gives information about other
&gt; &gt; consumers of the network.  This sort of "non-local" effect 
(information
&gt; &gt; nominally about the network revealing information about other 
consumers of
&gt; &gt; the network" is what seemed worth highlighting, to me. 
&gt;  
&gt;  Got it. This makes sense. Here is the proposed text: 
&gt;  
&gt;  The ALTO service providers must be aware that providing incremental
&gt; updates of the "max-reservable-bandwidth" may provide information
&gt; about other consumers of the network.  For example, a change of the
&gt; value may indicate one or more reservations has been made or changed.
&gt; To mitigate this risk, an ALTO server CAN batch the updates and/or
&gt; add a random delay before publishing the updates. 
&gt;  
&gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I'm a little surprised that we didn't mention anything 
about persistent
&gt; &gt; &gt; &gt; ANEs here (which would be a great way to contrast with the 
obfuscation
&gt; &gt; &gt; &gt; that ephemeral ANEs provide).
&gt; &gt; &gt; 
&gt; &gt; &gt; Good point. We will think about this and propose some new text 
soon. 
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; MIME parsers have historically been a recurring source of
&gt; &gt; &gt; &gt; security-relevant bugs in other contexts.  Perhaps that's 
sufficiently
&gt; &gt; &gt; &gt; well known to not need restating here, though.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    For risk type (3), an ALTO server MUST use dynamic 
mappings from
&gt; &gt; &gt; &gt;    ephemeral ANE names to underlying physical entities.  
Thus, ANE names
&gt; &gt; &gt; &gt;    contained in the Path Vector responses to different 
clients or even
&gt; &gt; &gt; &gt;    for different request from the same client SHOULD point 
to different
&gt; &gt; &gt; &gt;    physical entities.  [...]
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; The guidance of "SHOULD point to different physical 
entities" doesn't seem
&gt; &gt; &gt; &gt; quite right.  If the ANE abstraction actually attempted to 
maximize the
&gt; &gt; &gt; &gt; number of distinct physical entities represented, that 
seems lke it would
&gt; &gt; &gt; &gt; make graph reconstruction easier, rather than harder.  
Perhaps it is
&gt; &gt; &gt; &gt; better to give guidance about noncorrelation over time of 
the ANE
&gt; &gt; &gt; &gt; name/physical element mapping, or even guidance to just use 
randomized ANE
&gt; &gt; &gt; &gt; names.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; The sentence is trying to say that the same ANEName (e.g., ane1) 
should not point to the same entity. We agree the guidance might be misleading 
and the randomized ANE names can be a good option. We will propose the new text 
soon.
&gt; &gt; 
&gt; &gt; Okay.  I think on my third reading or so I came to the tentative 
conclusion
&gt; &gt; that the intent was to say "don't use the same ANEName for the same 
entity
&gt; &gt; over time", but I wasn't entirely sure about it.  This is still good
&gt; &gt; guidance to give, even if we do also give guidance about randomized 
ANE
&gt; &gt; names. 
&gt;  
&gt;  We propose the following text to clarify this (along with the persistent 
ANE): 
&gt;  
&gt;  For risk type (3), an ALTO service provider must be aware that
&gt; persistent ANEs may be used as "landmarks" in collaborative
&gt; inferences.  Thus, an ALTO server MUST use dynamic mappings from
&gt; ephemeral ANE names to underlying physical entities.  Specifically,
&gt; for the same physical entity, an ALTO server SHOULD assign a
&gt; different ephemeral ANE name when the entity appears in the responses
&gt; to different clients or even for different request from the same
&gt; client.  A RECOMMENDED assignment strategy is to generate ANE names
&gt; from random numbers. 
&gt;  
&gt; &gt; 
&gt; &gt; &gt; &gt; Section 13.1
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I don't think RFC 4271 needs to be classified as normative; 
we seem to
&gt; &gt; &gt; &gt; only reference it as an analogy for the Path Vector/AS Path.
&gt; &gt; &gt; 
&gt; &gt; &gt; Good point. We will make it informative.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 13.2
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    [BOXOPT]   Xiang, Q., Yu, H., Aspnes, J., Le, F., Kong, 
L., and Y.R.
&gt; &gt; &gt; &gt;               Yang, "Optimizing in the dark: Learning an 
optimal
&gt; &gt; &gt; &gt;               solution through a simple request interface", 
Proceedings
&gt; &gt; &gt; &gt;               of the AAAI Conference on Artificial 
Intelligence 33,
&gt; &gt; &gt; &gt;               1674-1681 , 2019.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; It looks like this is 
https://doi.org/10.1609/aaai.v33i01.33011674 ; if
&gt; &gt; &gt; &gt; so, including the DOI link would be very helpful for 
readers.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; That's just the one I happend to go pull up; DOIs for the 
other papers (if
&gt; &gt; &gt; &gt; available) should be included, too.
&gt; &gt; &gt; 
&gt; &gt; &gt; OK. We will add the DOI link for each academic paper.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; NITS
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 1
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    Map that contains the properties requested for these 
ANEs.  To
&gt; &gt; &gt; &gt;    enforce consistency and improve server scalability, this 
document
&gt; &gt; &gt; &gt;    uses the "multipart/related" message defined in 
[RFC2387] to return
&gt; &gt; &gt; &gt;    the two maps in a single response.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think it's more typical to say "content type" than 
"message" in this
&gt; &gt; &gt; &gt; context.
&gt; &gt; &gt; 
&gt; &gt; &gt; We will modify as suggested.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 3
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;       performance of traffic.  An ANE can be a physical 
device such as a
&gt; &gt; &gt; &gt;       router, a link or an interface, or an aggregation of 
devices such
&gt; &gt; &gt; &gt;       as a subnetwork, or a data center.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think we do not want a comma before "or a data center", 
since the data
&gt; &gt; &gt; &gt; center is just another example of an aggregation of devices.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; We will modify as suggested.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 4.1
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    performance.  The capacity region information for those 
flows will
&gt; &gt; &gt; &gt;    benefit the scheduling.  However, Cost Maps as defined 
in [RFC7285]
&gt; &gt; &gt; &gt;    can not reveal such information.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I'm not sure I know what "capacity region information" is; 
did we mean
&gt; &gt; &gt; &gt; "region capacity information" (or maybe "Knowledge of the 
relevant
&gt; &gt; &gt; &gt; capacity regions for those flows")?
&gt; &gt; &gt; 
&gt; &gt; &gt; We change the term to "constraints on feasible rate allocations 
of those flows" which may be clearer.
&gt; &gt; 
&gt; &gt; That seems more clear, thanks.
&gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    With the ALTO Cost Map, the cost between PID1 and PID2 
and between
&gt; &gt; &gt; &gt;    PID1 and PID4 will be 100 Mbps.  The client can get a 
capacity region
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I'd suggest "will both be".
&gt; &gt; &gt; 
&gt; &gt; &gt; We will modify as suggested.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 4.2.1
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    With the Path Vector extension, a site can reveal the 
bottlenecks
&gt; &gt; &gt; &gt;    inside its own network with necessary information (such 
as link
&gt; &gt; &gt; &gt;    capacities) to the ALTO client, instead of providing the 
full
&gt; &gt; &gt; &gt;    topology and routing information.  [...]
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I'd suggest adding "or no bottleneck information at all".
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; We will modify as suggested.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 4.2.2
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    in various documents (e.g., [SEREDGE] and [MOWIE]).  
Internet Service
&gt; &gt; &gt; &gt;    Providers may deploy multiple layers of CDN caches, or 
more generally
&gt; &gt; &gt; &gt;    service edges, with different latency and available 
resources
&gt; &gt; &gt; &gt;    including number of CPU cores, memory in Gigabytes (G), 
and storage
&gt; &gt; &gt; &gt;    measured in Terabytes (T).
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; The units are probably not relevant for the abstract 
scenario, and would
&gt; &gt; &gt; &gt; only become relevant when we start introducing Figure 6 as 
a specific
&gt; &gt; &gt; &gt; instantiation of the multi-layer model.
&gt; &gt; &gt; &gt;
&gt; &gt; &gt; 
&gt; &gt; &gt; We propose the following text:
&gt; &gt; &gt; 
&gt; &gt; &gt;    ... Internet Service
&gt; &gt; &gt;    Providers may deploy multiple layers of CDN caches, or more 
generally
&gt; &gt; &gt;    service edges, with different latency and available resources
&gt; &gt; &gt;    including number of CPU cores, memory, and storage.
&gt; &gt; &gt; 
&gt; &gt; &gt;    For example, Figure 6 illustrates a typical edge-cloud 
scenario where
&gt; &gt; &gt;    memory is measured in Gigabytes (G) and storage is measured in
&gt; &gt; &gt;    Terabytes (T).
&gt; &gt; 
&gt; &gt; Perfect!
&gt; &gt; 
&gt; &gt; Thanks again for the explanations and updates, it sounds like we are
&gt; &gt; getting to a good place. 
&gt;  
&gt;  Sounds good. We will proceed with the proposed text. 
&gt; &gt; 
&gt; &gt; -Ben
&gt; &gt; 
&gt; &gt; &gt; &gt; Section 5.1.3
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    Specifically, the available properties for a given 
resource are
&gt; &gt; &gt; &gt;    announced in the Information Resource Directory as a new 
capability
&gt; &gt; &gt; &gt;    called "ane-property-names".  The selected properties 
are specified
&gt; &gt; &gt; &gt;    in a filter called "ane-property-names" in the request 
body, and the
&gt; &gt; &gt; &gt;    response includes and only includes the selected 
properties for the
&gt; &gt; &gt; &gt;    ANEs in the response.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Going from the first to second sentence, we switch from 
using the string
&gt; &gt; &gt; &gt; "ane-property-names" to refer to the available properties 
announced in the
&gt; &gt; &gt; &gt; IRD, to using it to refer to the properties that a client 
supplies in a
&gt; &gt; &gt; &gt; path vector query for use in filtering the response 
results.  To help the
&gt; &gt; &gt; &gt; reader make this transition smoothly, I suggest rephrasing 
the transition,
&gt; &gt; &gt; &gt; perhaps to something like "The properties selected by a 
client as being of
&gt; &gt; &gt; &gt; interest are specified in the subsequent Path Vector 
queries using the
&gt; &gt; &gt; &gt; filter called 'ane-property-names'."
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; Good point. We will modify as suggested.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 5.3
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    1.  Since ANEs may be constructed on demand, and 
potentially based on
&gt; &gt; &gt; &gt;        the requested properties (See Section 5.1 for more 
details).  If
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Incomplete sentence.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; We will remove "Since".
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Section 6.2.4
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    multipart response.  Meanwhile, for persistent ANEs 
whose entity
&gt; &gt; &gt; &gt;    domain name has the format of "PROPMAP.ane" where 
PROPMAP is the name
&gt; &gt; &gt; &gt;    of a Property Map resource, PROPMAP is the defining 
resource of these
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Is it better to say "name" of "ResourceID"?
&gt; &gt; &gt; 
&gt; &gt; &gt; We propose to change the "name" to "resource ID".
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; _______________________________________________
&gt; &gt; &gt; &gt; alto mailing list
&gt; &gt; &gt; &gt; [email protected]
&gt; &gt; &gt; &gt; https://www.ietf.org/mailman/listinfo/alto
&gt; &gt; &gt; </[email protected]></[email protected]>
&gt; 
&gt; 
&gt; </[email protected]></[email protected]></[email protected]></[email protected]>
&gt; _______________________________________________
&gt; alto mailing list
&gt; [email protected]
&gt; https://www.ietf.org/mailman/listinfo/alto
</[email protected]></[email protected]>
_______________________________________________
alto mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/alto

Reply via email to