> On 18 Jan 2017, at 14:55, Martin Bjorklund <[email protected]> wrote:
> 
> RFC Errata System <[email protected]> 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 <[email protected]>
>> 
>> 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.

If this erratum is rejected, what is the basis for accepting erratum #4909 that 
started this discussion?

Lada

> 
> /martin

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67





_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to