netconfcentral logo

ietf-netconf-state

HTML

ietf-netconf-state@2009-06-16



  module ietf-netconf-state {

    yang-version 1;

    namespace
      "urn:ietf:params:xml:ns:netconf:state";

    prefix ns;

    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:markscot@nortel.com>";

    description
      "NETCONF Monitoring Module.
     All elements in this module are read-only.

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.";

    revision "2009-06-16" {
      description
        "Initial revision, published as RFC XXXX.";
    }


    typedef session-id {
      type uint32 {
        range "1..max";
      }
      description "NETCONF Session Id";
      reference
        "RFC 4741: NETCONF Configuration Protocol";

    }

    grouping netconf-datastore-type {
      description
        "Enumeration of possible NETCONF datastore types.";
      reference
        "RFC 4741: NETCONF Configuration Protocol";

      choice datastore {
        mandatory true;
        leaf running {
          type empty;
        }
        leaf candidate {
          type empty;
        }
        leaf startup {
          type empty;
        }
      }  // choice datastore
    }  // grouping netconf-datastore-type

    identity transport {
      base 
      description
        "Base identity for session types.";
    }

    identity netconf-ssh {
      base transport;
      reference
        "RFC 4742";

    }

    identity netconf-soap-over-beep {
      base transport;
      reference
        "RFC 4743";

    }

    identity netconf-soap-over-https {
      base transport;
      reference
        "RFC 4743";

    }

    identity netconf-beep {
      base transport;
      reference
        "RFC 4744";

    }

    identity netconf-tls {
      base transport;
      reference
        "RFC 5539";

    }

    identity schema-format {
      base 
      description
        "Base identity for data model schema languages.";
    }

    identity xsd {
      base schema-format;
      reference
        "W3C REC REC-xmlschema-1-20041028";

    }

    identity rng {
      base schema-format;
      reference
        "ISO/IEC 19757-2";

    }

    identity yang {
      base schema-format;
      reference
        "RFC XXXX:  YANG - A data modeling language for NETCONF";

    }

    identity yin {
      base schema-format;
      reference
        "RFC XXXX:  YANG - A data modeling language for NETCONF";

    }

    identity rnc {
      base schema-format;
      reference
        "ISO/IEC 19757-2";

    }

    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> requests received.";
      }

      leaf in-bad-rpcs {
        type yang:zero-based-counter32;
        description
          "Number of messages received when a <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 which contained an
        <rpc-error> element.";
      }

      leaf out-notifications {
        type yang:zero-based-counter32;
        description
          "Number of <notification> messages sent.";
      }
    }  // grouping common-counters

    container netconf-state {
      config false;
      container capabilities {
        description
          "The list of currently provided NETCONF capabilities
         exchanged during session setup (i.e. hello).";
        leaf-list capability {
          type inet:uri;
        }
      }  // container capabilities

      container datastores {
        description
          "List of NETCONF configuration datastores (e.g. running,
         startup, candidate) supported on this device and related
         information.";
        list datastore {
          container name {
            uses netconf-datastore-type;
          }  // container name

          container locks {
            description
              "An indication of whether a resource is locked or
             unlocked.  If locked, additional information about
             the locking such as user an time stamp is provided.";
            grouping lock-info {
              leaf locked-by-session {
                type session-id;
                description
                  "The session ID of the session that has locked
                 this resource.";
              }

              leaf locked-time {
                type yang:date-and-time;
                description
                  "The date and time of when the resource was
                 locked.";
              }
            }  // grouping lock-info
            choice lock-type {
              container global-lock {
                description
                  "Present if the global lock is set.";
                uses lock-info;
              }  // container global-lock
              list partial-locks {
                key "lock-id";
                description
                  "For a partial lock this is the lock id returned
                  in the <partial-lock> response.";
                leaf lock-id {
                  type uint32;
                }

                uses lock-info;

                leaf-list select {
                  type string;
                  min-elements 1;
                  description
                    "The xpath expression which was used to request
                   the lock.";
                }

                leaf-list locked-nodes {
                  type instance-identifier;
                  description
                    "The list of instance-identifiers (i.e. the
                   locked nodes).";
                }
              }  // list partial-locks
            }  // choice lock-type
          }  // container locks
        }  // list datastore
      }  // container datastores

      container schemas {
        list schema {
          key "identifier version format";
          leaf identifier {
            type string;
            description
              "Identifier to uniquely reference the schema";
          }

          leaf version {
            type string;
            description
              "Version of the schema supported.  Multiple versions can be
             supported simultaneously.";
          }

          leaf format {
            type identityref {
              base schema-format;
            }
            description
              "Schema language for the file/module.";
          }

          leaf namespace {
            type inet:uri;
            description
              "The XML namespace defined by the data model.";
          }

          leaf-list location {
            type union {
              type enumeration {
                enum "NETCONF" {
                  value 0;
                }
              }
              type inet:uri;
            }
            description
              "One or more locations from which the schema can be
          retrieved. Can be either on the network device
          retrievable explicitly via the <get-schema> NETCONF
          operation (denoted by the value 'NETCONF') or some
          network location (i.e. URL).";
          }
        }  // list schema
      }  // container schemas

      container sessions {
        description
          "List of management sessions currently active on this device.";
        list session {
          key "session-id";
          leaf session-id {
            type session-id;
          }

          leaf transport {
            type identityref {
              base transport;
            }
            mandatory true;
          }

          leaf username {
            type string;
          }

          leaf source-host {
            type inet:host;
          }

          leaf login-time {
            type yang:date-and-time;
            mandatory true;
            description
              "Time at which the session was established.";
          }

          uses common-counters {
            description
              "Per-session counters.";
          }
        }  // list session
      }  // container sessions

      container statistics {
        leaf netconf-start-time {
          type yang:date-and-time;
          description
            "Date and time at which the NETCONF server process was
           started.  Allows for calculation of time interval for
           reported metrics.";
        }

        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;
          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.";
        }
      }  // container statistics
    }  // container netconf-state

    rpc get-schema {
      description
        "When the schema is available on the device this operation is
      used to return it via NETCONF.  If requested schema does not
      exist, the <error-tag> is 'invalid-value'.  If requested schema
      is not unique, the <error-tag> is  'operation-failed' and the
      <error-app-tag> is 'data-not-unique'.";
      input {
        leaf identifier {
          type string;
          mandatory true;
        }

        leaf version {
          type string;
        }

        leaf format {
          type identityref {
            base schema-format;
          }
        }
      }

      output {
        anyxml data {
          description
            "Contains the schema content.";
        }
      }
    }  // rpc get-schema
  }  // module ietf-netconf-state

Summary

  
  
Organization IETF NETCONF (Network Configuration) Working Group
  
Module ietf-netconf-state
Version 2009-06-16
File ietf-netconf-state@2009-06-16.yang
  
Prefix ns
Namespace urn:ietf:params:xml:ns:netconf:state
  
Cooked /cookedmodules/ietf-netconf-state/2009-06-16
YANG /src/ietf-netconf-state@2009-06-16.yang
XSD /xsd/ietf-netconf-state@2009-06-16.xsd
  
Abstract NETCONF Monitoring Module. All elements in this module are read-only. This version of this YANG module is part of RFC XXXX; see...
  
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:markscot@nortel.com>

Description

 
NETCONF Monitoring Module.
All elements in this module are read-only.

This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices.

Typedefs

Typedef Base type Abstract
session-id uint32 NETCONF Session Id

Groupings

Grouping Objects Abstract
common-counters in-rpcs in-bad-rpcs out-rpc-errors out-notifications Counters that exist both per session, and also globally, accumulated from all sessions.
netconf-datastore-type datastore Enumeration of possible NETCONF datastore types.

Objects

Type Key
Mandatory config
Optional config
Not config
Object Type Abstract
netconf-state container capabilities datastores schemas sessions statistics
   capabilities container The list of currently provided NETCONF capabilities exchanged during session setup (i.e. hello).
      capability leaf-list OID: /netconf-state/capabilities/capability
   datastores container List of NETCONF configuration datastores (e.g. running, startup, candidate) supported on this device and related information.
      datastore list name locks
         locks container An indication of whether a resource is locked or unlocked. If locked, additional information about the locking such as user an time stamp is provided.
            lock-type choice global-lock partial-locks
               global-lock case global-lock
                  global-lock container Present if the global lock is set.
                     locked-by-session leaf The session ID of the session that has locked this resource.
                     locked-time leaf The date and time of when the resource was locked.
               partial-locks case partial-locks
                  partial-locks list For a partial lock this is the lock id returned in the <partial-lock> response.
                     lock-id leaf OID: /netconf-state/datastores/datastore/locks/lock-type/partial-locks/partial-locks/lock-id
                     locked-by-session leaf The session ID of the session that has locked this resource.
                     locked-nodes leaf-list The list of instance-identifiers (i.e. the locked nodes).
                     locked-time leaf The date and time of when the resource was locked.
                     select leaf-list The xpath expression which was used to request the lock.
         name container datastore
            datastore choice running candidate startup
               candidate case candidate
                  candidate leaf OID: /netconf-state/datastores/datastore/name/datastore/candidate/candidate
               running case running
                  running leaf OID: /netconf-state/datastores/datastore/name/datastore/running/running
               startup case startup
                  startup leaf OID: /netconf-state/datastores/datastore/name/datastore/startup/startup
   schemas container schema
      schema list identifier version format namespace location
         format leaf Schema language for the file/module.
         identifier leaf Identifier to uniquely reference the schema
         location leaf-list One or more locations from which the schema can be retrieved. Can be either on the network device retrievable explicitly via the <get-schema> NETCONF operation (denoted by the value 'NETCONF') or some network location (i.e. URL).
         namespace leaf The XML namespace defined by the data model.
         version leaf Version of the schema supported. Multiple versions can be supported simultaneously.
   sessions container List of management sessions currently active on this device.
      session list session-id transport username source-host login-time in-rpcs in-bad-rpcs out-rpc-errors out-notifications
         in-bad-rpcs leaf Number of messages received when a <rpc> message was expected, that were not correct <rpc> messages. This includes XML parse errors and errors on the rpc layer.
         in-rpcs leaf Number of correct <rpc> requests received.
         login-time leaf Time at which the session was established.
         out-notifications leaf Number of <notification> messages sent.
         out-rpc-errors leaf Number of <rpc-reply> messages sent which contained an <rpc-error> element.
         session-id leaf OID: /netconf-state/sessions/session/session-id
         source-host leaf OID: /netconf-state/sessions/session/source-host
         transport leaf OID: /netconf-state/sessions/session/transport
         username leaf OID: /netconf-state/sessions/session/username
   statistics container netconf-start-time in-bad-hellos in-sessions dropped-sessions in-rpcs in-bad-rpcs out-rpc-errors out-notifications
      dropped-sessions leaf 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.
      in-bad-hellos leaf 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.
      in-bad-rpcs leaf Number of messages received when a <rpc> message was expected, that were not correct <rpc> messages. This includes XML parse errors and errors on the rpc layer.
      in-rpcs leaf Number of correct <rpc> requests received.
      in-sessions leaf 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'
      netconf-start-time leaf Date and time at which the NETCONF server process was started. Allows for calculation of time interval for reported metrics.
      out-notifications leaf Number of <notification> messages sent.
      out-rpc-errors leaf Number of <rpc-reply> messages sent which contained an <rpc-error> element.

RPC Methods

RPC Abstract
get-schema When the schema is available on the device this operation is used to return it via NETCONF. If requested schema does not exist, the <error-tag> is 'invalid-value'. If requested schema is not unique, the <error-tag> is 'operation-failed' and the <error-...