Re: [netmod] WGLC on node-tags-09

Adrian Farrel <adrian@olddog.co.uk> Tue, 25 April 2023 22:10 UTC

Return-Path: <adrian@olddog.co.uk>
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 91A17C15152D for <netmod@ietfa.amsl.com>; Tue, 25 Apr 2023 15:10:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.793
X-Spam-Level:
X-Spam-Status: No, score=-2.793 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_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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 (2048-bit key) header.d=olddog.co.uk
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 wOR0FfAAdmCz for <netmod@ietfa.amsl.com>; Tue, 25 Apr 2023 15:10:12 -0700 (PDT)
Received: from mta8.iomartmail.com (mta8.iomartmail.com [62.128.193.158]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0F876C14CEE3 for <netmod@ietf.org>; Tue, 25 Apr 2023 15:10:11 -0700 (PDT)
Received: from vs1.iomartmail.com (vs1.iomartmail.com [10.12.10.121]) by mta8.iomartmail.com (8.14.7/8.14.7) with ESMTP id 33PMA9ug027824; Tue, 25 Apr 2023 23:10:09 +0100
Received: from vs1.iomartmail.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B9B3D4603D; Tue, 25 Apr 2023 23:10:09 +0100 (BST)
Received: from vs1.iomartmail.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A42404604D; Tue, 25 Apr 2023 23:10:09 +0100 (BST)
Received: from asmtp3.iomartmail.com (unknown [10.12.10.224]) by vs1.iomartmail.com (Postfix) with ESMTPS; Tue, 25 Apr 2023 23:10:09 +0100 (BST)
Received: from LAPTOPK7AS653V (82-69-109-75.dsl.in-addr.zen.co.uk [82.69.109.75]) (authenticated bits=0) by asmtp3.iomartmail.com (8.14.7/8.14.7) with ESMTP id 33PMA9o1003817 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 25 Apr 2023 23:10:09 +0100
Reply-To: adrian@olddog.co.uk
From: Adrian Farrel <adrian@olddog.co.uk>
To: 'Kent Watsen' <kent+ietf@watsen.net>, netmod@ietf.org
References: <01000187973d01c1-3045965f-faf7-4f2d-a7fa-48283d42eeec-000000@email.amazonses.com>
In-Reply-To: <01000187973d01c1-3045965f-faf7-4f2d-a7fa-48283d42eeec-000000@email.amazonses.com>
Date: Tue, 25 Apr 2023 23:10:09 +0100
Organization: Old Dog Consulting
Message-ID: <0b2101d977c2$b388ad60$1a9a0820$@olddog.co.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQJwD2oF10MGFdXLtZ4db8HVCB9sDa4PZebA
Content-Language: en-gb
X-Originating-IP: 82.69.109.75
X-Thinkmail-Auth: adrian@olddog.co.uk
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=olddog.co.uk; h=reply-to :from:to:references:in-reply-to:subject:date:message-id :mime-version:content-type:content-transfer-encoding; s= 20221128; bh=6WH8b6cnbIGFCKV/5lH//AB8eHeuKKFEuVQJIQLO1ZE=; b=Fth TVzzBAXhLBPRf6qojg0ctDtiD6627ZGPCtikATmi6DSkM4y1biKsUPRAuM00l4bh +C1qY+e8LU3OJu3kfo3PhhQCpzQuIv8sp6+RDzlLN6MZlRNsakgRUf65EBe4Gjva kLDMygjqbY49S8TZGm/FsTgWhzjnXEX8412wT0+zx9CONyBUZSaOlk5nCoKw1JOB PQes533vVo7C3Z41x/cIkRoQ/X9vDCSlzutsPKpX87hMCy+eB5TueSLbT1EamMty ubT7MHnEFhAwlnCeyc1XoodSXflykRsqpaYPfo8Ry5pebFHVyKC2N7gH20hryItD 4lST2A0mPAzVxQcOfgg==
X-TM-AS-GCONF: 00
X-TM-AS-Product-Ver: IMSVA-9.1.0.2090-9.0.0.1002-27588.002
X-TM-AS-Result: No--28.812-10.0-31-10
X-imss-scan-details: No--28.812-10.0-31-10
X-TMASE-Version: IMSVA-9.1.0.2090-9.0.1002-27588.002
X-TMASE-Result: 10--28.812100-10.000000
X-TMASE-MatchedRID: 8HTFlOrbAtHxIbpQ8BhdbDjNGpWCIvfTX93p52Kh3th3de2OoBqgwlKC SV79DbqwAd0cn1fMeA468m5m6HwB1cVQ1jrs5s2Ss/Hes76OTZDLa0eANE7Nz3DsUv5KEbQEZVh gLjSOksY8b9HUZRqXVZRyoQCR84vGCO3iXlOYXp9tvgnIwr6TMCkDYTG6KmZaLEzDQUyQGVnQCa lGjynfE2e19dlYzDvS8h/JBr1e97/BMik5HXvXUvUDwTduLUkcTSz0JdEAJbShvTAz4tl9EoPcX uILVCbanFafp20DkZDugYf75qB+MpASgrRwCcTv0e7jfBjhB8flsyZ05iz8b74hD5p4uWGfhj53 gjhYKkQK/GGsfcmZFGt0kC9fgmKsHMi7jd1/SYwrT6V6InEuVwgnaupNy5h2+/hjUzKCPT0wkpe 3FQcN+zYoz4W7fk4gg6uYryTlPzJxzwb0rKc3487rBCBS5Kctqf/efKFN1nDozDhGeQC9Er5do6 Whi5FDm01pdsM6IrrBbT9HBw042nT+rpu/K1HONmg1ckxsf6cW4OwYi14vly/zYor4jTnu+MXkP U9KMAPjAPlvErk6O3FmsKFRoWkFjyK/VqbtGFwEClJgjzpjqB5fG0LhdtQMlJBOf2Mfu5ps7ki2 RXubEQFOoR4avOMcHE2sXPGev4+6Mkw4ZNOIMu6bo2/Lq3c2mdrHMkUHHq+pqdpbu0w7OpGhHyD D4zfOwYdaJaMtDH51cgRJLEBdHKnL54M5CzEQ0l+2QIlbTKYGAD6h6FZmEQzvg1/q1MH2+j8J28 1SdHWC0ys5Vw/++9BDEhtWUzwVcGWImpDN9/yeAiCmPx4NwLTrdaH1ZWqCii7lXaIcF/Ww7M6dy uYKg46HM5rqDwqtlExlQIQeRG0=
X-TMASE-SNAP-Result: 1.821001.0001-0-1-22:0,33:0,34:0-0
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/Od1Wvt75FKvFSbqlxGur0Zf8moQ>
Subject: Re: [netmod] WGLC on node-tags-09
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, 25 Apr 2023 22:10:16 -0000

Hi,

I have reviewed this draft during the normal working group process, and
I just re-read it as part of working group last call. I believe the
function defined is useful, and I think the draft is ready to advance 
towards publication once my list of small points have been addressed.

Cheers,
Adrian

== Discussion ==

Section 7.

I'm not completely comfortable with the way you use the base identity
node-tag-type to capture the variants defined in the IANA registry shown
in 9.2. What happens when another document defines a new IETF tag type?
Is it necessary to also write a new YANG module that augments this one?
Or to respin this document? Those feel to me to be very ugly!

The alternatives might be:

1. You simply use the tag as a string (i.e., using the typedef tag) and
   rely on implementations to know what the tag type means.

2. You change the identity to an Integer, and you include an integer in
   the IANA registry so that new tags are just new entries.

3. You move the base identity into an IANA-managed YANG module that is
   updated by IANA automatically in lockstep with the IETF tags registry

== Minor ==

idnits reports some minor issues...

  ** There are 4 instances of too long lines in the document, the longest
one
     being 7 characters in excess of 72.

  == Unused Reference: 'RFC6022' is defined on line 834, but no explicit
     reference was found in the text

  == Unused Reference: 'RFC8641' is defined on line 871, but no explicit
     reference was found in the text

  == Unused Reference: 'RFC9195' is defined on line 880, but no explicit
     reference was found in the text

  == Unused Reference: 'RFC9196' is defined on line 884, but no explicit
     reference was found in the text

--

I think that Section 1, in introducing the concept of tags, should spend
a sentence describing YANG Module Tags [RFC8819] so that we can see how
the YANG tags already exist, and how this work develops the idea.

--

Apart from being able to deduce it from Section 4.3, it is not 
absolutely clear from Section 4 that the colon has special meaning. That
is that all prefixes now and in the future are delimited by the colon.
(This is important because, absent a colon, there is no way to 
distinguish an non-colon user prefix from any registered prefix.)
This means that:
- Future definitions of tag values might not realise that they are
  supposed to use a colon - you should clarify that all prefixes end
  with a colon noting that the colon is not a separator but is part of
  the prefix. This does beg the question about separators in the
  prefixes and in the tag values
  - Prefixes that contain colons will cause confusion and so you should
    probably make it a 'MUST NOT'
  - Tag values (after the prefix) that contain colons may cause 
    confusion so you should probably make this a RECOMMENDation, 
    although 4.2 suggests the use of colons as further separators.

An alternative to all this is that you define the colon as the separator,
and change the tag names to not include colons.

But 9.1 makes it pretty clear that you expect all registered prefixes to
end with a colon.

--

4.1

9.2 constrains these tags by saying that they must "conform to Net-
Unicode as defined in [RFC5198], and shall not need normalization".  I
think you should state this in this section using BCP 14 language.

--

4.2

   These tags are defined by the vendor that implements the module, and
   are not registered with IANA.  However, it is RECOMMENDED that the
   vendor includes extra identification in the tag to avoid collisions,
   such as using the enterprise or organization name following the
   "vendor:" prefix (e.g., vendor:entno:vendor-defined-classifier).

Surely you have to go further than recommending? How will interop work
unless you require 'entno' to be present?

But here you have said "enterprise or organization name" and then used
a field called 'entno' which looks very much like an Enterprise Number 
as registered by IANA (RFC2578) which would, IMHO, be a good solution.

--

4.4 looks reasonable to me, but I think you need to add text to talk 
about how an implementation is supposed to handle a tag prefix it 
doesn't know (for example, one that is defined and added to the registry
after the code was released). I suspect the intention is that all tags
can be processed as opaque strings, and the prefixes are there in order
to achieve uniqueness of the strings, but do not need to be processed.
Thus all implementations should be able to process all tags regardless
of their prefixes.

--

5.2

   An implementation MAY include additional tags associated with data
   nodes within a YANG module.  These tags SHOULD be IETF ((i.e.,
   registered) ) or vendor tags.

It would be good to:
- Expand on the "MAY" to say why an implementation might do that
- Add an alternative to the "SHOULD" and an indication of why an
  implementation might vary from the "SHOULD".

--


8.1 is intended as a new section of RFC 8407 so I think it should be 
possible to read it like that. I suggest re-writing as follows.
Note:
- Leaving out the figure number to be consistent with RFC 8407
- Making the reference to Section 9.2 point to this document explicitly

8.1.  Define Standard Tags

   A module MAY indicate, using node tag extension statements, a set of
   node tags that are to be automatically associated with nodes within
   the module (i.e., not added through configuration).  For example:

   module example-module-A {
     //...
     import ietf-node-tags { prefix ntags; }

     container top {
       list X {
         leaf foo {
            ntags:node-tag "ietf:summary";
         }
         leaf bar {
           ntags:node-tag "ietf:loss";
         }
       }
     }
     // ...
   }

   The module writer can use existing standard node tags, or use new
   node tags defined in the data node definition, as appropriate.  For
   IETF standardized modules, new node tags MUST be assigned in the IANA
   registry defined in Section 9.2 of RFC XXXX.

---

9.2

Since you want the DE to look at this, I think you need:

OLD
   The allocation policy for this subregistry is IETF Review [RFC8126].
NEW
   The allocation policy for this subregistry is IETF Review with Expert
   Review [RFC8126].
END

--

11.

I think 5198 is a normative reference as you require ietf: tags to 
comply.

== Nits ==

Section 1

   This document defines tags for both nodes in the schema tree and
   instance nodes in the data tree and shows how they can be associated
   with nodes within a YANG module, which:

   *  Provide dictionary meaning for specific targeted data nodes;
   ...

Slightly confusing. I think the bullets are intended to apply to the
tags. I.e., the tags provide dictionary meaning...
But the text reads like it is the nodes (or possibly the YANG module)
which provides the meaning.
So possibly you need:

   This document defines tags for both nodes in the schema tree and
   instance nodes in the data tree, and shows how the tags can be
   associated with nodes within a YANG module, to:

   *  Provide dictionary meaning for specific targeted data nodes;
   ...

--

1.

OLD
   To that aim, this document defines a YANG module [RFC7950] that
   augments the YANG Module Tags ([RFC8819]) to provide a list of node
   entries to add or remove node tags as well as to view the set of node
   tags associated with specific data nodes or instance of data nodes
   within YANG modules.
NEW
   To that aim, this document defines a YANG module [RFC7950] that
   augments the YANG Module Tags ([RFC8819]) to provide a list of node
   entries to which add node tags or from which to remove node tags, as
   well as a way to view the set of node tags associated with specific
   data nodes or instance of data nodes within YANG modules.

--

3.

s/data nodes repositories/data node repositories/

--

4.

   Initially, three prefixes are defined.

Maybe...

   Three prefixes are defined in the subsections that follow.

--

6.1

s/is as follows/as shown in Figure 1/

--

7.

s/"RFC 8819: YANG Module Tags ";/"RFC 8819: YANG Module Tags";/

--

8.1

s/associated with node/associated with nodes/

--

9.2 

Figure 4 has some text alignment issues

--

9.2

OLD
   A data node can contain one or multiple node tags.Data node to be
   tagged with the initial value in Table 2 can be one of 'container',
   'leaf-list', 'list', or 'leaf' data node.  All tag values described
   in Table 2 can be inherited down the containment hierarchy if Data
   nodes tagged with those tag values is one of 'container', 'leaf-
   list', 'list'.
NEW
   A data node can contain one or multiple node tags.  A data node to be
   tagged with an initial value from Table 2 can be one of 'container',
   'leaf-list', 'list', or 'leaf'.  All tag values described in Table 2
   can be inherited down the containment hierarchy if the data nodes
   tagged with those tag values is one of 'container', 'leaf-list', or 
   'list'.
END

--

11.

s/Berger,Jaehoon/Berger, Jaehoon/

== Petty comments ==

Section 1

"fairly ubiquitous"
Ubiquitous is an absolute state. You cannot be "somewhat pregnant" or
"slightly dead".

You probably want "widespread" or "used extensively".

--

3.

   The following lists a set of use cases to illustrate the use of node
   tags.

It's not really a list. It's OK that it is not many examples, but the 
text implies we might be going to see a few. How about:

   The following describes some use cases to illustrate the use of node
   tags.

--

9.2

Why does "IETF Node Tags" have a capital 'N' when "YANG node Tag" and 
"YANG node Tag Prefixes" use a lower case 'n'?

-----Original Message-----
From: netmod <netmod-bounces@ietf.org> On Behalf Of Kent Watsen
Sent: 19 April 2023 03:00
To: netmod@ietf.org
Subject: [netmod] WGLC on node-tags-09

This email begins a two-week WGLC on:

	https://datatracker.ietf.org/doc/html/draft-ietf-netmod-node-tags-09

Please take time to review this draft and post comments by May 2nd.
Favorable comments are especially welcomed.  

This draft went through a WGLC a year ago.  The authors addressed the
comments received and have been were waiting for feedback.   In essence,
this draft is presumed to reflect WG consensus and thusly, if no objection
is received, the draft will move to the next step in the publication
process.

Ref:
https://mailarchive.ietf.org/arch/msg/netmod/n2P9yohA-X-xSIt6FlMr4wOqmuI/

Kent  // co-chair 

_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod