Re: [netmod] [Technical Errata Reported] RFC7950 (5157)

Martin Bjorklund <mbj@tail-f.com> Mon, 23 October 2017 11:37 UTC

Return-Path: <mbj@tail-f.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 A0C8A13F3C3 for <netmod@ietfa.amsl.com>; Mon, 23 Oct 2017 04:37:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 z0zqEmSqbWig for <netmod@ietfa.amsl.com>; Mon, 23 Oct 2017 04:37:26 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 5FA2F138A98 for <netmod@ietf.org>; Mon, 23 Oct 2017 04:37:26 -0700 (PDT)
Received: from localhost (unknown [173.38.220.41]) by mail.tail-f.com (Postfix) with ESMTPSA id 726BC1AE012C; Mon, 23 Oct 2017 13:37:25 +0200 (CEST)
Date: Mon, 23 Oct 2017 13:35:59 +0200 (CEST)
Message-Id: <20171023.133559.470792369996870413.mbj@tail-f.com>
To: vladimir@transpacket.com
Cc: andy@yumaworks.com, netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <6d43c6fb-ae11-df39-0dd4-766f7b25ac82@transpacket.com>
References: <67172aec-686f-90ba-0fc8-1ce2bc3dcdb4@cisco.com> <CABCOCHRP2ooSG1BGWehD8BsCDF-pX97Q++=WftOxGvf=S57GAQ@mail.gmail.com> <6d43c6fb-ae11-df39-0dd4-766f7b25ac82@transpacket.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/SehsDHTYdQKmRzVH6H2B3P3Zh1c>
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: Mon, 23 Oct 2017 11:37:29 -0000

Vladimir Vassilev <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;
>       }
>     }
> 
> 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").

> 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>> 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>
> >
> >         --------------------------------------
> >         Type: Technical
> >         Reported by: Andy Bierman <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
> > https://www.ietf.org/mailman/listinfo/netmod
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>