Re: [alto] Design issue on path vector
Jensen Zhang <jingxuan.n.zhang@gmail.com> Wed, 22 March 2017 06:35 UTC
Return-Path: <jingxuan.n.zhang@gmail.com>
X-Original-To: alto@ietfa.amsl.com
Delivered-To: alto@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B4E2B127843; Tue, 21 Mar 2017 23:35:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wIRfFR6IROte; Tue, 21 Mar 2017 23:35:55 -0700 (PDT)
Received: from mail-oi0-x230.google.com (mail-oi0-x230.google.com [IPv6:2607:f8b0:4003:c06::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 76C37127077; Tue, 21 Mar 2017 23:35:55 -0700 (PDT)
Received: by mail-oi0-x230.google.com with SMTP id l203so13273585oia.0; Tue, 21 Mar 2017 23:35:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=d4lv7f9ynW9zqksFGsLnWkl+y+QIDflz+ST3TflRuug=; b=P8WCFULleZtujQZkRYuqkE5ymAZSs43S6wANuthEPZwtftCP8jsSnn8dkL1BkGEuT4 JW29oWLg+oCK830Akd6l165LxMqvVS8ILYIps159lAiKa0n/PiHLcsKsc39Ro0FdaN8c HTiiKNhgso/LGiP+3mt4uOdNrt6vpeU9uDxbrzHS6ouje/2dfew5kqHleysNbo2Cv8+c 0tj0Wtz27tk/+3vli3j6wMdZfKZiuVElNa6xfeQrttvPSuh3NRqKokGmsM6akp9mRvvT NmXNuQFgI7/Ep9wo0yoQSIvpbQ0eHyyukkrXjVhRTqQF2w7dXqG4b6fzP2ElJippYBak HETQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=d4lv7f9ynW9zqksFGsLnWkl+y+QIDflz+ST3TflRuug=; b=V1GtYaL6zXQfuB9iXtGbr6Fa5DugPHOKLByYht+xTKepVgiNPhnC13YtFNZeXeofcF JpLq/mfgxpA0pYqO/OOC0eScDGGTPGWMnrkXY5U1dfIWJOhLEd3j2vFcBzLeF0RXDejD xYm2vXxz6GFRwl6IG/rjOw08PKW8Bro4yxWDiRsPwx8ExB5MzRzZ3Iups9X58b+5quXk N6psobCN66IaSAcI1Sy00/Qaz0RTNHf1zt6knD48TMlQi1k1XZXjIMVk4inpHO6zq8jK GzD4duopir5rJqig2PL9m7lm9EXq34dHDT4W3lo7FpSZPwTC3iyUXyFK9KDaCnOxztzO cwEw==
X-Gm-Message-State: AFeK/H0b8VTXNg0MseX1Ve8J7UKxxkmhF7qEi9CTrE01pXaUE1S996ezk+sCYInA3ExiyEcIqSIXamHT8ZwIKg==
X-Received: by 10.202.197.133 with SMTP id v127mr11025514oif.155.1490164554788; Tue, 21 Mar 2017 23:35:54 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.157.13.230 with HTTP; Tue, 21 Mar 2017 23:35:54 -0700 (PDT)
In-Reply-To: <KL1PR0302MB26290AAB2597036E65942201A83C0@KL1PR0302MB2629.apcprd03.prod.outlook.com>
References: <TY1PR04MB065600AD703BAEC14FC7D27DB53D0@TY1PR04MB0656.apcprd04.prod.outlook.com> <KL1PR0302MB26290AAB2597036E65942201A83C0@KL1PR0302MB2629.apcprd03.prod.outlook.com>
From: Jensen Zhang <jingxuan.n.zhang@gmail.com>
Date: Wed, 22 Mar 2017 14:35:54 +0800
Message-ID: <CAAbpuyqphmvXfDkFLz+Yo1F4c2ACFHezEjKCTnS8rjZn-nfiQA@mail.gmail.com>
To: xin wang <xinwang2014@hotmail.com>
Cc: Chan Dawn <dawn_chen_f@hotmail.com>, "alto@ietf.org" <alto@ietf.org>, "draft-yang-alto-path-vector@ietf.org" <draft-yang-alto-path-vector@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/LgVWQk_rcvIx7aYr3bMPMFTUA3E>
Subject: Re: [alto] Design issue on path vector
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Application-Layer Traffic Optimization \(alto\) WG mailing list" <alto.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/alto>, <mailto:alto-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/alto/>
List-Post: <mailto:alto@ietf.org>
List-Help: <mailto:alto-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/alto>, <mailto:alto-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 22 Mar 2017 06:35:57 -0000
Hi Dawn, Thanks for starting this discussion. Hi Xin, Thanks for your comments. See inline. Jensen On Wed, Mar 22, 2017 at 12:32 PM, xin wang <xinwang2014@hotmail.com> wrote: > Hi Dawn, > > > If I am wrong please correct me. For the second issue, the resource id could > be reflected in the hash code of the uri field. I think you are missing that > in your ECS example. I think "uri" and "resource-id" are very different. How can we reflect the "resource-id" in the "uri"? Do you want to introduce the extra semantics into the "uri"? > For the first issue, in my understanding, since network > elements are dynamically generated after the computation of path-vector, I > think it is hard to determine element property types before the computation. > This may depend on whether we support "unknown" in the response of network > element property map, i.e., > > "property-map": { > "ne:ne12": { "availbw": "90", "delay": "unknown" }, > "ne:ne23": { "availbw": "80", "delay": "15" }, > "ne:ne34": { "availbw": "70", "delay": "25" } > } Please notice that "prop-types" is a capability of "prop-map". If this "prop-map" does not support "delay", it will be determined before you send any query. And you even cannot query "delay" to this "prop-map". "unknown" does not solve this issue. I think what we are discussing is that if the ALTO server provides a "path-vector" FCM resource, it should inform the client which "prop-types" will be supported by the generated "prop-map" at an earlier stage. If you provide this information in the response of FCM rather than the IRD entry of it, the client may have to send a useless FCM query before it gets this information. > > > Best, > Xin > > ________________________________ > From: alto <alto-bounces@ietf.org> on behalf of Chan Dawn > <dawn_chen_f@hotmail.com> > Sent: Tuesday, March 21, 2017 13:02 > To: alto@ietf.org; draft-yang-alto-path-vector@ietf.org > Subject: [alto] Design issue on path vector > > > Hi all, > > > I'd like to start a discussion for path-vector design and push it as an > acceptable specification. Following is my thought: > > > We have agreed on delivering path-vector + abstract network elements design > for net graph representation since IETF 96. This design specifies the cost > value as a path vector which is a JSONArray of network elements and puts the > network element properties into a nep-map. Considering to reference the > nep-map from another resource (we propose to use unified-prop-map), below is > a naive design: > > > > An example of IRD: > > > “pv-endpoint-cost-map”: { > > “uri”: “http://alto.example.com/lookup/endpointcost”, > > “media-type”: “application/alto-endpointcostmap+json”, > > “capabilities” : { > > “cost-type-names”: [“pv"] > > }, > > “uses”: [“default-nep-map"] > > } > > > An example of ECS response: > > > “meta”: { > > “dependent-vtags”: [ > > { “resource-id”: “default-nep-map”, “tag”: “<sha256>” } > > ], > > “cost-type”: {“cost-mode”: “path-vector”, “cost-metric”: “ane”} > > }, > > “endpoint-cost-map”: ... > > > However, the problem is how to reference the filtered property map that we > use for clients to retrieve the properties of the corresponding network > elements. In the above example, the referenced network element property map > is added in the “uses” field. However, here is the trouble: > > > Since the network elements are abstract, the network element property map is > dynamically generated when the client sends a path-vector query. So, to add > the refrenced network element property map in the “uses” field of a resource > is not possible because the resource id in the “uses” field is somehow > static, it already exists before queried. > > > To solve this problem, we proposed the following design in > draft-yang-alto-path-vector-04: > > > An example of ECS response: > > > “meta”: { > > … > > "nep-map": { > > "uri": "http://alto.example.com/propmap/lookup/nep-map", > > "media-type": "application/alto-prompmap+json", > > "accepts": "application/alto-propmapparams+json", > > "capabilities": { > > "domain-types": [“ane"], > > "prop-types": ["availbw"] > > } > > } > > }, > > “endpoint-cost-map”: ... > > > But we found two issues in this design: > > > 1. How to present the supported properties of the network elements in the > IRDResourceEntry of a resource? In this example, the nep-map can only > provide the “availbw” property. If the client needs the “delay” property of > the returned network elements, it cannot get this knowledge that the > dependent nep-map of this ECS resource does not provide this property before > it sends the query. So the client will send a useless query. > > 2. This design does not provide a resource-id for the nep-map, so the server > cannot provide an incremental update service for the nep-map. > > > We found the fundamental problem is caused by the dynamic resource. In the > previous ALTO extensions, all the resources can be defined by the static IRD > Resource Entries. But in this case, we have to handle the dependency > relationship between FCM/ECS and a dynamic property map resource. So we > propose the following design to solve this problem: > > > 1. Add a new attribute in the IRDResrouceEntry: > > > object { > > JSONString uri; > > JSONString media-type; > > [JSONString accepts;] > > [Capabilities capabilities;] > > [ResourceID uses<0..*>;] > > [ImmediateResourceEntry immediate-uses<0..*>;] > > } IRDResourceEntry; > > > object { > > JSONString media-type; > > [JSONString accepts;] > > [Capabilities capabilities;] > > [ResourceID uses<0..*>;] > > } ImmediateResourceEntry; > > > 2. Add a new attribute in the meta of FCM/ECS response: > > > object { > > [JSONString vtag;] > > [VersionTag dependent-vtags<1..*>;] > > [ImmediateVersionTag immediate-dependent-vtags<1..*>;] > > } ResponseMeta; > > > object { > > ResourceID resource-id; > > JSONString vtag; > > [JSONNumber time-out;] > > } ImmediateVersionTag; > > > Here is an example: > > > IRD: > > > "pv-endpoint-cost-map": { > > "uri": "http://alto.example.com/lookup/endpointcost", > > "media-type": "application/alto-endpointcost+json", > > "accepts": "application/alto-endpointcostparams+json", > > "immediate-uses": [ > > { > > "media-type": "application/alto-propmap+json", > > "accepts": "application/alto-propmapparams+json", > > "capabilities": { "domain-types": ["ane"], > > "prop-types": ["availbw", "delay"] } > > ], > > "capabilities": { > > "cost-type-names": ["pv-ane", "num-routingcost", "num-hopcount"], > > "cost-constraints": true > > } > > }, > > > Response: > > > { > > "meta": { > > "cost-type": { > > "cost-mode": "path-vector", > > "cost-metric": "ane", > > }, > > "immediate-dependent-vtags": [ > > {"resource-id": "nep-map-<sha256>", > > "vtag": "<sha256>", > > "time-out": 180} > > ] > > }, > > "endpoint-cost-map": { > > ... > > } > > } > > > Shall we push this design into the pv draft? Any feedback from others? > > > Thanks a lot! > > Dawn
- [alto] Design issue on path vector Chan Dawn
- Re: [alto] Design issue on path vector xin wang
- Re: [alto] Design issue on path vector Jensen Zhang
- [alto] 答复: Design issue on path vector Chan Dawn
- Re: [alto] 答复: Design issue on path vector Jensen Zhang
- Re: [alto] Design issue on path vector Y. Richard Yang
- Re: [alto] Design issue on path vector Jensen Zhang
- Re: [alto] Design issue on path vector Y. Richard Yang
- Re: [alto] Design issue on path vector Dawn Chan
- Re: [alto] Design issue on path vector Dawn Chan
- Re: [alto] Design issue on path vector Dawn Chan