Re: [netmod] On prefixes RE: Next steps for draft-ietf-netmod-rfc8407bis

Jan Lindblad <janl@tail-f.com> Tue, 12 March 2024 13:58 UTC

Return-Path: <janl@tail-f.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 EF28EC14F5F2 for <netmod@ietfa.amsl.com>; Tue, 12 Mar 2024 06:58:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.905
X-Spam-Level:
X-Spam-Status: No, score=-6.905 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham 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 ZZjj7dITlTFL for <netmod@ietfa.amsl.com>; Tue, 12 Mar 2024 06:58:34 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id C5446C14F5EE for <netmod@ietf.org>; Tue, 12 Mar 2024 06:58:33 -0700 (PDT)
Received: from smtpclient.apple (2-248-144-48-no600.tbcn.telia.com [2.248.144.48]) by mail.tail-f.com (Postfix) with ESMTPSA id 144E61AE0352; Tue, 12 Mar 2024 14:58:32 +0100 (CET)
From: Jan Lindblad <janl@tail-f.com>
Message-Id: <6C683BE5-5009-46AA-B178-CEA33C761789@tail-f.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_FA9584F1-00D4-4F5F-88EC-C3FB92EE834A"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\))
Date: Tue, 12 Mar 2024 14:58:21 +0100
In-Reply-To: <5b2d4e07-6ecb-48b2-9952-209f8e392a09@constructor.university>
Cc: mohamed.boucadair@orange.com, netmod@ietf.org
To: Jürgen Schönwälder <jschoenwaelder@constructor.university>
References: <170911084467.36197.13909323798182085568@ietfa.amsl.com> <DU2PR02MB10160D87F56348C8C6C3D947188582@DU2PR02MB10160.eurprd02.prod.outlook.com> <0E99F975-162C-4703-93F7-B9EE82D4186B@tail-f.com> <DU2PR02MB101606A8503CD26291F18034D88232@DU2PR02MB10160.eurprd02.prod.outlook.com> <314d5e9c-3a98-4dd2-ad05-b426cd376644@alumni.stanford.edu> <8fbc84a6-cfd4-4d2d-9118-09bbb25bbc4c@constructor.university> <DU2PR02MB10160F66C4D98D859480B81AB88222@DU2PR02MB10160.eurprd02.prod.outlook.com> <5b2d4e07-6ecb-48b2-9952-209f8e392a09@constructor.university>
X-Mailer: Apple Mail (2.3774.500.171.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/E8bqmDMqH9EHDG0pmf7H30ujiYM>
Subject: Re: [netmod] On prefixes RE: Next steps for draft-ietf-netmod-rfc8407bis
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: Tue, 12 Mar 2024 13:58:38 -0000

Jürgen,

You have been in the YANG circles long enough to remember the basic tenets. 

   YANG values the time and effort of the
   readers of models above those of modules writers and YANG tool-chain
   developers.

In this spirit, it's obvious to me that choosing very short prefixes are making it much harder for newcomers to parse YANG modules. They see "snmp:" in one module and assumes it means the same as "snmp:" in another. Or "if:", "mpls:" and a bunch of other convenient, short prefixes that I have seen clashing in the real world. If we could foster the habit (best practice) of at least adding a few characters to distinguish the publishing organizations from each other, a lot would be won. "ietf-if:" and "vendor-if:" would be a lot clearer.

Then we have the other thing with RESTCONF where the module names are used instead, which also causes some (unnecessary) confusion. If NETCONF and RESTCONF could use the same "prefixes", things would be easier. In the early days of programming (I mean in the 60's), FORTRAN programmers were told to choose short function and variable names. This mindset has long since been abandoned. Why is this still a good practice in YANG prefixes?

Best Regards,
/jan



> On 5 Mar 2024, at 10:38, Jürgen Schönwälder <jschoenwaelder@constructor.university> wrote:
> 
> Hi Med,
> 
> I believe it is a misconception that text not written in capital letters
> is not normative. I also believe we need _guidelines_ on the choice of
> identifiers like prefixes and not hard rules.
> 
> Prefixes do not have to be unique. It is nice if they are for widely
> used modules, but we are on a slippery path if we think of them as
> something that should be unique. Then they get long or clumsy or both
> (or worse we encourage a competition to allocate nice short prefixes).
> Yes, the original language is vague, on purpose. I guess I miss which
> problem is solved by requiring uniqueness that practically can't be
> ensured and is technically also not necessary.
> 
> /js
> 
> On 05.03.24 09:58, mohamed.boucadair@orange.com <mailto:mohamed.boucadair@orange.com> wrote:
>> Hi Jürgen,
>> Please see inline.
>> Cheers,
>> Med
>>> -----Message d'origine-----
>>> De : netmod <netmod-bounces@ietf.org> De la part de Jürgen Schönwälder
>>> Envoyé : lundi 4 mars 2024 20:44
>>> À : netmod@ietf.org
>>> Objet : Re: [netmod] On prefixes RE: Next steps for draft-ietf-netmod-
>>> rfc8407bis
>>> 
>>> Hi,
>>> 
>>> the statement "should be selected carefully to be unique" is
>>> impossible to implement given an open ended set of YANG modules.
>> [Med] Hmm, but there is no normative text in that sentence. What concretely needs to be followed is indicated in the sentence right after (SHOULD NOT); which is inherited from 8407.
>> Isn't "selected carefully to be unique" echoing the spirit of this text from RFC7950?
>>    Developers of YANG modules and submodules are RECOMMENDED to choose
>>    names for their modules that will have a low probability of colliding
>>    with standard or other enterprise modules, e.g., by using the
>>    enterprise or organization name as a prefix for the module name.
>>    Within a server, all module names MUST be unique.
>>> If this section only applies to IETF modules (I thought it is more
>>> general) and IANA never makes a mistake and we accept that prefixes
>>> get longer or cryptic over time, then this may be possible to
>>> implement, but I am not sure this is actually desirable.
>>> 
>>> The original wording "likely to be unique" was selected carefully, it
>>> conveys the message that prefixes can't be assumed to be unique.
>> [Med] "SHOULD ...likely" is really ambiguous as a reco if the text does not explain when it won't be
>>> Perhaps it should be even further watered down to "likely to be unique
>>> in a certain usage context".
>> [Med] What is a usage context? how that usage context is known? How a module is concretely bound to it? Etc. IMO, this triggers more questions that it clarifies the guidance.
>>> 
>>> I believe the original wording was good enough and does not need an
>>> update. Every update, even if well intended, carries a risk to break
>>> something that works.
>>> 
>>> /js
>>> 
>>> On 04.03.24 19:39, Randy Presuhn wrote:
>>>> Hi -
>>>> 
>>>> On 2024-03-04 12:51 AM, mohamed.boucadair@orange.com wrote:
>>>>> Hi Jan,
>>>>> 
>>>>> I went so far with the following:
>>>>> 
>>>>> OLD:
>>>>> 
>>>>>     Prefix values SHOULD be short but are also likely to be unique.
>>>>> 
>>>>>     Prefix values SHOULD NOT conflict with known modules that have
>>>>> been
>>>>> 
>>>>> previously published.
>>>>> 
>>>>> NEW:
>>>>> 
>>>>>     Prefix values should be selected carefully to be unique, and
>>>>> ideally
>>>>> 
>>>>>     not too long.  Specifically, prefix values SHOULD NOT conflict
>>>>> with
>>>>> 
>>>>>     known modules that have been previously published.
>>>>> 
>>>>> I'm having troubles with the normative language here. If we
>>> maintain
>>>>> the two sentences, the second SHOULD is sufficient for the
>>> uniqueness
>>>>> IMO.
>>>>> 
>>>>> Also, as per RFC2119, we should clarify when the SHOULD NOT can be
>>>>> safely ignored:
>>>>> 
>>>>>     SHOULD NOT   This phrase, or the phrase "NOT RECOMMENDED" mean
>>>>> that
>>>>> 
>>>>>     there may exist valid reasons in particular circumstances when
>>>>> the
>>>>> 
>>>>>     particular behavior is acceptable or even useful, but the full
>>>>> 
>>>>>     implications should be understood and the case carefully
>>> weighed
>>>>> 
>>>>>     before implementing any behavior described with this label.
>>>>> 
>>>>> An obvious case is an updated version of a published version.
>>>> ...
>>>> 
>>>> In dealing with SHOULD statements in RFCs, both as an implementor
>>> and
>>>> as a specification writer, I find it useful to re-phrase (at least
>>> in
>>>> my head) a "SHOULD NOT X" as "MUST be able to cope with others doing
>>>> X, even if it does not itself do X."
>>>> 
>>>> A "SHOULD NOT X" in a specification does NOT relieve implementations
>>>> of the duty to work correctly when X happens, because "SHOULD NOT X"
>>>> means that X is indeed permitted, even if discouraged.  If X causes
>>> a
>>>> an implementation pair to violate protocol or miscommunicate (e.g.
>>>> referencing the wrong syntax or semantics) at some level, then it
>>>> really needs to be a "MUST NOT".
>>>> 
>>>> But this is an old, old argument, and gliding along with "likely
>>>> uniqueness" rather than uniqueness has been a longstanding
>>> bug/feature
>>>> of netmod.  I'd just like to see a bit more guidance for
>>> implementors
>>>> so their products don't crash and burn when they do encounter
>>>> "duplicate" prefixes in the wild.
>>>> 
>>>> Randy
>>>> 
>>>> _______________________________________________
>>>> netmod mailing list
>>>> netmod@ietf.org
>>>> 
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww%2F&data=05%7C02%7Cjschoenwae%40constructor.university%7C8d19bba074754de88af008dc3cf268cf%7Cf78e973e5c0b4ab8bbd79887c95a8ebd%7C0%7C0%7C638452259052898639%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=kMRfC9Cuik8lhqIMXHI6K4NCZRjHUF1mORjOdUUFAvs%3D&reserved=0.
>>>> 
>>> ietf.org <http://ietf.org/>%2Fmailman%2Flistinfo%2Fnetmod&data=05%7C02%7Cmohamed.boucadai
>>>> 
>>> r%40orange.com <http://40orange.com/>%7C3b125a3e5a83426657e108dc3c8376a4%7C90c7a20af34b40bfbc
>>>> 
>>> 48b9253b6f5d20%7C0%7C0%7C638451782524628913%7CUnknown%7CTWFpbGZsb3d8ey
>>>> 
>>> JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7
>>>> 
>>> C%7C%7C&sdata=fkyIdrLqhqIkfdivCbWnetivTNNcpW07OepfdUat3mo%3D&reserved=
>>>> 0
>>> 
>>> --
>>> Jürgen Schönwälder              Constructor University Bremen gGmbH
>>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>> 
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org <mailto:netmod@ietf.org>
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww%2F&data=05%7C02%7Cjschoenwae%40constructor.university%7C8d19bba074754de88af008dc3cf268cf%7Cf78e973e5c0b4ab8bbd79887c95a8ebd%7C0%7C0%7C638452259052906113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=HZTNCsEkHPGu9IYUwl%2BIYr91dPNDz32KGguybeo9wSg%3D&reserved=0.
>>> ietf.org%2Fmailman%2Flistinfo%2Fnetmod&data=05%7C02%7Cmohamed.boucadai
>>> r%40orange.com%7C3b125a3e5a83426657e108dc3c8376a4%7C90c7a20af34b40bfbc
>>> 48b9253b6f5d20%7C0%7C0%7C638451782524636700%7CUnknown%7CTWFpbGZsb3d8ey
>>> JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7
>>> C%7C%7C&sdata=AEiqw14B6zxw14njEnUOEkEEzKdTmOc9%2BOTO5l2u8o8%3D&reserve
>>> d=0
>> ____________________________________________________________________________________________________________
>> Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
>> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
>> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
>> Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
>> This message and its attachments may contain confidential or privileged information that may be protected by law;
>> they should not be distributed, used or copied without authorisation.
>> If you have received this email in error, please notify the sender and delete this message and its attachments.
>> As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
>> Thank you.
> 
> -- 
> Jürgen Schönwälder              Constructor University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org <mailto:netmod@ietf.org>
> https://www.ietf.org/mailman/listinfo/netmod