Re: [netmod] [Netconf] Retrieving Information Pointed by leafref
Per Hedeland <per@tail-f.com> Mon, 09 October 2017 16:09 UTC
Return-Path: <per@tail-f.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 59DD7134642; Mon, 9 Oct 2017 09:09:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 eDx91TEjVktM; Mon, 9 Oct 2017 09:09:08 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 3D966134FCF; Mon, 9 Oct 2017 09:05:44 -0700 (PDT)
Received: from mars.tail-f.com (unknown [173.38.220.51]) by mail.tail-f.com (Postfix) with ESMTPSA id A45BD1AE0402; Mon, 9 Oct 2017 18:05:41 +0200 (CEST)
To: Xufeng Liu <xufeng.liu.ietf@gmail.com>
References: <033601d33ee7$bd359810$37a0c830$@gmail.com> <eac8b96e-227b-347f-9c02-81718918ed08@tail-f.com> <etPan.59da9a33.12305c3a.3f7f@localhost> <etPan.59daaeb6.6daf0f5d.4ba3@localhost> <049501d34104$6aa46670$3fed3350$@gmail.com>
Cc: 'Igor Bryskin' <Igor.Bryskin@huawei.com>, netconf@ietf.org, netmod@ietf.org
From: Per Hedeland <per@tail-f.com>
Message-ID: <59DB9E54.8080805@tail-f.com>
Date: Mon, 09 Oct 2017 18:05:40 +0200
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <049501d34104$6aa46670$3fed3350$@gmail.com>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/SL4G74MyZV7RgkDQZlGQXgFENyM>
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 16:09:11 -0000
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 >
- [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