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 12:33 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 0201B3A1964 for <>; Mon, 27 Jul 2020 05:33:48 -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 qnSkVkPt7TPN for <>; Mon, 27 Jul 2020 05:33:45 -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 318163A195A for <>; Mon, 27 Jul 2020 05:33:45 -0700 (PDT)
Received: from (unknown []) by Forcepoint Email with ESMTP id B702DC596D584CF9C21A; Mon, 27 Jul 2020 13:33:43 +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 13:33:43 +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 13:33:43 +0100
Received: from ([]) by ([fe80::74d9:c659:fbec:21fa%31]) with mapi id 14.03.0487.000; Mon, 27 Jul 2020 20:33:40 +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: AdZkDbSLSZiI+uxPQlGCbo1BGaqNRA==
Date: Mon, 27 Jul 2020 12:33:39 +0000
Message-ID: <>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
x-originating-ip: []
Content-Type: text/plain; charset="gb2312"
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 12:33:55 -0000

发件人: 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.

> 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.

> [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.


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