Re: [netmod] [Technical Errata Reported] RFC7950 (5157)
Vladimir Vassilev <vladimir@transpacket.com> Wed, 25 October 2017 06:47 UTC
Return-Path: <vladimir@transpacket.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 3ABA913AB12 for <netmod@ietfa.amsl.com>; Tue, 24 Oct 2017 23:47:23 -0700 (PDT)
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, HTML_MESSAGE=0.001, SPF_PASS=-0.001] 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 VRZPJh1U8nuV for <netmod@ietfa.amsl.com>; Tue, 24 Oct 2017 23:47:19 -0700 (PDT)
Received: from mail.transpacket.com (s91205186171.blix.com [91.205.186.171]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 553B6139436 for <netmod@ietf.org>; Tue, 24 Oct 2017 23:47:19 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.transpacket.com (Postfix) with ESMTP id 3862914043FC; Wed, 25 Oct 2017 08:47:17 +0200 (CEST)
Received: from mail.transpacket.com ([127.0.0.1]) by localhost (mail.transpacket.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id lthts3hvP1rS; Wed, 25 Oct 2017 08:47:17 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by mail.transpacket.com (Postfix) with ESMTP id 0E5BF14043F5; Wed, 25 Oct 2017 08:47:17 +0200 (CEST)
Received: from mail.transpacket.com ([127.0.0.1]) by localhost (mail.transpacket.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Io6avS-mLktS; Wed, 25 Oct 2017 08:47:16 +0200 (CEST)
Received: from [192.168.209.122] (s1853520235.blix.com [185.35.202.35]) by mail.transpacket.com (Postfix) with ESMTPSA id DA26614032DC; Wed, 25 Oct 2017 08:47:16 +0200 (CEST)
To: Andy Bierman <andy@yumaworks.com>
References: <67172aec-686f-90ba-0fc8-1ce2bc3dcdb4@cisco.com> <CABCOCHRP2ooSG1BGWehD8BsCDF-pX97Q++=WftOxGvf=S57GAQ@mail.gmail.com> <6d43c6fb-ae11-df39-0dd4-766f7b25ac82@transpacket.com> <20171023.133559.470792369996870413.mbj@tail-f.com> <ca6baac5-b30a-de80-24e0-8463f01ec67f@transpacket.com> <CABCOCHRv-1JCq9GSP1KMCnm4fOi4TS_M9hUpNRt0Kn-PLdguww@mail.gmail.com> <f3e87c29-2a21-4ace-d0e2-4f635b7aa13f@transpacket.com> <CABCOCHRu0bOE+Ftay3PG2pr6e+WMLgup350HusHQ42QH8U=1vA@mail.gmail.com>
Cc: "netmod@ietf.org" <netmod@ietf.org>
From: Vladimir Vassilev <vladimir@transpacket.com>
Message-ID: <b208bab5-623b-4b43-a106-1185cbe30460@transpacket.com>
Date: Wed, 25 Oct 2017 08:47:15 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.6.0
MIME-Version: 1.0
In-Reply-To: <CABCOCHRu0bOE+Ftay3PG2pr6e+WMLgup350HusHQ42QH8U=1vA@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------221BBF821BE966444964574B"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/fuKrivl_Qgb6jK-mCLD-lkkkvok>
Subject: Re: [netmod] [Technical Errata Reported] RFC7950 (5157)
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: Wed, 25 Oct 2017 06:47:23 -0000
On 10/24/2017 07:06 PM, Andy Bierman wrote: > > > On Tue, Oct 24, 2017 at 5:27 AM, Vladimir Vassilev > <vladimir@transpacket.com <mailto:vladimir@transpacket.com>> wrote: > > On 10/24/2017 03:42 AM, Andy Bierman wrote: > > > > On Mon, Oct 23, 2017 at 4:57 AM, Vladimir Vassilev > <vladimir@transpacket.com <mailto:vladimir@transpacket.com> > <mailto:vladimir@transpacket.com > <mailto:vladimir@transpacket.com>>> wrote: > > On 10/23/2017 01:35 PM, Martin Bjorklund wrote: > > Vladimir Vassilev <vladimir@transpacket.com > <mailto:vladimir@transpacket.com> > <mailto:vladimir@transpacket.com > <mailto:vladimir@transpacket.com>>> wrote: > > Hello, > > I would like to use the occasion of this Errata > report to > point out > some additional issues with the > instance-identifier type > definition. > > IMO the instance-identifier built-in type has 2 > additional > problems > that can be addressed with alternative and > significantly > more radical > errata or fixed in a new version of YANG.: > > Problem 1: The obvious limitation inherited from > Xpath 1.0 > - inability > to escape single or double quote characters. In Xpath > world this > limitation is worked around by use of concat() > which is > not available > in the YANG 1.1 instance-identifier definition. 2 > examples > of this > limitation: > > 1. It is impossible to create value of type > instance-identifier > referencing nodes in lists with key string values > containing both a > single and a double quote characters e.g. > ...<interface><name>"It's > valid string!"</name></interface>. > > 2. Another example of the same problem would be a > leaf of type > instance-identifier referencing another leaf of type > instance-identifier. With 2 references it works > provided > one is > encoded with single quotes and the other with > double but it is > impossible to create third e.g. > > YANG: > > list id-list { > key "id"; > > leaf id { > type instance-identifier; > } > } > > > > > Although the instance-identifier is problematic, it is rarely > used at all, > let alone using it as a list key. > > It is used as a key in ietf-alarms /alarms/alarm-list/alarm. > > > The XPath mixed-quotes problem is well-known, and the suggested > solution seems to be use the "concat" function > > /foo/bar[name=concat("It's a", ' "valiid" string')] > > Not very user friendly, is it? > > I think people naming their interfaces "It's a valid string!" can > take it. Prettier escaping solutions are available e.g. C string > but it will require more work then a line in the next YANG version > RFC. IMO solution is needed either concat or an alternative one. > > Practical reason: YANG 1.1 can not create instance-identifier to > the alarm /alarms/alarm-list/alarm[... > resource="/interfaces/interface[name='eth0']"]. And this is not > the "That's a valid string!" named interface. The "That's a valid > string!" interface alarms can not be reported as a valid > ietf-alarms instance-identifier based resource alarm at all. > > > > > Actually the XPath designers made a reasonable trade-off by using > concat as the solution to > a problem that rarely happens. It is up to the IETF to define YANG > in a way that does > not ignore the XPath solutions. Yes. How about some proper rules mandating th use of quotes and concat like: 1. Only allow use of double quotes when there is single quote present. 2. Only use concat when there is both single and double quotes present to split the string into 1 char single quote strings and the rest. Then /foo/bar[name=concat('It',"'",'s a valid string!"')] is the only possible canonic representation for all implementations and the solution is solving the rare problem without reinventing the wheel. Vladimir > > > Andy > > > > > > Data: > > * /top/id-list[id="/top/list[idx='4']"] > > * > /top/id-list[id="/top/id-list[idx='/top/list[idx=4]'"] > <assuming the > * proposed errata is also in effect> > > * <next reference not possible with YANG 1.1> > > Problem 2: The instance-identifier type lacks > canonical > form (which > makes it the only data type with implementation > dependent > representation at the data level ... think of the > integer > types > allowing optional spaces between the digits). This > is in > fact the only > built-in data type that allows the server > implementation > to change the > configuration data replacing double quotes with > single or > the other > way around. Inserting white spaces where you did > not have > them when > the configuration was submitted. You can not > simply read a > configuration and use fast data comparison without > schema > support just > because of this type. This is useless flexibility for > simple data > type. > > And this can be fixed if: > > 1. white spaces in instance-identifiers are prohibited > > > 2. list key predicates are required in > alphabetical order > > Or perhaps use the order the keys are defined in the data > model (the > "keys" statement"). > > This is an option but then the e.g. xpath2instid() function > implementations will need schema support. > > > > All the YANG tools I have seen generate the predicates in YANG > key order. > > Yes. > > If Xpath came with a canonical form definition (prohibiting > spaces, redundant duplication of namespace prefixes in children, > order of predicates, canonical quotation rule, and some > flexibility as of the node prefix semantics) we would not need to > have this discussion. Seems no other modeling language of > hierarchical data has reusable instance-identifier datatype with > the necessary properties and I can see this as something that can > go in separate RFC specifying generic data type making canonic > definition from Xpath that YANG can reuse. In that case the > alphabetic order makes sense moving some constraints into the > generic definition of the type one can validate without the > context schema but it is not of significant importance. > > The issue of canonical instance-identifier has been discussed > many times, > and it is not possible to require the usage of specific > prefixes in XML. > (Note that Lada fixed this for JSON in RFC 7951) > > Yes. > > > Only the string + expanded names can be properly compared in > XML, not the literal string > representing the XPath expression. > > Yes. > > I do not see the need of major rework just making the Xpath subset > rules stricter with canonical requirement and either allowing > concat() (also with canonic rule producing predictable result e.g. > to be used only for escaping single quotes and prohibiting double > quotes in predicates otherwise). Even with RFC7951 prefix rules > added in the instance-identifier can still be a valid Xpath subset > requiring trivial prefix replacements so that it can be used with > non-YANG aware XML tools keeping that option open. > > Vladimir > > > > Vladimir > > > > Andy > > > 3. strict quotation convention with escape option is > added. (only > 3. contradicts the sec. 9.13 ".. > instance-identifier is a > subset of > the XPath ..") > > I would like to change one more thing - I think it is > unfortunate that > the lexical representation depends on the lexical context; > specifically that prefixes declared in the XML instance > document is > used. This applies also to identityref. YANG 2.0 > should use > the same > encoding as JSON does for these datatypes. > > > > /martin > > > > Vladimir > > On 10/21/2017 08:16 PM, Andy Bierman wrote: > > > On Sat, Oct 21, 2017 at 12:28 AM, Benoit Claise > <bclaise@cisco.com <mailto:bclaise@cisco.com> > <mailto:bclaise@cisco.com <mailto:bclaise@cisco.com>> > <mailto:bclaise@cisco.com > <mailto:bclaise@cisco.com> <mailto:bclaise@cisco.com > <mailto:bclaise@cisco.com>>>> > wrote: > > Dear all, > > Shall I validate this one? > > > > To add more context, this relates to the the > RESTCONF > JSON vs. XML > discussions in the NETCONF WG. > > leaf broken { > type union { > type int32; > type string; > } > } > > If all values of key leaf "broken" are sent as > strings > in an > instance-identifier, > then the int32 value may not match in all > implementations, instead of > the string. > Allowing numbers as literals in addition to quoted > strings allows the > sender > to be specific, and all implementations to be > consistent. > > > Regards, Benoit > > > > Andy > > The following errata report has been > submitted for RFC7950, > "The YANG 1.1 Data Modeling Language". > > -------------------------------------- > You may review the report below and at: > http://www.rfc-editor.org/errata/eid5157 > <http://www.rfc-editor.org/errata/eid5157> > <http://www.rfc-editor.org/errata/eid5157 > <http://www.rfc-editor.org/errata/eid5157>> > > <http://www.rfc-editor.org/errata/eid5157 > <http://www.rfc-editor.org/errata/eid5157> > <http://www.rfc-editor.org/errata/eid5157 > <http://www.rfc-editor.org/errata/eid5157>>> > > -------------------------------------- > Type: Technical > Reported by: Andy Bierman > <andy@yumaworks.com <mailto:andy@yumaworks.com> > <mailto:andy@yumaworks.com > <mailto:andy@yumaworks.com>> > <mailto:andy@yumaworks.com > <mailto:andy@yumaworks.com> > <mailto:andy@yumaworks.com > <mailto:andy@yumaworks.com>>>> > > Section: 14 > > Original Text > ------------- > key-predicate-expr = > node-identifier *WSP > "=" *WSP > quoted-string > > Corrected Text > -------------- > key-predicate-expr = > node-identifier *WSP > "=" *WSP > (quoted-string / integer-value / > decimal-value) > > Notes > ----- > An instance identifier is forced to > specify > every key value to > be a string > even though the YANG key leaf type > could be a > numeric type. > XPath does not require a quoted > string here, > just YANG. > > Old: /top/list[idx="4"] > New: /top/list[idx=4] > > Instructions: > ------------- > This erratum is currently posted as > "Reported". If necessary, > please > use "Reply All" to discuss whether it > should > be verified or > rejected. When a decision is reached, the > verifying party > can log in to change the status and > edit the > report, if necessary. > > -------------------------------------- > RFC7950 (draft-ietf-netmod-rfc6020bis-14) > -------------------------------------- > Title : The YANG 1.1 Data > Modeling Language > Publication Date : August 2016 > Author(s) : M. Bjorklund, Ed. > Category : PROPOSED STANDARD > Source : NETCONF Data > Modeling > Language > Area : Operations and > Management > Stream : IETF > Verifying Party : IESG > . > > > > > > _______________________________________________ > netmod mailing list > netmod@ietf.org <mailto:netmod@ietf.org> > <mailto:netmod@ietf.org <mailto:netmod@ietf.org>> > https://www.ietf.org/mailman/listinfo/netmod > <https://www.ietf.org/mailman/listinfo/netmod> > <https://www.ietf.org/mailman/listinfo/netmod > <https://www.ietf.org/mailman/listinfo/netmod>> > > _______________________________________________ > netmod mailing list > netmod@ietf.org <mailto:netmod@ietf.org> > <mailto:netmod@ietf.org <mailto:netmod@ietf.org>> > https://www.ietf.org/mailman/listinfo/netmod > <https://www.ietf.org/mailman/listinfo/netmod> > <https://www.ietf.org/mailman/listinfo/netmod > <https://www.ietf.org/mailman/listinfo/netmod>> > > > > >
- [netmod] [Technical Errata Reported] RFC7950 (515… RFC Errata System
- Re: [netmod] [Technical Errata Reported] RFC7950 … Benoit Claise
- Re: [netmod] [Technical Errata Reported] RFC7950 … Andy Bierman
- Re: [netmod] [Technical Errata Reported] RFC7950 … Vladimir Vassilev
- Re: [netmod] [Technical Errata Reported] RFC7950 … Martin Bjorklund
- Re: [netmod] [Technical Errata Reported] RFC7950 … Martin Bjorklund
- Re: [netmod] [Technical Errata Reported] RFC7950 … Vladimir Vassilev
- Re: [netmod] [Technical Errata Reported] RFC7950 … Ladislav Lhotka
- Re: [netmod] [Technical Errata Reported] RFC7950 … Andy Bierman
- Re: [netmod] [Technical Errata Reported] RFC7950 … Martin Bjorklund
- Re: [netmod] [Technical Errata Reported] RFC7950 … Andy Bierman
- Re: [netmod] [Technical Errata Reported] RFC7950 … Andy Bierman
- Re: [netmod] [Technical Errata Reported] RFC7950 … Kent Watsen
- Re: [netmod] [Technical Errata Reported] RFC7950 … Andy Bierman
- Re: [netmod] [Technical Errata Reported] RFC7950 … Robert Wilton
- Re: [netmod] [Technical Errata Reported] RFC7950 … Jan Lindblad
- Re: [netmod] [Technical Errata Reported] RFC7950 … Ladislav Lhotka
- Re: [netmod] [Technical Errata Reported] RFC7950 … Robert Wilton
- Re: [netmod] [Technical Errata Reported] RFC7950 … Vladimir Vassilev
- Re: [netmod] [Technical Errata Reported] RFC7950 … Andy Bierman
- Re: [netmod] [Technical Errata Reported] RFC7950 … Vladimir Vassilev
- Re: [netmod] [Technical Errata Reported] RFC7950 … Andy Bierman
- Re: [netmod] [Technical Errata Reported] RFC7950 … Ladislav Lhotka