-module ietf-netconf-monitoring {
-
- namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring";
- prefix "ncm";
-
- import ietf-yang-types { prefix yang; }
- import ietf-inet-types { prefix inet; }
-
- organization
- "IETF NETCONF (Network Configuration) Working Group";
-
- contact
- "WG Web: <http://tools.ietf.org/wg/netconf/>
- WG List: <mailto:netconf@ietf.org>
-
- WG Chair: Mehmet Ersue
- <mailto:mehmet.ersue@nsn.com>
-
- WG Chair: Bert Wijnen
- <mailto:bertietf@bwijnen.net>
-
- Editor: Mark Scott
- <mailto:mark.scott@ericsson.com>
-
- Editor: Martin Bjorklund
- <mailto:mbj@tail-f.com>";
-
- description
- "NETCONF Monitoring Module.
- All elements in this module are read-only.
-
- Copyright (c) 2010 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
-
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject
- to the license terms contained in, the Simplified BSD
- 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 tls-fingerprint-type {
- type string {
- pattern '([0-9a-fA-F]){2}(:([0-9a-fA-F]){2})*';
- }
- description
- "A cryptographic signature (fingerprint) value that can be used to
- uniquely reference other data of potentially arbitrary length.";
- }
-
- 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";
- }
-
- container netconf-state {
- config false;
- description
- "The netconf-state container is the root of the monitoring
- data model.";
-
- 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;
- 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.";
-
- choice lock-type {
- description
- "Indicates if a global lock or a set of partial locks
- are set.";
-
- case global-lock {
- container global-lock {
- description
- "Present if the global lock is set.";
-
- 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.";
- }
-
- 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.";
- }
- }
- }
- }
-
- case partial-lock {
- 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.";
- }
- 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 string;
- 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.";
- }
- }
- }
-
- case fingerprint {
- choice algorithm-and-hash {
- mandatory true;
- case md5 {
- leaf md5 {
- type tls-fingerprint-type;
- }
- }
-
- case sha1 {
- leaf sha1 {
- type tls-fingerprint-type;
- }
- }
-
- case sha224 {
- leaf sha224 {
- type tls-fingerprint-type;
- }
- }
-
- case sha256 {
- leaf sha256 {
- type tls-fingerprint-type;
- }
- }
-
- case sha384 {
- leaf sha384 {
- type tls-fingerprint-type;
- }
- }
-
- case sha512 {
- leaf sha512 {
- type tls-fingerprint-type;
- }
- }
-
- description
- "Specifies the signature algorithm and cryptographic
- signature (fingerprint) used to identify an X.509
- certificate.
-
- Implementations of this YANG module MAY, but are not
- required to, implement all of these cryptographic signature
- algorithms. Implementations of this YANG module MUST
- implement at least one of these cryptographic signature
- algorithms.
-
- The available choices may be extended in the future as
- stronger cryptographic signature algorithms become
- available and are deemed necessary.";
-
- reference
- "RFC 5246: The Transport Layer Security (TLS) Protocol
- Version 1.2; Section 7.4.1.4.1, Signature Algorithms";
- } // choice algorithm-and-hash
- }
- }
- }
- }
- }
- }
-}