Extensible YANG Model for Network Telemetry Messages
draft-ietf-nmop-message-broker-telemetry-message-00
The information below is for an old version of the document.
| Document | Type |
This is an older version of an Internet-Draft whose latest revision state is "Active".
|
|
|---|---|---|---|
| Authors | Ahmed Elhassany , Thomas Graf | ||
| Last updated | 2025-07-01 | ||
| RFC stream | Internet Engineering Task Force (IETF) | ||
| Formats | |||
| Reviews |
YANGDOCTORS Early review
(of
-02)
by Martin Björklund
On the right track
|
||
| Additional resources | Mailing list discussion | ||
| Stream | WG state | WG Document | |
| Document shepherd | (None) | ||
| IESG | IESG state | I-D Exists | |
| Consensus boilerplate | Unknown | ||
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-ietf-nmop-message-broker-telemetry-message-00
NMOP A. Elhassany
Internet-Draft T. Graf
Intended status: Informational Swisscom
Expires: 2 January 2026 1 July 2025
Extensible YANG Model for Network Telemetry Messages
draft-ietf-nmop-message-broker-telemetry-message-00
Abstract
This document defines an extensible message schema in YANG to be used
at the data collection to transform Network Telemetry messages into
external systems such as Message Brokers. The extensible message
schema enables a data collection to add metadata for the provenance
of the operational network data.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 2 January 2026.
Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Elhassany & Graf Expires 2 January 2026 [Page 1]
Internet-Draft Telmetery Message July 2025
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
2. YANG Modules . . . . . . . . . . . . . . . . . . . . . . . . 4
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18
4. Security Considerations . . . . . . . . . . . . . . . . . . . 19
5. Implementation status . . . . . . . . . . . . . . . . . . . . 20
5.1. Netgauze . . . . . . . . . . . . . . . . . . . . . . . . 20
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.1. Normative References . . . . . . . . . . . . . . . . . . 22
6.2. Informative References . . . . . . . . . . . . . . . . . 25
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 25
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26
1. Introduction
Nowadays network operators are using machine and human readable YANG
[RFC7950] to model their configurations and obtain YANG modelled
operational data from their networks.
Network operators organize their data in a Data Mesh [Deh22] where a
Message Broker such as Apache Kafka [Kaf11] or RabbitMQ [Rab07]
facilitates the exchange of messages among data processing
components.
Today, subscribing to a YANG datastore, publishing a YANG modeled
notifications message from the network and viewing the data in a time
series database, manual labor is needed to perform data
transformation to make a Message Broker and its data processing
components with YANG notifications interoperable.
Even though YANG is intented to ease data management, this promise
has not yet been fulfilled for Network Telemetry [RFC9232].
An Architecture for YANG-Push to Message Broker Integration
[I-D.ietf-nmop-yang-message-broker-integration] defined an
architecture for integrating YANG-Push with Message Brokers for a
Data Mesh architecture. How the notification messages at a YANG-Push
Receiver is being transformed to the Message Broker is being
described in Section Section 4.5 of
[I-D.ietf-nmop-yang-message-broker-integration], however the produced
message format left unspecified.
The message could be published as it was received from the network to
their organization's Message Broker. However, this approach is
insufficient for correct human and automated understanding of the
data generated by the network. This insufficiency stems from not
Elhassany & Graf Expires 2 January 2026 [Page 2]
Internet-Draft Telmetery Message July 2025
presenting a holistic picture along with the data generated by the
network. In particular, when a data consumer in the data mesh
consumes a YANG message from their organization's Message Broker,
they cannot answer simple questions such as:
* Which network operating system collected the data?
* To which network platform belongs the network node?
* What is the subscribed xpath, sub-tree filter and its schema
reference?
* When did the data collection received the data?
* What additional metadata is necessary for a consumer to make sense
of the data?
Section 7.2 of [I-D.ietf-opsawg-collected-data-manifest] describes
the content of a Data Manifest and how it is being mapped to the
collected Network Telemetry data. The "ietf-telemetry-message" YANG
module defined in this document makes use of the platform-details
grouping defined in Section 5.2 of
[I-D.ietf-opsawg-collected-data-manifest] for the network node and
the data collection.
This document defines a standard YANG envelope message to carry with
the collected Network Telemetry notifications the provenance and
metadata information for a YANG data exchanged in Message Brokers for
a Data Mesh architecture.
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
The terms "Subscriber", "Publisher", and "Receiver" are used as
defined in [RFC8639].
The term "Network Telemetry" is used as defined in [RFC9232]. This
document uses the term export and collection to distinguish between
the data export and collection.
The term "Message Broker" is used as defined in
[I-D.ietf-nmop-yang-message-broker-integration].
Elhassany & Graf Expires 2 January 2026 [Page 3]
Internet-Draft Telmetery Message July 2025
The term "Data Manifest" is used as defined in
[I-D.ietf-opsawg-collected-data-manifest]. The term provenance is
used in general to describe the origin, history, and authenticity of
an asset which then is described in a manifest.
In addition, this document reuses the terms "Notification Metadata"
and "Notification Envelope" defined in
[I-D.netana-netconf-notif-envelope] for the use in Message Broker
environment:
Notification Metadata: Additional data describing the context of a
notification that is sent in each message, e.g. which node generated
the messsage or at which time the notification was published.
Notification Envelope: YANG structure encapsulating the payload of a
notification, allowing the inclusion of metadata.
2. YANG Modules
This document defines two YANG modules, an extensible YANG module for
Network Telemetry messages defined in Figure 3 and a YANG-Push
extension defined in Figure 4.
The extensible YANG module for Network Telemetry messages defines an
envelope message schema which adds two provenance and two metadata
categories to the collected Network Telemetry data.
The YANG-Push extension adds YANG-Push specific subscription metadata
to the Network Telemetry protocol provenance of the envelope.
Network Node Manifest: The OPTIONAL "network-node-manifest"
container in Figure 3 contains the Data Manifest about the network
node that exported Network Telemetry data. It adds information
such as the node name, address, and software version. Each leaf
is OPTIONAL.
Network Telemetry Protocol Metadata: The "telemetry-message-
Elhassany & Graf Expires 2 January 2026 [Page 4]
Internet-Draft Telmetery Message July 2025
metadata" container in Figure 3 contains the Network Telemetry
session information between the collector and the network node.
It adds fields such as the Network Telemetry protocol name, the IP
addresses and ports of that transport session and the time the
event was exported at the network node and received at the data
collection. Apart from the collection-timestamp, session-protocol
and remote-address leafs all other leafs are OPTIONAL. These
Network Telemetry session informations allow a network operator to
troubleshoot and measure delay and loss related issues. Moreover,
this document also defines with Figure 4 an extension specific to
YANG-Push that includes YANG-Push subscription information
relevant to the Network Telemetry session information.
Data Collection Manifest: The OPTIONAL "data-collection-manifest"
container in Figure 3 contains the Data Manifest of the data
collection which collected the Network Telemetry data. The data
type is the same as the previous category but specific to the
collector node.
Network Operator Metadata: The OPTIONAL "labels" list in the
"network-operator-metadata" container in Figure 3 contains the
operator specific metadata. Some operators enrich the collected
data with specific information. For instance: type of the network
node (provider or provider edge node) or which operational unit
the node is operated by. For this purpose the document defines a
generic metadata map with key/values that can be used freely by
the network operator.
Elhassany & Graf Expires 2 January 2026 [Page 5]
Internet-Draft Telmetery Message July 2025
module: ietf-telemetry-message
+--ro message
+--ro network-node-manifest {network-node-manifest}?
| +--ro name? string
| +--ro vendor? string
| +--ro vendor-pen? uint32
| +--ro software-version? string
| +--ro software-flavor? string
| +--ro os-version? string
| +--ro os-type? string
+--ro telemetry-message-metadata
| +--ro node-export-timestamp? yang:date-and-time
| +--ro collection-timestamp yang:date-and-time
| +--ro session-protocol
| | telemetry-session-protocol-type
| +--ro export-address inet:host
| +--ro export-port? inet:port-number
| +--ro collection-address? inet:host
| +--ro collection-port? inet:port-number
+--ro data-collection-manifest {data-collection-manifest}?
| +--ro name? string
| +--ro vendor? string
| +--ro vendor-pen? uint32
| +--ro software-version? string
| +--ro software-flavor? string
| +--ro os-version? string
| +--ro os-type? string
+--ro network-operator-metadata
| +--ro labels* [name]
| +--ro name string
| +--ro (value)
| +--:(string-choice)
| | +--ro (string-choice)?
| | +--:(string-value)
| | +--ro string-value? string
| +--:(anydata-choice)
| +--ro (anydata-choice)?
| +--:(anydata-values)
| +--ro anydata-values? <anydata>
+--ro payload? <anydata>
Figure 1: YANG tree diagram for 'ietf-telemetry-message' module.
Elhassany & Graf Expires 2 January 2026 [Page 6]
Internet-Draft Telmetery Message July 2025
module: ietf-yang-push-telemetry-message
augment /tm:message/tm:telemetry-message-metadata:
+--ro yang-push-subscription
+--ro id? sn:subscription-id
+--ro (filter-spec)?
| +--:(subtree-filter)
| | +--ro subtree-filter? <anydata>
| +--:(xpath-filter)
| +--ro xpath-filter? yang:xpath1.0
+--ro (target)?
| +--:(stream)
| | +--ro stream? string
| +--:(datastore)
| +--ro datastore? identityref
+--ro transport? sn:transport
+--ro encoding? sn:encoding
+--ro purpose? string
+--ro (update-trigger)?
| +--:(periodic)
| | +--ro periodic!
| | +--ro period? yp:centiseconds
| | +--ro anchor-time? yang:date-and-time
| +--:(on-change)
| +--ro on-change!
| +--ro dampening-period? yp:centiseconds
| +--ro sync-on-start? boolean
+--ro module-version* [module-name]
| +--ro module-name yang:yang-identifier
| +--ro revision? rev:revision-date
| +--ro revision-label? ysver:version
+--ro yang-library-content-id? string
Figure 2: ietf-yang-push-telemetry-message tree
<CODE BEGINS> file "ietf-telemetry-message@2025-06-10.yang"
module ietf-telemetry-message {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-telemetry-message";
prefix tm;
import ietf-yang-types {
prefix yang;
reference
"RFC 6991: Common YANG Data Types";
}
import ietf-inet-types {
prefix inet;
Elhassany & Graf Expires 2 January 2026 [Page 7]
Internet-Draft Telmetery Message July 2025
reference
"RFC 6991: Common YANG Data Types";
}
import ietf-platform-manifest {
prefix p-mf;
reference
"draft-ietf-opsawg-collected-data-manifest: A Data Manifest for
Contextualized Telemetry Data";
}
organization
"IETF Draft";
contact
"Author: Ahmed Elhassany
<mailto:ahmed.elhassany@swisscom.com>
Thomas Graf
<mailto:thomas.graf@swisscom.com>";
description
"This YANG module defines an extensible message schema to be used at
the data collection to transform Network Telemetry messages into
external systems such as Message Brokers.
Copyright (c) 2025 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, is permitted pursuant to, and subject to the license
terms contained in, the Revised BSD License set forth in Section
4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the RFC
itself for full legal notices.";
revision 2025-06-10 {
description
"Initial revision.";
reference
"RFC XXXX";
}
identity session-protocol {
description
"Base identity to represent session protocols.";
}
identity yp-push {
Elhassany & Graf Expires 2 January 2026 [Page 8]
Internet-Draft Telmetery Message July 2025
base session-protocol;
description
"YANG-Push in RFC 8640 or RFC 8641 or RFC 8650.";
reference
"RFC 8640, RFC 8641, RFC 8650: YANG-Push Events and Notifications
for Datastores.";
}
identity netconf {
base session-protocol;
description
"NETCONF RPC as described in RFC 6241.";
reference
"RFC 6241: NETCONF RPC.";
}
identity restconf {
base session-protocol;
description
"RESTCONF HTTP as described in RFC 8040.";
reference
"RFC 8040.";
}
feature network-node-manifest {
description
"This feature indicates the network node manifest support.";
}
feature data-collection-manifest {
description
"This feature indicates the data collection manifest support.";
}
typedef telemetry-notification-event-type {
type enumeration {
enum log {
description
"Collector is reporting the event as it arrived from the
network element.";
}
enum update {
description
"Collector has updated an entry inside its local cache.
This could be triggered by an event from the network for
instance interface operational status changed or an internal
event in the collector, such as a timer triggered to referesh
old enteries.";
Elhassany & Graf Expires 2 January 2026 [Page 9]
Internet-Draft Telmetery Message July 2025
}
enum delete {
description
"Collector has deleted an entry from its local cache.";
}
}
description
"Type of event reported by the collector.";
}
typedef telemetry-session-protocol-type {
type identityref {
base session-protocol;
}
description
"Network Telemetry protocol used to deliver the notification
between the network node and the data collection.";
}
container message {
config false;
description
"Telemetry message used within the Data Mesh";
container network-node-manifest {
if-feature "network-node-manifest";
description
"Contains the Data Manifest about the network node that
exported Network Telemetry data.";
uses p-mf:platform-details;
}
container telemetry-message-metadata {
description
"contains the session information about the session between the
collector and the network node.";
leaf node-export-timestamp {
type yang:date-and-time;
description
"Timestamp when the Network Telemetry data has been exported
from network element.";
}
leaf collection-timestamp {
type yang:date-and-time;
mandatory true;
description
"Timestamp when the data collection collected the Network
Telemetry data from the network element.";
}
leaf session-protocol {
Elhassany & Graf Expires 2 January 2026 [Page 10]
Internet-Draft Telmetery Message July 2025
type telemetry-session-protocol-type;
mandatory true;
description
"Session protocol used to collect the Network Telemetry data
from the network node.";
}
leaf export-address {
type inet:host;
mandatory true;
description
"Network node IP address from where the Network Telemetry data
was exported from.";
}
leaf export-port {
type inet:port-number;
description
"Network node transport port number from where the Network
Telemetry data was exported.";
}
leaf collection-address {
type inet:host;
description
"Data collection IP address at which the Network Telemetry
data was collected.";
}
leaf collection-port {
type inet:port-number;
description
"Data collection transport port number at which the Network
Telemetry data was collected.";
}
}
container data-collection-manifest {
if-feature "data-collection-manifest";
description
"Contains the Data Manifest of the data collection which
collected the Network Telemetry data.";
uses p-mf:platform-details;
}
container network-operator-metadata {
description
"Network operator specific metadata added by the Network
Telemetry data collection.";
list labels {
key "name";
description
"Abritrary labels assinged by the data collection.";
leaf name {
Elhassany & Graf Expires 2 January 2026 [Page 11]
Internet-Draft Telmetery Message July 2025
type string {
length "1..max";
}
description
"Label name.";
}
choice value {
mandatory true;
description
"label value";
choice string-choice {
description
"String value";
leaf string-value {
type string;
description
"String value";
}
}
choice anydata-choice {
description
"YANG anydata value";
anydata anydata-values {
description
"anydata yang";
}
}
}
}
}
anydata payload {
description
"Message or notification received from network element.";
}
}
}
<CODE ENDS>
Figure 3: YANG 'ietf-telemetry-message' module.
<CODE BEGINS> file "ietf-yang-push-telemetry-message@2025-06-10.yang"
module ietf-yang-push-telemetry-message {
yang-version 1.1;
namespace
"urn:ietf:params:xml:ns:yang:ietf-yang-push-telemetry-message";
prefix yptm;
import ietf-subscribed-notifications {
Elhassany & Graf Expires 2 January 2026 [Page 12]
Internet-Draft Telmetery Message July 2025
prefix sn;
reference
"RFC 8639: Subscription to YANG Notifications";
}
import ietf-telemetry-message {
prefix tm;
reference
"draft-netana-nmop-message-broker-telemetry-message: Extensible
YANG Model for Network Telemetry Messages";
}
import ietf-yang-push {
prefix yp;
reference
"RFC 8641: Subscription to YANG Notifications for Datastore
Updates";
}
import ietf-yang-types {
prefix yang;
reference
"RFC 6991: Common YANG Data Types";
}
import ietf-datastores {
prefix ds;
reference
"RFC 8342: Network Management Datastore Architecture (NMDA)";
}
import ietf-yang-revisions {
prefix rev;
reference
"draft-ietf-netmod-yang-module-versioning: Updated YANG Module
Revision Handling";
}
import ietf-yang-semver {
prefix ysver;
reference
"draft-ietf-netmod-yang-semver: YANG Semantic Versioning";
}
organization
"IETF Draft";
contact
"Author: Ahmed Elhassany
<mailto:ahmed.elhassany@swisscom.com>
Thomas Graf
<mailto:thomas.graf@swisscom.com>";
description
"Adds YANG-Push specific subscription metadata to the data
Elhassany & Graf Expires 2 January 2026 [Page 13]
Internet-Draft Telmetery Message July 2025
collection protocol provenance of the ietf-telemetry-message
envelope.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
are to be interpreted as described in BCP 14 (RFC 2119)
(RFC 8174) when, and only when, they appear in all
capitals, as shown here.
Copyright (c) 2025 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, is permitted pursuant to, and subject to the license
terms contained in, the Revised BSD License set forth in Section
4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the RFC
itself for full legal notices.";
revision 2025-06-10 {
description
"Initial revision.";
reference
"RFC XXXX";
}
augment "/tm:message/tm:telemetry-message-metadata" {
description
"Augments telemetry-message-metadata with YANG-Push specific
subscription metadata";
container yang-push-subscription {
config false;
description
"YANG-Push specific subscription metadata";
leaf id {
type sn:subscription-id;
description
"This references the affected subscription.";
}
choice filter-spec {
description
"The content filter specification for this request.";
anydata subtree-filter {
description
"Event stream evaluation criteria or the parameter
Elhassany & Graf Expires 2 January 2026 [Page 14]
Internet-Draft Telmetery Message July 2025
identifies the port of the target datastore encoded in the
syntax of a subtree filter as defined in RFC 6241,
Section 6.";
reference
"RFC 6241: Network Configuration Protocol (NETCONF),
Section 6.";
}
leaf xpath-filter {
type yang:xpath1.0;
description
"Event stream evaluation criteria or porting of the target
datastore encoded in the syntax of an XPath 1.0
expression";
reference
"XML Path Language (XPath) Version 1.0
(https://www.w3.org/TR/1999/REC-xpath-19991116)
RFC 7950: The YANG 1.1 Data Modeling Language,
Section 10";
}
}
choice target {
description
"Identifies the source of information against which a
subscription is being applied as well as specifics on the
subset of information desired from that source.";
case stream {
leaf stream {
type string;
description
"Indicates the event stream to be considered for this
subscription.";
}
}
case datastore {
leaf datastore {
type identityref {
base ds:datastore;
}
description
"Datastore from which to retrieve data.";
}
}
}
leaf transport {
type sn:transport;
description
"For a configured subscription, this leaf specifies the
transport used to deliver messages destined for all
Elhassany & Graf Expires 2 January 2026 [Page 15]
Internet-Draft Telmetery Message July 2025
receivers of that subscription.";
}
leaf encoding {
type sn:encoding;
description
"The type of encoding for notification messages. For a
dynamic subscription, if not included as part of an
'establish-subscription' RPC, the encoding will be populated
with the encoding used by that RPC. For a configured
subscription, if not explicitly configured, the encoding
will be the default encoding for an underlying transport.";
}
leaf purpose {
type string;
description
"Open text allowing a configuring entity to embed the
originator or other specifics of this subscription.";
}
choice update-trigger {
description
"Defines necessary conditions for sending an event record to
the subscriber.";
case periodic {
container periodic {
presence "indicates a periodic subscription";
description
"The publisher is requested to notify periodically the
current values of the datastore as defined by the
selection filter.";
leaf period {
type yp:centiseconds;
description
"Duration of time which should occur between periodic
push updates, in one hundredths of a second.";
}
leaf anchor-time {
type yang:date-and-time;
description
"Designates a timestamp before or after which a series
of periodic push updates are determined. The next
update will take place at a whole multiple interval
from the anchor time. For example, for an anchor time
is set for the top of a particular minute and a period
interval of a minute, updates will be sent at the top
of every minute this subscription is active.";
}
}
}
Elhassany & Graf Expires 2 January 2026 [Page 16]
Internet-Draft Telmetery Message July 2025
case on-change {
container on-change {
presence "indicates an on-change subscription";
description
"The publisher is requested to notify changes in values
in the datastore subset as defined by a selection
filter.";
leaf dampening-period {
type yp:centiseconds;
default "0";
description
"Specifies the minimum interval between the assembly of
successive update records for a single receiver of a
subscription. Whenever subscribed objects change, and
a dampening period interval (which may be zero) has
elapsed since the previous update record creation for
a receiver, then any subscribed objects and properties
which have changed since the previous update record
will have their current values marshalled and placed
into a new update record.";
}
leaf sync-on-start {
type boolean;
default "true";
description
"When this object is set to false, it restricts an
on-change subscription from sending push-update
notifications. When false, pushing a full selection
per the terms of the selection filter MUST NOT be done
for this subscription. Only updates about changes,
i.e. only push-change-update notifications are sent.
When true (default behavior), in order to facilitate a
receiver's synchronization, a full update is sent when
the subscription starts using a push-update
notification. After that, push-change-update
notifications are exclusively sent unless the publisher
chooses to resync the subscription via a new
push-update notification.";
}
}
}
}
list module-version {
key "module-name";
config false;
description
"List of yang-push-module-version grouping. The revision is
not configurable.";
Elhassany & Graf Expires 2 January 2026 [Page 17]
Internet-Draft Telmetery Message July 2025
leaf module-name {
type yang:yang-identifier;
config false;
description
"This references the YANG module name.";
}
leaf revision {
type rev:revision-date;
config false;
description
"This references the YANG module revision of the sent
notification message.";
}
leaf revision-label {
type ysver:version;
description
"This references the YANG module semantic version of the
sent notification message.";
}
}
leaf yang-library-content-id {
type string;
config false;
description
"Contains the YANG library content identifier RFC 8525
information.";
}
}
}
}
<CODE ENDS>
Figure 4: YANG 'ietf-yang-push-telemetry-message' module.
3. IANA Considerations
This document registers the following two namespace URIs in the IETF
XML Registry [RFC3688]:
* URI: urn:ietf:params:xml:ns:yang:ietf-telemetry-message
* Registrant Contact: The IESG.
* XML: N/A; the requested URI is an XML namespace.
* URI: urn:ietf:params:xml:ns:yang:ietf-yang-push-telemetry-message
Elhassany & Graf Expires 2 January 2026 [Page 18]
Internet-Draft Telmetery Message July 2025
* Registrant Contact: The IESG.
* XML: N/A; the requested URI is an XML namespace.
This document registers the following two YANG modules in the YANG
Module Names registry [RFC3688]:
* Name: ietf-telemetry-message
* Namespace: urn:ietf:params:xml:ns:yang:ietf-telemetry-message
* Prefix: tm
* Reference: RFC XXXX
* Name: ietf-yang-push-telemetry-message
* Namespace: urn:ietf:params:xml:ns:yang:ietf-yang-push-telemetry-
message
* Prefix: yptm
* Reference: RFC XXXX
4. Security Considerations
This section is modeled after the template described in Section 3.7
of [I-D.ietf-netmod-rfc8407bis].
The "ietf-telemetry-message" and "ietf-yang-push-telemetry-message"
YANG modules defines two data models that are designed to be accessed
via YANG-based management protocols, such as NETCONF [RFC6141] and
RESTCONF [RFC8040]. These protocols have to use a secure transport
layer (e.g., SSH [RFC4252], TLS [RFC8446], and QUIC [RFC9000]) and
have to use mutual authentication.
The Network Configuration Access Control Model (NACM) [RFC8341]
provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content.
Elhassany & Graf Expires 2 January 2026 [Page 19]
Internet-Draft Telmetery Message July 2025
There are a number of data nodes defined in this YANG module that are
writable/creatable/deletable (i.e., "config true", which is the
default). All writable data nodes are likely to be reasonably
sensitive or vulnerable in some network environments. Write
operations (e.g., edit-config) and delete operations to these data
nodes without proper protection or authentication can have a negative
effect on network operations. The following subtrees and data nodes
have particular sensitivities/vulnerabilities:
"There are no particularly sensitive writable data nodes."
Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or
notification) to these data nodes. Specifically, the following
subtrees and data nodes have particular sensitivities/
vulnerabilities:
"There are no particularly sensitive readable data nodes."
5. Implementation status
This section provides pointers to existing open source
implementations of this draft. Note to the RFC-editor: Please remove
this before publishing.
5.1. Netgauze
An open source Network Telemetry data collection implemented "ietf-
telemetry-message" and "ietf-yang-push-telemetry-message" .
The open source code can be accessed here: [Netgauze_Github].
Figure 5 provides an example of a JSON encoded, [RFC7951], Network
Telemetry message.
========== NOTE: '\' line wrapping per RFC 8792) ===========
{
"ietf-telemetry-message:message": {
"network-node-manifest": {},
"telemetry-message-metadata": {
"session-protocol": "yp-push",
"node-export-timestamp": "2025-05-22T07:28:22.381856022Z",
"collection--timestamp": "2025-05-22T07:28:23.481855122Z",
"export-address": "192.168.100.3",
"export-port": 57914,
"ietf-yang-push-telemetry-message:yang-push-subscription": {
Elhassany & Graf Expires 2 January 2026 [Page 20]
Internet-Draft Telmetery Message July 2025
"datastore": "ietf-datastores:operational",
"encoding": "ietf-subscribed-notifications:encode-json",
"id": 12345678,
"module-version": [
{
"module-name": "vrouter-loopback",
"revision": "2024-04-22"
}
],
"on-change": {
"sync-on-start": true
},
"purpose": "send notifications",
"transport": "ietf-udp-notif-transport:udp-notif",
"xpath-filter": "/state/vrf/l3vrf/interface/loopback/enabled",
"yang-library-content-id": "3625735881"
}
},
"data-collection-manifest": {
"name": "netgauze-collector@leo-rocky",
"os-type": "Rocky Linux",
"os-version": "8.10",
"software-flavor": "debug",
"software-version": "0.6.2 (cbd74215)",
"vendor": "NetGauze"
},
"network-operator-metadata": {
"labels": [
{
"name": "nkey",
"string-value": "unknown"
},
{
"name": "pkey",
"string-value": "unknown"
}
]
},
"payload": {
"ietf-yp-notification:envelope": {
"contents": {
"ietf-subscribed-notifications:subscription-started": {
"encoding": "ietf-subscribed-notifications:encode-json",
"id": 12345678,
"ietf-distributed-notif:message-publisher-ids": [
0
],
"ietf-yang-push-revision:module-version": [
Elhassany & Graf Expires 2 January 2026 [Page 21]
Internet-Draft Telmetery Message July 2025
{
"module-name": "vrouter-loopback",
"revision": "2024-04-22"
}
],
"ietf-yang-push-revision:yang-library-content-id": \
"3625735881",
"ietf-yang-push:datastore": "ietf-datastores:operational",
"ietf-yang-push:datastore-xpath-filter": \
"/state/vrf/l3vrf/interface/loopback/enabled",
"ietf-yang-push:on-change": {
"sync-on-start": true
},
"purpose": "send notifications",
"transport": "ietf-udp-notif-transport:udp-notif"
}
},
"event-time": "2025-03-04T07:31:36.806021107+00:00",
"hostname": "daisy-ietf-ipf-zbl1843-r-daisy-58",
"sequence-number": 48
}
}
}
}
Figure 5: JSON Network Telemetry Example
6. References
6.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>.
[RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH)
Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252,
January 2006, <https://www.rfc-editor.org/info/rfc4252>.
Elhassany & Graf Expires 2 January 2026 [Page 22]
Internet-Draft Telmetery Message July 2025
[RFC6141] Camarillo, G., Ed., Holmberg, C., and Y. Gao, "Re-INVITE
and Target-Refresh Request Handling in the Session
Initiation Protocol (SIP)", RFC 6141,
DOI 10.17487/RFC6141, March 2011,
<https://www.rfc-editor.org/info/rfc6141>.
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013,
<https://www.rfc-editor.org/info/rfc6991>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration
Access Control Model", STD 91, RFC 8341,
DOI 10.17487/RFC8341, March 2018,
<https://www.rfc-editor.org/info/rfc8341>.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>.
[RFC8639] Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard,
E., and A. Tripathy, "Subscription to YANG Notifications",
RFC 8639, DOI 10.17487/RFC8639, September 2019,
<https://www.rfc-editor.org/info/rfc8639>.
[RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications
for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641,
September 2019, <https://www.rfc-editor.org/info/rfc8641>.
Elhassany & Graf Expires 2 January 2026 [Page 23]
Internet-Draft Telmetery Message July 2025
[RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu,
"Handling Long Lines in Content of Internet-Drafts and
RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020,
<https://www.rfc-editor.org/info/rfc8792>.
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", RFC 9000,
DOI 10.17487/RFC9000, May 2021,
<https://www.rfc-editor.org/info/rfc9000>.
[RFC9232] Song, H., Qin, F., Martinez-Julia, P., Ciavaglia, L., and
A. Wang, "Network Telemetry Framework", RFC 9232,
DOI 10.17487/RFC9232, May 2022,
<https://www.rfc-editor.org/info/rfc9232>.
[I-D.ietf-nmop-yang-message-broker-integration]
Graf, T. and A. Elhassany, "An Architecture for YANG-Push
to Message Broker Integration", Work in Progress,
Internet-Draft, draft-ietf-nmop-yang-message-broker-
integration-07, 3 March 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-nmop-
yang-message-broker-integration-07>.
[I-D.netana-netconf-notif-envelope]
Feng, A. H., Francois, P., Graf, T., and B. Claise,
"Extensible YANG Model for YANG-Push Notifications", Work
in Progress, Internet-Draft, draft-netana-netconf-notif-
envelope-02, 28 January 2025,
<https://datatracker.ietf.org/doc/html/draft-netana-
netconf-notif-envelope-02>.
[I-D.ietf-opsawg-collected-data-manifest]
Claise, B., Quilbeuf, J., Lopez, D., Martinez-Casanueva,
I. D., and T. Graf, "A Data Manifest for Contextualized
Telemetry Data", Work in Progress, Internet-Draft, draft-
ietf-opsawg-collected-data-manifest-08, 27 June 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-opsawg-
collected-data-manifest-08>.
[I-D.ietf-netmod-yang-module-versioning]
Wilton, R., Rahman, R., Lengyel, B., Clarke, J., and J.
Sterne, "Updated YANG Module Revision Handling", Work in
Progress, Internet-Draft, draft-ietf-netmod-yang-module-
versioning-13, 6 February 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-netmod-
yang-module-versioning-13>.
Elhassany & Graf Expires 2 January 2026 [Page 24]
Internet-Draft Telmetery Message July 2025
[I-D.ietf-netmod-yang-semver]
Clarke, J., Wilton, R., Rahman, R., Lengyel, B., Sterne,
J., and B. Claise, "YANG Semantic Versioning", Work in
Progress, Internet-Draft, draft-ietf-netmod-yang-semver-
20, 7 February 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-netmod-
yang-semver-20>.
6.2. Informative References
[RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between
Information Models and Data Models", RFC 3444,
DOI 10.17487/RFC3444, January 2003,
<https://www.rfc-editor.org/info/rfc3444>.
[RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG",
RFC 7951, DOI 10.17487/RFC7951, August 2016,
<https://www.rfc-editor.org/info/rfc7951>.
[I-D.ietf-netmod-rfc8407bis]
Bierman, A., Boucadair, M., and Q. Wu, "Guidelines for
Authors and Reviewers of Documents Containing YANG Data
Models", Work in Progress, Internet-Draft, draft-ietf-
netmod-rfc8407bis-28, 5 June 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-netmod-
rfc8407bis-28>.
[Deh22] Dehghani, Z., "Data Mesh", O'Reilly Media,
ISBN 9781492092391, March 2022,
<https://www.oreilly.com/library/view/data-
mesh/9781492092384/>.
[Rab07] VMware, "RabbitMQ", Mozilla Public License, February 2007,
<https://rabbitmq.com/>.
[Kaf11] Narkhede, N., "Apache Kafka", Apache Software Foundation,
January 2011, <https://kafka.apache.org/>.
[Netgauze_Github]
"Netgauze open source Network Telemetry Data Collection",
<https://github.com/NetGauze/NetGauze/pull/213>.
Acknowledgements
The authors would like to thank Rob Wilton, Alex Huang Feng Benoit
Claise and Leonardo Rodoni for their review and valuable comments.
Elhassany & Graf Expires 2 January 2026 [Page 25]
Internet-Draft Telmetery Message July 2025
Authors' Addresses
Ahmed Elhassany
Swisscom
Binzring 17
CH- Zuerich 8045
Switzerland
Email: ahmed.elhassany@swisscom.com
Thomas Graf
Swisscom
Binzring 17
CH- Zuerich 8045
Switzerland
Email: thomas.graf@swisscom.com
Elhassany & Graf Expires 2 January 2026 [Page 26]