Subject: [netmod] smi2yang-09: multiple top-level containers

From: Juergen Schoenwaelder <[email-masked]>
Date: Thu, 5 May 2011 13:50:58 +0200

The current translation creates multiple top-level containers. This
  is somewhat at odds with a guideline given in RFC 6087:

    There SHOULD only be one top-level data node defined in each YANG
    module, if any data nodes are defined at all.

  I do not recall the precise reasoning behind this SHOULD so it is
  not clear to me whether this is a problem or not.

** Solution #09-01

   Declare that the SHOULD allows to us to have multiple top-level
   containers.

** Solution #09-02

   Create an additional (but redundant) container (e.g. named after
   the module) so we comply to the rule defined in RFC 6087.

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

---

From: Phil Shafer <[email-masked]>
Date: Thu, 5 May 2011 13:19:11 -0400

>   the module) so we comply to the rule defined in RFC 6087.

I vote for this, since it allows the entire module to be fetched
in one operation and enforces a natural hierarchy.

Thanks,
 Phil

---

From: David Spakes <[email-masked]>
Date: Thu, 5 May 2011 13:52:42 -0400 (EDT)

Yes, I agree and vote similarly.

-dss

> in one operation and enforces a natural hierarchy.

-------------------------------------------------------------
 David Spakes                       email:   [email-masked]
 SNMP Research                      voice:   +1 865 573 1434
 3001 Kimberlin Heights Road          fax:   +1 865 573 9197
 Knoxville, TN  37920-9716  USA      http://www.snmp.com
-------------------------------------------------------------

---

From: Andy Bierman <[email-masked]>
Date: Thu, 5 May 2011 11:01:44 -0700

A) We don't vote in the IETF.  We agree or disagree ;-)
    I agree with both of you.

B) Does this mean the top-level container for scalars can
   be moved?   Just move that container to the top-level,
   and make all data nodes (not just scalars) child nodes
   of that container.

Andy

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of David Spakes
Sent: Thursday, May 05, 2011 10:53 AM
To: Phil Shafer
Cc: [email-masked]
Subject: Re: [netmod] smi2yang-09: multiple top-level containers

-dss

-------------------------------------------------------------
 David Spakes                       email:   [email-masked]
 SNMP Research                      voice:   +1 865 573 1434
 3001 Kimberlin Heights Road          fax:   +1 865 573 9197
 Knoxville, TN  37920-9716  USA      http://www.snmp.com
-------------------------------------------------------------
_______________________________________________
netmod mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/netmod

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Fri, 6 May 2011 09:01:07 +0200

> in one operation and enforces a natural hierarchy.

To fetch the 'entire module', you have to fetch the module's namespace
since retrieving the top-level container(s) leaves out augmentations
made in other subtrees. (Since NETCONF's subtree filtering mechanism
does not support selecting just on a namespace, you need to know the
set of top-level container(s).)

I think my point is that the assumption that I can retrieve the
'entire module' by retrieving the top-level containers is potentially
misleading.

/js

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Fri, 6 May 2011 09:09:40 +0200

>    and make all data nodes (not just scalars) child nodes

Yes, one simple solution is to move the (non-augmenting) tables
to the top-level container holding the scalars. That is, for the
IF-MIB, we have:

OLD:

   +--ro ifMIB
   |  +--ro ifNumber?            int32
   |  +--ro ifTableLastChange?   yang:timeticks
   |  +--ro ifStackLastChange?   yang:timeticks
   +--ro ifTable
   |  +--ro ifEntry [ifIndex]
   ...
   +--ro ifStackTable
   |  +--ro ifStackEntry [ifStackHigherLayer ifStackLowerLayer]
   ...
   +--ro ifRcvAddressTable
      +--ro ifRcvAddressEntry [ifIndex ifRcvAddressAddress]

NEW:

   +--ro ifMIB
      +--ro ifNumber?            int32
      +--ro ifTableLastChange?   yang:timeticks
      +--ro ifStackLastChange?   yang:timeticks
      +--ro ifTable
      |  +--ro ifEntry [ifIndex]
      ...
      +--ro ifStackTable
      |  +--ro ifStackEntry [ifStackHigherLayer ifStackLowerLayer]
      ...
      +--ro ifRcvAddressTable
         +--ro ifRcvAddressEntry [ifIndex ifRcvAddressAddress]

/js