Re: [netmod] yang-data-ext issues

Ladislav Lhotka <lhotka@nic.cz> Fri, 01 June 2018 13:13 UTC

Return-Path: <lhotka@nic.cz>
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 B2CC112D7F5 for <netmod@ietfa.amsl.com>; Fri, 1 Jun 2018 06:13:57 -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] autolearn=ham autolearn_force=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 ZHHAQF0Ovrjj for <netmod@ietfa.amsl.com>; Fri, 1 Jun 2018 06:13:54 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 7FF1F12D7F2 for <netmod@ietf.org>; Fri, 1 Jun 2018 06:13:53 -0700 (PDT)
Received: by trail.lhotka.name (Postfix, from userid 109) id 29BE6182015C; Fri, 1 Jun 2018 15:17:17 +0200 (CEST)
Received: from localhost (unknown [195.113.220.121]) by trail.lhotka.name (Postfix) with ESMTPSA id C9F1C1820157; Fri, 1 Jun 2018 15:17:14 +0200 (CEST)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Kent Watsen <kwatsen@juniper.net>
Cc: "netmod\@ietf.org" <netmod@ietf.org>
In-Reply-To: <20180529170900.qboedr2rmefsmblc@anna.jacobs.jacobs-university.de>
References: <CABCOCHSupojOLssLebB-mR_PybRLA_4bcbaNF6-8ZUrx1Pu53w@mail.gmail.com> <20180502.092527.2305319833268262996.mbj@tail-f.com> <9fca04b0-fb29-36b3-67aa-2f2c4fb98748@cisco.com> <20180502.112506.845305331945500257.mbj@tail-f.com> <20180502093626.ugsg6nq24a6vjtdn@elstar.local> <64990DFB-CF50-401A-A4EF-B6161C8D227B@juniper.net> <20180529170900.qboedr2rmefsmblc@anna.jacobs.jacobs-university.de>
Mail-Followup-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Kent Watsen <kwatsen@juniper.net>, "netmod\@ietf.org" <netmod@ietf.org>
Date: Fri, 01 Jun 2018 15:14:14 +0200
Message-ID: <87muwe4pjt.fsf@nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/OZgHbr834fEk0i37vI0Paeggxn8>
Subject: Re: [netmod] yang-data-ext issues
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: Fri, 01 Jun 2018 13:13:58 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>; writes:

> On Tue, May 29, 2018 at 03:58:33PM +0000, Kent Watsen wrote:
>> [resurrecting this thread]
>> 
>> Currently the zerotouch draft has a normative reference to this draft.
>> I will this week post an update to the zerotouch draft to resolve the
>> netconf list thread "a couple zerotouch-21 issues".   It would be easy
>> for me to also switch back to using rc:yang-data, but I won't do so if
>> this draft remains an active work-in-progress.
>> 
>> Please see below for more.
>> 
>> 
>> On Wed, 2018-05-02 at 11:36 +0200, Juergen Schoenwaelder wrote:
>> >On Wed, May 02, 2018 at 11:25:06AM +0200, Martin Bjorklund wrote:
>> >> 
>> >> The primary use case is not "generic RPC messages", but standalone
>> >> instance documents, error-info structures, etc.
>> >
>> > The proper solution for rpcs and actions is to define error
>> > information as part of the rpc/action. YANG 1.1 does not support
>> > this but this is where it should be fixed.
>> 
>> Agreed, but note that the subscribed-notifications draft (both the
>> published -12 and unpublished -13) are relying on being able to do
>> just this, and YANG-next is years away...
>
> There is a description statement.
>
>> > Standalone instance documents (not tied to datastores) may have their
>> > use cases as well but it feels odd to create support for standalone
>> > instance documents as extensions and then to create even more
>> > extensions to support augmentation of these instance documents and
>> > whoever knows what comes next.
>> 
>> What feels "odd" about this?  Is it not using the extension statement
>> as it was intended?

It is odd because RFC 7950 uses a lot of text to specify the special
context and then the extension attempts to remove parts of this context
(IMO incompletely). It would be much more logical to have a simple
context-agnostic YANG spec and then use extensions for adding
context-specific stuff.

Somebody who is only interested in this "yang-data" usage of YANG
still has to read all the nice CLRs in 7950 that only make sense for
NETCONF. 

>
> For me, extensions that define new data definition statements are
> borderline. RFC 7950 has this nice statement:

It is no borderline. The exception explicitly redefines YANG semantics
in its description.

>
>    o  extension: An extension attaches non-YANG semantics to statements.
>       The "extension" statement defines new statements to express these
>       semantics.
>
> This does not help since we lack a definition for 'non-YANG semantics'
> and yes I know that yang-data is today defined as an extension. But
> for me, this is a hack and instead of creating a slightly more
> generalized version of this hack, I prefer to stick to yang-data in
> favor of a proper solution as part of YANG.
>  
>> > For short-term needs, there is yang-data defined in RFC 8040.
>> 
>> To be clear, the "short-term needs" are:
>> 
>>   a) zerotouch: to define a standalone instance document
>>   b) notification-messages: to define a new notification message
>>   c) subscribed-notifications: to define error-info structures
>> 
>> As I recall, this draft (not RFC 8040) is needed:
>> 
>>   - for (a), because rc:yang-data doesn't support a top-level
>>     "choice" statement spanning "container" statements.
>
> So create a container.
>  
>>   - for (b), in order to augment a base yang-data "message" 
>>     structure with additional nodes.
>
> So you are creating another augmentation mechanism. I am concerned
> about ending up with a zoo of different mechanisms if we go down this
> path, we may end up with every project or vendor creating their own
> variants.
>
> With NMDA in place, YANG 1.1 is decribing schemas for datastores plus
> operations and notifications. It is not a protocol message description
> language or a standalone file format description language. If this is
> needed, I prefer to create YANG X.Y - and if we manage the complexity
> we have something that is ideally integrated and consistent.
>
>>   - AFAIAA, RFC 8040 is sufficient for (c)
>> 
>> Has anything changed?   I don't think that we can un-adopt this
>> draft with said dependencies, right?
>
> I am just voicing my opinion. It may very well be that the WG prefers
> to go the route of not touching YANG 1.1 and instead patching around
> its limitations with extensions.
>
> My concern is simply driven that some want to patch in via extensions
> support for describing protocol messages and standalone documents,
> others want to patch via extensions and updates a different versioning
> system, and who knows what comes next. In the long run, I am afraid
> this will become a mess. And yes, it is always difficult to predict
> the future - we need crystal balls. Perhaps as an extension. ;-)

And, luckily, vendors probably haven't yet realized the potential of
extensions for creating proprietary YANG silos. This document should be
very instructive for them.

Lada

>
> /js
>
> -- 
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

-- 
Ladislav Lhotka
Head, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67