NMOP A. Elhassany Internet-Draft T. Graf Intended status: Informational Swisscom Expires: 10 December 2025 8 June 2025 Extensible YANG Model for Network Telemetry Messages draft-netana-nmop-message-broker-telemetry-message-01 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 10 December 2025. 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 10 December 2025 [Page 1] Internet-Draft Telmetery Message June 2025 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 4. Security Considerations . . . . . . . . . . . . . . . . . . . 18 5. Implementation status . . . . . . . . . . . . . . . . . . . . 18 5.1. Netgauze . . . . . . . . . . . . . . . . . . . . . . . . 19 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.1. Normative References . . . . . . . . . . . . . . . . . . 21 6.2. Informative References . . . . . . . . . . . . . . . . . 22 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 23 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 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 10 December 2025 [Page 2] Internet-Draft Telmetery Message June 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? 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]. In addition, this document reuses the terms defined in [I-D.netana-netconf-notif-envelope] for the use in message broker enviroment: 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. Elhassany & Graf Expires 10 December 2025 [Page 3] Internet-Draft Telmetery Message June 2025 2. YANG Module The extensible YANG module for Network Telemetry messages defines an envelope message schema which adds four metadata categories to the collected Network Telemetry notifications. Network Node Provenance: The "network-node-manifest" container in "ietf-telemetry-message" contains the provenance information about the network node that published YANG notifications to the receiver. This category adds metadata such as the node name, address, and software version to the message. Data Collection Provenance: The "data-collection-metadata" container in "ietf-telemetry-message" contains the provenance information about the data collection. The data type is the same as the first category but specific to the collector node. Data Collection Protocol Provenance: The "session-protocol" container in "ietf-telemetry-message" contains the session information about the session between the collector and the network node. This category adds fields such as the session protocol and the time the event was generated in the network node. Moreover, this document defines an extension specific to YANG-Push that includes YANG-Push subscription information. Network Operator Provenance: The optional labels list in the "data- collection-metadata" container in "ietf-telemetry-message" 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 10 December 2025 [Page 4] Internet-Draft Telmetery Message June 2025 module: ietf-telemetry-message +--ro message +--ro timestamp yang:date-and-time +--ro session-protocol | telemetry-session-protocol-type +--ro 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 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 telemetry-message-metadata | +--ro event-time? yang:date-and-time +--ro data-collection-metadata | +--ro remote-address inet:host | +--ro remote-port? inet:port-number | +--ro local-address? inet:host | +--ro local-port? inet:port-number | +--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? +--ro payload? Figure 1: YANG tree diagram for 'ietf-telemetry-message' module. Elhassany & Graf Expires 10 December 2025 [Page 5] Internet-Draft Telmetery Message June 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? | +--:(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 file "ietf-telemetry-message@2025-04-17.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 10 December 2025 [Page 6] Internet-Draft Telmetery Message June 2025 } 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 Thomas Graf "; description "This YANG modules defines a model for a telemetry collector to send collected YANG data from the network. 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-04-17 { description "Initial revision."; reference "RFC XXXX"; } identity session-protocol { description "Base identity to represent session protocols."; } identity yp-push { base session-protocol; description "YANG-Push in RFC 8640 or RFC 8641 or RFC 8650."; Elhassany & Graf Expires 10 December 2025 [Page 7] Internet-Draft Telmetery Message June 2025 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."; } 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."; } 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; Elhassany & Graf Expires 10 December 2025 [Page 8] Internet-Draft Telmetery Message June 2025 } description "Notification protocol used to deliver the notification to the data collection."; } container message { config false; description "Telemetry message used in Data Mesh"; leaf timestamp { type yang:date-and-time; mandatory true; description "Timestamp when the data collection collected the payload from the network element or an update or delete event is triggered."; } leaf session-protocol { type telemetry-session-protocol-type; mandatory true; description "Session protocol used to collect the payload of this message from the network"; } container network-node-manifest { description "Address of network element from which the payload is collected."; uses p-mf:platform-details; } container data-collection-manifest { description "Address of the telemetry data collection."; uses p-mf:platform-details; } container telemetry-message-metadata { description "Extensible message and protocol specific metadata"; leaf event-time { type yang:date-and-time; description "NETCONF eventTime. Redefined in here since NETCONF header is XML not YANG."; } } container data-collection-metadata { description Elhassany & Graf Expires 10 December 2025 [Page 9] Internet-Draft Telmetery Message June 2025 "Metadata added by data collection."; leaf remote-address { type inet:host; mandatory true; description "Network node IP address."; } leaf remote-port { type inet:port-number; description "Network node transport port number."; } leaf local-address { type inet:host; description "Data collection IP address."; } leaf local-port { type inet:port-number; description "Data collection transport port number."; } list labels { key "name"; description "Arbiterary labels assinged by the data collection."; leaf name { 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 Elhassany & Graf Expires 10 December 2025 [Page 10] Internet-Draft Telmetery Message June 2025 "YANG anydata value"; anydata anydata-values { description "anydata yang"; } } } } } anydata payload { description "Message or notification received from network element."; } } } Figure 3: YANG 'ietf-telemetry-message' module. file "ietf-yang-push-telemetry-message@2025-04-17.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 { prefix sn; reference "RFC 8639: Subscription to YANG Notifications"; } import ietf-telemetry-message { prefix tm; reference "XXX"; } 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 { Elhassany & Graf Expires 10 December 2025 [Page 11] Internet-Draft Telmetery Message June 2025 prefix ds; reference "RFC 8342: Network Management Datastore Architecture (NMDA)"; } import ietf-yang-revisions { prefix rev; reference "RFC YYYY: draft-ietf-netmod-yang-module-versioning-11, Updated YANG Module Revision Handling"; } import ietf-yang-semver { prefix ysver; reference "RFC ZZZZ: draft-ietf-netmod-yang-semver-15, YANG Semantic Versioning"; } organization "IETF Draft"; contact "Author: Ahmed Elhassany Thomas Graf "; description "Augments the ietf-telemetry-message with YANG Push specific fields. 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."; Elhassany & Graf Expires 10 December 2025 [Page 12] Internet-Draft Telmetery Message June 2025 revision 2025-04-17 { description "Initial revision."; reference "RFC XXXX"; } augment "/tm:message/tm:telemetry-message-metadata" { description "Augments telemetry-message-metadata with YANG-Push specific metadata"; container yang-push-subscription { config false; description "YANG-Push specific 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 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 Elhassany & Graf Expires 10 December 2025 [Page 13] Internet-Draft Telmetery Message June 2025 "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 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."; Elhassany & Graf Expires 10 December 2025 [Page 14] Internet-Draft Telmetery Message June 2025 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."; } } } 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 { Elhassany & Graf Expires 10 December 2025 [Page 15] Internet-Draft Telmetery Message June 2025 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."; 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; Elhassany & Graf Expires 10 December 2025 [Page 16] Internet-Draft Telmetery Message June 2025 config false; description "Contains the YANG library content identifier RFC 8525 information."; } } } } 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 * 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 Elhassany & Graf Expires 10 December 2025 [Page 17] Internet-Draft Telmetery Message June 2025 * 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. 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. Elhassany & Graf Expires 10 December 2025 [Page 18] Internet-Draft Telmetery Message June 2025 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": { "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" }, "data-collection-metadata": { "labels": [ { "name": "nkey", "string-value": "unknown" }, { "name": "pkey", "string-value": "unknown" } ], "remote-address": "192.168.100.3", "remote-port": 57914 }, "network-node-manifest": {}, "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 10 December 2025 [Page 19] Internet-Draft Telmetery Message June 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 } }, "session-protocol": "yp-push", "telemetry-message-metadata": { "ietf-yang-push-telemetry-message:yang-push-subscription": { "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" } }, "timestamp": "2025-05-22T07:28:23.481855122Z" } } Figure 5: JSON Network Telemetry Example Elhassany & Graf Expires 10 December 2025 [Page 20] Internet-Draft Telmetery Message June 2025 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, . [RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252, January 2006, . [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, . [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, . [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016, . [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10.17487/RFC8341, March 2018, . [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, . [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, . Elhassany & Graf Expires 10 December 2025 [Page 21] Internet-Draft Telmetery Message June 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, . [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Multiplexed and Secure Transport", RFC 9000, DOI 10.17487/RFC9000, May 2021, . [RFC9232] Song, H., Qin, F., Martinez-Julia, P., Ciavaglia, L., and A. Wang, "Network Telemetry Framework", RFC 9232, DOI 10.17487/RFC9232, May 2022, . [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, . [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, . 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, . [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", RFC 7951, DOI 10.17487/RFC7951, August 2016, . Elhassany & Graf Expires 10 December 2025 [Page 22] Internet-Draft Telmetery Message June 2025 [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, . [Deh22] Dehghani, Z., "Data Mesh", O'Reilly Media, ISBN 9781492092391, March 2022, . [Rab07] VMware, "RabbitMQ", Mozilla Public License, February 2007, . [Kaf11] Narkhede, N., "Apache Kafka", Apache Software Foundation, January 2011, . [Netgauze_Github] "Netgauze open source Network Telemetry Data Collection", . Acknowledgements The authors would like to thank Rob Wilton and Alex Huang Feng for their review and valuable comments. 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 10 December 2025 [Page 23]