Re: [IPv6] I-D Action: draft-ietf-6man-rfc6874bis-06.txt

Shang Ye <yesh25@mail2.sysu.edu.cn> Sat, 08 April 2023 03:00 UTC

Return-Path: <yesh25@mail2.sysu.edu.cn>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4C476C14CE30 for <ipv6@ietfa.amsl.com>; Fri, 7 Apr 2023 20:00:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.418
X-Spam-Level:
X-Spam-Status: No, score=0.418 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FORGED_MUA_MOZILLA=2.309, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, T_SPF_TEMPERROR=0.01] autolearn=no autolearn_force=no
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 W5lvNi595Sdy for <ipv6@ietfa.amsl.com>; Fri, 7 Apr 2023 20:00:46 -0700 (PDT)
Received: from smtpbg154.qq.com (smtpbg154.qq.com [15.184.224.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 609E3C14CE27 for <ipv6@ietf.org>; Fri, 7 Apr 2023 20:00:43 -0700 (PDT)
X-QQ-mid: bizesmtp64t1680922833t6xih8j1
Received: from [172.27.55.72] ( [58.249.112.45]) by bizesmtp.qq.com (ESMTP) with id ; Sat, 08 Apr 2023 11:00:32 +0800 (CST)
X-QQ-SSF: 00400000002000B0F000B00A0000000
X-QQ-FEAT: KKsqwYFaiGjmaL+Mw20w1r5EbcOTJqk/I2Arfljros+Z6kxoYxcLBMY37HujV H1e4MXYyre/50FLMtxN1ybZ9gmJNvGPqV5cRXWbufP01MgAEMk7RP5x/jedAmH42IRaYV2J Wz6R0gKm03x2en2QuU6J/k31+soQmw/IhCBfA0HN/W73KUfZaLRI7cOim5oY4ALZ4MNtL9M bp69Uc0Ale+YeO93O+mAEQMNZYAWBlZOwcZTgfjd/lbG+kRQch0G6PyyxQFrqLdbP4a8zwG HLNyWMBC+Ux/wuQ/H5NTAnvfpVLg9RxiG2aLvi5HMc610V2d1xuGlPc2BTpsEuqDN9UFZnG WSGyoQ/Zi2eKtfwOg0dxaAxbGDmmuLKPQGf9DUYtLGLM3blpOI=
X-QQ-GoodBg: 2
X-BIZMAIL-ID: 3799446114469187813
Message-ID: <7B160A57D39B213B+453efcf4-d728-c737-bf7f-931da91e7a10@mail2.sysu.edu.cn>
Date: Sat, 08 Apr 2023 11:00:32 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.1
Content-Language: en-US
To: Brian E Carpenter <brian.e.carpenter@gmail.com>
References: <168084071877.13626.3983641153813140583@ietfa.amsl.com> <6b5a79e7-b00e-ced3-43f3-5e975112e79c@gmail.com> <20230407072611.hva2mdwhyqhmyv3z@anna> <3885713A59BD6A3A+42276ef6-d0c9-f29d-125f-10b8a9ad9a55@mail2.sysu.edu.cn> <ede73f8c-439e-dabe-4f7b-3f5d40a95618@gmail.com>
From: Shang Ye <yesh25@mail2.sysu.edu.cn>
Cc: IPv6 List <ipv6@ietf.org>, Jürgen Schönwälder <jschoenwaelder@constructor.university>
In-Reply-To: <ede73f8c-439e-dabe-4f7b-3f5d40a95618@gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-QQ-SENDSIZE: 520
Feedback-ID: bizesmtp:mail2.sysu.edu.cn:qybglogicsvr:qybglogicsvr7
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/-PVfDlt43uJEB8LKgFVLYMWOFKE>
Subject: Re: [IPv6] I-D Action: draft-ietf-6man-rfc6874bis-06.txt
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 08 Apr 2023 03:00:52 -0000

On 2023/04/08 06:08, Brian E Carpenter wrote:

> On 08-Apr-23 03:38, Shang Ye wrote:
>> Jürgen & Brian,
>>
>> On 2023/4/7 15:26, Jürgen Schönwälder wrote:
>>
>>> In other words, why not simply use the
>>> following approach:
>>>
>>>     extract ZoneID characters
>>>     try to parse them as a numeric zone identifier
>>>     if succcess, done
>>>     otherwise try to parse them using if_nametoindex()
>>>     if success, use the index
>>>     otherwise report failure (or try any future zone name to index 
>>> mapping function)
>>
>>   From my experience of writing a URI parser, I can tell that this is
>> indeed the right way of parsing a zone identifier. Should we probably
>> mention this process in the document?
>
> I'm not convinced. Eventually of course the socket API will parse
> and verify the zone ID, but I don't believe we should attempt to
> to specify exactly when that happens.
>
>>
>>> What is the rationale for limiting the focus on human readable
>>> strings?  Why not generally support numeric zone indexes as they
>>> should always work and accepting zone names (oops interface names used
>>> as zone names) where this is feasible (i.e., the names use lowercase
>>> unreserved characters)? If we generally support numeric zone indexes,
>>> we would not have to exclude so called "infrastructure devices" since
>>> they should be able to deal with numeric zone indexes as well.
>>
>> Aren't numeric zone indices already supported in the current format
>> because they are exactly human readable strings? Section 11.2 of RFC
>> 4007 also says:
>>
>>      An implementation SHOULD support at least numerical indices that 
>> are
>>      non-negative decimal integers as <zone_id>.
>>
>> So I don't understand why this sentence is necessary:
>>
>>      However, in some operating systems it is possible to use the
>>      underlying interface number, represented as a decimal integer, 
>> as an
>>      alternative to the human-readable string.
>
> Because it's only a SHOULD, so we cannot rely on it.
Of course we cannot rely on it, but this sentence is confusing because 
it says "use the interface number as an alternative to the 
human-readable string" while the interface number is exactly represented 
as a human-readable string in an IPv6 scoped address or a URI.
>
>>
>> On the other hand, the following sentence is mostly true:
>>
>>      For example, on Linux, a user can determine interface numbers 
>> simply
>>      by issuing the command "ip link show" and then, for example, use
>>      "fe80::1%5" instead of "fe80::1%Ethernet1/0/1", if the interface
>>      number happens to be 5.
>>
>> Except that we can't really make a network interface name on Linux
>> contain slashes, can we?
>
> Why not? Have you tried?

Tried as requested:

    [ye@ye-arch ~]$ sudo ip link add Test/1 type dummy
    Error: argument "Test/1" is wrong: "dev" not a valid ifname

>
>>
>> Now that users can work around their inability to use an unsupported
>> interface names in a URI by first converting them into numerical
>> indices, is it possible that we replace the ZoneID ABNF rule with
>>
>>      ZoneID = 1*( %x61-7A / DIGIT / "-" / "." / "_" / "~" )
>>
>> and thus avoid the case-sensitivity issue of zone identifiers 
>> altogether?
>
> The whole point is (for the normal caases) to allow straigthforward 
> cut and
> paste.

That's true.

I have a strong feeling that after this revision the statements about 
the case-sensitivity of zone IDs have become even more confusing. Is 
there a reason why my previous suggestion

    State that the zone ID in a URI is case-sensitive, that
    implementations MAY treat it as case-insensitive and normalize it to
    lower case, and that the use of uppercase letters in a zone ID is
    NOT RECOMMENDED.

wasn't accepted by the authors?

Specifically,

    If an operating system supports case-sensitive zone or interface
    identifiers, identifiers including upper case letters cannot be used
    in a URI.

In this case, why aren't upper case letters excluded from the ABNF rule 
like the characters outside the "unreserved" character set?

    RFC 3986 also states that the host subcomponent of a URI is
    case-insensitive and is normalized to lower case. Section 6.2.2.1 of
    RFC 3986 states unambiguously that "the scheme and host are
    case-insensitive and therefore should be normalized to lowercase".

I find this quote from RFC 3986 very ambiguous. The main reason is that 
the percent-encoded octets in a registered name is normalized to *upper 
case*. So, I feel that it isn't a good idea to define the 
case-sensitivity of zone IDs by using a mere quote. Either we do it 
explicitly, or we don't do it at all, IMHO.

    This specification therefore RECOMMENDS the use of lower case
    letters only when assigning zone identifiers to interfaces.

Here the word "only" is ambiguous before a "when". Recommending "the use 
of lower case letters only" "when ...", or recommending "the use of 
lower case letters" "only when ..."?

Regards,
Shang