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

Vladimir Vassilev <vladimir@transpacket.com> Mon, 23 October 2017 11:58 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 8266913F3C9 for <netmod@ietfa.amsl.com>; Mon, 23 Oct 2017 04:58:03 -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 PV_NB1d-R7nT for <netmod@ietfa.amsl.com>; Mon, 23 Oct 2017 04:57:58 -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 A557D13F3CA for <netmod@ietf.org>; Mon, 23 Oct 2017 04:57:57 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.transpacket.com (Postfix) with ESMTP id ABFE41405A86; Mon, 23 Oct 2017 13:57:54 +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 IkahAwcqP9m5; Mon, 23 Oct 2017 13:57:54 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by mail.transpacket.com (Postfix) with ESMTP id 7321D1405A88; Mon, 23 Oct 2017 13:57:54 +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 8iW35PGw-ahP; Mon, 23 Oct 2017 13:57:54 +0200 (CEST)
Received: from [192.168.209.122] (s1853520235.blix.com [185.35.202.35]) by mail.transpacket.com (Postfix) with ESMTPSA id 3D5B91405A84; Mon, 23 Oct 2017 13:57:54 +0200 (CEST)
To: Martin Bjorklund <mbj@tail-f.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>
Cc: andy@yumaworks.com, netmod@ietf.org
From: Vladimir Vassilev <vladimir@transpacket.com>
Message-ID: <ca6baac5-b30a-de80-24e0-8463f01ec67f@transpacket.com>
Date: Mon, 23 Oct 2017 13:57:53 +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: <20171023.133559.470792369996870413.mbj@tail-f.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/IORuMq_SGoq_bJLpJT3lkGCMYEc>
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:58:03 -0000

On 10/23/2017 01:35 PM, Martin Bjorklund wrote:

> 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").
This is an option but then the e.g. xpath2instid() function 
implementations will need schema support.

Vladimir
>
>> 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
>>