Subject: Re: [netmod] 6020bis more than one revision of a module

From: Randy Presuhn <[email-masked]>
Date: Tue, 13 Oct 2015 12:55:32 -0700 (GMT-07:00)

Hi -

>From: David Reid <[email-masked]>
>Sent: Oct 9, 2015 2:03 PM
>To: [email-masked]
>Subject: [netmod] 6020bis more than one revision of a module
>
>I'm reviewing 6020bis since it is in working group last call. 
>I see a new requirement that a server MUST NOT implement
>more than one revision of a module. I understand that supporting
>more than one revision can cause problems, but I expect that
>it will happen in practice. I know it happens sometimes with
>MIBs in SNMP. I think MUST NOT is too strong.

I've encountered the same phenomenon in the SNMP universe,
so if I expected Netconf to used as a replacement for SNMP
I'd have the same concern.

Randy

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Tue, 13 Oct 2015 22:06:35 +0200

> I'd have the same concern.

Perhaps you can detail what it means to support multiple revisions of
a module at the same time. Are you saying YANG needs a way to slice
modules such that for example interface ethernet0 can support revision
X of an Ethernet data model while interface ethernet1 supports
revision Y of an Ethernet data model? If so, support for per resource
data model revision is not really part of YANG nor is it really part
of NETCONF I think. (Note that YANG does support mechanisms such as
features that allow to design data models in a way that they can be
backwards compatible.)

/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: David Reid <[email-masked]>
Date: Wed, 14 Oct 2015 10:49:02 -0400

> I'd have the same concern.

Here is the situation I face. We put a netconf server in our SNMP Master
agent. Using the MIB to YANG conversion rules from RFC 6643 we can provide
read-only access (or read-write in a non-standard way) via netconf and yang
to all of the MIB data. We have existing customers using different revisions
of the same MIB module in different subagents. If they convert those
MIB modules to YANG modules and access the information via netconf, it
would violate the proposed rule.

-David Reid

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Sat, 17 Oct 2015 11:05:12 +0200

> would violate the proposed rule.

The RFC 6643 translation generates no mandatory statements in YANG and
the RFC 6643 translation is read-only. So for read-only access, using
the latest MIB module as a basis should work since SMIv2 has strict
backwards compatibility rules, no?

I do not know how you translate MIB modules into config true YANG
nodes but this is where things are tricky. In the SMIv2 world, you can
have many differnet conformance statements for a MIB module that can
slice MIB module implementation requirements in almost arbitrary ways
(and conformance statements may even be in different modules). In
other words, an SNMP agent claims conformance to a conformance
statement not to a MIB module per se. So in order to translate this
properly, you would have to either generate a YANG module with
suitable features for the different conformance statements or you
would have to find other ways to partition that data model to allow
differnet conformance levels.

/js

---

From: David Reid <[email-masked]>
Date: Tue, 20 Oct 2015 17:28:20 -0400

> backwards compatibility rules, no?

For read-only objects, yes. But Andy argued that for read-write objects
I should advertise the oldest revision. This is not a problem in YANG yet
because we don't have multiple versions of YANG modules in the field yet.

Why does yang 1.1 add the new requirement that a server MUST NOT implement
more than 1 revision? If there is an e-mail thread, you can point me at that
rather than re-hash the arguements here.

-David Reid

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Wed, 21 Oct 2015 09:36:36 +0200

> rather than re-hash the arguements here.

How do you implement multiple revisions at the same time? There is
only one path in a namespace. How do you combine must/when constraints
if you implement multiple revisions of a module? I think the one
revision requirement has already been part of YANG 1.

/js

---

From: Martin Bjorklund <[email-masked]>
Date: Wed, 21 Oct 2015 09:51:47 +0200 (CEST)

> revision requirement has already been part of YANG 1.

+1

Another example is if the value space for a leaf has been expanded in
the new revision.  What does it mean if you advertise both revisions?

/martin