GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||
GeezerVison is showing datatracker.ietf.org — RFC 6022: YANG Module for NETCONF Monitoring Internet Engineering Task Force (IETF) M. Scott
Request for Comments: 6022 Ericsson
Category: Standards Track M. Bjorklund
ISSN: 2070-1721 Tail-f Systems
October 2010
RFC 6022 YANG Module for NETCONF Monitoring October 2010 This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English. Table of Contents 1. Introduction ....................................................3 1.1. Definition of Terms ........................................3 2. Data Model to Monitor NETCONF ...................................3 2.1. The /netconf-state Subtree .................................3 2.1.1. The /netconf-state/capabilities Subtree .............4 2.1.2. The /netconf-state/datastores Subtree ...............4 2.1.3. The /netconf-state/schemas Subtree ..................5 2.1.4. The /netconf-state/sessions Subtree .................6 2.1.5. The /netconf-state/statistics Subtree ...............7 3. Schema Specific Operations ......................................8 3.1. The <get-schema> Operation .................................8 4. Examples ........................................................9 4.1. Retrieving Schema List via <get> Operation .................9 4.2. Retrieving Schema Instances ...............................11 5. NETCONF Monitoring Data Model ..................................13 6. Security Considerations ........................................25 7. Acknowledgements ...............................................26 8. IANA Considerations ............................................26 9. References .....................................................26 9.1. Normative References ......................................26 9.2. Informative References ....................................27 Scott & Bjorklund Standards Track [Page 2] RFC 6022 YANG Module for NETCONF Monitoring October 2010 RFC 6022 YANG Module for NETCONF Monitoring October 2010 netconf-state /capabilities /datastores /schemas /sessions /statistics capabilities List of NETCONF capabilities supported by the server. datastores List of NETCONF configuration datastores (e.g., running, startup, candidate) supported on this device and related information. schemas List of schemas supported on the server. Includes all the information required to identify the schemas and to support their retrieval. sessions List of all active NETCONF sessions on the device. Includes per- session counters for all NETCONF sessions. statistics Includes global counters for the NETCONF server. RFC 6022 YANG Module for NETCONF Monitoring October 2010 locks (grouping, lock-info) List of locks for the datastore. Information is provided for both global and partial locks [RFC5717]. For partial locks, the list of locked nodes and the select expressions originally used to request the lock are returned. RFC 6022 YANG Module for NETCONF Monitoring October 2010 location (union: enum, inet:uri) One or more locations from which this specific schema can be retrieved. The list SHOULD contain at least one entry per schema. RFC 6022 YANG Module for NETCONF Monitoring October 2010 in-bad-rpcs (yang:zero-based-counter32) Number of messages received when an <rpc> message was expected, that were not correct <rpc> messages. This includes XML parse errors and errors on the rpc layer. out-rpc-errors (yang:zero-based-counter32) Number of <rpc-reply> messages sent that contained an <rpc-error> element. out-notifications (yang:zero-based-counter32) Number of <notification> messages sent. RFC 6022 YANG Module for NETCONF Monitoring October 2010 in-bad-rpcs (yang:zero-based-counter32) Number of messages received when an <rpc> message was expected, which were not correct <rpc> messages. out-rpc-errors (yang:zero-based-counter32) Number of <rpc-reply> messages sent that contained an <rpc-error> element. out-notifications (yang:zero-based-counter32) Number of <notification> messages sent. RFC 6022 YANG Module for NETCONF Monitoring October 2010 RFC 6022 YANG Module for NETCONF Monitoring October 2010 <rpc-reply message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <schemas> <schema> <identifier>foo</identifier> <version>1.0</version> <format>xsd</format> <namespace>http://example.com/foo</namespace> <location>ftp://ftp.example.com/schemas/foo_1.0.xsd</location> <location>http://www.example.com/schema/foo_1.0.xsd</location> <location>NETCONF</location> </schema> <schema> <identifier>foo</identifier> <version>1.1</version> <format>xsd</format> <namespace>http://example.com/foo</namespace> <location>ftp://ftp.example.com/schemas/foo_1.1.xsd</location> <location>http://www.example.com/schema/foo_1.1.xsd</location> <location>NETCONF</location> </schema> <schema> <identifier>bar</identifier> <version>2008-06-01</version> <format>yang</format> <namespace>http://example.com/bar</namespace> <location> http://example.com/schema/[email protected] </location> <location>NETCONF</location> </schema> <schema> <identifier>bar-types</identifier> <version>2008-06-01</version> <format>yang</format> <namespace>http://example.com/bar</namespace> <location> http://example.com/schema/[email protected] </location> <location>NETCONF</location> </schema> </schemas> </netconf-state> </data> </rpc-reply> Scott & Bjorklund Standards Track [Page 10] RFC 6022 YANG Module for NETCONF Monitoring October 2010 RFC 6022 YANG Module for NETCONF Monitoring October 2010 <rpc message-id="102" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <get-schema xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <identifer>bar</identifer> <version>2008-06-01</version> </get-schema> </rpc> <rpc-reply message-id="102" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> module bar { //default format (yang) returned //bar version 2008-06-01 yang module //contents here ... } </data> </rpc-reply> 3. bar-types, version 2008-06-01 in default YANG format: a. Via <get-schema> using identifer parameter: <rpc message-id="103" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <get-schema xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <identifer>bar-types</identifer> </get-schema> </rpc> <rpc-reply message-id="103" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> module bar-types { //default format (yang) returned //latest revision returned //is version 2008-06-01 yang module //contents here ... } </data> </rpc-reply> Scott & Bjorklund Standards Track [Page 12] RFC 6022 YANG Module for NETCONF Monitoring October 2010 RFC 6022 YANG Module for NETCONF Monitoring October 2010 License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC 6022; see the RFC itself for full legal notices."; revision 2010-10-04 { description "Initial revision."; reference "RFC 6022: YANG Module for NETCONF Monitoring"; } typedef netconf-datastore-type { type enumeration { enum running; enum candidate; enum startup; } description "Enumeration of possible NETCONF datastore types."; reference "RFC 4741: NETCONF Configuration Protocol"; } identity transport { description "Base identity for NETCONF transport types."; } identity netconf-ssh { base transport; description "NETCONF over Secure Shell (SSH)."; reference "RFC 4742: Using the NETCONF Configuration Protocol over Secure SHell (SSH)"; } identity netconf-soap-over-beep { base transport; description "NETCONF over Simple Object Access Protocol (SOAP) over Blocks Extensible Exchange Protocol (BEEP)."; Scott & Bjorklund Standards Track [Page 14] RFC 6022 YANG Module for NETCONF Monitoring October 2010 reference "RFC 4743: Using NETCONF over the Simple Object Access Protocol (SOAP)"; } identity netconf-soap-over-https { base transport; description "NETCONF over Simple Object Access Protocol (SOAP) over Hypertext Transfer Protocol Secure (HTTPS)."; reference "RFC 4743: Using NETCONF over the Simple Object Access Protocol (SOAP)"; } identity netconf-beep { base transport; description "NETCONF over Blocks Extensible Exchange Protocol (BEEP)."; reference "RFC 4744: Using the NETCONF Protocol over the Blocks Extensible Exchange Protocol (BEEP)"; } identity netconf-tls { base transport; description "NETCONF over Transport Layer Security (TLS)."; reference "RFC 5539: NETCONF over Transport Layer Security (TLS)"; } identity schema-format { description "Base identity for data model schema languages."; } identity xsd { base schema-format; description "W3C XML Schema Definition."; reference "W3C REC REC-xmlschema-1-20041028: XML Schema Part 1: Structures"; } Scott & Bjorklund Standards Track [Page 15] RFC 6022 YANG Module for NETCONF Monitoring October 2010 identity yang { base schema-format; description "The YANG data modeling language for NETCONF."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } identity yin { base schema-format; description "The YIN syntax for YANG."; reference "RFC 6020: YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)"; } identity rng { base schema-format; description "Regular Language for XML Next Generation (RELAX NG)."; reference "ISO/IEC 19757-2:2008: RELAX NG"; } identity rnc { base schema-format; description "Relax NG Compact Syntax"; reference "ISO/IEC 19757-2:2008: RELAX NG"; } grouping common-counters { description "Counters that exist both per session, and also globally, accumulated from all sessions."; leaf in-rpcs { type yang:zero-based-counter32; description "Number of correct <rpc> messages received."; } leaf in-bad-rpcs { type yang:zero-based-counter32; Scott & Bjorklund Standards Track [Page 16] RFC 6022 YANG Module for NETCONF Monitoring October 2010 description "Number of messages received when an <rpc> message was expected, that were not correct <rpc> messages. This includes XML parse errors and errors on the rpc layer."; } leaf out-rpc-errors { type yang:zero-based-counter32; description "Number of <rpc-reply> messages sent that contained an <rpc-error> element."; } leaf out-notifications { type yang:zero-based-counter32; description "Number of <notification> messages sent."; } } container netconf-state { config false; description "The netconf-state container is the root of the monitoring data model."; container capabilities { description "Contains the list of NETCONF capabilities supported by the server."; leaf-list capability { type inet:uri; description "List of NETCONF capabilities supported by the server."; } } container datastores { description "Contains the list of NETCONF configuration datastores."; list datastore { key name; description "List of NETCONF configuration datastores supported by the NETCONF server and related information."; leaf name { type netconf-datastore-type; Scott & Bjorklund Standards Track [Page 17] RFC 6022 YANG Module for NETCONF Monitoring October 2010 description "Name of the datastore associated with this list entry."; } container locks { presence "This container is present only if the datastore is locked."; description "The NETCONF <lock> and <partial-lock> operations allow a client to lock specific resources in a datastore. The NETCONF server will prevent changes to the locked resources by all sessions except the one that acquired the lock(s). Monitoring information is provided for each datastore entry including details such as the session that acquired the lock, the type of lock (global or partial) and the list of locked resources. Multiple locks per datastore are supported."; grouping lock-info { description "Lock related parameters, common to both global and partial locks."; leaf locked-by-session { type uint32; mandatory true; description "The session ID of the session that has locked this resource. Both a global lock and a partial lock MUST contain the NETCONF session-id. If the lock is held by a session that is not managed by the NETCONF server (e.g., a CLI session), a session id of 0 (zero) is reported."; reference "RFC 4741: NETCONF Configuration Protocol"; } leaf locked-time { type yang:date-and-time; mandatory true; description "The date and time of when the resource was locked."; } } Scott & Bjorklund Standards Track [Page 18] RFC 6022 YANG Module for NETCONF Monitoring October 2010 choice lock-type { description "Indicates if a global lock or a set of partial locks are set."; container global-lock { description "Present if the global lock is set."; uses lock-info; } list partial-lock { key lock-id; description "List of partial locks."; reference "RFC 5717: Partial Lock Remote Procedure Call (RPC) for NETCONF"; leaf lock-id { type uint32; description "This is the lock id returned in the <partial-lock> response."; } uses lock-info; leaf-list select { type yang:xpath1.0; min-elements 1; description "The xpath expression that was used to request the lock. The select expression indicates the original intended scope of the lock."; } leaf-list locked-node { type instance-identifier; description "The list of instance-identifiers (i.e., the locked nodes). The scope of the partial lock is defined by the list of locked nodes."; } } } } } } Scott & Bjorklund Standards Track [Page 19] RFC 6022 YANG Module for NETCONF Monitoring October 2010 container schemas { description "Contains the list of data model schemas supported by the server."; list schema { key "identifier version format"; description "List of data model schemas supported by the server."; leaf identifier { type string; description "Identifier to uniquely reference the schema. The identifier is used in the <get-schema> operation and may be used for other purposes such as file retrieval. For modeling languages that support or require a data model name (e.g., YANG module name) the identifier MUST match that name. For YANG data models, the identifier is the name of the module or submodule. In other cases, an identifier such as a filename MAY be used instead."; } leaf version { type string; description "Version of the schema supported. Multiple versions MAY be supported simultaneously by a NETCONF server. Each version MUST be reported individually in the schema list, i.e., with same identifier, possibly different location, but different version. For YANG data models, version is the value of the most recent YANG 'revision' statement in the module or submodule, or the empty string if no 'revision' statement is present."; } leaf format { type identityref { base schema-format; } description "The data modeling language the schema is written in (currently xsd, yang, yin, rng, or rnc). Scott & Bjorklund Standards Track [Page 20] RFC 6022 YANG Module for NETCONF Monitoring October 2010 For YANG data models, 'yang' format MUST be supported and 'yin' format MAY also be provided."; } leaf namespace { type inet:uri; mandatory true; description "The XML namespace defined by the data model. For YANG data models, this is the module's namespace. If the list entry describes a submodule, this field contains the namespace of the module to which the submodule belongs."; } leaf-list location { type union { type enumeration { enum "NETCONF"; } type inet:uri; } description "One or more locations from which the schema can be retrieved. This list SHOULD contain at least one entry per schema. A schema entry may be located on a remote file system (e.g., reference to file system for ftp retrieval) or retrieved directly from a server supporting the <get-schema> operation (denoted by the value 'NETCONF')."; } } } Scott & Bjorklund Standards Track [Page 21] RFC 6022 YANG Module for NETCONF Monitoring October 2010 container sessions { description "The sessions container includes session-specific data for NETCONF management sessions. The session list MUST include all currently active NETCONF sessions."; list session { key session-id; description "All NETCONF sessions managed by the NETCONF server MUST be reported in this list."; leaf session-id { type uint32 { range "1..max"; } description "Unique identifier for the session. This value is the NETCONF session identifier, as defined in RFC 4741."; reference "RFC 4741: NETCONF Configuration Protocol"; } leaf transport { type identityref { base transport; } mandatory true; description "Identifies the transport for each session, e.g., 'netconf-ssh', 'netconf-soap', etc."; } leaf username { type string; mandatory true; description "The username is the client identity that was authenticated by the NETCONF transport protocol. The algorithm used to derive the username is NETCONF transport protocol specific and in addition specific to the authentication mechanism used by the NETCONF transport protocol."; } leaf source-host { type inet:host; description "Host identifier of the NETCONF client. The value returned is implementation specific (e.g., hostname, IPv4 address, IPv6 address)"; } Scott & Bjorklund Standards Track [Page 22] RFC 6022 YANG Module for NETCONF Monitoring October 2010 leaf login-time { type yang:date-and-time; mandatory true; description "Time at the server at which the session was established."; } uses common-counters { description "Per-session counters. Zero based with following reset behaviour: - at start of a session - when max value is reached"; } } } container statistics { description "Statistical data pertaining to the NETCONF server."; leaf netconf-start-time { type yang:date-and-time; description "Date and time at which the management subsystem was started."; } leaf in-bad-hellos { type yang:zero-based-counter32; description "Number of sessions silently dropped because an invalid <hello> message was received. This includes <hello> messages with a 'session-id' attribute, bad namespace, and bad capability declarations."; } leaf in-sessions { type yang:zero-based-counter32; description "Number of sessions started. This counter is incremented when a <hello> message with a <session-id> is sent. 'in-sessions' - 'in-bad-hellos' = 'number of correctly started netconf sessions'"; } leaf dropped-sessions { type yang:zero-based-counter32; Scott & Bjorklund Standards Track [Page 23] RFC 6022 YANG Module for NETCONF Monitoring October 2010 description "Number of sessions that were abnormally terminated, e.g., due to idle timeout or transport close. This counter is not incremented when a session is properly closed by a <close-session> operation, or killed by a <kill-session> operation."; } uses common-counters { description "Global counters, accumulated from all sessions. Zero based with following reset behaviour: - re-initialization of NETCONF server - when max value is reached"; } } } rpc get-schema { description "This operation is used to retrieve a schema from the NETCONF server. Positive Response: The NETCONF server returns the requested schema. Negative Response: If requested schema does not exist, the <error-tag> is 'invalid-value'. If more than one schema matches the requested parameters, the <error-tag> is 'operation-failed', and <error-app-tag> is 'data-not-unique'."; input { leaf identifier { type string; mandatory true; description "Identifier for the schema list entry."; } leaf version { type string; description "Version of the schema requested. If this parameter is not present, and more than one version of the schema exists on the server, a 'data-not-unique' error is returned, as described above."; } Scott & Bjorklund Standards Track [Page 24] RFC 6022 YANG Module for NETCONF Monitoring October 2010 leaf format { type identityref { base schema-format; } description "The data modeling language of the schema. If this parameter is not present, and more than one formats of the schema exists on the server, a 'data-not-unique' error is returned, as described above."; } } output { anyxml data { description "Contains the schema content."; } } } } <CODE ENDS> RFC 6022 YANG Module for NETCONF Monitoring October 2010 RFC 6022 YANG Module for NETCONF Monitoring October 2010 [RFC4742] Wasserman, M. and T. Goddard, "Using the NETCONF Configuration Protocol over Secure SHell (SSH)", RFC 4742, December 2006. [RFC4743] Goddard, T., "Using NETCONF over the Simple Object Access Protocol (SOAP)", RFC 4743, December 2006. [RFC4744] Lear, E. and K. Crozier, "Using the NETCONF Protocol over the Blocks Extensible Exchange Protocol (BEEP)", RFC 4744, December 2006. [RFC5539] Badra, M., "NETCONF over Transport Layer Security (TLS)", RFC 5539, May 2009. [RFC5717] Lengyel, B. and M. Bjorklund, "Partial Lock Remote Procedure Call (RPC) for NETCONF", RFC 5717, December 2009. [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", October 2010. [RFC6021] Schoenwaelder, J., Ed., "Common YANG Data Types", October 2010. [XML-NAMES] Hollander, D., Tobin, R., Thompson, H., Bray, T., and A. Layman, "Namespaces in XML 1.0 (Third Edition)", World Wide Web Consortium Recommendation REC-xml-names-20091208, December 2009, <http://www.w3.org/TR/2009/REC-xml-names-20091208>. [xmlschema-1] Biron, Paul V. and Ashok. Malhotra, "XML Schema Part 1: Structures Second Edition W3C Recommendation 28 October 2004", October 2004, <http://www.w3.org/TR/xmlschema-1>. RFC 6022 YANG Module for NETCONF Monitoring October 2010 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004. Authors' Addresses Mark Scott Ericsson 3500 Carling Ave Nepean, Ontario K2H 8E9 Canada EMail: [email protected] Martin Bjorklund Tail-f Systems Klara Norra Kyrkogata 31 SE-111 22 Stockholm, Sweden EMail: [email protected] Scott & Bjorklund Standards Track [Page 28]
Datatracker
RFC 6022
Show sidebar by default
Yes
No
Tab to show by default
Info
Contents
HTMLization configuration
HTMLize the plaintext
Plaintextify the HTML
Maximum font size
Page dependencies
Inline
Reference
Citation links
Go to reference section
Go to linked document
| ||||||||||||||||||||||||||||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |