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

Brian E Carpenter <brian.e.carpenter@gmail.com> Sat, 08 April 2023 04:59 UTC

Return-Path: <brian.e.carpenter@gmail.com>
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 19455C15153F for <ipv6@ietfa.amsl.com>; Fri, 7 Apr 2023 21:59:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 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, FREEMAIL_FROM=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 CKlbddPcr6kH for <ipv6@ietfa.amsl.com>; Fri, 7 Apr 2023 21:58:55 -0700 (PDT)
Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com [IPv6:2607:f8b0:4864:20::102c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 B3917C151524 for <ipv6@ietf.org>; Fri, 7 Apr 2023 21:58:55 -0700 (PDT)
Received: by mail-pj1-x102c.google.com with SMTP id g3so1092129pja.2 for <ipv6@ietf.org>; Fri, 07 Apr 2023 21:58:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680929935; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=fqMMrkbsIfZK1MVAQRpsiEtkIinvns2nmjHZeuQiRaU=; b=hexwTILG+XJe1R4vZwsR6pyXD5oX8T1iXEsOfND8RtKgwGgjgbzH5twnvgQUspCIWY rjdzQs5Ty6pKTSSPZ2dg8zNM3m/vq8ZUZ7C19EOHmIj0dMvN4qPi+vSiwL1RDeAwWd+n 3l8rxUIlVdKF1LfUmTvflolYUSLRZK31qBS0nDcvHH7xLOc3WUivAoJfeLtICpTusXm/ d5q4ikA3xaRjyfTf+7b7YApTb4VU80PjyWMhla+HgKufVWmz83OGh78DhgS++QJpphf2 uqT51eXvO1e3IjlemTTYzFgRtiuTQ2O3zvwJYHQ3JH40Nm9sLq5AeSw/msX53epO1+1V f91w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680929935; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fqMMrkbsIfZK1MVAQRpsiEtkIinvns2nmjHZeuQiRaU=; b=XvVeFSAR/24da3LiTzQWAOzVnatsbc/HPcY9TusrsM6rBkoOGpPcAZOiG6BpcRatj+ AS3FM82M+lfSy6H0uKZZYbemUmWpVilwkbmSYTQzsaMB4ErRE3/UVjxpYsiekRJka6sf d0TEvAjhumI96BdOEV4BBFu7CSIbnFeMt5wU/5A7BNOliRUMKAjblzb6iG8LQtxE9y5o cAjRe/6zZ7FUc3Z5aFKc2QsbFBwe5Xdctg4hjcpteXfUgs5YYQM6Xblx6KtMleu9fA39 rzTtsT1Wpw4KybnuekuG0LA8V7k3qXax9YcWh0mey/5p0pDvX8F6MJkmlzyET+bE8q/8 s0Ag==
X-Gm-Message-State: AAQBX9cp4+wCFW4Uesme43m4LLaBUykKs9r4gSYTJ6hsrFVjngaTcBjD YPxQILlfDqx4ikqWd/Ktcn/abgqS/p1m1Q==
X-Google-Smtp-Source: AKy350ZjuDrUKst7tSt+oGXraXPhXfjMXJQ/f+2y8zngD0jUpEqedOCxlNJEIQzearmzxYk5mjJ7+Q==
X-Received: by 2002:a17:90b:3ec4:b0:237:d44c:5861 with SMTP id rm4-20020a17090b3ec400b00237d44c5861mr1560165pjb.12.1680929934593; Fri, 07 Apr 2023 21:58:54 -0700 (PDT)
Received: from ?IPV6:2406:e003:1184:f001:9991:d1ad:8c20:42bd? ([2406:e003:1184:f001:9991:d1ad:8c20:42bd]) by smtp.gmail.com with ESMTPSA id nl6-20020a17090b384600b0023faa95f75csm5371183pjb.36.2023.04.07.21.58.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 07 Apr 2023 21:58:53 -0700 (PDT)
Message-ID: <467a1724-367b-5796-5ada-39186eed727d@gmail.com>
Date: Sat, 08 Apr 2023 16:58:49 +1200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0
Content-Language: en-US
To: Shang Ye <yesh25@mail2.sysu.edu.cn>
Cc: IPv6 List <ipv6@ietf.org>, Jürgen Schönwälder <jschoenwaelder@constructor.university>
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> <7B160A57D39B213B+453efcf4-d728-c737-bf7f-931da91e7a10@mail2.sysu.edu.cn>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
In-Reply-To: <7B160A57D39B213B+453efcf4-d728-c737-bf7f-931da91e7a10@mail2.sysu.edu.cn>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/4m0m3eTnT97QYh-I_C6QPtrIPgY>
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 04:59:00 -0000

Shang,

On 08-Apr-23 15:00, Shang Ye wrote:
> 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.

Yes, we'll update that text a bit.

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

Yes, my (rarely running) Linux box agrees. They allow most special
characters but not /. Will fix the example.

The actual rules on Linux are allegedly at
https://unix.stackexchange.com/questions/451368/allowed-chars-in-linux-network-interface-names

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

Because we got dozens of messages... I agree it's better to be more precise.

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

I agree. We didn't understand the impact of the case folding rule
until recently.

>      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*. 

Yes, I noticed that recently too. Strange, but that's what they wrote.

> 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 ..."?

Yes. That sentence will be rewritten anyway because RECOMMENDS is not
an RFC 2119 term.

Thanks
    Brian

> 
> Regards,
> Shang
> 
>