> On 15 Sep 2015, at 15:22, Andy Bierman <a...@yumaworks.com> wrote:
> 
> 
> 
> On Tue, Sep 15, 2015 at 2:31 AM, Ladislav Lhotka <lho...@nic.cz> wrote:
> Andy Bierman <a...@yumaworks.com> writes:
> 
> > On Mon, Sep 14, 2015 at 8:02 AM, Juergen Schoenwaelder <
> > j.schoenwael...@jacobs-university.de> wrote:
> >
> >> On Mon, Sep 14, 2015 at 03:54:59PM +0200, Martin Bjorklund wrote:
> >> >
> >> > Sure.  The use case is for example servers that implement ietf-ip
> >> > (which imports ietf-interfaces), and ietf-interfaces.  Suppose we
> >> > update ietf-interfaces to 1.1.  It should still be ok for a server to
> >> > implement ietf-ip with the new ietf-interfaces.
> >> >
> >>
> >> Is the confusion is between implements and imports here? The module
> >> ietf-ip will _import_ an older version 1 ietf-interfaces while the
> >> server _implements_ a newer version 1.1 ietf-interfaces module. Is
> >> this not going to work?
> >>
> >
> >
> > Here is the guidance put in RFC 6020 for this occasion:
> >
> >    Handling of the "yang-version" statement for versions other than "1"
> >    (the version defined here) is out of scope for this specification.
> >    Any document that defines a higher version will need to define the
> >    backward compatibility of such a higher version.
> >
> >
> > All current Yuma based tools see the yang-version 1.1; and exit:
> >
> >     ietf-entity.yang:54.16: error(314): wrong version
> >
> >     Error: cannot continue with unknown YANG language version
> 
> I don't think this has to be a strict rule for clients. After all, a
> client can send any request and it is up to the server to decide whether
> the request is valid and send a reply or error message.
> 
> 
> Not sure what you mean.
> A tool that does not claim conformance because it does not recognize the
> YANG language does not have any rules to follow.
> 
> We cannot make any rules whatsoever that a YANG 1.0 tool
> must follow wrt/ other YANG language versions.  That much is rather clear.

I don’t want to enforce classification of clients and then require that a 1.0 
client MUST exit when seeing yang-version 1.1.

Lada

> 
> >
> >
> >
> > The solution outlined this morning should mostly work.
> > A YANG 1.0 client may be able to use only revisions written in YANG 1.0,
> > even if the server has upgrades some of those modules to YANG 1.1.
> > Note that a server has total control when it introduces modules
> > written in YANG 1.1. Not the client.
> >
> > If module 'foo' is upgraded to a new module revision,
> > and the new module revision uses YANG 1.1, then
> > the server will advertise the last YANG 1.0
> > revision for module 'foo' in the YANG 1.0 <hello>.
> > The YANG 1.1 library will contain both module revisions,
> > and the server will set conformance to 'implement' for the 1.1
> > version.
> 
> Does this apply only to the case when the old and new revisions of "foo" are
> identical except for yang-version?
> 
> 
> It is up to the server vendor, as Martin said.
>  
> 
> >
> > If the data that existed in the last revision written in YANG 1.0
> > has changed in the implemented revision written in YANG 1.1,
> > then the server should not (or must not?) advertise the 'phantom'
> > YANG 1.0 revision anymore.
> 
> But then an old 1.0-only client is stuck, right?
> 
> 
> Yep -- the version written in YANG 1.1 might diverge from the last revision
> written in YANG 1.0.  Then forklift upgrades are needed.  And since YANG is 
> far
> from stable, one might expect to go through churn every year until YANG is 
> stable.
> 
> 
> Lada
> 
> 
> Andy
>  
> 
> >
> >
> >  Andy
> >
> >
> >
> >> > > Would it not work if an import of ietf-interfaces from a
> >> > > version 1 module simply resolves to the latest ietf-interfaces
> >> > > revision that is still version 1?
> >> >
> >> > But that would mean either that a server is stuck implementing version
> >> > 1 modules, or that the server must implement both the version 1 and
> >> > version 1.1 module - and we have already said that this isn't
> >> > possible.
> >>
> >> But this seems only true if import === implemented.
> >>
> >> > A set of simpler rules would be:
> >> >
> >> >    A YANG version 1.1 module MUST NOT include a version 1 module.
> >> >    A YANG version 1 module MUST NOT include a version 1.1 module.
> >> >
> >> >    A YANG version 1.1 (sub)module MAY import a version 1 module.
> >> >    A YANG version 1 (sub)module MAY import a version 1.1 module.
> >>
> >> It is the last one we are discussing, no? I am trying again: Why is
> >> the MAY needed? Why is it not sufficient for a version 1 module to
> >> work with an import for (the latest) version 1 module?
> >>
> >> /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
> 
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C

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




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

Reply via email to