Re: [yang-doctors] [IANA #1289473] Revision statements in IANA-maintained YANG modules

Kent Watsen <kent+ietf@watsen.net> Thu, 21 March 2024 00:34 UTC

Return-Path: <0100018e5e6e73c9-e91dcb33-f277-49d2-bcc5-d3c5d989c9ca-000000@amazonses.watsen.net>
X-Original-To: yang-doctors@ietfa.amsl.com
Delivered-To: yang-doctors@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D9E97C14F703 for <yang-doctors@ietfa.amsl.com>; Wed, 20 Mar 2024 17:34:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.014
X-Spam-Level:
X-Spam-Status: No, score=-1.014 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, MIME_HTML_ONLY=0.1, MIME_HTML_ONLY_MULTI=0.001, MIME_QP_LONG_LINE=0.001, MPART_ALT_DIFF=0.79, RCVD_IN_MSPIKE_H2=-0.001, 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=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=amazonses.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 6RubT3u7A9BA for <yang-doctors@ietfa.amsl.com>; Wed, 20 Mar 2024 17:34:42 -0700 (PDT)
Received: from a8-96.smtp-out.amazonses.com (a8-96.smtp-out.amazonses.com [54.240.8.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 09E0FC14F68A for <yang-doctors@ietf.org>; Wed, 20 Mar 2024 17:34:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1710981280; h=Content-Type:Content-Transfer-Encoding:From:Mime-Version:Subject:Date:Message-Id:References:Cc:In-Reply-To:To:Feedback-ID; bh=y+iI1LOR7SbZS+NzSPCWvNdS+mvG46nz+SlKICGPG6k=; b=ip/euvXMnT+dhVvmCYiBSW9+P//edMsKYd0JU6F2R8tQaKRVVUC6DSFSWWke3AiS 7yzYLqLRb/uCog7ouMHfu51rs+6FglG/PxQWbnbtJg0rSPBuj4ObJSnG5kqghXSNnnm VpDqoRXM7SOk4t2Xxnq6iKtsqvhP3SE7zjRfHATg=
Content-Type: multipart/alternative; boundary="Apple-Mail-3DDCF2D1-E6AE-4820-865B-E936F2F67870"
Content-Transfer-Encoding: 7bit
From: Kent Watsen <kent+ietf@watsen.net>
Mime-Version: 1.0 (1.0)
Date: Thu, 21 Mar 2024 00:34:40 +0000
Message-ID: <0100018e5e6e73c9-e91dcb33-f277-49d2-bcc5-d3c5d989c9ca-000000@email.amazonses.com>
References: <3B9F08DB-D4E7-4320-9491-EB18D6F9D9C2@gmail.com>
Cc: Robert Wilton <rwilton@cisco.com>, Murray Kucherawy <superuser@gmail.com>, BOUCADAIR Mohamed IMT/OLN <mohamed.boucadair@orange.com>, YANG Doctors <yang-doctors@ietf.org>, iana-issues@iana.org
In-Reply-To: <3B9F08DB-D4E7-4320-9491-EB18D6F9D9C2@gmail.com>
To: Mahesh Jethanandani <mjethanandani@gmail.com>
X-Mailer: iPhone Mail (21E219)
Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES
X-SES-Outgoing: 2024.03.21-54.240.8.96
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/ZIT6w-beUZ_zINuPb7qogVsHdA8>
Subject: Re: [yang-doctors] [IANA #1289473] Revision statements in IANA-maintained YANG modules
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Email list of the yang-doctors directorate <yang-doctors.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-doctors/>
List-Post: <mailto:yang-doctors@ietf.org>
List-Help: <mailto:yang-doctors-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Mar 2024 00:34:45 -0000


Sent from my iPhone

On Mar 21, 2024, at 10:20 AM, Mahesh Jethanandani <mjethanandani@gmail.com> wrote:

Hi Kent,

Overall this captures the conversation. Some minor comments/additions.

On Mar 21, 2024, at 10:09 AM, Kent Watsen <kent+ietf@watsen.net> wrote:

Hi all,

Amanda, Rob, Mahesh, Murray (CC-ed), and I all met a couple days ago.  After about 30-mins or so, we came to an understanding for how IANA should set the “revision” statements for updates to IANA-maintained YANG modules.

1) For the revision statement’s “description” field:
- the goal is to capture what changed.
- did an algorithm get added?
- did an algorithm get deprecated, discouraged, or obsoleted?
- for updates made due to an RFC 
- the description could be as simple as “Applied updates as specified by RFC XXXX.”
- or, if easy enough, enumerate the specific changes…
- for updates made by other means (e.g., FC/FS or Expert-review)
- the description could be as simple as “Applied updated as specified by <FC/FS or expert-review>”
- or, if easy enough, enumerate the specific changes…

                   - or ask the requestor to provide a description to be inserted …

Ah, yes, this also.  good catch. 


2) For the revision statement’s “reference” field:
- the goal is to point to some authoritative artifact
- for updates made due to an RFC
the description should be “RFC XXXX: <titile of RFC XXXX>”
- for updates made by other means (e.g., FC/FS or Expert-review)
the description should be “Please see the underlying registry for details.”

You mean the reference should be pointer (URL?) to the underlying registry.

There is no need to do this.  The YANG module’s top-level “description” should have this URL (pointer to the underlying registry) already, hence it would be redundant to put again in the “revision” statement. 

Cheers.

Likewise 
Kent



- PS: at this time, the underlying registries do NOT capture such details
- but this isn’t seen as a problem for what we’re trying to accomplish

Comments?

Kent


On Mar 13, 2024, at 9:41 AM, Kent Watsen <kent+ietf@watsen.net> wrote:

Hi Mahesh,

On Mar 12, 2024, at 4:25 PM, Mahesh Jethanandani <mjethanandani@gmail.com> wrote:

Hi Kent,

On Mar 11, 2024, at 2:31 PM, Kent Watsen <kent+ietf@watsen.net> wrote:

Hi Mahesh, Amanda,


On Mar 8, 2024, at 8:12 PM, Mahesh Jethanandani <mjethanandani@gmail.com> wrote:

Hi Amanda, please wait on further instructions before implementing anything new at this time.

I went back to the thread that Amanda started in November, and here is a summary of discussion we have had. Cutting and pasting some of the text from earlier threads as needed.

1. When an IANA module is first published on IANA’s web site, the IANA module is copied as-is from the RFC to form the original version. Subsequent updates, should result in:

1a. Adding a “revision” statement at the top level that contains a “description" statement as discussed in 2.
1b. Addition of a “reference” statement in the same “revision” statement as discussed in 3.
1c. The description of the module should be updated from:

    This version of this YANG module is part of RFC XXXX; see
    the RFC itself for full legal notices.”;

     to say:

    This original version of this YANG module is part of RFC XXXX; see
    the RFC itself for full legal notices.";

2. IANA will ask the requestor to provide a “description” statement to be inserted as part of the update to the “revision” statement. That “description" statement may or may not include a RFC number.

3. Cutting and pasting Martin’s response here.

 RFC 8407 currently says:

  A "revision" statement MUST be present for each published version of
  the module.  The "revision" statement MUST have a "reference"
  substatement.  It MUST identify the published document that contains
  the module.


[My own addition] In the case there is an RFC that updates the IANA module, that RFC should be used in the “reference" statement.


In this case, there really isn't any "published document" - the module
is published directly on the web.  One option could be to add the URL
to the module in "reference".  The motivation for the rule is:


  Modules are often extracted from their original
  documents, and it is useful for developers and operators to know how
  to find the original source document in a consistent manner.

So the URL would help for this.

In light of the fact what Amanda stated, that the IANA ticket system is not visible to outsiders, it makes sense to go with Martin’s proposal. Does anyone strongly disagree. In other words. 

Is it agreed that if IANA registers a codepoint in a First Come First Served or Expert Review range, and there is no associated specification, IANA will list a URL in the reference statement. It would for example use https://www.iana.org/assignments/yang-parameters/iana-dns-class-rr-type@2023-11-08.yang" class="" rel="nofollow">https://www.iana.org/assignments/yang-parameters/iana-dns-class-rr-type@2023-11-08.yang.

I don’t agree.  

As I wrote before, I never want to see a URL to https://www.iana.org/assignments/yang-parameters" class="" rel="nofollow">https://www.iana.org/assignments/yang-parameters in the “reference”.   To which, Martin said my proposal seemed better and you wrote "I like Kent’s idea of linking this somehow to the request that resulted in the update to the module, however that comes to IANA. If it comes in the form of a ticket, then hopefully that ticket explains who made the request, why they made the request etc. In other words, some form of traceability."

Just because Amanda explains their ticketing system is private doesn’t mean we have to throw out the whole idea.   Amanda’s proposal to have "[IANA #123456]: iana@iana.org” would be fine, IMO.

Ok. The problem of the ticketing system being private is much like a reference that is behind a paywall, where most of us cannot see it. But if others agree, I can live with it.


That said, it seems odd that the authoritative reference is something the IETF has to discuss at all.  It is wholly in IANA’s court.  The YANG-module for any underlying IANA-maintained registry should get all its data from that registry.  Never should IANA have to create a secondary reference that isn’t in the underlying registry.  Stated differently, I don’t think rfc8407bis should have recommendations that exceed what is possible using just the data in the underlying registry.

Agree.


Case in point, [1] points to [2] and [3] as examples of a First Come, First Served registries.  In both cases there is a column called “Reference” that usually points to an RFC, but sometimes points to a “Contact”, which is effectively a name and an email address.

IMO, these are not great “references”, such that I recommend IANA institute a global update for how non-RFC references are tracked, but that is out-of-scope to rfc8407bis.  

If they are not great “references”, then isn’t that a problem? If we were to fix it, e.g. by using the same ticketing reference, it would address both the question of asserting anything that the underlying registry does not do, and it will provide a better reference.

True, but the “fix” is something IANA has to internalize.  We may be able to paper over it, but the root-issue doesn’t go away.   Note that it is even more important that updates to the underlying registry are verifiable than it is that the updates to the YANG module are verifiable.

Something to consider, if ever a script is written to automatically create YANG modules for [2] and/or [3], you can be sure that the script will just use the data present in the registry, which will be just a person’s name/email in some cases.


The problem that I see is specifically with the second example reference, i.e., if the reference is via an individual. If that person is not available or not responding to any queries, how does one validate the reference?

True, but this is IANA’s system.  The source of truth lies there.  Currently they only have a name/email for some “References”.   What they may actually want/need are two fields:
- Reference:  an RFC, ticket#, email-archive link, etc.
- Contact: The IESG, name/email, etc.

But, again, out of our hands, and possible beyond what rfc8407bis can fix.

Kent



With this in mind, perhaps the “revision” statement might be like this?

If the reference a via an RFC
======================
revision 2024-03-11 {
description
“Added the FOO_BAR algorithms per RFC 1234"
reference 
“RFC 1234: Additional Foo Bar Algorithms.”

If the reference is via an individual
==========================
revision 2024-03-11 {
description
“Added the FOO_BAR algorithms per request by John Smith."
reference 
“John Smith: john@example.com

If the reference is unknown
=====================
revision 2024-03-11 {
description
“Added the FOO_BAR algorithms."
reference 
“Unknown: The underlying foo-bar registry does not track this information.”


Thoughts?

Kent



If agreed, we will ask Med to update 8407bis to reflect this.

Thanks.


On Mar 8, 2024, at 10:51 AM, Amanda Baber via RT <iana-issues@iana.org> wrote:

Hi Kent,

Sorry, I didn't make this clear: tickets (and the IANA github) aren't public. They require an IANA login. That's why, if you want to use the ticket number, I was suggesting something like

reference
[IANA #123456]: iana@iana.org

instead of 

reference:
https://iana.org/tickets/123456" class="" rel="nofollow">https://iana.org/tickets/123456 [not the actual link]

That way someone could contact us and refer to ticket 123456, which we could then use to find the ticket quickly. 

It should be noted, though, that in addition to not giving the requester direct access, all this does for IANA is save a minute or two. We can also search the ticket system for the name of the registration or the date it was completed, or we can look at the commit message for the file that was created on that date.

From our perspective, it might be more useful to link to, e.g., https://www.iana.org/assignments/address-family-numbers" class="" rel="nofollow">https://www.iana.org/assignments/address-family-numbers for an Address Family Number registration, which would allow the reader to find the contact information for John Smith directly via the registration's reference field. 

It was my assumption that all existing registrations would be
grandfathered together under a single top-level “revision” statement,
pointing to the RFC that created the IANA-defined YANG module (e.g.,
my two drafts going thru the IESG right now).

That's our understanding as well.

What we’re discussing here/now is how IANA sets the top-level
“revision” statement for all subsequent updates to the YANG module,
made by IANA.

That's our understanding too.

2) If we use the submitter's description, would it be useful for us
to automatically prepend something like "Added value 47."?

Yes.  In general, it would be helpful towards making the top-level
“revision” statement’s “description” better at explaining *why* the
module was updated, to include whatever tid-bits of information
possible.

That said, I suggest using discretion, as sometimes it may be
overwhelming to list out, e.g., a family of updates, in which case, it
might be better for the description to refer to the family as a whole.

<snip>

4) For the submitter-provided description, could a document like
8407bis provide examples in this style that we can refer Expert
Review/FCFS requesters to? If not, would it be possible to provide
something for our internal records? At the moment I'm not sure we
have any particularly verbose ones (outside of the initial
revisions).

Or would this just be the description that we entered in the
registry's name/description field?

We’re possibly overthinking this  :/

I'm asking for examples because applicants (for various types of registrations) don't always know what kind of answers they're expected to provide. In this case, we wouldn't be able to tell them, and would have to put the registration on hold while we asked the YANG doctors.

For updates to the underlying registry that did NOT come from a
normative document, no user-supplied description is needed.  The
important thing to capture is:

1) *why* is the module being updated
      - this is in the “description” statement

2) *where* is the proof that the *why* occurred
     - this is in the “revision” statement

If descriptions need to be captured for some revision statements and not for others, and this can't be recorded in an RFC (as in 8407bis or a similar document rather than a document that creates a specific module), we need clear instructions from the group. 

IANA maintains more than 3000 registries, and won't always have the same staff working in the IETF area, so special instructions need to be recorded, if only in our internal wiki. If the instructions are coming informally, from correspondence, we'd also like them to be validated by the AD on the list.

We may wish to  have a meeting, but maybe the following will make
sense.  Let me expand on the why/where from above:

1) *why* is the module being updated
      - this is in the “description” statement
      - the description statement SHOULD contain an identifier of
some sort.  E.g., an RFC number, an IANA-ticket number, etc.

Does the RFC number belong in both the description field and the reference field?

thanks,
Amanda

_______________________________________________
yang-doctors mailing list
yang-doctors@ietf.org
https://www.ietf.org/mailman/listinfo/yang-doctors" class="" rel="nofollow">https://www.ietf.org/mailman/listinfo/yang-doctors


Mahesh Jethanandani






_______________________________________________
yang-doctors mailing list
yang-doctors@ietf.org
https://www.ietf.org/mailman/listinfo/yang-doctors" class="" rel="nofollow">https://www.ietf.org/mailman/listinfo/yang-doctors


Mahesh Jethanandani







_______________________________________________
yang-doctors mailing list
yang-doctors@ietf.org
https://www.ietf.org/mailman/listinfo/yang-doctors



Mahesh Jethanandani