VES Heartbeat and Software Management Feature
[oam/tr069-adapter.git] / netconf-server / schemas / ietf-netconf-monitoring.yang
diff --git a/netconf-server/schemas/ietf-netconf-monitoring.yang b/netconf-server/schemas/ietf-netconf-monitoring.yang
new file mode 100644 (file)
index 0000000..8d167b8
--- /dev/null
@@ -0,0 +1,596 @@
+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