Re: [alto] Design issue on path vector
"Y. Richard Yang" <yry@cs.yale.edu> Fri, 24 March 2017 00:35 UTC
Return-Path: <yang.r.yang@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 13518129B0F; Thu, 23 Mar 2017 17:35:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.701
X-Spam-Level:
X-Spam-Status: No, score=-1.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.197, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no 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 w3yQDtVMRkoA; Thu, 23 Mar 2017 17:35:27 -0700 (PDT)
Received: from mail-wr0-x235.google.com (mail-wr0-x235.google.com [IPv6:2a00:1450:400c:c0c::235]) (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 111E1129AC9; Thu, 23 Mar 2017 17:35:27 -0700 (PDT)
Received: by mail-wr0-x235.google.com with SMTP id y90so40209890wrb.0; Thu, 23 Mar 2017 17:35:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=iU6+EzjZvN6LEze1M2T8UbZeQ+8Qx0tUNRa9gl4evDo=; b=pBXDfw+bN6F4/ivqPYCGLr+7S4y8pAgP0fp6tREqvGAchkRzVnHvbxBn6/9YerbI3z 69fkFARj9adtzYylyQy841+W24/DTKWfCHqxMvESUTK/YHNclpEr0KLQKxgf2VlgHmJV G1qZnM6qPd9smLgKoxmrqelMkxEPfgKzevndorW518Sc6/90ZfXjp95VnfbtpIh0T17o jzF94/CbE/gULCoQmEjXHmFDr6QjPyUpgIxDiQZkTSZbQMDf1L2zZeDYeB73ZX0svHC6 lv7+D1XNU1SvWXk2VDeuiKYSchpeITeN1uNWENXBT+C2E5uYbZMB52El+mgl6O6laQML meDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=iU6+EzjZvN6LEze1M2T8UbZeQ+8Qx0tUNRa9gl4evDo=; b=fKLPm1xly1Qn2hVK1hAkirotVKXGvdI8gV2kf/chTD/9iOXl2UuCBUD+P+fQMsLoII UwE3KsxZU2d6q54PY3vhkYdVifxUW3yrB/VKbgySpt0WvWqykANNv1+/1Wjt2mo+D54k cm7bAA8pomwSMnV7oW9px8qcT3Bm+SnxBdU8CZF/AEzHLIPc8vmZiy6Tde2tvzXFNVY2 27h6A3pkqpxT2Fmd2wIRhnCa0MxCavBgpIDWD9fIVT7wIAhHhdKosgLK3KWkApuaBcKq MtxtuJ2Syfd1HztD2WOokKglgW10rBKwuh/1pbo02Mxcqo3r8EmaZf+XFt6jMLqJRgLX qDAg==
X-Gm-Message-State: AFeK/H3ydhUfXv+IuKTtSGOHRlXKxB50M5m9FfLglGsPrfe/PpZsMYEuXSkjbhOq/JNsylFtOIUqQQ/3BIzHWQ==
X-Received: by 10.223.144.67 with SMTP id h61mr5576808wrh.30.1490315725597; Thu, 23 Mar 2017 17:35:25 -0700 (PDT)
MIME-Version: 1.0
Sender: yang.r.yang@gmail.com
Received: by 10.223.136.210 with HTTP; Thu, 23 Mar 2017 17:35:25 -0700 (PDT)
In-Reply-To: <CAAbpuyo7x2q=B3FU6kdm8mckg744n=dLYmgJaeUfnaHLCnLzzA@mail.gmail.com>
References: <TY1PR04MB065600AD703BAEC14FC7D27DB53D0@TY1PR04MB0656.apcprd04.prod.outlook.com> <CANUuoLoQa-HhQcdKma5+6iUwY7-oXBoqt02OntU6ym-mM+LFcQ@mail.gmail.com> <CAAbpuyo7x2q=B3FU6kdm8mckg744n=dLYmgJaeUfnaHLCnLzzA@mail.gmail.com>
From: "Y. Richard Yang" <yry@cs.yale.edu>
Date: Thu, 23 Mar 2017 20:35:25 -0400
X-Google-Sender-Auth: a8L4P1CmzSJcAZAfJlXDRbbf3xI
Message-ID: <CANUuoLqXUkxjoKr-8Cqw+67vGn4KvLiMMKYQ7OvUsm0BcF3QMw@mail.gmail.com>
To: Jensen Zhang <jingxuan.n.zhang@gmail.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>, "sabine.randriamasy@nokia-bell-labs.com" <sabine.randriamasy@nokia-bell-labs.com>, "wendy@wdroome.com" <wendy@wdroome.com>
Content-Type: multipart/alternative; boundary="94eb2c06a0b06d7201054b6f2b5b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/vokTTFJU60H3w4H5APjk2EBodZM>
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: Fri, 24 Mar 2017 00:35:30 -0000
Jensen, Dawn, Please see below. > >> 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 a 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. > Yep. Essentially, since we have the freedom to design property map---it is great that we are designing PV before the property, we can add needed info. > > >> 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? > Agree with your thinking. The downside is that the domain of capabilities will depend on the content, and hence static typing will not work. But I feel that this is a small price. > >> 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. > > Yep. > >> 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". > > Good point. Richard
- [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