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

Amanda Baber via RT <iana-issues@iana.org> Thu, 14 December 2023 03:30 UTC

Return-Path: <iana-shared@icann.org>
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 8E076C14CF0D for <yang-doctors@ietfa.amsl.com>; Wed, 13 Dec 2023 19:30:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.636
X-Spam-Level:
X-Spam-Status: No, score=-5.636 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, MISSING_HEADERS=1.021, 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 6apRpHd1iywl for <yang-doctors@ietfa.amsl.com>; Wed, 13 Dec 2023 19:30:12 -0800 (PST)
Received: from smtp.lax.icann.org (smtp.lax.icann.org [IPv6:2620:0:2d0:201::1:81]) (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 9031CC14F5F8 for <yang-doctors@ietf.org>; Wed, 13 Dec 2023 19:30:12 -0800 (PST)
Received: from request6.lax.icann.org (request1.lax.icann.org [10.32.11.221]) by smtp.lax.icann.org (Postfix) with ESMTP id 6BAD3E6586; Thu, 14 Dec 2023 03:30:12 +0000 (UTC)
Received: by request6.lax.icann.org (Postfix, from userid 48) id 5825C78C2D; Thu, 14 Dec 2023 03:30:12 +0000 (UTC)
RT-Owner: amanda.baber
From: Amanda Baber via RT <iana-issues@iana.org>
Reply-To: iana-issues@iana.org
In-Reply-To: <rt-5.0.3-1650890-1701877242-1399.1289473-37-0@icann.org>
References: <RT-Ticket-1289473@icann.org> <rt-5.0.3-1585205-1701829314-1497.1289473-37-0@icann.org> <2279F086-FC49-414F-A36A-007567BC9D93@gmail.com> <rt-5.0.3-1650890-1701877242-1399.1289473-37-0@icann.org>
Message-ID: <rt-5.0.3-1008033-1702524612-117.1289473-37-0@icann.org>
X-RT-Loop-Prevention: IANA
X-RT-Ticket: IANA #1289473
X-Managed-BY: RT 5.0.3 (http://www.bestpractical.com/rt/)
X-RT-Originator: amanda.baber@icann.org
CC: yang-doctors@ietf.org, mbj+ietf@4668.se
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-RT-Original-Encoding: utf-8
Precedence: bulk
Date: Thu, 14 Dec 2023 03:30:12 +0000
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/ysdC-1q--lMUF463myiaUudy6a4>
Subject: [yang-doctors] [IANA #1289473] Revision statements in IANA-maintained YANG modules
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.39
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, 14 Dec 2023 03:30:16 -0000

Thanks, all. We've updated our internal documentation.

Amanda

On Wed Dec 06 15:40:42 2023, mjethanandani@gmail.com wrote:
> Not from my side. Thanks
> 
> Mahesh Jethanandani
> mjethanandani@gmail.com
> 
> > On Dec 5, 2023, at 6:22 PM, Amanda Baber via RT <iana-
> > issues@iana.org> wrote:
> >
> > Hi all,
> >
> > Sending a reminder for this one. Are there any objections to these
> > processing instructions for IANA-maintained modules?
> >
> >> 1.  Publish the initial version of the module as-is from the RFC.
> >>
> >> 2.  When the module is updated the first time, change the "This
> >> version of
> >>    this YANG module..." as discussed [below].
> >>
> >> 3.  For every module update, add a "revision" statement with a
> >>    "reference" statement that refers to the published module (e.g.,
> >>    https://www.iana.org/assignments/yang-parameters/iana-dns-class-
> >> rr-type@2023-11-08.yang)
> >
> > Please see below.
> >
> > thanks,
> > Amanda
> >
> >> On Wed Nov 29 12:07:59 2023, mbj+ietf@4668.se wrote:
> >> Hi,
> >>
> >> "Amanda Baber via RT" <iana-issues@iana.org> wrote:
> >>> Hi all,
> >>>
> >>> First, we understand that existing revision statements in
> >>> IANA-maintained modules should be left alone.
> >>>
> >>> A few questions:
> >>>
> >>> 1) When we first add an entry to an IANA-maintained module, should
> >>> we,
> >>> as Martin suggested, change, e.g. "This version of this YANG module
> >>> is
> >>> part of RFC 8294; see the RFC itself for full legal notices." to
> >>> "This
> >>> original version of this YANG module is part of RFC 8294; see the
> >>> RFC
> >>> itself for full legal notices."?
> >>
> >> I think so, but I would like to hear what others have to say.
> >>
> >>
> >>>
> >>> 2a) 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?
> >>>
> >>> 2b) If the registration is in the RRTYPE registry in
> >>> https://www.iana.org/assignments/dns-parameters, would that
> >>> reference
> >>> be to https://www.iana.org/assignments/dns-parameters,
> >>> https://www.iana.org/assignments/iana-dns-class-rr-type [1], or for
> >>> example,
> >>> https://www.iana.org/assignments/yang-parameters/iana-dns-class-rr-
> >>> type@2023-11-08.yang?
> >>>
> >>> [1] We prefer to leave out the trailing
> >>> "/iana-dns-class-rr-type.xhtml" in case other extensions are
> >>> preferred
> >>> in the future, although the .xhtml version will continue to work.
> >>
> >> The motivation behind the rule is to make it easy for readers of a
> >> module to find the original source of the module.  In the example
> >> above, I think that the reference to
> >> https://www.iana.org/assignments/dns-parameters should be in the
> >> module's reference statement, which it is.
> >>
> >> So I'd say either one of
> >> https://www.iana.org/assignments/iana-dns-class-rr-type or
> >> https://www.iana.org/assignments/yang-parameters/iana-dns-class-rr-
> >> type@2023-11-08.yang
> >> (see more below).
> >>
> >>
> >>>
> >>> 2c) About this:
> >>>
> >>>> When I validate this module directly with pyang, I get the errors:
> >>>>
> >>>> $ pyang --ietf iana-routing-types@2022-08-19.yang
> >>>> iana-routing-types@2022-08-19.yang:35: error: RFC 8407: 4.8:
> >>>> statement
> >>>> "revision" must have a "reference" substatement
> >>>
> >>> We were using https://yangcatalog.org/yangvalidator, which is where
> >>> we
> >>> came across the ietf-* vs. iana-* reference discrepancy. We've
> >>> since
> >>> started using pyang.
> >>>
> >>> Something I should note here is that IANA operations staff (as
> >>> opposed
> >>> to its technical staff, which includes regular and irregular IETF
> >>> participants) are not only not expert in YANG but are also,
> >>> essentially, liberal arts majors who have learned to use command
> >>> line
> >>> tools and markup languages as needed. (I also have a two-year
> >>> programming degree that involved about half an hour of JSON, which
> >>> is
> >>> why I get to be the delegate here.)
> >>
> >> Ok.  So perhaps the simplest solution would be:
> >>
> >> 1.  Publish the initial version of the module as-is from the RFC.
> >>
> >> 2.  When the module is updated the first time, change the "This
> >> version of
> >>    this YANG module..." as discussed above.
> >>
> >> 3.  For every module update, add a "revision" statement with a
> >>    "reference" statement that refers to the published module (e.g.,
> >>    https://www.iana.org/assignments/yang-parameters/iana-dns-class-
> >> rr-type@2023-11-08.yang)
> >>
> >>
> >>
> >> As an alternative, if we decide that IANA-maintained modules don't
> >> need "reference" in "revision", I can add a flag "--iana" to pyang
> >> that would implement this.  But in this case, we should probably add
> >> the URL to the IANA registry (e.g.,
> >> https://www.iana.org/assignments/iana-dns-class-rr-type) somewhere,
> >> probably in the module's "description".
> >>
> >>
> >> /martin
> >>
> >>
> >>
> >>>
> >>> Where RFC 8407 is concerned, we acted on the IANA Considerations
> >>> section only, and didn't recognize that (as actors on modules) we
> >>> need
> >>> to implement certain other sections of that document. We've relied
> >>> on
> >>> online validation tools, as we had/have with MIB modules.
> >>>
> >>> I think we need a tutorial before we re-approach RFC 8407 and turn
> >>> our
> >>> internal module maintenance notes into an internal manual (which if
> >>> not already necessary will certainly be so when
> >>> draft-ietf-netmod-yang-module-versioning and
> >>> draft-ietf-netmod-yang-semver arrive). Are there resources you can
> >>> recommend?
> >>>
> >>> thanks,
> >>> Amanda
> >>>
> >>> On Thu Nov 23 07:39:39 2023, mbj+ietf@4668.se wrote:
> >>>> Ladislav Lhotka <ladislav.lhotka@nic.cz> wrote:
> >>>>> Dne 22. 11. 23 v 11:24 Martin Björklund napsal(a):
> >>>>>> Hi,
> >>>>>> Ladislav Lhotka <ladislav.lhotka=40nic.cz@dmarc.ietf.org>
> >>>>>> wrote:
> >>>>>>> Hi Amanda,
> >>>>>>>
> >>>>>>> "Amanda Baber via RT" <iana-issues@iana.org> writes:
> >>>>>>>
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>> We came across an issue when attempting to validate RFC
> >>>>>>>> 9403's
> >>>>>>>> ietf-rib-extension@2023-11-20.yang module before posting.
> >>>>>>>>
> >>>>>>>> That module refers to iana-routing-types@2022-08-19.yang, and
> >>>>>>>> pyang is
> >>>>>>>> refusing to validate it on the grounds that
> >>>>>>>> iana-routing-types@2022-08-19.yang doesn't have references
> >>>>>>>> for
> >>>>>>>> its
> >>>>>>>> revision statements. (Which it indeed does not.)
> >>>>>>>>
> >>>>>>>> However, if we try to validate iana-routing-types@2022-08-
> >>>>>>>> 19.yang
> >>>>>>>> directly, we don't get any errors.
> >>>>>>>>
> >>>>>>>> Which pyang reaction is correct?
> >>>>>> When I validate this module directly with pyang, I get the
> >>>>>> errors:
> >>>>>>   $ pyang --ietf iana-routing-types@2022-08-19.yang
> >>>>>>   iana-routing-types@2022-08-19.yang:35: error: RFC 8407: 4.8:
> >>>>>> statement
> >>>>>>   "revision" must have a "reference" substatement
> >>>>>>   ...
> >>>>>>
> >>>>>>>
> >>>>>>> RFC 8407 states in sec. 4.8:
> >>>>>>>
> >>>>>>> The "revision" statement MUST have a "reference" substatement.
> >>>>>>>
> >>>>>>> The module description refers to RFC 8294 though, and I am not
> >>>>>>> sure
> >>>>>>> how this particular module is updated and whether there is
> >>>>>>> always
> >>>>>>> a
> >>>>>>> relevant reference available for a given revision.
> >>>>>>>
> >>>>>>>>
> >>>>>>>> One larger issue is that we weren't aware that we needed to
> >>>>>>>> add
> >>>>>>>> references for revision statements in the IANA-maintained
> >>>>>>>> modules. We
> >>>>>>>> have no expertise in YANG and have been relying entirely on
> >>>>>>>> validation
> >>>>>>>> tools (and on IANA Considerations sections for registry
> >>>>>>>> maintenance
> >>>>>>>> instructions in general).
> >>>>>>>>
> >>>>>>>> Should we go back and add references to revision statements
> >>>>>>>> for
> >>>>>>>> all
> >>>>>>>> the IANA-maintained modules?
> >>>>>>>
> >>>>>>> This could lead to problems with versioning of modules.
> >>>>>>>
> >>>>>>>>
> >>>>>>>> Do we need to do so only going forward?
> >>>>>>>
> >>>>>>> I'd suggest to add reference statements to future
> >>>>>>> (substantial)
> >>>>>>> revisions of modules, perhaps even retroactively, but only
> >>>>>>> where
> >>>>>>> it
> >>>>>>> makes sense.
> >>>>>>>
> >>>>>>>>
> >>>>>>>> Either way, we have two questions:
> >>>>>>>>
> >>>>>>>> 1) Many of the registries mirrored by the IANA-maintained
> >>>>>>>> modules
> >>>>>>>> have
> >>>>>>>> First Come First Served or Expert Review ranges that don't
> >>>>>>>> require
> >>>>>>>> that the applicant provide a specification. For those
> >>>>>>>> registrations,
> >>>>>>>> we list the name of a contact person in the registry's
> >>>>>>>> "Reference"
> >>>>>>>> field. In the module, would we continue to omit the reference
> >>>>>>>> field?
> >>>>>>>
> >>>>>>> If there is no suitable document to refer to, it makes no
> >>>>>>> sense to
> >>>>>>> me
> >>>>>>> to add any stub references. RFC 8407 is IMO unnecesarily
> >>>>>>> strict
> >>>>>>> here,
> >>>>>>> and a SHOULD might suffice.
> >>>>>> The full text in RFC 8407 is:
> >>>>>>    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.
> >>>>>> 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:
> >>>>>
> >>>>> Right, but this link to the authoritative registry page belongs
> >>>>> to
> >>>>> the
> >>>>> "reference" statement that is a direct substatement of "module"
> >>>>> (see
> >>>>> e.g. [1]). The problem here is that RFC 8407 requires *every*
> >>>>> "revision" statement to contain "reference".
> >>>>>
> >>>>> Lada
> >>>>>
> >>>>> [1]
> >>>>> https://www.iana.org/assignments/iana-dns-class-rr-type/iana-dns-
> >>>>> class-rr-type.xhtml
> >>>>
> >>>> In this example, the module's "reference" is
> >>>>
> >>>> https://www.iana.org/assignments/dns-parameters
> >>>>
> >>>>
> >>>>
> >>>> I was thinking the revision's "reference" could be
> >>>>
> >>>> https://www.iana.org/assignments/iana-dns-class-rr-type/iana-dns-
> >>>> class-rr-type.xhtml
> >>>>
> >>>> or even
> >>>>
> >>>> https://www.iana.org/assignments/yang-parameters/iana-dns-class-
> >>>> rr-
> >>>> type@2023-11-08.yang
> >>>>
> >>>>
> >>>>
> >>>> /martin
> >>>>
> >>>>
> >>>>
> >>>>>
> >>>>>> 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.
> >>>>>> Side note.  In the description of the module it says:
> >>>>>>  This version of this YANG module is part of RFC 8294; see
> >>>>>>  the RFC itself for full legal notices.";
> >>>>>> This isn't true... Should IANA change the description of the
> >>>>>> module
> >>>>>> when it updates the module?  Perhaps to:
> >>>>>>  This original version of this YANG module is part of RFC
> >>>>>> 8294;
> >>>>>> see
> >>>>>>  the RFC itself for full legal notices.";
> >>>>>> /martin
> >>>>>>
> >>>>>>>
> >>>>>>>>
> >>>>>>>> 2) When we need to correct an IANA-maintained module, in the
> >>>>>>>> absence
> >>>>>>>> of a document to refer to, what can we do to make the
> >>>>>>>> revision
> >>>>>>>> statement valid?
> >>>>>>>
> >>>>>>> I'd say yes.
> >>>>>>>
> >>>>>>> Best regards, Lada
> >>>>>>>
> >>>>>>>>
> >>>>>>>> Best regards,
> >>>>>>>>
> >>>>>>>> Amanda Baber
> >>>>>>>> IANA Operations Manager
> >>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> yang-doctors mailing list
> >>>>>>>> yang-doctors@ietf.org
> >>>>>>>> https://www.ietf.org/mailman/listinfo/yang-doctors
> >>>>>>>
> >>>>>>> --
> >>>>>>> Ladislav Lhotka, CZ.NIC
> >>>>>>> PGP Key ID: 0xB8F92B08A9F76C67
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> yang-doctors mailing list
> >>>>>>> yang-doctors@ietf.org
> >>>>>>> https://www.ietf.org/mailman/listinfo/yang-doctors
> >>>>>
> >>>>> --
> >>>>> Ladislav Lhotka, CZ.NIC
> >>>>> PGP Key ID: 0xB8F92B08A9F76C67
> >>>
> >>> _______________________________________________
> >>> yang-doctors mailing list
> >>> yang-doctors@ietf.org
> >>> https://www.ietf.org/mailman/listinfo/yang-doctors
> >
> > _______________________________________________
> > yang-doctors mailing list
> > yang-doctors@ietf.org
> > https://www.ietf.org/mailman/listinfo/yang-doctors