Hi Per,

 

From: Igor Bryskin [mailto:igor.brys...@huawei.com] 
Sent: Sunday, October 8, 2017 7:04 PM
To: Igor Bryskin <igor.brys...@huawei.com>; p...@tail-f.com;
xufeng.liu.i...@gmail.com
Cc: netc...@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:p...@tail-f.com,xufeng.liu.i...@gmail.com,

Cc:netc...@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:netc...@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>
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>
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
netc...@ietf.org <mailto:netc...@ietf.org> 
https://www.ietf.org/mailman/listinfo/netconf

_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to