Re: [alto] Comments on the Path-Vector draft during IETF 102

Qiao Xiang <> Mon, 20 August 2018 07:02 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C3A8F130E29 for <>; Mon, 20 Aug 2018 00:02:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.749
X-Spam-Status: No, score=-1.749 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id dlqO8E4ThpBr for <>; Mon, 20 Aug 2018 00:02:56 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:4864:20::52d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 74D44130DE0 for <>; Mon, 20 Aug 2018 00:02:55 -0700 (PDT)
Received: by with SMTP id s10-v6so474483edb.11 for <>; Mon, 20 Aug 2018 00:02:55 -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=xChvWICCZkigsk7g85cpf/YReDnCD132iUiUCYYXhVc=; b=qEIfv3VfqHsEBlXGpaJLNynQKB0GvOSU1rO0OIeGIXcrvkoSkkknCRMpnvoSswUNqv gXLFBtoQFHNl5QPRTgLQ8l0xqZNPyXSMGAO4FgV6MRJE/k9XZxn/VYzmQKI28YJbV5yF +YLp0aZNu/XeyckMmFErib8YOktc7nzIt2AaecCt87kNFmt51jgAD9MQImW/Ga8jOKXk VgnKswRsy+VZZu2F4qbjIs1sjyxb4CJQLs2r+Gv5Rg14O9wW3LyoQlaIQ0Ev5elLQP9b 76Amfd+ZHX86PdWaabhdotS7eiDgtE+zSAkDsPz0rAXBSfAueDEiQkOofsIRYFycLFQA ROSw==
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=xChvWICCZkigsk7g85cpf/YReDnCD132iUiUCYYXhVc=; b=i5QUvjzd85cuaP2KzxDT24YgocCK41uSUmckUIER3c4JsdA0XmuwMtXl4A2774wdig lAesjvS6kGdR8xVmFgsQ9RIUtr8pTaC5NZHECA8j4ZUYyEZeTEE2ImW1cqhAPmLxRhrA sb0udR91pCvu6KGh7QtYS8ddxUlqcelf/R+rV4Zk6joFo8IJ5vOiU3XMr7pDk5qUjHT2 jaK/thQyVuIrEctv3pyGsKCuPT1WpTZmQd9wem/25LWbx8RoiWXBFx2arM8FAe6x3fp3 HetClpYLp2RyAc+cAeZWFfTRaktFjEsWwNYObFre2SQG6/UWvdPtMv6AoDgjTjNjBqx7 U65w==
X-Gm-Message-State: AOUpUlE1s/J2OUw9dBJxFEO9VnGRMmJqF2qgeWzDwTjiTRdQe0nAULfe LDGOAqscUXfHeoLJ31HYFXPrU33zDKn+Ki+g2vMrg5U7
X-Google-Smtp-Source: AA+uWPyrYZFas0JuVekswtWklzaOAENKKrB8X9anKS7+gQ+JUg2B5lFAaLiUbL8A8hz0nhRUgW6IEEAhZGV1llAlffU=
X-Received: by 2002:a50:dacf:: with SMTP id s15-v6mr53300343edj.241.1534748573980; Mon, 20 Aug 2018 00:02:53 -0700 (PDT)
MIME-Version: 1.0
References: <> <>
In-Reply-To: <>
From: Qiao Xiang <>
Date: Mon, 20 Aug 2018 08:02:43 +0100
Message-ID: <>
Content-Type: multipart/alternative; boundary="000000000000925d530573d87f7c"
Archived-At: <>
Subject: Re: [alto] Comments on the Path-Vector draft during IETF 102
X-Mailman-Version: 2.1.27
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, 20 Aug 2018 07:02:58 -0000

Hi Dawn,

Thanks for clarifying it. It seems that you are referring to multicast,
where one source has multiple destinations?

In multipath routing, the traffic is still from one source to one
destination, only with different portions of the whole traffic are
forwarded along different paths. So the cost is still "one value" (where
this value is a path vector). With the one-source-one-destination paradigm,
the ALTO base protocol can still support it with ECS/Cost map, and other
extensions, right?

In my proposal, regardless of multipath/multicast, the cost is still "one
value", where this value is a set/vector of route segments (same as path
vectors). So the problem you just described does not exist, right? To
support multicast, the query specifications of ECS/Cost map need to be
changed to allow the one-source-multiple-destination query, but I think
it's also doable.

Do I understand your concern correctly? Or you are referring to other
issues? Thanks.


On Mon, Aug 20, 2018 at 3:05 AM Dawn Chen <>; wrote:

> Hi Qiao,
> For the second issue Handling multipath, I would think it is a general
> problem not specific to path vector. Actually, base ALTO protocol also has
> such problem. Current base ALTO protocol only has one cost value between a
> source-destination pair. Similar to base ALTO protocol, multi-cost, cost
> calendar also adopt such setting. So, instead of considering multipath in
> path vector, I suggest that the multipath consideration can be a general
> consideration that will include base ALTO protocol, multi-cost… if possible.
> Thanks,
> Dawn
> ________________________________________
> From: alto <>; on behalf of Qiao Xiang <
> Sent: Wednesday, August 8, 2018 4:48 AM
> Subject: [alto] Comments on the Path-Vector draft during IETF 102
> Dear authors of the PV draft and the ALTO WG members,
> Before and during IETF 102, I raised a couple of issues about the path
> vector draft: (1) why we use a vector of abstract network element (ANE)?
> and (2) update the current PV design to support multicast/multicast. It was
> suggested during IETF 102 that we move this discussion to the mailing list.
> Hence the following are my opinions in detail:
> 1. The design choice of using "array/sequence/list of abstract network
> elements (ANEs)".
> We all know that the concept "path vector" in this draft was highly
> motivated by BGP, a path-vector interdomain routing protocol. In BGP, a
> path vector encodes an AS path, which provides the semantics that to reach
> a destination IP prefix, which ASes will be traversed in what "order". The
> AS-path vector has semantics: (1) the first one in the vector is the
> neighbor AS providing this route, (2) the last one is the destination AS
> providing the destination IP prefix, (3) The ASes in between help provide
> information about inter-AS connectivity. In contrast, a path vector in ALTO
> is an ANE-path. What semantics does it have? In order words, why does the
> order of ANEs matter? One may argue that it may help provide information
> like "a flow will pass through a firewall middlebox before entering a DPI
> middlebox", but why would a network operator want to provide such detailed
> private information to the application? Is there a strong, reasonable use
> case?
> In Danny's multi-domain broker draft tries to use the PV extension to
> provide the AS-path information for different NFs. This may be a strong
> case to use the array of ANEs, instead of a set of ANEs, in the PV draft.
> However, such information is already provided by BGP and will be the source
> of an ALTO server getting such information, why is ALTO better than BGP at
> providing such information?
> I see 3 ways that we can proceed:
> (1) we keep the current design, and provide strong use cases in the draft
> to justify "array of ANEs" is necessary, and explicitly state that the
> application MUST recognize that the returned array of ANEs MAY be unordered;
> (2) we keep the current design, do not provide strong use cases to justify
> this design, but explicitly state that the server MAY return the array of
> ANEs unordered;
> (3) we change the design from "array of ANEs" to "set of ANEs" (i.e., cost
> mode changed from "array" to "set"). Given that all specifications in ALTO
> are specified using JSON format, which does not have a concept called
> "set", this design choice may seem a bit strange. However, I believe that
> we should not let the specification language used by the WG affect the
> semantics of the design.
> 2. Handling multipath (and potentially multicast).
> The current PV design does not handle multipath routing or multicast. Per
> suggestion from Richard, I took a look at how BGP handles multipath, given
> that PV was highly motivated by BGP. I found RFC7911 ("Advertisement of
> Multiple Paths in BGP") provides the solution. And the basic idea is very
> simple: in BGP announcement, assigning an ID (path identifier) to the
> route. This motivates me to propose the following design to let the PV
> extension support multipath.
> Consider a source-destination pair (a flow), its route (no matter
> single-path route or multipath route) is essentially a set of route
> segments. When the ALTO client submits a PV query about this flow to the
> ALTO server. Instead of returning an array of ANEs, the ALO server returns
> a set of arrays of ANEs, where each array represents a route segment in the
> route of this flow and is assigned a unique ID. These IDs are also sent to
> the ALTO client. In addition to the property map of all ANEs used in these
> route segments, the ALTO server also sends another property map of all
> route segments, where the property is "traffic load percentage".
> I intended to talk about this design during the IETF 102 meeting, however,
> given my unstable internet connection, I had to omit this part. Slide 4-6
> in the attached presentation illustrates this design with an example. I
> believe this design perfectly provides accurate, compact information of
> resource sharing in multipath routing. It can also handle the resource
> sharing defined by TE policies, and can potentially provide such
> information in multicast, provided that the query format supports a query
> on multicast flow.
> What do you think about these two issues? It would be great to hear the
> opinion from not only the authors, but also other WG members. If they are
> reasonable to most of you, may I suggest integrating them into the next
> version of the PV draft? Thank you very much.
> Best wishes
> Qiao Xiang
> --
> Qiao Xiang
> Postdoctoral Fellow,
> Department of Computer Science,
> Yale University

Qiao Xiang
Postdoctoral Fellow,
Department of Computer Science,
Yale University