Re: [yang-doctors] Fwd: Re: Issue with ietf-dslite@2017-11-15.yang and yangdump-pro

Andy Bierman <andy@yumaworks.com> Mon, 25 December 2017 19:14 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 3B7FE1243FE for <yang-doctors@ietfa.amsl.com>; Mon, 25 Dec 2017 11:14:14 -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 GBLZ400Tvld8 for <yang-doctors@ietfa.amsl.com>; Mon, 25 Dec 2017 11:14:11 -0800 (PST)
Received: from mail-lf0-x229.google.com (mail-lf0-x229.google.com [IPv6:2a00:1450:4010:c07::229]) (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 AB2A112426E for <yang-doctors@ietf.org>; Mon, 25 Dec 2017 11:14:10 -0800 (PST)
Received: by mail-lf0-x229.google.com with SMTP id a12so1776341lfe.13 for <yang-doctors@ietf.org>; Mon, 25 Dec 2017 11:14:10 -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=6P6TKAKDwIi/Yx7L3Vx0hM/wxUdlhGc3BDYBWan/X9g=; b=lbq8ZM/Cq3nwCCnMiP/03jxzGvbIN8DOPkDisHFJnxDAVbHlk7IvoEOwcIId1Nahly bWrDTbUR+W50Nkkhn37z1dX2Rikm3ZA9JTfnyT38cyMaXSI08/pZ5oNyAGhXedaIbC3s E1RaWM/uTLvctQ1Wyu+3mOq5ZaZpq4SBMWjR5h0E25BCTUAHrTQ7RCA9APDTNcvDqS2d VHLP94cpR2vngpcbpFaDhbFjZN94dtTiwON2nScnOZeHp3013ksNgq1vCAPonf6oNxzN hOeuK4t4bc65CmOKozflqEpMzXGtlF5mEq9q17fKPlqY+Ho505ruwPeGlvajOaxm2sdK heTA==
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=6P6TKAKDwIi/Yx7L3Vx0hM/wxUdlhGc3BDYBWan/X9g=; b=IC2k1GHo3PqmAvv+onveouMGStq8dUFjtRJeJLWOhvjCFJlCFn2zpBOdv6UZ5J9L7o pUNWu/Z8LGMhar/bfwQK2yXAqLqtcnhV4vwekfqJlUsNav6ACR0NeSq2JS4/x9yiBB0d ayds5vmdkIvJQgZ1T487Esmyo4sfzZMeBD8GqDc0AxSbZDXLKoktqqYQl/D98lgwwkrp vtkrlilidpH0dGYitoqm+jU3qpS8K6gVJMGpJxTCJnpt1GTnqfR+P2SUdUcRro9BDPmC Os9idlp9uSxuPqLpUnUzpBhPnvkM2n13DASECsvKGAVEOxWXpd6gG6WbD27UlYGyVLmu wGew==
X-Gm-Message-State: AKGB3mJbD86kI0BgT0DuaBUoqOFDrRetQOSFrcCjSrypaSVY5Lp1moYx I3rmBj0O+J9fEpQtoiHJOrlmZ21+mOOAn5TH7vAwsw==
X-Google-Smtp-Source: ACJfBovobyiNQviBVrdgxRfrUnCUIsMB/nRCYpIRdzJXdLQNOWf+hcGzVeQoj7qF+1xL/WOxJpK3XKYlTK0IHm2E60k=
X-Received: by 10.46.93.27 with SMTP id r27mr15102478ljb.96.1514229248646; Mon, 25 Dec 2017 11:14:08 -0800 (PST)
MIME-Version: 1.0
Received: by 10.25.95.22 with HTTP; Mon, 25 Dec 2017 11:14:07 -0800 (PST)
In-Reply-To: <1514227992.5833.3.camel@nic.cz>
References: <CABCOCHQ7GXs9UsiaP=J3TaQqe9ZPP_C-1aLT1Mcep6SyY-X_wQ@mail.gmail.com> <20171223.130153.578331858878241339.mbj@tail-f.com> <1514034829.13134.15.camel@nic.cz> <20171223.144904.1579202476431827301.mbj@tail-f.com> <BDD18302-575A-4E21-BF55-223DBBAFE754@gmail.com> <1514227992.5833.3.camel@nic.cz>
From: Andy Bierman <andy@yumaworks.com>
Date: Mon, 25 Dec 2017 11:14:07 -0800
Message-ID: <CABCOCHTtwwjw_uAPLCrnn7Cj+NVVCNjyuNUYTjg_qTXidtCmSw@mail.gmail.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Cc: Mahesh Jethanandani <mjethanandani@gmail.com>, Martin Bjorklund <mbj@tail-f.com>, YANG Doctors <yang-doctors@ietf.org>, Michal Vaško <mvasko@cesnet.cz>
Content-Type: multipart/alternative; boundary="001a114d6042797f8305612ef8fc"
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/qsne6b7ARfDJLV4zPakvCwYTIRY>
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, 25 Dec 2017 19:14:14 -0000

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
>