Internet J. Tantsura Internet-Draft Nvidia Intended status: Standards Track Y. Qu Expires: 7 January 2027 Futurewei Technologies 6 July 2026 A YANG Data Model for Fast Network Notifications draft-tantsura-fann-yang-00 Abstract This document defines a YANG data model to Fast Network Notifictions. 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 7 January 2027. Copyright Notice Copyright (c) 2026 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. Tantsura & Qu Expires 7 January 2027 [Page 1] Internet-Draft FANN YANG July 2026 Table of Contents 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 2. YANG Module for Fast Network Notifications . . . . . . . . . 2 3. Security Considerations . . . . . . . . . . . . . . . . . . . 13 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 6.1. Normative References . . . . . . . . . . . . . . . . . . 15 6.2. Informative References . . . . . . . . . . . . . . . . . 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 1. Overview This document defines a YANG [RFC7950] data model for the support of fast network notifications. The configuration in the model allows network operators to config the network conditions to generate notifications. For example, when a queue-depth reaches to a configured threshold. The grouping of "recipient" allows the configuration of various recipients so a notification can be sent to different recipients based on requirement, such as to a link or to a list of subsribers. Notifications are sent when the configured conditions are met. The meanings of the symbols in the YANG tree diagrams are defined in [RFC8340]. 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. 2. YANG Module for Fast Network Notifications This document defines a YANG module to support fast network notifications. Tantsura & Qu Expires 7 January 2027 [Page 2] Internet-Draft FANN YANG July 2026 module: ietf-fann +--rw fann +--rw fast-network-notification* [notification-id] +--rw notification-id string +--rw source-id? inet:uri +--rw receivers | +--rw (receiver)? | +--:(link) | | +--rw link? string | +--:(path) | | +--rw path? string | +--:(domain) | | +--rw domain? empty | +--:(subscribe-nodes) | +--rw subscribe-nodes* inet:uri +--rw (condition) +--:(link-congestion) | +--rw link? string | +--rw utilization-level? decimal64 | +--rw congestion-threshold? uint8 +--:(microburst) | +--rw duration? yang:timeticks | +--rw intensity? decimal64 | +--rw affected-resource? string +--:(sla-violation) | +--rw sla-reference? string | +--rw violated-metric? string | +--rw measured-value? decimal64 | +--rw threshold? decimal64 +--:(queue-build-up) | +--rw queue-id? string | +--rw depth? uint64 | +--rw queue-threshold? uint8 +--:(local-impairment) +--rw impairment-type? string +--rw description? string +--rw domain-id? string +--rw node-id? string +--rw path-id? string +--rw link-id? string notifications: +---n fast-network-notification-event +--ro notification-id? string +--ro timestamp yang:date-and-time +--ro source-id? inet:uri +--ro receivers | +--ro (receiver)? Tantsura & Qu Expires 7 January 2027 [Page 3] Internet-Draft FANN YANG July 2026 | +--:(link) | | +--ro link? string | +--:(path) | | +--ro path? string | +--:(domain) | | +--ro domain? empty | +--:(subscribe-nodes) | +--ro subscribe-nodes* inet:uri +--ro condition +--ro (condition-type) +--:(link-congestion) | +--ro link? string | +--ro utilization-level? decimal64 +--:(microburst) | +--ro duration? yang:timeticks | +--ro intensity? decimal64 | +--ro affected-resource? string +--:(sla-violation) | +--ro sla-reference? string | +--ro violated-metric? string | +--ro measured-value? decimal64 +--:(queue-build-up) | +--ro queue-id? string | +--ro depth? uint64 +--:(local-impairment) +--ro impairment-type? string +--ro description? string +--ro domain-id? string +--ro node-id? string +--ro path-id? string +--ro link-id? string file "ietf-fann@2026-07-05.yang" module ietf-fann { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-fann"; prefix fann; import ietf-yang-types { prefix yang; reference "RFC 6991: Common YANG Data Types"; } import ietf-inet-types { prefix inet; reference "RFC 6991: Common YANG Data Types"; } Tantsura & Qu Expires 7 January 2027 [Page 4] Internet-Draft FANN YANG July 2026 organization "IETF FANN - Fast Network Notifications Working Group"; contact "WG Web: https://datatracker.ietf.org/wg/fantel/ WG List: fann@ietf.org Author: Yingzhen Qu Author: Jeff Tantsura "; description "This YANG module defines fast notifications of fine-grained network status information. It structures real-time network condition data for dissemination to nodes and applications that perform traffic engineering, load balancing, flow control, and protection switching. Copyright (c) 2026 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). All revisions of IETF and IANA published modules can be found at the YANG Parameters registry group (https://www.iana.org/assignments/yang-parameters). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; revision 2026-07-05 { description "Initial revision."; reference "RFC XXXX: A YANG Data Model for Fast Network Notifications"; } /* * Type definitions */ Tantsura & Qu Expires 7 January 2027 [Page 5] Internet-Draft FANN YANG July 2026 typedef time-scale-type { type enumeration { enum microseconds { description "Time scale in microseconds."; } enum sub-millisecond { description "Time scale below one millisecond."; } } description "Granularity of the notification or condition in time."; } typedef notification-scope-type { type enumeration { enum link { description "Scope limited to a single link."; } enum path { description "Scope along a path."; } enum domain { description "Scope within a domain."; } enum subscribe { description "Scope based on subscription."; } } description "Scope of the fast network notification."; } typedef severity-level-type { type enumeration { enum low { description "Low severity."; } enum medium { description "Medium severity."; } enum high { description "High severity."; Tantsura & Qu Expires 7 January 2027 [Page 6] Internet-Draft FANN YANG July 2026 } enum critical { description "Critical severity."; } } description "Severity of the network condition."; } /* * Groupings */ grouping network-location { description "Network location context for the notification or condition."; leaf domain-id { type string; description "Identifier of the domain."; } leaf node-id { type string; description "Node identifiers."; } leaf path-id { type string; description "Optional path identifier."; } leaf link-id { type string; description "Optional link identifier."; } } grouping recipient { container receivers { choice receiver { leaf link { type string; description "Uniquely identify the link where the notification will be sent to."; } leaf path { Tantsura & Qu Expires 7 January 2027 [Page 7] Internet-Draft FANN YANG July 2026 type string; description "Scope along a path."; } leaf domain { type empty; description "Scope within a domain."; } leaf-list subscribe-nodes { type inet:uri; description "List of recipient nodes based on subscription."; } description "Receivers of the fast network notification."; } description "Notification receivers."; } description "Target recipient of the fast network notification."; } grouping link-congestion { description "Link congestion condition."; leaf link { type string; description "Identifier of the congested link."; } leaf utilization-level { type decimal64 { fraction-digits 2; range "0..100"; } units "percent"; description "Link utilization level."; } leaf congestion-threshold { type uint8 { range "0..100"; } units "percent"; description "A configured threshold. A notification should be generated when the threshold is exceeded."; } } Tantsura & Qu Expires 7 January 2027 [Page 8] Internet-Draft FANN YANG July 2026 grouping microburst { description "Microburst condition."; leaf duration { type yang:timeticks; description "Duration of the microburst."; } leaf intensity { type decimal64 { fraction-digits 4; } description "Intensity metric of the microburst."; } leaf affected-resource { type string; description "Identifier of the affected resource."; } } grouping sla-violation { description "SLA violation condition."; leaf sla-reference { type string; description "Reference to the SLA that was violated."; } leaf violated-metric { type string; description "Type of metric that was violated."; } leaf measured-value { type decimal64 { fraction-digits 4; } description "Measured value that caused the violation."; } leaf threshold { type decimal64 { fraction-digits 4; } description "Threshold that was exceeded."; } } grouping queue-build-up { description "Queue build-up condition."; leaf queue-id { type string; description "Identifier of the queue."; } Tantsura & Qu Expires 7 January 2027 [Page 9] Internet-Draft FANN YANG July 2026 leaf depth { type uint64; description "Current queue depth (e.g., bytes or packets)."; } leaf queue-threshold { type uint8 { range "0..100"; } units "percent"; description "A configured threshold. A notification should be generated when the threshold is exceeded."; } } grouping local-impairment { description "Local impairment condition."; leaf impairment-type { type string; description "Type of local impairment."; } leaf description { type string; description "Human-readable description of the impairment."; } uses network-location; } grouping network-condition-status { description "Structured network condition data. One of the condition types must be present."; choice condition-type { mandatory true; description "Type of network condition."; case link-congestion { leaf link { type string; description "Identifier of the congested link."; } leaf utilization-level { type decimal64 { fraction-digits 2; range "0..100"; } units "percent"; description "Link utilization level."; } Tantsura & Qu Expires 7 January 2027 [Page 10] Internet-Draft FANN YANG July 2026 } case microburst { uses microburst; } case sla-violation { leaf sla-reference { type string; description "Reference to the SLA that was violated."; } leaf violated-metric { type string; description "Type of metric that was violated."; } leaf measured-value { type decimal64 { fraction-digits 4; } description "Measured value that caused the violation."; } } case queue-build-up { leaf queue-id { type string; description "Identifier of the queue."; } leaf depth { type uint64; description "Current queue depth (e.g., bytes or packets)."; } } case local-impairment { uses local-impairment; } } } grouping fast-network-notification { description "Fast network notification: on-demand, fine-grained network status information for prompt actions by recipients."; leaf notification-id { type string; description "Unique identifier of the notification."; } leaf timestamp { type yang:date-and-time; mandatory true; description "Time when the notification was generated."; Tantsura & Qu Expires 7 January 2027 [Page 11] Internet-Draft FANN YANG July 2026 } leaf source-id { type inet:uri; description "Identifier for a node, uniquely identifies a node."; } uses recipient; container condition { uses network-condition-status; description "Network condition conveyed by this notification."; } } /* * Configuration and status */ container fann { description "Top-level container for FANN configuration and state."; list fast-network-notification { key "notification-id"; description "A fast network notification entry."; leaf notification-id { type string; description "Unique identifier of the notification."; } leaf source-id { type inet:uri; description "Identifier for a node, uniquely identifies a node."; } uses recipient; choice condition { mandatory true; description "Type of network condition."; case link-congestion { uses link-congestion; } case microburst { uses microburst; } case sla-violation { Tantsura & Qu Expires 7 January 2027 [Page 12] Internet-Draft FANN YANG July 2026 uses sla-violation; } case queue-build-up { uses queue-build-up; } case local-impairment { uses local-impairment; } } } } /* * notification */ notification fast-network-notification-event { description "Fast network notification event for real-time dissemination of fine-grained network status."; uses fast-network-notification; } } 3. Security Considerations This section is modeled after the template described in Section 3.7.1 of [RFC9907]. The YANG modules defined in this document are designed to be accessed via YANG-based management protocols, such as NETCONF [RFC6241] and RESTCONF [RFC8040]. These protocols have to use a secure transport layer (e.g., SSH [RFC4252], TLS [I-D.ietf-tls-rfc8446bis], 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. Tantsura & Qu Expires 7 January 2027 [Page 13] Internet-Draft FANN YANG July 2026 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: /fann/fast-entwork-notifcation/receivers - Modification to the configuration of notification receivers can be used to mount a DoS attack. /fann/ast-entwork-notifcation/condition - Modification to the configuration of notification conditions can be used to mount a DoS attack. Some of the readable data nodes in the modules 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. The exposure of the network conditions will expose the detailed operaton state of the network. This may be undesirable since exposure may facilitate other attacks. The notification defined in this document may reveal information about network status. Access to this notification SHOULD be restricted using NACM [RFC8341] to authorized management stations. The YANG modules defined in this document do not include any RPC or action operations. Hence, there are no security considerations associated with these YANG constructs. 4. IANA Considerations This document registers two URIs in the IETF XML registry [RFC3688]. Following the format in [RFC3688], the following registrations are requested: URI: urn:ietf:params:xml:ns:yang:ietf-fann Registrant Contact: The IESG. XML: N/A, the requested URI is an XML namespace. This document registers the YANG modules in the YANG Module Names registry [RFC7950]. Tantsura & Qu Expires 7 January 2027 [Page 14] Internet-Draft FANN YANG July 2026 name: ietf-fann Maintained by IANA? N namespace: urn:ietf:params:xml:ns:yang:ietf-fann prefix: fann reference: RFC XXXX 5. Acknowledgements TBD. 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, . [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, . [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, . 6.2. Informative References [I-D.ietf-tls-rfc8446bis] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", Work in Progress, Internet-Draft, draft- ietf-tls-rfc8446bis-14, 13 September 2025, . [RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252, January 2006, . Tantsura & Qu Expires 7 January 2027 [Page 15] Internet-Draft FANN YANG July 2026 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, . [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, . [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, . [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Multiplexed and Secure Transport", RFC 9000, DOI 10.17487/RFC9000, May 2021, . [RFC9907] Bierman, A., Boucadair, M., Ed., and Q. Wu, "Guidelines for Authors and Reviewers of Documents Containing YANG Data Models", BCP 216, RFC 9907, DOI 10.17487/RFC9907, March 2026, . Authors' Addresses Jeff Tantsura Nvidia United States of America Email: jefftant.ietf@gmail.com Yingzhen Qu Futurewei Technologies United States of America Email: yingzhen.ietf@gmail.com Tantsura & Qu Expires 7 January 2027 [Page 16]