Re: [alto] Design issue on path vector
Jensen Zhang <jingxuan.n.zhang@gmail.com> Thu, 23 March 2017 07:20 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 2C985124BE8; Thu, 23 Mar 2017 00:20:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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, URIBL_BLOCKED=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 bb1Jy9ocVvg8; Thu, 23 Mar 2017 00:20:35 -0700 (PDT)
Received: from mail-oi0-x231.google.com (mail-oi0-x231.google.com [IPv6:2607:f8b0:4003:c06::231]) (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 24FAE129C3D; Thu, 23 Mar 2017 00:20:35 -0700 (PDT)
Received: by mail-oi0-x231.google.com with SMTP id f193so1727647oib.2; Thu, 23 Mar 2017 00:20:35 -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=A2sPKlqOhl1VitVTFpGymVHf0X+CeXMLMsBWOy2r0+U=; b=GBtYdlqen1qLpQIGRkZWxobvImz5Msa701CycyOwPcL6D/Vo5f7DKDIEC/HwpaSI1O +TI8YvZzcdWZttHXI6jQ9v2Ml/x2OFt5Nm/DBZ8L2rVT2zVXMfWTxFdlLpi26NXko4oH ACGBS7/TmRGsic/gfwFLNNertg2rQWWqheCYFeaKvNrXe41jTN+QNj3BIf2u5FfX536K hzFzmXEkaADhJMdYYcC/DXU93sLufxUph9QXiCsSVnXQYY9UiASd2eKxh08sH9It6E87 4zSnkKIzxM9sV0p6EXDmraqGVPhj9wfq9BI6JlF4mZzpz+g9nrvhnu0MaEZ2aCtucqAQ dKJQ==
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=A2sPKlqOhl1VitVTFpGymVHf0X+CeXMLMsBWOy2r0+U=; b=XzxXe0MzFmrA3F1kMEuTj0roOhjhaxTfL9gmQ4j0XoMiCTP+kSBYok0XlHlCZcyln8 xSg9/m5lzzYjmzSGhUgIL1ZNxrSrQW1ItZF+pa7XjuR2T5I6RHL6Ogj7jEbTKa0cz8lE yUfoBtLPuM6lV4CLRK4FVoC9ICR9STsC9Yfc13CaMiuNRVPcceXXnq0F+OsOu1bjTnxK odTrXV7AGCSp+JTqve+J7OyQJxVWOHWXDpN4dhZXvVsmEUNrMRTT5AreXcYEgBlOE3tC s7BPdU9rEEhVhCdc0tPEO1ae7ZY+8Xp1GLHvY4evrG3KHypzKx7Qp+x5IPw9rs2AL/CF 2tnw==
X-Gm-Message-State: AFeK/H0nXKkT6MEZ4z7Gdqrs1nM70vR3RVo5/Jz5gtiNmyNPsNJhUAbYF5a2kLaq+mbEEtxRJOu/mTRpxVHHhw==
X-Received: by 10.202.219.87 with SMTP id s84mr538757oig.76.1490253634357; Thu, 23 Mar 2017 00:20:34 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.157.13.230 with HTTP; Thu, 23 Mar 2017 00:20:33 -0700 (PDT)
In-Reply-To: <CANUuoLoQa-HhQcdKma5+6iUwY7-oXBoqt02OntU6ym-mM+LFcQ@mail.gmail.com>
References: <TY1PR04MB065600AD703BAEC14FC7D27DB53D0@TY1PR04MB0656.apcprd04.prod.outlook.com> <CANUuoLoQa-HhQcdKma5+6iUwY7-oXBoqt02OntU6ym-mM+LFcQ@mail.gmail.com>
From: Jensen Zhang <jingxuan.n.zhang@gmail.com>
Date: Thu, 23 Mar 2017 15:20:33 +0800
Message-ID: <CAAbpuyo7x2q=B3FU6kdm8mckg744n=dLYmgJaeUfnaHLCnLzzA@mail.gmail.com>
To: "Y. Richard Yang" <yry@cs.yale.edu>
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>, "sabine.randriamasy@nokia-bell-labs.com" <sabine.randriamasy@nokia-bell-labs.com>, "wendy@wdroome.com" <wendy@wdroome.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/yKrodwws7gHer4g0XG9syPG3YC4>
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: Thu, 23 Mar 2017 07:20:38 -0000
Hi Richard, Thanks for your feedback! See my comments inline: Jensen On Thu, Mar 23, 2017 at 3:38 AM, Y. Richard Yang <yry@cs.yale.edu> wrote: > Dear Dawn, Jensen, > > Some comments. Please see below inline. > > On Tue, Mar 21, 2017 at 1:02 PM, Chan Dawn <dawn_chen_f@hotmail.com> wrote: >> >> 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"] >> } > > I assume that the same IRD will also have an entry for "default-nep-map" and > there is also a definition for "pv". You omitted them in this example, > correct? Yes, they are also in the same IRD. >> 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. >> > A resource ID is a name to be used in the IRD to provide the needed query > information (e.g., uri) to obtain related information. If the pv resource > returns an property name (dynamic), and the property resource has an accept > of the dynamic property name, can this solve your problem? > Let me understand your proposal. Is it like the following? ECS response meta: "meta": { "dependent-vtags": [ { "resource-id": "default-nep-map":, "tag": "<sha256>" } ], "cost-type": { "cost-mode": "path-vector", "cost-metric": "ane" }, "query-id": "<A Query Specific ID>" } And nep-map request: "query-id": "<The Same Query as the One in the Response>", "entities": ... "properties": ... So every nep-map should be identified by <resource-id, tag, query-id> rather than only <resource-id, tag>? It seems to be a solution. Let me think about it. >> 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. > > One possibility is that a pv resource also indicates the metrics that it can > provide, i.e., > > “pv-endpoint-cost-map”: { > “uri”: “http://alto.example.com/lookup/endpointcost”, > “media-type”: “application/alto-endpointcostmap+json”, > “capabilities” : { > “cost-type-names”: [“pv"] > // define metrics here?? > }, > “uses”: [“default-nep-map"] > } > Yes, it is a solution. And we tried to propose the same solution. But it will introduce an extra capability. And only when the cost-mode is "path-vector", this capability can be enabled. So it is too specific. How do you think? >> 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. >> > This is a good point. We need to think a bit hard on incremental updates. A > reply will come shortly. > Looking forward. >> 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 >> } >> }, >> > This "immediate-use" design reminds me of nameless inner class/object. Does > this require that the resource in the "immediate-use" to use the same uri as > the "parent" uri? > What's the meaning of "parent" uri? A prefix of the uri? If so, I think it is a good proposal. >> 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? >> > > It is a quite interesting design. If we can modify the incremental updates > to include not only resource id but also some additional info, can the > problem be solved? > Although we can extend incremental updates to include additional info, I think the resource id is still a required attribute. Because we need a unique id to identify the resource. A potential way is to use "uri" instead of "resource-id"? But for incremental update service, resource "uri“ cannot be used to index the resource attributes such as "media-type" and "capabilities". > Richard > >> >> Thanks a lot! >> >> Dawn Thanks a lot!
- [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