| Internet-Draft | YANG Notification Transport Capabilities | August 2026 |
| Wu, et al. | Expires 18 February 2027 | [Page] |
This document specifies a YANG module for discovering transport capabilities for YANG notifications. The module augments the YANG notifications capabilities model with capabilities for the notification transport protocol, transport encoding, and transport encryption. The capabilities enable a client to determine the notification transport options supported by a NETCONF or RESTCONF server at runtime or at implementation time using the YANG instance data file format.¶
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 18 February 2027.¶
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.¶
The "ietf-system-capabilities" YANG module defined in [RFC9196] allows a NETCONF or RESTCONF client to discover capabilities supported by a NETCONF or RESTCONF server, including basic system capabilities and YANG-Push related capabilities. These capabilities can be provided at implementation time or reported at runtime, allowing a client to determine which YANG management features are supported by the server.¶
YANG Notifications, as defined in [RFC8639] and [RFC8641], allow clients to establish subscriptions for receiving YANG notifications from a NETCONF or RESTCONF server. A server may support multiple notification delivery protocols, encoding formats, and security protocols. Knowledge of these capabilities can allow a client to select an appropriate notification delivery protocol and associated parameters when establishing a subscription.¶
Currently, a client may determine whether a particular notification delivery protocol and its associated parameters are supported only by attempting to use them through configuration. For example, a NETCONF or RESTCONF server may reject a subscription request when the requested notification delivery parameters, such as the delivery protocol, encoding format, or security protocol, are not supported. As described in Section 3.2 of [RFC8641], a simple negotiation mechanism, such as inserting hints into an error response to a failed RPC request, can increase the likelihood of success for subsequent RPC requests involving subscription parameters. While such error responses can help establish a subscription, they are not widely supported and may result in unexpected failures or additional message exchanges between the client and server.¶
This document defines a YANG module that extends the system capabilities model defined in [RFC9196] with capabilities specific to the delivery of YANG notifications. The module allows a NETCONF or RESTCONF client to discover, from a NETCONF or RESTCONF server, the notification delivery protocols, encoding formats, and security protocols supported for YANG notifications. The capabilities can be provided at implementation time using the YANG instance data file format or discovered at runtime through a YANG management protocol.¶
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 "subscription", "publisher", and "receiver" are used as defined in [RFC8639].¶
The terms "client", and "server" are used as defined in [RFC8342].¶
The term "transport protocol" is used as defined by the "transport" identity in [RFC8639] and refers to the notification delivery protocol used to deliver YANG notifications between a publisher and a receiver.¶
Section 3.1 of [RFC8641] lists the NETCONF/RESTCONF server capabilities related to YANG-Push that are supported in the YANG module "ietf-notification-capabilities".¶
These server capabilities are transport independent, session level capabilities. They can be provided either at the implementation time or reported at runtime.¶
This document provides additional attributes associated with system capabilities that are related to the YANG notification delivery protocol:¶
Transport protocols supported for YANG notifications that a client can request when establishing a subscription. This includes HTTPS-based [I-D.ietf-netconf-https-notif] or UDP-based [I-D.ietf-netconf-udp-notif] transports for configured subscriptions.¶
YANG notifications encodings formats supported by the NETCONF/RESTCONF server. This includes XML [RFC7950], JSON [RFC7951] or CBOR [RFC9254].¶
Security protocols supported for protecting YANG notifications connections. This includes DTLS 1.2 [RFC6347], DTLS 1.3 [RFC9147], TLS 1.2 [RFC5246], and TLS 1.3 [RFC8446].¶
The model defined in this document augments the System Capabilities model defined in [RFC9196].¶
This model is intended to be used between an orchestrator and a network device that provides YANG notifications. A management network between the orchestrator and the network device is assumed to be available for exchanging YANG management information. The management connectivity and endpoint of the network device are expected to be provisioned as part of the management network configuration. The orchestrator can use the established management connection to discover the notification transport capabilities of the network device before establishing the notification subscription.¶
The following tree diagram [RFC8340] provides an overview of the data model.¶
module: ietf-yp-transport-capabilities
augment /sysc:system-capabilities/notc:subscription-capabilities:
+--ro transport-capabilities
+--ro transport-capability* [transport-protocol]
+--ro transport-protocol identityref
+--ro security-protocol* union
+--ro encoding-format* identityref
¶
<CODE BEGINS> file "ietf-yp-transport-capabilities@2026-08-13.yang"
module ietf-yp-transport-capabilities {
yang-version 1.1;
namespace
"urn:ietf:params:xml:ns:yang:ietf-yp-transport-capabilities";
prefix yptc;
import ietf-subscribed-notifications {
prefix sn;
reference
"RFC 8639: Subscription to YANG Notifications";
}
import ietf-system-capabilities {
prefix sysc;
reference
"RFC 9196: YANG Modules Describing Capabilities for
Systems and Datastore Update Notifications";
}
import ietf-notification-capabilities {
prefix notc;
reference
"RFC 9196: YANG Modules Describing Capabilities for
Systems and Datastore Update Notifications";
}
import ietf-tls-common {
prefix tlscmn;
reference
"RFC 9645: YANG Groupings for TLS Clients and TLS Servers";
}
organization
"IETF NETCONF (Network Configuration) Working Group";
contact
"WG Web: <https://datatracker.ietf.org/group/netconf/>
WG List: <mailto:netconf@ietf.org>
Authors: Qin Wu
<mailto:bill.wu@huawei.com>
Qiufang Ma
<mailto:maqiufang1@huawei.com>
Alex Huang Feng
<mailto:alex.huang-feng@t-systems.com>
Thomas Graf
<mailto:thomas.graf@swisscom.com>";
description
"This module defines an extension to YANG-Push
Notification Capabilities model that provides additional
transport specific capabilities for YANG notifications.
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) 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
(http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
for full legal notices.";
revision 2026-08-13 {
description
"Initial revision.";
reference
"RFC XXXX: YANG Notifications Transport Capabilities";
}
identity security-protocol {
description
"Identity for YANG notifications security protocols.";
}
identity dtls12 {
base security-protocol;
description
"Indicates DTLS Protocol Version 1.2. DTLS 1.2 is obsolete,
and thus it is NOT RECOMMENDED to enable this feature.";
reference
"RFC 6347: The Datagram Transport Layer Security (DTLS)
Protocol Version 1.2.";
}
identity dtls13 {
base security-protocol;
description
"Indicates DTLS Protocol Version 1.3.";
reference
"RFC 9147: The Datagram Transport Layer Security (DTLS)
Protocol Version 1.3.";
}
augment "/sysc:system-capabilities"
+ "/notc:subscription-capabilities" {
description
"Adds subscription-related system level capabilities.";
container transport-capabilities {
description
"Specifies capabilities related to YANG-Push transports.";
list transport-capability {
key "transport-protocol";
description
"Indicates supported YANG notifications transport protocol
for Subscribed Notifications [RFC8639] and YANG-Push
[RFC8641]. Defines the supported transports, security
protocols and supported notification encodings.";
leaf transport-protocol {
type identityref {
base sn:transport;
}
description
"Indicates the supported YANG notifications transport
protocol for Subscribed Notifications [RFC8639] and
YANG-Push [RFC8641].";
}
leaf-list security-protocol {
type union {
type identityref {
base security-protocol;
}
type identityref {
base tlscmn:tls-version-base;
}
}
description
"Indicates the supported YANG notifications transport
encryption protocols.";
}
leaf-list encoding-format {
type identityref {
base sn:encoding;
}
description
"Indicates supported encoding formats for YANG
notifications.";
}
}
}
}
}
<CODE ENDS>¶
This document registers a URI in the "IETF XML Registry" [RFC3688]. Following the format in [RFC3688], the following registration has been made:¶
URI: urn:ietf:params:xml:ns:yang:ietf-yp-transport-capabilities Registrant Contact: The IESG. XML: N/A; the requested URI is an XML namespace. Reference: RFC XXXX (RFC Ed.: replace XXX with actual RFC number and remove this note.)¶
This document registers one YANG module in the "YANG Module Names" registry [RFC6020]. Following the format in [RFC6020], the following registration has been made:¶
name: ietf-yp-transport-capabilities namespace: urn:ietf:params:xml:ns:yang:ietf-yp-transport-capabilities prefix: yptc reference: RFC XXXX (RFC Ed.: replace XXX with actual RFC number and remove this note.)¶
Note to the RFC-Editor: Please remove this section before publishing.¶
Huawei implemented this document for a YANG Push publisher in their VRP platform.¶
Cisco implemented this document for a YANG Push publisher in their IOS XR platform.¶
This section is modeled after the template described in Section 3.7 of [I-D.ietf-netmod-rfc8407bis]¶
The "ietf-yp-transport-capabilities" YANG module defines a data model that is 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 [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.¶
All protocol-accessible data nodes are read-only and cannot be modified. The data in the module is not security sensitive. It inherits all the security considerations of [RFC9196].¶
Ran Tao Huawei 101 Software Avenue, Yuhua District Nanjing, Jiangsu 210012 China Email: taoran20@huawei.com Liang Geng China Mobile 32 Xuanwumen West St, Xicheng District Beijing 10053 China Email: gengliang@chinamobile.com Peng Liu China Mobile Beiqijia Town, Changping District Beijing 10053 China Email: liupengyjy@chinamobile.com Wei Wang China Telecom 32 Xuanwumen West St, Xicheng District Beijing 102209 China Email: wangw36@chinatelecom.cn¶
The authors would like to thank Mohamed Boucadair, Kent Watson, Jan Lindblad, Reshad Rahman, Xiao Min, Per Andersson and Rob Wilton for their review and valuable comments.¶
The following instance-data example describes the notification transport capabilities of a hypothetical "acme-router".¶
<?xml version="1.0" encoding="UTF-8"?>
<instance-data-set
xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-instance-data"
xmlns:sysc="urn:ietf:params:xml:ns:yang:ietf-system-capabilities"
xmlns:notc="urn:ietf:params:xml:ns:yang:ietf-notification-capabilities"
xmlns:hnt="urn:ietf:params:xml:ns:yang:ietf-https-notif-transport"
xmlns:sn="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
xmlns:tlscmn="urn:ietf:params:xml:ns:yang:ietf-tls-common"
xmlns:unt="urn:ietf:params:xml:ns:yang:ietf-udp-notif-transport">
<name>acme-router-notification-capabilities</name>
<content-schema>
<module>ietf-system-capabilities@2022-02-17</module>
<module>ietf-notification-capabilities@2022-02-17</module>
<module>ietf-yp-transport-capabilities@2026-08-13</module>
</content-schema>
<!-- revision date, contact, etc. -->
<description>Server Capability Discovery</description>
<content-data>
<sysc:system-capabilities>
<notc:subscription-capabilities>
<transport-capabilities
xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-transport-capabilities">
<transport-capability>
<transport-protocol>hnt:https</transport-protocol>
<encoding-format>sn:encode-xml</encoding-format>
<encoding-format>sn:encode-json</encoding-format>
<security-protocol>tlscmn:tls12</security-protocol>
<security-protocol>tlscmn:tls13</security-protocol>
</transport-capability>
<transport-capability>
<transport-protocol>unt:udp-notif</transport-protocol>
<encoding-format>sn:encode-json</encoding-format>
<encoding-format>unt:encode-cbor</encoding-format>
<security-protocol>dtls12</security-protocol>
<security-protocol>dtls13</security-protocol>
</transport-capability>
</transport-capabilities>
</notc:subscription-capabilities>
</sysc:system-capabilities>
</content-data>
</instance-data-set>
¶
In addition, the client could also query notification transport capabilities from the NETCONF or RESTCONF server. For example, the client sends <get> request message to the the server to query from the server.¶
================= NOTE: '\' line wrapping per RFC 8792 ==================
<rpc message-id="101"
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<get>
<filter type="subtree">
<system-capabilities xmlns="urn:ietf:params:xml:ns:yang:ietf-syste\
m-capabilities">
<subscription-capabilities xmlns="urn:ietf:params:xml:ns:yang:ie\
tf-notification-capabilities">
<transport-capabilities xmlns="urn:ietf:params:xml:ns:yang:iet\
f-yp-transport-capabilities"/>
</subscription-capabilities>
</system-capabilities>
</filter>
</get>
</rpc>
¶
The server returns server data export capability using <rpc-reply> as follows:¶
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns:sysc="urn:ietf:params:xml:ns:yang:ietf-system-capabilities"
xmlns:notc="urn:ietf:params:xml:ns:yang:ietf-notification-capabilities"
xmlns:hnt="urn:ietf:params:xml:ns:yang:ietf-https-notif-transport"
xmlns:sn="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
xmlns:unt="urn:ietf:params:xml:ns:yang:ietf-udp-notif-transport"
xmlns:tlscmn="urn:ietf:params:xml:ns:yang:ietf-tls-common"
message-id="101">
<data>
<sysc:system-capabilities>
<notc:subscription-capabilities>
<transport-capabilities
xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-transport-capabilities">
<transport-capability>
<transport-protocol>hnt:https</transport-protocol>
<encoding-format>sn:encode-xml</encoding-format>
<encoding-format>sn:encode-json</encoding-format>
<security-protocol>tlscmn:tls12</security-protocol>
<security-protocol>tlscmn:tls13</security-protocol>
</transport-capability>
<transport-capability>
<transport-protocol>unt:udp-notif</transport-protocol>
<encoding-format>sn:encode-json</encoding-format>
<encoding-format>unt:encode-cbor</encoding-format>
<security-protocol>dtls12</security-protocol>
<security-protocol>dtls13</security-protocol>
</transport-capability>
</transport-capabilities>
</notc:subscription-capabilities>
</sysc:system-capabilities>
</data>
</rpc-reply>
¶