Re: [netmod] augment YANG 1.0 with YANG 1.1 OK?

Andy Bierman <andy@yumaworks.com> Wed, 25 October 2017 18:10 UTC

Return-Path: <andy@yumaworks.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 795AC13946F for <netmod@ietfa.amsl.com>; Wed, 25 Oct 2017 11:10:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.com
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 7KH1eoajUM_Z for <netmod@ietfa.amsl.com>; Wed, 25 Oct 2017 11:10:02 -0700 (PDT)
Received: from mail-lf0-x231.google.com (mail-lf0-x231.google.com [IPv6:2a00:1450:4010:c07::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2875613F450 for <netmod@ietf.org>; Wed, 25 Oct 2017 11:09:38 -0700 (PDT)
Received: by mail-lf0-x231.google.com with SMTP id 90so932541lfs.13 for <netmod@ietf.org>; Wed, 25 Oct 2017 11:09:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=qL/JbFd12cg2dPowhwEOK4aBjIzR9+SiEuu/68p2pLo=; b=2CKASkF2WWJXxUhJBZJ6+PV7PxAs+A9SRL2zSvHdMzAwFdh4J19dp3CFrHpxGJE9dw j89aAPDUfn6QuwpVgJhn3u65rYMiiiSQlZkGyRWRjRcdXgVULCh2Xi7hmFPFIOywdvRA d70LK6WEsgMR0fL8g0Bt3XxpjBoKhGp0kEqWxi24jCOLhtNI03JBFTjg/3psGmF6wYrn FgXy0Me9SgdcYEmC8KRRBPvk8jv0TJkFYotZqQtShl6AqA8FyG6obwi2ik9LHO6RS/bT Fv3Ed27W45Rtu5z8Izym5FBqPwElxcyI6R54cegYuQb/Hfcl78UDSscKbl+Y/1fhvYcC cFGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=qL/JbFd12cg2dPowhwEOK4aBjIzR9+SiEuu/68p2pLo=; b=fr4dRc7I83cbghv9Noo2GQQrxu9QsobY4JhmyUr6t1lu++Yf/2PuMuW2FnmgOtTODt fKODyAvQTjAfU+kndxxo1mOqWNRawqy6df8pJYSKb+gds3pnUVH1rQR81a+xMzJsFYKg 07BGZyI5XPhwIUr+wa9eXdbL8ArU7418GP39eGrgWACoQvkXgeK3BMaQz92GqcyTvBMK oxpy35ZHZiKbE1kO42ubcCjJhMCI/H0d6fWOz3R7mlP2ewGFaGabY0h/jxVTA4URdkY3 8LB6FN8EXBDmk1UzYAXE9ZeA1Sj9+FIPAlNNuSmTj9jYJDL9mTp6KdW9Lv5hixVxeGxa RU6w==
X-Gm-Message-State: AMCzsaVbvKjyOXGLlg8NMY2topLuVfUZxF/6xkG0EGcOl6n74vhogZfZ Wk5gQoZoGfNtyB0dCJ306XDRBzpNKDwP+MmVJiRaNQ==
X-Google-Smtp-Source: ABhQp+Qq6FSCDZemou1x0F4ksndQrE1TSZxAwDWlt6UnfNS+knas/cnEU3yt2hJDZ57/KUjM1OhFoy4W7VwEcmlNFDY=
X-Received: by 10.25.156.66 with SMTP id f63mr7021632lfe.194.1508954976231; Wed, 25 Oct 2017 11:09:36 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.25.150.198 with HTTP; Wed, 25 Oct 2017 11:09:34 -0700 (PDT)
In-Reply-To: <c470cfec-c1b8-a419-ca52-30c47697e21f@cisco.com>
References: <20171015.095206.5556973134711466.mbj@tail-f.com> <CABCOCHR_q8DTF2agDi_VH9pSL8DWV1ttuX=ZZDO9OmNXhAeEsg@mail.gmail.com> <20171018143651.kdsf77r65ptlu4mq@elstar.local> <CABCOCHRVdkjV5PgQ+UtwJMKPLeFRKs_=ogAfTaCGZsWEdgP5uw@mail.gmail.com> <20171018213601.hdkt2qtqsno6vr4u@elstar.local> <CABCOCHS72TVrurJ1mTRi4eGQR3=G1=bx3wk_NK07NOB8OaZfKg@mail.gmail.com> <bacb34ef-d3d9-babd-467e-188146c1084d@cisco.com> <CABCOCHR6tSg9RRW7gZ50qp6F5frWGm-P1qK_0xEEQdiNursB7A@mail.gmail.com> <20171024172125.l6l3yhocakfkcoh2@elstar.local> <CABCOCHQ8nbf_H6eJxGFqwr=LHrdxyFWc3a4FfhLwR45bs-J19Q@mail.gmail.com> <20171025110851.wdoj2dbrqmxz5shd@elstar.local> <CABCOCHR22Ehryxu374a_-F6PFYayTgizReHuC0EaY4uBC7+vyg@mail.gmail.com> <c470cfec-c1b8-a419-ca52-30c47697e21f@cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Wed, 25 Oct 2017 11:09:34 -0700
Message-ID: <CABCOCHTxrxxa0YGtXs8M3x8NGnb0yGJeGPk=6j0s=zsXqtTHNg@mail.gmail.com>
To: Robert Wilton <rwilton@cisco.com>
Cc: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Martin Bjorklund <mbj@tail-f.com>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="001a11411bc6573eca055c62f539"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/pxckLT7te9ZsFaFoC5n0seSI5wo>
Subject: Re: [netmod] augment YANG 1.0 with YANG 1.1 OK?
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
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: Wed, 25 Oct 2017 18:10:09 -0000

On Wed, Oct 25, 2017 at 10:05 AM, Robert Wilton <rwilton@cisco.com> wrote:

> Hi Andy,
>
> On 25/10/2017 16:54, Andy Bierman wrote:
>
>
>
> On Wed, Oct 25, 2017 at 4:08 AM, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
>
>> It seems we are jumping between topics. I will skip over comments
>> concerning the YANG library and whether it is OK or not OK that YANG
>> library allows different schemas in different datastores.
>>
> \
> \
>
> Actually, this is the only issue that matters.
>
> I decided that no special text is needed because the YANG library is
> violating a MUST requirement
> in RFC 7950 and needs to be changed.
>
> Are you referring to this text, or something else:
>
> 5.6.5.  Implementing a Module
>
>    A server implements a module if it implements the module's data
>    nodes, RPCs, actions, notifications, and deviations.
>
>    A server MUST NOT implement more than one revision of a module.
>
> If, so, then we still agree with this constraint, and this hasn't changed
> for NMDA.  I think that YANG library should make this clear in the list of
> modules.
>
> But I don't think that text specifically prevents different deviations or
> features for different datastores ...
>



I think NMDA is creating much more complexity and disruption than is
required.
The original issue was the OpenConfig-style config/state trees.
The WG agreed that an RPC-based solution was needed so that the
YANG modules would not need to change (far too disruptive!).

Then the IETF proceeds to redo all the YANG modules anyway.
Now the server is allowed to implement the same module differently in each
datastore.
Now comparing the configured and operational value is even harder than
before.

None of this added complexity was in the OpenConfig proposal.
It was not even possible to have different features and deviations for the
same object in that proposal.


Andy




>
> There can only be one implementation of a module per server, not per
> datastore.
> Therefore a module MAY appear in multiple module-sets, but it MUST NOT
> be different.  The exact same revision, features, and deviations MUST be
> present
> in each instance.
>
>
> The NMDA draft already states that the schema for all conventional
> configuration datastores must be the same (meaning that all deviations and
> features must be the same as well):
>
> 5.1.  Conventional Configuration Datastores
>
>    The conventional configuration datastores are a set of configuration
>    datastores that share exactly the same schema, allowing data to be
>    copied between them.
>
>
> So, I think that the main question is about how the schema for
> <operational> can differ from the configuration datatstores.
>
> We want to allow different features to be supported in running vs
> operational, so that feature statements can be useful to turn off features
> that may be supported by a device, but might not be externally configurable
> (e.g router-id).  But we could partially constrain their use.  So I propose
> that we add the following extra sentence to the NMDA draft on section 5.3
> The Operational State Datastore (<operational>).
>
> My proposed NEW text is:
>
> If a YANG feature is supported for a module in any configuration datastore
> then it SHOULD also be supported in <operational>.  This is to allow the
> applied configuration and any other operational state associated with that
> feature to be available.  The inverse constraint does not hold, a server
> MAY support a feature in <operational> without also supporting it in any
> configuration datatstore.
>
>
> I'm not sure that it makes sense to constrain deviations to be the same
> for all datastores, since these are the mechanism for reporting why a
> server doesn't conform to the standard ...
>
> Thanks,
> Rob
>
>
>
> Andy
>
>
>
>> On Tue, Oct 24, 2017 at 11:21:54AM -0700, Andy Bierman wrote:
>> > On Tue, Oct 24, 2017 at 10:21 AM, Juergen Schoenwaelder <
>> > j.schoenwaelder@jacobs-university.de> wrote:
>> >
>> > > On Tue, Oct 24, 2017 at 10:13:35AM -0700, Andy Bierman wrote:
>> > > >
>> > > > IMO the more complex NMDA is to implement, the less likely it will
>> > > > be implemented.  If you want the tools to figure out the correct
>> > > > datastore(s) from description-stmts instead of something
>> > > > deterministic and machine-usable, NMDA is less likely to be
>> > > > implemented.
>> > >
>> > > There is nothing machine readable today that tells you which argument
>> > > of get-config identifies the datastore that is being accessed by
>> > > get-config. Our reasoning is that for most actions that default is
>> > > going to do the right thing. If there is a need to have further
>> > > language support to handle the cases where operations may relate to
>> > > datastores different than operational, then this should be taken up by
>> > > a future version of YANG.
>> > >
>> > >
>> > There is only 1 schema tree now in pre-NMDA so it is easy to parse
>> > instance data against the one and only set of modules.
>> >
>> >
>> >
>> > > > Given that the same objects can be defined differently in each
>> > > > datastore in NMDA, it is especially useful to know which set of YANG
>> > > > modules applies, before parsing instance data against those modules.
>> > >
>> > > I am not sure I parse this correctly.
>> > >
>> >
>> > The new YANG library requires the implementation to know the datastore
>> > to pick the correct set of modules for the datastore used in the
>> operation.
>> > Module sets are allowed to overlap, so the same module can be different
>> > in <running> vs. <operational>.
>> >
>> > Developers unaware of the new NMDA complexities should read the drafts
>> > again.
>> >
>> >
>> >
>> > >
>> > > > (2) Define <action2>:
>> > > > >
>> > > > > I'm not convinced that this is really required/helpful, given
>> that most
>> > > > > actions are likely to only apply to operational.  If it turns out
>> that
>> > > this
>> > > > > is particularly useful then I would propose that this is deferred
>> > > until a
>> > > > > future revision of NETCONF, particularly because we are trying to
>> keep
>> > > the
>> > > > > NETCONF NMDA and RESTCONF NMDA drafts as small as possible.
>> > > > >
>> > > > > Is this OK?
>> > > > >
>> > > >
>> > > > The NMDA theme has been to declare things that are possible in
>> pre-NMDA
>> > > > but not supported in post-NMDA to be not useful, so this can be
>> left to
>> > > > vendors I guess.
>> > >
>> > > Not sure I understand this either.
>> > >
>> > > If you have a concrete change proposal, perhaps the discussion becomes
>> > > more concrete and productive.
>> > >
>> >
>> >
>> > I already said to declare that <action> is invoked in <operational>.
>> Period.
>> > No description-stmt exceptions.
>> >
>> > If another datastore is needed, use rpc-stmt instead of action-stmt.
>>
>> So you are fine if for RPCs description statements can define which
>> datastores are affected by an RPC? I probably did not get that you
>> make a distinction between actions and RPCs here.
>>
>> /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/>
>>
>
>
>