rfc-5277

NETCONF Event Notifications

S. Chisholm, H. Trevino
date2008-07 streamIETF areaops wgnetconf statusPROPOSED STANDARD pages35 canonicalhttps://www.rfc-editor.org/rfc/rfc5277 doi10.17487/RFC5277
This document defines mechanisms that provide an asynchronous message notification delivery service for the Network Configuration protocol (NETCONF). This is an optional capability built on top of the base NETCONF definition. This document defines the capabilities and operations necessary to support this service. [STANDARDS-TRACK]

Extracted elements (25)

design-rationale §3.2

Access control is applied after <notification> element generation per session: if a session lacks permission to receive the notification, it is silently discarded for that session. This defers authorization to per-session evaluation rather than at stream definition time.

netconf, security

design-rationale §1.2

Subscriptions are bound to a single NETCONF session and are non-persistent state; their lifetime is defined by session lifetime or the <stopTime> parameter. This design ensures that notification content fully describes an event without requiring protocol context, enabling independent analysis.

netconf

design-rationale §3.2.5.1

The filter element is a transient parameter applied against <notification> wrapper contents (not the wrapper itself) at subscription creation time and does not modify the underlying event stream configuration, keeping stream definitions independent of subscriber preferences.

netconf

interoperability-note §6.5

When a <create-subscription> is sent while another subscription is already active on that session (without :interleave), the server returns an 'operation-failed' protocol error. The :interleave capability must be present to allow multiple subscriptions or interleaved RPCs.

netconf

interoperability-note §3.2.5.1

XPATH support for notification filtering is tied to advertisement of the existing NETCONF XPATH capability. If the XPATH capability is not advertised, XPATH is not supported for notification filtering.

netconf, yang

normative-requirement §3.2.3 MUST

A NETCONF server implementation supporting the notification capability MUST support the 'NETCONF' notification event stream, which contains all NETCONF XML event notifications supported by the server.

netconf

normative-requirement §3.2.2 MUST

The contents of all event streams made available to a NETCONF client MUST be encoded in XML.

netconf, yang

normative-requirement §1.3 MUST

The NETCONF server MUST accept and process the <close-session> operation even while a notification subscription is active. Other commands MAY be accepted; otherwise they will be rejected and the server MUST send a 'resource-denied' error.

netconf

normative-requirement §7 MUST NOT

The NETCONF server MUST NOT include any content in a notification that the user is not authorized to view.

netconf, security

normative-requirement §3.3.2 MUST

The <replayComplete> and <notificationComplete> notifications cannot be filtered out; they will always be sent on a replay subscription that specified <startTime> and <stopTime>, respectively.

netconf

normative-requirement §3.4 MUST

The <replayLogCreationTime> element MUST be present if replay is supported. The <replayLogAgedTime> element MUST be present if replay is supported and any notifications have been aged out of the log.

netconf

normative-requirement §6.1 MUST

When the :interleave capability is supported, the NETCONF server MUST receive, process, and respond to NETCONF requests on a session with an active notification subscription.

netconf

protocol-element §3.2

Event streams are predefined sets of event notifications matching forwarding criteria. Each stream is described by <name> (mandatory, unique), <description>, <replaySupport> (boolean), and optionally <replayLogCreationTime> and <replayLogAgedTime>.

netconf, yang

protocol-element §3.2.5

Stream discovery uses a <get> operation on the <streams> subtree under namespace urn:ietf:params:xml:ns:netmod:notification. The returned list reflects only streams available to the requesting session based on user privileges.

netconf

protocol-element §2.1.1

The <create-subscription> operation initiates an event notification subscription that sends asynchronous event notifications to the initiator until the subscription terminates. Parameters include optional stream, filter, startTime, and stopTime elements.

netconf, yang

protocol-element §3.1.1

The notification capability is advertised using capability identifier 'urn:ietf:params:netconf:capability:notification:1.0' during the NETCONF <hello> capabilities exchange.

netconf

protocol-element §2.2.1

The <notification> element is the top-level element for one-way asynchronous event notification messages sent from server to client. It contains a mandatory <eventTime> field (dateTime, RFC3339-compliant) and notification-specific content.

netconf, yang

protocol-element §3.4

The <replayComplete> notification signals the end of the replay portion of a subscription. The <notificationComplete> notification signals that a bounded subscription (with <stopTime>) has ended. Neither can be filtered out.

netconf

registry §8

This document registers two NETCONF capability URNs in the IETF XML registry: urn:ietf:params:netconf:capability:notification:1.0 (:notification) and urn:ietf:params:netconf:capability:interleave:1.0 (:interleave), plus two XML namespace URIs and the XML Schema from Section 4.

netconf, registry

security-consideration §7

A malicious or buggy NETCONF client sending many <create-subscription> requests could exhaust system resources through accumulation of subscriptions. Mitigation is to terminate suspect NETCONF sessions using <kill-session>.

netconf, security

security-consideration §7

Notifications are never sent before the transport layer, NETCONF layer, capabilities exchange, and manager authentication have been completed. Access control must be applied to <create-subscription>, <get> on notification data models, and <notification> content.

netconf, security

security-consideration §7

Transporting data from non-NETCONF streams (e.g., syslog, SNMP) over NETCONF may expose data with different security properties than its native transport; the NETCONF server is responsible for applying access control to stream content.

netconf, security, snmp, syslog

state-machine §3.7

A subscription session transitions from normal NETCONF session → active subscription (on <create-subscription> success) → replay phase (if <startTime> specified, ends with <replayComplete>) → live notification phase → terminated (on <close-session>, <kill-session>, transport close, or <stopTime> reached, followed by <notificationComplete> if stopTime was set).

netconf

wire-format §4

The <create-subscription> XML element carries optional child elements: <stream> (streamNameType string), <filter> (netconf:filterInlineType), <startTime> (xs:dateTime), and <stopTime> (xs:dateTime). All four children have minOccurs='0'.

netconf, yang

wire-format §4

The <notification> XML element contains a mandatory <eventTime> child of type xs:dateTime followed by an abstract <notificationContent> element reference, encoded under namespace urn:ietf:params:xml:ns:netconf:notification:1.0.

netconf, yang