Re: [netmod] yang-data-ext issues
Andy Bierman <andy@yumaworks.com> Mon, 16 April 2018 17:05 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 411C0127869 for <netmod@ietfa.amsl.com>; Mon, 16 Apr 2018 10:05:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.61
X-Spam-Level:
X-Spam-Status: No, score=-2.61 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] 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 O797olC-cT78 for <netmod@ietfa.amsl.com>; Mon, 16 Apr 2018 10:05:19 -0700 (PDT)
Received: from mail-lf0-x230.google.com (mail-lf0-x230.google.com [IPv6:2a00:1450:4010:c07::230]) (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 E141E120721 for <netmod@ietf.org>; Mon, 16 Apr 2018 10:05:18 -0700 (PDT)
Received: by mail-lf0-x230.google.com with SMTP id r125-v6so6447340lfe.2 for <netmod@ietf.org>; Mon, 16 Apr 2018 10:05:18 -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=bXKpIDYR80v9LEswqLMGWWbDRT54WjbinAHYePfeRko=; b=HdrMEqTwYfPrJDLM5yFFmsrJ5QBrq4fFOkF5GrzTEegoPvu24jmX6tkmq6gPSYDP9a HTpxTHrzoGx5X3YsUtyXoOueKGdBhEDu1voryNlBC2Br+bYDc1Slh7CaegZNcRpQ+xIl nC4EhMOS1Yhvv0x7+usg+7zV9elhQpektzGhKsRdnjGvfcr5zTBewreJzeX+WacVuthH JzhSTHXoxYzHl3R1BPL4GJJAeKXu6w1zP0VKh+yAio1dD5lN+E3efSt9HzGFzUXpmAi9 w4cxBgWL590fTdRMBR9OfEhAMNjXZBLspAc1dnq2GpYu/MaBYFWRFNBd6X1UuPI17mPu LiTA==
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=bXKpIDYR80v9LEswqLMGWWbDRT54WjbinAHYePfeRko=; b=Tpz7rwkqhR3X+ssAzFqWCYFYhKUaWJGOEK7KkBDd6y4G9IzsL7XsAuEWiWLYrcPuoI 6s5PDa6rhw/YBo4vxU6VtS3mxKPQbXY15ndZbsPX835jsYbysijd0pzRapBl1fFKQvs8 VK7IoMp+GtpHnKj/qLewruorzQgzAqy9HqD2+Di1LdyLPbhV1TsbVVrpOf3HcPbogaxB NwZ5SmLaDEIb+XrwALHgNZpjC9gRplinpdic67/EXCqH1atVOb+xciz+r83TVCPSZ8La 0BH3xnB/N2v04cOAxrMJ293fNi5csswpiRHfyfwubD+OP820hu/yzcsuF4CBiULkf9Ha fybw==
X-Gm-Message-State: ALQs6tCS06i6ykuxzI2G+P2A+1sHUGGiLmaKiXce9tqBmfKQclUHETeK kDodYjJ9zzZllo9eN+6G9tP3hf+brxZ/bHc1jvvyiw==
X-Google-Smtp-Source: AIpwx4+c0mK2JZpGGVVFh7l0AruvZp4UGKIJJuEFhnjfxJ1BYjF/jng2lL938QphYO8VQC/Cz52ixUJU5LFuYk79T1o=
X-Received: by 10.46.127.10 with SMTP id a10mr1967657ljd.78.1523898317083; Mon, 16 Apr 2018 10:05:17 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a19:d8c6:0:0:0:0:0 with HTTP; Mon, 16 Apr 2018 10:05:15 -0700 (PDT)
In-Reply-To: <6e111dfc-efc7-109f-40f5-8cdba72021fc@cisco.com>
References: <20180416.145617.1262098657698751846.mbj@tail-f.com> <CABCOCHQS5SdJhZrgoVug4Lux2WLCmieN26Kte_FEdzh9VB=riw@mail.gmail.com> <ef8e1caf-686e-1074-d094-6b6cd907a1a8@cisco.com> <CABCOCHRr=h=G43aJqwVRc+pcs-QV93_adHB4hDQckkVpacH8eA@mail.gmail.com> <6e111dfc-efc7-109f-40f5-8cdba72021fc@cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Mon, 16 Apr 2018 10:05:15 -0700
Message-ID: <CABCOCHSMQbg6jbafgq90E26OxSGf=9ERDxamJ3s9cp_LN4QC_w@mail.gmail.com>
To: Robert Wilton <rwilton@cisco.com>
Cc: Martin Bjorklund <mbj@tail-f.com>, NetMod WG <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="089e082b3ee8dd394c0569fa394c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/FW1hSQVpON3YE-Ep4WhqTKfPrkc>
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 17:05:22 -0000
On Mon, Apr 16, 2018 at 9:46 AM, Robert Wilton <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> 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> 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