Re: [netmod] yang-data-ext issues
Martin Bjorklund <mbj@tail-f.com> Mon, 16 April 2018 16:29 UTC
Return-Path: <mbj@tail-f.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 6F40312EA94 for <netmod@ietfa.amsl.com>; Mon, 16 Apr 2018 09:29:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] 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 xH9aE90xzhq9 for <netmod@ietfa.amsl.com>; Mon, 16 Apr 2018 09:29:28 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id C53EF12EA59 for <netmod@ietf.org>; Mon, 16 Apr 2018 09:29:27 -0700 (PDT)
Received: from localhost (h-80-27.A165.priv.bahnhof.se [212.85.80.27]) by mail.tail-f.com (Postfix) with ESMTPSA id A50C01AE00A0; Mon, 16 Apr 2018 18:29:26 +0200 (CEST)
Date: Mon, 16 Apr 2018 18:29:26 +0200
Message-Id: <20180416.182926.637163540708856373.mbj@tail-f.com>
To: andy@yumaworks.com
Cc: rwilton@cisco.com, netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHRr=h=G43aJqwVRc+pcs-QV93_adHB4hDQckkVpacH8eA@mail.gmail.com>
References: <CABCOCHQS5SdJhZrgoVug4Lux2WLCmieN26Kte_FEdzh9VB=riw@mail.gmail.com> <ef8e1caf-686e-1074-d094-6b6cd907a1a8@cisco.com> <CABCOCHRr=h=G43aJqwVRc+pcs-QV93_adHB4hDQckkVpacH8eA@mail.gmail.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/4DaiZEEMGcUZdtUj6aA9j1d9FH0>
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: Mon, 16 Apr 2018 16:29:30 -0000
Andy Bierman <andy@yumaworks.com> wrote: > On Mon, Apr 16, 2018 at 8:44 AM, Robert Wilton <rwilton@cisco.com> wrote: > > > Don't groupings have a somewhat similar concern? > > > > E.g. if two groupings define the same data node name and are used at the > > same point then you would get a namespace clash, but YANG does not disallow > > the groupings: > > > > grouping foo_widget { > > leaf name { > > type string; > > description "Name of my foo widget"; > > } > > } > > > > grouping bar_widget { > > leaf name { > > type string; > > description "Name of my bar widget"; > > } > > } > > > > > > container all_widgets { > > uses foo_widget; > > uses bar_widget; > > } > > > > > > The principal difference here, is that the compiler can easily check and > > reject the conflict at the uses statements. > > > > Hence I think that it would be good if we could find a solution for > > yang-data-ext that doesn't not require all root yang-data nodes to be > > unique, since that feels somewhat clunky. I.e. my preference is to keep > > them less restrictive, as Martin has proposed, if this is feasible. > > > > > > > It is not clunky that 2 top-level YANG data nodes in the same module > have unique names. If the yang-data structure is used nested within some other node, it does not define a top-level node. In this case it doesn't have to have uniquely named nodes, and it doesn't have to define a single container. > This is simple and deterministic. > This restriction has not been a problem so far. yang-data is a new construct. A more restrictive version was defined in RFC 8040, and these restrictions *were* problematic. I don't want to make the same mistake again. > The yang-data statement has to define the context or new abstract namespace, Yes, agreed. Regardless of the outcome of this thread, the yang-data statement has to define where the structure being defined is supposed to be used. > or whatever this hack is called. Every tool that implements yang-data has > to be able > to interpret a yang-data statement exactly the same way. > > If you want to reinvent XSD substitutionGroup, then do it right. This is not a new substitutionGroup. /martin > > > > > > Thanks, > > Rob > > > > > > Andy > > > > > > On 16/04/2018 15:36, Andy Bierman wrote: > > > > Hi, > > > > I am strongly opposed to this change because it breaks the rule in YANG 1.1 > > that there cannot be 2 sibling nodes defined in the same module namespace. > > > > IMO since any yang-data nodes are ALLOWED to be used at the top-level, > > then these top-level nodes cannot have conflicting names. > > > > It is very important when parsing an instance document that the instance > > data > > can be associated with the correct schema. This is not possible if the > > same top-level node has multiple yang-data nodes defined. > > > > If one needs to define data that is not top-level, (1) use > > augment-yang-data > > or (2) use a different module. > > > > > > Andy > > > > > > > > On Mon, Apr 16, 2018 at 5:56 AM, Martin Bjorklund <mbj@tail-f.com> wrote: > > > >> Hi, > >> > >> While preparing draft-ietf-netmod-yang-data-ext-02, it turned out that > >> it is not clear what, if any, restrictions should be enforced for > >> yang-data structures. Even among the authors we have different ideas > >> for how this should work. > >> > >> Background: > >> > >> In 8040, the original yang-data extension had a restriction that said > >> that a yang-data structure MUST have exactly one container, since it > >> wouldn't be possible to have a yang-data structure in an XML instance > >> document otherwise. > >> > >> Since people want to use yang-data structures in other places, this > >> restriction was lifted in the new draft: > >> > >> There is no longer an assumption that a yang data structure can > >> only be used as a top-level abstraction, instead of nested within > >> some other data structure. > >> > >> > >> With this in mind, here's a use case that I think we ought to support: > >> > >> rpc my-first-rpc { > >> description > >> "Bla bla... > >> If an error occurs, <error-info> will contain an instance of > >> the yang-data structure 'my-first-rpc-error-info'."; > >> ... > >> } > >> > >> yang-data my-first-rpc-error-info { > >> leaf reason { ... } > >> container user-info { ... } > >> } > >> > >> rpc my-second-rpc { > >> description > >> "Bla bla... > >> If an error occurs, <error-info> will contain an instance of > >> the yang-data structure 'my-second-rpc-error-info'."; > >> ... > >> } > >> > >> yang-data my-second-rpc-error-info { > >> leaf reason { ... } > >> leaf important-url { ... } > >> } > >> > >> (maybe in the future we could even have a YANG extension statement to > >> formalize the description: > >> > >> rpc my-first-rpc { > >> ... > >> opx:error-info-structure my-first-rpc-error-info; > >> } > >> > >> but this is not point now.) > >> > > > > > I see no reason to reinvent the grouping-stmt. > You could easily say opx:error-info-structure argument is a grouping name > as it is a yang-data name. > > > > > > >> In the example above, note that the leaf "reason" is present in both > >> structures. IMO this is not a problem, since these structures are > >> used in different contexts. > >> > >> My point is that I think we should impose as few restrictions as > >> possible to the yang-data extension. It should be up to the user of > >> yang-data to ensure that the structure is defined in such a way so > >> that it can be used properly. For example, a structure that is > >> supposed to describe an XML instance document cannot define two leafs > >> at the top level. > >> > >> If the WG agrees with what I wrote above, we need to change the > >> augment-yang-data extension so that you would write for example: > >> > >> yx:augment-yang-data /ex:my-first-rpc-error-info/ex:user-info { > >> ... > >> } > >> > >> Comments? > >> > >> > >> > >> /martin > >> > >> _______________________________________________ > >> netmod mailing list > >> netmod@ietf.org > >> https://www.ietf.org/mailman/listinfo/netmod > >> > > > > > > > > _______________________________________________ > > netmod mailing listnetmod@ietf.orghttps://www.ietf.org/mailman/listinfo/netmod > > > > > >
- Re: [netmod] yang-data-ext issues Kent Watsen
- Re: [netmod] yang-data-ext issues Joe Clarke
- Re: [netmod] yang-data-ext issues Kent Watsen
- [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Joe Clarke
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Robert Wilton
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Robert Wilton
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Kent Watsen
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Kent Watsen
- Re: [netmod] yang-data-ext issues Robert Varga
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Robert Varga
- Re: [netmod] yang-data-ext issues Juergen Schoenwaelder
- Re: [netmod] yang-data-ext issues Robert Varga
- Re: [netmod] yang-data-ext issues Juergen Schoenwaelder
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Andy Bierman
- [netmod] Extensions vs new YANG versions [was Re:… Robert Wilton
- Re: [netmod] yang-data-ext issues Robert Wilton
- Re: [netmod] Extensions vs new YANG versions [was… Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Kent Watsen
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Juergen Schoenwaelder
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Robert Wilton
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Robert Wilton
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Juergen Schoenwaelder
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Juergen Schoenwaelder
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Kent Watsen
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Kent Watsen
- Re: [netmod] yang-data-ext issues Juergen Schoenwaelder
- Re: [netmod] yang-data-ext issues Kent Watsen
- Re: [netmod] yang-data-ext issues Juergen Schoenwaelder
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Robert Wilton
- Re: [netmod] yang-data-ext issues Martin Bjorklund
- Re: [netmod] yang-data-ext issues Juergen Schoenwaelder
- Re: [netmod] yang-data-ext issues Ladislav Lhotka
- Re: [netmod] yang-data-ext issues Robert Varga
- Re: [netmod] yang-data-ext issues Robert Varga
- Re: [netmod] yang-data-ext issues Kent Watsen
- Re: [netmod] yang-data-ext issues Juergen Schoenwaelder
- Re: [netmod] yang-data-ext issues Andy Bierman
- Re: [netmod] yang-data-ext issues Kent Watsen
- Re: [netmod] yang-data-ext issues Ladislav Lhotka