Re: [netmod] Changes to IPv6 zone definition in draft-ietf-netmod-rfc6991-bis-15

Brian E Carpenter <brian.e.carpenter@gmail.com> Sun, 07 April 2024 22:03 UTC

Return-Path: <brian.e.carpenter@gmail.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 5A23FC14F5E4 for <netmod@ietfa.amsl.com>; Sun, 7 Apr 2024 15:03:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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 vq0wHmLYMmRo for <netmod@ietfa.amsl.com>; Sun, 7 Apr 2024 15:03:22 -0700 (PDT)
Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) (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 969A7C14F5EA for <netmod@ietf.org>; Sun, 7 Apr 2024 15:03:19 -0700 (PDT)
Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1e3cf5b171eso14612385ad.0 for <netmod@ietf.org>; Sun, 07 Apr 2024 15:03:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712527399; x=1713132199; darn=ietf.org; h=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=QthsbOmubR1pK4vpKQ4YWqR58hsa0SJX4IN8puHinbQ=; b=G6MTmEK6/4JDEbaGmJsFdOMfLjkh/IJ1UKGaz+MmvwXnfK/AFNWl5BtRs6Eqg1u8SJ 0pk63UwwSNBO++T24GemjiPWRjqezOV049U6sfTFOo4yO00mUyRXNH+vZnP39IZIfd/s 0fuxJHxylH0U/9WChhTNG5txS7rxeTYi3ej2mg30w6YHsVGHCjOx6j23bkIqscrnruDL kfvXVzfzaLfH7ZhGja+1h1M+ddwMA2IGDY46e2rJZnStJ3FRIz3NmeSCnxFvuUmDiTmD vPq5ik/3QkJqeOsKZCNZ4GEMAatpzYpieKtBzGHKuNALNgr1+YmFsSwmXLON24vtIiok JhKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712527399; x=1713132199; h=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=QthsbOmubR1pK4vpKQ4YWqR58hsa0SJX4IN8puHinbQ=; b=iA12yHTH5IxbWPPwKPWGXUDk5e5yiB3PkdZMIPypK7YwgyJdBSV+gEVSLHd29enVU+ JCsVOmWcDm6FFXh+RlykbBtPXTyt4bp8GgjIScEjEzljVRfTUWz1pWrSh/cicz++FWHY RcisUkfn15mMVauKdjb/NNYR2q4NwTaoHWdMvyqfqL4tNMYJXYza8fNTx+p5WrEAEYHM Rbn+fCvze17o/UywR5e0Zk9V8s4DRSz+jFrK7ljU1RuoT5kBqxpOescFVkywYNPvLvvX zqUbh90PXOukTlZcR5zjZtS0Gr2LeXAtM6z9Y9npkBBI+3EkdmmvEk1vnSu6f5vHEfHs DOmg==
X-Gm-Message-State: AOJu0Yw3ppv78SFyhrjkMM9CMMeLWEgbQtj8+IvHvNb94J982liZNKf7 EmcIdJopu23Et81OjBySkAfPKqug/zPr0xAV42p42hzq/hS/DYSVWDFvNuym1xg=
X-Google-Smtp-Source: AGHT+IH1CwP1cM1CAPi9oyFk6Gnp0qvAV8qWSIItEKw9OC+sKKV1VMOiSQyEbGX5XICaUPoUcuJRyg==
X-Received: by 2002:a17:902:ea01:b0:1dd:6263:62d4 with SMTP id s1-20020a170902ea0100b001dd626362d4mr9512021plg.3.1712527398795; Sun, 07 Apr 2024 15:03:18 -0700 (PDT)
Received: from ?IPV6:2404:4400:541d:a600:44b7:2c2e:2bc6:8707? ([2404:4400:541d:a600:44b7:2c2e:2bc6:8707]) by smtp.gmail.com with ESMTPSA id l6-20020a170903120600b001e2814e08b9sm5427622plh.32.2024.04.07.15.03.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 07 Apr 2024 15:03:18 -0700 (PDT)
Content-Type: multipart/mixed; boundary="------------AFO6u8905aFLhuHwBVtKBO5U"
Message-ID: <8945f512-785d-479d-a442-20cc1b402d5a@gmail.com>
Date: Mon, 08 Apr 2024 10:03:14 +1200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Jürgen Schönwälder <jschoenwaelder@constructor.university>
Cc: NETMOD Working Group <netmod@ietf.org>
References: <BY5PR11MB41966FD2ECEFB84708C5A325B5869@BY5PR11MB4196.namprd11.prod.outlook.com> <16d6f918-ea40-3596-9292-d2656eec8ad4@gmail.com> <8d491135-c720-228c-efad-f1f3fa113545@gmail.com> <B655FE46-F8B9-4BAD-A4AF-7E6E2627ACE9@gmail.com> <1786272e-6982-42b3-a9f3-31cf5075089d@gmail.com> <797b0f5f-b1b1-45a9-82b7-75ed6ff65007@constructor.university>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
In-Reply-To: <797b0f5f-b1b1-45a9-82b7-75ed6ff65007@constructor.university>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/HKXkN-6BK_WD7BIE9a3UHMecx24>
Subject: Re: [netmod] Changes to IPv6 zone definition in draft-ietf-netmod-rfc6991-bis-15
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.39
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: Sun, 07 Apr 2024 22:03:23 -0000

On 08-Apr-24 05:37, Jürgen Schönwälder wrote:
> Please see inline...
> 
> On 06.04.24 22:50, Brian E Carpenter wrote:
> 
>> I am discovering your draft as I type, but I assume you are referring to
>> typedef uri {}. Assuming that RFC6874 is indeed obsoleted, you can just
>> forget about this issue until something changes.
>>
>> I do see a quite different glitch in your typedef uri {}. If the host
>> part of a URI is a literal IPv6 address, normalizing to uppercase
>> contradicts Section 4.3 of RFC5952 which says:
>>
>> '4.3.  Lowercase
>>
>>      The characters "a", "b", "c", "d", "e", and "f" in an IPv6 address
>>      MUST be represented in lowercase.'
>>
>> Therefore, normalizing to uppercase would be an error. However, I think
>> your text is wrong anyway: section 6.2.2.1 of RFC3986 applies to hex
>> digits *within a percent-encoded triplet* and in fact hex digits in the
>> host part would be normalized to lowercase.
>>
>> So where your draft reads "except for hexadecimal digits", it should
>> read "except for hexadecimal digits within a percent-encoded triplet",
>> for consistency with RFC3986 and RFC5952.
> 
> I will do the following change:
> 
> OLD
> 
>         [...] All unnecessary
>         percent-encoding is removed, and all case-insensitive
>         characters are set to lowercase except for hexadecimal
>         digits, which are normalized to uppercase as described in
>         Section 6.2.2.1.
> 
> NEW
> 
>         [...] All unnecessary
>         percent-encoding is removed, and all case-insensitive
>         characters are set to lowercase except for hexadecimal
>         digits within a percent-encoded triplet, which are
>         normalized to uppercase as described in Section 6.2.2.1
>         of RFC 3986.

Yes, that's perfect.

> 
>> While I'm here, I looked at typedef ipv6-address {}. Two comments:
>>
>> 1. "If the zone index is not present, the default zone of the device
>> will be used."
>> FYI, although RFC 4007 describes the default zone, it's optional. For
>> example, there is no default zone on Linux; if you execute a socket call
>> with a zero or null zone, it's a run-time error.
> 
> I am pretty optimistic that you can memset a sockaddr_in6 to zero and
> then fill out the sin6_addr field and things will work. 

I'm afraid not. If you call sendmsg() with a link-local destination and
a zero sin6_scope_id, you get "[Errno 22] Invalid argument". If you call
it with a non-existing positive value, you get "[Errno 101] Network is
unreachable".

Tested on my Linux machine with the attached Python script. And I knew
this anyway from testing with ping.

> Perhaps the zero
> is not what RFC 4007 calls the default zone, then we need to find
> better wording. But then RFC 4007 also says:
> 
>      An implementation should also support the concept of a "default" zone
>      for each scope.  And, when supported, the index value zero at each
>      scope SHOULD be reserved to mean "use the default zone".

However, that "should" and "SHOULD" have not been implemented for Linux.

> 
>> 2. There seems to be a limited character set for the zone ID. RFC 4007
>> doesn't restrict the character set; it just says "non-null strings".
>> IMHO that's a bug, but if I want to name an interface
>> *%!@#$^&()_-+=:;'"?\|}{}{/.><, it's allowed by the RFC. (The text
>> doesn't even specify ASCII, and the remark about "conflict with the
>> delimiter" is meaningless, if you think about parsing.)
> 
>> If you intend to limit the character set more than RFC 4007 does, that
>> should be stated, and probably discussed on the 6man list.
> 
> Yes, the zone ID is underspecified, and we can't really fix that. What
> we had did not allow forward slashes, although they are used by some
> vendors. So we are trying to improve but whatever we do is debatable
> since the zone ID is underspecified. (On Linux, I am pretty sure an
> interface name does not even have to be ASCII or UTF-8. Whatever we
> end up doing, we will likely assume UTF-8.)

OK, I understand that choice. Maybe you should say in the description
that the zone ID is underspecified in the RFC?

> 
> This is why I suggested to write an ID that explains what happens if
> people go creative with zone IDs so that people know that certain zone
> IDs will not play nice with YANG modules, certain zone IDs will not play
> nice with URLs and so on. People can than take an informed decision and
> deal with the consequences.

Well, I think 6man really ought to clean up RFC 4007 in this respect.
But that is a battle for another day.

     Brian