Re: [netconf] [Technical Errata Reported] RFC8040 (7866)

Jernej Tuljak <jernej.tuljak@mg-soft.si> Wed, 03 April 2024 13:16 UTC

Return-Path: <jernej.tuljak@mg-soft.si>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4FCE8C157915 for <netconf@ietfa.amsl.com>; Wed, 3 Apr 2024 06:16:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.095
X-Spam-Level:
X-Spam-Status: No, score=-7.095 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mg-soft.si
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wB2frZJDYdE5 for <netconf@ietfa.amsl.com>; Wed, 3 Apr 2024 06:16:46 -0700 (PDT)
Received: from galileo.mg-soft.si (gate.mg-soft.si [212.30.73.66]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F390AC1519AF for <netconf@ietf.org>; Wed, 3 Apr 2024 06:16:39 -0700 (PDT)
Received: from [10.0.0.249] (zvonkok-mbp.mg-soft.si [10.0.0.249]) by galileo.mg-soft.si (Postfix) with ESMTP id 61217102F79; Wed, 3 Apr 2024 15:16:36 +0200 (CEST)
DKIM-Filter: OpenDKIM Filter v2.11.0 galileo.mg-soft.si 61217102F79
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mg-soft.si; s=default; t=1712150196; bh=bgxQqrMbsbFdsn1dOxilZulONO5FIdBRA2AqnrlKr8w=; h=Date:From:Subject:To:Cc:References:In-Reply-To:From; b=tM71UPFIy8wvpdzAJmBPPYSswn3lCAKqky/ut70XjEjcJYCAumfJNDO5Efw5BglSz cPFGKq9tyVkKJbLnwu1FGVMweYvYxokWjiK5WpCf/fqghalixDMhm7f8gaRx2GTxIP DrEtzlOEeySHjM0UIuhoCBkrKfkIvgR/jAos0nHbLxd6DYQF5qa0vlYD+vJcKSsNf+ 9Yyi2l3zJCg7zC6O58ZhiasQ39MoTPWDZ989Z74pftxvjZjuGZn+eg8U08NySwA2wf yWYYFoaj2Xsdy4Ysf7+TE8T9WbiXXTgvs7kj0fLn1N83a4/44VI28qkDQ54GssGQJB i6V97lrsEtkpw==
Content-Type: multipart/alternative; boundary="------------GPqXgaOvK7yfBKIzGcGbwMkj"
Message-ID: <cabe39b1-2c23-4bcb-b817-e5021f428a15@mg-soft.si>
Date: Wed, 03 Apr 2024 15:16:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jernej Tuljak <jernej.tuljak@mg-soft.si>
To: Andy Bierman <andy@yumaworks.com>
Cc: Kent Watsen <kent+ietf@watsen.net>, RFC Errata System <rfc-editor@rfc-editor.org>, mbj@tail-f.com, Warren Kumari <warren@kumari.net>, "netconf@ietf.org" <netconf@ietf.org>
References: <20240323173810.33A49E6634@rfcpa.amsl.com> <0100018e809ecc8b-b17354dc-f70c-437a-b915-b8ed4086bffb-000000@email.amazonses.com> <f5ea7cfe-65f2-429d-bdc2-11d377d45fd6@mg-soft.si> <CABCOCHQpK=9LADz77M7t2VLF-UNMhNE_oxpNC13yyvX_zME4NA@mail.gmail.com> <7e00b6e4-4d1f-496e-b945-1c4379c28884@mg-soft.si> <CABCOCHTVn2Dbs7NX8cfAu7EjmhuaZ6eez=bFS_6dP88v4So7CA@mail.gmail.com>
Content-Language: en-US
In-Reply-To: <CABCOCHTVn2Dbs7NX8cfAu7EjmhuaZ6eez=bFS_6dP88v4So7CA@mail.gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/xtDLbo9cAgTZSv1qWEkyDM1OwAY>
Subject: Re: [netconf] [Technical Errata Reported] RFC8040 (7866)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Apr 2024 13:16:51 -0000

On 29/03/2024 17:09, Andy Bierman wrote:
>
>
> On Fri, Mar 29, 2024 at 12:46 AM Jernej Tuljak 
> <jernej.tuljak@mg-soft.si> wrote:
>
>     On 28/03/2024 17:25, Andy Bierman wrote:
>>
>>
>>     On Thu, Mar 28, 2024 at 2:41 AM Jernej Tuljak
>>     <jernej.tuljak@mg-soft.si> wrote:
>>
>>         And I'm still not sure why RFC8040 refers to "reserved
>>         characters" as
>>         the only characters that need to be percent-encoded.
>>
>>         Section 2.1 of RFC3986 that describes percent encoding says:
>>
>>             A percent-encoding mechanism is used to represent a data
>>         octet in a
>>             component when that octet's corresponding character is
>>         outside the
>>             allowed set or is being used as a delimiter of, or
>>         within, the
>>             component.
>>
>>         Then in 2.2 it says:
>>
>>             URIs include components and subcomponents that are
>>         delimited by
>>             characters in the "reserved" set.  These characters are
>>         called
>>             "reserved" because they may (or may not) be defined as
>>         delimiters by
>>             the generic syntax, by each scheme-specific syntax, or by the
>>             implementation-specific syntax of a URI's dereferencing
>>         algorithm.
>>
>>         To me this means there's more than just what RFC3986
>>         considers to be a
>>         "reserved character" that should to be percent-encoded. The
>>         "more" in
>>         this case being characters "outside the allowed set".
>>         Characters like
>>         the double-quote, which I've brought up before, but never got
>>         a response:
>>
>>
>>
>>     The part of sec. 2.2 that was left out lists the chars:
>>
>>            reserved    = gen-delims / sub-delims
>>
>>            gen-delims  = ":" / "/" / "?" / "#" / "[" / "]" / "@"
>>
>>            sub-delims  = "!" / "$" / "&" / "'" / "(" / ")"
>>                        / "*" / "+" / "," / ";" / "="
>>
>>     IMO these chars need to be percent-encoded in RESTCONF URIs
>>
>>         https://mailarchive.ietf.org/arch/msg/netconf/I8kXANHiqeV2JsCWmtTE2fGjYd8/
>>
>>
>>
>>     Perhaps there are some details that are not spelled out.
>>     Double-quote and space are not special in RESTCONF.
>>
>
>     Are you saying that valid RESTCONF URIs are not required to be
>     valid RFC3986 URIs?
>
>
> No, I am saying that if restconf-next ever happens, then the document 
> can clarify any additional
> reserved characters.

You said that double-quote and space are not special in RESTCONF, but 
how can that be true, when they are special in RFC3986? What makes them 
special is that they are not allowed at all. Anywhere. No production of 
RFC3986 ABNF grammar [1] can match them. So they need to be 
percent-encoded. They do not represent reserved characters but at the 
same time cannot be recognized as unreserved characters.

[1] - https://datatracker.ietf.org/doc/html/rfc3986#appendix-A

Jernej

>
>     Jernej
>
>
> Andy
>
>
>>     One thing that is clear:
>>     Any user of a RESTCONF URI MUST be capable of converting
>>     percent-encoded chars,
>>     no matter what they are.
>>
>>
>>
>>
>>         Jernej
>>
>>
>>     Andy
>>
>>
>>         On 27/03/2024 16:54, Kent Watsen wrote:
>>         > This errata is incomplete.
>>         > The issue occurs three times.
>>         > The occurrence in Section 5.1 is missing.
>>         >
>>         > K.
>>         >
>>         >
>>         >> On Mar 23, 2024, at 1:38 PM, RFC Errata System
>>         <rfc-editor@rfc-editor.org> wrote:
>>         >>
>>         >> The following errata report has been submitted for RFC8040,
>>         >> "RESTCONF Protocol".
>>         >>
>>         >> --------------------------------------
>>         >> You may review the report below and at:
>>         >> https://www.rfc-editor.org/errata/eid7866
>>         >>
>>         >> --------------------------------------
>>         >> Type: Technical
>>         >> Reported by: Andy Bierman <andy@yumaworks.com>
>>         >>
>>         >> Section: 3.5.3
>>         >>
>>         >> Original Text
>>         >> -------------
>>         >> Text occurs in two places
>>         >>
>>         >> 1)
>>         >>
>>         >>       The leaf-list value is specified as a string, using
>>         the canonical
>>         >>       representation for the YANG data type.  Any reserved
>>         characters
>>         >>       MUST be percent-encoded, according to Sections 2.1
>>         and 2.5 of
>>         >>       [RFC3986].
>>         >>
>>         >>
>>         >> 2)
>>         >>
>>         >>       The key value is specified as a string, using the
>>         canonical
>>         >>       representation for the YANG data type.  Any reserved
>>         characters
>>         >>       MUST be percent-encoded, according to Sections 2.1
>>         and 2.5 of
>>         >>       [RFC3986].
>>         >>
>>         >>
>>         >> Corrected Text
>>         >> --------------
>>         >>
>>         >> 1)
>>         >>
>>         >>       The leaf-list value is specified as a string, using
>>         the canonical
>>         >>       representation for the YANG data type.  Any reserved
>>         characters
>>         >>       MUST be percent-encoded, according to Sections 2.1,
>>         2.2, and 2.5 of
>>         >>       [RFC3986].
>>         >>
>>         >> 2)
>>         >>
>>         >>       The key value is specified as a string, using the
>>         canonical
>>         >>       representation for the YANG data type.  Any reserved
>>         characters
>>         >>       MUST be percent-encoded, according to Sections 2.1,
>>         2.2, and 2.5 of
>>         >>       [RFC3986].
>>         >>
>>         >>
>>         >> Notes
>>         >> -----
>>         >> The reserved character list is defined in section 2.2 of
>>         RFC 3986
>>         >>
>>         >> Instructions:
>>         >> -------------
>>         >> This erratum is currently posted as "Reported". (If it is
>>         spam, it
>>         >> will be removed shortly by the RFC Production Center.) Please
>>         >> use "Reply All" to discuss whether it should be verified or
>>         >> rejected. When a decision is reached, the verifying party
>>         >> will log in to change the status and edit the report, if
>>         necessary.
>>         >>
>>         >> --------------------------------------
>>         >> RFC8040 (draft-ietf-netconf-restconf-18)
>>         >> --------------------------------------
>>         >> Title               : RESTCONF Protocol
>>         >> Publication Date    : January 2017
>>         >> Author(s)           : A. Bierman, M. Bjorklund, K. Watsen
>>         >> Category            : PROPOSED STANDARD
>>         >> Source              : Network Configuration
>>         >> Stream              : IETF
>>         >> Verifying Party     : IESG
>>         > _______________________________________________
>>         > netconf mailing list
>>         > netconf@ietf.org
>>         > https://www.ietf.org/mailman/listinfo/netconf
>>
>>         _______________________________________________
>>         netconf mailing list
>>         netconf@ietf.org
>>         https://www.ietf.org/mailman/listinfo/netconf
>>
>