summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-types@2018-05-05.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-types@2018-05-05.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-types@2018-05-05.yang455
1 files changed, 455 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-types@2018-05-05.yang b/src/plugins/yang/openconfig/openconfig-types@2018-05-05.yang
new file mode 100644
index 0000000..01713b3
--- /dev/null
+++ b/src/plugins/yang/openconfig/openconfig-types@2018-05-05.yang
@@ -0,0 +1,455 @@
+module openconfig-types {
+ yang-version "1";
+
+ namespace "http://openconfig.net/yang/openconfig-types";
+
+ prefix "oc-types";
+
+ // import statements
+ import openconfig-extensions { prefix oc-ext; }
+
+ // meta
+ organization
+ "OpenConfig working group";
+
+ contact
+ "OpenConfig working group
+ netopenconfig@googlegroups.com";
+
+ description
+ "This module contains a set of general type definitions that
+ are used across OpenConfig models. It can be imported by modules
+ that make use of these types.";
+
+ oc-ext:openconfig-version "0.5.0";
+
+ revision "2018-05-05" {
+ description
+ "Add grouping of min-max-time and
+ included them to all stats with min/max/avg";
+ reference "0.5.0";
+ }
+
+ revision "2018-01-16" {
+ description
+ "Add interval to min/max/avg stats; add percentage stat";
+ reference "0.4.0";
+ }
+
+ revision "2017-08-16" {
+ description
+ "Apply fix for ieetfloat32 length parameter";
+ reference "0.3.3";
+ }
+
+ revision "2017-01-13" {
+ description
+ "Add ADDRESS_FAMILY identity";
+ reference "0.3.2";
+ }
+
+ revision "2016-11-14" {
+ description
+ "Correct length of ieeefloat32";
+ reference "0.3.1";
+ }
+
+ revision "2016-11-11" {
+ description
+ "Additional types - ieeefloat32 and routing-password";
+ reference "0.3.0";
+ }
+
+ revision "2016-05-31" {
+ description
+ "OpenConfig public release";
+ reference "0.2.0";
+ }
+
+ typedef percentage {
+ type uint8 {
+ range "0..100";
+ }
+ description
+ "Integer indicating a percentage value";
+ }
+
+ typedef std-regexp {
+ type string;
+ description
+ "This type definition is a placeholder for a standard
+ definition of a regular expression that can be utilised in
+ OpenConfig models. Further discussion is required to
+ consider the type of regular expressions that are to be
+ supported. An initial proposal is POSIX compatible.";
+ }
+
+ typedef timeticks64 {
+ type uint64;
+ description
+ "This type is based on the timeticks type defined in
+ RFC 6991, but with 64-bit width. It represents the time,
+ modulo 2^64, in hundredths of a second between two epochs.";
+ reference
+ "RFC 6991 - Common YANG Data Types";
+ }
+
+ typedef ieeefloat32 {
+ type binary {
+ length "4";
+ }
+ description
+ "An IEEE 32-bit floating point number. The format of this number
+ is of the form:
+ 1-bit sign
+ 8-bit exponent
+ 23-bit fraction
+ The floating point value is calculated using:
+ (-1)**S * 2**(Exponent-127) * (1+Fraction)";
+ }
+
+ typedef routing-password {
+ type string;
+ description
+ "This type is indicative of a password that is used within
+ a routing protocol which can be returned in plain text to the
+ NMS by the local system. Such passwords are typically stored
+ as encrypted strings. Since the encryption used is generally
+ well known, it is possible to extract the original value from
+ the string - and hence this format is not considered secure.
+ Leaves specified with this type should not be modified by
+ the system, and should be returned to the end-user in plain
+ text. This type exists to differentiate passwords, which
+ may be sensitive, from other string leaves. It could, for
+ example, be used by the NMS to censor this data when
+ viewed by particular users.";
+ }
+
+ typedef stat-interval {
+ type uint64;
+ units nanoseconds;
+ description
+ "A time interval over which a set of statistics is computed.
+ A common usage is to report the interval over which
+ avg/min/max stats are computed and reported.";
+ }
+
+ grouping stat-interval-state {
+ description
+ "Reusable leaf definition for stats computation interval";
+
+ leaf interval {
+ type oc-types:stat-interval;
+ description
+ "If supported by the system, this reports the time interval
+ over which the min/max/average statistics are computed by
+ the system.";
+ }
+ }
+
+ grouping min-max-time {
+ description
+ "Common grouping for recording the absolute time at which
+ the minimum and maximum values occurred in the statistics";
+
+ leaf min-time {
+ type oc-types:timeticks64;
+ description
+ "The absolute time at which the minimum value occurred.
+ The value is the timestamp in nanoseconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
+ }
+
+ leaf max-time {
+ type oc-types:timeticks64;
+ description
+ "The absolute time at which the maximum value occurred.
+ The value is the timestamp in nanoseconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
+ }
+ }
+
+ grouping avg-min-max-stats-precision1 {
+ description
+ "Common nodes for recording average, minimum, and
+ maximum values for a statistic. These values all have
+ fraction-digits set to 1. Statistics are computed
+ and reported based on a moving time interval (e.g., the last
+ 30s). If supported by the device, the time interval over which
+ the statistics are computed is also reported.";
+
+ leaf avg {
+ type decimal64 {
+ fraction-digits 1;
+ }
+ description
+ "The arithmetic mean value of the statistic over the
+ time interval.";
+ }
+
+ leaf min {
+ type decimal64 {
+ fraction-digits 1;
+ }
+ description
+ "The minimum value of the statistic over the time
+ interval.";
+ }
+
+ leaf max {
+ type decimal64 {
+ fraction-digits 1;
+ }
+ description
+ "The maximum value of the statitic over the time
+ interval.";
+ }
+
+ uses stat-interval-state;
+ uses min-max-time;
+ }
+
+ grouping avg-min-max-instant-stats-precision1 {
+ description
+ "Common grouping for recording an instantaneous statistic value
+ in addition to avg-min-max stats";
+
+ leaf instant {
+ type decimal64 {
+ fraction-digits 1;
+ }
+ description
+ "The instantaneous value of the statistic.";
+ }
+
+ uses avg-min-max-stats-precision1;
+ }
+
+ grouping avg-min-max-instant-stats-precision2-dB {
+ description
+ "Common grouping for recording dB values with 2 decimal
+ precision. Values include the instantaneous, average,
+ minimum, and maximum statistics. Statistics are computed
+ and reported based on a moving time interval (e.g., the last
+ 30s). If supported by the device, the time interval over which
+ the statistics are computed, and the times at which the minimum
+ and maximum values occurred, are also reported.";
+
+ leaf instant {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dB;
+ description
+ "The instantaneous value of the statistic.";
+ }
+
+ leaf avg {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dB;
+ description
+ "The arithmetic mean value of the statistic over the
+ time interval.";
+ }
+
+ leaf min {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dB;
+ description
+ "The minimum value of the statistic over the time interval.";
+ }
+
+ leaf max {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dB;
+ description
+ "The maximum value of the statistic over the time
+ interval.";
+ }
+
+ uses stat-interval-state;
+ uses min-max-time;
+ }
+
+ grouping avg-min-max-instant-stats-precision2-dBm {
+ description
+ "Common grouping for recording dBm values with 2 decimal
+ precision. Values include the instantaneous, average,
+ minimum, and maximum statistics. Statistics are computed
+ and reported based on a moving time interval (e.g., the last
+ 30s). If supported by the device, the time interval over which
+ the statistics are computed, and the times at which the minimum
+ and maximum values occurred, are also reported.";
+
+ leaf instant {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ description
+ "The instantaneous value of the statistic.";
+ }
+
+ leaf avg {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ description
+ "The arithmetic mean value of the statistic over the
+ time interval.";
+ }
+
+ leaf min {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ description
+ "The minimum value of the statistic over the time
+ interval.";
+ }
+
+ leaf max {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units dBm;
+ description
+ "The maximum value of the statistic over the time interval.";
+ }
+
+ uses stat-interval-state;
+ uses min-max-time;
+ }
+
+ grouping avg-min-max-instant-stats-precision2-mA {
+ description
+ "Common grouping for recording mA values with 2 decimal
+ precision. Values include the instantaneous, average,
+ minimum, and maximum statistics. Statistics are computed
+ and reported based on a moving time interval (e.g., the last
+ 30s). If supported by the device, the time interval over which
+ the statistics are computed, and the times at which the minimum
+ and maximum values occurred, are also reported.";
+
+ leaf instant {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units mA;
+ description
+ "The instantaneous value of the statistic.";
+ }
+
+ leaf avg {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units mA;
+ description
+ "The arithmetic mean value of the statistic over the
+ time interval.";
+ }
+
+ leaf min {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units mA;
+ description
+ "The minimum value of the statistic over the time
+ interval.";
+ }
+
+ leaf max {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units mA;
+ description
+ "The maximum value of the statistic over the time
+ interval.";
+ }
+
+ uses stat-interval-state;
+ uses min-max-time;
+ }
+
+ grouping avg-min-max-instant-stats-pct {
+ description
+ "Common grouping for percentage statistics.
+ Values include the instantaneous, average,
+ minimum, and maximum statistics. Statistics are computed
+ and reported based on a moving time interval (e.g., the last
+ 30s). If supported by the device, the time interval over which
+ the statistics are computed, and the times at which the minimum
+ and maximum values occurred, are also reported.";
+
+ leaf instant {
+ type oc-types:percentage;
+ description
+ "The instantaneous percentage value.";
+ }
+
+ leaf avg {
+ type oc-types:percentage;
+ description
+ "The arithmetic mean value of the percentage measure of the
+ statistic over the time interval.";
+ }
+
+ leaf min {
+ type oc-types:percentage;
+ description
+ "The minimum value of the percentage measure of the
+ statistic over the time interval.";
+ }
+
+ leaf max {
+ type oc-types:percentage;
+ description
+ "The maximum value of the percentage measure of the
+ statistic over the time interval.";
+ }
+
+ uses stat-interval-state;
+ uses min-max-time;
+ }
+
+ identity ADDRESS_FAMILY {
+ description
+ "A base identity for all address families";
+ }
+
+ identity IPV4 {
+ base ADDRESS_FAMILY;
+ description
+ "The IPv4 address family";
+ }
+
+ identity IPV6 {
+ base ADDRESS_FAMILY;
+ description
+ "The IPv6 address family";
+ }
+
+ identity MPLS {
+ base ADDRESS_FAMILY;
+ description
+ "The MPLS address family";
+ }
+
+ identity L2_ETHERNET {
+ base ADDRESS_FAMILY;
+ description
+ "The 802.3 Ethernet address family";
+ }
+
+}