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