Re: [netmod] The NETMOD WG has placed draft-tao-netmod-yang-node-tags in state "Candidate for WG Adoption"

Qin Wu <> Mon, 27 July 2020 13:18 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 03ED83A19BD for <>; Mon, 27 Jul 2020 06:18:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id P0folPmiWFWX for <>; Mon, 27 Jul 2020 06:18:34 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 5C5743A19B5 for <>; Mon, 27 Jul 2020 06:18:34 -0700 (PDT)
Received: from (unknown []) by Forcepoint Email with ESMTP id E034FFAF6C34ADA7E9B2; Mon, 27 Jul 2020 14:18:32 +0100 (IST)
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1913.5; Mon, 27 Jul 2020 14:18:32 +0100
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.1.1913.5 via Frontend Transport; Mon, 27 Jul 2020 14:18:32 +0100
Received: from ([]) by ([fe80::fca6:7568:4ee3:c776%31]) with mapi id 14.03.0487.000; Mon, 27 Jul 2020 21:18:28 +0800
From: Qin Wu <>
To: Juergen Schoenwaelder <>
CC: "" <>
Thread-Topic: [netmod] The NETMOD WG has placed draft-tao-netmod-yang-node-tags in state "Candidate for WG Adoption"
Thread-Index: AdZkFWbf0Bp3wpbhRs6wom12l0EwEw==
Date: Mon, 27 Jul 2020 13:18:27 +0000
Message-ID: <>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
x-originating-ip: []
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <>
Subject: Re: [netmod] The NETMOD WG has placed draft-tao-netmod-yang-node-tags in state "Candidate for WG Adoption"
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 27 Jul 2020 13:18:43 -0000

发件人: Juergen Schoenwaelder [] 
发送时间: 2020年7月27日 20:54
收件人: Qin Wu <>
主题: Re: [netmod] The NETMOD WG has placed draft-tao-netmod-yang-node-tags in state "Candidate for WG Adoption"

On Mon, Jul 27, 2020 at 12:33:39PM +0000, Qin Wu wrote:
> -----邮件原件-----
> 发件人: Juergen Schoenwaelder 
> []
> 发送时间: 2020年7月27日 18:42
> 收件人: Qin Wu <>
> 抄送:
> 主题: Re: [netmod] The NETMOD WG has placed draft-tao-netmod-yang-node-tags in state "Candidate for WG Adoption"
> On Mon, Jul 27, 2020 at 10:13:43AM +0000, Qin Wu wrote:
> > 
> > On the technical side, it is not clear why a central list of tags providing meta information is preferrable over metadata annotations that can be shipped with the values.
> > 
> > 
> > [Qin]: If we take metadata annotation approach, we need to define new module for each device level modules such as interface module, IP management module, BGP module, QoS module deployed in the device or revise these modules that has already been published and update devices with these new modules corresponding to deployed device level modules. Suppose the device level modules that has been deployed in the device is huge, such metadata annotation solution require update on each device for the new modules, the number of new modules is same as the number of existing deployed device level modules, which doesn't scale well.
> > 
> I do not think this answer is technically correct. For a counter example, see the definition of md:annotation origin in RFC 8342.
> [Qin]:umm, have a second thought, I think this is the design choice we made, we did investigate metadata annotation approach, but the essence of metadata annotation is to add attribute to the model, we think adding attributes still have limitation, since you can not add too many attributes one time to the same xml element.
> Secondly, we need to know which data is the characteristics data or telemetry data category the client want to subscribe before sending subscription request to the server. If we take metadata annotation approach, we need to have at least two times subscriptions before finding targeted data objects, or first retrieve telemetry data tag from the server and then subscribe targeted data object. It is hard to automate subscription with metadata annotation approach.

I do not think there is a restriction of the number XML attributes.
You can simply send a get operation. You will need a get operation as well for your central list of tags.

[Qin]: This is what I clarified above, it is not automated approach, you need to have two steps before finding the target data object, first send get operation request, second subscribe based on the tag indication.
> > It does not seem harmful to adopt this work if people think this is needed and they are willing to work on this. The others can safely ignore this with. Personally, I am not convinced yet, but then I do not work on 'multiple dimensional network visibility analysis'.
> > Perhaps a good convincing concrete example would help, the tables in Fig. 2 do not help me much.
> >
> > [Qin]: Suppose we can classify telemetry data from different angles, 
> > we can tag the telemetry data with various different data object 
> > tag, e.g., whether the data object is performance metric data, which category the performance metric data belong, if the data object Is performance metric data or KPI data, we can further classify KPI data from operation type, e.g., whether KPI data is average value, minimum value, maximum value, whether KPI data allow set threshold for it, if the KPI data can come from multiple source, We can indicate whether KPI data is aggregated data or not, so collector can use these telemetry data tag to subscribe targeted data object or these telemetry data tag associated with subscribed data can be further consumed by big data analytics platform/open observability platform such as InfluxDB/grafana and provide different outputs based on the telemetry tag or telemetry data classification that is selected.
> > 
> > The goal seems to add tags to node instances. I do not understand what they are called 'self-explanation-node-tags' and not simply 'node-tags'.
> You assume that the device manufacturer implementing YANG modules can predict what a management application wants to do with a certain piece of information. I doubt this is generally true. And if you look at basic counters, they often serve many different purposes. Even if the WG believes this to be true, there likely needs an overwrite mechanism in case the manufacturer predicted things wrongly.
> [Qin]: no, it is not always necessary for device manufacturer to do such prediction, it can be put into offline document together with module schema for NMS to retrieve. In addition, it allows the device adding or removing tag in the same as module tag does. These tag changes can be advertised Using server capability defined in draft-ietf-netconf-notification-capabilities to inform the client about it.

I must have missed that in the draft.

> > [Qin]: The reason to call it as 'self-explanation-node-tag' is to make it better reflect what it is really aimed for, if you have better name, I am happy to accept it.
> Well, to me these look like node instance tags. If anything, I would be interested in a generic solution and not something taylored to one specific use case (telemetry) and this is why I would prefer to have the specific semantics in the tags and not in the set of leafs carrying the tags.
> [Qin]:We did target generic solution, telemetry is not specific case, but it is the main case. If you think there are other cases, we are happy to cover it. The semantics for each node tag has been defined within the module, semantics can be polished step by step.
> Leaf carrying the tag helps data consumer such as influxdb/grafana to further classify the telemetry data and provide better network visbility.
> Leaf carrying the tag approach has been widely used by many IETF work such as draft-ietf-netmod-module-tags, draft-ietf-netmod-yang-module-versioning-01.
> For other reasons, please see the clarification mentioned above.


       module: ietf-module-tags
         +--rw module-tags
            +--rw module* [name]
               +--rw name          yang:yang-identifier
               +--rw tag*          tag
               +--rw masked-tag*   tag

Its a single leaf-list of tags, the semantics what the tags mean are in the tags. This is different from what you are proposing where some of the semantics of what the tag means are in the leaf a tag appears in - and there are likely also invalid situations or situations where things are unclear at least. For example, what does metric-scale with that tag ietf:minus-three mean? I do not really get the idea why you need 8 leafs each holding exactly one tag. This is inflexible, whenever an application likes to use an additional tag, you have to revise the YANG module.
[Qin]: Thanks Jurgen for clarification, get your point, happy to take this approach if it works. I think this is about tag management, similar to module tag module, tag defined under self-explanation-node can be used to convey various different tags.

Anyway, time for others to comment. I think I said what I had to say.


Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <>