Re: [netmod] [Technical Errata Reported] RFC6020 (4911)

Benoit Claise <bclaise@cisco.com> Wed, 18 January 2017 14:37 UTC

Return-Path: <bclaise@cisco.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 AB2F2129463 for <netmod@ietfa.amsl.com>; Wed, 18 Jan 2017 06:37:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.72
X-Spam-Level:
X-Spam-Status: No, score=-17.72 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.199, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 9IgIkYzJbA-Q for <netmod@ietfa.amsl.com>; Wed, 18 Jan 2017 06:37:42 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0B114126FDC for <netmod@ietf.org>; Wed, 18 Jan 2017 06:37:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=10281; q=dns/txt; s=iport; t=1484750262; x=1485959862; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to; bh=xUonJj1H5tDZ7iMXkLAeVbCfO94cjuKc6sJxtpO9G2c=; b=QCWe6at9imAZ7DFmtiyhhrFaXcoByzk5bdCdoewA+CGbekLL+A/UIbnM pba7DPKEOnWFQti4tHs2pay/vGY30V//Y24ux9REwB9szcZn3jpJ1XsDo wpCbKxCCRXwwMIITxzoi+4Iz8He1kqb77P/+R5jdlXqA+pGhAFUkmpp9z c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AEAQC5fH9Y/xbLJq1DGhkBAQEBAQEBAQEBAQcBAQEBAYM5AQEBAQF+A4EGjVlykQ+QAYUrggsqhXgCgjcYAQIBAQEBAQEBYyiEagEFeRALGC5XBgEMBgIBARYBiGgOLbFCK4l7AQEBAQEBAQEBAQEBAQEBAQEBAQEBHYZLggWCaYE8gVCBMIVxBYh+EYdehEaGDokxiDGBd4g4hj6IHIJYh3sfOBCBBRIIFRWEcQ0PgWE9NQEThjKCOwEBAQ
X-IronPort-AV: E=Sophos;i="5.33,249,1477958400"; d="scan'208,217";a="649928565"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Jan 2017 14:37:40 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id v0IEbdis001677; Wed, 18 Jan 2017 14:37:39 GMT
To: Ladislav Lhotka <lhotka@nic.cz>, Martin Björklund <mbj@tail-f.com>
References: <20170118114858.62A63B80FFD@rfc-editor.org> <20170118.145532.995038902796253716.mbj@tail-f.com> <69B83F1A-1FBC-44E9-B499-054966616C11@nic.cz>
From: Benoit Claise <bclaise@cisco.com>
Message-ID: <c70e494c-521f-b294-8ca4-a0b0558d4493@cisco.com>
Date: Wed, 18 Jan 2017 15:37:41 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0
MIME-Version: 1.0
In-Reply-To: <69B83F1A-1FBC-44E9-B499-054966616C11@nic.cz>
Content-Type: multipart/alternative; boundary="------------C87398C3EE29712F654A787C"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/SxYHzeovg6bW2WRhoVN2dE0AA2s>
Cc: joel jaeggli <joelja@bogus.com>, netmod@ietf.org
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4911)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.17
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, 18 Jan 2017 14:37:45 -0000

Removing RFC Editor <rfc-editor@rfc-editor.org>

See in-line.
>> On 18 Jan 2017, at 14:55, Martin Bjorklund <mbj@tail-f.com> wrote:
>>
>> RFC Errata System <rfc-editor@rfc-editor.org> wrote:
>>> The following errata report has been submitted for RFC6020,
>>> "YANG - A Data Modeling Language for the Network Configuration
>>> Protocol (NETCONF)".
>>>
>>> --------------------------------------
>>> You may review the report below and at:
>>> http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4911
>>>
>>> --------------------------------------
>>> Type: Technical
>>> Reported by: Ladislav Lhotka <lhotka@nic.cz>
>>>
>>> Section: 6.1.3
>>>
>>> Original Text
>>> -------------
>>> Within a double-quoted string (enclosed within " "), a backslash
>>> character introduces a special character, which depends on the
>>> character that immediately follows the backslash:
>>>
>>> \n      new line
>>> \t      a tab character
>>> \"      a double quote
>>> \      a single backslash
>>>
>>>
>>> Corrected Text
>>> --------------
>>> Within a double-quoted string (enclosed within " "), a backslash
>>> character introduces a special character, which depends on the
>>> character that immediately follows the backslash:
>>>
>>> \n      new line
>>> \t      a tab character
>>> \"      a double quote
>>> \      a single backslash
>>>
>>> The backslash MUST NOT be followed by any other character.
>>>
>>> Notes
>>> -----
>>> The text doesn't state whether other characters may follow the
>>> backslash, and if yes, what it means. Existing implementations have
>>> used three approaches:
>>>
>>> 1. report an error if another character follows the backslash
>>> 2. keep only the character following the backslash, i.e., for example,
>>> "\x" is the same as "x".
>>> 3. keep both the backslash and the character following it.
>>>
>>> This ambiguity is undesirable and YANG 1.1 [RFC 7950] explicitly
>>> adopted option #1. However, many modules are still being written using
>>> YANG version 1.0, so it is important to clarify this issue in RFC 6020
>>> as well.
>> I don't think this errata should be accepted.  As stated, the spec is
>> unclear, and YANG 1.1 has fixed this problem.  But it is not clear
>> that the original intention when RFC 6020 was written was #1.
>> Accepting this errata now would make existing implementations and
>> modules invalid.
> The problem is that the spec is clearly ambiguous and it is impossible to decide whether such a module is valid or not and, if it is, what the other backslash-escaped characters mean. Existing implementations can already reject such modules - the fact that pyang (and probably other tail-f tools) adopted one interpretation doesn't mean that everybody does the same.
>
>> The solution moving forward is to use YANG 1.1.
>>
> YANG 1.0 modules continue to be written, and I think it is important to stop this problem from spreading further. I think tools should at least issue a warning because otherwise future upgrades to YANG 1.1 may become a nightmare - modules will suddenly break in unexpected places.
Now two good news.

First, pyang now includes a warning for YANG 1.0 modules:

    $ pyang ietf-ipfix-psamp@2012-09-05.yang
    ietf-ipfix-psamp@2012-09-05.yang:259: warning: the escape sequence
    "\S" is unsafe in double quoted strings - pass the flag
    --lax-quote-checks to avoid this warning

Thanks Martin for the speedy update. Note that this error message it was 
already present for YANG 1.1, as this is covered by RFC 7950.

Second, I ran all my scripts with the new pyang version, and no IETF 
YANG 1.0 modules face that issue 
(http://www.claise.be/IETFYANGPageCompilation.html)

However, we observed that some proprietary YANG 1.0 modules face this 
issue.
>
> If this erratum is rejected, what is the basis for accepting erratum #4909 that started this discussion?
Exact same question on my side.

Regards, Benoit
>
> Lada
>
>> /martin
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: 0xB8F92B08A9F76C67
>
>
>
>
>
> .
>