1 module ietf-netconf-notifications {
4 "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications";
8 import ietf-inet-types { prefix inet; }
9 import ietf-netconf { prefix nc; }
12 "IETF NETCONF (Network Configuration Protocol) Working Group";
15 "WG Web: <http://tools.ietf.org/wg/netconf/>
16 WG List: <mailto:netconf@ietf.org>
19 <mailto:bertietf@bwijnen.net>
21 WG Chair: Mehmet Ersue
22 <mailto:mehmet.ersue@nsn.com>
25 <mailto:andy@netconfcentral.org>";
28 "This module defines a YANG data model for use with the
29 NETCONF protocol that allows the NETCONF client to
30 receive common NETCONF base event notifications.
32 Copyright (c) 2012 IETF Trust and the persons identified as
33 the document authors. All rights reserved.
35 Redistribution and use in source and binary forms, with or
36 without modification, is permitted pursuant to, and subject
37 to the license terms contained in, the Simplified BSD License
41 set forth in Section 4.c of the IETF Trust's Legal Provisions
42 Relating to IETF Documents
43 (http://trustee.ietf.org/license-info).
45 This version of this YANG module is part of RFC 6470; see
46 the RFC itself for full legal notices.";
48 revision "2012-02-06" {
50 "Initial version. Errata 3957 added.";
52 "RFC 6470: NETCONF Base Notifications";
55 grouping common-session-parms {
57 "Common session parameters to identify a
64 "Name of the user for the session.";
68 type nc:session-id-or-zero-type;
71 "Identifier of the session.
72 A NETCONF session MUST be identified by a non-zero value.
73 A non-NETCONF session MAY be identified by the value zero.";
79 "Address of the remote host for the session.";
90 grouping changed-by-parms {
92 "Common parameters to identify the source
93 of a change event, such as a configuration
94 or capability change.";
96 container changed-by {
98 "Indicates the source of the change.
99 If caused by internal action, then the
100 empty leaf 'server' will be present.
101 If caused by a management session, then
102 the name, remote host address, and session ID
103 of the session that made the change will be reported.";
104 choice server-or-user {
109 "If present, the change was caused
114 uses common-session-parms;
116 } // choice server-or-user
117 } // container changed-by-parms
121 notification netconf-config-change {
123 "Generated when the NETCONF server detects that the
124 <running> or <startup> configuration datastore
125 has been changed by a management session.
126 The notification summarizes the edits that
129 The server MAY choose to also generate this
130 notification while loading a datastore during the
131 boot process for the device.";
133 uses changed-by-parms;
142 description "The <running> datastore has changed.";
145 description "The <startup> datastore has changed";
150 "Indicates which configuration datastore has changed.";
155 "An edit record SHOULD be present for each distinct
156 edit operation that the server has detected on
157 the target datastore. This list MAY be omitted
158 if the detailed edit operations are not known.
159 The server MAY report entries in this list for
160 changes not made by a NETCONF session (e.g., CLI).";
163 type instance-identifier;
165 "Topmost node associated with the configuration change.
166 A server SHOULD set this object to the node within
167 the datastore that is being altered. A server MAY
168 set this object to one of the ancestors of the actual
169 node that was changed, or omit this object, if the
170 exact node is not known.";
174 type nc:edit-operation-type;
176 "Type of edit operation performed.
177 A server MUST set this object to the NETCONF edit
178 operation performed on the target datastore.";
181 } // notification netconf-config-change
188 notification netconf-capability-change {
190 "Generated when the NETCONF server detects that
191 the server capabilities have changed.
192 Indicates which capabilities have been added, deleted,
193 and/or modified. The manner in which a server
194 capability is changed is outside the scope of this
197 uses changed-by-parms;
199 leaf-list added-capability {
202 "List of capabilities that have just been added.";
205 leaf-list deleted-capability {
208 "List of capabilities that have just been deleted.";
211 leaf-list modified-capability {
214 "List of capabilities that have just been modified.
215 A capability is considered to be modified if the
216 base URI for the capability has not changed, but
217 one or more of the parameters encoded at the end of
218 the capability URI have changed.
219 The new modified value of the complete URI is returned.";
221 } // notification netconf-capability-change
224 notification netconf-session-start {
226 "Generated when a NETCONF server detects that a
227 NETCONF session has started. A server MAY generate
228 this event for non-NETCONF management sessions.
229 Indicates the identity of the user that started
231 uses common-session-parms;
232 } // notification netconf-session-start
237 notification netconf-session-end {
239 "Generated when a NETCONF server detects that a
240 NETCONF session has terminated.
241 A server MAY optionally generate this event for
242 non-NETCONF management sessions. Indicates the
243 identity of the user that owned the session,
244 and why the session was terminated.";
246 uses common-session-parms;
249 when "../termination-reason = 'killed'";
250 type nc:session-id-type;
252 "The ID of the session that directly caused this session
253 to be abnormally terminated. If this session was abnormally
254 terminated by a non-NETCONF session unknown to the server,
255 then this leaf will not be present.";
258 leaf termination-reason {
262 "The session was terminated by the client in normal
263 fashion, e.g., by the NETCONF <close-session>
264 protocol operation.";
268 "The session was terminated in abnormal
269 fashion, e.g., by the NETCONF <kill-session>
270 protocol operation.";
274 "The session was terminated because the transport layer
275 connection was unexpectedly closed.";
279 "The session was terminated because of inactivity,
280 e.g., waiting for the <hello> message or <rpc>
288 "The client's <hello> message was invalid.";
292 "The session was terminated for some other reason.";
297 "Reason the session was terminated.";
299 } // notification netconf-session-end
302 notification netconf-confirmed-commit {
304 "Generated when a NETCONF server detects that a
305 confirmed-commit event has occurred. Indicates the event
306 and the current state of the confirmed-commit procedure
309 "RFC 6241, Section 8.4";
311 uses common-session-parms {
312 when "confirm-event != 'timeout'";
319 "The confirmed-commit procedure has started.";
323 "The confirmed-commit procedure has been canceled,
324 e.g., due to the session being terminated, or an
325 explicit <cancel-commit> operation.";
329 "The confirmed-commit procedure has been canceled
330 due to the confirm-timeout interval expiring.
331 The common session parameters will not be present
337 "The confirmed-commit timeout has been extended,
338 e.g., by a new <confirmed-commit> operation.";
342 "The confirmed-commit procedure has been completed.";
347 "Indicates the event that caused the notification.";
352 "../confirm-event = 'start' or ../confirm-event = 'extend'";
356 "The configured timeout value if the event type
357 is 'start' or 'extend'. This value represents
358 the approximate number of seconds from the event
359 time when the 'timeout' event might occur.";
361 } // notification netconf-confirmed-commit