Re: [netmod] yang-data-ext issues
Martin Bjorklund <mbj@tail-f.com> Wed, 18 April 2018 17:43 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 7FDFD127599 for <netmod@ietfa.amsl.com>; Wed, 18 Apr 2018 10:43:40 -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 2FVptI5socf1 for <netmod@ietfa.amsl.com>; Wed, 18 Apr 2018 10:43:37 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 74D4E1270A3 for <netmod@ietf.org>; Wed, 18 Apr 2018 10:43:37 -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 EB7EC1AE030D; Wed, 18 Apr 2018 19:43:35 +0200 (CEST)
Date: Wed, 18 Apr 2018 19:43:35 +0200
Message-Id: <20180418.194335.1059747539864098574.mbj@tail-f.com>
To: kwatsen@juniper.net
Cc: andy@yumaworks.com, rwilton@cisco.com, netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <AD15A3E2-71BC-4134-AAFD-BA249ABDEEB1@juniper.net>
References: <6e111dfc-efc7-109f-40f5-8cdba72021fc@cisco.com> <CABCOCHSMQbg6jbafgq90E26OxSGf=9ERDxamJ3s9cp_LN4QC_w@mail.gmail.com> <AD15A3E2-71BC-4134-AAFD-BA249ABDEEB1@juniper.net>
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/DWg3AO1ejU40BYAlx3gCoPrybpM>
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: Wed, 18 Apr 2018 17:43:40 -0000
Hi, [Kent, your email program has messed up the quoting in this thread. It becomes quite difficult to follow. And no, please don't invent a new quoting style in every email thread...] Kent Watsen <kwatsen@juniper.net> wrote: > I like Andy's proposal below, for the argument of the 'yang-data' > statement to encode some meta-information regarding the > context/namespace in which it's used, but I wonder how it really > works. I *think* that what Andy proposes is a way to formally specify the context in which the yang-data structure will be used. My proposal was to simply define the context in plain text. A formal way of defining the context would of course be useful -- if we can find agreement on how that would work. I don't think we should hard-code a few contexts in this draft; the mechanism must be extensible. An alternative syntax could be to introduce a new substatement: yd:yang-data foo { yd:context ...; description "..."; } /martin > For instance, would "top" and "error-info" be the only allowed > base-path values for the argument? and what is the value of the > remainder of the path? are we expecting for there to be some kind us > 'uses' statement that can refer to just the base-path component to > implement substitution-group like behavior? > > Kent // contributor > > > On 4/16/18, 1:05 PM, "netmod on behalf of Andy Bierman" > <netmod-bounces@ietf.org<mailto:netmod-bounces@ietf.org> on behalf of > andy@yumaworks.com<mailto:andy@yumaworks.com>> wrote: > > > > On Mon, Apr 16, 2018 at 9:46 AM, Robert Wilton > <rwilton@cisco.com<mailto:rwilton@cisco.com>> wrote: > > > > On 16/04/2018 17:07, Andy Bierman wrote: > > > On Mon, Apr 16, 2018 at 8:44 AM, Robert Wilton > <rwilton@cisco.com<mailto: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. This is simple and deterministic. > This restriction has not been a problem so far. > I agree with the statements above. > > But it is not clear to me that yang-data-ext is really defining new > top level data nodes that are part of the same tree/namespace as the > configuration/state nodes. In Martin's examples they were used within > RPCs, and it the forcing the names to be unique in that context that I > think would be clunky. E.g. in Martin's example forcing different > names for "reason" and "user-info" doesn't seem to be helpful. > > > > > The yang-data statement has to define the context or new abstract > namespace, > or whatever this hack is called. > Perhaps. I think that this depends on how they are used. > > > The yang-data statement has to specify the expansion point, or > at least specify that it is or is not the top-level. > > yang-data top/name1 { > container mydata; > } > > where context is something like "top" or "error-info", etc. > > It is trivial to use groupings if the same set of nodes needs to be > used in different contexts: > > > yang-data error-info/name1 { > container mydata; > } > > Only the context named "top" is restricted to a resulting > single-container > and cannot have duplicate names. > > This is OK: > > x:yang-data error-info/my-error1 { > leaf reason {} > } > > > x:yang-data error-info/my-error2 { > leaf reason {} > } > > > > > Could a fix for this be something along the lines of: > - yang-data names must be unique amongst other top level data nodes > - within the module. > - if yang-data extensions are used at the top level then their name must > - be used as a single top level container. > - if a yang-data extension is used within another structure then the > - yang-data name is excluded, and the top level nodes defined in the > - yang-data definition are used .... > > > 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. > I'm not familiar with them. From a quick read, I don't see how they > are related to the problem that we are trying to solve here. > > > A substitutionGroup allows a point int the schema to be identified by > name. > Different elements can be defined that match this name, which then can > be > used (like a YANG choice) at the specified schema point. > (e.g. error-info above is like a substitutionGroup) > > > > Thanks, > Rob > > Andy > > > > > > > > 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<mailto: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<mailto:netmod@ietf.org> > https://www.ietf.org/mailman/listinfo/netmod<https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_netmod&d=DwMFaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=q6I_yKbXVoahv9h5I1wZiQMUeHLZ5XWuMohEYtypmzs&s=jECZMhypw9LtuxzuntkFNM-8lm7xpztYwDDLOxCM_8k&e=> > > > > > _______________________________________________ > > netmod mailing list > > netmod@ietf.org<mailto:netmod@ietf.org> > > https://www.ietf.org/mailman/listinfo/netmod<https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_netmod&d=DwMFaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=q6I_yKbXVoahv9h5I1wZiQMUeHLZ5XWuMohEYtypmzs&s=jECZMhypw9LtuxzuntkFNM-8lm7xpztYwDDLOxCM_8k&e=> > > > >
- 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