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
>