Subject: [netmod] YANG1.1 issue:add 'dataset' and 'datastore' statements

From: [email-masked]
Date: Wed, 30 Apr 2014 09:11:25 +0800

Hi all,
      I suggest add 'dataset' and 'datastore' statements to identify which 
dataset a data node belongs to.
      YANG use config statement to identify whether the node belongsto 
configuration dataset, but it is not extensible.
 
      For example, I2RS want to define its own dataset, but YANG have no 
syntax to identify which node belongs to I2RS dataset,
      unless I2RS extend its own yang keyword.

      I think we should provide a standard way to de this.
 
      'dataset' statement can be used to define a user-specific dataset. 
and a new statement 'belongs' can be used to identify which dataset 
       the data node belongs to, as substatement of data 
nodes(container,list,leaf,leaf-list,anyxml,etc).
 
      'datastore' statement can be used to define a data store based on 
one dataset.
 
      dataset statement's substatements are listed below:
 
substatement
cardinality
description
0..1
reference
0..1

     datastore statement's substatements are listed below:
 
substatement
cardinality
base
1
description
0..1
reference
0..1

     The 'base' statement has a argument,its value is a defined dataset, 
to indicate which dataset this datastore is based.

     For example:
     dataset config {
        description "the configuration dataset";
     }

     datastore running {
        base config;
        description "running configuration data store";
     }
 
     dataset i2rs {
         description "i2rs data set";
     }
 
     datastore i2rs {
         base i2rs;
     }

     container foo {
        belongs config;
       list foo-list {
            belongs i2rs;
            key name;
            leaf name {...}
            leaf other {...}
       }
     }

/frank
--------------------------------------------------------
ZTE Information Security Notice: The information contained in this mail (and any attachment transmitted herewith) is privileged and confidential and is intended for the exclusive use of the addressee(s).  If you are not an intended recipient, any disclosure, reproduction, distribution or other dissemination or use of the information contained is strictly prohibited.  If you have received this mail in error, please delete it and notify us immediately.
--------------------------------------------------------
ZTE Information Security Notice: The information contained in this mail (and any attachment transmitted herewith) is privileged and confidential and is intended for the exclusive use of the addressee(s).  If you are not an intended recipient, any disclosure, reproduction, distribution or other dissemination or use of the information contained is strictly prohibited.  If you have received this mail in error, please delete it and notify us immediately.

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Wed, 30 Apr 2014 08:00:03 +0200

I think the examples show a misconception about how YANG works and a
likely typical misuse of a mechanism to define 'dataset's and
'datastores'. I think it would be a mistake to designate say a leaf
definition as belonging to the running datastore instead of marking it
as a config object.

So far, we distinguish configuration objects from operational state
objects. What we are missing seems to be the distinction between
read-only operational state objects and operational state objects that
can be written. I may be very wrong to allow data model writers to
come up with arbitrary such distinctions.

In other words, a proposal to introduce a mechanism to identify
writable operational state is one thing (if it comes along with a
clear understanding what the impact of this is on the whole
NETCONF/YANG infrastructure). But a proposal to to allow an open ended
set of object classes and datastores seems not very useful.

/js (speaking as technical contributor)

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

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1, 28759 Bremen, Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>

---

From: Martin Bjorklund <[email-masked]>
Date: Wed, 30 Apr 2014 08:03:34 +0200 (CEST)

Hi,

I added this as an alternative solution to Y42; Y42-02.

/martin

[email-masked] wrote:
> ZTE Information Security Notice: The information contained in this mail (and
> any attachment transmitted herewith) is privileged and confidential and is
> intended for the exclusive use of the addressee(s).  If you are not an intended
> recipient, any disclosure, reproduction, distribution or other dissemination or
> use of the information contained is strictly prohibited.  If you have received
> this mail in error, please delete it and notify us immediately.
> ZTE Information Security Notice: The information contained in this mail (and
> any attachment transmitted herewith) is privileged and confidential and is
> intended for the exclusive use of the addressee(s).  If you are not an intended
> recipient, any disclosure, reproduction, distribution or other dissemination or
> use of the information contained is strictly prohibited.  If you have received
> this mail in error, please delete it and notify us immediately.

---

From: [email-masked]
Date: Wed, 30 Apr 2014 14:20:28 +0800

/frank

Juergen Schoenwaelder <[email-masked]> 
2014-04-30 14:00
请答复 给
Juergen Schoenwaelder <[email-masked]>

收件人
[email-masked], 
抄送
[email-masked]
主题
Re: [netmod] YANG1.1 issue:add 'dataset' and 'datastore' statements

No, a data node like leaf belongs to the config dataset ,not running 
datastore.

Datastore is just a container of dataset. Datastore is a entity, while 
dataset is a logical conception.

I think config(true or false) is a conception of configuration management.
In configuration managment field, a data node with config false is 
readonly, 
while a data node with config true is readwrite. 
But in other field,like i2rs, it may be not. A data node with config true 
may be readonly. 

> ZTE Information Security Notice: The information contained in this mail 
(and any attachment transmitted herewith) is privileged and confidential 
and is intended for the exclusive use of the addressee(s).  If you are not 
an intended recipient, any disclosure, reproduction, distribution or other 
dissemination or use of the information contained is strictly prohibited. 
If you have received this mail in error, please delete it and notify us 
immediately.
> ZTE Information Security Notice: The information contained in this mail 
(and any attachment transmitted herewith) is privileged and confidential 
and is intended for the exclusive use of the addressee(s).  If you are not 
an intended recipient, any disclosure, reproduction, distribution or other 
dissemination or use of the information contained is strictly prohibited. 
If you have received this mail in error, please delete it and notify us 
immediately.

---

From: Andy Bierman <[email-masked]>
Date: Wed, 30 Apr 2014 07:16:40 -0700

> definition as belonging to the running datastore instead of marking it
I do not want YANG modules defining datastores.
This classification needs to be hard-wired because the validation rules
are specific to the datastore. How does a client know the validation
rules for the "acme:special-datastore"?

> come up with arbitrary such distinctions.
+1

We have rpc + data nodes + notifications.
The 'data nodes' piece consists of a configuration datastore
plus some config=false stuff that is not in a configuration datastore.
YANG does not define it any further than that.

We need to divide the config=false blob into at least 2 pieces:
  1) editable operational state
  2) non-editable operational state and statistics

YANG does not tag data as 'NETCONF' or 'I2RS' but
rather just identifies the data properties.  The protocol used to
edit data is outside the scope of YANG (if it is designed correctly).

> /js (speaking as technical contributor)
Andy