openconfig-types

This module contains a set of general type definitions that are used across OpenConfig models. It can be imported by modules tha...

  • Version: 2018-01-16

    openconfig-types@2018-01-16


    
      module openconfig-types {
    
        yang-version 1;
    
        namespace
          "http://openconfig.net/yang/openconfig-types";
    
        prefix oc-types;
    
        import openconfig-extensions {
          prefix oc-ext;
        }
    
        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.";
    
        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";
    
        }
    
        oc-ext:openconfig-version "0.4.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 stat-interval;
            description
              "The time interval over which the min/max/average statistics
    are computed by the system.";
          }
        }  // grouping stat-interval-state
    
        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.";
          leaf avg {
            type decimal64 {
              fraction-digits 1;
            }
            description
              "The arithmetic mean value of the statistic over the
    sampling period.";
          }
    
          leaf min {
            type decimal64 {
              fraction-digits 1;
            }
            description
              "The minimum value of the statistic over the sampling
    period";
          }
    
          leaf max {
            type decimal64 {
              fraction-digits 1;
            }
            description
              "The maximum value of the statitic over the sampling
    period";
          }
    
          uses stat-interval-state;
        }  // grouping avg-min-max-stats-precision1
    
        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-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";
          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
    sampling period.";
          }
    
          leaf min {
            type decimal64 {
              fraction-digits 2;
            }
            units "dB";
            description
              "The minimum value of the statistic over the sampling
    period";
          }
    
          leaf max {
            type decimal64 {
              fraction-digits 2;
            }
            units "dB";
            description
              "The maximum value of the statistic over the sampling
    period";
          }
    
          uses stat-interval-state;
        }  // grouping avg-min-max-instant-stats-precision2-dB
    
        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";
          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
    sampling period.";
          }
    
          leaf min {
            type decimal64 {
              fraction-digits 2;
            }
            units "dBm";
            description
              "The minimum value of the statistic over the sampling
    period";
          }
    
          leaf max {
            type decimal64 {
              fraction-digits 2;
            }
            units "dBm";
            description
              "The maximum value of the statistic over the sampling
    period";
          }
    
          uses stat-interval-state;
        }  // grouping avg-min-max-instant-stats-precision2-dBm
    
        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";
          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
    sampling period.";
          }
    
          leaf min {
            type decimal64 {
              fraction-digits 2;
            }
            units "mA";
            description
              "The minimum value of the statistic over the sampling
    period";
          }
    
          leaf max {
            type decimal64 {
              fraction-digits 2;
            }
            units "mA";
            description
              "The maximum value of the statistic over the sampling
    period";
          }
    
          uses stat-interval-state;
        }  // grouping avg-min-max-instant-stats-precision2-mA
    
        grouping avg-min-max-instant-stats-pct {
          description
            "Common grouping for percentage statistics.";
          leaf instant {
            type percentage;
            description
              "The instantaneous percentage value.";
          }
    
          leaf avg {
            type percentage;
            description
              "The arithmetic mean value of the percentage measure of the
    statistic over the sampling period.";
          }
    
          leaf min {
            type percentage;
            description
              "The minimum value of the percentage measure of the
    statistic over the sampling period";
          }
    
          leaf max {
            type percentage;
            description
              "The maximum value of the percentage measure of the
    statistic over the sampling period";
          }
    
          uses stat-interval-state;
        }  // grouping avg-min-max-instant-stats-pct
    
        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";
        }
      }  // module openconfig-types
    

© 2023 YumaWorks, Inc. All rights reserved.