Subject: Re: [netmod] WGLC on draft-ietf-netmod-node-tags-06

From: Qin Wu <[email-masked]>
Date: Mon, 11 Apr 2022 11:52:10 +0000

Hi, Jürgen:
Thank for quick comments. Please see reply inline below.
-----邮件原件-----
>发件人: netmod [mailto:[email-masked]] 代表 Jürgen Sch?nw?lder
>发送时间: 2022年4月11日 16:19
>收件人: Kent Watsen <[email-masked]>
>抄送: [email-masked]
>主题: Re: [netmod] WGLC on draft-ietf-netmod-node-tags-06

>I have a problem with the term "Self-Describing Data Object Tags". It is not clear what 'self-describing' means. RFC 8819 defines "YANG Module Tags", i.e., tags that apply to entire modules. Perhaps this document should be titled "YANG Data Node 
>Instance Tags".
[Qin Wu] Good comment, in my understanding, the essence of data object tags is to classification telemetry data or operation and management data into several categories and tag data node with category information (e.g., tag a data node to indicate whether it is KPI related data), therefore here "self-describing" is really referred to inline information included in the same data module. I am okay to change the title to reflect what it actually is. Maybe "YANG data node Tags" is more appropriate.

>There should be in general a check that terminology aligns with YANG terminology.  The document talks about 'YANG data object', which is not a well defined term. In fact, there are three levels of tagging, you can tag modules (RFC 8819), you can tag 
>data nodes, and you can tag data node instances. It seems a bit unclear to me what the WGs strategy is here with covering all three levels.

[Qin Wu] Good question, I am also discussing with Joe about the similar issue, we could have both data node level tag and instance level tag since we use node-instance-identifier type and need to reach agreement on this.

>I have not read the document in detail yet but I find the notion of data objects and subobjects confusing. I also do not know what "massive" data object collections are or why both objects and subobjects can be modeled as YANG data nodes, or what the 
>purpose of this statement is. 

[Qin Wu] massive data collection might consume large amount of network bandwidth resource and computation resource. the data node tag help us capture characteristics data (e.g., KPI data) and greatly reduce the data to exported to the collectors.
Take example-module-A as an example:
   module example-module-A {
     //...
     container top {
       list X {
         leaf foo {
         }
         leaf bar {
         }
       }
     }
     // ...
   }
The top level node will be seen as data object while leaf foo and leaf bar will be seen as subobject, the top level node will be tagged with Object tag, the child node will be tagged with other tag such as metric tag or metric type tags.
Note that the notion of data objects and subobjects is only used in the usage example in section 3. Do you think it is confusing to introduce new terminologies, if yes, I will see how to fix this.

>When I look at ietf-data-object-tags (likely also a misnomer), then what I see is a list associating tags to anything identifiable by a nacm:node-instance-identifier. It feels like this document has a lot of hot air around something that is at the end rather basic.

[Qin Wu] Please note that RFC9196 also defines node-selector as node-instance-identifier. See the definition of node-instance-identifier in RFC8341
"
     typedef node-instance-identifier {
       type yang:xpath1.0;
       description
         "Path expression used to represent a special
          data node, action, or notification instance-identifier
          string.

          A node-instance-identifier value is an
          unrestricted YANG instance-identifier expression.
          All the same rules as an instance-identifier apply,
          except that ***predicates**** for keys are optional.
          If a key
          predicate is missing, then the node-instance-identifier
          represents all possible server instances for that key. "
It can represent one specific node instance,e.g.,
     /* instance-identifier for a list entry */
     /ex:system/ex:user[ex:name='fred']
or all possible node instance if the predicates is not specified, e.g.,
     /* instance-identifier for all list entry/
        /ex:system/ex:user
For the latter case, it can also be seen as at node level or schema node level if my understanding is correct.

>/js

>On Fri, Apr 08, 2022 at 06:09:45PM +0000, Kent Watsen wrote:
>> This message begins a Working Group Last Call (WGLC) on draft-ietf-netmod-node-tags-06, per the chair-action from the 113 session (minutes <https://notes.ietf.org/#4-Title-Self-Describing-Data-Object-Tags-10-min>).  The WGLC will close in two->weeks (Apr 22).  Here is a direct link to the HTML version of the draft:
>> 
>> 	https://datatracker.ietf.org/doc/html/draft-ietf-netmod-node-tags 
>> <https://datatracker.ietf.org/doc/html/draft-ietf-netmod-node-tags>
>> 
>> Positive comments, e.g., "I've reviewed this document and believe it is ready for publication", are welcome!  This is useful and important, even from authors. Objections, concerns, and suggestions are also welcomed at this time.
>> 
>> Please be aware that this draft has declared IPR <https://datatracker.ietf.org/ipr/4216> indicating that license may entail possible royalty/fee. Also, this exchange between Lou and Qin on 8/30/2020 (mailman 
><https://mailarchive.ietf.org/arch/msg/netmod/SC6zfdYVmvlkquWOzP1qZszxWgs/>):
>> 
>> [Lou] Since this work is derived from work that I contributed to, I'd be interested in hearing what new mechanism(s) is/are covered by the IPR disclosure prior to supporting WG adoption.  I'm not asking in order to debate this, as that is something for 
>other venues, I'm merely asking that you state for the record what new mechanism is covered.
>> 
>> [Qin] Thanks for asking, different from module level tag defined in draft-ietf-netmod-module-tags , this work provide data node level tag definition, use these data node level tag definition to provide hint or indication to selection filter in the YANG push 
>and tell the collector or subscriber which specific category data objects needs to fetched.
> 
> 
> Kent (as co-chair)
> 

> _______________________________________________
> netmod mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/netmod

-- 
Jürgen Schönwälder              Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>

_______________________________________________
netmod mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/netmod

---

From: Jürgen Schönwälder <[email-masked]>
Date: Mon, 11 Apr 2022 14:18:07 +0200

> Note that the notion of data objects and subobjects is only used in the usage example in section 3. Do you think it is confusing to introduce new terminologies, if yes, I will see how to fix this.

I strongly disagree with introducing new terminology. The notion of a
data object or a subobject does not exist in YANG. All the YANG model
does is to associate tags with yang-node-identifiers. That's it and I
think the document should restrict itself to explain that.

My comment was actually more about words like "massive" being a purely
subjective term. Marketing people may use them but in technical
writing or even scientific writing, they have no real meaning. If you
are worried about scalability (and I would), then the question to ask
may be whether a single flat list is scalable to large numbers of
tags, i.e., how many queries do I need to find all relevant tags and
how do the queries scale.
 
> For the latter case, it can also be seen as at node level or schema node level if my understanding is correct.

I can't tell right now whether RFC 9196 makes proper use of
nacm:node-instance-identifier. Anyway, this is important material
to explain, not the data objects massive kind of marketing text.

/js