Re: [netmod] choice/case in tree diagrams
joel jaeggli <joelja@bogus.com> Tue, 06 March 2018 17:44 UTC
Return-Path: <joelja@bogus.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 9649012895E for <netmod@ietfa.amsl.com>; Tue, 6 Mar 2018 09:44:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.91
X-Spam-Level:
X-Spam-Status: No, score=-6.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 GQIhsXPmu4fy for <netmod@ietfa.amsl.com>; Tue, 6 Mar 2018 09:44:30 -0800 (PST)
Received: from nagasaki.bogus.com (nagasaki.bogus.com [IPv6:2001:418:1::81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 261091270AC for <netmod@ietf.org>; Tue, 6 Mar 2018 09:44:30 -0800 (PST)
Received: from MBP.local (c-73-202-177-209.hsd1.ca.comcast.net [73.202.177.209]) (authenticated bits=0) by nagasaki.bogus.com (8.15.2/8.15.2) with ESMTPSA id w26HiR6m012333 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Tue, 6 Mar 2018 17:44:28 GMT (envelope-from joelja@bogus.com)
X-Authentication-Warning: nagasaki.bogus.com: Host c-73-202-177-209.hsd1.ca.comcast.net [73.202.177.209] claimed to be MBP.local
To: Lou Berger <lberger@labn.net>, Martin Bjorklund <mbj@tail-f.com>, vladimir@transpacket.com
Cc: netmod@ietf.org
References: <1520262414.7198.35.camel@nic.cz> <6a1ed43f-398b-4538-52aa-d7f8c219047e@tail-f.com> <c9a60629-a1de-0b5b-77a0-595f614bcad8@transpacket.com> <20180306.104411.829341372037212681.mbj@tail-f.com> <161fb126c00.27d3.9b4188e636579690ba6c69f2c8a0f1fd@labn.net>
From: joel jaeggli <joelja@bogus.com>
Message-ID: <ea01ba05-6f93-f553-b585-29c679d21007@bogus.com>
Date: Tue, 06 Mar 2018 09:44:22 -0800
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <161fb126c00.27d3.9b4188e636579690ba6c69f2c8a0f1fd@labn.net>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/jeyGdlIiAB8IIzRbrn4QKDrfUcM>
Subject: Re: [netmod] choice/case in tree diagrams
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, 06 Mar 2018 17:44:33 -0000
On 3/6/18 3:29 AM, Lou Berger wrote: > Martin, > > > On March 6, 2018 4:44:47 AM Martin Bjorklund <mbj@tail-f.com> wrote: > >> Hi, >> >> After thinking some more about this, realizing that this document is >> in AUTH48, and looking at the first sentence in the Abstract: >> >> This document captures the current syntax used in YANG module tree >> diagrams. >> >> I have reached the conclusion that we probably shouldn't make any >> drastic changes. >> > > I agree. I would tend to err on that side as well it's a little late for that. >> The current syntax, with flags for choice but not for case, may look a >> bit odd, but it does follow RFC 7950 where a choice node can have a >> config property, but case cannot. Also, this syntax has now been used >> for several years w/o causing much confusion. >> >> I suggest the following changes to this document: >> >> OLD: >> >> <flags> is one of: >> rw for configuration data >> ro for non-configuration data, output parameters to rpcs >> and actions, and notification parameters >> -w for input parameters to rpcs and actions >> -u for uses of a grouping >> -x for rpcs and actions >> -n for notifications >> mp for nodes containing a "mount-point" extension statement >> >> NEW: >> >> <flags> is one of: >> rw for configuration data >> ro for non-configuration data, output parameters to rpcs >> and actions, and notification parameters >> -w for input parameters to rpcs and actions >> -u for uses of a grouping >> -x for rpcs and actions >> -n for notifications >> mp for nodes containing a "mount-point" extension statement >> >> case nodes do not have any <flags>. >> > > >> Then, since the syntax requires whitespace before <name>: >> > I think we should match current tooling/practice here as well. Can you > confirm how pyang works today? > > My memory is no such space is added. If my memory is correct, my > preference is to change the text rather then the tooling. > > Lou > (As contributor) > >> <status>--<flags> <name><opts> <type> <if-features> >> >> we need to fix the examples: >> >> OLD: >> >> +--rw (root-type) >> +--:(vrf-root) >> >> NEW: >> >> +--rw (root-type) >> +-- :(vrf-root) >> >> (two occurances) >> >> >> >> /martin >> >> >> >> Vladimir Vassilev <vladimir@transpacket.com> wrote: >>> >>> >>> On 03/05/2018 06:40 PM, Per Hedeland wrote: >>> > On 2018-03-05 16:06, Ladislav Lhotka wrote: >>> >> On Mon, 2018-03-05 at 15:49 +0100, Per Hedeland wrote: >>> >>> On 2018-03-05 15:41, Ladislav Lhotka wrote: >>> >>>> On Mon, 2018-03-05 at 15:26 +0100, Martin Bjorklund wrote: >>> >>>>> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> >>> wrote: >>> >>>>>> On Mon, Mar 05, 2018 at 02:54:18PM +0100, Martin Bjorklund >>> wrote: >>> >>>>>>>> So it seems the running code got it right. ;-) >>> >>>>>>> As the author of that code, I think that was purely by >>> accident... >>> >>>>>>> >>> >>>>>>> But I'm not convinced it is the correct solution. We have >>> one example >>> >>>>>>> in the other thread where someone was confused by the "rw" >>> flag and >>> >>>>>>> thought that it implied that the node would be present in >>> the data >>> >>>>>>> tree. >>> >>>>>>> >>> >>>>>> So what does rw mean? >>> >>>>>> >>> >>>>>> (i) The schema node has a rw property. >>> >>>>>> (ii) The schema node can be instantiated and the instantiated >>> data >>> >>>>>> node >>> >>>>>> has a rw property. >>> >>>>>> >>> >>>>>> I think it is difficult to have both at the same time. If the >>> tree is >>> >>>>>> a representation of schema nodes, then (i) seems to make more >>> >>>>>> sense. That said, the explanation in 2.6 is somewhat vague >>> since it >>> >>>>>> says 'data' and not 'nodes' (like everywhere else): >>> >>>>>> >>> >>>>>> OLD: >>> >>>>>> >>> >>>>>> <flags> is one of: >>> >>>>>> rw for configuration data >>> >>>>>> ro for non-configuration data, output parameters >>> to rpcs >>> >>>>>> and actions, and notification parameters >>> >>>>>> >>> >>>>>> NEW: >>> >>>>>> >>> >>>>>> <flags> is one of: >>> >>>>>> rw for configuration data nodes >>> >>>>>> ro for non-configuration data nodes, output >>> parameters to >>> >>>>>> rpcs >>> >>>>>> and actions, and notification parameters >>> >>>>> I think this is ok. But that means that we also have to add: >>> >>>>> >>> >>>>> -- for a choice or case node >>> >>>>> >>> >>>>> But in order to be consistent, we should probably have: >>> >>>>> >>> >>>>> -- for a choice, case, input or output node >>> >>>> But unlike the three other statements, "choice" can have the >>> config >>> >>>> substatement, so "rw/ro" makes sense there. >>> >>> I don't think so - that config statement does not a define a >>> property >>> >>> of >>> >>> the choice node (it can obviously neither be read nor written), >>> only a >>> >>> default for descendant data nodes, as described in section >>> 7.21.1 of >>> >>> RFC >>> >>> 7950. >>> >> It is not a default - if a choice has "config false", then no >>> >> descendant can be >>> >> "config true". One of the benefits of having rw/ro in the ascii tree >>> >> is to see >>> >> where a state data subtree actually starts. >>> > It is a default, but yes, it is also a restriction in the specific >>> > case >>> > of the argument being "false" at a point where the default would >>> > otherwise be "true". And in that case it is equivalent to having >>> > "config >>> > false" on all the descendant data nodes, and they will of course be >>> > flagged as "ro" regardless of whether the "config false" comes from >>> > the >>> > choice or the individual data nodes - and that is where the state >>> > *data* >>> > suntree(s) actually start(s). >>> > >>> > So I guess the question then is whether this specific case motivates >>> > always having flags on specifically choice nodes, while the other >>> > non-data nodes have no flags. Since the 'config' statement is ignored >>> > in >>> > rpc/action input/output and notification, choice nodes there should >>> > then >>> > presumably have "-w"/"ro"/"-n". Personally I think the diagram is >>> > clearer with flags only on the data nodes. >>> When I think about it <flags> do not have any information contents >>> outside of the context of a data tree and its schema. So if we are >>> removing clutter we should probably start there by specifying that >>> <flags> should be ommited under rpc,notification and action. >>> >>> Vladlimir >>> > >>> > --Per >>> > >>> >> Lada >>> >> >>> >>> --Per >>> >>> >>> >>>> Lada >>> >>>> >>> >>>>> >>> >>>>> This means that the correct tree syntax for choice and case >>> will be: >>> >>>>> >>> >>>>> +-- (subnet)? >>> >>>>> +-- :(prefix-length) >>> >>>>> | +--rw prefix-length? uint8 >>> >>>>> +-- :(netmask) >>> >>>>> +--rw netmask? yang:dotted-quad >>> >>>>> >>> >>>>> >>> >>>>> /martin >>> >>>>> >>> >>>>> >>> >>>>>> The document (as far as I searched for it) does not clearly >>> say that >>> >>>>>> 'node' means 'schema node'. In hindsight, it might have been >>> useful to >>> >>>>>> explicitely import terminology from RFC 7950 and to use it >>> carefully >>> >>>>>> (RFC 7950 has 'schema node' and 'data node' but here we >>> largely talk >>> >>>>>> about 'nodes' - and my assumption is that this means 'schema >>> nodes'.) >>> >>>>> _______________________________________________ >>> >>>>> netmod mailing list >>> >>>>> netmod@ietf.org >>> >>>>> https://www.ietf.org/mailman/listinfo/netmod >>> >>> _______________________________________________ >>> >>> netmod mailing list >>> >>> netmod@ietf.org >>> >>> https://www.ietf.org/mailman/listinfo/netmod >>> > _______________________________________________ >>> > netmod mailing list >>> > netmod@ietf.org >>> > https://www.ietf.org/mailman/listinfo/netmod >>> >>> _______________________________________________ >>> netmod mailing list >>> netmod@ietf.org >>> https://www.ietf.org/mailman/listinfo/netmod >> >> _______________________________________________ >> netmod mailing list >> netmod@ietf.org >> https://www.ietf.org/mailman/listinfo/netmod >> > > > _______________________________________________ > netmod mailing list > netmod@ietf.org > https://www.ietf.org/mailman/listinfo/netmod >
- [netmod] choice/case in tree diagrams Martin Bjorklund
- Re: [netmod] choice/case in tree diagrams Juergen Schoenwaelder
- Re: [netmod] choice/case in tree diagrams Vladimir Vassilev
- Re: [netmod] choice/case in tree diagrams Juergen Schoenwaelder
- Re: [netmod] choice/case in tree diagrams Martin Bjorklund
- Re: [netmod] choice/case in tree diagrams Juergen Schoenwaelder
- Re: [netmod] choice/case in tree diagrams Vladimir Vassilev
- Re: [netmod] choice/case in tree diagrams Martin Bjorklund
- Re: [netmod] choice/case in tree diagrams Martin Bjorklund
- Re: [netmod] choice/case in tree diagrams Ladislav Lhotka
- Re: [netmod] choice/case in tree diagrams Per Hedeland
- Re: [netmod] choice/case in tree diagrams Ladislav Lhotka
- Re: [netmod] choice/case in tree diagrams Per Hedeland
- Re: [netmod] choice/case in tree diagrams Mahesh Jethanandani
- Re: [netmod] choice/case in tree diagrams Vladimir Vassilev
- Re: [netmod] choice/case in tree diagrams Martin Bjorklund
- Re: [netmod] choice/case in tree diagrams Martin Bjorklund
- Re: [netmod] choice/case in tree diagrams Robert Wilton
- Re: [netmod] choice/case in tree diagrams Lou Berger
- Re: [netmod] choice/case in tree diagrams Martin Bjorklund
- Re: [netmod] choice/case in tree diagrams Lou Berger
- Re: [netmod] choice/case in tree diagrams Juergen Schoenwaelder
- Re: [netmod] choice/case in tree diagrams Benoit Claise
- Re: [netmod] choice/case in tree diagrams Martin Bjorklund
- Re: [netmod] choice/case in tree diagrams Juergen Schoenwaelder
- Re: [netmod] choice/case in tree diagrams Martin Bjorklund
- Re: [netmod] choice/case in tree diagrams Juergen Schoenwaelder
- Re: [netmod] choice/case in tree diagrams Ladislav Lhotka
- Re: [netmod] choice/case in tree diagrams joel jaeggli
- [netmod] Closing this issue: choice/case in tree … Benoit Claise
- Re: [netmod] Closing this issue: choice/case in t… Benoit Claise