openconfig-types

openconfig-version: 1.0.0

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.

Imports

openconfig-extensions

Defined types

percentage

description:
Integer indicating a percentage value

type: uint8

  • range: 0..100

std-regexp

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.

type: string

posix-eregexp

description:
This is a string which represents an extended POSIX regular expression.

type: string

timeticks64

description:
The timeticks64 represents the time, modulo 2^64 in nanoseconds between two epochs. The leaf using this type must define the epochs that tests are relative to.

type: uint64

units: nanoseconds

ieeefloat32

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)

type: binary

routing-password

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.

type: string

stat-interval

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.

type: uint64

units: nanoseconds

Identities

base: ADDRESS_FAMILY

description:
A base identity for all address families

IPV4

description:
The IPv4 address family

base identity: ADDRESS_FAMILY

IPV6

description:
The IPv6 address family

base identity: ADDRESS_FAMILY

MPLS

description:
The MPLS address family

base identity: ADDRESS_FAMILY

L2_ETHERNET

description:
The 802.3 Ethernet address family

base identity: ADDRESS_FAMILY

Data elements

openconfig-yang-types

openconfig-version: 0.3.1

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).

Imports

openconfig-extensions

Defined types

dotted-quad

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.

type: string

  • pattern:
    ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}

hex-string

description:
A string consisting of a hexadecimal characters.

type: string

  • pattern:
    [0-9a-fA-F]*

counter32

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.

type: uint32

counter64

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.

type: uint64

date-and-time

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.

type: string

  • pattern:
    [0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[12][0-9]|3[01])[Tt](0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9]|60)(\.[0-9]+)?([Zz]|([+-](0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9])))

date

description:
A full UTC date, expressed in the format described in RFC3339. That is to say: YYYY-MM-DD 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.

type: string

  • pattern:
    [0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[12][0-9]|3[01])

gauge64

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.

type: uint64

phys-address

description:
A physical layer address, expressed as a series of pairs of hexadecimal digits.

type: string

  • pattern:
    ([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?

mac-address

description:
An IEEE 802 MAC address

type: string

  • pattern:
    [0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}

Data elements

openconfig-inet-types

openconfig-version: 0.7.0

Description

This module contains a set of Internet address related types for use in OpenConfig modules.

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).

Imports

openconfig-extensions

Defined types

ipv4-address

description:
An IPv4 address in dotted quad notation using the default zone.

type: string

  • pattern:
    ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}

ipv4-address-zoned

description:
An IPv4 address in dotted quad notation. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name.

type: string

  • pattern:
    ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}(%[a-zA-Z0-9_]+)

ipv6-address

description:
An IPv6 address represented as either a full address; shortened or mixed-shortened formats, using the default zone.

type: string

  • pattern:
    (([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))

ipv6-address-zoned

description:
An IPv6 address represented as either a full address; shortened or mixed-shortened formats. This type allows specification of a zone index to disambiguate identical address values. For link-local addresses, the index is typically the interface index or interface name.

type: string

  • pattern:
    (([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))(%[a-zA-Z0-9_]+)

ipv4-prefix

description:
An IPv4 prefix represented in dotted quad notation followed by a slash and a CIDR mask (0 <= mask <= 32).

type: string

  • pattern:
    ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}/([0-9]|[12][0-9]|3[0-2])

ipv6-prefix

description:
An IPv6 prefix represented in full, shortened, or mixed shortened format followed by a slash and CIDR mask (0 <= mask <= 128).

type: string

  • pattern:
    (([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])

ip-address

description:
An IPv4 or IPv6 address with no prefix specified.

type: union

    type: ipv4-address

    type: ipv6-address

ip-address-zoned

description:
An IPv4 or IPv6 address with no prefix specified and an optional zone index.

type: union

    type: ipv4-address-zoned

    type: ipv6-address-zoned

ip-prefix

description:
An IPv4 or IPv6 prefix.

type: union

    type: ipv4-prefix

    type: ipv6-prefix

ip-version

description:
This value represents the version of the IP protocol. Note that integer representation of the enumerated values are not specified, and are not required to follow the InetVersion textual convention in SMIv2.

type: enumeration

  • UNKNOWN
    An unknown or unspecified version of the Internet protocol.
  • IPV4
    The IPv4 protocol as defined in RFC 791.
  • IPV6
    The IPv6 protocol as defined in RFC 2460.

ipv6-address-type

description:
The value represents the type of IPv6 address

type: enumeration

  • GLOBAL_UNICAST
    The IPv6 address is a global unicast address type and must be in the format defined in RFC 4291 section 2.4.
  • LINK_LOCAL_UNICAST
    The IPv6 address is a Link-Local unicast address type and must be in the format defined in RFC 4291 section 2.4.

domain-name

description:
The domain-name type represents a DNS domain name. Fully quallified left to the models which utilize this type. Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability. The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation. Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492

type: string

  • pattern:
    (((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)|\.)

host

description:
The host type represents either an unzoned IP address or a DNS domain name.

type: union

    type: ip-address

    type: domain-name

as-number

description:
A numeric identifier for an autonomous system (AS). An AS is a single domain, under common administrative control, which forms a unit of routing policy. Autonomous systems can be assigned a 2-byte identifier, or a 4-byte identifier which may have public or private scope. Private ASNs are assigned from dedicated ranges. Public ASNs are assigned from ranges allocated by IANA to the regional internet registries (RIRs).

type: uint32

dscp

description:
A differentiated services code point (DSCP) marking within the IP header.

type: uint8

  • range: 0..63

ipv6-flow-label

description:
The IPv6 flow-label is a 20-bit value within the IPv6 header which is optionally used by the source of the IPv6 packet to label sets of packets for which special handling may be required.

type: uint32

  • range: 0..1048575

port-number

description:
A 16-bit port number used by a transport protocol such as TCP or UDP.

type: uint16

uri

description:
An ASCII-encoded Uniform Resource Identifier (URI) as defined in RFC 3986.

type: string

url

description:
An ASCII-encoded Uniform Resource Locator (URL) as defined in RFC 3986, section 1.1.3

type: string

Data elements