Re: [yang-doctors] Fwd: Re: Issue with ietf-dslite@2017-11-15.yang and yangdump-pro
Ladislav Lhotka <lhotka@nic.cz> Mon, 22 January 2018 15:37 UTC
Return-Path: <lhotka@nic.cz>
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 711D812426E for <yang-doctors@ietfa.amsl.com>; Mon, 22 Jan 2018 07:37:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 8Tn4aZbcQjT5 for <yang-doctors@ietfa.amsl.com>; Mon, 22 Jan 2018 07:36:58 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id AB222124207 for <yang-doctors@ietf.org>; Mon, 22 Jan 2018 07:36:57 -0800 (PST)
Received: by trail.lhotka.name (Postfix, from userid 109) id 9F9CC1820415; Mon, 22 Jan 2018 16:36:43 +0100 (CET)
Received: from localhost (unknown [195.113.220.121]) by trail.lhotka.name (Postfix) with ESMTPSA id 2C964182040D; Mon, 22 Jan 2018 16:36:38 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Michal Vaško <mvasko@cesnet.cz>, Andy Bierman <andy@yumaworks.com>
Cc: Martin Bjorklund <mbj@tail-f.com>, Mahesh Jethanandani <mjethanandani@gmail.com>, YANG Doctors <yang-doctors@ietf.org>
In-Reply-To: <923-5a4b4280-29-4f262000@198821908>
References: <923-5a4b4280-29-4f262000@198821908>
Date: Mon, 22 Jan 2018 16:36:50 +0100
Message-ID: <871sihnbvx.fsf@nic.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/WFYFMdv74MQ98TF8lkSeKSIIiR8>
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 15:37:01 -0000
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. Lada > > 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