1 module ietf-netconf-monitoring {
\r
6 "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring";
\r
10 import ietf-yang-types {
\r
12 revision-date "2013-07-15";
\r
15 import ietf-inet-types {
\r
17 revision-date "2013-07-15";
\r
21 "IETF NETCONF (Network Configuration) Working Group";
\r
24 "WG Web: <http://tools.ietf.org/wg/netconf/>
\r
25 WG List: <mailto:netconf@ietf.org>
\r
27 WG Chair: Mehmet Ersue
\r
28 <mailto:mehmet.ersue@nsn.com>
\r
30 WG Chair: Bert Wijnen
\r
31 <mailto:bertietf@bwijnen.net>
\r
34 <mailto:mark.scott@ericsson.com>
\r
36 Editor: Martin Bjorklund
\r
37 <mailto:mbj@tail-f.com>";
\r
40 "NETCONF Monitoring Module.
\r
41 All elements in this module are read-only.
\r
43 Copyright (c) 2010 IETF Trust and the persons identified as
\r
44 authors of the code. All rights reserved.
\r
46 Redistribution and use in source and binary forms, with or
\r
47 without modification, is permitted pursuant to, and subject
\r
48 to the license terms contained in, the Simplified BSD
\r
49 License set forth in Section 4.c of the IETF Trust's
\r
50 Legal Provisions Relating to IETF Documents
\r
51 (http://trustee.ietf.org/license-info).
\r
53 This version of this YANG module is part of RFC 6022; see
\r
54 the RFC itself for full legal notices.";
\r
56 revision "2010-10-04" {
\r
57 description "Initial revision.";
\r
59 "RFC 6022: YANG Module for NETCONF Monitoring";
\r
64 typedef netconf-datastore-type {
\r
77 "Enumeration of possible NETCONF datastore types.";
\r
79 "RFC 4741: NETCONF Configuration Protocol";
\r
83 identity transport {
\r
85 "Base identity for NETCONF transport types.";
\r
88 identity netconf-ssh {
\r
91 "NETCONF over Secure Shell (SSH).";
\r
93 "RFC 4742: Using the NETCONF Configuration Protocol
\r
94 over Secure SHell (SSH)";
\r
98 identity netconf-soap-over-beep {
\r
101 "NETCONF over Simple Object Access Protocol (SOAP) over
\r
102 Blocks Extensible Exchange Protocol (BEEP).";
\r
104 "RFC 4743: Using NETCONF over the Simple Object
\r
105 Access Protocol (SOAP)";
\r
109 identity netconf-soap-over-https {
\r
112 "NETCONF over Simple Object Access Protocol (SOAP)
\r
113 over Hypertext Transfer Protocol Secure (HTTPS).";
\r
115 "RFC 4743: Using NETCONF over the Simple Object
\r
116 Access Protocol (SOAP)";
\r
120 identity netconf-beep {
\r
123 "NETCONF over Blocks Extensible Exchange Protocol (BEEP).";
\r
125 "RFC 4744: Using the NETCONF Protocol over the
\r
126 Blocks Extensible Exchange Protocol (BEEP)";
\r
130 identity netconf-tls {
\r
133 "NETCONF over Transport Layer Security (TLS).";
\r
135 "RFC 5539: NETCONF over Transport Layer Security (TLS)";
\r
139 identity schema-format {
\r
141 "Base identity for data model schema languages.";
\r
145 base schema-format;
\r
147 "W3C XML Schema Definition.";
\r
149 "W3C REC REC-xmlschema-1-20041028:
\r
150 XML Schema Part 1: Structures";
\r
155 base schema-format;
\r
157 "The YANG data modeling language for NETCONF.";
\r
159 "RFC 6020: YANG - A Data Modeling Language for the
\r
160 Network Configuration Protocol (NETCONF)";
\r
165 base schema-format;
\r
166 description "The YIN syntax for YANG.";
\r
168 "RFC 6020: YANG - A Data Modeling Language for the
\r
169 Network Configuration Protocol (NETCONF)";
\r
174 base schema-format;
\r
176 "Regular Language for XML Next Generation (RELAX NG).";
\r
178 "ISO/IEC 19757-2:2008: RELAX NG";
\r
183 base schema-format;
\r
184 description "Relax NG Compact Syntax";
\r
186 "ISO/IEC 19757-2:2008: RELAX NG";
\r
190 grouping common-counters {
\r
192 "Counters that exist both per session, and also globally,
\r
193 accumulated from all sessions.";
\r
195 type yang:zero-based-counter32;
\r
197 "Number of correct <rpc> messages received.";
\r
201 type yang:zero-based-counter32;
\r
203 "Number of messages received when an <rpc> message was expected,
\r
204 that were not correct <rpc> messages. This includes XML parse
\r
205 errors and errors on the rpc layer.";
\r
208 leaf out-rpc-errors {
\r
209 type yang:zero-based-counter32;
\r
211 "Number of <rpc-reply> messages sent that contained an
\r
212 <rpc-error> element.";
\r
215 leaf out-notifications {
\r
216 type yang:zero-based-counter32;
\r
218 "Number of <notification> messages sent.";
\r
220 } // grouping common-counters
\r
222 container netconf-state {
\r
225 "The netconf-state container is the root of the monitoring
\r
227 container capabilities {
\r
229 "Contains the list of NETCONF capabilities supported by the
\r
231 leaf-list capability {
\r
234 "List of NETCONF capabilities supported by the server.";
\r
236 } // container capabilities
\r
238 container datastores {
\r
240 "Contains the list of NETCONF configuration datastores.";
\r
244 "List of NETCONF configuration datastores supported by
\r
245 the NETCONF server and related information.";
\r
247 type netconf-datastore-type;
\r
249 "Name of the datastore associated with this list entry.";
\r
254 "This container is present only if the datastore
\r
257 "The NETCONF <lock> and <partial-lock> operations allow
\r
258 a client to lock specific resources in a datastore. The
\r
259 NETCONF server will prevent changes to the locked
\r
260 resources by all sessions except the one that acquired
\r
263 Monitoring information is provided for each datastore
\r
264 entry including details such as the session that acquired
\r
265 the lock, the type of lock (global or partial) and the
\r
266 list of locked resources. Multiple locks per datastore
\r
268 grouping lock-info {
\r
270 "Lock related parameters, common to both global and
\r
272 leaf locked-by-session {
\r
276 "The session ID of the session that has locked
\r
277 this resource. Both a global lock and a partial
\r
278 lock MUST contain the NETCONF session-id.
\r
280 If the lock is held by a session that is not managed
\r
281 by the NETCONF server (e.g., a CLI session), a session
\r
282 id of 0 (zero) is reported.";
\r
284 "RFC 4741: NETCONF Configuration Protocol";
\r
289 type yang:date-and-time;
\r
292 "The date and time of when the resource was
\r
295 } // grouping lock-info
\r
298 "Indicates if a global lock or a set of partial locks
\r
300 container global-lock {
\r
302 "Present if the global lock is set.";
\r
304 } // container global-lock
\r
305 list partial-lock {
\r
308 "List of partial locks.";
\r
310 "RFC 5717: Partial Lock Remote Procedure Call (RPC) for
\r
316 "This is the lock id returned in the <partial-lock>
\r
323 type yang:xpath1.0;
\r
326 "The xpath expression that was used to request
\r
327 the lock. The select expression indicates the
\r
328 original intended scope of the lock.";
\r
331 leaf-list locked-node {
\r
332 type instance-identifier;
\r
334 "The list of instance-identifiers (i.e., the
\r
337 The scope of the partial lock is defined by the list
\r
340 } // list partial-lock
\r
341 } // choice lock-type
\r
342 } // container locks
\r
343 } // list datastore
\r
344 } // container datastores
\r
346 container schemas {
\r
348 "Contains the list of data model schemas supported by the
\r
351 key "identifier version format";
\r
353 "List of data model schemas supported by the server.";
\r
357 "Identifier to uniquely reference the schema. The
\r
358 identifier is used in the <get-schema> operation and may
\r
359 be used for other purposes such as file retrieval.
\r
361 For modeling languages that support or require a data
\r
362 model name (e.g., YANG module name) the identifier MUST
\r
363 match that name. For YANG data models, the identifier is
\r
364 the name of the module or submodule. In other cases, an
\r
365 identifier such as a filename MAY be used instead.";
\r
371 "Version of the schema supported. Multiple versions MAY be
\r
372 supported simultaneously by a NETCONF server. Each
\r
373 version MUST be reported individually in the schema list,
\r
374 i.e., with same identifier, possibly different location,
\r
375 but different version.
\r
377 For YANG data models, version is the value of the most
\r
378 recent YANG 'revision' statement in the module or
\r
379 submodule, or the empty string if no 'revision' statement
\r
385 base schema-format;
\r
388 "The data modeling language the schema is written
\r
389 in (currently xsd, yang, yin, rng, or rnc).
\r
390 For YANG data models, 'yang' format MUST be supported and
\r
391 'yin' format MAY also be provided.";
\r
398 "The XML namespace defined by the data model.
\r
400 For YANG data models, this is the module's namespace.
\r
401 If the list entry describes a submodule, this field
\r
402 contains the namespace of the module to which the
\r
403 submodule belongs.";
\r
406 leaf-list location {
\r
416 "One or more locations from which the schema can be
\r
417 retrieved. This list SHOULD contain at least one
\r
420 A schema entry may be located on a remote file system
\r
421 (e.g., reference to file system for ftp retrieval) or
\r
422 retrieved directly from a server supporting the
\r
423 <get-schema> operation (denoted by the value 'NETCONF').";
\r
426 } // container schemas
\r
428 container sessions {
\r
430 "The sessions container includes session-specific data for
\r
431 NETCONF management sessions. The session list MUST include
\r
432 all currently active NETCONF sessions.";
\r
436 "All NETCONF sessions managed by the NETCONF server
\r
437 MUST be reported in this list.";
\r
443 "Unique identifier for the session. This value is the
\r
444 NETCONF session identifier, as defined in RFC 4741.";
\r
446 "RFC 4741: NETCONF Configuration Protocol";
\r
456 "Identifies the transport for each session, e.g.,
\r
457 'netconf-ssh', 'netconf-soap', etc.";
\r
464 "The username is the client identity that was authenticated
\r
465 by the NETCONF transport protocol. The algorithm used to
\r
466 derive the username is NETCONF transport protocol specific
\r
467 and in addition specific to the authentication mechanism
\r
468 used by the NETCONF transport protocol.";
\r
474 "Host identifier of the NETCONF client. The value
\r
475 returned is implementation specific (e.g., hostname,
\r
476 IPv4 address, IPv6 address)";
\r
480 type yang:date-and-time;
\r
483 "Time at the server at which the session was established.";
\r
486 uses common-counters {
\r
488 "Per-session counters. Zero based with following reset
\r
490 - at start of a session
\r
491 - when max value is reached";
\r
494 } // container sessions
\r
496 container statistics {
\r
498 "Statistical data pertaining to the NETCONF server.";
\r
499 leaf netconf-start-time {
\r
500 type yang:date-and-time;
\r
502 "Date and time at which the management subsystem was
\r
506 leaf in-bad-hellos {
\r
507 type yang:zero-based-counter32;
\r
509 "Number of sessions silently dropped because an
\r
510 invalid <hello> message was received. This includes <hello>
\r
511 messages with a 'session-id' attribute, bad namespace, and
\r
512 bad capability declarations.";
\r
516 type yang:zero-based-counter32;
\r
518 "Number of sessions started. This counter is incremented
\r
519 when a <hello> message with a <session-id> is sent.
\r
521 'in-sessions' - 'in-bad-hellos' =
\r
522 'number of correctly started netconf sessions'";
\r
525 leaf dropped-sessions {
\r
526 type yang:zero-based-counter32;
\r
528 "Number of sessions that were abnormally terminated, e.g.,
\r
529 due to idle timeout or transport close. This counter is not
\r
530 incremented when a session is properly closed by a
\r
531 <close-session> operation, or killed by a <kill-session>
\r
535 uses common-counters {
\r
537 "Global counters, accumulated from all sessions.
\r
538 Zero based with following reset behaviour:
\r
539 - re-initialization of NETCONF server
\r
540 - when max value is reached";
\r
542 } // container statistics
\r
543 } // container netconf-state
\r
547 "This operation is used to retrieve a schema from the
\r
551 The NETCONF server returns the requested schema.
\r
554 If requested schema does not exist, the <error-tag> is
\r
557 If more than one schema matches the requested parameters, the
\r
558 <error-tag> is 'operation-failed', and <error-app-tag> is
\r
559 'data-not-unique'.";
\r
565 "Identifier for the schema list entry.";
\r
571 "Version of the schema requested. If this parameter is not
\r
572 present, and more than one version of the schema exists on
\r
573 the server, a 'data-not-unique' error is returned, as
\r
579 base schema-format;
\r
582 "The data modeling language of the schema. If this
\r
583 parameter is not present, and more than one formats of
\r
584 the schema exists on the server, a 'data-not-unique' error
\r
585 is returned, as described above.";
\r
592 "Contains the schema content.";
\r
595 } // rpc get-schema
\r