I'm not sure that my XPath foo is good enough, but would NETCONF's XPath filter solve this problem?

Thanks,
Rob


On 09/10/2017 14:42, Xufeng Liu wrote:

Hi Per,

*From:* Igor Bryskin [mailto:[email protected]]
*Sent:* Sunday, October 8, 2017 7:04 PM
*To:* Igor Bryskin <[email protected]>; [email protected]; [email protected]
*Cc:* [email protected]; [email protected]
*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:*[email protected],[email protected],

*Cc:*[email protected],[email protected],

*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:*[email protected],'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
> [email protected] <mailto:[email protected]>
> https://www.ietf.org/mailman/listinfo/netmod
>

_______________________________________________
Netconf mailing list
[email protected] <mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/netconf



_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to