+++ /dev/null
-module ietf-netconf-monitoring {\r
-\r
- yang-version 1;\r
-\r
- namespace\r
- "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring";\r
-\r
- prefix ncm;\r
-\r
- import ietf-yang-types {\r
- prefix yang;\r
- revision-date "2013-07-15";\r
- }\r
-\r
- import ietf-inet-types {\r
- prefix inet;\r
- revision-date "2013-07-15";\r
- }\r
-\r
- organization\r
- "IETF NETCONF (Network Configuration) Working Group";\r
-\r
- contact\r
- "WG Web: <http://tools.ietf.org/wg/netconf/>\r
- WG List: <mailto:netconf@ietf.org>\r
-\r
- WG Chair: Mehmet Ersue\r
- <mailto:mehmet.ersue@nsn.com>\r
-\r
- WG Chair: Bert Wijnen\r
- <mailto:bertietf@bwijnen.net>\r
-\r
- Editor: Mark Scott\r
- <mailto:mark.scott@ericsson.com>\r
-\r
- Editor: Martin Bjorklund\r
- <mailto:mbj@tail-f.com>";\r
-\r
- description\r
- "NETCONF Monitoring Module.\r
- All elements in this module are read-only.\r
-\r
- Copyright (c) 2010 IETF Trust and the persons identified as\r
- authors of the code. All rights reserved.\r
-\r
- Redistribution and use in source and binary forms, with or\r
- without modification, is permitted pursuant to, and subject\r
- to the license terms contained in, the Simplified BSD\r
- License set forth in Section 4.c of the IETF Trust's\r
- Legal Provisions Relating to IETF Documents\r
- (http://trustee.ietf.org/license-info).\r
-\r
- This version of this YANG module is part of RFC 6022; see\r
- the RFC itself for full legal notices.";\r
-\r
- revision "2010-10-04" {\r
- description "Initial revision.";\r
- reference\r
- "RFC 6022: YANG Module for NETCONF Monitoring";\r
-\r
- }\r
-\r
-\r
- typedef netconf-datastore-type {\r
- type enumeration {\r
- enum "running" {\r
- value 0;\r
- }\r
- enum "candidate" {\r
- value 1;\r
- }\r
- enum "startup" {\r
- value 2;\r
- }\r
- }\r
- description\r
- "Enumeration of possible NETCONF datastore types.";\r
- reference\r
- "RFC 4741: NETCONF Configuration Protocol";\r
-\r
- }\r
-\r
- identity transport {\r
- description\r
- "Base identity for NETCONF transport types.";\r
- }\r
-\r
- identity netconf-ssh {\r
- base transport;\r
- description\r
- "NETCONF over Secure Shell (SSH).";\r
- reference\r
- "RFC 4742: Using the NETCONF Configuration Protocol\r
- over Secure SHell (SSH)";\r
-\r
- }\r
-\r
- identity netconf-soap-over-beep {\r
- base transport;\r
- description\r
- "NETCONF over Simple Object Access Protocol (SOAP) over\r
- Blocks Extensible Exchange Protocol (BEEP).";\r
- reference\r
- "RFC 4743: Using NETCONF over the Simple Object\r
- Access Protocol (SOAP)";\r
-\r
- }\r
-\r
- identity netconf-soap-over-https {\r
- base transport;\r
- description\r
- "NETCONF over Simple Object Access Protocol (SOAP)\r
- over Hypertext Transfer Protocol Secure (HTTPS).";\r
- reference\r
- "RFC 4743: Using NETCONF over the Simple Object\r
- Access Protocol (SOAP)";\r
-\r
- }\r
-\r
- identity netconf-beep {\r
- base transport;\r
- description\r
- "NETCONF over Blocks Extensible Exchange Protocol (BEEP).";\r
- reference\r
- "RFC 4744: Using the NETCONF Protocol over the\r
- Blocks Extensible Exchange Protocol (BEEP)";\r
-\r
- }\r
-\r
- identity netconf-tls {\r
- base transport;\r
- description\r
- "NETCONF over Transport Layer Security (TLS).";\r
- reference\r
- "RFC 5539: NETCONF over Transport Layer Security (TLS)";\r
-\r
- }\r
-\r
- identity schema-format {\r
- description\r
- "Base identity for data model schema languages.";\r
- }\r
-\r
- identity xsd {\r
- base schema-format;\r
- description\r
- "W3C XML Schema Definition.";\r
- reference\r
- "W3C REC REC-xmlschema-1-20041028:\r
- XML Schema Part 1: Structures";\r
-\r
- }\r
-\r
- identity yang {\r
- base schema-format;\r
- description\r
- "The YANG data modeling language for NETCONF.";\r
- reference\r
- "RFC 6020: YANG - A Data Modeling Language for the\r
- Network Configuration Protocol (NETCONF)";\r
-\r
- }\r
-\r
- identity yin {\r
- base schema-format;\r
- description "The YIN syntax for YANG.";\r
- reference\r
- "RFC 6020: YANG - A Data Modeling Language for the\r
- Network Configuration Protocol (NETCONF)";\r
-\r
- }\r
-\r
- identity rng {\r
- base schema-format;\r
- description\r
- "Regular Language for XML Next Generation (RELAX NG).";\r
- reference\r
- "ISO/IEC 19757-2:2008: RELAX NG";\r
-\r
- }\r
-\r
- identity rnc {\r
- base schema-format;\r
- description "Relax NG Compact Syntax";\r
- reference\r
- "ISO/IEC 19757-2:2008: RELAX NG";\r
-\r
- }\r
-\r
- grouping common-counters {\r
- description\r
- "Counters that exist both per session, and also globally,\r
- accumulated from all sessions.";\r
- leaf in-rpcs {\r
- type yang:zero-based-counter32;\r
- description\r
- "Number of correct <rpc> messages received.";\r
- }\r
-\r
- leaf in-bad-rpcs {\r
- type yang:zero-based-counter32;\r
- description\r
- "Number of messages received when an <rpc> message was expected,\r
- that were not correct <rpc> messages. This includes XML parse\r
- errors and errors on the rpc layer.";\r
- }\r
-\r
- leaf out-rpc-errors {\r
- type yang:zero-based-counter32;\r
- description\r
- "Number of <rpc-reply> messages sent that contained an\r
- <rpc-error> element.";\r
- }\r
-\r
- leaf out-notifications {\r
- type yang:zero-based-counter32;\r
- description\r
- "Number of <notification> messages sent.";\r
- }\r
- } // grouping common-counters\r
-\r
- container netconf-state {\r
- config false;\r
- description\r
- "The netconf-state container is the root of the monitoring\r
- data model.";\r
- container capabilities {\r
- description\r
- "Contains the list of NETCONF capabilities supported by the\r
- server.";\r
- leaf-list capability {\r
- type inet:uri;\r
- description\r
- "List of NETCONF capabilities supported by the server.";\r
- }\r
- } // container capabilities\r
-\r
- container datastores {\r
- description\r
- "Contains the list of NETCONF configuration datastores.";\r
- list datastore {\r
- key "name";\r
- description\r
- "List of NETCONF configuration datastores supported by\r
- the NETCONF server and related information.";\r
- leaf name {\r
- type netconf-datastore-type;\r
- description\r
- "Name of the datastore associated with this list entry.";\r
- }\r
-\r
- container locks {\r
- presence\r
- "This container is present only if the datastore\r
- is locked.";\r
- description\r
- "The NETCONF <lock> and <partial-lock> operations allow\r
- a client to lock specific resources in a datastore. The\r
- NETCONF server will prevent changes to the locked\r
- resources by all sessions except the one that acquired\r
- the lock(s).\r
-\r
- Monitoring information is provided for each datastore\r
- entry including details such as the session that acquired\r
- the lock, the type of lock (global or partial) and the\r
- list of locked resources. Multiple locks per datastore\r
- are supported.";\r
- grouping lock-info {\r
- description\r
- "Lock related parameters, common to both global and\r
- partial locks.";\r
- leaf locked-by-session {\r
- type uint32;\r
- mandatory true;\r
- description\r
- "The session ID of the session that has locked\r
- this resource. Both a global lock and a partial\r
- lock MUST contain the NETCONF session-id.\r
-\r
- If the lock is held by a session that is not managed\r
- by the NETCONF server (e.g., a CLI session), a session\r
- id of 0 (zero) is reported.";\r
- reference\r
- "RFC 4741: NETCONF Configuration Protocol";\r
-\r
- }\r
-\r
- leaf locked-time {\r
- type yang:date-and-time;\r
- mandatory true;\r
- description\r
- "The date and time of when the resource was\r
- locked.";\r
- }\r
- } // grouping lock-info\r
- choice lock-type {\r
- description\r
- "Indicates if a global lock or a set of partial locks\r
- are set.";\r
- container global-lock {\r
- description\r
- "Present if the global lock is set.";\r
- uses lock-info;\r
- } // container global-lock\r
- list partial-lock {\r
- key "lock-id";\r
- description\r
- "List of partial locks.";\r
- reference\r
- "RFC 5717: Partial Lock Remote Procedure Call (RPC) for\r
- NETCONF";\r
-\r
- leaf lock-id {\r
- type uint32;\r
- description\r
- "This is the lock id returned in the <partial-lock>\r
- response.";\r
- }\r
-\r
- uses lock-info;\r
-\r
- leaf-list select {\r
- type yang:xpath1.0;\r
- min-elements 1;\r
- description\r
- "The xpath expression that was used to request\r
- the lock. The select expression indicates the\r
- original intended scope of the lock.";\r
- }\r
-\r
- leaf-list locked-node {\r
- type instance-identifier;\r
- description\r
- "The list of instance-identifiers (i.e., the\r
- locked nodes).\r
-\r
- The scope of the partial lock is defined by the list\r
- of locked nodes.";\r
- }\r
- } // list partial-lock\r
- } // choice lock-type\r
- } // container locks\r
- } // list datastore\r
- } // container datastores\r
-\r
- container schemas {\r
- description\r
- "Contains the list of data model schemas supported by the\r
- server.";\r
- list schema {\r
- key "identifier version format";\r
- description\r
- "List of data model schemas supported by the server.";\r
- leaf identifier {\r
- type string;\r
- description\r
- "Identifier to uniquely reference the schema. The\r
- identifier is used in the <get-schema> operation and may\r
- be used for other purposes such as file retrieval.\r
-\r
- For modeling languages that support or require a data\r
- model name (e.g., YANG module name) the identifier MUST\r
- match that name. For YANG data models, the identifier is\r
- the name of the module or submodule. In other cases, an\r
- identifier such as a filename MAY be used instead.";\r
- }\r
-\r
- leaf version {\r
- type string;\r
- description\r
- "Version of the schema supported. Multiple versions MAY be\r
- supported simultaneously by a NETCONF server. Each\r
- version MUST be reported individually in the schema list,\r
- i.e., with same identifier, possibly different location,\r
- but different version.\r
-\r
- For YANG data models, version is the value of the most\r
- recent YANG 'revision' statement in the module or\r
- submodule, or the empty string if no 'revision' statement\r
- is present.";\r
- }\r
-\r
- leaf format {\r
- type identityref {\r
- base schema-format;\r
- }\r
- description\r
- "The data modeling language the schema is written\r
- in (currently xsd, yang, yin, rng, or rnc).\r
- For YANG data models, 'yang' format MUST be supported and\r
- 'yin' format MAY also be provided.";\r
- }\r
-\r
- leaf namespace {\r
- type inet:uri;\r
- mandatory true;\r
- description\r
- "The XML namespace defined by the data model.\r
-\r
- For YANG data models, this is the module's namespace.\r
- If the list entry describes a submodule, this field\r
- contains the namespace of the module to which the\r
- submodule belongs.";\r
- }\r
-\r
- leaf-list location {\r
- type union {\r
- type enumeration {\r
- enum "NETCONF" {\r
- value 0;\r
- }\r
- }\r
- type inet:uri;\r
- }\r
- description\r
- "One or more locations from which the schema can be\r
- retrieved. This list SHOULD contain at least one\r
- entry per schema.\r
-\r
- A schema entry may be located on a remote file system\r
- (e.g., reference to file system for ftp retrieval) or\r
- retrieved directly from a server supporting the\r
- <get-schema> operation (denoted by the value 'NETCONF').";\r
- }\r
- } // list schema\r
- } // container schemas\r
-\r
- container sessions {\r
- description\r
- "The sessions container includes session-specific data for\r
- NETCONF management sessions. The session list MUST include\r
- all currently active NETCONF sessions.";\r
- list session {\r
- key "session-id";\r
- description\r
- "All NETCONF sessions managed by the NETCONF server\r
- MUST be reported in this list.";\r
- leaf session-id {\r
- type uint32 {\r
- range "1..max";\r
- }\r
- description\r
- "Unique identifier for the session. This value is the\r
- NETCONF session identifier, as defined in RFC 4741.";\r
- reference\r
- "RFC 4741: NETCONF Configuration Protocol";\r
-\r
- }\r
-\r
- leaf transport {\r
- type identityref {\r
- base transport;\r
- }\r
- mandatory true;\r
- description\r
- "Identifies the transport for each session, e.g.,\r
- 'netconf-ssh', 'netconf-soap', etc.";\r
- }\r
-\r
- leaf username {\r
- type string;\r
- mandatory true;\r
- description\r
- "The username is the client identity that was authenticated\r
- by the NETCONF transport protocol. The algorithm used to\r
- derive the username is NETCONF transport protocol specific\r
- and in addition specific to the authentication mechanism\r
- used by the NETCONF transport protocol.";\r
- }\r
-\r
- leaf source-host {\r
- type inet:host;\r
- description\r
- "Host identifier of the NETCONF client. The value\r
- returned is implementation specific (e.g., hostname,\r
- IPv4 address, IPv6 address)";\r
- }\r
-\r
- leaf login-time {\r
- type yang:date-and-time;\r
- mandatory true;\r
- description\r
- "Time at the server at which the session was established.";\r
- }\r
-\r
- uses common-counters {\r
- description\r
- "Per-session counters. Zero based with following reset\r
- behaviour:\r
- - at start of a session\r
- - when max value is reached";\r
- }\r
- } // list session\r
- } // container sessions\r
-\r
- container statistics {\r
- description\r
- "Statistical data pertaining to the NETCONF server.";\r
- leaf netconf-start-time {\r
- type yang:date-and-time;\r
- description\r
- "Date and time at which the management subsystem was\r
- started.";\r
- }\r
-\r
- leaf in-bad-hellos {\r
- type yang:zero-based-counter32;\r
- description\r
- "Number of sessions silently dropped because an\r
- invalid <hello> message was received. This includes <hello>\r
- messages with a 'session-id' attribute, bad namespace, and\r
- bad capability declarations.";\r
- }\r
-\r
- leaf in-sessions {\r
- type yang:zero-based-counter32;\r
- description\r
- "Number of sessions started. This counter is incremented\r
- when a <hello> message with a <session-id> is sent.\r
-\r
- 'in-sessions' - 'in-bad-hellos' =\r
- 'number of correctly started netconf sessions'";\r
- }\r
-\r
- leaf dropped-sessions {\r
- type yang:zero-based-counter32;\r
- description\r
- "Number of sessions that were abnormally terminated, e.g.,\r
- due to idle timeout or transport close. This counter is not\r
- incremented when a session is properly closed by a\r
- <close-session> operation, or killed by a <kill-session>\r
- operation.";\r
- }\r
-\r
- uses common-counters {\r
- description\r
- "Global counters, accumulated from all sessions.\r
- Zero based with following reset behaviour:\r
- - re-initialization of NETCONF server\r
- - when max value is reached";\r
- }\r
- } // container statistics\r
- } // container netconf-state\r
-\r
- rpc get-schema {\r
- description\r
- "This operation is used to retrieve a schema from the\r
- NETCONF server.\r
-\r
- Positive Response:\r
- The NETCONF server returns the requested schema.\r
-\r
- Negative Response:\r
- If requested schema does not exist, the <error-tag> is\r
- 'invalid-value'.\r
-\r
- If more than one schema matches the requested parameters, the\r
- <error-tag> is 'operation-failed', and <error-app-tag> is\r
- 'data-not-unique'.";\r
- input {\r
- leaf identifier {\r
- type string;\r
- mandatory true;\r
- description\r
- "Identifier for the schema list entry.";\r
- }\r
-\r
- leaf version {\r
- type string;\r
- description\r
- "Version of the schema requested. If this parameter is not\r
- present, and more than one version of the schema exists on\r
- the server, a 'data-not-unique' error is returned, as\r
- described above.";\r
- }\r
-\r
- leaf format {\r
- type identityref {\r
- base schema-format;\r
- }\r
- description\r
- "The data modeling language of the schema. If this\r
- parameter is not present, and more than one formats of\r
- the schema exists on the server, a 'data-not-unique' error\r
- is returned, as described above.";\r
- }\r
- }\r
-\r
- output {\r
- anyxml data {\r
- description\r
- "Contains the schema content.";\r
- }\r
- }\r
- } // rpc get-schema\r
-} // module\r