Re: [alto] AD review of draft-ietf-alto-performance-metrics-15

"Y. Richard Yang" <> Sat, 03 April 2021 01:18 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C3DBE3A1320 for <>; Fri, 2 Apr 2021 18:18:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.398
X-Spam-Status: No, score=-1.398 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 4TyIdKmJFthu for <>; Fri, 2 Apr 2021 18:18:35 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id DD0EA3A131F for <>; Fri, 2 Apr 2021 18:18:34 -0700 (PDT)
Received: by with SMTP id i26so9641376lfl.1 for <>; Fri, 02 Apr 2021 18:18:34 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=/ofsfTee0XMP4qdNZ4kIHDOVdFQltPmUOk02D+/Jp0c=; b=Vhw1LrS4lQLaTNo6UL2YybVqqrVND2U/gZNftWjBcwfy7y1qOxYORkm+2LV1U1bUhL kJ6wlJ889PCcZ8jnVDA65hKSrSS9RGNLyHCrVSHqfDwRU9Xksq6y03OXRQr3ECozUEAN tLUaHZcDWk2ntaZBoJdDe7SIyxqC/fbaLRJQ8HQluuAjAl5oYP1FZ8gxlGwHeg1mt04A QP9+sMP4BfkLQ/QOwdz3+gk36FtBO+vYY+6teWDOJ2ZMzLLGE3zMG9yxV2tA0cgRpDhZ x86HasZpy1qlPtFBIi1Kh5H6VY1QugCC4ndz+clgKGpKG+JuGWifcPxdGyfFQe1C2d7Y Qu+g==
X-Gm-Message-State: AOAM530zsHdISidqSZuTQtkYtLV/QDxqLMLZYNNvQMGlCDbTkpfwlMCC ISn6XwLJzf5M2KLznaMeDQJa9b6JP78WbAFZFliUZakSgjEBPw==
X-Google-Smtp-Source: ABdhPJx60var3+prT/og/6XNN1RMqbsszF+lnRLLPLaHni6FXkxPss5zV2GgOr/fpMPiEZDiba9mQKyCjOkSPzZHQqE=
X-Received: by 2002:ac2:58fc:: with SMTP id v28mr9988055lfo.201.1617412712033; Fri, 02 Apr 2021 18:18:32 -0700 (PDT)
MIME-Version: 1.0
References: <>
In-Reply-To: <>
From: "Y. Richard Yang" <>
Date: Fri, 02 Apr 2021 21:18:21 -0400
Message-ID: <>
To: Martin Duke <>
Cc: IETF ALTO <>, Brian Trammell <>
Content-Type: multipart/alternative; boundary="00000000000027f15a05bf073ed7"
Archived-At: <>
Subject: Re: [alto] AD review of draft-ietf-alto-performance-metrics-15
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: Sat, 03 Apr 2021 01:18:40 -0000

Hi Martin,

Thank you so much for the wonderful review. Please see below.

On Mon, Mar 29, 2021 at 2:35 PM Martin Duke <> wrote:

> Hello authors,
> Thank you very much for writing this draft. It is clearly a useful
> extension to ALTO and is quite clearly written, even to someone who is not
> a practitioner. I have numerous comments/questions and a few nits.
> These points are all invitations to discussion, rather than commands about
> what to change, as I've missed much of the WG deliberations that led to
> this text.
> - There are six authors. Having more than 5 editors/authors listed on the
> front page requires strong justification and chair/AD approval. See the RFC
> Editor statement [1]. You are encouraged to designate a few editors for the
> front page and list as many authors as desired at the end.
I saw in the next email that this could be OK. Thanks for the follow-up

> - Sec 2.1. The cost-source model is conceptually sound, but the
> justification for it seems underexplained. What exactly is a client going
> to do with this information? What different behaviors would a client
> execute if the context was e.g. "sla" instead of "nominal?" To the extent
> the parameters are not machine readable, like links to webpages, are we
> really expecting this information to be presented to the humans behind ALTO
> clients?

Good comment. This is a point which the WG indeed discussed multiple times.
The decision was that providing the source will give the server the ability
to indicate the source, and the client knows more about the context. Some
operational aspects are discussed in Sec. 5.1. There were some discussions
on potential normative specifications on the client-side and/or the
server-side, but the final decision is that ALTO provides non-normative
information. For example, the basic cost values are non-normative, and only
best-effort information. There can be out-of-ALTO control loops, for
example, business contracts, and the cost-source supports indication of
such information channel.

The comment on clarifying whether the info will be for humans behind is a
great one. One use case setting discussed is that the link can provide
machine-readable specifications such as a machine-readable language
specifying the measurement parameters, but this is considered out of scope.
Will you recommend that we include more some more elaboration in the
operational considerations section (i.e., extending Sec. 5.1)?

> - Sec 2.1 I am confused about the meaning of the "sla" cost-source. Does
> this refer to an SLA the ALTO client has with the network? Between the
> target IP and the network? Or something else? If the first, does this link
> to client authentication in some way? If the second, what are the privacy
> implications of exposing these SLAs?

It is target IP and the network. Here is some text in the current version
on the authentication and privacy aspects (Sec. 6):
"Indeed, TE
   performance is a highly sensitive ISP information; therefore, sharing
   TE metric values in numerical mode requires full mutual confidence
   between the entities managing the ALTO server and the ALTO client.
   ALTO servers will most likely distribute numerical TE performance to
   ALTO clients under strict and formal mutual trust agreements.  On the
   other hand, ALTO clients must be cognizant on the risks attached to
   such information that they would have acquired outside formal
   conditions of mutual trust."

Will this be OK?

- Sec 2.1. Related to the above, the text suggests that any cost-source
> expressed as "import" could also be expressed as "estimation". Why would
> the server do this? The text should say, or perhaps it would be
> conceptually cleaner if "estimation" and "import" were mutually exclusive
> sources by definition.

In the early WG discussion, they were considered separate, and then the
agreement was that import is a special case of estimation, with more
specific dependency tracking. Consider data provenance of how the ALTO data
are computed. Estimation means that the server does not want to indicate
the specific details, and the important gives a precise indication of the
exact protocols.

> - Sec 3. I would prefer it if the parameters field in each of these
> definitions was a bit more strict. This relates to my confusion about
> machine-readable vs. human readable data; if this is meant to be
> machine-readable, then e.g. Sec 3.4.4 should be more specific in spelling
> out that the IGP protocols should be in a format with the RFC number, for
> instance. If it's to be human readable for a purpose I don't understand,
> then these looser definitions are probably OK.
This is a very good comment as well! One possibility discussed was
following (the format such as those specified in
using a format such as RFCXXXXsecY, but such very specific specification
will cause moving dependency. Hence, the decision was to make the link
opaque to be agreed between the client and the server.

> - Sec 3.4 Unlike the other metrics, I have no idea what a client is to do
> with the hop count metric, since clients don't care about hop count. Hops
> only affect users through delay and loss rate, which is present in other
> metrics. Is the intent here to provide a proxy for delay when direct delay
> information is not available? If so, we should say so.
Yes. There are some settings such as a data center where such a proxy
appears to be reasonable.

> - Sec 5.3. I suggest a reword.
> OLD:
> To address this issue, the only defined "routingcost" metric can be
>    only "estimation".
> NEW:
> To address this issue, if the "routingcost" metric contains a cost-context
> field, it MUST be "estimation."
Sounds good.

> What should clients do if it's not "estimation?" Can they use it or reject
> the metric
> as malformed?
The basic design guideline of ALTO information is that if the client does
not understand or trust the information, the client should just ignore it.
The base protocol (RFC7285) discussed false or modified (RFC 7285 Sec.
15.1.1) and undesirable (RFC7285, Sec. 15.2.1). The basic guideline
(RFC7285, Sec. 8.3.7, "ALTO implementations MUST ignore unknown fields when
processing ALTO messages."). So I will say reject if not a valid source.

> - Sec 5.4.1: "...the ALTO server may provide the client with the validity
> period of the exposed metric values."
> Shouldn't there be a standard format for this? Or are you implying the use
> of cost-calendar?

Good catch. The decision of the WG at the time was to use HTTP whenever
possible. For example, the freshness is indicated by HTTP timestamp (see
Sec. 5.2); by consistency, then, we should use HTTP Expires. We can add
this. Agree?

> - Sec 5.4.2: I don't understand what this section is saying. Can the
> server provide new metrics not in the spec? Or is it saying that the server
> can take singletons about link one-way delays and compose path one-way and
> two-way delays, for example?
Your second understanding (from link to path composition) is correct.
Reading this paragraph again, I agree that it can be revised a bit to
clarify. The basic issue is that the "source" information can often be link
level. For example, routing protocols often measure and report only per
link loss, not end-to-end loss; similarly, routing protocols report link
level available bandwidth, not end-to-end available bandwidth. We can take
a quick pass to make sure it has only the second understanding.

> - Sec 1. An initial sentence introducing ALTO at the beginning would be
> helpful, e.g.
> "ALTO [RFC 7285] provides a means for client to identify the most
> efficient information source when multiple copies of such information
> exist, by quering path information from an HTTP server."
Sounds good. We will revise.

> - Sec 2. The second paragraph is a little hard to read. Suggestion:
> OLD:
> On the other hand, to be able to use coarse-grained information such
>    as routing system information (e.g., [RFC8571 <>]), which may not
>    provide fine-grained information such as (iii) Method of Measurement
>    or Calculation and (vi) Measurement Timing, this document provides
>    context information to indicate the source of information and hence
>    available metric details.
> NEW:
>   This document specifies context information to indicate the metric
> source, which can allow clients to obtain fine-grained information like
> (ii) Method of Measurement or Calculation and (vi) Measurement Timing."
OK. Thanks!

> - Sec 2.1 In Fig. 1, please expand "NBI" on first use.
Jan mentioned this as well, but it was fixed in a version which we did not
upload it. Will do in the next upload.

> - Sec 3.1.3 Expand "PID" on first use.
Will do.

> - Sec 3.1.4 s/recommended/RECOMMENDED

> - Sec 3.4 s/metric hopcount/hopcount metric

> - Sec 4.1.3 would this be correct: s/give the throughput/give the maximum
> throughput
The intention is the TCP/Reno-friendly throughput. References include
RFC3649 and Sec. 5.1 of RFC 8312.

- Sec 6. s/is a highly sensitive/is highly sensitive
Sounds good.

Thank you so much!


> Thanks
> Martin
> [1]
> _______________________________________________
> alto mailing list