[art] Early review of draft-ietf-nfsv4-internationalization-06

Arnt Gulbrandsen <arnt@gulbrandsen.priv.no> Tue, 25 July 2023 13:42 UTC

Return-Path: <arnt@gulbrandsen.priv.no>
X-Original-To: art@ietfa.amsl.com
Delivered-To: art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 88DB5C151984 for <art@ietfa.amsl.com>; Tue, 25 Jul 2023 06:42:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.094
X-Spam-Level:
X-Spam-Status: No, score=-2.094 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, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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 (1024-bit key) header.d=gulbrandsen.priv.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 E-fXK4pajstG for <art@ietfa.amsl.com>; Tue, 25 Jul 2023 06:42:15 -0700 (PDT)
Received: from stabil.gulbrandsen.priv.no (stabil.gulbrandsen.priv.no [144.76.73.169]) (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 F021FC14CF09 for <art@ietf.org>; Tue, 25 Jul 2023 06:42:12 -0700 (PDT)
Received: from stabil.gulbrandsen.priv.no (stabil.gulbrandsen.priv.no [IPv6:2a01:4f8:191:91a8::3]) by stabil.gulbrandsen.priv.no (Postfix) with ESMTP id 55DA1C0050; Tue, 25 Jul 2023 14:42:08 +0100 (IST)
Authentication-Results: stabil.gulbrandsen.priv.no; dmarc=none (p=none dis=none) header.from=gulbrandsen.priv.no
Authentication-Results: stabil.gulbrandsen.priv.no; spf=none smtp.mailfrom=gulbrandsen.priv.no
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gulbrandsen.priv.no; s=mail; t=1690292528; bh=+WAWP7LtV58cvWs682PGwuJlAcouK/INcqzTauBKDUA=; h=From:To:Subject:Date:From; b=n0HU/jGE9vZBcOAeFm0Y+Z546ZaveP6RDaRqaiyCN6uxJDpKrz1PfXS0N0zMH9xrq p8lndSl7iYDaiA7dQfWCJ230e0hYLrJK6vgn22bYWDSzTWWbmhFhHREnuKN5vSIA0F 1/fqGu1Hdy6WfsNBAmzR5HCa0mcNu+JRMH2RHgr0=
Received: from arnt@gulbrandsen.priv.no by stabil.gulbrandsen.priv.no (Archiveopteryx 3.2.0) with esmtpsa id 1690292527-11391-11384/9/1; Tue, 25 Jul 2023 13:42:07 +0000
From: Arnt Gulbrandsen <arnt@gulbrandsen.priv.no>
To: art@ietf.org
Date: Tue, 25 Jul 2023 15:42:07 +0200
Mime-Version: 1.0
Message-Id: <8712139a-f924-4b42-ab59-a648be51c60d@gulbrandsen.priv.no>
User-Agent: Trojita/v0.7-599-g1d6a1f7d; Qt/5.15.8; xcb; Linux; Devuan GNU/Linux 5 (daedalus/ceres)
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/YXF2E42FJE2OJn9go8wUiECcZ0k>
Subject: [art] Early review of draft-ietf-nfsv4-internationalization-06
X-BeenThere: art@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Applications and Real-Time Area Discussion <art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/art>, <mailto:art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/art/>
List-Post: <mailto:art@ietf.org>
List-Help: <mailto:art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/art>, <mailto:art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 25 Jul 2023 13:42:19 -0000

Hi,

first off, let me say how impressed I am with gathering all that and 
writing it up. The length was a problem for reviewing, I imagine collecting 
the substance was a bigger problem.

I like the draft; it offers useful information for implementers of an IETF 
standard. It's extremely long, which I imagine will be a problem for 
would-be readers, but I don't see how it could really be much shorter 
without damaging interoperation.

It could be organised differently, say split into two RFCs, but I don't see 
any way to make the length easier to handle. There quite simply is a lot 
that implementers of NFS clients/servers need to know in order to get good 
interoperation with different implementations of different versions of NFS. 
So although the length is an issue, I don't think it's one that can be 
solved. History is that complicated.

The same reason also persuades me that the draft's overall approach makes 
sense: It describes what existing code does and the possible ways new code 
can interoperate with it and support i18n usefully. It would be possible to 
write something more like a typical RFC, describing rules rather than 
advising on types of existing implementations, but the draft as it stands 
seems more helpful to NFS implementers.

I read the draft from the standpoint of someone who knows a lot about 
internationalisation and IDNA, and a lot about unix, but practically 
nothing about netapps and that kind of gadgetry.

For someone like me, the introduction could usefully have described the 
different documents. The middle of page 4 didn't make much sense ("With 
regard to NFSv4.1 [RFC8881]" and the rest of the paragraph), but I suppose 
actual implementers don't need that crutch. They know what 8881 said and 
its implications. I don't ask for elaboration, unless the author feels that 
people like myself are part of the audience.

There are a fair number of typos and other things the RFC editor will fox. 
Nomalization for example (no r). Relavant, nit for not, bein. I skip those. 
Frankly I'm a worse typist myself.

Page 14 and some later pages made me wonder whether "implementations" 
refers to servers, clients or both. I'd appreciate it if the author would 
look at each instance of the word "implementations" in the document and 
qualify it where necessary.

Page 14 contains the first of the elephant sentences that I think I 
understand, but wow! "While RFC7630 has gone so far" etc. I think the 
document is useful, but some of those long sentences... I'd be happier with 
that entire paragraph just rewritten. The last sentence is okay.

The last sentence on the page seems as if it would be happer if split in 
two. Replacing "while" with a full stop would make it all easier to read. 
That's not the only sentence in this draft that could be split.

On page 19, the last paragraph says code MUST do this or that, and it's the 
only two possibilities. Eh. I MUST have my cake or eat it, what's the MUST 
in that? If you're going to use MUST, I advise saying that people MUSTY use 
UTF-8 (this is based on my work on other protocols where xn-- also occurs). 
If you don't want to tell people want to do, then please avoid uppercase 
MUST.

I wrote "4.1" on the top paragraph of page 20, but have no idea why I did 
so. Sorry.

The bottom lines of page 20 contains the words "will need to normalize the 
various UTF-8 encoded strings within the protocol before"... should that be 
within the NFSv4 server/client implementation?

On page 21, I'd prefer to strike ", whether upper case or lower case" and 
perhaps the "can" in the same sentence should be MAY?

I think there's been a mistake while typing the sentence containing "give 
rise" on page 23. Give rise to what? The next sentence explains the 
problem, maybe the first sentence would more informative if it were 
shorter.

Page 24, second paragraph, says something is not allowed. By what?

Page 24, the last sentence, I can't read it. The two occurences of "as" may 
be the thing that makes the sentence too hard for me.

Page 32, the top paragraph may need rewriting. Not sure. I see an orphaned 
clause at the end of the paragraph and am not sure what was intended.

The second paragraph uses the word MUST about an example, and the example 
is dominant but it's hardly a MUST. Please fix.

Page 35, top paragraph, the elephant sentence containing "as is the 
question" is unclear to me. I don't get what the question is.

Page 40, top paragraph, what is an "reserved LDH label"?

Page 40, I suggest replacing "changes of case SHOULD NOT be done and MUST 
NOT be done for strings that contain multi-bute Unicode characters" with 
"changes of case SHOULD NOT be done at all and MUST not be done for strings 
that contain Unicode codebpoints outside the ASCII range".

Page 44, top paragraph, I'm curious. Why the limitation to 16 bits?

Page 56, third reason. I had to think about that, so perhaps this warrants 
an example, e.g. a letter, a combining accent above and a combining accent 
below.

Page 62, top paragraph, rewrite needed, particularly the last sentence, 
which I completely failed to understand.

I also made a note on that page saying, basically, awesome. Someone who 
knows a lot of the dustier corners of unicode has thought hard about how to 
provide fast, well-working, interoperable comparison. There are tyypos in 
three of the paragraphs, but also considerable knowledge.

Page 63 has more typos, I think "immediate following" should be 
"immediately follow"? 64 has another inscrutable passage, surrounding 
"arbitrarily id designated".

The last sentence in the draft lacks a full stop, perhaps the author wants 
to surprise the readers with some unexpected brevity?

Arnt