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

Martin Duke <> Mon, 03 May 2021 18:00 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 413173A1E8B for <>; Mon, 3 May 2021 11:00:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id OjtgQ9BY4bx0 for <>; Mon, 3 May 2021 11:00:49 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4864:20::12c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 89A253A1E92 for <>; Mon, 3 May 2021 11:00:49 -0700 (PDT)
Received: by with SMTP id j12so4324104ils.4 for <>; Mon, 03 May 2021 11:00:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=G/ixN2iVPryl4qP3qMtAkSxMy5e70swuIz7uhBoYwto=; b=Yt7GOzbk2MFqTerYF4S92kb+W+WmIsQXhl3icQc6t3J6DDMV8va1STs6YX5sMTVwhE CyMAURdJTeIS8xQF1tntIERjTJV9dFCyyonvcwGmBWlGJtfPxrijltWh4+9PkByN+7Lb B3LPldureN5rJPrNu4UGAc4yd761JX3lIzVD39sfF90KkmqMOnI+khyl856Z5Ik/6TQv q5pYqQzWt7Q68XEj3EAHbvrh9jQVKLiVVPr749hQOEdEXn6IGI5skQlpdfDdC+OX8jYt 5lrzTh4uHG8WwdCNMhQLkI2v4ACIaPwQ4e4ecgiVNQIKeZMDG8oUktnFU3qM3MBuWmmq aVwA==
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=G/ixN2iVPryl4qP3qMtAkSxMy5e70swuIz7uhBoYwto=; b=jBHHXJvgpTnx20B9LDbDdcuog8ybX8GmZYnHJN7ZjcZ+jjuFt87SsSQDs+Y7UnGT3Q aE9AKd5zvGFbAkoWJBSLLCOnJGpccVYjPF7PBpCkrEOpSsjdHg5x220bVlGHYRAlxNP9 rlpycqVSJ/ohlWXoFkXsVGE3ukevGxHt+tv8EpbXngcDTqBS9rBhwx7qdt9YQbrf16oY p8c14n8yVnHyNEliAmoMxtGRwRm/OAhR7Nsy6AWoIqvjnYFINUZsTJf/nUAfQTcgLVN7 6g6IpUUeFn/dDw5FjA3wNMZZWX/1K5vqOAehzlN+vrSuKgfTTYsqg6N6ef4ODs/52RGX 8qQA==
X-Gm-Message-State: AOAM530ZxjV4NiAScVmB/gpguFqXUG7xtBLTu2juTRVTS7KPQlJ/azis rYpUiJP5aVYarzG1K3g+/nJZ82YkVpTMTHYcqb9DIX7ph8MqPw==
X-Google-Smtp-Source: ABdhPJxtXnAkkp361nl/SYLNj9UcX+vNu6rCfgfqau9TsSwyAlts4l8I6xEbDhW7cjjs+EB4iwR0TEU4tavrexIUW8Y=
X-Received: by 2002:a05:6e02:ea9:: with SMTP id u9mr9805339ilj.303.1620064848186; Mon, 03 May 2021 11:00:48 -0700 (PDT)
MIME-Version: 1.0
References: <> <> <> <>
In-Reply-To: <>
From: Martin Duke <>
Date: Mon, 3 May 2021 11:00:46 -0700
Message-ID: <>
To: "Y. Richard Yang" <>
Cc: IETF ALTO <>, Brian Trammell <>
Content-Type: multipart/alternative; boundary="000000000000ca10aa05c170bd56"
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: Mon, 03 May 2021 18:00:54 -0000

Hi Richard,

Replies inline.

On Thu, Apr 8, 2021 at 1:04 PM Y. Richard Yang <> wrote:

> If the intent is that it be machine-readable, then there are several
>> places where this standard is going to need more standardization (i.e.
>> precise definition of text fields).
> Some of the authors discussed the issue and feel that going down the path
> of making the content machine-readable, in a systematic way, adds
> substantial complexity.

OK, let's just make the intent clear in the draft.

> .
>> But zooming out: I understand that the point is that "the client knows
>> more about the context," which is pretty much what 5.1 says. But I don't
>> understand if the "client" is the user or a user agent, and what either one
>> would actually do with the information. Would the application execute a
>> policy based on the source? Why would it use a latency that came from an
>> sla, but not from measurement? etc.
> This is a good comment. Here is an example (
> that motivated some
> early discussions. In this example, AT&T post both target (aka sla. should
> we change the name from sla to service-level-target?) and actual
> measurements. In this sense, ALTO can be considered as a standard way of
> providing and update the information. Both target and actual values can be
> useful. Make sense?

So this use case is about allowing users to query performance metrics for
consumption by humans, rather than by automated clients trying to pick a
server? This seems like a lot of machinery for that purpose, but if this is
important to the WG than OK. Let's just write down how this context info
can be used, if this is the strongest use case.

>>>> - 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?
>> That privacy information is alright, but exposing the details of
>> third-party SLAs deserves special attention.
> Yes.
>> But to follow up your answer: if the client has a better SLA than the
>> target, this won't show up in the metrics at all?
> Now I see that I need to clarify. The metric is end-to-end, from src IP to
> dst (target) IP. Does this clarify? I can add a sentence to clarify this.

Yes, that clarifies it. It also spurs my first followup question: does this
link to client authentication in some way, or can anyone impersonate a
client to get its SLA?

>>> - 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.
>> OK, I now understand that "import" implies a specific set of parameters.
>> I can't understand what value this distinction has, but that just circles
>> around to me not understanding the cost-source information at all.
> I see. Let me try to clarify slightly differently. import means that the
> ALTO server can provide a precise source of information using specific
> parameters, and estimate is that it comes from a black-box (the server does
> not reveal). Thinking about it a bit more, we can go down the path of
> specifying a precise format (rfc/section just as ippm) when specifying
> import. Will this be a direction that you want to go?

I don't have a strong opinion on the outcome, except that it is strongly
motivated by a use case and have semantics consistent with that use case.
There can be loosely defined contexts that are designed to be human
readable, which allows end users to see the QoS they're getting. Or, it can
be machine readable allowing policy to execute off of it, but I'm not 100%
sure why policy would care about the context.

>>> - 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?