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

Acee Lindem <acee.ietf@gmail.com> Wed, 06 December 2023 11:23 UTC

Return-Path: <acee.ietf@gmail.com>
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 5178DC14F736 for <yang-doctors@ietfa.amsl.com>; Wed, 6 Dec 2023 03:23:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.106
X-Spam-Level:
X-Spam-Status: No, score=-7.106 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_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_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 (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 ZSJ4_k1R7KET for <yang-doctors@ietfa.amsl.com>; Wed, 6 Dec 2023 03:23:49 -0800 (PST)
Received: from mail-qv1-xf29.google.com (mail-qv1-xf29.google.com [IPv6:2607:f8b0:4864:20::f29]) (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 52730C14F605 for <yang-doctors@ietf.org>; Wed, 6 Dec 2023 03:23:49 -0800 (PST)
Received: by mail-qv1-xf29.google.com with SMTP id 6a1803df08f44-67ab41956f8so13424446d6.2 for <yang-doctors@ietf.org>; Wed, 06 Dec 2023 03:23:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701861828; x=1702466628; darn=ietf.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=7OPTHucORIf8eti8p9eJpkkgr/wAokVviRhbUIZyiBs=; b=MFUfxEnnWTkBcUKB8XJDC4wUt0Jx3N2VLbJ6AD1QVv92TYjnFq2d5hS8/oGQQd3jGO 3EJGMmMaTK7+UmoFRmIHHCfbd8DCi3WGQNmcJx/2sdB+nHd45+hOHGslw0XEShztqsO2 HpXNJqLUkQaUyHdek2kL/9owhfCiZbEyauQXE8RDx6pwPh1gKjLOZ0TTfzlWdFUkNtbi mxeug9AvQx7v5eUnrCKwO/pcSQXNL6i2OdDmXzOG1VGdRRcEAJjlcrp9kbkD3CYZF/WR ZzCOOKAw6EkeqPI+HNGovdT9V1fI9Jt6wKIREouUNp4BErqLcfWht/i3G5cmrYKGKPCQ uk6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701861828; x=1702466628; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7OPTHucORIf8eti8p9eJpkkgr/wAokVviRhbUIZyiBs=; b=A25KwGWlIYFg5H0NT2ZOUjC0yopNvwE4QhCufcuRZIn9u2oZ0wvqYBZ60ZHUVtWEgm ewgXes2/1glHMM7YW6hN52EwkoMFe8UzG7XPMMGkiL6/9GivebnFrqr1NjSBBLPrjFsO Moz1KeLDzkpPtOD/80hZr3kahnsQl/jTbiWSKHiQZWdh7NfrK8MRnXcvB0yJflEZ1AEr qH2VuX3dGLq/hAXw7Erl6FX9YidEHdXvzalS+ntA14DFAjEFPYpPeikI25JdA4oChH0e WcDZXe+atc6KAOz0VGVTDo397XxXLD3kq3t9/ebOujeZNxX9jUVTrLs1xqm2Qpox2Baq jbiQ==
X-Gm-Message-State: AOJu0YxMLOaEX9o4uWXeSDQTC5ZY86eVuSN0a2mp3zLpeOkL2v7oypXF CGNm8S9DFL4xm/gFitL5WHY=
X-Google-Smtp-Source: AGHT+IEPy6J1QIyqbJqVRrtVKCQafgFtligJMEYz3D4PJTopOy58P6K0Zy1sONXPHmEJcYr2JmCrNA==
X-Received: by 2002:a05:6214:d0:b0:67a:c676:196e with SMTP id f16-20020a05621400d000b0067ac676196emr532549qvs.123.1701861828101; Wed, 06 Dec 2023 03:23:48 -0800 (PST)
Received: from smtpclient.apple ([2605:a601:9186:ba00:843e:c90f:2b60:4ada]) by smtp.gmail.com with ESMTPSA id a9-20020a0ce389000000b0067a22a8564fsm5443268qvl.140.2023.12.06.03.23.47 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Dec 2023 03:23:47 -0800 (PST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.200.91.1.1\))
From: Acee Lindem <acee.ietf@gmail.com>
In-Reply-To: <6d40de68-025c-4e97-acd2-5a7691207f87@nic.cz>
Date: Wed, 06 Dec 2023 06:23:37 -0500
Cc: iana-issues@iana.org, yang-doctors@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <C40BD874-163D-4393-B591-D1E2DF9EC893@gmail.com>
References: <RT-Ticket-1289473@icann.org> <20231123.083844.1936556503927802747.id@4668.se> <rt-5.0.3-1570831-1700725179-891.1289473-37-0@icann.org> <rt-5.0.3-582748-1701221641-344.1289473-37-0@icann.org> <20231129.130701.1335457361123733396.id@4668.se> <rt-5.0.3-670436-1701259679-687.1289473-37-0@icann.org> <rt-5.0.3-1585205-1701829314-1497.1289473-37-0@icann.org> <6d40de68-025c-4e97-acd2-5a7691207f87@nic.cz>
To: Ladislav Lhotka <ladislav.lhotka=40nic.cz@dmarc.ietf.org>
X-Mailer: Apple Mail (2.3774.200.91.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/TYEhz8QLYxyimslvWeq_ibEX8Ss>
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: Wed, 06 Dec 2023 11:23:53 -0000

Sounds good to me as well.
Acee

> On Dec 6, 2023, at 01:48, Ladislav Lhotka <ladislav.lhotka=40nic.cz@dmarc.ietf.org> wrote:
> 
> Hi Amanda,
> 
> Dne 06. 12. 23 v 3:21 Amanda Baber via RT napsal(a):
>> Hi all,
>> Sending a reminder for this one. Are there any objections to these processing instructions for IANA-maintained modules?
> 
> No objections from my side.
> 
> Best regards, Lada
> 
>>> 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
> 
> -- 
> Ladislav Lhotka, CZ.NIC
> PGP Key ID: 0xB8F92B08A9F76C67
> 
> _______________________________________________
> yang-doctors mailing list
> yang-doctors@ietf.org
> https://www.ietf.org/mailman/listinfo/yang-doctors