Re: [netmod] yang-data-ext issues

Andy Bierman <andy@yumaworks.com> Tue, 24 April 2018 19:18 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 BF7E412D7EC for <netmod@ietfa.amsl.com>; Tue, 24 Apr 2018 12:18:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.609
X-Spam-Level:
X-Spam-Status: No, score=-2.609 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_LOW=-0.7, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01, URIBL_BLOCKED=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 4CCn-T-wqsRI for <netmod@ietfa.amsl.com>; Tue, 24 Apr 2018 12:18:47 -0700 (PDT)
Received: from mail-lf0-x235.google.com (mail-lf0-x235.google.com [IPv6:2a00:1450:4010:c07::235]) (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 BCFF3124F57 for <netmod@ietf.org>; Tue, 24 Apr 2018 12:18:46 -0700 (PDT)
Received: by mail-lf0-x235.google.com with SMTP id u21-v6so20362964lfu.9 for <netmod@ietf.org>; Tue, 24 Apr 2018 12:18:46 -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=o8Mm5H7E3H1Za4s5FJ/2MFH6tRXNiR5tSq46sAyVjW0=; b=TKKRwYHz6ZGt6k0CDE5uv5OP7fr6DUQgBYGQKg07niGYEcAw9v3UynnJEZURpSsPtn SzjoMHlRHbEICpcb5B/YHn2LQ2voH6m1uHQV5NQ/bX7Bs78aAcq2OQ7VBpId8/rcRlPL /Ib5WajASjZVCUe8iVSH1PnYXXpCqSFD4KsNiDdBpyPrIq5SPNTFQVwzXvNU9wr23GZZ 5OWGYeAPO5Z1pYuTyW2KuTMFuhnr96tKvx9sBXjY2t7FFtnj9TTpxTSNXmR83OO8JuFp d2WnvRhyxmz885uHeY9LWH/Qcruhxqno/IkTUDj/OWpEB42BmtWQguJS/dT5zq4fu8OF cCig==
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=o8Mm5H7E3H1Za4s5FJ/2MFH6tRXNiR5tSq46sAyVjW0=; b=UMViWI5ll1KG/kk+dXV8XkTdRYFRPqf4yLQOPkGhp+1tMtJt3Urm5UOvJUvcxBBZWY p2ie864UEozOhczWKOfKae4DQ0OaGH8W/DhtqlA4QJL1YzqPjuAYyGOKYegm0N2L0vkl ZhqzedUjYgvIBxfjlai3D49atEcgCI3atQZIdzYoT9Q02X2u6ACBJ+jOoq4egvzKPhM8 +/GV+TFi1b/Oaia6CVs2Y7dtK6QHjKvMsHkcdpv5G+fYLWjGMvXu8JEhDx4oj7y0gyAd pqbDsD8mlXYdSECGSmTd2YKuMCUWcMAgbA8+q0F/0s3ZnX9zjmx5lwRf4VZ2ixKKVMP1 E5Yw==
X-Gm-Message-State: ALQs6tBLnl5Nc843rMddaoYyLMPUDWxv2kmBEb/VksWkI/nbf1QvZD5N W+BCP9EVPuxA9LlcjO2GLxnYvTx4l19Pl4sVwrzm7A==
X-Google-Smtp-Source: AIpwx49HFb/BaGeewsuRhLgFOqD+MWTCYXAxtfpFBNZTvxeQqxR5/tCzUEbru7NoXcLt1zDmueMPL0GpQDsmH+++naI=
X-Received: by 10.46.151.206 with SMTP id m14mr18345875ljj.102.1524597524861; Tue, 24 Apr 2018 12:18:44 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a19:d8c6:0:0:0:0:0 with HTTP; Tue, 24 Apr 2018 12:18:43 -0700 (PDT)
In-Reply-To: <20180423.220815.526647366558506966.mbj@tail-f.com>
References: <CABCOCHQXqPpXT031qaZ5psPr4C8rsC6E2PkaL2nNLB7K-H_37g@mail.gmail.com> <20180423.214923.1209533731960312602.mbj@tail-f.com> <CABCOCHTwdBbo_qtBu=_OunOtLNBXmWCWVZ8ajr0LFZPDFpNEFg@mail.gmail.com> <20180423.220815.526647366558506966.mbj@tail-f.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Tue, 24 Apr 2018 12:18:43 -0700
Message-ID: <CABCOCHTt3noQ5PcX57yGi5Cm7BxQA=GCB9KajrWS2WLnYM9THA@mail.gmail.com>
To: Martin Bjorklund <mbj@tail-f.com>
Cc: Kent Watsen <kwatsen@juniper.net>, NetMod WG <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="883d24f22e14e53490056a9d0538"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/d5B7Yqev5Xu519w-5BmKLlBwPg0>
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: Tue, 24 Apr 2018 19:18:50 -0000

On Mon, Apr 23, 2018 at 1:08 PM, Martin Bjorklund <mbj@tail-f.com>; wrote:

> Andy Bierman <andy@yumaworks.com>; wrote:
> > > ....
> > > >
> > > > I do not understand the need for a yang-data structure that
> represents
> > > data
> > > > that can be instantiated anywhere and everywhere.
> > >
> > > AFAIK noone is proposing that.
> > >
> > > > I do not want to break
> > > > existing tools that expect sibling data nodes in the same module
> > > namespace
> > > > to
> > > > be unique local-names.
> > > >
> > > > I would rather stick with the yang-data in RFC 8040 than introduce a
> new
> > > > extension
> > > > with no restrictions.  Standard YANG extensions should be
> interoperable
> > > and
> > > > have
> > > > a clear purpose.
> > >
> > > Of course.
> > >
> > > > If we do not need to define what a YANG extension does in
> > > > a way that can be observed somehow, then it does not need to be a
> > > standard.
> > >
> > > Agreed.
> > >
> > > Not sure how any of this helps with the original issue though.
> > >
> > >
> >
> > You proposed that duplicate nodes were OK:
> >
> > module X {
> > prefix x;
> >
> > x:yang-data A {
> >    list foo { ... }
> > }
> >
> > x:yang-data B {
> >   container foo { ... }
> > }
> >
> > }
> >
> >
> > I do not want to allow any duplicates.
>
> Yes, I got that.
>
> > There are no encoding and parsing rules for instance data
> > that support this sort of duplicate.
>
> This is not correct, as I have demonstrated earlier, and I think you
> also accepted; if different structures are defined for different rpcs'
> error-infos, then these structures can have the same child node names.
>
> I think that we have to agree on the basics before disussing
> solutions:
>
>   1)  Should we do anything at all?
>
>       (i.e., keep using yang-data in RFC 8040)
>
>   2)  Should we define structures that only can be used in
>       standalone instance documents?
>
>       (i.e., *more* restrictive than yang-data in RFC 8040)
>
>   3)  Should we define structures that can be used in standalone
>       instance documents, error-info contents, and other places that
>       we might not know right now?
>
>       (i.e., *less* restrictive than yang-data in RFC 8040)
>
>
> Since the current draft says:
>
>    The "yang-data" extension statement from RFC
>    8040 [RFC8040] is defined for this purpose, however it is limited in
>    its functionality.
>
>    The intended use of the "yang-data" extension is to model all or part
>    of a protocol message, such as the "errors" definition in ietf-
>    restconf.yang [RFC8040], or the contents of a file.  However,
>    protocols are often layered such that the header or payload portions
>    of the message can be extended by external documents.  The YANG
>    statements that model a protocol need to support this extensibility
>    that is already found in that protocol.
>
>
> I thought we are doing (3).
>
>
>
The use-case that has come up several times is (1).
People want to use YANG to define the schema for an XML or JSON
representation of a stand-alone document.

Item (3) needs to be machine-readable and deterministic for it to be even
remotely
feasible as a standard. There is no way a tool should have to match <x:foo>
to
the correct schema, based on the description-stmt inside some
yang-data-stmt.
The only data needed must be module + local-name.

The example you gave of different definitions of the <reason> leaf is a
really bad idea.
We should never try to define different schema for the same instance data,
where the module-name and local-name are the same, but the contents are
different.

Defining an extension that maps error-info data for a specific RPC might be
something worth standardizing.  It should not be done with yang-data,
but rather a different extension just for this purpose.



> /martin
>

Andy


>
>
>
> > yang-data definitions define conceptual data nodes (e.g, /x:foo)
> > Only one data-def-stmt (in yang-data or otherwise) can define a data node
> > /x:foo.
> > The descriptive names for the yang-data (A or B) do not define
> namespaces.
> >
> >
> >
> > > /martin
> > >
> > >
> > Andy
>