Re: [netmod] Y60 - coexistence with YANG 1.0

Ladislav Lhotka <lhotka@nic.cz> Thu, 10 September 2015 11:43 UTC

Return-Path: <lhotka@nic.cz>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7633B1B32E6 for <netmod@ietfa.amsl.com>; Thu, 10 Sep 2015 04:43:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.6
X-Spam-Level:
X-Spam-Status: No, score=-1.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, MIME_8BIT_HEADER=0.3] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 65omsB790Lnz for <netmod@ietfa.amsl.com>; Thu, 10 Sep 2015 04:43:31 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id C2A941A1A64 for <netmod@ietf.org>; Thu, 10 Sep 2015 04:43:30 -0700 (PDT)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 54CD11CC0181; Thu, 10 Sep 2015 13:43:30 +0200 (CEST)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Martin Björklund <mbj@tail-f.com>
In-Reply-To: <DF93C199-5972-405C-97DB-57CE36BE3DF3@nic.cz>
References: <20150910.125522.373110083925215588.mbj@tail-f.com> <DF93C199-5972-405C-97DB-57CE36BE3DF3@nic.cz>
User-Agent: Notmuch/0.20.2 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Thu, 10 Sep 2015 13:43:28 +0200
Message-ID: <m2zj0uijof.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/_q3YcPR_KobOlFx5HWDA5Oa9oZo>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y60 - coexistence with YANG 1.0
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Sep 2015 11:43:32 -0000

Ladislav Lhotka <lhotka@nic.cz> writes:

>> On 10 Sep 2015, at 12:55, Martin Bjorklund <mbj@tail-f.com> wrote:
>> 
>> Hi,
>> 
>> I think we agreed that is ok for a YANG 1.1 module to import a YANG
>> 1.0 module.
>> 
>> But should it also be ok for a 1.0 module to import a 1.1 module?
>
> I think it should be illegal for a 1.0 module to import with revision if the requested revision is 1.1.
>
>> 
>> If we make this illegal, we might run into problems.  For example,
>> ietf-ip imports ietf-interfaces.  Suppose we update ietf-interfaces
>> and the new version use YANG 1.1.  Is it ok for a server to implement
>> the 1.0 version of ietf-ip and 1.1 version of ietf-interfaces?  If the
>> answer is no, it means that we either have to update all modules to
>> 1.1 more or less at the same time (including vendor models!), or we
>> keep existing modules on 1.0 "forever".
>> 
>> At the lastest interim, it was suggested that a server that implements
>> such a combination of models would internally promote the 1.0 module
>> to 1.1, and thus make this combination legal.
>
> I think we need a way for the server to identify itself to the client as 1.1-capable, and then:
>
> - 1.1-capable server: if 1.0 module X imports Y *without revision*,
> and the revision of Y advertised by the server (with
> default-revision=true), then module X is automatically interpreted as
> 1.1.

Correction:

- 1.1-capable server: if 1.0 module X imports Y *without revision*, and
  the revision of Y advertised by the server (with
  default-revision=true) is 1.1, then module X is automatically
  interpreted as 1.1.

Lada

>
> - 1.0-only server: if 1.0 module X import Y without revision, then the latest 1.0 revision of Y is used. If 1.1 revisions exist, they are not used.
>
>> 
>> Such a strategy should also be safe for old clients, still treating
>> the module as being 1.0.
>
> I am not sure about this, I think a 1.0-only client cannot work with a 1.1-capable server is some 1.1 additions are used (e.g. if-feature expressions).
>
>> 
>> It is a bit unclear what the server should do if the 1.0 module that
>> it "internally promotes" to 1.1 contains something that is illegal in
>> 1.1, e.g.:
>> 
>>        default "a\xb”;
>
> We should write an erratum to 6020 making this illegal in 1.0, too.
>
> Lada
>
>> 
>> Comments?
>> 
>> 
>> /martin
>> 
>> _______________________________________________
>> 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