Re: [netmod] [Netconf] Retrieving Information Pointed by leafref
Igor Bryskin <Igor.Bryskin@huawei.com> Mon, 09 October 2017 17:22 UTC
Return-Path: <Igor.Bryskin@huawei.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A58B3134716; Mon, 9 Oct 2017 10:22:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.221
X-Spam-Level:
X-Spam-Status: No, score=-4.221 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 lG7anY5anGiI; Mon, 9 Oct 2017 10:22:38 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9EC5D1346FA; Mon, 9 Oct 2017 10:22:37 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml705-cah.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id DQF11162; Mon, 09 Oct 2017 17:22:15 +0000 (GMT)
Received: from SJCEML703-CHM.china.huawei.com (10.208.112.39) by lhreml705-cah.china.huawei.com (10.201.108.46) with Microsoft SMTP Server (TLS) id 14.3.301.0; Mon, 9 Oct 2017 18:22:13 +0100
Received: from SJCEML702-CHM.china.huawei.com ([169.254.4.207]) by SJCEML703-CHM.china.huawei.com ([169.254.5.15]) with mapi id 14.03.0301.000; Mon, 9 Oct 2017 10:22:03 -0700
From: Igor Bryskin <Igor.Bryskin@huawei.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "per@tail-f.com" <per@tail-f.com>, "xufeng.liu.ietf@gmail.com" <xufeng.liu.ietf@gmail.com>, "netconf@ietf.org" <netconf@ietf.org>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [Netconf] [netmod] Retrieving Information Pointed by leafref
Thread-Index: AdM+52gw6QWX/3ijR4GeNhdOmHSt/gBsqhSA///GxXmAABh1KIABatEAgAAoFACAAGilEP//qmOAgAB07YA=
Date: Mon, 09 Oct 2017 17:22:03 +0000
Message-ID: <0C72C38E7EBC34499E8A9E7DD007863909CDB2EA@SJCEML702-CHM.china.huawei.com>
References: <049501d34104$6aa46670$3fed3350$@gmail.com> <59DB9E54.8080805@tail-f.com> <0C72C38E7EBC34499E8A9E7DD007863909CDB234@SJCEML702-CHM.china.huawei.com> <20171009.191347.1897981146275128665.mbj@tail-f.com>
In-Reply-To: <20171009.191347.1897981146275128665.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.47.154.107]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090203.59DBB05C.0041, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=169.254.4.207, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: 7079aeb8228ea02727df538f1c1af6e1
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/5QfXgD2yaarBxEM04TSW7dKXoBo>
Subject: Re: [netmod] [Netconf] Retrieving Information Pointed by leafref
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Oct 2017 17:22:41 -0000
> But as Per explained, it only works in some cases (when the leafref acts a "single pointer"). We think this is good enough. In all other cases leafref is simply not qualified for the expansion. I am not an expert , but I believe there is a similar capability in SQL, no? Igor -----Original Message----- From: Martin Bjorklund [mailto:mbj@tail-f.com] Sent: Monday, October 09, 2017 1:14 PM To: Igor Bryskin Cc: per@tail-f.com; xufeng.liu.ietf@gmail.com; netconf@ietf.org; netmod@ietf.org Subject: Re: [Netconf] [netmod] Retrieving Information Pointed by leafref Igor Bryskin <Igor.Bryskin@huawei.com> wrote: > > Hi Per, > > Basically, what we need is a way for a client to request something > like this: > > get <XPath> joint with <XPath1, XPath2, ..., XPathn> ... which is what Per's expression does! Note that "|" in XPath means "union". But as Per explained, it only works in some cases (when the leafref acts a "single pointer"). > with a server interpreting the request as follows: > if a node pointed by XPath contains a pointer (e.g. key leafref) > matching one of the XPath from the "joint with" list, then the server > must provide the entire body of the node pointed by the pointer, > otherwise, just the pointer (as it happens today, that is, when no > "joint with" list specified). > > We think that this would allow for the client to optimize the number > of request-response iterations depending on application/use case. > > Regards, > Igor /martin > > > > > > > -----Original Message----- > From: Per Hedeland [mailto:per@tail-f.com] > Sent: Monday, October 09, 2017 12:06 PM > To: Xufeng Liu > Cc: Igor Bryskin; netconf@ietf.org; netmod@ietf.org > Subject: Re: [Netconf] [netmod] Retrieving Information Pointed by > leafref > > I understand your use case, but a leaf of type leafref does not in > general identify a single node in the data tree - the leafref path > could > be for a non-key leaf, and/or the path could traverse list nodes, > and/or > the "target" list could have multiple keys and thus multiple > leafref-leafs be required to identify a specific list entry. > > Thus it seems to me that your use case is not a reasonable basis for a > new protocol operation. My XPath foo isn't very good either, but I do > believe Robert's suggestion of using an XPath filter could be a way > forward. I *think* the filter expression would be something along the > lines of > > /te/tunnels/tunnel[name='foo'] | > /te/explicit-paths/explicit-path[name=/te/tunnels/tunnel[name='foo']/paths/path/explicit-path] > > --Per > > On 2017-10-09 15:42, Xufeng Liu wrote: > > Hi Per, > > > > > > > > *From:* Igor Bryskin [mailto:Igor.Bryskin@huawei.com] > > *Sent:* Sunday, October 8, 2017 7:04 PM > > *To:* Igor Bryskin <Igor.Bryskin@huawei.com>; per@tail-f.com; > > *xufeng.liu.ietf@gmail.com > > *Cc:* netconf@ietf.org; netmod@ietf.org > > *Subject:* Re: [Netconf] [netmod] Retrieving Information Pointed by > > *leafref > > > > > > > > > > Hi Joel, > > > > Thanks, I think I didnt explain our problem correctly. > > > > In our case we have a leafref pointing to a te tunnel name, which > > happens to be a key to lookup the (axilary) tunnel. We need a way to > > include the entire tunnel body (not just a name) into the get > > response. This is to optimize the number of iterations between the > > client and the server. As Xufeng put it something similar to SQL join, > > > > Igor > > > > *From:*Igor Bryskin > > > > *To:*per@tail-f.com,xufeng.liu.ietf@gmail.com, > > > > *Cc:*netconf@ietf.org,netmod@ietf.org, > > > > *Date:*2017-10-08 17:36:47 > > > > *Subject:*Re: [Netconf] [netmod] Retrieving Information Pointed by > > *leafref > > > > > > > > Hi Per, > > > > In a nutshell we would lika for a netconf client to have a way to > > instruct the server on whether in response to the get request the > > server needs to provide the entire body of a datastore node pointed > > to by a leafref or just a pointer to said node, so that the node's > > body could be retrieved by a subsequent separate request. This is > > requested by implementors who want to optimise rhe number of > > interactions between a client and its server. > > > > Cheers, > > Igor > > > > *From:*Per Hedeland > > > > *To:*Xufeng Liu, > > > > *Cc:*netconf@ietf.org,'NetMod WG', > > > > *Date:*2017-10-08 14:01:27 > > > > *Subject:*Re: [Netconf] [netmod] Retrieving Information Pointed by > > *leafref > > > > > > > > On 2017-10-06 23:11, Xufeng Liu wrote: > >> During the design team discussion for TE and MPLS YANG modeling, we > >> have received a request from implementers: How to minimize the number > >> of NETCONF/RESTCONF RPCs to improve operation efficiency? > >> Especially for the case when the operator or client software needs to > >> retrieve the object contents pointed by a leafref. > >> > >> For example, given the following simplified TE tunnel model, > >> > >> +--rw te > >> > >> +--rw explicit-paths > >> > >> | +--rw explicit-path* [name] > >> > >> | +--rw name string > >> > >> | +--rw explicit-route-object* [index] > >> > >> | +--rw index uint32 > >> > >> | +--rw explicit-route-usage? identityref > >> > >> +--rw tunnels > >> > >> | +--rw tunnel* [name] > >> > >> | | +--rw name string > >> > >> | | +--rw paths > >> > >> | | | +--rw path* [name] > >> > >> | | | +--rw explicit-path? -> > >> | | | ../../../../../explicit-paths/explicit-path/name > >> > >> when the client tries to retrieve a tunnels information based on the > >> tunnel name, the get operation returns a list of leafrefs pointing > >> to the paths of the tunnel. > > > > Sorry, I'm afraid I don't follow. Can you explain exactly what your > > "get" request is (protocol and payload), and where the "list of > > leafref's" (whatever that may be) occurs in the reply? > > > > */[Xufeng] The get operation is the NETCONF/RESTCON <get> protocol > > *operation, or the <get-data> operation described in > > *https://tools.ietf.org/html/draft-dsdt-nmda-netconf-01 and the GET > > *operations > > on {+restconf}/ds/<datastore> described in > > https://tools.ietf.org/html/draft-ietf-netconf-nmda-restconf-00./* > > > > */ /* > > > > */We have a list of leafref values because in this example model, each > > *tunnel contains a list of paths, each of them contains a leafref. The > > *get returns a value for each instance of such a leafref, > > which (as a string value) will be used as a constraint (foreign key) > > to retrieve the instance of an explicit-path in the model above./* > > > > > > > > JFYI, in case there is some fundamental misunderstanding here: a leaf > > of > > type leafref has a single value - *one* of those that satisfy the > > leafref > > constraint, in case there are multiple "candidates". > > > > --Per > > > >> The client needs to issue at > >> least one more get operation to retrieve the path information about > >> the given tunnel. The request is to combine these two operations into > >> one. > >> > >> In the RDBMS SQL world, join can be used when SQL select is > >> performed, but NETCONF/YANG currently does not have this capability. > >> > >> Wed like to ask whether such a request is considered reasonable. > >> > >> If the request is reasonable, the next question is how to > >> proceed. This seems to be a protocol issue rather than YANG modeling > >> issue. Is it acceptable to add a new operation to achieve such a > >> <get-data> operation with expanded leafrefs? > >> > >> Comments and suggestions are appreciated. > >> > >> Thanks, > >> > >> - Xufeng > >> > >> > >> > >> _______________________________________________ > >> netmod mailing list > >> netmod@ietf.org <mailto:netmod@ietf.org> > >> https://www.ietf.org/mailman/listinfo/netmod > >> > > > > _______________________________________________ > > Netconf mailing list > > Netconf@ietf.org <mailto:Netconf@ietf.org> > > https://www.ietf.org/mailman/listinfo/netconf > > > > _______________________________________________ > Netconf mailing list > Netconf@ietf.org > https://www.ietf.org/mailman/listinfo/netconf >
- [netmod] Retrieving Information Pointed by leafref Xufeng Liu
- Re: [netmod] Retrieving Information Pointed by le… Kent Watsen
- Re: [netmod] Retrieving Information Pointed by le… Kent Watsen
- Re: [netmod] Retrieving Information Pointed by le… Per Hedeland
- Re: [netmod] [Netconf] Retrieving Information Poi… Igor Bryskin
- Re: [netmod] [Netconf] Retrieving Information Poi… Igor Bryskin
- Re: [netmod] [Netconf] Retrieving Information Poi… Xufeng Liu
- Re: [netmod] [Netconf] Retrieving Information Poi… Robert Wilton
- Re: [netmod] [Netconf] Retrieving Information Poi… Per Hedeland
- Re: [netmod] [Netconf] Retrieving Information Poi… Igor Bryskin
- Re: [netmod] [Netconf] Retrieving Information Poi… Martin Bjorklund
- Re: [netmod] [Netconf] Retrieving Information Poi… Igor Bryskin
- Re: [netmod] [Netconf] Retrieving Information Poi… Per Hedeland
- Re: [netmod] [Netconf] Retrieving Information Poi… Igor Bryskin
- Re: [netmod] [Netconf] Retrieving Information Poi… Per Hedeland
- Re: [netmod] [Netconf] Retrieving Information Poi… Igor Bryskin
- Re: [netmod] [Netconf] Retrieving Information Poi… Per Hedeland
- Re: [netmod] [Netconf] Retrieving Information Poi… Robert Wilton
- Re: [netmod] [Netconf] Retrieving Information Poi… Igor Bryskin
- Re: [netmod] [Netconf] Retrieving Information Poi… t.petch
- Re: [netmod] [Netconf] Retrieving Information Poi… Robert Wilton
- Re: [netmod] [Netconf] Retrieving Information Poi… Xufeng Liu
- Re: [netmod] [Netconf] Retrieving Information Poi… Robert Wilton