module openconfig-yang-types { yang-version "1"; namespace "http://openconfig.net/yang/types/yang"; prefix "oc-yang"; import openconfig-extensions { prefix "oc-ext"; } organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module contains a set of extension types to the YANG builtin types that are used across multiple OpenConfig models. Portions of this code were derived from IETF RFC 6021. Please reproduce this note if possible. IETF code is subject to the following copyright and license: Copyright (c) IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; oc-ext:openconfig-version "0.1.2"; revision 2017-07-30 { description "Fixed unprintable character"; reference "0.1.2"; } revision 2017-04-03 { description "Update copyright notice."; reference "0.1.1"; } revision 2017-01-26 { description "Initial module for inet types"; reference "0.1.0"; } typedef dotted-quad { type string { pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' + '[0-9]|25[0-5])$'; } description "An unsigned 32-bit integer expressed as a dotted quad. The format is four octets written as decimal numbers separated with a period character."; } typedef hex-string { type string { pattern '^[0-9a-fA-F]*$'; } description "A string consisting of a hexadecimal characters."; } typedef counter32 { type uint32; description "A 32-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When the counter reaches its maximum value, in this case 2^32-1, it wraps to 0. Discontinuities in the counter are generally triggered only when the counter is reset to zero."; } typedef counter64 { type uint64; description "A 64-bit counter. A counter value is a monotonically increasing value which is used to express a count of a number of occurrences of a particular event or entity. When a counter64 reaches its maximum value, 2^64-1, it loops to zero. Discontinuities in a counter are generally triggered only when the counter is reset to zero, through operator or system intervention."; } typedef date-and-time { type string { pattern '^[0-9]{4}\-[0-9]{2}\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}' + '(\.[0-9]+)?Z[+-][0-9]{2}:[0-9]{2}$'; } description "A date and time, expressed in the format described in RFC3339. That is to say: YYYY-MM-DDTHH:MM:SSZ+-hh:mm where YYYY is the year, MM is the month expressed as a two-digit month (zero padding if required), DD is the day of the month, expressed as a two digit value. T is the literal character 'T', HH is the hour of the day expressed as a two digit number, using the 24-hour clock, MM is the minute of the hour expressed as a two digit number. Z is the literal character 'Z', followed by a timezone offset expressed in hours (hh) and minutes (mm), both expressed as two digit numbers. The time offset is specified as a positive or negative offset to UTC using the '+' or '-' character preceding the offset. Optionally, fractional seconds can be expressed after the minute of the hour as a decimal number of unspecified precision reflecting fractions of a second."; reference "RFC3339 - Date and Time on the Internet: Timestamps"; } typedef gauge64 { type uint64; description "A gauge value may increase or decrease - and reflects a value at a particular point in time. If the value of the variable being modeled using the gauge exceeds its maximum - 2^64-1 in this case - the gauge is set to its maximum value."; } typedef phys-address { type string { pattern '^([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?$'; } description "A physical layer address, expressed as a series of pairs of hexadecimal digits."; } typedef mac-address { type string { pattern '^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$'; } description "An IEEE 802 MAC address"; } }