Re: [yang-doctors] Fwd: Re: Issue with ietf-dslite@2017-11-15.yang and yangdump-pro
Andy Bierman <andy@yumaworks.com> Mon, 22 January 2018 16:27 UTC
Return-Path: <andy@yumaworks.com>
X-Original-To: yang-doctors@ietfa.amsl.com
Delivered-To: yang-doctors@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7B883126DEE for <yang-doctors@ietfa.amsl.com>; Mon, 22 Jan 2018 08:27:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 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] 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 I2qoNkHLcLlt for <yang-doctors@ietfa.amsl.com>; Mon, 22 Jan 2018 08:27:15 -0800 (PST)
Received: from mail-lf0-x22d.google.com (mail-lf0-x22d.google.com [IPv6:2a00:1450:4010:c07::22d]) (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 18B2F124207 for <yang-doctors@ietf.org>; Mon, 22 Jan 2018 08:27:15 -0800 (PST)
Received: by mail-lf0-x22d.google.com with SMTP id g72so11340466lfg.5 for <yang-doctors@ietf.org>; Mon, 22 Jan 2018 08:27:15 -0800 (PST)
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=NX8mq1m70AWygQJO9oGpU04QPaBnqJYM+R5YMDmmGyM=; b=R+MRzSsUvxl+OrN/s8lzlWvgSzMy8ygLm458X6Y1OM2Djd6xCq1PH8EMtRfu30hW4F YDNMxcuYyrGAdqfZZ5DkXomNAHdzYkoQFYYQPPhyTJzXXSpOsaoDRfOr45X80/dReHQ0 P603SBr4P/l1BI6wvunrMbCNSp3EncY5vqqNiYJeCS1VAx/AGXnYQ/4LYCQHp7z9q+Vq dJpLg3f/nznRixL3q1tPZiDNfiaxYXYKPM5zSj5GM7Pww3VUQ4GVs8/x2tk6fVqKvJBK oc7CzfhRad1kvOHRj1LO9VbPzjrAZKlSeGE56lpJUBJSPP1QSaZCyj09G7Q5vGFPqSl2 iU8Q==
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=NX8mq1m70AWygQJO9oGpU04QPaBnqJYM+R5YMDmmGyM=; b=L2YvjtWanF+qlPAHx63AUYKizEAagxGQ4/H04Cg/jZsa1RhrArU5ZtSYOwM2FmRE2T EjOMIbv4q6qRiIC1Oa8ngqt+UK3dnx2o/TZtsfxh8XPvj9We5WIruZDdn1ed1ymXO2e+ joYdcItR1gvEYO/of1M8V5HbpBcoNV9gn/LnbZESDahpjzdUjPepHtd1r8IRFjGdQVY7 bCNpI4nV5H5Ve66q54VwesjIqmEU0qg2MNKlAv80e6xgNXPXff6xe/SNM6xaIRJimIYK BzdespNVIeT3hhEQpMAVQNSVwF892FbHm91KFem6UBtQZQcWye25HW9M1UQzZENBUnAk CmMA==
X-Gm-Message-State: AKwxytdx5Zmpla97XAiOUHwuInlHYr3zYfZj4bsZDDadWhOtkYHHFeKK pIJUf67v6tS3Bvd674EOL/nqVajSV5bZXYKdIhOHFA==
X-Google-Smtp-Source: AH8x227MdvAQkc5sgyxlPv8ONiJbqXbgZPrWR2goe3zdNEC9EYR6ao+wqpJrsRmH+jJiMrXPC5S2QoXtZDqCkeJ0RMw=
X-Received: by 10.25.190.203 with SMTP id o194mr2640244lff.120.1516638433271; Mon, 22 Jan 2018 08:27:13 -0800 (PST)
MIME-Version: 1.0
Received: by 10.25.143.6 with HTTP; Mon, 22 Jan 2018 08:27:12 -0800 (PST)
In-Reply-To: <871sihnbvx.fsf@nic.cz>
References: <923-5a4b4280-29-4f262000@198821908> <871sihnbvx.fsf@nic.cz>
From: Andy Bierman <andy@yumaworks.com>
Date: Mon, 22 Jan 2018 08:27:12 -0800
Message-ID: <CABCOCHTP1Bf+6sHqjifnPS_iZwjoY0wK9jTXRgp3xnNww-Bahg@mail.gmail.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Cc: Michal Vaško <mvasko@cesnet.cz>, Martin Bjorklund <mbj@tail-f.com>, Mahesh Jethanandani <mjethanandani@gmail.com>, YANG Doctors <yang-doctors@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c1a185e117a2405635fe7f5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/-XyOQzXj1hJYKgfx2S0fXoTpIfU>
Subject: Re: [yang-doctors] Fwd: Re: Issue with ietf-dslite@2017-11-15.yang and yangdump-pro
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Email list of the yang-doctors directorate <yang-doctors.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-doctors/>
List-Post: <mailto:yang-doctors@ietf.org>
List-Help: <mailto:yang-doctors-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Jan 2018 16:27:20 -0000
On Mon, Jan 22, 2018 at 7:36 AM, Ladislav Lhotka <lhotka@nic.cz> wrote: > Michal Vaško <mvasko@cesnet.cz> writes: > > > Hello everyone, > > > > we would like to clarify a few things from this discussion. We are > > displaying some warnings in case of some almost-certainly invalid > > XPath expressions so we were wondering if it makes sense to add > > another if we detect an equality comparison of an identityref and an > > identity name without the use of derived-from(-or-self)() functions. > > Certainly for YANG 1.1 modules. > > > > > Another issue, "local module" has no formal definition as was > > mentioned. One can infer it is the module where the statement in > > question is defined but a definition would be appreciated. The same > > problem is with the term "current module" which it seems can be used > > interchangeably. Lastly, "current node" has no definition either and > > so we assumed it to be the node returned by the function current(). > > As I already proposed, it would be better to declare the result of such > comparisons as undefined. > > Declaring policy based on undefined terms seems like a bad idea. We have customers who have used "var = 'identity'" hundreds of times already in their YANG modules. Not a chance that I am going to tell them to change the YANG or have the YANG compiler start rejecting this most intuitive and common construct. Lada > > Andy > > > > Kind regards, > > Michal > > > > On Monday, December 25, 2017 20:14 CET, Andy Bierman <andy@yumaworks.com> > wrote: > > > >> On Mon, Dec 25, 2017 at 10:53 AM, Ladislav Lhotka <lhotka@nic.cz> > wrote: > >> > >> > On Sun, 2017-12-24 at 18:54 -0300, Mahesh Jethanandani wrote: > >> > > > On Dec 23, 2017, at 10:49 AM, Martin Bjorklund <mbj@tail-f.com> > wrote: > >> > > > > >> > > > Ladislav Lhotka <lhotka@nic.cz> wrote: > >> > > > > > On Sat, 2017-12-23 at 13:01 +0100, Martin Bjorklund wrote: > >> > > > > > Andy Bierman <andy@yumaworks.com> wrote: > >> > > > > > > > On Sat, Dec 23, 2017 at 2:21 AM, Martin Bjorklund < > >> > mbj@tail-f.com> > >> > > > > > > > wrote: > >> > > > > > > > > >> > > > > > > > Hi, > >> > > > > > > > > >> > > > > > > > See section 9.10.3 in RFC 7950: > >> > > > > > > > > >> > > > > > > > The string value of a node of type "identityref" in a > "must" > >> > or > >> > > > > > > > "when" XPath expression is the referred identity's > qualified > >> > name > >> > > > > > > > with the prefix present. > >> > > > > > > > > >> > > > > > > > and re. the prefix: > >> > > > > > > > > >> > > > > > > > If the referred identity is defined in an > >> > > > > > > > imported module, the prefix in the string value is the > prefix > >> > > > > > > > defined > >> > > > > > > > in the corresponding "import" statement. Otherwise, the > >> > prefix in > >> > > > > > > > the string value is the prefix for the current module. > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > I most cases you should consider using > derived-from-or-self > >> > instead > >> > > > > > > > of > >> > > > > > > > equality test for identiyrefs. > >> > > > > > > > >> > > > > > > So what is "the current module"? > >> > > > > > > What is the resolution of 'X'? Is it foo:X or bar:X? > >> > > > > > > >> > > > > > foo:X > >> > > > > > >> > > > > No, the resolution of 'X' is 'X' > >> > > > > >> > > > Yes! Sorry, I misread the question. I though the question was > what > >> > > > prefix should be used. > >> > > > >> > > The question started with a 'when' statement (which I understand > should > >> > be > >> > > changed to 'derived-from') using a identity name that is defined in > the > >> > other > >> > > (bar) module. Should the 'derived-from' statement reference the > identity > >> > using > >> > > the prefix 'b:X' or just 'X', using Andy's example? > >> > > >> > Both are possible in Andy's example, the former refers to the > identity "X" > >> > defined in module "bar", the latter refers to the identity "X" > defined in > >> > the > >> > local module ("foo"). > >> > > >> > > >> I see the term "local module" used 11 times in RFC 7950, but it is not > >> defined anywhere. > >> IMO the only intuitive solution is that all scoped names are resolved in > >> the same module, > >> which is the module defining the actual statements. Is that the local > >> module? > >> > >> > >> Lada > >> > > >> > >> > >> Andy > >> > >> > >> > > >> > > > >> > > > > >> > > > > >> > > > /martin > >> > > > > >> > > > > >> > > > > because it is an XPath 1.0 string and XPath > >> > > > > knows nothing about YANG identities. Because of the rule of sec. > >> > 9.10.3, > >> > > > > the > >> > > > > equality expression is always false. > >> > > > > > >> > > > > That's why we introduced the new XPath functions derived-from() > and > >> > > > > derived- > >> > > > > from-or-self() in YANG 1.1. > >> > > > > > >> > > > > Lada > >> > > > > > >> > > > > > > >> > > > > > > >> > > > > > /martin > >> > > > > > > >> > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > > /martin > >> > > > > > > > >> > > > > > > Andy > >> > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > Andy Bierman <andy@yumaworks.com> wrote: > >> > > > > > > > > > On Fri, Dec 15, 2017 at 4:38 AM, Radek Krejčí < > >> > rkrejci@cesnet.cz > >> > > > > > > > > > > wrote: > >> > > > > > > > > > > >> > > > > > > > > > Hi, > >> > > > > > > > > > I'm adding Michal Vasko to cc, he knows better how > these > >> > things > >> > > > > > > > > > are > >> > > > > > > > > > checked in libyang. > >> > > > > > > > > > > >> > > > > > > > > > It seems to me that Andy refers the text which does > not > >> > apply > >> > > > > > > > > > here. > >> > > > > > > > > > The > >> > > > > > > > > > identity name was used as part of XPath expresion > >> > (when-stmt), > >> > > > > > > > > > so the > >> > > > > > > > > > definition of the context nodes for the when-stmt (RFC > >> > 7950, sec > >> > > > > > > > > >> > > > > > > > 7.21.5) > >> > > > > > > > > > and XPath context rules should apply here. Not the > rules > >> > for the > >> > > > > > > > > > identityref's base statement. In this case, the > when-stmt > >> > is in > >> > > > > > > > > >> > > > > > > > augment so > >> > > > > > > > > > the context node (which we also understand as the > current > >> > node > >> > > > > > > > > > in this > >> > > > > > > > > > case) is the augment's target node. And according to > XPath > >> > > > > > > > > > context > >> > > > > > > > > >> > > > > > > > rules > >> > > > > > > > > > (RFC 7950, sec 6.4.1): > >> > > > > > > > > > > >> > > > > > > > > > o Names without a namespace prefix belong to the same > >> > namespace > >> > > > > > > > > > as > >> > > > > > > > > >> > > > > > > > the > >> > > > > > > > > > identifier of the current node. > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > I cc:ed YANG doctors to get more opinions... > >> > > > > > > > > > >> > > > > > > > > The current node is the augment-stmt. > >> > > > > > > > > Note that it does not say context node, which is the > target > >> > of the > >> > > > > > > > > >> > > > > > > > augment. > >> > > > > > > > > I think prefixes (and default prefix) are resolved in > the > >> > module > >> > > > > > > > > >> > > > > > > > containing > >> > > > > > > > > the statement. > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > module foo { > >> > > > > > > > > > >> > > > > > > > > import bar { prefix b; } > >> > > > > > > > > identity X; > >> > > > > > > > > > >> > > > > > > > > augment b:/some-node { > >> > > > > > > > > leaf test { > >> > > > > > > > > type string; > >> > > > > > > > > when "/b:some-node/b:other-node = 'X'"; > >> > > > > > > > > } > >> > > > > > > > > } > >> > > > > > > > > } > >> > > > > > > > > > >> > > > > > > > > module bar { > >> > > > > > > > > > >> > > > > > > > > identity W; > >> > > > > > > > > identity X { base W; } > >> > > > > > > > > container some-node { > >> > > > > > > > > leaf other-node { > >> > > > > > > > > type identityref { base W; } > >> > > > > > > > > } > >> > > > > > > > > } > >> > > > > > > > > } > >> > > > > > > > > > >> > > > > > > > > Q) Does other-node = 'X' resolve to foo:X or bar:X? > IMO: > >> > foo:X > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > Andy > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > In this particular case, the augment node with the > >> > when-stmt > >> > > > > > > > > > augments > >> > > > > > > > > >> > > > > > > > the > >> > > > > > > > > > same module which defines napt44, so they are in the > >> > correct > >> > > > > > > > > > namespace > >> > > > > > > > > >> > > > > > > > and > >> > > > > > > > > > the identity name can be used without the prefix. So > it > >> > should > >> > > > > > > > > > be > >> > > > > > > > > > fine, > >> > > > > > > > > > while I believe that using prefix in the cases of > >> > identities is > >> > > > > > > > > > always > >> > > > > > > > > > better approach. From the first sight (it may be > >> > challenging for > >> > > > > > > > > > human > >> > > > > > > > > >> > > > > > > > to > >> > > > > > > > > > correctly resolve the context/current node in some > cases), > >> > I > >> > > > > > > > > > would > >> > > > > > > > > > also > >> > > > > > > > > > expect prefix. > >> > > > > > > > > > > >> > > > > > > > > > I propose to keep the change in the draft (added nat > >> > prefix), > >> > > > > > > > > > since it > >> > > > > > > > > > improves readability of the expression. But I don't > think > >> > that > >> > > > > > > > > > it is > >> > > > > > > > > > an > >> > > > > > > > > > error to ommit the prefix. > >> > > > > > > > > > > >> > > > > > > > > > Regards, > >> > > > > > > > > > Radek > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > Dne 19.11.2017 v 20:42 Benoit Claise napsal(a): > >> > > > > > > > > > > Hi Radek, > >> > > > > > > > > > > > >> > > > > > > > > > > Here is a bug report for you. > >> > > > > > > > > > > > >> > > > > > > > > > > Regards, Benoit > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > -------- Forwarded Message -------- > >> > > > > > > > > > > Subject: Re: Issue with > ietf-dslite@2017-11-15.yang > >> > and > >> > > > > > > > > > > >> > > > > > > > > > yangdump-pro > >> > > > > > > > > > > Date: Sat, 18 Nov 2017 13:22:58 -0800 > >> > > > > > > > > > > From: Andy Bierman <andy@yumaworks.com> > >> > > > > > > > > > > To: Benoit Claise <bclaise@cisco.com> > >> > > > > > > > > > > CC: draft-ietf-softwire-dslite-yang@ietf.org < > >> > > > > > > > > > > >> > > > > > > > > > draft-ietf-softwire-dslite-yang@ietf.org>, Mahesh > >> > Jethanandani < > >> > > > > > > > > > mjethanandani@gmail.com> > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > Hi, > >> > > > > > > > > > > > >> > > > > > > > > > > yangdump-pro is correct. Every other compiler missed > >> > it... > >> > > > > > > > > > > > >> > > > > > > > > > > 9.10.2. The identityref's "base" Statement > >> > > > > > > > > > > > >> > > > > > > > > > > The "base" statement, which is a substatement to > the > >> > "type" > >> > > > > > > > > > > statement, MUST be present at least once if the > type is > >> > > > > > > > > > > "identityref". The argument is the name of an > >> > identity, as > >> > > > > > > > > >> > > > > > > > defined > >> > > > > > > > > > > by an "identity" statement. If a prefix is > present on > >> > the > >> > > > > > > > > >> > > > > > > > identity > >> > > > > > > > > > > name, it refers to an identity defined in the > module > >> > that > >> > > > > > > > > > > was > >> > > > > > > > > > > imported with that prefix. *Otherwise, an > identity > >> > with the > >> > > > > > > > > >> > > > > > > > matching > >> > > > > > > > > > name MUST be defined in the current module or an > included > >> > > > > > > > > > submodule.* > >> > > > > > > > > > > > >> > > > > > > > > > > Using ietf-dslite@2017-11-15.yang and > >> > ietf-nat@2017-11-15.yang > >> > > > > > > > > > > > >> > > > > > > > > > > When I change 'natp44' to 'nat:natp44' in both > >> > when-stmts: > >> > > > > > > > > > > > >> > > > > > > > > > > andy@andy-homedev:~/Desktop/FD1289/IETF$ > yangdump-pro > >> > > > > > > > > > > >> > > > > > > > > > ietf-dslite@2017-11-15.yang modpath=. > >> > > > > > > > > > > > >> > > > > > > > > > > *** /home/andy/Desktop/FD1289/ > >> > IETF/ietf-dslite@2017-11-15.yang > >> > > > > > > > > > > *** 0 Errors, 0 Warnings > >> > > > > > > > > > > > >> > > > > > > > > > > andy@andy-homedev:~/Desktop/FD1289/IETF$ > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > Andy > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > On Sat, Nov 18, 2017 at 11:07 AM, Benoit Claise > >> > <bclaise@cisco > >> > > > > > > > > > > .com > >> > > > > > > > > > > >> > > > > > > > > > <mailto:bclaise@cisco.com>> wrote: > >> > > > > > > > > > > > >> > > > > > > > > > > Hi Andy, > >> > > > > > > > > > > > >> > > > > > > > > > > Can you please have a look at > >> > ietf-dslite@2017-11-15.yang > >> > > > > > > > > > > at > >> > > > > > > > > > > >> > > > > > > > > > http://www.claise.be/IETFYANGPageCompilation.html < > >> > > > > > > > > >> > > > > > > > http://www.claise.be/ > >> > > > > > > > > > IETFYANGPageCompilation.html> . > >> > > > > > > > > > > yangdump-pro reports a new error, while the other > >> > > > > > > > > > > validators are > >> > > > > > > > > > > >> > > > > > > > > > fine. > >> > > > > > > > > > > > >> > > > > > > > > > > Copying Mahesh, as YANG doctor. > >> > > > > > > > > > > > >> > > > > > > > > > > Regards, Benoit > >> > > > > > > >> > > > > > _______________________________________________ > >> > > > > > yang-doctors mailing list > >> > > > > > yang-doctors@ietf.org > >> > > > > > https://www.ietf.org/mailman/listinfo/yang-doctors > >> > > > > > >> > > > > -- > >> > > > > Ladislav Lhotka > >> > > > > Head, CZ.NIC Labs > >> > > > > PGP Key ID: 0xB8F92B08A9F76C67 > >> > > > > >> > > > _______________________________________________ > >> > > > yang-doctors mailing list > >> > > > yang-doctors@ietf.org > >> > > > https://www.ietf.org/mailman/listinfo/yang-doctors > >> > -- > >> > Ladislav Lhotka > >> > Head, CZ.NIC Labs > >> > PGP Key ID: 0xB8F92B08A9F76C67 > >> > > >> > _______________________________________________ > >> > yang-doctors mailing list > >> > yang-doctors@ietf.org > >> > https://www.ietf.org/mailman/listinfo/yang-doctors > >> > > > > > > > > > -- > Ladislav Lhotka > Head, CZ.NIC Labs > PGP Key ID: 0xB8F92B08A9F76C67 >
- Re: [yang-doctors] Fwd: Re: Issue with ietf-dslit… Andy Bierman
- Re: [yang-doctors] Fwd: Re: Issue with ietf-dslit… Martin Bjorklund
- Re: [yang-doctors] Fwd: Re: Issue with ietf-dslit… Andy Bierman
- Re: [yang-doctors] Fwd: Re: Issue with ietf-dslit… Martin Bjorklund
- Re: [yang-doctors] Fwd: Re: Issue with ietf-dslit… Ladislav Lhotka
- Re: [yang-doctors] Fwd: Re: Issue with ietf-dslit… Martin Bjorklund
- Re: [yang-doctors] Fwd: Re: Issue with ietf-dslit… Mahesh Jethanandani
- Re: [yang-doctors] Fwd: Re: Issue with ietf-dslit… Ladislav Lhotka
- Re: [yang-doctors] Fwd: Re: Issue with ietf-dslit… Andy Bierman
- Re: [yang-doctors] ?==?utf-8?q? ?==?utf-8?q? Fwd:… Michal Vaško
- Re: [yang-doctors] Fwd: Re: Issue with ietf-dslit… Ladislav Lhotka
- Re: [yang-doctors] Fwd: Re: Issue with ietf-dslit… Andy Bierman