1 module ietf-netconf-monitoring {
6 "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring";
10 import ietf-yang-types {
12 revision-date "2010-09-24";
15 import ietf-inet-types {
20 "IETF NETCONF (Network Configuration) Working Group";
23 "WG Web: <http://tools.ietf.org/wg/netconf/>
24 WG List: <mailto:netconf@ietf.org>
26 WG Chair: Mehmet Ersue
27 <mailto:mehmet.ersue@nsn.com>
30 <mailto:bertietf@bwijnen.net>
33 <mailto:mark.scott@ericsson.com>
35 Editor: Martin Bjorklund
36 <mailto:mbj@tail-f.com>";
39 "NETCONF Monitoring Module.
40 All elements in this module are read-only.
42 Copyright (c) 2010 IETF Trust and the persons identified as
43 authors of the code. All rights reserved.
45 Redistribution and use in source and binary forms, with or
46 without modification, is permitted pursuant to, and subject
47 to the license terms contained in, the Simplified BSD
48 License set forth in Section 4.c of the IETF Trust's
49 Legal Provisions Relating to IETF Documents
50 (http://trustee.ietf.org/license-info).
52 This version of this YANG module is part of RFC 6022; see
53 the RFC itself for full legal notices.";
55 revision "2010-10-04" {
56 description "Initial revision.";
58 "RFC 6022: YANG Module for NETCONF Monitoring";
63 typedef netconf-datastore-type {
76 "Enumeration of possible NETCONF datastore types.";
78 "RFC 4741: NETCONF Configuration Protocol";
84 "Base identity for NETCONF transport types.";
87 identity netconf-ssh {
90 "NETCONF over Secure Shell (SSH).";
92 "RFC 4742: Using the NETCONF Configuration Protocol
93 over Secure SHell (SSH)";
97 identity netconf-soap-over-beep {
100 "NETCONF over Simple Object Access Protocol (SOAP) over
101 Blocks Extensible Exchange Protocol (BEEP).";
103 "RFC 4743: Using NETCONF over the Simple Object
104 Access Protocol (SOAP)";
108 identity netconf-soap-over-https {
111 "NETCONF over Simple Object Access Protocol (SOAP)
112 over Hypertext Transfer Protocol Secure (HTTPS).";
114 "RFC 4743: Using NETCONF over the Simple Object
115 Access Protocol (SOAP)";
119 identity netconf-beep {
122 "NETCONF over Blocks Extensible Exchange Protocol (BEEP).";
124 "RFC 4744: Using the NETCONF Protocol over the
125 Blocks Extensible Exchange Protocol (BEEP)";
129 identity netconf-tls {
132 "NETCONF over Transport Layer Security (TLS).";
134 "RFC 5539: NETCONF over Transport Layer Security (TLS)";
138 identity schema-format {
140 "Base identity for data model schema languages.";
146 "W3C XML Schema Definition.";
148 "W3C REC REC-xmlschema-1-20041028:
149 XML Schema Part 1: Structures";
156 "The YANG data modeling language for NETCONF.";
158 "RFC 6020: YANG - A Data Modeling Language for the
159 Network Configuration Protocol (NETCONF)";
165 description "The YIN syntax for YANG.";
167 "RFC 6020: YANG - A Data Modeling Language for the
168 Network Configuration Protocol (NETCONF)";
175 "Regular Language for XML Next Generation (RELAX NG).";
177 "ISO/IEC 19757-2:2008: RELAX NG";
183 description "Relax NG Compact Syntax";
185 "ISO/IEC 19757-2:2008: RELAX NG";
189 grouping common-counters {
191 "Counters that exist both per session, and also globally,
192 accumulated from all sessions.";
194 type yang:zero-based-counter32;
196 "Number of correct <rpc> messages received.";
200 type yang:zero-based-counter32;
202 "Number of messages received when an <rpc> message was expected,
203 that were not correct <rpc> messages. This includes XML parse
204 errors and errors on the rpc layer.";
207 leaf out-rpc-errors {
208 type yang:zero-based-counter32;
210 "Number of <rpc-reply> messages sent that contained an
211 <rpc-error> element.";
214 leaf out-notifications {
215 type yang:zero-based-counter32;
217 "Number of <notification> messages sent.";
219 } // grouping common-counters
221 container netconf-state {
224 "The netconf-state container is the root of the monitoring
226 container capabilities {
228 "Contains the list of NETCONF capabilities supported by the
230 leaf-list capability {
233 "List of NETCONF capabilities supported by the server.";
235 } // container capabilities
237 container datastores {
239 "Contains the list of NETCONF configuration datastores.";
243 "List of NETCONF configuration datastores supported by
244 the NETCONF server and related information.";
246 type netconf-datastore-type;
248 "Name of the datastore associated with this list entry.";
253 "This container is present only if the datastore
256 "The NETCONF <lock> and <partial-lock> operations allow
257 a client to lock specific resources in a datastore. The
258 NETCONF server will prevent changes to the locked
259 resources by all sessions except the one that acquired
262 Monitoring information is provided for each datastore
263 entry including details such as the session that acquired
264 the lock, the type of lock (global or partial) and the
265 list of locked resources. Multiple locks per datastore
269 "Lock related parameters, common to both global and
271 leaf locked-by-session {
275 "The session ID of the session that has locked
276 this resource. Both a global lock and a partial
277 lock MUST contain the NETCONF session-id.
279 If the lock is held by a session that is not managed
280 by the NETCONF server (e.g., a CLI session), a session
281 id of 0 (zero) is reported.";
283 "RFC 4741: NETCONF Configuration Protocol";
288 type yang:date-and-time;
291 "The date and time of when the resource was
294 } // grouping lock-info
297 "Indicates if a global lock or a set of partial locks
299 container global-lock {
301 "Present if the global lock is set.";
303 } // container global-lock
307 "List of partial locks.";
309 "RFC 5717: Partial Lock Remote Procedure Call (RPC) for
315 "This is the lock id returned in the <partial-lock>
325 "The xpath expression that was used to request
326 the lock. The select expression indicates the
327 original intended scope of the lock.";
330 leaf-list locked-node {
331 type instance-identifier;
333 "The list of instance-identifiers (i.e., the
336 The scope of the partial lock is defined by the list
339 } // list partial-lock
340 } // choice lock-type
343 } // container datastores
347 "Contains the list of data model schemas supported by the
350 key "identifier version format";
352 "List of data model schemas supported by the server.";
356 "Identifier to uniquely reference the schema. The
357 identifier is used in the <get-schema> operation and may
358 be used for other purposes such as file retrieval.
360 For modeling languages that support or require a data
361 model name (e.g., YANG module name) the identifier MUST
362 match that name. For YANG data models, the identifier is
363 the name of the module or submodule. In other cases, an
364 identifier such as a filename MAY be used instead.";
370 "Version of the schema supported. Multiple versions MAY be
371 supported simultaneously by a NETCONF server. Each
372 version MUST be reported individually in the schema list,
373 i.e., with same identifier, possibly different location,
374 but different version.
376 For YANG data models, version is the value of the most
377 recent YANG 'revision' statement in the module or
378 submodule, or the empty string if no 'revision' statement
387 "The data modeling language the schema is written
388 in (currently xsd, yang, yin, rng, or rnc).
389 For YANG data models, 'yang' format MUST be supported and
390 'yin' format MAY also be provided.";
397 "The XML namespace defined by the data model.
399 For YANG data models, this is the module's namespace.
400 If the list entry describes a submodule, this field
401 contains the namespace of the module to which the
415 "One or more locations from which the schema can be
416 retrieved. This list SHOULD contain at least one
419 A schema entry may be located on a remote file system
420 (e.g., reference to file system for ftp retrieval) or
421 retrieved directly from a server supporting the
422 <get-schema> operation (denoted by the value 'NETCONF').";
425 } // container schemas
429 "The sessions container includes session-specific data for
430 NETCONF management sessions. The session list MUST include
431 all currently active NETCONF sessions.";
435 "All NETCONF sessions managed by the NETCONF server
436 MUST be reported in this list.";
442 "Unique identifier for the session. This value is the
443 NETCONF session identifier, as defined in RFC 4741.";
445 "RFC 4741: NETCONF Configuration Protocol";
455 "Identifies the transport for each session, e.g.,
456 'netconf-ssh', 'netconf-soap', etc.";
463 "The username is the client identity that was authenticated
464 by the NETCONF transport protocol. The algorithm used to
465 derive the username is NETCONF transport protocol specific
466 and in addition specific to the authentication mechanism
467 used by the NETCONF transport protocol.";
473 "Host identifier of the NETCONF client. The value
474 returned is implementation specific (e.g., hostname,
475 IPv4 address, IPv6 address)";
479 type yang:date-and-time;
482 "Time at the server at which the session was established.";
485 uses common-counters {
487 "Per-session counters. Zero based with following reset
489 - at start of a session
490 - when max value is reached";
493 } // container sessions
495 container statistics {
497 "Statistical data pertaining to the NETCONF server.";
498 leaf netconf-start-time {
499 type yang:date-and-time;
501 "Date and time at which the management subsystem was
506 type yang:zero-based-counter32;
508 "Number of sessions silently dropped because an
509 invalid <hello> message was received. This includes <hello>
510 messages with a 'session-id' attribute, bad namespace, and
511 bad capability declarations.";
515 type yang:zero-based-counter32;
517 "Number of sessions started. This counter is incremented
518 when a <hello> message with a <session-id> is sent.
520 'in-sessions' - 'in-bad-hellos' =
521 'number of correctly started netconf sessions'";
524 leaf dropped-sessions {
525 type yang:zero-based-counter32;
527 "Number of sessions that were abnormally terminated, e.g.,
528 due to idle timeout or transport close. This counter is not
529 incremented when a session is properly closed by a
530 <close-session> operation, or killed by a <kill-session>
534 uses common-counters {
536 "Global counters, accumulated from all sessions.
537 Zero based with following reset behaviour:
538 - re-initialization of NETCONF server
539 - when max value is reached";
541 } // container statistics
542 } // container netconf-state
546 "This operation is used to retrieve a schema from the
550 The NETCONF server returns the requested schema.
553 If requested schema does not exist, the <error-tag> is
556 If more than one schema matches the requested parameters, the
557 <error-tag> is 'operation-failed', and <error-app-tag> is
564 "Identifier for the schema list entry.";
570 "Version of the schema requested. If this parameter is not
571 present, and more than one version of the schema exists on
572 the server, a 'data-not-unique' error is returned, as
581 "The data modeling language of the schema. If this
582 parameter is not present, and more than one formats of
583 the schema exists on the server, a 'data-not-unique' error
584 is returned, as described above.";
591 "Contains the schema content.";