Writing as technical contributor...

On Tue, Jun 30, 2015 at 10:44:49AM +0200, Martin Bjorklund wrote:
> Hi,
> 
> Here's a short summary, and then some questions for the WG.
> 
> The ietf-yang-library module is designed to serve two purposes:
> 
>   1.  A protocol-independent advertisement mechanism for YANG 1.1
>       modules.
> 
>   2.  A list of the YANG modules stored in a server.
> 
> 
> Q1.  Do you agree with these goals?

I primarily care about goal 1.
 
> Q2.  Should this module be designed to work with both YANG 1.0 and
>      YANG 1.1 servers - i.e., should it have yang-version 1.1 or not?
> 
>      If it should not be defined using YANG 1.1, why is this module
>      special?

I assume this module will sooner or later be YANG 1.1 anyway.
 
> Q3.  Should the /modules/module list be designed to store both YANG
>      1.0 and YANG 1.1 modules?

Yes. Even if YANG 1.1 hits the street tomorrow, we will not have
revised all published YANG data models that were written using YANG
1.0. So a server needs to be able to announce both YANG 1.0 and YANG
1.1 modules.

> Q4.  Consider these modules, which both import foo without revision:
> 
>        module a { ... import foo; ... }
>        module b { ... import foo; ... }
> 
>      Do we require a server that implements both a and b to use the
>      same revision of foo?
> 
>      If the answer is yes, we need to indicate the default revision
>      that the server uses in the model:
> 
>        container modules {
>          ...
>          list module {
>            ...
>            leaf default-revision {
>              type boolean;
>              default false;
>              description
>                "Indicates that this revision is used by the server if
>                 this module is imported without a specific revision
>                 date.";
>            }
>          }
>        }
> 
>      If the answer is no, note that this puts an implementation burden
>      on the client.  A client cannot simply download all listed
>      modules, and load/compile/process them as one set.
> 
>      If the anwser is no, I propose that we extend the module as such:
> 
>        container modules {
>          ...
>          list module {
>            ...
>            list imported-without-revision {
>              key "name revision";
>              ...
>            }
>          }
>        }
> 
>      A server could then list:
> 
>       <module>
>         <name>a</name>
>         <revision>2015-01-01</revision>
>         <imported-without-revision>
>           <name>foo</name>
>           <revision>2002-02-02</revision>
>         </imported-without-revision>
>       </module>
>       <module>
>         <name>b</name>
>         <revision>2015-01-01</revision>
>         <imported-without-revision>
>           <name>foo</name>
>           <revision>2001-01-01</revision>
>         </imported-without-revision>
>       </module>

I believe truth is advertisement is a good thing. In the SNMP world,
not all pieces of the instrumentation were moving at the same pace and
I would be somewhat surprised if this would be the case for all
implementations in the NETCONF world. Hence, I rather accept that an
import of foo without revision may resolve to different versions of
foo for different imports.

/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

Reply via email to