Re: [netmod] Y34 - root node

2015-08-27 Thread Ambika Prasad Tripathy (ambtripa)
IMHO, there should a YANG Construct should allow modules to be reused within 
another module with a restriction of looping.

When the YANG modules organized at controller, or any manager, re use of 
grouping or a particular XPath mount makes life static in YANG. 

Br,
Ambika Prasad Tripathy (ambtripa)
-Original Message-
From: netmod [mailto:netmod-boun...@ietf.org] On Behalf Of Lou Berger
Sent: Thursday, August 27, 2015 6:30 PM
To: Andy Bierman; Juergen Schoenwaelder; t. petch; Martin Bjorklund; 
netmod@ietf.org
Subject: Re: [netmod] Y34 - root node



On 8/27/2015 8:23 AM, Andy Bierman wrote:

 I don't see the 6 modules that have already been published so far in 
 RFCs as the problem.  I suggest focusing on the 194 modules that have 
 not been published.

100% agree
   Should the IETF spend a year or two debating the ONE TRUE PERFECT 
 uber-tree? 6 months?
No, IMO we should take a stab at it and go with our best understanding and 
consensus -- that is after all what the I*E*TF is all about.

 How long will it take for all interested vendors to agree where every 
 little thing goes, before starting on any of it.


The DT's proposal seems to be a consensus starting point (from my DT and
individual perspective, based on *many* discussions with vendors and
users) in at least the routing area.  Outside the routing area, I've
heard three or four individual objections.  Not saying we have it right,
but just that we have a solid start.

Lou


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

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


Re: [netmod] Y34 - root node

2015-08-27 Thread Alexander Clemm (alex)
Yes.  The one thing I would add is that validation of the mounted data can 
occur in its original path (the authoritative owner (in the distributed case)). 
 It should not be required to do this validation with the chrooted path, 
although that path can be used by other data nodes that refer to / have 
dependencies on the mounted data.  

Regarding naming, do you have an alternative suggestion?

Cheers
--- Alex

-Original Message-
From: Martin Bjorklund [mailto:m...@tail-f.com] 
Sent: Wednesday, August 26, 2015 11:27 PM
To: Alexander Clemm (alex) a...@cisco.com
Cc: lho...@nic.cz; netmod@ietf.org
Subject: Re: [netmod] Y34 - root node

Alexander Clemm (alex) a...@cisco.com wrote:
 - As Martin mentioned, clearly by allowing to mount you are decoupling 
 schema information and instance population.  Regarding the issue of 
 validation, this can be addressed by several ways.

I think that the mount point effectively works as a 'chroot' for all mounted 
data models in the mount point.  This means that if ietf-interfaces and 
ietf-routing are mounted under /devices/device/data, all XPath expressions and 
leafref paths and instance-identifiers in these models are evaluated in a 
chrooted environment where their '/' is set to /device/device[name='...']/data. 
 This is how we implement validation for such modules in our NCS (manager 
product).

In an implementation that actually does not store the data locally, but fetches 
it from a remote device (like the original mount proposal), it is fine to push 
also validation to the remote node.


[maybe mount is not a good name for this generalized thing; this term might 
make you believe that the data has to be provided by some other server.]


/martin

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


Re: [netmod] Y34 - root node

2015-08-27 Thread Martin Bjorklund
Alexander Clemm (alex) a...@cisco.com wrote:
 - As Martin mentioned, clearly by allowing to mount you are
 decoupling schema information and instance population.  Regarding
 the issue of validation, this can be addressed by several ways.

I think that the mount point effectively works as a 'chroot' for all
mounted data models in the mount point.  This means that if
ietf-interfaces and ietf-routing are mounted under
/devices/device/data, all XPath expressions and leafref paths and
instance-identifiers in these models are evaluated in a chrooted
environment where their '/' is set to
/device/device[name='...']/data.  This is how we implement validation
for such modules in our NCS (manager product).

In an implementation that actually does not store the data locally,
but fetches it from a remote device (like the original mount
proposal), it is fine to push also validation to the remote node.


[maybe mount is not a good name for this generalized thing; this term
might make you believe that the data has to be provided by some other
server.]


/martin

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


Re: [netmod] Y34 - root node

2015-08-27 Thread Lou Berger
On 08/27/2015 02:42 AM, Juergen Schoenwaelder wrote:
 The flat sea of YANG modules brings a different set of issues and I
  am unsure what they are;

 This is main problem I have. What the heck is the problem we are trying
 to fix?
 

The first, but not only problem, is today's ~200 top level models
(looking at current RFCs and I-Ds) with little apparent organization or
inter-relationship.

Lou

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


Re: [netmod] Y34 - root node

2015-08-26 Thread Andy Bierman
On Wed, Aug 26, 2015 at 9:41 AM, t.petch ie...@btconnect.com wrote:

 - Original Message -
 From: Juergen Schoenwaelder j.schoenwael...@jacobs-university.de
 To: t. petch ie...@btconnect.com
 Cc: rwil...@cisco.com; Martin Bjorklund m...@tail-f.com;
 netmod@ietf.org
 Sent: Sunday, August 23, 2015 6:04 PM

  On Wed, Aug 19, 2015 at 05:24:41PM +0100, t. petch wrote:
 
   The current model is a flat architecture of hundreds (or thousands)
 of
   modules each with their own top level nodes, namespace, namespace
 name,
   prefix etc.  (This is quite different to SMI with its hierarchy but
 that
   probably is only significant to those who have spent 20 years with
 SMI).
 
  This is most likely a wrong perception. There are basically only two
  locations where SNMP modules are registered in the IETF: under mib-2
  and under transmission (yes there are a few exceptions but overall in
  number they do not matter). There are close to 240 MIB modules below
  mib-2 and about 50 MIB modules below transmission.

 Juergen

 I know what you mean, that the MIB module tree is somewhat fasciated,
 but there is still one root, from which an obvious, absolute OID can be
 used to identify uniquely any MIB module (or in some contexts a
 relative one, relative to transmission or mib 2).  If SMI did have
 constraints, then there would not be an issue of how to express them,
 nor would there be any question of mounting a module elsewhere for
 whatever
 reason (which then creates problems for the references in the
 constraints).

 A flat sea of YANG modules is different; I haven't counted lately how
 many
 top level nodes I have seen but it is a lot and when I see people
 wanting to
 organise YANG modules into a tree, I wonder if they are trying to
 recreate
 an SMI-like tree and my reaction is that this is not SMI!

 The flat sea of
 YANG modules brings a different set of issues and I am unsure what they
 are;
 I understand what is involved with the references in constraints, I can
 see that
 there will be a lot of namespaces and prefixes and can speculate about
 what
 that will bring but what it means to have so many top level nodes, I do
 not
 know.

 I believe that in a year or three we will be wishing we had paid more
 attention
 to this.



YANG uses XPath absolute-path expressions to identify data instances.
Each node in the tree has a QName (namespace + local-name).
There is zero ambiguity in an absolute path expression, so it
works whether there are 3 modules or 30,000 modules.
But if the path expression cannot change over time.

We do not need to place every new node at the top.
In fact, we don't, as the ietf-ip module proves.
We do need to pick a home for data and never change it -- ever.
Starting over with a data node means picking a new location for its home.

IMO the logical view injected into the model is the worst part.
This does not apply to very many implementations, and these
virtual devices are usually dealt with in the protocol, not the data model.
That way, different logical views can be derived, instead of imposing
a single logical model (with a uint8 index to cover all possible logical
instances).







 Tom Petch


Andy



  RFC 4181:
 
 - The value assigned to the MODULE-IDENTITY descriptor MUST be
 unique
   and (for IETF standards-track MIB modules) SHOULD reside under
 the
   mgmt subtree [RFC2578].  Most often it will be an IANA-assigned
   value directly under mib-2 [RFC2578], although for media-specific
   MIB modules that extend the IF-MIB [RFC2863] it is customary to
 use
   an IANA-assigned value under transmission [RFC2578].  In the
 past,
   some IETF working groups have made their own assignments from
   subtrees delegated to them by IANA, but that practice has proven
   problematic and is NOT RECOMMENDED.
 
  /js
 
  --
  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/

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

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


Re: [netmod] Y34 - root node

2015-08-25 Thread Kent Watsen

I like the idea of relocatable modules.  It is almost to say everything defined 
by the IETF should be a grouping, allowing others to assemble the pieces as 
they see fit.  I do not think it makes sense for IETF to define an uber 
structure, especially using a language mandating forever backwards 
compatibility...

How to support logical/virtual systems is a bigger discussion.   Certainly 
there is a huge data model overlap between the host system and the logical 
systems, but some data may only exist in the host system and some data may only 
exist in a logical system.  Making things more interesting, some data in the 
host system (e.g., an interface) can be exported to a logical system as a 
read-only value.   The way I solved this in another life was using conditional 
enablement [1] on a shared data model to indicate the applicability of nodes in 
a context.

[1] https://tools.ietf.org/html/draft-kwatsen-conditional-enablement-00

Kent, as a contributor



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


Re: [netmod] Y34 - root node

2015-08-25 Thread Eric Voit (evoit)
From: Andy Bierman,  Friday, August 21, 2015 10:28 AM

snip
  Currently we have a proprietary way of relocating YANG modules, and
  ODL has its mount, and I think Andy has some other mechanism.  Maybe
  the time has come to standardize how mount works, and maybe then also
  standardize the list of devices in a controller model.

It seems there are many places where mount is being used effectively.  I am all 
for some standard syntax.

  +1
 
  We just need to standardize a docroot within a docroot.
  This is not relocation of subtrees within the datastore, this is just
  mounting
  a datastore somewhere within a parent datastore.
 
  In YANG validation terms, you simply adjust the docroot to the nested
  mount
  point,
  and the replicated datastore can be used as if it were stand-alone.
  This would allow any sort of encapsulation of datastores and not add
  any
  data model complexity to devices which do not have virtual servers
  (most of them).
  Compared to the mount draft, I would like to decouple the schema
  information from the instance population mechanism.  I.e., I'd like a
  mechanism that simply defines the schema, not necessarily how the data
  is populated (in the mount draft data was fetched from a remote
  server, but IMO that is just one of several use cases).
 Yes, I agree that these could/should be decoupled.  Although I note
 that the mount draft does also allow for local mounts, although this
 does not seem to be intended to be the mainline case.

The mount draft was indeed driven by OpenDaylight's use cases.  In ODL, mount 
is used for local YANG representation of remote device information. 

Based on this I believe a generalized mount syntax should not mandate that the 
target must be local and cannot be remote.  Nor should a generalized mount 
syntax itself restrict whether the target node contain schema or instance info. 
  There are many ways beyond the syntax if an implementation has no desire for 
this.

Eric


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


Re: [netmod] Y34 - root node

2015-08-21 Thread Martin Bjorklund
Robert Wilton rwil...@cisco.com wrote:
 Hi Martin,
 
 On 20/08/2015 09:15, Martin Bjorklund wrote:
  Andy Bierman a...@yumaworks.com wrote:
  On Wed, Aug 19, 2015 at 4:25 AM, Martin Bjorklund m...@tail-f.com
  wrote:
 
  Robert Wilton rwil...@cisco.com wrote:
 
  On 18/08/2015 18:22, Andy Bierman wrote:
  This is how languages like SMIv2 and YANG work.
  A conceptual object is given a permanent home within the tree of
  object identifiers.
  Moving data is very expensive, since any clients working with the old
  data
  will break as soon as the data is moved.
 
I am not convinced the IETF can or should come up with a set of
containers
  that covers every possible topic that can be modeled in YANG.
  I mostly agree, but having some more structure/advice as to where to
  place YANG modules may be helpful.  I'm thinking more along the lines
  of broad categories rather than precise locations.
  +1
 
   If someone wants to builds a YANG controller node that is managing
   the configuration for a network of devices then wouldn't they want
   a particular device's interface configuration to be located
   somewhere like /network/device/device-name/interfaces/interface?
   Ideally, they would be able to use the same YANG definitions that
   are defined for /interfaces/ but root them relative to
   /network/device/device-name/.
 
 
 
  Yes -- some of us (like Martin) have pointed this out many times.
  The device container on an NE does not help at all wrt/
  aggregation on a controller. /device or / work the same for this
  purpose.
  Actually, I would argue that / works better.  On the controller, you
  probably have a list of devices you control (this is how our NCS
  works, and how ODL works (I have been told)):
 
 container devices {
   list device {
 key name;
 // meta-info about the device goes here, things like
 // ip-address, port, auth info...
 container data {
   // all models supported by the devices are mounted here
 }
   }
 }
 
  So on the controller, the path to interface eth0 on device foo
  would be:
 
 /devices/device[name='foo']/data/interfaces/interface[name='eth0']
 
  if we also have a top-level /device container we'd have:
 
 
  /devices/device[name='foo']/data/device/interfaces/interface[name='eth0']
 
  What would the real resource location for
  /network/device/device-name/interfaces/interface be?
  I don't think there is such a thing as a real location.  The path is
  scoped in the system you work with; in the controller it might be as I
  illustrated above, in the device it starts with /interfaces, but in a
  controller-of-controllers it might be:
 
 /domains/domain[name='bar']/devices/device[name='foo']/data
   /interfaces/interface[name='eth0']
 
  Currently we have a proprietary way of relocating YANG modules, and
  ODL has its mount, and I think Andy has some other mechanism.  Maybe
  the time has come to standardize how mount works, and maybe then also
  standardize the list of devices in a controller model.
 
 
  +1
 
  We just need to standardize a docroot within a docroot.
  This is not relocation of subtrees within the datastore, this is just
  mounting
  a datastore somewhere within a parent datastore.
 
  In YANG validation terms, you simply adjust the docroot to the nested
  mount
  point,
  and the replicated datastore can be used as if it were stand-alone.
  This would allow any sort of encapsulation of datastores and not add
  any
  data model complexity to devices which do not have virtual servers
  (most of them).
  Compared to the mount draft, I would like to decouple the schema
  information from the instance population mechanism.  I.e., I'd like a
  mechanism that simply defines the schema, not necessarily how the data
  is populated (in the mount draft data was fetched from a remote
  server, but IMO that is just one of several use cases).
 Yes, I agree that these could/should be decoupled.  Although I note
 that the mount draft does also allow for local mounts, although this
 does not seem to be intended to be the mainline case.
 
 
  I can think of two ways to do this.
 
  1)  Your ycx:root statement.  This is open-ended, so we could do:
 
 list logical-element {
   key name;
   leaf name { ... }
   yang-root true;
 }
 
   From a schema perspective, any top-level node from any data model
   could be used within the logical-element list.
 
  2)  Cherry-picking:
 
 list logical-element {
   key name;
   leaf name { ... }
   mount if:interfaces;
   mount sys:system;
   ...
 }
 I think that that it makes the overall schema more useful if it
 explicitly states what schema is used for the mounted nodes, although
 possibly a wildcard mount could still be allowed.
 
 I wasn't quite sure how it would work if you wanted to mount a schema
 that has 

Re: [netmod] Y34 - root node

2015-08-21 Thread Andy Bierman
On Fri, Aug 21, 2015 at 6:01 AM, Martin Bjorklund m...@tail-f.com wrote:

 Robert Wilton rwil...@cisco.com wrote:
  Hi Martin,
 
  On 20/08/2015 09:15, Martin Bjorklund wrote:
   Andy Bierman a...@yumaworks.com wrote:
   On Wed, Aug 19, 2015 at 4:25 AM, Martin Bjorklund m...@tail-f.com
   wrote:
  
   Robert Wilton rwil...@cisco.com wrote:
  
   On 18/08/2015 18:22, Andy Bierman wrote:
   This is how languages like SMIv2 and YANG work.
   A conceptual object is given a permanent home within the tree of
   object identifiers.
   Moving data is very expensive, since any clients working with the
 old
   data
   will break as soon as the data is moved.
  
 I am not convinced the IETF can or should come up with a set of
 containers
   that covers every possible topic that can be modeled in YANG.
   I mostly agree, but having some more structure/advice as to where to
   place YANG modules may be helpful.  I'm thinking more along the
 lines
   of broad categories rather than precise locations.
   +1
  
If someone wants to builds a YANG controller node that is
 managing
the configuration for a network of devices then wouldn't they
 want
a particular device's interface configuration to be located
somewhere like
 /network/device/device-name/interfaces/interface?
Ideally, they would be able to use the same YANG definitions
 that
are defined for /interfaces/ but root them relative to
/network/device/device-name/.
  
  
  
   Yes -- some of us (like Martin) have pointed this out many times.
   The device container on an NE does not help at all wrt/
   aggregation on a controller. /device or / work the same for
 this
   purpose.
   Actually, I would argue that / works better.  On the controller, you
   probably have a list of devices you control (this is how our NCS
   works, and how ODL works (I have been told)):
  
  container devices {
list device {
  key name;
  // meta-info about the device goes here, things like
  // ip-address, port, auth info...
  container data {
// all models supported by the devices are mounted here
  }
}
  }
  
   So on the controller, the path to interface eth0 on device foo
   would be:
  
  /devices/device[name='foo']/data/interfaces/interface[name='eth0']
  
   if we also have a top-level /device container we'd have:
  
  
 /devices/device[name='foo']/data/device/interfaces/interface[name='eth0']
  
   What would the real resource location for
   /network/device/device-name/interfaces/interface be?
   I don't think there is such a thing as a real location.  The path
 is
   scoped in the system you work with; in the controller it might be as
 I
   illustrated above, in the device it starts with /interfaces, but in a
   controller-of-controllers it might be:
  
  /domains/domain[name='bar']/devices/device[name='foo']/data
/interfaces/interface[name='eth0']
  
   Currently we have a proprietary way of relocating YANG modules, and
   ODL has its mount, and I think Andy has some other mechanism.
 Maybe
   the time has come to standardize how mount works, and maybe then also
   standardize the list of devices in a controller model.
  
  
   +1
  
   We just need to standardize a docroot within a docroot.
   This is not relocation of subtrees within the datastore, this is just
   mounting
   a datastore somewhere within a parent datastore.
  
   In YANG validation terms, you simply adjust the docroot to the nested
   mount
   point,
   and the replicated datastore can be used as if it were stand-alone.
   This would allow any sort of encapsulation of datastores and not add
   any
   data model complexity to devices which do not have virtual servers
   (most of them).
   Compared to the mount draft, I would like to decouple the schema
   information from the instance population mechanism.  I.e., I'd like a
   mechanism that simply defines the schema, not necessarily how the data
   is populated (in the mount draft data was fetched from a remote
   server, but IMO that is just one of several use cases).
  Yes, I agree that these could/should be decoupled.  Although I note
  that the mount draft does also allow for local mounts, although this
  does not seem to be intended to be the mainline case.
 
  
   I can think of two ways to do this.
  
   1)  Your ycx:root statement.  This is open-ended, so we could do:
  
  list logical-element {
key name;
leaf name { ... }
yang-root true;
  }
  
From a schema perspective, any top-level node from any data model
could be used within the logical-element list.
  
   2)  Cherry-picking:
  
  list logical-element {
key name;
leaf name { ... }
mount if:interfaces;
mount sys:system;
...
  }
  I think that that it makes the overall schema more useful if it
  

Re: [netmod] Y34 - root node

2015-08-21 Thread Ladislav Lhotka

 On 21 Aug 2015, at 15:01, Martin Bjorklund m...@tail-f.com wrote:
 
 Robert Wilton rwil...@cisco.com wrote:
 Hi Martin,
 
 On 20/08/2015 09:15, Martin Bjorklund wrote:
 Andy Bierman a...@yumaworks.com wrote:
 On Wed, Aug 19, 2015 at 4:25 AM, Martin Bjorklund m...@tail-f.com
 wrote:
 
 Robert Wilton rwil...@cisco.com wrote:
 
 On 18/08/2015 18:22, Andy Bierman wrote:
 This is how languages like SMIv2 and YANG work.
 A conceptual object is given a permanent home within the tree of
 object identifiers.
 Moving data is very expensive, since any clients working with the old
 data
 will break as soon as the data is moved.
 
  I am not convinced the IETF can or should come up with a set of
  containers
 that covers every possible topic that can be modeled in YANG.
 I mostly agree, but having some more structure/advice as to where to
 place YANG modules may be helpful.  I'm thinking more along the lines
 of broad categories rather than precise locations.
 +1
 
 If someone wants to builds a YANG controller node that is managing
 the configuration for a network of devices then wouldn't they want
 a particular device's interface configuration to be located
 somewhere like /network/device/device-name/interfaces/interface?
 Ideally, they would be able to use the same YANG definitions that
 are defined for /interfaces/ but root them relative to
 /network/device/device-name/.
 
 
 
 Yes -- some of us (like Martin) have pointed this out many times.
 The device container on an NE does not help at all wrt/
 aggregation on a controller. /device or / work the same for this
 purpose.
 Actually, I would argue that / works better.  On the controller, you
 probably have a list of devices you control (this is how our NCS
 works, and how ODL works (I have been told)):
 
   container devices {
 list device {
   key name;
   // meta-info about the device goes here, things like
   // ip-address, port, auth info...
   container data {
 // all models supported by the devices are mounted here
   }
 }
   }
 
 So on the controller, the path to interface eth0 on device foo
 would be:
 
   /devices/device[name='foo']/data/interfaces/interface[name='eth0']
 
 if we also have a top-level /device container we'd have:
 
   
 /devices/device[name='foo']/data/device/interfaces/interface[name='eth0']
 
 What would the real resource location for
 /network/device/device-name/interfaces/interface be?
 I don't think there is such a thing as a real location.  The path is
 scoped in the system you work with; in the controller it might be as I
 illustrated above, in the device it starts with /interfaces, but in a
 controller-of-controllers it might be:
 
   /domains/domain[name='bar']/devices/device[name='foo']/data
 /interfaces/interface[name='eth0']
 
 Currently we have a proprietary way of relocating YANG modules, and
 ODL has its mount, and I think Andy has some other mechanism.  Maybe
 the time has come to standardize how mount works, and maybe then also
 standardize the list of devices in a controller model.
 
 
 +1
 
 We just need to standardize a docroot within a docroot.
 This is not relocation of subtrees within the datastore, this is just
 mounting
 a datastore somewhere within a parent datastore.
 
 In YANG validation terms, you simply adjust the docroot to the nested
 mount
 point,
 and the replicated datastore can be used as if it were stand-alone.
 This would allow any sort of encapsulation of datastores and not add
 any
 data model complexity to devices which do not have virtual servers
 (most of them).
 Compared to the mount draft, I would like to decouple the schema
 information from the instance population mechanism.  I.e., I'd like a
 mechanism that simply defines the schema, not necessarily how the data
 is populated (in the mount draft data was fetched from a remote
 server, but IMO that is just one of several use cases).
 Yes, I agree that these could/should be decoupled.  Although I note
 that the mount draft does also allow for local mounts, although this
 does not seem to be intended to be the mainline case.
 
 
 I can think of two ways to do this.
 
 1)  Your ycx:root statement.  This is open-ended, so we could do:
 
   list logical-element {
 key name;
 leaf name { ... }
 yang-root true;
   }
 
 From a schema perspective, any top-level node from any data model
 could be used within the logical-element list.
 
 2)  Cherry-picking:
 
   list logical-element {
 key name;
 leaf name { ... }
 mount if:interfaces;
 mount sys:system;
 ...
   }
 I think that that it makes the overall schema more useful if it
 explicitly states what schema is used for the mounted nodes, although
 possibly a wildcard mount could still be allowed.
 
 I wasn't quite sure how it would work if you wanted to mount a schema
 that has augmentations.  Would you have to list all supported
 augmentations in 

Re: [netmod] Y34 - root node

2015-08-21 Thread Robert Wilton

Hi Martin,

On 20/08/2015 09:15, Martin Bjorklund wrote:

Andy Bierman a...@yumaworks.com wrote:

On Wed, Aug 19, 2015 at 4:25 AM, Martin Bjorklund m...@tail-f.com wrote:


Robert Wilton rwil...@cisco.com wrote:


On 18/08/2015 18:22, Andy Bierman wrote:

This is how languages like SMIv2 and YANG work.
A conceptual object is given a permanent home within the tree of
object identifiers.
Moving data is very expensive, since any clients working with the old
data
will break as soon as the data is moved.

  I am not convinced the IETF can or should come up with a set of
  containers
that covers every possible topic that can be modeled in YANG.

I mostly agree, but having some more structure/advice as to where to
place YANG modules may be helpful.  I'm thinking more along the lines
of broad categories rather than precise locations.

+1


 If someone wants to builds a YANG controller node that is managing
 the configuration for a network of devices then wouldn't they want
 a particular device's interface configuration to be located
 somewhere like /network/device/device-name/interfaces/interface?
 Ideally, they would be able to use the same YANG definitions that
 are defined for /interfaces/ but root them relative to
 /network/device/device-name/.



Yes -- some of us (like Martin) have pointed this out many times.
The device container on an NE does not help at all wrt/
aggregation on a controller. /device or / work the same for this
purpose.

Actually, I would argue that / works better.  On the controller, you
probably have a list of devices you control (this is how our NCS
works, and how ODL works (I have been told)):

   container devices {
 list device {
   key name;
   // meta-info about the device goes here, things like
   // ip-address, port, auth info...
   container data {
 // all models supported by the devices are mounted here
   }
 }
   }

So on the controller, the path to interface eth0 on device foo
would be:

   /devices/device[name='foo']/data/interfaces/interface[name='eth0']

if we also have a top-level /device container we'd have:

   /devices/device[name='foo']/data/device/interfaces/interface[name='eth0']


What would the real resource location for
/network/device/device-name/interfaces/interface be?

I don't think there is such a thing as a real location.  The path is
scoped in the system you work with; in the controller it might be as I
illustrated above, in the device it starts with /interfaces, but in a
controller-of-controllers it might be:

   /domains/domain[name='bar']/devices/device[name='foo']/data
 /interfaces/interface[name='eth0']

Currently we have a proprietary way of relocating YANG modules, and
ODL has its mount, and I think Andy has some other mechanism.  Maybe
the time has come to standardize how mount works, and maybe then also
standardize the list of devices in a controller model.



+1

We just need to standardize a docroot within a docroot.
This is not relocation of subtrees within the datastore, this is just
mounting
a datastore somewhere within a parent datastore.

In YANG validation terms, you simply adjust the docroot to the nested mount
point,
and the replicated datastore can be used as if it were stand-alone.
This would allow any sort of encapsulation of datastores and not add any
data model complexity to devices which do not have virtual servers
(most of them).

Compared to the mount draft, I would like to decouple the schema
information from the instance population mechanism.  I.e., I'd like a
mechanism that simply defines the schema, not necessarily how the data
is populated (in the mount draft data was fetched from a remote
server, but IMO that is just one of several use cases).
Yes, I agree that these could/should be decoupled.  Although I note that 
the mount draft does also allow for local mounts, although this does not 
seem to be intended to be the mainline case.




I can think of two ways to do this.

1)  Your ycx:root statement.  This is open-ended, so we could do:

   list logical-element {
 key name;
 leaf name { ... }
 yang-root true;
   }

 From a schema perspective, any top-level node from any data model
 could be used within the logical-element list.

2)  Cherry-picking:

   list logical-element {
 key name;
 leaf name { ... }
 mount if:interfaces;
 mount sys:system;
 ...
   }
I think that that it makes the overall schema more useful if it 
explicitly states what schema is used for the mounted nodes, although 
possibly a wildcard mount could still be allowed.


I wasn't quite sure how it would work if you wanted to mount a schema 
that has augmentations.  Would you have to list all supported 
augmentations in the mount point as well?  Otherwise you wouldn't know 
what the full schema is.


Thanks,
Rob




Or maybe combine them into one mount statement:

mount *;  // allow any top-level 

Re: [netmod] Y34 - root node

2015-08-20 Thread Ladislav Lhotka
Andy Bierman a...@yumaworks.com writes:

 On Wed, Aug 19, 2015 at 4:25 AM, Martin Bjorklund m...@tail-f.com wrote:

 Robert Wilton rwil...@cisco.com wrote:
 
 
  On 18/08/2015 18:22, Andy Bierman wrote:
   This is how languages like SMIv2 and YANG work.
   A conceptual object is given a permanent home within the tree of
   object identifiers.
   Moving data is very expensive, since any clients working with the old
   data
   will break as soon as the data is moved.
  
I am not convinced the IETF can or should come up with a set of
containers
   that covers every possible topic that can be modeled in YANG.
 
  I mostly agree, but having some more structure/advice as to where to
  place YANG modules may be helpful.  I'm thinking more along the lines
  of broad categories rather than precise locations.

 +1

   If someone wants to builds a YANG controller node that is managing
   the configuration for a network of devices then wouldn't they want
   a particular device's interface configuration to be located
   somewhere like /network/device/device-name/interfaces/interface?
   Ideally, they would be able to use the same YANG definitions that
   are defined for /interfaces/ but root them relative to
   /network/device/device-name/.
  
  
  
   Yes -- some of us (like Martin) have pointed this out many times.
   The device container on an NE does not help at all wrt/
   aggregation on a controller. /device or / work the same for this
   purpose.

 Actually, I would argue that / works better.  On the controller, you
 probably have a list of devices you control (this is how our NCS
 works, and how ODL works (I have been told)):

   container devices {
 list device {
   key name;
   // meta-info about the device goes here, things like
   // ip-address, port, auth info...
   container data {
 // all models supported by the devices are mounted here
   }
 }
   }

 So on the controller, the path to interface eth0 on device foo
 would be:

   /devices/device[name='foo']/data/interfaces/interface[name='eth0']

 if we also have a top-level /device container we'd have:

   /devices/device[name='foo']/data/device/interfaces/interface[name='eth0']

  What would the real resource location for
  /network/device/device-name/interfaces/interface be?

 I don't think there is such a thing as a real location.  The path is
 scoped in the system you work with; in the controller it might be as I
 illustrated above, in the device it starts with /interfaces, but in a
 controller-of-controllers it might be:

   /domains/domain[name='bar']/devices/device[name='foo']/data
 /interfaces/interface[name='eth0']

 Currently we have a proprietary way of relocating YANG modules, and
 ODL has its mount, and I think Andy has some other mechanism.  Maybe
 the time has come to standardize how mount works, and maybe then also
 standardize the list of devices in a controller model.



 +1

 We just need to standardize a docroot within a docroot.  This is not
 relocation of subtrees within the datastore, this is just mounting a
 datastore somewhere within a parent datastore.

The current definition of datastore is too general, so I don't know what
datastore inside datastore means. What's clear is that a single module
cannot just be mounted anywhere. For example, if ietf-interfaces is
mounted under /device and ietf-ip straight under /, then I don't see how
references and XPath expressions could be reliably modified to work as
expected.

That's why I think only self-contained packages can be mounted, and
inside them all references can be prepended with the mount root.

Lada


 In YANG validation terms, you simply adjust the docroot to the nested mount
 point,
 and the replicated datastore can be used as if it were stand-alone.
 This would allow any sort of encapsulation of datastores and not add any
 data model complexity to devices which do not have virtual servers
 (most of them).



 /martin



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

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C

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


Re: [netmod] Y34 - root node

2015-08-20 Thread Martin Bjorklund
Andy Bierman a...@yumaworks.com wrote:
 On Wed, Aug 19, 2015 at 4:25 AM, Martin Bjorklund m...@tail-f.com wrote:
 
  Robert Wilton rwil...@cisco.com wrote:
  
  
   On 18/08/2015 18:22, Andy Bierman wrote:
This is how languages like SMIv2 and YANG work.
A conceptual object is given a permanent home within the tree of
object identifiers.
Moving data is very expensive, since any clients working with the old
data
will break as soon as the data is moved.
   
 I am not convinced the IETF can or should come up with a set of
 containers
that covers every possible topic that can be modeled in YANG.
  
   I mostly agree, but having some more structure/advice as to where to
   place YANG modules may be helpful.  I'm thinking more along the lines
   of broad categories rather than precise locations.
 
  +1
 
If someone wants to builds a YANG controller node that is managing
the configuration for a network of devices then wouldn't they want
a particular device's interface configuration to be located
somewhere like /network/device/device-name/interfaces/interface?
Ideally, they would be able to use the same YANG definitions that
are defined for /interfaces/ but root them relative to
/network/device/device-name/.
   
   
   
Yes -- some of us (like Martin) have pointed this out many times.
The device container on an NE does not help at all wrt/
aggregation on a controller. /device or / work the same for this
purpose.
 
  Actually, I would argue that / works better.  On the controller, you
  probably have a list of devices you control (this is how our NCS
  works, and how ODL works (I have been told)):
 
container devices {
  list device {
key name;
// meta-info about the device goes here, things like
// ip-address, port, auth info...
container data {
  // all models supported by the devices are mounted here
}
  }
}
 
  So on the controller, the path to interface eth0 on device foo
  would be:
 
/devices/device[name='foo']/data/interfaces/interface[name='eth0']
 
  if we also have a top-level /device container we'd have:
 
/devices/device[name='foo']/data/device/interfaces/interface[name='eth0']
 
   What would the real resource location for
   /network/device/device-name/interfaces/interface be?
 
  I don't think there is such a thing as a real location.  The path is
  scoped in the system you work with; in the controller it might be as I
  illustrated above, in the device it starts with /interfaces, but in a
  controller-of-controllers it might be:
 
/domains/domain[name='bar']/devices/device[name='foo']/data
  /interfaces/interface[name='eth0']
 
  Currently we have a proprietary way of relocating YANG modules, and
  ODL has its mount, and I think Andy has some other mechanism.  Maybe
  the time has come to standardize how mount works, and maybe then also
  standardize the list of devices in a controller model.
 
 
 
 +1
 
 We just need to standardize a docroot within a docroot.
 This is not relocation of subtrees within the datastore, this is just
 mounting
 a datastore somewhere within a parent datastore.
 
 In YANG validation terms, you simply adjust the docroot to the nested mount
 point,
 and the replicated datastore can be used as if it were stand-alone.
 This would allow any sort of encapsulation of datastores and not add any
 data model complexity to devices which do not have virtual servers
 (most of them).

Compared to the mount draft, I would like to decouple the schema
information from the instance population mechanism.  I.e., I'd like a
mechanism that simply defines the schema, not necessarily how the data
is populated (in the mount draft data was fetched from a remote
server, but IMO that is just one of several use cases).

I can think of two ways to do this.

1)  Your ycx:root statement.  This is open-ended, so we could do:

  list logical-element {
key name;
leaf name { ... }
yang-root true;
  }

From a schema perspective, any top-level node from any data model
could be used within the logical-element list.

2)  Cherry-picking:

  list logical-element {
key name;
leaf name { ... }
mount if:interfaces;
mount sys:system;
...
  }

Or maybe combine them into one mount statement:

   mount *;  // allow any top-level node
   mount sys:system; // allow this specific top-level node



/martin

   

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


Re: [netmod] Y34 - root node

2015-08-19 Thread Martin Bjorklund
Robert Wilton rwil...@cisco.com wrote:
 
 
 On 18/08/2015 18:22, Andy Bierman wrote:
  This is how languages like SMIv2 and YANG work.
  A conceptual object is given a permanent home within the tree of
  object identifiers.
  Moving data is very expensive, since any clients working with the old
  data
  will break as soon as the data is moved.
 
   I am not convinced the IETF can or should come up with a set of
   containers
  that covers every possible topic that can be modeled in YANG.
 
 I mostly agree, but having some more structure/advice as to where to
 place YANG modules may be helpful.  I'm thinking more along the lines
 of broad categories rather than precise locations.

+1

  If someone wants to builds a YANG controller node that is managing
  the configuration for a network of devices then wouldn't they want
  a particular device's interface configuration to be located
  somewhere like /network/device/device-name/interfaces/interface?
  Ideally, they would be able to use the same YANG definitions that
  are defined for /interfaces/ but root them relative to
  /network/device/device-name/.
 
 
 
  Yes -- some of us (like Martin) have pointed this out many times.
  The device container on an NE does not help at all wrt/
  aggregation on a controller. /device or / work the same for this
  purpose.

Actually, I would argue that / works better.  On the controller, you
probably have a list of devices you control (this is how our NCS
works, and how ODL works (I have been told)):

  container devices {
list device {
  key name;
  // meta-info about the device goes here, things like
  // ip-address, port, auth info...
  container data {
// all models supported by the devices are mounted here
  }
}
  }

So on the controller, the path to interface eth0 on device foo
would be:

  /devices/device[name='foo']/data/interfaces/interface[name='eth0']

if we also have a top-level /device container we'd have:

  /devices/device[name='foo']/data/device/interfaces/interface[name='eth0']

 What would the real resource location for
 /network/device/device-name/interfaces/interface be?

I don't think there is such a thing as a real location.  The path is
scoped in the system you work with; in the controller it might be as I
illustrated above, in the device it starts with /interfaces, but in a
controller-of-controllers it might be:

  /domains/domain[name='bar']/devices/device[name='foo']/data
/interfaces/interface[name='eth0']

Currently we have a proprietary way of relocating YANG modules, and
ODL has its mount, and I think Andy has some other mechanism.  Maybe
the time has come to standardize how mount works, and maybe then also
standardize the list of devices in a controller model.


/martin

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


Re: [netmod] Y34 - root node

2015-08-19 Thread Robert Wilton
 be insane.
The actual location of files is quite configurable and
different
across distros. We could learn something from the last decade
of Linux package management, and try to apply it to YANG.

That’s an interesting idea, could a YANG package also specify,
e.g. that the root node for the package is X/Y/Z? This could
solve some use cases for relocatability, and it would also be
relatively easy to modify all absolute XPath expressions
inside the package.

If someone wants to builds a YANG controller node that is managing
the configuration for a network of devices then wouldn't they want
a particular device's interface configuration to be located
somewhere like /network/device/device-name/interfaces/interface?
Ideally, they would be able to use the same YANG definitions that
are defined for /interfaces/ but root them relative to
/network/device/device-name/.



Yes -- some of us (like Martin) have pointed this out many times.
The device container on an NE does not help at all wrt/
aggregation on a controller. /device or / work the same for this 
purpose.



Having YANG packages being able to control the relative paths of
the imported YANG modules would possibly allow for more
flexibility in how YANG modules fit together, and also give a more
pragmatic way for how these could be changed/upgraded in future if
necessary.



YANG packages provide a way to describe a set of modules.
They do not change the top-level data nodes of any objects.
This would be very complicated and not really worth it.


IMO the tree of NP containers should be a resource directory,
meaning it contains links to the real resources.  Kind of like an
index in a library.  They don't keep the contents of every book in the 
index.

They keep the location of every book in the index.  The index is stable.
The resource location does not have to be stable.
What would the real resource location for 
/network/device/device-name/interfaces/interface be?  If the 
concrete location for all interfaces (regardless of device) was the flat 
list /interfaces/ then you would get clashes between the names of the 
interfaces on different devices.  Also, what if someone wanted two 
separate lists of interfaces in two separate parts of the resource 
hierarchy.  Would that be feasible?


Thanks,
Rob





Cheers,
Rob


Andy




Lada





Thanks,
Acee


Andy



From: netmod netmod-boun...@ietf.org
mailto:netmod-boun...@ietf.org on behalf of Einar
Nilsen-Nygaard (einarnn) eina...@cisco.com
mailto:eina...@cisco.com
Date: Monday, August 10, 2015 at 5:29 AM
To: Jonathan Hansford jonat...@hansfords.net
mailto:jonat...@hansfords.net
Cc: NETMOD Working Group netmod@ietf.org
mailto:netmod@ietf.org
Subject: Re: [netmod] Y34 - root node

As someone sharing responsibilities for guiding a number
of development teams both defining new models and
implementing to some already defined models in this area,
I can only agree with this addition to what I said earlier.

Cheers,

Einar

On Aug 10, 2015, at 9:46 AM, Jonathan Hansford
jonat...@hansfords.net
mailto:jonat...@hansfords.net wrote:

  And it is not just end users who need help to better
understand YANG models and how to use them. For those
still on the edge, looking to finally take the plunge
and use NETCONF/YANG to configure their devices, help
is also required to determine how best to structure
their YANG models, make use of the existing ones, etc.
For those who have grown up with the developments in
NETCONF and YANG, much of this is probably second
nature. But coming to it cold (in the sense of
compiling/writing a first set of YANG models for a
device; I've been following the netconf/netmod WGs for
3+ years), it still feels very much like a dark art!
It is not just the individual modules, it is how to
put them together to best manage a device (let alone a
system).

Jonathan



- Original Message -
From:
Einar Nilsen-Nygaard (einarnn) eina...@cisco.com
mailto:eina...@cisco.com

To:
Andy Bierman a...@yumaworks.com
mailto:a...@yumaworks.com
Cc:
NETMOD Working Group netmod@ietf.org
mailto:netmod@ietf.org
Sent:
Sat, 8 Aug 2015 11:10:15 +
Subject

Re: [netmod] Y34 - root node

2015-08-18 Thread Robert Wilton



On 11/08/2015 08:38, Ladislav Lhotka wrote:

On 10 Aug 2015, at 22:15, Andy Bierman a...@yumaworks.com wrote:



On Mon, Aug 10, 2015 at 12:34 PM, Acee Lindem (acee) a...@cisco.com wrote:
I think there is agreement that there is a problem. The YANG Routing Design 
Team is  addressing this with 
https://www.ietf.org/id/draft-rtgyangdt-rtgwg-device-model-00.txt  (which has 
evolved from 
https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt). In 
essence, a place for everything and everything in its place. However, there are 
those who feel that can’t mandate a single model structure for network devices 
and we need mechanisms to manage multiple models but allow for different device 
structure (e.g., 
https://www.ietf.org/id/draft-bierman-netmod-yang-package-00.txt).  I hope we 
can agree on an approach in the coming interim meetings.


Do you expect everything in its place to apply to all other SDOs and
all vendor modules? Or do you expect just the IETF routing modules
to follow this subtree hierarchy? If the former, does this mean the
YANG Routing Design Team is the YANG data placement authority
or all YANG modules that ever get written? How long should
it take for all other SDOs and vendors to redo all their existing
modules to re-root them in their assigned place in the data tree?

IMO is is not a good idea to rely on rigid data node placement,
and a single data placement authority. It is better and use meta-data
built from the YANG modules (or YANG packages) instead.

I think that having fixed paths may end up being too restrictive.



The reason Linux uses packages to install/update functionality
is because managing 8000 packages is hard enough.
Managing 247,000 individual files would be insane.
The actual location of files is quite configurable and different
across distros. We could learn something from the last decade
of Linux package management, and try to apply it to YANG.


That’s an interesting idea, could a YANG package also specify, e.g. that the 
root node for the package is X/Y/Z? This could solve some use cases for 
relocatability, and it would also be relatively easy to modify all absolute 
XPath expressions inside the package.
If someone wants to builds a YANG controller node that is managing the 
configuration for a network of devices then wouldn't they want a 
particular device's interface configuration to be located somewhere like 
/network/device/device-name/interfaces/interface? Ideally, they would 
be able to use the same YANG definitions that are defined for 
/interfaces/ but root them relative to /network/device/device-name/.


Having YANG packages being able to control the relative paths of the 
imported YANG modules would possibly allow for more flexibility in how 
YANG modules fit together, and also give a more pragmatic way for how 
these could be changed/upgraded in future if necessary.


Cheers,
Rob




Lada






Thanks,
Acee


Andy
  




From: netmod netmod-boun...@ietf.org on behalf of Einar Nilsen-Nygaard (einarnn) 
eina...@cisco.com
Date: Monday, August 10, 2015 at 5:29 AM
To: Jonathan Hansford jonat...@hansfords.net
Cc: NETMOD Working Group netmod@ietf.org
Subject: Re: [netmod] Y34 - root node

As someone sharing responsibilities for guiding a number of development teams 
both defining new models and implementing to some already defined models in 
this area, I can only agree with this addition to what I said earlier.

Cheers,

Einar


On Aug 10, 2015, at 9:46 AM, Jonathan Hansford jonat...@hansfords.net wrote:

  And it is not just end users who need help to better understand YANG models and how to 
use them. For those still on the edge, looking to finally take the plunge and use 
NETCONF/YANG to configure their devices, help is also required to determine how best to 
structure their YANG models, make use of the existing ones, etc. For those who have 
grown up with the developments in NETCONF and YANG, much of this is probably 
second nature. But coming to it cold (in the sense of compiling/writing a first set of 
YANG models for a device; I've been following the netconf/netmod WGs for 3+ years), it 
still feels very much like a dark art! It is not just the individual modules, it is how 
to put them together to best manage a device (let alone a system).

Jonathan



- Original Message -
From:
Einar Nilsen-Nygaard (einarnn) eina...@cisco.com

To:
Andy Bierman a...@yumaworks.com
Cc:
NETMOD Working Group netmod@ietf.org
Sent:
Sat, 8 Aug 2015 11:10:15 +
Subject:
Re: [netmod] Y34 - root node


Andy,

I agree that there is a need for organization of models, but I don’t have a 
firm position on 
draft-openconfig-netmod-model-structure/draft-rtgyangdt-rtgwg-device-model or 
draft-bierman-netmod-yang-package. But we absolutely need *something* to help 
end-users of the models comprehend the overall structure of models, their 
relationship and how to use them.

Cheers,

Einar

On Aug 4, 2015, at 5:16 PM, Andy Bierman a...@yumaworks.com wrote

Re: [netmod] Y34 - root node

2015-08-18 Thread Andy Bierman
On Tue, Aug 18, 2015 at 9:59 AM, Robert Wilton rwil...@cisco.com wrote:



 On 11/08/2015 08:38, Ladislav Lhotka wrote:

 On 10 Aug 2015, at 22:15, Andy Bierman a...@yumaworks.com wrote:



 On Mon, Aug 10, 2015 at 12:34 PM, Acee Lindem (acee) a...@cisco.com
 wrote:
 I think there is agreement that there is a problem. The YANG Routing
 Design Team is  addressing this with
 https://www.ietf.org/id/draft-rtgyangdt-rtgwg-device-model-00.txt
 (which has evolved from
 https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt).
 In essence, a place for everything and everything in its place. However,
 there are those who feel that can’t mandate a single model structure for
 network devices and we need mechanisms to manage multiple models but allow
 for different device structure (e.g.,
 https://www.ietf.org/id/draft-bierman-netmod-yang-package-00.txt).  I
 hope we can agree on an approach in the coming interim meetings.


 Do you expect everything in its place to apply to all other SDOs and
 all vendor modules? Or do you expect just the IETF routing modules
 to follow this subtree hierarchy? If the former, does this mean the
 YANG Routing Design Team is the YANG data placement authority
 or all YANG modules that ever get written? How long should
 it take for all other SDOs and vendors to redo all their existing
 modules to re-root them in their assigned place in the data tree?

 IMO is is not a good idea to rely on rigid data node placement,
 and a single data placement authority. It is better and use meta-data
 built from the YANG modules (or YANG packages) instead.

 I think that having fixed paths may end up being too restrictive.



This is how languages like SMIv2 and YANG work.
A conceptual object is given a permanent home within the tree of object
identifiers.
Moving data is very expensive, since any clients working with the old data
will break as soon as the data is moved.

 I am not convinced the IETF can or should come up with a set of containers
that covers every possible topic that can be modeled in YANG.
Even if such a lake could be brought to a boil, I have no confidence
that the hierarchy will be 100% stable.  It can certainly
never be 100% complete.  If the IETF thinks it's a good idea
to obsolete all YANG RFCs and start over now, who is to say
the IETF won't do that again every few years?





 The reason Linux uses packages to install/update functionality
 is because managing 8000 packages is hard enough.
 Managing 247,000 individual files would be insane.
 The actual location of files is quite configurable and different
 across distros. We could learn something from the last decade
 of Linux package management, and try to apply it to YANG.

 That’s an interesting idea, could a YANG package also specify, e.g. that
 the root node for the package is X/Y/Z? This could solve some use cases for
 relocatability, and it would also be relatively easy to modify all absolute
 XPath expressions inside the package.

 If someone wants to builds a YANG controller node that is managing the
 configuration for a network of devices then wouldn't they want a particular
 device's interface configuration to be located somewhere like
 /network/device/device-name/interfaces/interface? Ideally, they would be
 able to use the same YANG definitions that are defined for /interfaces/ but
 root them relative to /network/device/device-name/.



Yes -- some of us (like Martin) have pointed this out many times.
The device container on an NE does not help at all wrt/
aggregation on a controller. /device or / work the same for this
purpose.


Having YANG packages being able to control the relative paths of the
 imported YANG modules would possibly allow for more flexibility in how YANG
 modules fit together, and also give a more pragmatic way for how these
 could be changed/upgraded in future if necessary.



YANG packages provide a way to describe a set of modules.
They do not change the top-level data nodes of any objects.
This would be very complicated and not really worth it.


IMO the tree of NP containers should be a resource directory,
meaning it contains links to the real resources.  Kind of like an
index in a library.  They don't keep the contents of every book in the
index.
They keep the location of every book in the index.  The index is stable.
The resource location does not have to be stable.




 Cheers,
 Rob


Andy





 Lada





 Thanks,
 Acee


 Andy



 From: netmod netmod-boun...@ietf.org on behalf of Einar
 Nilsen-Nygaard (einarnn) eina...@cisco.com
 Date: Monday, August 10, 2015 at 5:29 AM
 To: Jonathan Hansford jonat...@hansfords.net
 Cc: NETMOD Working Group netmod@ietf.org
 Subject: Re: [netmod] Y34 - root node

 As someone sharing responsibilities for guiding a number of development
 teams both defining new models and implementing to some already defined
 models in this area, I can only agree with this addition to what I said
 earlier.

 Cheers,

 Einar

 On Aug 10, 2015, at 9:46 AM

Re: [netmod] Y34 - root node

2015-08-18 Thread Randy Presuhn
Hi -

 From: Andy Bierman
 Sent: Aug 18, 2015 10:22 AM
 To: Robert Wilton
 Cc: NETMOD Working Group
 Subject: Re: [netmod] Y34 - root node

 On Tue, Aug 18, 2015 at 9:59 AM, Robert Wilton rwil...@cisco.com wrote:
...
  I think that having fixed paths may end up being too restrictive.

 This is how languages like SMIv2 and YANG work. A conceptual object
 is given a permanent home within the tree of object identifiers.

But it's *not*, for example, how GDMO works.  The CMIP world
maintains clear distinctions between the (organizational) hierarchy
of object identifiers, the conceptual hierarchies of inheritance
and class composition, and the containment hierarchy of object
instances.  There the NAME BINDING template provides the means
of describing places where instances of a given class may come
home to roost.

Randy

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


Re: [netmod] Y34 - root node

2015-08-11 Thread Ladislav Lhotka

 On 10 Aug 2015, at 22:15, Andy Bierman a...@yumaworks.com wrote:
 
 
 
 On Mon, Aug 10, 2015 at 12:34 PM, Acee Lindem (acee) a...@cisco.com wrote:
 I think there is agreement that there is a problem. The YANG Routing Design 
 Team is  addressing this with 
 https://www.ietf.org/id/draft-rtgyangdt-rtgwg-device-model-00.txt  (which has 
 evolved from 
 https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt). In 
 essence, a place for everything and everything in its place. However, there 
 are those who feel that can’t mandate a single model structure for network 
 devices and we need mechanisms to manage multiple models but allow for 
 different device structure (e.g., 
 https://www.ietf.org/id/draft-bierman-netmod-yang-package-00.txt).  I hope we 
 can agree on an approach in the coming interim meetings. 
 
 
 Do you expect everything in its place to apply to all other SDOs and
 all vendor modules? Or do you expect just the IETF routing modules
 to follow this subtree hierarchy? If the former, does this mean the
 YANG Routing Design Team is the YANG data placement authority 
 or all YANG modules that ever get written? How long should
 it take for all other SDOs and vendors to redo all their existing
 modules to re-root them in their assigned place in the data tree?
 
 IMO is is not a good idea to rely on rigid data node placement,
 and a single data placement authority. It is better and use meta-data
 built from the YANG modules (or YANG packages) instead.
 
 The reason Linux uses packages to install/update functionality
 is because managing 8000 packages is hard enough.
 Managing 247,000 individual files would be insane.
 The actual location of files is quite configurable and different
 across distros. We could learn something from the last decade
 of Linux package management, and try to apply it to YANG.
 

That’s an interesting idea, could a YANG package also specify, e.g. that the 
root node for the package is X/Y/Z? This could solve some use cases for 
relocatability, and it would also be relatively easy to modify all absolute 
XPath expressions inside the package.

Lada

 
 
 
 
 
 Thanks,
 Acee  
 
 
 Andy
  
 
 
 
 From: netmod netmod-boun...@ietf.org on behalf of Einar Nilsen-Nygaard 
 (einarnn) eina...@cisco.com
 Date: Monday, August 10, 2015 at 5:29 AM
 To: Jonathan Hansford jonat...@hansfords.net
 Cc: NETMOD Working Group netmod@ietf.org
 Subject: Re: [netmod] Y34 - root node
 
 As someone sharing responsibilities for guiding a number of development teams 
 both defining new models and implementing to some already defined models in 
 this area, I can only agree with this addition to what I said earlier.
 
 Cheers,
 
 Einar
 
 On Aug 10, 2015, at 9:46 AM, Jonathan Hansford jonat...@hansfords.net 
 wrote:
 
  And it is not just end users who need help to better understand YANG models 
 and how to use them. For those still on the edge, looking to finally take 
 the plunge and use NETCONF/YANG to configure their devices, help is also 
 required to determine how best to structure their YANG models, make use of 
 the existing ones, etc. For those who have grown up with the developments 
 in NETCONF and YANG, much of this is probably second nature. But coming to 
 it cold (in the sense of compiling/writing a first set of YANG models for a 
 device; I've been following the netconf/netmod WGs for 3+ years), it still 
 feels very much like a dark art! It is not just the individual modules, it 
 is how to put them together to best manage a device (let alone a system).
 
 Jonathan
 
 
 
 - Original Message -
 From:
 Einar Nilsen-Nygaard (einarnn) eina...@cisco.com
 
 To:
 Andy Bierman a...@yumaworks.com
 Cc:
 NETMOD Working Group netmod@ietf.org
 Sent:
 Sat, 8 Aug 2015 11:10:15 +
 Subject:
 Re: [netmod] Y34 - root node
 
 
 Andy,
 
 I agree that there is a need for organization of models, but I don’t have a 
 firm position on 
 draft-openconfig-netmod-model-structure/draft-rtgyangdt-rtgwg-device-model 
 or draft-bierman-netmod-yang-package. But we absolutely need *something* to 
 help end-users of the models comprehend the overall structure of models, 
 their relationship and how to use them.
 
 Cheers,
 
 Einar
 
 On Aug 4, 2015, at 5:16 PM, Andy Bierman a...@yumaworks.com wrote:
 
 
 
 On Tue, Aug 4, 2015 at 2:34 AM, t.petch ie...@btconnect.com wrote:
 - Original Message -
 From: Andy Bierman a...@yumaworks.com
 To: t.petch ie...@btconnect.com
 Sent: Monday, August 03, 2015 5:17 PM
 
  - Original Message -
  From: Andy Bierman andy@yumaworkscom
  To: t.petch ie...@btconnect.com
  Sent: Monday, August 03, 2015 4:10 PM
 
   - Original Message -
   From: Andy Bierman a...@yumaworks.com
   Sent: Saturday, August 01, 2015 7:05 PM
   On Sat, Aug 1, 2015 at 9:51 AM, Acee Lindem (acee) a...@cisco.com
  
  On 8/1/15, 2:51 AM,  j.schoenwael...@jacobs-university.de wrote:
 
  Section 1.1 in
 
  https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00

Re: [netmod] Y34 - root node

2015-08-11 Thread t . petch
- Original Message -
From: Jonathan Hansford jonat...@hansfords.net
cc: NETMOD Working Group netmod@ietf.org
Sent: Monday, August 10, 2015 9:46 AM

And it is not just end users who need help to better understand YANG
models and how to use them. For those still on the edge, looking to
finally take the plunge and use NETCONF/YANG to configure their
devices, help is also required to determine how best to structure
their YANG models, make use of the existing ones, etc. For those who
have grown up with the developments in NETCONF and YANG, much of
this is probably second nature.

tp

History suggests otherwise to me.  If you look at the evolution of
standard modules, such as routing and interfaces, that suggests that
those who have been immersed in YANG since NGO make several u-turns on
the way to where we now are, which may or may not be the end point.

You could also look at 6087 or 6087bis which are extensive but perhaps
not comprehensive.

Tom Petch


But coming to it cold (in the sense of
compiling/writing a first set of YANG models for a device; I've been
following the netconf/netmod WGs for 3+ years), it still feels very
much like a dark art! It is not just the individual modules, it is how
to put them together to best manage a device (let alone a system).
Jonathan

- Original Message -
From: Einar Nilsen-Nygaard (einarnn)
To:Andy Bierman
Cc:NETMOD Working Group
Sent:Sat, 8 Aug 2015 11:10:15 +
Subject:Re: [netmod] Y34 - root node

 Andy,
 I agree that there is a need for organization of models, but I
don’t have a firm position
on
draft-openconfig-netmod-model-structure/draft-rtgyangdt-rtgwg-device-mod
el
or draft-bierman-netmod-yang-package. But we absolutely need
*something* to help end-users of the models comprehend the overall
structure of models, their relationship and how to use them.
 Cheers,
 Einar
  On Aug 4, 2015, at 5:16 PM, Andy Bierman  wrote:

On Tue, Aug 4, 2015 at 2:34 AM, t.petch   wrote:
 - Original Message -
 From: Andy Bierman
 To: t.petch
 Sent: Monday, August 03, 2015 5:17 PM

  - Original Message -
  From: Andy Bierman
  To: t.petch
  Sent: Monday, August 03, 2015 4:10 PM
 
   - Original Message -
   From: Andy Bierman a...@yumaworks.com [7]
   Sent: Saturday, August 01, 2015 7:05 PM
   On Sat, Aug 1, 2015 at 9:51 AM, Acee Lindem (acee)
  
  On 8/1/15, 2:51 AM, j.schoenwael...@jacobs-university.de [9]
wrote:
 
  Section 1.1 in
 
 
https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt
[10]
  lists the goals of a generic model structure that will
accommodate
  most
  modern network devices. I guess you don’t agree that these are
  desirable?
  
   The only objection I have to this draft is the insertion of a
 top-level
   root
   called device. (Might as well be called self).
   There are no sibling nodes planned or intended for
   this node, so it serves as an extra document root.
  
  
   One aspect of YANG I have never grasped is what a root means, if
   anything.
  
   I understand that it is needed for NETCONF (filters) and for YANG
   (augments, constraints) and so must be somewhere and must be
  relatively
   stable, but has it any other significance in the data model?
  
   As you may recall, I was involved with SMI first, where the root
is
   somewhere up in the sky and life only becomes interesting some
six
   levels down the hierarchy and that may colour my thinking.
  
 
  YANG does a poor job of defining the root for YANG data nodes.
  It is sometimes called a datastore (in the abstract).
  Technically, YANG borrows the definition from XPath.
  YANG just defines top-level data nodes and the parent of
  these nodes is the document root.
 
  There is no protocol or encoding neutral definition,
  only an XML-specific definition.
 
 
 
  Thanks for that.
 
  It seems to me that much of the extensive discussion on Y34 (all of
  which I have read) is as much political as technical, that is SMI
is
  hierarchical, top down, perhaps befitting its origins in ISO,
whereas
  YANG is bottom up. IETF-like. YANG could have had a single tree,
but
  doesn't. So when I read
 
 
https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt
[11]
 
  I see a plea for a more hierarchical organisation, and when I read
 
  draft-bjorklund-netmod-openconfig-reply-00
 
  I see a response that says we are not like that.
 
  If so, I doubt that there ever will be a technical solution.
 
  And I am mindful that when I configure routing in a (Cisco) router,
I
  have to do some of it under the interface definitions and some of
it
  under the definition of the routing protocol. Which is life,
never
  wholy interface-centric and never wholy routing protocol-centric!

 Are you saying the job would be easier if the
 path was /device/interfaces/interface instead
 of just /interfaces/interface? Are you saying
 that /protocols/routing could not also be defined?
 Clearly edit-config and copy-config allow both
 subtrees to be accessed in the 

Re: [netmod] Y34 - root node

2015-08-10 Thread Andy Bierman
On Mon, Aug 10, 2015 at 1:46 AM, Jonathan Hansford jonat...@hansfords.net
wrote:

  And it is not just end users who need help to better understand YANG
 models and how to use them. For those still on the edge, looking to finally
 take the plunge and use NETCONF/YANG to configure their devices, help is
 also required to determine how best to structure their YANG models, make
 use of the existing ones, etc. For those who have grown up with the
 developments in NETCONF and YANG, much of this is probably second nature.
 But coming to it cold (in the sense of compiling/writing a first set of
 YANG models for a device; I've been following the netconf/netmod WGs for 3+
 years), it still feels very much like a dark art! It is not just the
 individual modules, it is how to put them together to best manage a device
 (let alone a system).


IMO you are describing a different problem.
Certainly YANG authors need to know how to use YANG most effectively.

A separate problem is the ease of use of YANG module implementations
within NETCONF or RESTCONF servers by operators.

The current answer is (a) proprietary tool magic or (b) read every single
YANG module very carefully and then all the vendor documentation.
Then study the server module advertisements to plug in all the features,
revisions, and deviations.

The resource directory approach and YANG package approach are
complimentary.  It is useful to know that a get on /services/routing
will return the location of routing data.  It is also useful to know in
advance
what modules are used for routing in each server.

The location of actual resources should not be hard-wired and brittle.
We should learn from HTTP how to manage resources without hard-wiring
the paths to resources.




 Jonathan



Andy





 - Original Message -
 From:
 Einar Nilsen-Nygaard (einarnn) eina...@cisco.com

 To:
 Andy Bierman a...@yumaworks.com
 Cc:
 NETMOD Working Group netmod@ietf.org
 Sent:
 Sat, 8 Aug 2015 11:10:15 +
 Subject:
 Re: [netmod] Y34 - root node


 Andy,

 I agree that there is a need for organization of models, but I don’t have
 a firm position
 on draft-openconfig-netmod-model-structure/draft-rtgyangdt-rtgwg-device-model
 or draft-bierman-netmod-yang-package. But we absolutely need *something* to
 help end-users of the models comprehend the overall structure of models,
 their relationship and how to use them.

 Cheers,

 Einar

 On Aug 4, 2015, at 5:16 PM, Andy Bierman a...@yumaworks.com wrote:



 On Tue, Aug 4, 2015 at 2:34 AM, t.petch ie...@btconnect.com wrote:

 - Original Message -
 From: Andy Bierman a...@yumaworks.com
 To: t.petch ie...@btconnect.com
 Sent: Monday, August 03, 2015 5:17 PM

  - Original Message -
  From: Andy Bierman andy@yumaworkscom a...@yumaworks.com
  To: t.petch ie...@btconnect.com
  Sent: Monday, August 03, 2015 4:10 PM
 
   - Original Message -
   From: Andy Bierman a...@yumaworks.com
   Sent: Saturday, August 01, 2015 7:05 PM
   On Sat, Aug 1, 2015 at 9:51 AM, Acee Lindem (acee) a...@cisco.com
  
  On 8/1/15, 2:51 AM,  j.schoenwael...@jacobs-university.de wrote:
 
  Section 1.1 in
 
  https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt
  lists the goals of a generic model structure that will accommodate
  most
  modern network devices. I guess you don’t agree that these are
  desirable?
  
   The only objection I have to this draft is the insertion of a
 top-level
   root
   called device.  (Might as well be called self).
   There are no sibling nodes planned or intended for
   this node, so it serves as an extra document root.
  
   tp
   One aspect of YANG I have never grasped is what a root means, if
   anything.
  
   I understand that it is needed for NETCONF (filters) and for YANG
   (augments, constraints) and so must be somewhere and must be
  relatively
   stable, but has it any other significance in the data model?
  
   As you may recall, I was involved with SMI first, where the root is
   somewhere up in the sky and life only becomes interesting some six
   levels down the hierarchy and that may colour my thinking.
  
 
  YANG does a poor job of defining the root for YANG data nodes.
  It is sometimes called a datastore (in the abstract).
  Technically, YANG borrows the definition from XPath.
  YANG just defines top-level data nodes and the parent of
  these nodes is the document root
 
  There is no protocol or encoding neutral definition,
  only an XML-specific definition.
 
  tp
 
  Thanks for that.
 
  It seems to me that much of the extensive discussion on Y34 (all of
  which I have read) is as much political as technical, that is SMI is
  hierarchical, top down, perhaps befitting its origins in ISO, whereas
  YANG is bottom up. IETF-like.  YANG could have had a single tree, but
  doesn't.  So when I read
 
  https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt
 
  I see a plea for a more hierarchical organisation, and when I read
 
  draft-bjorklund-netmod

Re: [netmod] Y34 - root node

2015-08-10 Thread Acee Lindem (acee)


From: Andy Bierman a...@yumaworks.commailto:a...@yumaworks.com
Date: Monday, August 10, 2015 at 4:15 PM
To: Acee Lindem a...@cisco.commailto:a...@cisco.com
Cc: Einar Nilsen-Nygaard (einarnn) 
eina...@cisco.commailto:eina...@cisco.com, Jonathan Hansford 
jonat...@hansfords.netmailto:jonat...@hansfords.net, NETMOD Working Group 
netmod@ietf.orgmailto:netmod@ietf.org
Subject: Re: [netmod] Y34 - root node



On Mon, Aug 10, 2015 at 12:34 PM, Acee Lindem (acee) 
a...@cisco.commailto:a...@cisco.com wrote:
I think there is agreement that there is a problem. The YANG Routing Design 
Team is  addressing this with 
https://www.ietf.org/id/draft-rtgyangdt-rtgwg-device-model-00.txt  (which has 
evolved from 
https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt). In 
essence, a place for everything and everything in its place. However, there are 
those who feel that can’t mandate a single model structure for network devices 
and we need mechanisms to manage multiple models but allow for different device 
structure (e.g., 
https://www.ietf.org/id/draft-bierman-netmod-yang-package-00.txt).  I hope we 
can agree on an approach in the coming interim meetings.


Do you expect everything in its place to apply to all other SDOs and
all vendor modules? Or do you expect just the IETF routing modules
to follow this subtree hierarchy? If the former, does this mean the
YANG Routing Design Team is the YANG data placement authority
or all YANG modules that ever get written? How long should
it take for all other SDOs and vendors to redo all their existing
modules to re-root them in their assigned place in the data tree?

I’d expect the final document to be a product of the netmod WG and, 
consequently, have wide review and approval. We are considering some changes to 
specify an identify for a class of data model rather than trying to specify 
specific models.

As for other SDOs and their YANG models, we can suggest placement but we really 
can even force them to use our building blocks.


IMO is is not a good idea to rely on rigid data node placement,
and a single data placement authority. It is better and use meta-data
built from the YANG modules (or YANG packages) instead.

I guess we’re going to have to see the programming model for this. Fixed paths 
do provide a clean programming model.


The reason Linux uses packages to install/update functionality
is because managing 8000 packages is hard enough.
Managing 247,000 individual files would be insane.
The actual location of files is quite configurable and different
across distros. We could learn something from the last decade
of Linux package management, and try to apply it to YANG.

I wil give your draft a closer read.

Thanks,
Acee








Thanks,
Acee


Andy




From: netmod netmod-boun...@ietf.orgmailto:netmod-boun...@ietf.org on 
behalf of Einar Nilsen-Nygaard (einarnn) 
eina...@cisco.commailto:eina...@cisco.com
Date: Monday, August 10, 2015 at 5:29 AM
To: Jonathan Hansford jonat...@hansfords.netmailto:jonat...@hansfords.net
Cc: NETMOD Working Group netmod@ietf.orgmailto:netmod@ietf.org
Subject: Re: [netmod] Y34 - root node

As someone sharing responsibilities for guiding a number of development teams 
both defining new models and implementing to some already defined models in 
this area, I can only agree with this addition to what I said earlier.

Cheers,

Einar

On Aug 10, 2015, at 9:46 AM, Jonathan Hansford 
jonat...@hansfords.netmailto:jonat...@hansfords.net wrote:

 And it is not just end users who need help to better understand YANG models 
and how to use them. For those still on the edge, looking to finally take the 
plunge and use NETCONF/YANG to configure their devices, help is also required 
to determine how best to structure their YANG models, make use of the existing 
ones, etc. For those who have grown up with the developments in NETCONF and 
YANG, much of this is probably second nature. But coming to it cold (in the 
sense of compiling/writing a first set of YANG models for a device; I've been 
following the netconf/netmod WGs for 3+ years), it still feels very much like a 
dark art! It is not just the individual modules, it is how to put them together 
to best manage a device (let alone a system).

Jonathan



- Original Message -
From:
Einar Nilsen-Nygaard (einarnn) eina...@cisco.commailto:eina...@cisco.com

To:
Andy Bierman a...@yumaworks.commailto:a...@yumaworks.com
Cc:
NETMOD Working Group netmod@ietf.orgmailto:netmod@ietf.org
Sent:
Sat, 8 Aug 2015 11:10:15 +
Subject:
Re: [netmod] Y34 - root node


Andy,

I agree that there is a need for organization of models, but I don’t have a 
firm position on 
draft-openconfig-netmod-model-structure/draft-rtgyangdt-rtgwg-device-model or 
draft-bierman-netmod-yang-package. But we absolutely need *something* to help 
end-users of the models comprehend the overall structure of models, their 
relationship and how to use them.

Cheers,

Einar

On Aug 4, 2015, at 5:16 PM, Andy Bierman

Re: [netmod] Y34 - root node

2015-08-10 Thread Acee Lindem (acee)
I think there is agreement that there is a problem. The YANG Routing Design 
Team is  addressing this with 
https://www.ietf.org/id/draft-rtgyangdt-rtgwg-device-model-00.txt  (which has 
evolved from 
https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt). In 
essence, a place for everything and everything in its place. However, there are 
those who feel that can’t mandate a single model structure for network devices 
and we need mechanisms to manage multiple models but allow for different device 
structure (e.g., 
https://www.ietf.org/id/draft-bierman-netmod-yang-package-00.txt).  I hope we 
can agree on an approach in the coming interim meetings.

Thanks,
Acee



From: netmod netmod-boun...@ietf.orgmailto:netmod-boun...@ietf.org on 
behalf of Einar Nilsen-Nygaard (einarnn) 
eina...@cisco.commailto:eina...@cisco.com
Date: Monday, August 10, 2015 at 5:29 AM
To: Jonathan Hansford jonat...@hansfords.netmailto:jonat...@hansfords.net
Cc: NETMOD Working Group netmod@ietf.orgmailto:netmod@ietf.org
Subject: Re: [netmod] Y34 - root node

As someone sharing responsibilities for guiding a number of development teams 
both defining new models and implementing to some already defined models in 
this area, I can only agree with this addition to what I said earlier.

Cheers,

Einar

On Aug 10, 2015, at 9:46 AM, Jonathan Hansford 
jonat...@hansfords.netmailto:jonat...@hansfords.net wrote:

 And it is not just end users who need help to better understand YANG models 
and how to use them. For those still on the edge, looking to finally take the 
plunge and use NETCONF/YANG to configure their devices, help is also required 
to determine how best to structure their YANG models, make use of the existing 
ones, etc. For those who have grown up with the developments in NETCONF and 
YANG, much of this is probably second nature. But coming to it cold (in the 
sense of compiling/writing a first set of YANG models for a device; I've been 
following the netconf/netmod WGs for 3+ years), it still feels very much like a 
dark art! It is not just the individual modules, it is how to put them together 
to best manage a device (let alone a system).

Jonathan



- Original Message -
From:
Einar Nilsen-Nygaard (einarnn) eina...@cisco.commailto:eina...@cisco.com

To:
Andy Bierman a...@yumaworks.commailto:a...@yumaworks.com
Cc:
NETMOD Working Group netmod@ietf.orgmailto:netmod@ietf.org
Sent:
Sat, 8 Aug 2015 11:10:15 +
Subject:
Re: [netmod] Y34 - root node


Andy,

I agree that there is a need for organization of models, but I don’t have a 
firm position on 
draft-openconfig-netmod-model-structure/draft-rtgyangdt-rtgwg-device-model or 
draft-bierman-netmod-yang-package. But we absolutely need *something* to help 
end-users of the models comprehend the overall structure of models, their 
relationship and how to use them.

Cheers,

Einar

On Aug 4, 2015, at 5:16 PM, Andy Bierman 
a...@yumaworks.commailto:a...@yumaworks.com wrote:



On Tue, Aug 4, 2015 at 2:34 AM, t.petch 
ie...@btconnect.commailto:ie...@btconnect.com wrote:
- Original Message -
From: Andy Bierman a...@yumaworks.commailto:a...@yumaworks.com
To: t.petch ie...@btconnect.commailto:ie...@btconnect.com
Sent: Monday, August 03, 2015 5:17 PM

 - Original Message -
 From: Andy Bierman andy@yumaworkscommailto:a...@yumaworks.com
 To: t.petch ie...@btconnect.commailto:ie...@btconnect.com
 Sent: Monday, August 03, 2015 4:10 PM

  - Original Message -
  From: Andy Bierman a...@yumaworks.commailto:a...@yumaworks.com
  Sent: Saturday, August 01, 2015 7:05 PM
  On Sat, Aug 1, 2015 at 9:51 AM, Acee Lindem (acee) 
  a...@cisco.commailto:a...@cisco.com
 
 On 8/1/15, 2:51 AM,  
 j.schoenwael...@jacobs-university.demailto:j.schoenwael...@jacobs-university.de
  wrote:

 Section 1.1 in

 https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt
 lists the goals of a generic model structure that will accommodate
 most
 modern network devices. I guess you don’t agree that these are
 desirable?
 
  The only objection I have to this draft is the insertion of a
top-level
  root
  called device.  (Might as well be called self).
  There are no sibling nodes planned or intended for
  this node, so it serves as an extra document root.
 
  tp
  One aspect of YANG I have never grasped is what a root means, if
  anything.
 
  I understand that it is needed for NETCONF (filters) and for YANG
  (augments, constraints) and so must be somewhere and must be
 relatively
  stable, but has it any other significance in the data model?
 
  As you may recall, I was involved with SMI first, where the root is
  somewhere up in the sky and life only becomes interesting some six
  levels down the hierarchy and that may colour my thinking.
 

 YANG does a poor job of defining the root for YANG data nodes.
 It is sometimes called a datastore (in the abstract).
 Technically, YANG borrows the definition from XPath.
 YANG just defines top-level data nodes

Re: [netmod] Y34 - root node

2015-08-10 Thread Andy Bierman
On Mon, Aug 10, 2015 at 12:34 PM, Acee Lindem (acee) a...@cisco.com wrote:

 I think there is agreement that there is a problem. The YANG Routing
 Design Team is  addressing this with
 https://www.ietf.org/id/draft-rtgyangdt-rtgwg-device-model-00.txt  (which
 has evolved from
 https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt).
 In essence, a place for everything and everything in its place. However,
 there are those who feel that can’t mandate a single model structure for
 network devices and we need mechanisms to manage multiple models but allow
 for different device structure (e.g.,
 https://www.ietf.org/id/draft-bierman-netmod-yang-package-00.txt).  I
 hope we can agree on an approach in the coming interim meetings.


Do you expect everything in its place to apply to all other SDOs and
all vendor modules? Or do you expect just the IETF routing modules
to follow this subtree hierarchy? If the former, does this mean the
YANG Routing Design Team is the YANG data placement authority
or all YANG modules that ever get written? How long should
it take for all other SDOs and vendors to redo all their existing
modules to re-root them in their assigned place in the data tree?

IMO is is not a good idea to rely on rigid data node placement,
and a single data placement authority. It is better and use meta-data
built from the YANG modules (or YANG packages) instead.

The reason Linux uses packages to install/update functionality
is because managing 8000 packages is hard enough.
Managing 247,000 individual files would be insane.
The actual location of files is quite configurable and different
across distros. We could learn something from the last decade
of Linux package management, and try to apply it to YANG.






Thanks,
 Acee



Andy





 From: netmod netmod-boun...@ietf.org on behalf of Einar Nilsen-Nygaard
 (einarnn) eina...@cisco.com
 Date: Monday, August 10, 2015 at 5:29 AM
 To: Jonathan Hansford jonat...@hansfords.net
 Cc: NETMOD Working Group netmod@ietf.org
 Subject: Re: [netmod] Y34 - root node

 As someone sharing responsibilities for guiding a number of development
 teams both defining new models and implementing to some already defined
 models in this area, I can only agree with this addition to what I said
 earlier.

 Cheers,

 Einar

 On Aug 10, 2015, at 9:46 AM, Jonathan Hansford jonat...@hansfords.net
 wrote:

  And it is not just end users who need help to better understand YANG
 models and how to use them. For those still on the edge, looking to finally
 take the plunge and use NETCONF/YANG to configure their devices, help is
 also required to determine how best to structure their YANG models, make
 use of the existing ones, etc. For those who have grown up with the
 developments in NETCONF and YANG, much of this is probably second nature.
 But coming to it cold (in the sense of compiling/writing a first set of
 YANG models for a device; I've been following the netconf/netmod WGs for 3+
 years), it still feels very much like a dark art! It is not just the
 individual modules, it is how to put them together to best manage a device
 (let alone a system).

 Jonathan



 - Original Message -
 From:
 Einar Nilsen-Nygaard (einarnn) eina...@cisco.com

 To:
 Andy Bierman a...@yumaworks.com
 Cc:
 NETMOD Working Group netmod@ietf.org
 Sent:
 Sat, 8 Aug 2015 11:10:15 +
 Subject:
 Re: [netmod] Y34 - root node


 Andy,

 I agree that there is a need for organization of models, but I don’t have
 a firm position
 on draft-openconfig-netmod-model-structure/draft-rtgyangdt-rtgwg-device-model
 or draft-bierman-netmod-yang-package. But we absolutely need *something* to
 help end-users of the models comprehend the overall structure of models,
 their relationship and how to use them.

 Cheers,

 Einar

 On Aug 4, 2015, at 5:16 PM, Andy Bierman a...@yumaworks.com wrote:



 On Tue, Aug 4, 2015 at 2:34 AM, t.petch ie...@btconnect.com wrote:

 - Original Message -
 From: Andy Bierman a...@yumaworks.com
 To: t.petch ie...@btconnect.com
 Sent: Monday, August 03, 2015 5:17 PM

  - Original Message -
  From: Andy Bierman andy@yumaworkscom a...@yumaworks.com
  To: t.petch ie...@btconnect.com
  Sent: Monday, August 03, 2015 4:10 PM
 
   - Original Message -
   From: Andy Bierman a...@yumaworks.com
   Sent: Saturday, August 01, 2015 7:05 PM
   On Sat, Aug 1, 2015 at 9:51 AM, Acee Lindem (acee) a...@cisco.com
  
  On 8/1/15, 2:51 AM,  j.schoenwael...@jacobs-university.de wrote:
 
  Section 1.1 in
 
  https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt
  lists the goals of a generic model structure that will accommodate
  most
  modern network devices. I guess you don’t agree that these are
  desirable?
  
   The only objection I have to this draft is the insertion of a
 top-level
   root
   called device.  (Might as well be called self).
   There are no sibling nodes planned or intended for
   this node, so it serves as an extra document root

Re: [netmod] Y34 - root node

2015-08-10 Thread Jonathan Hansford
 And it is not just end users who need help to better understand YANG
models and how to use them. For those still on the edge, looking to
finally take the plunge and use NETCONF/YANG to configure their
devices, help is also required to determine how best to structure
their YANG models, make use of the existing ones, etc. For those who
have grown up with the developments in NETCONF and YANG, much of
this is probably second nature. But coming to it cold (in the sense of
compiling/writing a first set of YANG models for a device; I've been
following the netconf/netmod WGs for 3+ years), it still feels very
much like a dark art! It is not just the individual modules, it is how
to put them together to best manage a device (let alone a system).
Jonathan

- Original Message -
From: Einar Nilsen-Nygaard (einarnn) 
To:Andy Bierman 
Cc:NETMOD Working Group 
Sent:Sat, 8 Aug 2015 11:10:15 +
Subject:Re: [netmod] Y34 - root node

 Andy, 
 I agree that there is a need for organization of models, but I
don’t have a firm position
on draft-openconfig-netmod-model-structure/draft-rtgyangdt-rtgwg-device-model
or draft-bierman-netmod-yang-package. But we absolutely need
*something* to help end-users of the models comprehend the overall
structure of models, their relationship and how to use them. 
 Cheers, 
 Einar 
  On Aug 4, 2015, at 5:16 PM, Andy Bierman  wrote: 

On Tue, Aug 4, 2015 at 2:34 AM, t.petch   wrote:
 - Original Message -
 From: Andy Bierman 
 To: t.petch 
 Sent: Monday, August 03, 2015 5:17 PM

  - Original Message -
  From: Andy Bierman 
  To: t.petch 
  Sent: Monday, August 03, 2015 4:10 PM
 
   - Original Message -
   From: Andy Bierman a...@yumaworks.com [7]
   Sent: Saturday, August 01, 2015 7:05 PM
   On Sat, Aug 1, 2015 at 9:51 AM, Acee Lindem (acee) 
  
  On 8/1/15, 2:51 AM,  j.schoenwael...@jacobs-university.de [9]
wrote:
 
  Section 1.1 in
 
 
https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt
[10]
  lists the goals of a generic model structure that will
accommodate
  most
  modern network devices. I guess you don’t agree that these are
  desirable?
  
   The only objection I have to this draft is the insertion of a
 top-level
   root
   called device.  (Might as well be called self).
   There are no sibling nodes planned or intended for
   this node, so it serves as an extra document root.
  
   
   One aspect of YANG I have never grasped is what a root means, if
   anything.
  
   I understand that it is needed for NETCONF (filters) and for YANG
   (augments, constraints) and so must be somewhere and must be
  relatively
   stable, but has it any other significance in the data model?
  
   As you may recall, I was involved with SMI first, where the root
is
   somewhere up in the sky and life only becomes interesting some
six
   levels down the hierarchy and that may colour my thinking.
  
 
  YANG does a poor job of defining the root for YANG data nodes.
  It is sometimes called a datastore (in the abstract).
  Technically, YANG borrows the definition from XPath.
  YANG just defines top-level data nodes and the parent of
  these nodes is the document root.
 
  There is no protocol or encoding neutral definition,
  only an XML-specific definition.
 
  
 
  Thanks for that.
 
  It seems to me that much of the extensive discussion on Y34 (all of
  which I have read) is as much political as technical, that is SMI
is
  hierarchical, top down, perhaps befitting its origins in ISO,
whereas
  YANG is bottom up. IETF-like.  YANG could have had a single tree,
but
  doesn't.  So when I read
 
 
https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt
[11]
 
  I see a plea for a more hierarchical organisation, and when I read
 
  draft-bjorklund-netmod-openconfig-reply-00
 
  I see a response that says we are not like that.
 
  If so, I doubt that there ever will be a technical solution.
 
  And I am mindful that when I configure routing in a (Cisco) router,
I
  have to do some of it under the interface definitions and some of
it
  under the definition of the routing protocol.  Which is life,
never
  wholy interface-centric and never wholy routing protocol-centric!

 Are you saying the job would be easier if the
 path was /device/interfaces/interface instead
 of just /interfaces/interface?  Are you saying
 that /protocols/routing could not also be defined?
 Clearly edit-config and copy-config allow both
 subtrees to be accessed in the same operation,
 so I don't understand your concern.

 I have been trying to get the root node to be better defined
 in the protocols that use YANG (i.e., ncx:root, Y34-04).
 IMO this is a better approach than defining a YANG module
 with a special container that all other modules are expected
 to augment.  YANG is designed such that each vendor or SDO
 is not dependent on other vendors or SDOs in order to
 define data nodes.

 Andy

 I am agreeing with you that adding 'device' brings no technical
benefit,
 

Re: [netmod] Y34 - root node

2015-08-10 Thread Einar Nilsen-Nygaard (einarnn)
As someone sharing responsibilities for guiding a number of development teams 
both defining new models and implementing to some already defined models in 
this area, I can only agree with this addition to what I said earlier.

Cheers,

Einar

On Aug 10, 2015, at 9:46 AM, Jonathan Hansford 
jonat...@hansfords.netmailto:jonat...@hansfords.net wrote:

 And it is not just end users who need help to better understand YANG models 
and how to use them. For those still on the edge, looking to finally take the 
plunge and use NETCONF/YANG to configure their devices, help is also required 
to determine how best to structure their YANG models, make use of the existing 
ones, etc. For those who have grown up with the developments in NETCONF and 
YANG, much of this is probably second nature. But coming to it cold (in the 
sense of compiling/writing a first set of YANG models for a device; I've been 
following the netconf/netmod WGs for 3+ years), it still feels very much like a 
dark art! It is not just the individual modules, it is how to put them together 
to best manage a device (let alone a system).

Jonathan



- Original Message -
From:
Einar Nilsen-Nygaard (einarnn) eina...@cisco.commailto:eina...@cisco.com

To:
Andy Bierman a...@yumaworks.commailto:a...@yumaworks.com
Cc:
NETMOD Working Group netmod@ietf.orgmailto:netmod@ietf.org
Sent:
Sat, 8 Aug 2015 11:10:15 +
Subject:
Re: [netmod] Y34 - root node


Andy,

I agree that there is a need for organization of models, but I don’t have a 
firm position on 
draft-openconfig-netmod-model-structure/draft-rtgyangdt-rtgwg-device-model or 
draft-bierman-netmod-yang-package. But we absolutely need *something* to help 
end-users of the models comprehend the overall structure of models, their 
relationship and how to use them.

Cheers,

Einar

On Aug 4, 2015, at 5:16 PM, Andy Bierman 
a...@yumaworks.commailto:a...@yumaworks.com wrote:



On Tue, Aug 4, 2015 at 2:34 AM, t.petch 
ie...@btconnect.commailto:ie...@btconnect.com wrote:
- Original Message -
From: Andy Bierman a...@yumaworks.commailto:a...@yumaworks.com
To: t.petch ie...@btconnect.commailto:ie...@btconnect.com
Sent: Monday, August 03, 2015 5:17 PM

 - Original Message -
 From: Andy Bierman andy@yumaworkscommailto:a...@yumaworks.com
 To: t.petch ie...@btconnect.commailto:ie...@btconnect.com
 Sent: Monday, August 03, 2015 4:10 PM

  - Original Message -
  From: Andy Bierman a...@yumaworks.commailto:a...@yumaworks.com
  Sent: Saturday, August 01, 2015 7:05 PM
  On Sat, Aug 1, 2015 at 9:51 AM, Acee Lindem (acee) 
  a...@cisco.commailto:a...@cisco.com
 
 On 8/1/15, 2:51 AM,  
 j.schoenwael...@jacobs-university.demailto:j.schoenwael...@jacobs-university.de
  wrote:

 Section 1.1 in

 https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt
 lists the goals of a generic model structure that will accommodate
 most
 modern network devices. I guess you don’t agree that these are
 desirable?
 
  The only objection I have to this draft is the insertion of a
top-level
  root
  called device.  (Might as well be called self).
  There are no sibling nodes planned or intended for
  this node, so it serves as an extra document root.
 
  tp
  One aspect of YANG I have never grasped is what a root means, if
  anything.
 
  I understand that it is needed for NETCONF (filters) and for YANG
  (augments, constraints) and so must be somewhere and must be
 relatively
  stable, but has it any other significance in the data model?
 
  As you may recall, I was involved with SMI first, where the root is
  somewhere up in the sky and life only becomes interesting some six
  levels down the hierarchy and that may colour my thinking.
 

 YANG does a poor job of defining the root for YANG data nodes.
 It is sometimes called a datastore (in the abstract).
 Technically, YANG borrows the definition from XPath.
 YANG just defines top-level data nodes and the parent of
 these nodes is the document root

 There is no protocol or encoding neutral definition,
 only an XML-specific definition.

 tp

 Thanks for that.

 It seems to me that much of the extensive discussion on Y34 (all of
 which I have read) is as much political as technical, that is SMI is
 hierarchical, top down, perhaps befitting its origins in ISO, whereas
 YANG is bottom up. IETF-like.  YANG could have had a single tree, but
 doesn't.  So when I read

 https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt

 I see a plea for a more hierarchical organisation, and when I read

 draft-bjorklund-netmod-openconfig-reply-00

 I see a response that says we are not like that.

 If so, I doubt that there ever will be a technical solution.

 And I am mindful that when I configure routing in a (Cisco) router, I
 have to do some of it under the interface definitions and some of it
 under the definition of the routing protocol.  Which is life, never
 wholy interface-centric and never wholy routing protocol-centric!

Are you saying

Re: [netmod] Y34 - root node

2015-08-03 Thread Andy Bierman
On Mon, Aug 3, 2015 at 9:01 AM, t.petch ie...@btconnect.com wrote:

 - Original Message -
 From: Andy Bierman a...@yumaworks.com
 To: t.petch ie...@btconnect.com
 Cc: NETMOD Working Group netmod@ietf.org
 Sent: Monday, August 03, 2015 4:10 PM

 On Mon, Aug 3, 2015 at 7:48 AM, t.petch ie...@btconnect.com wrote:

  - Original Message -
  From: Andy Bierman a...@yumaworks.com
  Sent: Saturday, August 01, 2015 7:05 PM
  On Sat, Aug 1, 2015 at 9:51 AM, Acee Lindem (acee) a...@cisco.com
  wrote:
 
   Hi Juergen,
  
   On 8/1/15, 2:51 AM,  j.schoenwael...@jacobs-university.de wrote:
  
   On Fri, Jul 31, 2015 at 12:46:49PM -0400, Lou Berger wrote:
Andy,
   
On 07/27/2015 12:58 PM, Andy Bierman wrote:
 Hi,

 I don't think a standard for relocating subtrees would be worth
  it.
 I am not in favor of moving /interfaces or /system to a new
  location.
 That's not how YANG works. It only allows obsolete and start
  over.

 I would suggest pursuing solutions that don't cause
 as much disruption and expense as possible.

I think it would be really good to explore other, less
 disruptive
options.
   
   I think the first step is to find out whether there is a problem
  worth
   to be fixed. Why are the RFCs in question broken? (Yes, I have read
   the openconfig IDs,
  
   Section 1.1 in
  
 https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt
   lists the goals of a generic model structure that will accommodate
  most
   modern network devices. I guess you don’t agree that these are
  desirable?
 
  The only objection I have to this draft is the insertion of a
 top-level
  root
  called device.  (Might as well be called self).
  There are no sibling nodes planned or intended for
  this node, so it serves as an extra document root.
 
  tp
  One aspect of YANG I have never grasped is what a root means, if
  anything.
 
  I understand that it is needed for NETCONF (filters) and for YANG
  (augments, constraints) and so must be somewhere and must be
 relatively
  stable, but has it any other significance in the data model?
 
  As you may recall, I was involved with SMI first, where the root is
  somewhere up in the sky and life only becomes interesting some six
  levels down the hierarchy and that may colour my thinking.
 

 YANG does a poor job of defining the root for YANG data nodes.
 It is sometimes called a datastore (in the abstract).
 Technically, YANG borrows the definition from XPath.
 YANG just defines top-level data nodes and the parent of
 these nodes is the document root.

 There is no protocol or encoding neutral definition,
 only an XML-specific definition.

 tp

 Thanks for that.

 It seems to me that much of the extensive discussion on Y34 (all of
 which I have read) is as much political as technical, that is SMI is
 hierarchical, top down, perhaps befitting its origins in ISO, whereas
 YANG is bottom up. IETF-like.  YANG could have had a single tree, but
 doesn't.  So when I read

 https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt

 I see a plea for a more hierarchical organisation, and when I read

 draft-bjorklund-netmod-openconfig-reply-00

 I see a response that says we are not like that.

 If so, I doubt that there ever will be a technical solution.

 And I am mindful that when I configure routing in a (Cisco) router, I
 have to do some of it under the interface definitions and some of it
 under the definition of the routing protocol.  Which is life, never
 wholy interface-centric and never wholy routing protocol-centric!



Are you saying the job would be easier if the
path was /device/interfaces/interface instead
of just /interfaces/interface?  Are you saying
that /protocols/routing could not also be defined?
Clearly edit-config and copy-config allow both
subtrees to be accessed in the same operation,
so I don't understand your concern.

I have been trying to get the root node to be better defined
in the protocols that use YANG (i.e., ncx:root, Y34-04).
IMO this is a better approach than defining a YANG module
with a special container that all other modules are expected
to augment.  YANG is designed such that each vendor or SDO
is not dependent on other vendors or SDOs in order to
define data nodes.



 Tom Petch
 



Andy


 Andy

  The well-specified XPath and YANG root (/) can be
  accessed by all protocol operations, exactly the same
  as a node called 'device'.  The actual node name will
  depend on the RPC function (e.g. 'data' or 'config').
 
  This is more than redundant however.  It introduces a super-module
  into YANG that every other module is expected to augment.
  YANG is intended to be more loosely coupled than that.
  This introduces an extra node and namespace declaration
  in all protocol messages, increasing message sizes.
 
  It also assumes all existing YANG models will get rewritten to
  account for /device in all path and XPath expressions.
  This is highly disruptive to 

Re: [netmod] Y34

2015-08-01 Thread Juergen Schoenwaelder
On Sat, Aug 01, 2015 at 04:51:28PM +, Acee Lindem (acee) wrote:
 
 Section 1.1 in 
 https://www.ietf.org/id/draft-openconfig-netmod-model-structure-00.txt
 lists the goals of a generic model structure that will accommodate most
 modern network devices. I guess you don’t agree that these are desirable?

   o  a common schema to access data related to all aspects of a device

This is why we produce standards. They are a common schema.

   o  an extensible structure that makes it clear where additional
  models or data should be fit (e.g., using YANG augmentation or
  imports)

This is why we have /interfaces. Interface related stuff goes here.
It is easy to reference.

   o  a place for including metadata that provides useful information
  about the corresponding individual models, such as which
  organization provides them, which vendors support them, or which
  version of the model is deployed

Not really sure what this means. YANG modules have meta data. A
NETCONF or RESTCONF server exposes which data models it implements. A
list of which vendor supports what is clearly outside the scope of
IETF work.

   o  a common infrastructure model layer on which higher layer service
  models can be built, for example by specifying which models are
  needed to provide the service

Not sure what this means exactly but I also do not see why any of the
existing RFCs breaks this.

   o  an ability to express an instance of the structure consisting of
  models that have been validated to work together (i.e., with
  information about sources of the models, their versions, etc.), so
  that operators can easily identify a set of models that is known
  to be mutually consistent

Not sure what this means exactly but YANG modules published by the
IETF are supposed to work together. YANG 1.1 has even clearer rules
what imports mean etc.

Bottom line is that I do not get out of these bullets what is _broken_
with the existing RFCs. I like to see text of the sort

  - RFC 7223 is broken because ...
  - RFC 7277 is broken because ...
  [...]

This text is not in section 1.1 as far as I can tell.

Bottom line is that I do not understand why /interfaces is broken such
that this needs to be redone while /device/interfaces is golden. What do
we do if in two years some group of people find /device/network/interfaces
a brilliant idea?

/js

-- 
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/

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


Re: [netmod] Y34

2015-07-27 Thread Andy Bierman
On Sun, Jul 26, 2015 at 5:31 PM, Lou Berger lber...@labn.net wrote:

   Andy,

 Have you thought through implications / possibilities for existing
 models,  e.g., interfaces?



First we have to define various forms of relocation.

(1) Aggregation of datastores

The simplest form is aggregation.
It is possible to define a YANG container that is a conceptual
document root, such that the set of child nodes matches the set
of top-level YANG data nodes supported by the server.

A YANG extension can mark a YANG container or anyxml as a docroot.
Yuma-based code has been doing this for years with a YANG
extension called root

http://www.netconfcentral.org/modules/yuma-ncx/2013-09-23#root.554

http://svn.tools.ietf.org/svn/wg/netmod/yang-1.1/issues.html
(See Y34-04)

The config node below is a document root:

container servers {
  list server {
  key addr;
  leaf addr { type inet:ip-address; }
  anydata config {
  ncx:root;
  }
  }
}

XPath evaluation requires certain inputs, including a context node
and a document root.  The 'root' extension tells the tool to use
the node with the 'root' tag as the document root, when processing
XPath within its descendant nodes. Without the tag, the XPath parser
would use 'servers' as the document root, which is incorrect for
the relocated YANG nodes within 'config'.

(2) Move a subtree within the datastore

This is the hardest (of course) because it involves moving the context node
not the document root. It is possible for tools to get fooled about the
intent
of the XPath writer.  Basically the tool has to remember the original
context node,
and do some complicated data manipulation, processing [4] Step
in XPath 1.0.  Multiple relocated subtrees gets even more complicated.

It may be possible to come up with some guidelines on XPath to avoid.
Basically any Xpath that selects nodes by specific names can be
relocated automatically.  Nodes selected by function, wildcard, axis, etc.
will not be so easy.




 Thanks,
 Lou



Andy


   On July 26, 2015 4:41:32 PM Andy Bierman a...@yumaworks.com wrote:

 Hi Acee,

 I agree that Relocatable YANG would be very useful, and have been
 thinking about the problem for awhile.  I think the key is to precisely
 define a protocol-independent document root for each of the various
 YANG XPath contexts.  In most cases the expression can be
 automatically relocated to an ancestor root.  For the rest, a
 YANG mechanism is needed to tell the compiler to force evaluation
 on the old docroot (not the new docroot ancestor).


 Andy


 On Sun, Jul 26, 2015 at 10:49 AM, Acee Lindem (acee) a...@cisco.com
 wrote:

 I think being able to place a given model anywhere in the device tree
 would be useful and this would allow a model to be rooted in different
 locations on different devices. Similarly, we’d need the ability to
 prefix
 XPATH references to data nodes in the model with the root.
 Thanks,
 Acee

 On 7/20/15, 11:00 PM, netmod on behalf of Juergen Schoenwaelder
 netmod-boun...@ietf.org on behalf of
 j.schoenwael...@jacobs-university.de wrote:

 Lada,
 
 Y34 is closed and I have not seen any new argument here that indicates
 we made a major mistake with the resolution of Y34. As such, Y34
 remains closed.
 
 If you want to discuss new ideas to relocate or symlink data models,
 please do so in a separate thread. (And no, we do not accept new
 issues for YANG 1.1 either at this point in time.)
 
 /js
 
 On Mon, Jul 20, 2015 at 07:42:49PM +0200, Ladislav Lhotka wrote:
 
   On 20 Jul 2015, at 19:29, Andy Bierman a...@yumaworks.com wrote:
  
  
  
   On Mon, Jul 20, 2015 at 10:15 AM, Ladislav Lhotka lho...@nic.cz
 wrote:
  
On 20 Jul 2015, at 17:00, Andy Bierman a...@yumaworks.com
 wrote:
   
   
   
On Mon, Jul 20, 2015 at 6:08 AM, Ladislav Lhotka lho...@nic.cz
 wrote:
   
 On 20 Jul 2015, at 14:55, Andy Bierman a...@yumaworks.com
 wrote:

 Hi,

 Can you explain why we need 2 broken anyxmls?
 (The original and a synonym?)  The whole point of
 anydata is that it does not have XML cruft in it.
   
Yes, I understand this was your main priority. For implementors
 using off-the-shelf XML parsers and tools the XML cruft is not an issue
 at all.
   
   
yes it is an issue.
We need something to model a container full of arbitrary YANG data
 nodes.
This is something that can be applied to the contents of a
 datastore.
  
   anyxml can do that, too.
  
  
   the WG already decided it can't.
   The extra XML PIs, etc. are not accepted by all servers, remember?
   There is no use for the extra stuff in the datastore.
I don't see why we need 2 anyxml constructs that are not
   supported by the industry.  One is already too many.
 
  I agree, but this is what we are going to have. My proposal was to
 have
 just one with two different names.
 
  
  
   
   
Anyway, I believe there are use cases for arbitrary
 XML/JSON/CBOR/…
 with no (YANG) schema available. My only complaint to 

Re: [netmod] Y34

2015-07-26 Thread Lou Berger
I completely agree.  We definitely will make use if this in the new models 
being developed in the routing area.


Lou


On July 26, 2015 1:50:00 PM Acee Lindem (acee) a...@cisco.com wrote:


I think being able to place a given model anywhere in the device tree
would be useful and this would allow a model to be rooted in different
locations on different devices. Similarly, we’d need the ability to prefix
XPATH references to data nodes in the model with the root.
Thanks,
Acee

On 7/20/15, 11:00 PM, netmod on behalf of Juergen Schoenwaelder
netmod-boun...@ietf.org on behalf of
j.schoenwael...@jacobs-university.de wrote:

Lada,

Y34 is closed and I have not seen any new argument here that indicates
we made a major mistake with the resolution of Y34. As such, Y34
remains closed.

If you want to discuss new ideas to relocate or symlink data models,
please do so in a separate thread. (And no, we do not accept new
issues for YANG 1.1 either at this point in time.)

/js

On Mon, Jul 20, 2015 at 07:42:49PM +0200, Ladislav Lhotka wrote:

  On 20 Jul 2015, at 19:29, Andy Bierman a...@yumaworks.com wrote:
 
 
 
  On Mon, Jul 20, 2015 at 10:15 AM, Ladislav Lhotka lho...@nic.cz
wrote:
 
   On 20 Jul 2015, at 17:00, Andy Bierman a...@yumaworks.com wrote:
  
  
  
   On Mon, Jul 20, 2015 at 6:08 AM, Ladislav Lhotka lho...@nic.cz
wrote:
  
On 20 Jul 2015, at 14:55, Andy Bierman a...@yumaworks.com wrote:
   
Hi,
   
Can you explain why we need 2 broken anyxmls?
(The original and a synonym?)  The whole point of
anydata is that it does not have XML cruft in it.
  
   Yes, I understand this was your main priority. For implementors
using off-the-shelf XML parsers and tools the XML cruft is not an issue
at all.
  
  
   yes it is an issue.
   We need something to model a container full of arbitrary YANG data
nodes.
   This is something that can be applied to the contents of a
datastore.
 
  anyxml can do that, too.
 
 
  the WG already decided it can't.
  The extra XML PIs, etc. are not accepted by all servers, remember?
  There is no use for the extra stuff in the datastore.
   I don't see why we need 2 anyxml constructs that are not
  supported by the industry.  One is already too many.

 I agree, but this is what we are going to have. My proposal was to have
just one with two different names.

 
 
  
  
   Anyway, I believe there are use cases for arbitrary XML/JSON/CBOR/…
with no (YANG) schema available. My only complaint to “anyxml” has
always been that it is a misnomer for encodings other than XML.
  
   The message encoding on the wire is not the same issue
   as the contents of a datastore.  Our server stores its own
   internal data structures.  XML, JSON, CBOR are just message
   encoding formats between client and server.  The datastore
   is not encoded in any of these formats.
 
  The payload of anyxml needn’t directly map to a data subtree in the
usual sense.
 
  that's precisely the difference between anyxml and anydata.
  The anydata node MUST map directly into data subtrees.

 If the server doesn’t know the YANG data model at run time (which is
possible) then it cannot do it - for instance, it cannot properly map
module names to namespace URI or handle lists.

 
 
 
  
  
  
  
  
   
I also don't get the value of a single top-level node called
'device'
that every YANG model on the planet is supposed to augment.
Can you explain why a protocol operation to retrieve the
document root (/) is not sufficient for the top-level node?
  
   I don’t intend to defend their model, the more serious problem IMO
is that a model for a single device/function may be needed in another
device that hosts many virtualised devices/functions of the former type.
We don’t have a good solution for this rather typical situation.
  
   But a single container called whatever provides no such
aggregation.
   You would need a list for that. And the NMS might have multiple
   layers of hierarchy to represent various aggregations.  The NP
   container called device is not helpful for aggregation.
 
  The parent node can be a list as well. The “root” node would be like
a mount point in a Unix filesystem.
 
 
  Are you saying all data on a device needs to be in a top-level list
called 'device'
  because an NMS might exist that  wants to have the datastores from
lots of devices?
  As Martin pointed out several times, the NMS can make its own
container or
  lists.  It does not need the device to mirror its own structure.

 As I said, I don’t care that much about the “device” container. What
would be really useful is to have the possibility to do e.g. this:

 virtual-node* [name]
 name
 if:interfaces
 ...

 to support the use case where all virtual nodes are managed by the same
NETCONF/RESTCONF server.

 Lada

 
 
 
  Lada
 
  Andy
 
 
  
  
  
   Lada
  
  
   Andy
  
  
   
Andy
   
   
   
On Mon, Jul 20, 2015 at 5:48 AM, Ladislav Lhotka lho...@nic.cz
wrote:
   
 On 20 Jul 2015, at 

Re: [netmod] Y34

2015-07-26 Thread Andy Bierman
Hi Acee,

I agree that Relocatable YANG would be very useful, and have been
thinking about the problem for awhile.  I think the key is to precisely
define a protocol-independent document root for each of the various
YANG XPath contexts.  In most cases the expression can be
automatically relocated to an ancestor root.  For the rest, a
YANG mechanism is needed to tell the compiler to force evaluation
on the old docroot (not the new docroot ancestor).


Andy


On Sun, Jul 26, 2015 at 10:49 AM, Acee Lindem (acee) a...@cisco.com wrote:

 I think being able to place a given model anywhere in the device tree
 would be useful and this would allow a model to be rooted in different
 locations on different devices. Similarly, we’d need the ability to prefix
 XPATH references to data nodes in the model with the root.
 Thanks,
 Acee

 On 7/20/15, 11:00 PM, netmod on behalf of Juergen Schoenwaelder
 netmod-boun...@ietf.org on behalf of
 j.schoenwael...@jacobs-university.de wrote:

 Lada,
 
 Y34 is closed and I have not seen any new argument here that indicates
 we made a major mistake with the resolution of Y34. As such, Y34
 remains closed.
 
 If you want to discuss new ideas to relocate or symlink data models,
 please do so in a separate thread. (And no, we do not accept new
 issues for YANG 1.1 either at this point in time.)
 
 /js
 
 On Mon, Jul 20, 2015 at 07:42:49PM +0200, Ladislav Lhotka wrote:
 
   On 20 Jul 2015, at 19:29, Andy Bierman a...@yumaworks.com wrote:
  
  
  
   On Mon, Jul 20, 2015 at 10:15 AM, Ladislav Lhotka lho...@nic.cz
 wrote:
  
On 20 Jul 2015, at 17:00, Andy Bierman a...@yumaworks.com wrote:
   
   
   
On Mon, Jul 20, 2015 at 6:08 AM, Ladislav Lhotka lho...@nic.cz
 wrote:
   
 On 20 Jul 2015, at 14:55, Andy Bierman a...@yumaworks.com
 wrote:

 Hi,

 Can you explain why we need 2 broken anyxmls?
 (The original and a synonym?)  The whole point of
 anydata is that it does not have XML cruft in it.
   
Yes, I understand this was your main priority. For implementors
 using off-the-shelf XML parsers and tools the XML cruft is not an issue
 at all.
   
   
yes it is an issue.
We need something to model a container full of arbitrary YANG data
 nodes.
This is something that can be applied to the contents of a
 datastore.
  
   anyxml can do that, too.
  
  
   the WG already decided it can't.
   The extra XML PIs, etc. are not accepted by all servers, remember?
   There is no use for the extra stuff in the datastore.
I don't see why we need 2 anyxml constructs that are not
   supported by the industry.  One is already too many.
 
  I agree, but this is what we are going to have. My proposal was to have
 just one with two different names.
 
  
  
   
   
Anyway, I believe there are use cases for arbitrary XML/JSON/CBOR/…
 with no (YANG) schema available. My only complaint to “anyxml” has
 always been that it is a misnomer for encodings other than XML.
   
The message encoding on the wire is not the same issue
as the contents of a datastore.  Our server stores its own
internal data structures.  XML, JSON, CBOR are just message
encoding formats between client and server.  The datastore
is not encoded in any of these formats.
  
   The payload of anyxml needn’t directly map to a data subtree in the
 usual sense.
  
   that's precisely the difference between anyxml and anydata.
   The anydata node MUST map directly into data subtrees.
 
  If the server doesn’t know the YANG data model at run time (which is
 possible) then it cannot do it - for instance, it cannot properly map
 module names to namespace URI or handle lists.
 
  
  
  
   
   
   
   
   

 I also don't get the value of a single top-level node called
 'device'
 that every YANG model on the planet is supposed to augment.
 Can you explain why a protocol operation to retrieve the
 document root (/) is not sufficient for the top-level node?
   
I don’t intend to defend their model, the more serious problem IMO
 is that a model for a single device/function may be needed in another
 device that hosts many virtualised devices/functions of the former type.
 We don’t have a good solution for this rather typical situation.
   
But a single container called whatever provides no such
 aggregation.
You would need a list for that. And the NMS might have multiple
layers of hierarchy to represent various aggregations.  The NP
container called device is not helpful for aggregation.
  
   The parent node can be a list as well. The “root” node would be like
 a mount point in a Unix filesystem.
  
  
   Are you saying all data on a device needs to be in a top-level list
 called 'device'
   because an NMS might exist that  wants to have the datastores from
 lots of devices?
   As Martin pointed out several times, the NMS can make its own
 container or
   lists.  It does not need the device to mirror its own structure.
 
  As I said, I don’t 

Re: [netmod] Y34

2015-07-26 Thread Lou Berger

Andy,

Have you thought through implications / possibilities for existing models,  
e.g., interfaces?


Thanks,
Lou


On July 26, 2015 4:41:32 PM Andy Bierman a...@yumaworks.com wrote:


Hi Acee,

I agree that Relocatable YANG would be very useful, and have been
thinking about the problem for awhile.  I think the key is to precisely
define a protocol-independent document root for each of the various
YANG XPath contexts.  In most cases the expression can be
automatically relocated to an ancestor root.  For the rest, a
YANG mechanism is needed to tell the compiler to force evaluation
on the old docroot (not the new docroot ancestor).


Andy


On Sun, Jul 26, 2015 at 10:49 AM, Acee Lindem (acee) a...@cisco.com wrote:

 I think being able to place a given model anywhere in the device tree
 would be useful and this would allow a model to be rooted in different
 locations on different devices. Similarly, we’d need the ability to prefix
 XPATH references to data nodes in the model with the root.
 Thanks,
 Acee

 On 7/20/15, 11:00 PM, netmod on behalf of Juergen Schoenwaelder
 netmod-boun...@ietf.org on behalf of
 j.schoenwael...@jacobs-university.de wrote:

 Lada,
 
 Y34 is closed and I have not seen any new argument here that indicates
 we made a major mistake with the resolution of Y34. As such, Y34
 remains closed.
 
 If you want to discuss new ideas to relocate or symlink data models,
 please do so in a separate thread. (And no, we do not accept new
 issues for YANG 1.1 either at this point in time.)
 
 /js
 
 On Mon, Jul 20, 2015 at 07:42:49PM +0200, Ladislav Lhotka wrote:
 
   On 20 Jul 2015, at 19:29, Andy Bierman a...@yumaworks.com wrote:
  
  
  
   On Mon, Jul 20, 2015 at 10:15 AM, Ladislav Lhotka lho...@nic.cz
 wrote:
  
On 20 Jul 2015, at 17:00, Andy Bierman a...@yumaworks.com wrote:
   
   
   
On Mon, Jul 20, 2015 at 6:08 AM, Ladislav Lhotka lho...@nic.cz
 wrote:
   
 On 20 Jul 2015, at 14:55, Andy Bierman a...@yumaworks.com
 wrote:

 Hi,

 Can you explain why we need 2 broken anyxmls?
 (The original and a synonym?)  The whole point of
 anydata is that it does not have XML cruft in it.
   
Yes, I understand this was your main priority. For implementors
 using off-the-shelf XML parsers and tools the XML cruft is not an issue
 at all.
   
   
yes it is an issue.
We need something to model a container full of arbitrary YANG data
 nodes.
This is something that can be applied to the contents of a
 datastore.
  
   anyxml can do that, too.
  
  
   the WG already decided it can't.
   The extra XML PIs, etc. are not accepted by all servers, remember?
   There is no use for the extra stuff in the datastore.
I don't see why we need 2 anyxml constructs that are not
   supported by the industry.  One is already too many.
 
  I agree, but this is what we are going to have. My proposal was to have
 just one with two different names.
 
  
  
   
   
Anyway, I believe there are use cases for arbitrary XML/JSON/CBOR/…
 with no (YANG) schema available. My only complaint to “anyxml” has
 always been that it is a misnomer for encodings other than XML.
   
The message encoding on the wire is not the same issue
as the contents of a datastore.  Our server stores its own
internal data structures.  XML, JSON, CBOR are just message
encoding formats between client and server.  The datastore
is not encoded in any of these formats.
  
   The payload of anyxml needn’t directly map to a data subtree in the
 usual sense.
  
   that's precisely the difference between anyxml and anydata.
   The anydata node MUST map directly into data subtrees.
 
  If the server doesn’t know the YANG data model at run time (which is
 possible) then it cannot do it - for instance, it cannot properly map
 module names to namespace URI or handle lists.
 
  
  
  
   
   
   
   
   

 I also don't get the value of a single top-level node called
 'device'
 that every YANG model on the planet is supposed to augment.
 Can you explain why a protocol operation to retrieve the
 document root (/) is not sufficient for the top-level node?
   
I don’t intend to defend their model, the more serious problem IMO
 is that a model for a single device/function may be needed in another
 device that hosts many virtualised devices/functions of the former type.
 We don’t have a good solution for this rather typical situation.
   
But a single container called whatever provides no such
 aggregation.
You would need a list for that. And the NMS might have multiple
layers of hierarchy to represent various aggregations.  The NP
container called device is not helpful for aggregation.
  
   The parent node can be a list as well. The “root” node would be like
 a mount point in a Unix filesystem.
  
  
   Are you saying all data on a device needs to be in a top-level list
 called 'device'
   because an NMS might exist that  wants to have the datastores from
 

Re: [netmod] Y34

2015-07-21 Thread Ladislav Lhotka

 On 20 Jul 2015, at 23:00, Juergen Schoenwaelder 
 j.schoenwael...@jacobs-university.de wrote:
 
 Lada,
 
 Y34 is closed and I have not seen any new argument here that indicates
 we made a major mistake with the resolution of Y34. As such, Y34
 remains closed.

Of course, I was expecting this reaction. I think I did present *some* 
arguments, and I am leaving it to others to judge whether they are relevant or 
not. Even if it was a minor mistake, it is IMO still worth fixing.

 
 If you want to discuss new ideas to relocate or symlink data models,
 please do so in a separate thread. (And no, we do not accept new
 issues for YANG 1.1 either at this point in time.)

It’s not about symlinks in the data tree but rather about a method for 
combining schemas that is complementary to “augment” - pull versus push.

There is sufficient evidence that it was one of the use cases for “anydata”, 
e.g. in configlets. The gap in “anydata” definition for similar use cases is 
that it cannot specify a schema for its contents.

Lada 

 
 /js
 
 On Mon, Jul 20, 2015 at 07:42:49PM +0200, Ladislav Lhotka wrote:
 
 On 20 Jul 2015, at 19:29, Andy Bierman a...@yumaworks.com wrote:
 
 
 
 On Mon, Jul 20, 2015 at 10:15 AM, Ladislav Lhotka lho...@nic.cz wrote:
 
 On 20 Jul 2015, at 17:00, Andy Bierman a...@yumaworks.com wrote:
 
 
 
 On Mon, Jul 20, 2015 at 6:08 AM, Ladislav Lhotka lho...@nic.cz wrote:
 
 On 20 Jul 2015, at 14:55, Andy Bierman a...@yumaworks.com wrote:
 
 Hi,
 
 Can you explain why we need 2 broken anyxmls?
 (The original and a synonym?)  The whole point of
 anydata is that it does not have XML cruft in it.
 
 Yes, I understand this was your main priority. For implementors using 
 off-the-shelf XML parsers and tools the XML cruft is not an issue at all.
 
 
 yes it is an issue.
 We need something to model a container full of arbitrary YANG data nodes.
 This is something that can be applied to the contents of a datastore.
 
 anyxml can do that, too.
 
 
 the WG already decided it can't.
 The extra XML PIs, etc. are not accepted by all servers, remember?
 There is no use for the extra stuff in the datastore.
 I don't see why we need 2 anyxml constructs that are not
 supported by the industry.  One is already too many.
 
 I agree, but this is what we are going to have. My proposal was to have just 
 one with two different names.
 
 
 
 
 
 Anyway, I believe there are use cases for arbitrary XML/JSON/CBOR/… with 
 no (YANG) schema available. My only complaint to “anyxml” has always been 
 that it is a misnomer for encodings other than XML.
 
 The message encoding on the wire is not the same issue
 as the contents of a datastore.  Our server stores its own
 internal data structures.  XML, JSON, CBOR are just message
 encoding formats between client and server.  The datastore
 is not encoded in any of these formats.
 
 The payload of anyxml needn’t directly map to a data subtree in the usual 
 sense.
 
 that's precisely the difference between anyxml and anydata.
 The anydata node MUST map directly into data subtrees.
 
 If the server doesn’t know the YANG data model at run time (which is 
 possible) then it cannot do it - for instance, it cannot properly map module 
 names to namespace URI or handle lists.
 
 
 
 
 
 
 
 
 
 
 I also don't get the value of a single top-level node called 'device'
 that every YANG model on the planet is supposed to augment.
 Can you explain why a protocol operation to retrieve the
 document root (/) is not sufficient for the top-level node?
 
 I don’t intend to defend their model, the more serious problem IMO is that 
 a model for a single device/function may be needed in another device that 
 hosts many virtualised devices/functions of the former type. We don’t have 
 a good solution for this rather typical situation.
 
 But a single container called whatever provides no such aggregation.
 You would need a list for that. And the NMS might have multiple
 layers of hierarchy to represent various aggregations.  The NP
 container called device is not helpful for aggregation.
 
 The parent node can be a list as well. The “root” node would be like a 
 mount point in a Unix filesystem.
 
 
 Are you saying all data on a device needs to be in a top-level list called 
 'device'
 because an NMS might exist that  wants to have the datastores from lots of 
 devices?
 As Martin pointed out several times, the NMS can make its own container or
 lists.  It does not need the device to mirror its own structure.
 
 As I said, I don’t care that much about the “device” container. What would 
 be really useful is to have the possibility to do e.g. this:
 
 virtual-node* [name]
name
if:interfaces
...
 
 to support the use case where all virtual nodes are managed by the same 
 NETCONF/RESTCONF server.
 
 Lada
 
 
 
 
 Lada
 
 Andy
 
 
 
 
 
 Lada
 
 
 Andy
 
 
 
 Andy
 
 
 
 On Mon, Jul 20, 2015 at 5:48 AM, Ladislav Lhotka lho...@nic.cz wrote:
 
 On 20 Jul 2015, at 14:45, Ladislav Lhotka 

Re: [netmod] Y34

2015-07-21 Thread Ladislav Lhotka

 On 21 Jul 2015, at 09:44, Juergen Schoenwaelder 
 j.schoenwael...@jacobs-university.de wrote:
 
 On Tue, Jul 21, 2015 at 09:16:46AM +0200, Ladislav Lhotka wrote:
 
 On 20 Jul 2015, at 23:00, Juergen Schoenwaelder 
 j.schoenwael...@jacobs-university.de wrote:
 
 Lada,
 
 Y34 is closed and I have not seen any new argument here that indicates
 we made a major mistake with the resolution of Y34. As such, Y34
 remains closed.
 
 Of course, I was expecting this reaction. I think I did present *some* 
 arguments, and I am leaving it to others to judge whether they are relevant 
 or not. Even if it was a minor mistake, it is IMO still worth fixing.
 
 
 If you want to discuss new ideas to relocate or symlink data models,
 please do so in a separate thread. (And no, we do not accept new
 issues for YANG 1.1 either at this point in time.)
 
 It’s not about symlinks in the data tree but rather about a method for 
 combining schemas that is complementary to “augment” - pull versus push.
 
 There is sufficient evidence that it was one of the use cases for “anydata”, 
 e.g. in configlets. The gap in “anydata” definition for similar use cases is 
 that it cannot specify a schema for its contents.
 
 
 Lada, you can't simply 'mount' a data model into a different place.
 Think about paths in must or when expressions, or think about paths
 contraints in leafrefs etc. And Y34 was not trying to solve this

This is a fair point but “anydata” where the schema is supplied somehow out of 
band faces the same issue.

Lada

 problem, so this discussion is IMHO under a misleading subject line.
 
 /js
 
 -- 
 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/

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C




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


Re: [netmod] Y34

2015-07-20 Thread Ladislav Lhotka

 On 20 Jul 2015, at 14:45, Ladislav Lhotka lho...@nic.cz wrote:
 
 Hi,
 
 after listening to the presentation of
 draft-rtgyangdt-rtgwg-device-model-00 at RTGWG session, I am wondering
 whether the solution chosen for Y34 is really useful.
 
 The draft states they want to reuse ietf-interfaces but their tree in
 fact is
 
   +--rw device
  +--rw info
  |  +--rw device-type?   enumeration
  +--rw hardware
  +--rw interfaces
  |  +--rw interface* [name]
  | ...
  +--rw qos
 
 So the interfaces container is no more a top-level node. There are
 three possible options:
 
 1. Change the ietf-interfaces module.
 2. Replicate its contents in another module.
 3. Extend YANG so that a *specific* schema tree can be grafted at a
   given data node.
 
 IMO #1  #2 are really bad. I thought Y34-04 was essentially #3 but it
 seems it is not so because it doesn't specify a concrete data model
 that's allowed at a given location.
 
 On the other hand, the only real contribution of anydata over anyxml
 is that is doesn't permit mixed content in XML, which is IMO not much.
 
 I know Y34 was already closed but I think it is more important to do
 things right before YANG 1.1 becomes an RFC.
 
 What I want to propose is this:
 
 - Rename anydata as a synonym to anyxml, and deprecate anyxml (but
  keep it for backward compatibility).

s/Rename/Introduce/

 
 - Introduce a new statement and data node type, e.g. root, that will
  extend the schema tree starting from that data node with a precisely
  specified data model. The specification can be same or similar as
  in yang-library.
 
 I believe there are other use cases in the existing modules. For
 example, the ietf-routing module could simply define the data model for
 a single routing instance (i.e. without routing-instance list at the
 top), and it can be then used without changes on simple devices, and
 more complex router implementations can graft it as a subtree under
 routing-instance, networking-instance or whatever.
 
 Lada
 
 -- 
 Ladislav Lhotka, CZ.NIC Labs
 PGP Key ID: E74E8C0C
 
 ___
 netmod mailing list
 netmod@ietf.org
 https://www.ietf.org/mailman/listinfo/netmod

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C




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


Re: [netmod] Y34

2015-07-20 Thread Ladislav Lhotka

 On 20 Jul 2015, at 17:00, Andy Bierman a...@yumaworks.com wrote:
 
 
 
 On Mon, Jul 20, 2015 at 6:08 AM, Ladislav Lhotka lho...@nic.cz wrote:
 
  On 20 Jul 2015, at 14:55, Andy Bierman a...@yumaworks.com wrote:
 
  Hi,
 
  Can you explain why we need 2 broken anyxmls?
  (The original and a synonym?)  The whole point of
  anydata is that it does not have XML cruft in it.
 
 Yes, I understand this was your main priority. For implementors using 
 off-the-shelf XML parsers and tools the XML cruft is not an issue at all.
 
 
 yes it is an issue.
 We need something to model a container full of arbitrary YANG data nodes.
 This is something that can be applied to the contents of a datastore.

anyxml can do that, too.

 
  
 Anyway, I believe there are use cases for arbitrary XML/JSON/CBOR/… with no 
 (YANG) schema available. My only complaint to “anyxml” has always been that 
 it is a misnomer for encodings other than XML.
 
 The message encoding on the wire is not the same issue
 as the contents of a datastore.  Our server stores its own
 internal data structures.  XML, JSON, CBOR are just message
 encoding formats between client and server.  The datastore
 is not encoded in any of these formats.

The payload of anyxml needn’t directly map to a data subtree in the usual sense.

 
 
 
  
 
 
  I also don't get the value of a single top-level node called 'device'
  that every YANG model on the planet is supposed to augment.
  Can you explain why a protocol operation to retrieve the
  document root (/) is not sufficient for the top-level node?
 
 I don’t intend to defend their model, the more serious problem IMO is that a 
 model for a single device/function may be needed in another device that hosts 
 many virtualised devices/functions of the former type. We don’t have a good 
 solution for this rather typical situation.
 
 But a single container called whatever provides no such aggregation.
 You would need a list for that. And the NMS might have multiple
 layers of hierarchy to represent various aggregations.  The NP
 container called device is not helpful for aggregation.

The parent node can be a list as well. The “root” node would be like a mount 
point in a Unix filesystem.

Lada

 
 
 
 Lada
 
 
 Andy
  
 
 
  Andy
 
 
 
  On Mon, Jul 20, 2015 at 5:48 AM, Ladislav Lhotka lho...@nic.cz wrote:
 
   On 20 Jul 2015, at 14:45, Ladislav Lhotka lho...@nic.cz wrote:
  
   Hi,
  
   after listening to the presentation of
   draft-rtgyangdt-rtgwg-device-model-00 at RTGWG session, I am wondering
   whether the solution chosen for Y34 is really useful.
  
   The draft states they want to reuse ietf-interfaces but their tree in
   fact is
  
 +--rw device
+--rw info
|  +--rw device-type?   enumeration
+--rw hardware
+--rw interfaces
|  +--rw interface* [name]
| ...
+--rw qos
  
   So the interfaces container is no more a top-level node. There are
   three possible options:
  
   1. Change the ietf-interfaces module.
   2. Replicate its contents in another module.
   3. Extend YANG so that a *specific* schema tree can be grafted at a
 given data node.
  
   IMO #1  #2 are really bad. I thought Y34-04 was essentially #3 but it
   seems it is not so because it doesn't specify a concrete data model
   that's allowed at a given location.
  
   On the other hand, the only real contribution of anydata over anyxml
   is that is doesn't permit mixed content in XML, which is IMO not much.
  
   I know Y34 was already closed but I think it is more important to do
   things right before YANG 1.1 becomes an RFC.
  
   What I want to propose is this:
  
   - Rename anydata as a synonym to anyxml, and deprecate anyxml (but
keep it for backward compatibility).
 
  s/Rename/Introduce/
 
  
   - Introduce a new statement and data node type, e.g. root, that will
extend the schema tree starting from that data node with a precisely
specified data model. The specification can be same or similar as
in yang-library.
  
   I believe there are other use cases in the existing modules. For
   example, the ietf-routing module could simply define the data model for
   a single routing instance (i.e. without routing-instance list at the
   top), and it can be then used without changes on simple devices, and
   more complex router implementations can graft it as a subtree under
   routing-instance, networking-instance or whatever.
  
   Lada
  
   --
   Ladislav Lhotka, CZ.NIC Labs
   PGP Key ID: E74E8C0C
  
   ___
   netmod mailing list
   netmod@ietf.org
   https://www.ietf.org/mailman/listinfo/netmod
 
  --
  Ladislav Lhotka, CZ.NIC Labs
  PGP Key ID: E74E8C0C
 
 
 
 
  ___
  netmod mailing list
  netmod@ietf.org
  https://www.ietf.org/mailman/listinfo/netmod
 
 
 --
 Ladislav Lhotka, CZ.NIC Labs
 PGP Key ID: E74E8C0C
 
 
 
 
 

--
Ladislav Lhotka, 

Re: [netmod] Y34

2015-07-20 Thread Juergen Schoenwaelder
Lada,

Y34 is closed and I have not seen any new argument here that indicates
we made a major mistake with the resolution of Y34. As such, Y34
remains closed.

If you want to discuss new ideas to relocate or symlink data models,
please do so in a separate thread. (And no, we do not accept new
issues for YANG 1.1 either at this point in time.)

/js

On Mon, Jul 20, 2015 at 07:42:49PM +0200, Ladislav Lhotka wrote:
 
  On 20 Jul 2015, at 19:29, Andy Bierman a...@yumaworks.com wrote:
  
  
  
  On Mon, Jul 20, 2015 at 10:15 AM, Ladislav Lhotka lho...@nic.cz wrote:
  
   On 20 Jul 2015, at 17:00, Andy Bierman a...@yumaworks.com wrote:
  
  
  
   On Mon, Jul 20, 2015 at 6:08 AM, Ladislav Lhotka lho...@nic.cz wrote:
  
On 20 Jul 2015, at 14:55, Andy Bierman a...@yumaworks.com wrote:
   
Hi,
   
Can you explain why we need 2 broken anyxmls?
(The original and a synonym?)  The whole point of
anydata is that it does not have XML cruft in it.
  
   Yes, I understand this was your main priority. For implementors using 
   off-the-shelf XML parsers and tools the XML cruft is not an issue at all.
  
  
   yes it is an issue.
   We need something to model a container full of arbitrary YANG data nodes.
   This is something that can be applied to the contents of a datastore.
  
  anyxml can do that, too.
  
  
  the WG already decided it can't.
  The extra XML PIs, etc. are not accepted by all servers, remember?
  There is no use for the extra stuff in the datastore.
   I don't see why we need 2 anyxml constructs that are not
  supported by the industry.  One is already too many.
 
 I agree, but this is what we are going to have. My proposal was to have just 
 one with two different names.
 
  
  
  
  
   Anyway, I believe there are use cases for arbitrary XML/JSON/CBOR/… with 
   no (YANG) schema available. My only complaint to “anyxml” has always been 
   that it is a misnomer for encodings other than XML.
  
   The message encoding on the wire is not the same issue
   as the contents of a datastore.  Our server stores its own
   internal data structures.  XML, JSON, CBOR are just message
   encoding formats between client and server.  The datastore
   is not encoded in any of these formats.
  
  The payload of anyxml needn’t directly map to a data subtree in the usual 
  sense.
  
  that's precisely the difference between anyxml and anydata.
  The anydata node MUST map directly into data subtrees.
 
 If the server doesn’t know the YANG data model at run time (which is 
 possible) then it cannot do it - for instance, it cannot properly map module 
 names to namespace URI or handle lists.
 
  
   
  
  
  
  
  
  
   
I also don't get the value of a single top-level node called 'device'
that every YANG model on the planet is supposed to augment.
Can you explain why a protocol operation to retrieve the
document root (/) is not sufficient for the top-level node?
  
   I don’t intend to defend their model, the more serious problem IMO is 
   that a model for a single device/function may be needed in another device 
   that hosts many virtualised devices/functions of the former type. We 
   don’t have a good solution for this rather typical situation.
  
   But a single container called whatever provides no such aggregation.
   You would need a list for that. And the NMS might have multiple
   layers of hierarchy to represent various aggregations.  The NP
   container called device is not helpful for aggregation.
  
  The parent node can be a list as well. The “root” node would be like a 
  mount point in a Unix filesystem.
  
  
  Are you saying all data on a device needs to be in a top-level list called 
  'device'
  because an NMS might exist that  wants to have the datastores from lots of 
  devices?
  As Martin pointed out several times, the NMS can make its own container or
  lists.  It does not need the device to mirror its own structure.
 
 As I said, I don’t care that much about the “device” container. What would be 
 really useful is to have the possibility to do e.g. this:
 
 virtual-node* [name]
 name
 if:interfaces
 ...
 
 to support the use case where all virtual nodes are managed by the same 
 NETCONF/RESTCONF server.
 
 Lada
 
   
  
  
  Lada
  
  Andy
   
  
  
  
  
   Lada
  
  
   Andy
  
  
   
Andy
   
   
   
On Mon, Jul 20, 2015 at 5:48 AM, Ladislav Lhotka lho...@nic.cz wrote:
   
 On 20 Jul 2015, at 14:45, Ladislav Lhotka lho...@nic.cz wrote:

 Hi,

 after listening to the presentation of
 draft-rtgyangdt-rtgwg-device-model-00 at RTGWG session, I am wondering
 whether the solution chosen for Y34 is really useful.

 The draft states they want to reuse ietf-interfaces but their tree in
 fact is

   +--rw device
  +--rw info
  |  +--rw device-type?   enumeration
  +--rw hardware
  +--rw interfaces
  |  +--rw interface* [name]