draft-ietf-netmod-yang-types-00.txt   draft-ietf-netmod-yang-types-01.txt 
Network Working Group J. Schoenwaelder, Ed. Network Working Group J. Schoenwaelder, Ed.
Internet-Draft Jacobs University Internet-Draft Jacobs University
Intended status: Standards Track September 4, 2008 Intended status: Standards Track November 3, 2008
Expires: March 8, 2009 Expires: May 7, 2009
Common YANG Data Types Common YANG Data Types
draft-ietf-netmod-yang-types-00 draft-ietf-netmod-yang-types-01
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 34 skipping to change at page 1, line 34
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on March 8, 2009. This Internet-Draft will expire on May 7, 2009.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2008). Copyright (C) The IETF Trust (2008).
Abstract Abstract
This document introduces a collection of common data types to be used This document introduces a collection of common data types to be used
with the YANG data modeling language. with the YANG data modeling language.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Core YANG Derived Types . . . . . . . . . . . . . . . . . . . 4 2. Core YANG Derived Types . . . . . . . . . . . . . . . . . . . 4
3. Internet Specific Derived Types . . . . . . . . . . . . . . . 12 3. Internet Specific Derived Types . . . . . . . . . . . . . . . 12
4. IEEE Specific Derived Types . . . . . . . . . . . . . . . . . 20 4. IEEE Specific Derived Types . . . . . . . . . . . . . . . . . 21
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24
6. Security Considerations . . . . . . . . . . . . . . . . . . . 24 6. Security Considerations . . . . . . . . . . . . . . . . . . . 25
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 25 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 26
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.1. Normative References . . . . . . . . . . . . . . . . . . . 26 8.1. Normative References . . . . . . . . . . . . . . . . . . . 27
8.2. Informative References . . . . . . . . . . . . . . . . . . 26 8.2. Informative References . . . . . . . . . . . . . . . . . . 27
Appendix A. XSD Translations . . . . . . . . . . . . . . . . . . 29 Appendix A. XSD Translations . . . . . . . . . . . . . . . . . . 30
A.1. XSD of Core YANG Derived Types . . . . . . . . . . . . . . 29 A.1. XSD of Core YANG Derived Types . . . . . . . . . . . . . . 30
A.2. XSD of Internet Specific Derived Types . . . . . . . . . . 36 A.2. XSD of Internet Specific Derived Types . . . . . . . . . . 37
A.3. XSD of IEEE Specific Derived Types . . . . . . . . . . . . 44 A.3. XSD of IEEE Specific Derived Types . . . . . . . . . . . . 44
Appendix B. RelaxNG Translations . . . . . . . . . . . . . . . . 47 Appendix B. RelaxNG Translations . . . . . . . . . . . . . . . . 47
B.1. RelaxNG of Core YANG Derived Types . . . . . . . . . . . . 47 B.1. RelaxNG of Core YANG Derived Types . . . . . . . . . . . . 47
B.2. RelaxNG of Internet Specific Derived Types . . . . . . . . 53 B.2. RelaxNG of Internet Specific Derived Types . . . . . . . . 53
B.3. RelaxNG of IEEE Specific Derived Types . . . . . . . . . . 58 B.3. RelaxNG of IEEE Specific Derived Types . . . . . . . . . . 58
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 61 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 61
Intellectual Property and Copyright Statements . . . . . . . . . . 62 Intellectual Property and Copyright Statements . . . . . . . . . . 62
1. Introduction 1. Introduction
skipping to change at page 4, line 37 skipping to change at page 4, line 37
description description
"This module contains a collection of generally useful derived "This module contains a collection of generally useful derived
YANG data types. YANG data types.
Copyright (C) The IETF Trust (2008). This version of this Copyright (C) The IETF Trust (2008). This version of this
YANG module is part of RFC XXXX; see the RFC itself for full YANG module is part of RFC XXXX; see the RFC itself for full
legal notices."; legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this note // RFC Ed.: replace XXXX with actual RFC number and remove this note
revision 2008-08-26 { revision 2008-11-03 {
description description
"Initial revision, published as RFC XXXX."; "Initial revision, published as RFC XXXX.";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this note // RFC Ed.: replace XXXX with actual RFC number and remove this note
/*** collection of counter and gauge types ***/ /*** collection of counter and gauge types ***/
typedef counter32 { typedef counter32 {
type uint32; type uint32;
description description
skipping to change at page 8, line 13 skipping to change at page 8, line 13
in RFC 2856"; in RFC 2856";
reference reference
"RFC 2856: Textual Conventions for Additional High Capacity "RFC 2856: Textual Conventions for Additional High Capacity
Data Types"; Data Types";
} }
/*** collection of identifier related types ***/ /*** collection of identifier related types ***/
typedef object-identifier { typedef object-identifier {
type string { type string {
pattern '(([0-1](\.[1-3]?[0-9]))|(2.(0|([1-9]\d*))))' pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
+ '(\.(0|([1-9]\d*)))*'; + '(\.(0|([1-9]\d*)))*';
} }
description description
"The object-identifier type represents administratively "The object-identifier type represents administratively
assigned names in a registration-hierarchical-name tree. assigned names in a registration-hierarchical-name tree.
Values of this type are denoted as a sequence of numerical Values of this type are denoted as a sequence of numerical
non-negative sub-identifier values. Each sub-identifier non-negative sub-identifier values. Each sub-identifier
value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers
are separated by single dots and without any intermediate are separated by single dots and without any intermediate
skipping to change at page 9, line 44 skipping to change at page 9, line 44
date-time = full-date "T" full-time date-time = full-date "T" full-time
The date-and-time type is compatible with the dateTime XML The date-and-time type is compatible with the dateTime XML
schema type except that dateTime allows negative years schema type except that dateTime allows negative years
which are not allowed by RFC 3339. which are not allowed by RFC 3339.
This type is not equivalent to the DateAndTime textual This type is not equivalent to the DateAndTime textual
convention of the SMIv2 since RFC 3339 uses a different convention of the SMIv2 since RFC 3339 uses a different
separator between full-date and full-time and provides separator between full-date and full-time and provides
higher resolution of time-secfrac.'; higher resolution of time-secfrac.';
// [TODO] This type may require normalization rules since Z and
// +00:00 mean the same - but note that -00:00 does not according
// to RFC 3339 section 4.3 but it does according to XSD.
// In addition, it is possible to write the same data and time
// value using different time zones. XSD says the canonical format
// is UTC using the Z format.
reference reference
"RFC 3339: Date and Time on the Internet: Timestamps "RFC 3339: Date and Time on the Internet: Timestamps
RFC 2579: Textual Conventions for SMIv2"; RFC 2579: Textual Conventions for SMIv2";
} }
typedef timeticks { typedef timeticks {
type uint32; type uint32;
description description
"The timeticks type represents a non-negative integer which "The timeticks type represents a non-negative integer which
represents the time, modulo 2^32 (4294967296 decimal), in represents the time, modulo 2^32 (4294967296 decimal), in
skipping to change at page 12, line 37 skipping to change at page 12, line 37
description description
"This module contains a collection of generally useful derived "This module contains a collection of generally useful derived
YANG data types for Internet addresses and related things. YANG data types for Internet addresses and related things.
Copyright (C) The IETF Trust (2008). This version of this Copyright (C) The IETF Trust (2008). This version of this
YANG module is part of RFC XXXX; see the RFC itself for full YANG module is part of RFC XXXX; see the RFC itself for full
legal notices."; legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this note // RFC Ed.: replace XXXX with actual RFC number and remove this note
revision 2008-08-26 { revision 2008-11-03 {
description description
"Initial revision, published as RFC XXXX."; "Initial revision, published as RFC XXXX.";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this note // RFC Ed.: replace XXXX with actual RFC number and remove this note
/*** collection of protocol field related types ***/ /*** collection of protocol field related types ***/
typedef ip-version { typedef ip-version {
type enumeration { type enumeration {
enum unknown { enum unknown {
skipping to change at page 13, line 33 skipping to change at page 13, line 33
RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
RFC 4001: Textual Conventions for Internet Network Addresses"; RFC 4001: Textual Conventions for Internet Network Addresses";
} }
typedef dscp { typedef dscp {
type uint8 { type uint8 {
range "0..63"; range "0..63";
} }
description description
"The dscp type represents a Differentiated Services Code-Point "The dscp type represents a Differentiated Services Code-Point
that may be used for marking a traffic stream. that may be used for marking packets in a traffic stream.
This type is in the value set and its semantics equivalent This type is in the value set and its semantics equivalent
to the Dscp textual convention of the SMIv2."; to the Dscp textual convention of the SMIv2.";
reference reference
"RFC 3289: Management Information Base for the Differentiated "RFC 3289: Management Information Base for the Differentiated
Services Architecture Services Architecture
RFC 2474: Definition of the Differentiated Services Field RFC 2474: Definition of the Differentiated Services Field
(DS Field) in the IPv4 and IPv6 Headers (DS Field) in the IPv4 and IPv6 Headers
RFC 2780: IANA Allocation Guidelines For Values In RFC 2780: IANA Allocation Guidelines For Values In
the Internet Protocol and Related Headers"; the Internet Protocol and Related Headers";
skipping to change at page 14, line 49 skipping to change at page 14, line 49
typedef autonomous-system-number { typedef autonomous-system-number {
type uint32; type uint32;
description description
"The as-number type represents autonomous system numbers "The as-number type represents autonomous system numbers
which identify an Autonomous System (AS). An AS is a set which identify an Autonomous System (AS). An AS is a set
of routers under a single technical administration, using of routers under a single technical administration, using
an interior gateway protocol and common metrics to route an interior gateway protocol and common metrics to route
packets within the AS, and using an exterior gateway packets within the AS, and using an exterior gateway
protocol to route packets to other ASs'. IANA maintains protocol to route packets to other ASs'. IANA maintains
; the AS number space and has delegated large parts to the the AS number space and has delegated large parts to the
regional registries. regional registries.
Autonomous system numbers are currently limited to 16 bits Autonomous system numbers are currently limited to 16 bits
(0..65535). There is however work in progress to enlarge (0..65535). There is however work in progress to enlarge
the autonomous system number space to 32 bits. This the autonomous system number space to 32 bits. This
textual convention therefore uses an uint32 base type textual convention therefore uses an uint32 base type
without a range restriction in order to support a larger without a range restriction in order to support a larger
autonomous system number space. autonomous system number space.
This type is in the value set and its semantics equivalent This type is in the value set and its semantics equivalent
skipping to change at page 16, line 10 skipping to change at page 16, line 10
description description
"The ipv4-address type represents an IPv4 address in "The ipv4-address type represents an IPv4 address in
dotted-quad notation. The IPv4 address may include a zone dotted-quad notation. The IPv4 address may include a zone
index, separated by a % sign. index, separated by a % sign.
The zone index is used to disambiguate identical address The zone index is used to disambiguate identical address
values. For link-local addresses, the zone index will values. For link-local addresses, the zone index will
typically be the interface index number or the name of an typically be the interface index number or the name of an
interface. If the zone index is not present, the default interface. If the zone index is not present, the default
zone of the device will be used."; zone of the device will be used.";
// [TODO] There is an normalization issue with regard to
// systems that allow numeric and textual zone indexes.
} }
typedef ipv6-address { typedef ipv6-address {
type string { type string {
pattern pattern
/* full */ /* full */
'((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})' '((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})'
+ '(%[\p{N}\p{L}]+)?)' + '(%[\p{N}\p{L}]+)?)'
/* mixed */ /* mixed */
+ '|((([0-9a-fA-F]{1,4}:){6})(([0-9]{1,3}\.' + '|((([0-9a-fA-F]{1,4}:){6})(([0-9]{1,3}\.'
skipping to change at page 16, line 42 skipping to change at page 16, line 45
description description
"The ipv6-address type represents an IPv6 address in full, "The ipv6-address type represents an IPv6 address in full,
mixed, shortened and shortened mixed notation. The IPv6 mixed, shortened and shortened mixed notation. The IPv6
address may include a zone index, separated by a % sign. address may include a zone index, separated by a % sign.
The zone index is used to disambiguate identical address The zone index is used to disambiguate identical address
values. For link-local addresses, the zone index will values. For link-local addresses, the zone index will
typically be the interface index number or the name of an typically be the interface index number or the name of an
interface. If the zone index is not present, the default interface. If the zone index is not present, the default
zone of the device will be used."; zone of the device will be used.";
// [TODO] Normalization needed due to the shortened and
// mixed forms and the zone index?
reference reference
"RFC 4007: IPv6 Scoped Address Architecture"; "RFC 4007: IPv6 Scoped Address Architecture";
} }
// [TODO] The pattern needs to be checked; once YANG supports
// [TODO: The pattern needs to be checked; once YANG supports // multiple pattern, we can perhaps be more precise.
// multiple pattern, we can perhaps be more precise.]
typedef ip-prefix { typedef ip-prefix {
type union { type union {
type inet:ipv4-prefix; type inet:ipv4-prefix;
type inet:ipv6-prefix; type inet:ipv6-prefix;
} }
description description
"The ip-prefix type represents an IP prefix and is IP "The ip-prefix type represents an IP prefix and is IP
version neutral. The format of the textual representations version neutral. The format of the textual representations
implies the IP version."; implies the IP version.";
skipping to change at page 17, line 29 skipping to change at page 17, line 36
The prefix length is given by the number following the The prefix length is given by the number following the
slash character and must be less than or equal to 32. slash character and must be less than or equal to 32.
A prefix length value of n corresponds to an IP address A prefix length value of n corresponds to an IP address
mask which has n contiguous 1-bits from the most mask which has n contiguous 1-bits from the most
significant bit (MSB) and all other bits set to 0. significant bit (MSB) and all other bits set to 0.
The IPv4 address represented in dotted quad notation The IPv4 address represented in dotted quad notation
should have all bits that do not belong to the prefix should have all bits that do not belong to the prefix
set to zero."; set to zero.";
// [TODO] Normalization needed since bits of the prefix
// can be set arbitrarily.
} }
typedef ipv6-prefix { typedef ipv6-prefix {
type string { type string {
pattern pattern
/* full */ /* full */
'((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})' '((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})'
+ '/\d+)' + '/\d+)'
/* mixed */ /* mixed */
+ '|((([0-9a-fA-F]{1,4}:){6})(([0-9]{1,3}\.' + '|((([0-9a-fA-F]{1,4}:){6})(([0-9]{1,3}\.'
skipping to change at page 18, line 14 skipping to change at page 18, line 24
"The ipv6-prefix type represents an IPv6 address prefix. "The ipv6-prefix type represents an IPv6 address prefix.
The prefix length is given by the number following the The prefix length is given by the number following the
slash character and must be less than or equal 128. slash character and must be less than or equal 128.
A prefix length value of n corresponds to an IP address A prefix length value of n corresponds to an IP address
mask which has n contiguous 1-bits from the most mask which has n contiguous 1-bits from the most
significant bit (MSB) and all other bits set to 0. significant bit (MSB) and all other bits set to 0.
The IPv6 address should have all bits that do not belong The IPv6 address should have all bits that do not belong
to the prefix set to zero."; to the prefix set to zero.";
// [TODO] Normalization needed due to the shortened and
// mixed forms and since bits of the prefix can be set
// arbitrarily.
} }
// [TODO: The pattern needs to be checked; once YANG supports // [TODO] The pattern needs to be checked; once YANG supports
// multiple pattern, we can perhaps be more precise.] // multiple pattern, we can perhaps be more precise.]
/*** collection of domain name and URI types ***/ /*** collection of domain name and URI types ***/
typedef domain-name { typedef domain-name {
type string { type string {
pattern '([a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]\.)*' pattern '([a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]\.)*'
+ '[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]'; + '[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]';
} }
description description
skipping to change at page 18, line 39 skipping to change at page 19, line 5
The description clause of objects using the domain-name The description clause of objects using the domain-name
type MUST describe how (and when) these names are type MUST describe how (and when) these names are
resolved to IP addresses. resolved to IP addresses.
Note that the resolution of a domain-name value may Note that the resolution of a domain-name value may
require to query multiple DNS records (e.g., A for IPv4 require to query multiple DNS records (e.g., A for IPv4
and AAAA for IPv6). The order of the resolution process and AAAA for IPv6). The order of the resolution process
and which DNS record takes precedence depends on the and which DNS record takes precedence depends on the
configuration of the resolver."; configuration of the resolver.";
// [TODO] Normalization needed since names are case
// insensitive (normalize to lowercase characters).]
reference reference
"RFC 1034: Domain Names - Concepts and Facilities "RFC 1034: Domain Names - Concepts and Facilities
RFC 1123: Requirements for Internet Hosts -- Application RFC 1123: Requirements for Internet Hosts -- Application
and Support"; and Support";
} }
// [TODO: RFC 2181 says there are no restrictions on DNS // [TODO] RFC 2181 says there are no restrictions on DNS
// labels. Need to check whether the pattern is too // labels. Need to check whether the pattern is too
// restrictive.] // restrictive.
typedef host { typedef host {
type union { type union {
type inet:ip-address; type inet:ip-address;
type inet:domain-name; type inet:domain-name;
} }
description description
"The host type represents either an IP address or a DNS "The host type represents either an IP address or a DNS
domain name."; domain name.";
} }
typedef uri { typedef uri {
type string; // [TODO: add the regex from RFC 3986 here?] type string; // [TODO] add the regex from RFC 3986 here?
description description
"The uri type represents a Uniform Resource Identifier "The uri type represents a Uniform Resource Identifier
(URI) as defined by STD 66. (URI) as defined by STD 66.
Objects using the uri type must be in US-ASCII encoding, Objects using the uri type must be in US-ASCII encoding,
and MUST be normalized as described by RFC 3986 Sections and MUST be normalized as described by RFC 3986 Sections
6.2.1, 6.2.2.1, and 6.2.2.2. All unnecessary 6.2.1, 6.2.2.1, and 6.2.2.2. All unnecessary
percent-encoding is removed, and all case-insensitive percent-encoding is removed, and all case-insensitive
characters are set to lowercase except for hexadecimal characters are set to lowercase except for hexadecimal
digits, which are normalized to uppercase as described in digits, which are normalized to uppercase as described in
skipping to change at page 20, line 39 skipping to change at page 21, line 39
description description
"This module contains a collection of generally useful derived "This module contains a collection of generally useful derived
YANG data types for IEEE 802 addresses and related things. YANG data types for IEEE 802 addresses and related things.
Copyright (C) The IETF Trust (2008). This version of this Copyright (C) The IETF Trust (2008). This version of this
YANG module is part of RFC XXXX; see the RFC itself for full YANG module is part of RFC XXXX; see the RFC itself for full
legal notices."; legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this note // RFC Ed.: replace XXXX with actual RFC number and remove this note
revision 2008-08-22 { revision 2008-11-03 {
description description
"Initial revision, published as RFC XXXX"; "Initial revision, published as RFC XXXX";
} }
// RFC Ed.: replace XXXX with actual RFC number and remove this note // RFC Ed.: replace XXXX with actual RFC number and remove this note
/*** collection of IEEE address type definitions ***/ /*** collection of IEEE address type definitions ***/
typedef mac-address { typedef mac-address {
type string { type string {
pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
skipping to change at page 29, line 20 skipping to change at page 30, line 20
A.1. XSD of Core YANG Derived Types A.1. XSD of Core YANG Derived Types
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:ietf:params:xml:ns:yang:yang-types" targetNamespace="urn:ietf:params:xml:ns:yang:yang-types"
xmlns="urn:ietf:params:xml:ns:yang:yang-types" xmlns="urn:ietf:params:xml:ns:yang:yang-types"
xmlns:yang="urn:ietf:params:xml:ns:yang:yang-types" xmlns:yang="urn:ietf:params:xml:ns:yang:yang-types"
elementFormDefault="qualified" elementFormDefault="qualified"
attributeFormDefault="unqualified" attributeFormDefault="unqualified"
version="2008-08-26" version="2008-11-03"
xml:lang="en"> xml:lang="en">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
This schema was generated from the YANG module yang-types
by pyang version 0.9.1.
The schema describes an instance document consisting of
the entire configuration data store and operational
data. This schema can thus NOT be used as-is to
validate NETCONF PDUs.
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
This module contains a collection of generally useful derived This module contains a collection of generally useful derived
YANG data types. YANG data types.
Copyright (C) The IETF Trust (2008). This version of this Copyright (C) The IETF Trust (2008). This version of this
YANG module is part of RFC XXXX; see the RFC itself for full YANG module is part of RFC XXXX; see the RFC itself for full
legal notices. legal notices.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<!-- YANG typedefs --> <!-- YANG typedefs -->
<xs:simpleType name="counter32"> <xs:simpleType name="counter32">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The counter32 type represents a non-negative integer The counter32 type represents a non-negative integer
which monotonically increases until it reaches a which monotonically increases until it reaches a
maximum value of 2^32-1 (4294967295 decimal), when it maximum value of 2^32-1 (4294967295 decimal), when it
wraps around and starts increasing again from zero. wraps around and starts increasing again from zero.
skipping to change at page 33, line 47 skipping to change at page 34, line 38
module designers should realize that there may be module designers should realize that there may be
implementations that stick with the SMIv2 limit of 128 implementations that stick with the SMIv2 limit of 128
sub-identifiers. sub-identifiers.
This type is a superset of the SMIv2 OBJECT IDENTIFIER type This type is a superset of the SMIv2 OBJECT IDENTIFIER type
since it is not restricted to 128 sub-identifiers. since it is not restricted to 128 sub-identifiers.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:pattern value="(([0-1](\.[1-3]?[0-9]))|(2.(0|([1-9]\d*))))(\ <xs:pattern value="(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*)))
.(0|([1-9]\d*)))*"/> )(\.(0|([1-9]\d*)))*"/>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:simpleType name="object-identifier-128"> <xs:simpleType name="object-identifier-128">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
This type represents object-identifiers restricted to 128 This type represents object-identifiers restricted to 128
sub-identifiers. sub-identifiers.
This type is in the value set and its semantics equivalent to This type is in the value set and its semantics equivalent to
the OBJECT IDENTIFIER type of the SMIv2. the OBJECT IDENTIFIER type of the SMIv2.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
skipping to change at page 35, line 9 skipping to change at page 35, line 46
which are not allowed by RFC 3339. which are not allowed by RFC 3339.
This type is not equivalent to the DateAndTime textual This type is not equivalent to the DateAndTime textual
convention of the SMIv2 since RFC 3339 uses a different convention of the SMIv2 since RFC 3339 uses a different
separator between full-date and full-time and provides separator between full-date and full-time and provides
higher resolution of time-secfrac. higher resolution of time-secfrac.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:pattern value="\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z <xs:pattern value="\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?
|(\+|-)\d{2}:\d{2})"/> (Z|(\+|-)\d{2}:\d{2})"/>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:simpleType name="timeticks"> <xs:simpleType name="timeticks">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The timeticks type represents a non-negative integer which The timeticks type represents a non-negative integer which
represents the time, modulo 2^32 (4294967296 decimal), in represents the time, modulo 2^32 (4294967296 decimal), in
hundredths of a second between two epochs. When objects hundredths of a second between two epochs. When objects
are defined which use this type, the description of the are defined which use this type, the description of the
skipping to change at page 36, line 36 skipping to change at page 37, line 26
A.2. XSD of Internet Specific Derived Types A.2. XSD of Internet Specific Derived Types
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:ietf:params:xml:ns:yang:inet-types" targetNamespace="urn:ietf:params:xml:ns:yang:inet-types"
xmlns="urn:ietf:params:xml:ns:yang:inet-types" xmlns="urn:ietf:params:xml:ns:yang:inet-types"
xmlns:inet="urn:ietf:params:xml:ns:yang:inet-types" xmlns:inet="urn:ietf:params:xml:ns:yang:inet-types"
elementFormDefault="qualified" elementFormDefault="qualified"
attributeFormDefault="unqualified" attributeFormDefault="unqualified"
version="2008-08-26" version="2008-11-03"
xml:lang="en"> xml:lang="en">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
This schema was generated from the YANG module inet-types
by pyang version 0.9.1.
The schema describes an instance document consisting of
the entire configuration data store and operational
data. This schema can thus NOT be used as-is to
validate NETCONF PDUs.
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
This module contains a collection of generally useful derived This module contains a collection of generally useful derived
YANG data types for Internet addresses and related things. YANG data types for Internet addresses and related things.
Copyright (C) The IETF Trust (2008). This version of this Copyright (C) The IETF Trust (2008). This version of this
YANG module is part of RFC XXXX; see the RFC itself for full YANG module is part of RFC XXXX; see the RFC itself for full
legal notices. legal notices.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<!-- YANG typedefs --> <!-- YANG typedefs -->
<xs:simpleType name="ip-version"> <xs:simpleType name="ip-version">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
This value represents the version of the IP protocol. This value represents the version of the IP protocol.
This type is in the value set and its semantics equivalent This type is in the value set and its semantics equivalent
to the InetVersion textual convention of the SMIv2. However, to the InetVersion textual convention of the SMIv2. However,
the lexical appearance is different from the InetVersion the lexical appearance is different from the InetVersion
skipping to change at page 37, line 39 skipping to change at page 38, line 17
<xs:enumeration value="unknown"/> <xs:enumeration value="unknown"/>
<xs:enumeration value="ipv4"/> <xs:enumeration value="ipv4"/>
<xs:enumeration value="ipv6"/> <xs:enumeration value="ipv6"/>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:simpleType name="dscp"> <xs:simpleType name="dscp">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The dscp type represents a Differentiated Services Code-Point The dscp type represents a Differentiated Services Code-Point
that may be used for marking a traffic stream. that may be used for marking packets in a traffic stream.
This type is in the value set and its semantics equivalent This type is in the value set and its semantics equivalent
to the Dscp textual convention of the SMIv2. to the Dscp textual convention of the SMIv2.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:restriction base="xs:unsignedByte"> <xs:restriction base="xs:unsignedByte">
<xs:minInclusive value="0"/> <xs:minInclusive value="0"/>
<xs:maxInclusive value="63"/> <xs:maxInclusive value="63"/>
</xs:restriction> </xs:restriction>
skipping to change at page 39, line 6 skipping to change at page 39, line 32
<xs:simpleType name="autonomous-system-number"> <xs:simpleType name="autonomous-system-number">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The as-number type represents autonomous system numbers The as-number type represents autonomous system numbers
which identify an Autonomous System (AS). An AS is a set which identify an Autonomous System (AS). An AS is a set
of routers under a single technical administration, using of routers under a single technical administration, using
an interior gateway protocol and common metrics to route an interior gateway protocol and common metrics to route
packets within the AS, and using an exterior gateway packets within the AS, and using an exterior gateway
protocol to route packets to other ASs'. IANA maintains protocol to route packets to other ASs'. IANA maintains
; the AS number space and has delegated large parts to the the AS number space and has delegated large parts to the
regional registries. regional registries.
Autonomous system numbers are currently limited to 16 bits Autonomous system numbers are currently limited to 16 bits
(0..65535). There is however work in progress to enlarge (0..65535). There is however work in progress to enlarge
the autonomous system number space to 32 bits. This the autonomous system number space to 32 bits. This
textual convention therefore uses an uint32 base type textual convention therefore uses an uint32 base type
without a range restriction in order to support a larger without a range restriction in order to support a larger
autonomous system number space. autonomous system number space.
This type is in the value set and its semantics equivalent This type is in the value set and its semantics equivalent
skipping to change at page 40, line 15 skipping to change at page 40, line 41
The zone index is used to disambiguate identical address The zone index is used to disambiguate identical address
values. For link-local addresses, the zone index will values. For link-local addresses, the zone index will
typically be the interface index number or the name of an typically be the interface index number or the name of an
interface. If the zone index is not present, the default interface. If the zone index is not present, the default
zone of the device will be used. zone of the device will be used.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:pattern value="((0|(1[0-9]{0,2})|(2(([0-4][0-9]?)|(5[0-5]?)| <xs:pattern value="((0|(1[0-9]{0,2})|(2(([0-4][0-9]?)|(5[0-5]?
([6-9]?)))|([3-9][0-9]?))\.){3}(0|(1[0-9]{0,2} )|([6-9]?)))|([3-9][0-9]?))\.){3}(0|(1[0-9]{
)|(2(([0-4][0-9]?)|(5[0-5]?)|([6-9]?)))|([3-9] 0,2})|(2(([0-4][0-9]?)|(5[0-5]?)|([6-9]?)))|
[0-9]?))(%[\p{N}\p{L}]+)?"/> ([3-9][0-9]?))(%[\p{N}\p{L}]+)?"/>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:simpleType name="ipv6-address"> <xs:simpleType name="ipv6-address">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The ipv6-address type represents an IPv6 address in full, The ipv6-address type represents an IPv6 address in full,
mixed, shortened and shortened mixed notation. The IPv6 mixed, shortened and shortened mixed notation. The IPv6
address may include a zone index, separated by a % sign. address may include a zone index, separated by a % sign.
The zone index is used to disambiguate identical address The zone index is used to disambiguate identical address
values. For link-local addresses, the zone index will values. For link-local addresses, the zone index will
typically be the interface index number or the name of an typically be the interface index number or the name of an
interface. If the zone index is not present, the default interface. If the zone index is not present, the default
zone of the device will be used. zone of the device will be used.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:pattern value="((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})(% <xs:pattern value="((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})
[\p{N}\p{L}]+)?)|((([0-9a-fA-F]{1,4}:){6})(([0 (%[\p{N}\p{L}]+)?)|((([0-9a-fA-F]{1,4}:){6})
-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})) (([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{
(%[\p{N}\p{L}]+)?)|((([0-9a-fA-F]{1,4}:)*([0-9 1,3}))(%[\p{N}\p{L}]+)?)|((([0-9a-fA-F]{1,4}
a-fA-F]{1,4}))*(::)(([0-9a-fA-F]{1,4}:)*([0-9a :)*([0-9a-fA-F]{1,4}))*(::)(([0-9a-fA-F]{1,4
-fA-F]{1,4}))*(%[\p{N}\p{L}]+)?)|((([0-9a-fA-F }:)*([0-9a-fA-F]{1,4}))*(%[\p{N}\p{L}]+)?)|(
]{1,4}:)*([0-9a-fA-F]{1,4}))*(::)(([0-9a-fA-F] (([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*(::
{1,4}:)*([0-9a-fA-F]{1,4}))*(([0-9]{1,3}\.[0-9 )(([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*((
]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(%[\p{N}\p{L}] [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,
+)?)"/> 3}))(%[\p{N}\p{L}]+)?)"/>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:simpleType name="ip-prefix"> <xs:simpleType name="ip-prefix">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The ip-prefix type represents an IP prefix and is IP The ip-prefix type represents an IP prefix and is IP
version neutral. The format of the textual representations version neutral. The format of the textual representations
implies the IP version. implies the IP version.
</xs:documentation> </xs:documentation>
skipping to change at page 41, line 42 skipping to change at page 42, line 20
mask which has n contiguous 1-bits from the most mask which has n contiguous 1-bits from the most
significant bit (MSB) and all other bits set to 0. significant bit (MSB) and all other bits set to 0.
The IPv4 address represented in dotted quad notation The IPv4 address represented in dotted quad notation
should have all bits that do not belong to the prefix should have all bits that do not belong to the prefix
set to zero. set to zero.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:pattern value="(([0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.){3 <xs:pattern value="(([0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.)
}([0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])/\d+"/> {3}([0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])/\
d+"/>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:simpleType name="ipv6-prefix"> <xs:simpleType name="ipv6-prefix">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The ipv6-prefix type represents an IPv6 address prefix. The ipv6-prefix type represents an IPv6 address prefix.
The prefix length is given by the number following the The prefix length is given by the number following the
slash character and must be less than or equal 128. slash character and must be less than or equal 128.
A prefix length value of n corresponds to an IP address A prefix length value of n corresponds to an IP address
mask which has n contiguous 1-bits from the most mask which has n contiguous 1-bits from the most
significant bit (MSB) and all other bits set to 0. significant bit (MSB) and all other bits set to 0.
The IPv6 address should have all bits that do not belong The IPv6 address should have all bits that do not belong
to the prefix set to zero. to the prefix set to zero.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:pattern value="((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})/\ <xs:pattern value="((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})
d+)|((([0-9a-fA-F]{1,4}:){6})(([0-9]{1,3}\.[0- /\d+)|((([0-9a-fA-F]{1,4}:){6})(([0-9]{1,3}\
9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))/\d+)|((([0-9 .[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))/\d+)|(
a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*(::)(([0-9a (([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*(::
-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*/\d+)|((([0- )(([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*/\
9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*(::)(([0-9 d+)|((([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4})
a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*(([0-9]{1,3 )*(::)(([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}
}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))/\d+)"/> ))*(([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-
9]{1,3}))/\d+)"/>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:simpleType name="domain-name"> <xs:simpleType name="domain-name">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The domain-name type represents a DNS domain name. The The domain-name type represents a DNS domain name. The
name SHOULD be fully qualified whenever possible. name SHOULD be fully qualified whenever possible.
The description clause of objects using the domain-name The description clause of objects using the domain-name
skipping to change at page 42, line 46 skipping to change at page 43, line 26
Note that the resolution of a domain-name value may Note that the resolution of a domain-name value may
require to query multiple DNS records (e.g., A for IPv4 require to query multiple DNS records (e.g., A for IPv4
and AAAA for IPv6). The order of the resolution process and AAAA for IPv6). The order of the resolution process
and which DNS record takes precedence depends on the and which DNS record takes precedence depends on the
configuration of the resolver. configuration of the resolver.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<xs:pattern value="([a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]\.)*[a-z <xs:pattern value="([a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]\.)*[a
A-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]"/> -zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]"/>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:simpleType name="host"> <xs:simpleType name="host">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The host type represents either an IP address or a DNS The host type represents either an IP address or a DNS
domain name. domain name.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
skipping to change at page 44, line 23 skipping to change at page 44, line 50
A.3. XSD of IEEE Specific Derived Types A.3. XSD of IEEE Specific Derived Types
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:ietf:params:xml:ns:yang:ieee-types" targetNamespace="urn:ietf:params:xml:ns:yang:ieee-types"
xmlns="urn:ietf:params:xml:ns:yang:ieee-types" xmlns="urn:ietf:params:xml:ns:yang:ieee-types"
xmlns:ieee="urn:ietf:params:xml:ns:yang:ieee-types" xmlns:ieee="urn:ietf:params:xml:ns:yang:ieee-types"
elementFormDefault="qualified" elementFormDefault="qualified"
attributeFormDefault="unqualified" attributeFormDefault="unqualified"
version="2008-08-22" version="2008-11-03"
xml:lang="en" xml:lang="en"
xmlns:yang="urn:ietf:params:xml:ns:yang:yang-types"> xmlns:yang="urn:ietf:params:xml:ns:yang:yang-types">
<xs:import namespace="urn:ietf:params:xml:ns:yang:yang-types" <xs:import namespace="urn:ietf:params:xml:ns:yang:yang-types"
schemaLocation="yang-types.xsd"/> schemaLocation="yang-types.xsd"/>
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
This schema was generated from the YANG module ieee-types
by pyang version 0.9.1.
The schema describes an instance document consisting of
the entire configuration data store and operational
data. This schema can thus NOT be used as-is to
validate NETCONF PDUs.
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
This module contains a collection of generally useful derived This module contains a collection of generally useful derived
YANG data types for IEEE 802 addresses and related things. YANG data types for IEEE 802 addresses and related things.
Copyright (C) The IETF Trust (2008). This version of this Copyright (C) The IETF Trust (2008). This version of this
YANG module is part of RFC XXXX; see the RFC itself for full YANG module is part of RFC XXXX; see the RFC itself for full
legal notices. legal notices.
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
<!-- YANG typedefs --> <!-- YANG typedefs -->
<xs:simpleType name="mac-address"> <xs:simpleType name="mac-address">
<xs:annotation> <xs:annotation>
<xs:documentation> <xs:documentation>
The mac-address type represents an 802 MAC address represented The mac-address type represents an 802 MAC address represented
in the `canonical' order defined by IEEE 802.1a, i.e., as if it in the `canonical' order defined by IEEE 802.1a, i.e., as if it
were transmitted least significant bit first, even though 802.5 were transmitted least significant bit first, even though 802.5
(in contrast to other 802.x protocols) requires MAC addresses (in contrast to other 802.x protocols) requires MAC addresses
to be transmitted most significant bit first. to be transmitted most significant bit first.
skipping to change at page 47, line 17 skipping to change at page 47, line 17
This appendix provides RelaxNG translations of the types defined in This appendix provides RelaxNG translations of the types defined in
this document. This appendix is informative and not normative. this document. This appendix is informative and not normative.
B.1. RelaxNG of Core YANG Derived Types B.1. RelaxNG of Core YANG Derived Types
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
namespace dc = "http://purl.org/dc/terms" namespace dc = "http://purl.org/dc/terms"
namespace dsrl = "http://purl.oclc.org/dsdl/dsrl" namespace dsrl = "http://purl.oclc.org/dsdl/dsrl"
namespace nm = "urn:ietf:params:xml:ns:netmod:dsdl-attrib:1" namespace nm = "urn:ietf:params:xml:ns:netmod:dsdl-attrib:1"
namespace sch = "http://purl.oclc.org/dsdl/schematron" namespace sch = "http://purl.oclc.org/dsdl/schematron"
namespace yang = "urn:ietf:params:xml:ns:yang:yang-types"
dc:creator [ dc:creator [
"IETF NETMOD (NETCONF Data Modeling Language) Working Group" "IETF NETMOD (NETCONF Data Modeling Language) Working Group"
] ]
dc:description [ dc:description [
"This module contains a collection of generally useful derived\x{a}" ~ "This module contains a collection of generally useful derived\x{a}" ~
"YANG data types.\x{a}" ~ "YANG data types.\x{a}" ~
"\x{a}" ~ "\x{a}" ~
"Copyright (C) The IETF Trust (2008). This version of this\x{a}" ~ "Copyright (C) The IETF Trust (2008). This version of this\x{a}" ~
"YANG module is part of RFC XXXX; see the RFC itself for full\x{a}" ~ "YANG module is part of RFC XXXX; see the RFC itself for full\x{a}" ~
"legal notices." "legal notices."
] ]
dc:issued [ "2008-08-26" ] dc:issued [ "2008-11-03" ]
dc:source [ "YANG module 'yang-types' (automatic translation)" ] dc:source [ "YANG module 'yang-types' (automatic translation)" ]
dc:contributor [ dc:contributor [
"WG Web: <http://tools.ietf.org/wg/netmod/>\x{a}" ~ "WG Web: <http://tools.ietf.org/wg/netmod/>\x{a}" ~
"WG List: <mailto:netmod@ietf.org>\x{a}" ~ "WG List: <mailto:netmod@ietf.org>\x{a}" ~
"\x{a}" ~ "\x{a}" ~
"WG Chair: David Partain\x{a}" ~ "WG Chair: David Partain\x{a}" ~
" <mailto:david.partain@ericsson.com>\x{a}" ~ " <mailto:david.partain@ericsson.com>\x{a}" ~
"\x{a}" ~ "\x{a}" ~
"WG Chair: David Harrington\x{a}" ~ "WG Chair: David Harrington\x{a}" ~
" <mailto:ietfdbh@comcast.net>\x{a}" ~ " <mailto:ietfdbh@comcast.net>\x{a}" ~
skipping to change at page 47, line 52 skipping to change at page 48, line 4
" <mailto:j.schoenwaelder@jacobs-university.de>" " <mailto:j.schoenwaelder@jacobs-university.de>"
] ]
## The counter32 type represents a non-negative integer ## The counter32 type represents a non-negative integer
## which monotonically increases until it reaches a ## which monotonically increases until it reaches a
## maximum value of 2^32-1 (4294967295 decimal), when it ## maximum value of 2^32-1 (4294967295 decimal), when it
## wraps around and starts increasing again from zero. ## wraps around and starts increasing again from zero.
## ##
## Counters have no defined `initial' value, and thus, a ## Counters have no defined `initial' value, and thus, a
## single value of a counter has (in general) no information ## single value of a counter has (in general) no information
## content. Discontinuities in the monotonically increasing
## content. Discontinuities in the monotonically increasing
## value normally occur at re-initialization of the ## value normally occur at re-initialization of the
## management system, and at other times as specified in the ## management system, and at other times as specified in the
## description of an object instance using this type. If ## description of an object instance using this type. If
## such other times can occur, for example, the creation of ## such other times can occur, for example, the creation of
## an object instance of type counter32 at times other than ## an object instance of type counter32 at times other than
## re-initialization, then a corresponding object should be ## re-initialization, then a corresponding object should be
## defined, with an appropriate type, to indicate the last ## defined, with an appropriate type, to indicate the last
## discontinuity. ## discontinuity.
## ##
## The counter32 type should not be used for configuration ## The counter32 type should not be used for configuration
## objects. A default statement should not be used for ## objects. A default statement should not be used for
## attributes with a type value of counter32. ## attributes with a type value of counter32.
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the Counter32 type of the SMIv2. ## to the Counter32 type of the SMIv2.
## See: RFC 2578: Structure of Management Information Version 2 (SMIv2) ## See: RFC 2578: Structure of Management Information Version 2 (SMIv2)
__counter32 = xsd:unsignedInt counter32 = xsd:unsignedInt
## The zero-based-counter32 type represents a counter32 ## The zero-based-counter32 type represents a counter32
## which has the defined `initial' value zero. ## which has the defined `initial' value zero.
## ##
## Objects of this type will be set to zero(0) on creation ## Objects of this type will be set to zero(0) on creation
## and will thereafter count appropriate events, wrapping ## and will thereafter count appropriate events, wrapping
## back to zero(0) when the value 2^32 is reached. ## back to zero(0) when the value 2^32 is reached.
## ##
## Provided that an application discovers the new object within ## Provided that an application discovers the new object within
## the minimum time to wrap it can use the initial value as a ## the minimum time to wrap it can use the initial value as a
skipping to change at page 48, line 44 skipping to change at page 48, line 45
## part. It is important for a management station to be aware ## part. It is important for a management station to be aware
## of this minimum time and the actual time between polls, and ## of this minimum time and the actual time between polls, and
## to discard data if the actual time is too long or there is ## to discard data if the actual time is too long or there is
## no defined minimum time. ## no defined minimum time.
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the ZeroBasedCounter32 textual convention of the SMIv2. ## to the ZeroBasedCounter32 textual convention of the SMIv2.
## See: RFC 2021: Remote Network Monitoring Management Information ## See: RFC 2021: Remote Network Monitoring Management Information
## Base Version 2 using SMIv2 ## Base Version 2 using SMIv2
__zero-based-counter32 = __counter32 >> dsrl:default-content [ "0" ] zero-based-counter32 = counter32 >> dsrl:default-content [ "0" ]
## The counter64 type represents a non-negative integer ## The counter64 type represents a non-negative integer
## which monotonically increases until it reaches a ## which monotonically increases until it reaches a
## maximum value of 2^64-1 (18446744073709551615), when ## maximum value of 2^64-1 (18446744073709551615), when
## it wraps around and starts increasing again from zero. ## it wraps around and starts increasing again from zero.
## ##
## Counters have no defined `initial' value, and thus, a ## Counters have no defined `initial' value, and thus, a
## single value of a counter has (in general) no information
## single value of a counter has (in general) no information
## content. Discontinuities in the monotonically increasing ## content. Discontinuities in the monotonically increasing
## value normally occur at re-initialization of the ## value normally occur at re-initialization of the
## management system, and at other times as specified in the ## management system, and at other times as specified in the
## description of an object instance using this type. If ## description of an object instance using this type. If
## such other times can occur, for example, the creation of ## such other times can occur, for example, the creation of
## an object instance of type counter64 at times other than ## an object instance of type counter64 at times other than
## re-initialization, then a corresponding object should be ## re-initialization, then a corresponding object should be
## defined, with an appropriate type, to indicate the last ## defined, with an appropriate type, to indicate the last
## discontinuity. ## discontinuity.
## ##
## The counter64 type should not be used for configuration ## The counter64 type should not be used for configuration
## objects. A default statement should not be used for ## objects. A default statement should not be used for
## attributes with a type value of counter64. ## attributes with a type value of counter64.
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the Counter64 type of the SMIv2. ## to the Counter64 type of the SMIv2.
## See: RFC 2578: Structure of Management Information Version 2 (SMIv2) ## See: RFC 2578: Structure of Management Information Version 2 (SMIv2)
__counter64 = xsd:unsignedLong counter64 = xsd:unsignedLong
## The zero-based-counter64 type represents a counter64 which ## The zero-based-counter64 type represents a counter64 which
## has the defined `initial' value zero. ## has the defined `initial' value zero.
## ##
## Objects of this type will be set to zero(0) on creation ## Objects of this type will be set to zero(0) on creation
## and will thereafter count appropriate events, wrapping ## and will thereafter count appropriate events, wrapping
## back to zero(0) when the value 2^64 is reached. ## back to zero(0) when the value 2^64 is reached.
## ##
## Provided that an application discovers the new object within ## Provided that an application discovers the new object within
## the minimum time to wrap it can use the initial value as a ## the minimum time to wrap it can use the initial value as a
skipping to change at page 49, line 45 skipping to change at page 49, line 46
## part. It is important for a management station to be aware ## part. It is important for a management station to be aware
## of this minimum time and the actual time between polls, and ## of this minimum time and the actual time between polls, and
## to discard data if the actual time is too long or there is ## to discard data if the actual time is too long or there is
## no defined minimum time. ## no defined minimum time.
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the ZeroBasedCounter64 textual convention of the SMIv2. ## to the ZeroBasedCounter64 textual convention of the SMIv2.
## See: RFC 2856: Textual Conventions for Additional High Capacity ## See: RFC 2856: Textual Conventions for Additional High Capacity
## Data Types ## Data Types
__zero-based-counter64 = __counter64 >> dsrl:default-content [ "0" ] zero-based-counter64 = counter64 >> dsrl:default-content [ "0" ]
## The gauge32 type represents a non-negative integer, which ## The gauge32 type represents a non-negative integer, which
## may increase or decrease, but shall never exceed a maximum ## may increase or decrease, but shall never exceed a maximum
## value, nor fall below a minimum value. The maximum value ## value, nor fall below a minimum value. The maximum value
## can not be greater than 2^32-1 (4294967295 decimal), and ## can not be greater than 2^32-1 (4294967295 decimal), and
## the minimum value can not be smaller than 0. The value of ## the minimum value can not be smaller than 0. The value of
## a gauge32 has its maximum value whenever the information
## a gauge32 has its maximum value whenever the information
## being modeled is greater than or equal to its maximum ## being modeled is greater than or equal to its maximum
## value, and has its minimum value whenever the information ## value, and has its minimum value whenever the information
## being modeled is smaller than or equal to its minimum value. ## being modeled is smaller than or equal to its minimum value.
## If the information being modeled subsequently decreases ## If the information being modeled subsequently decreases
## below (increases above) the maximum (minimum) value, the ## below (increases above) the maximum (minimum) value, the
## gauge32 also decreases (increases). ## gauge32 also decreases (increases).
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the Counter32 type of the SMIv2. ## to the Counter32 type of the SMIv2.
## See: RFC 2578: Structure of Management Information Version 2 (SMIv2) ## See: RFC 2578: Structure of Management Information Version 2 (SMIv2)
__gauge32 = xsd:unsignedInt gauge32 = xsd:unsignedInt
## The gauge64 type represents a non-negative integer, which ## The gauge64 type represents a non-negative integer, which
## may increase or decrease, but shall never exceed a maximum ## may increase or decrease, but shall never exceed a maximum
## value, nor fall below a minimum value. The maximum value ## value, nor fall below a minimum value. The maximum value
## can not be greater than 2^64-1 (18446744073709551615), and ## can not be greater than 2^64-1 (18446744073709551615), and
## the minimum value can not be smaller than 0. The value of ## the minimum value can not be smaller than 0. The value of
## a gauge64 has its maximum value whenever the information ## a gauge64 has its maximum value whenever the information
## being modeled is greater than or equal to its maximum ## being modeled is greater than or equal to its maximum
## value, and has its minimum value whenever the information ## value, and has its minimum value whenever the information
## being modeled is smaller than or equal to its minimum value. ## being modeled is smaller than or equal to its minimum value.
## If the information being modeled subsequently decreases ## If the information being modeled subsequently decreases
## below (increases above) the maximum (minimum) value, the ## below (increases above) the maximum (minimum) value, the
## gauge64 also decreases (increases). ## gauge64 also decreases (increases).
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the CounterBasedGauge64 SMIv2 textual convention defined ## to the CounterBasedGauge64 SMIv2 textual convention defined
## in RFC 2856 ## in RFC 2856
## See: RFC 2856: Textual Conventions for Additional High Capacity ## See: RFC 2856: Textual Conventions for Additional High Capacity
## Data Types ## Data Types
__gauge64 = xsd:unsignedLong gauge64 = xsd:unsignedLong
## The object-identifier type represents administratively ## The object-identifier type represents administratively
## assigned names in a registration-hierarchical-name tree. ## assigned names in a registration-hierarchical-name tree.
## ##
## Values of this type are denoted as a sequence of numerical ## Values of this type are denoted as a sequence of numerical
## non-negative sub-identifier values. Each sub-identifier ## non-negative sub-identifier values. Each sub-identifier
## value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers ## value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers
## are separated by single dots and without any intermediate ## are separated by single dots and without any intermediate
## white space. ## white space.
## ##
## Although the number of sub-identifiers is not limited, ## Although the number of sub-identifiers is not limited,
## module designers should realize that there may be ## module designers should realize that there may be
## implementations that stick with the SMIv2 limit of 128 ## implementations that stick with the SMIv2 limit of 128
## sub-identifiers. ## sub-identifiers.
##
##
## This type is a superset of the SMIv2 OBJECT IDENTIFIER type ## This type is a superset of the SMIv2 OBJECT IDENTIFIER type
## since it is not restricted to 128 sub-identifiers. ## since it is not restricted to 128 sub-identifiers.
## See: ISO/IEC 9834-1: Information technology -- Open Systems ## See: ISO/IEC 9834-1: Information technology -- Open Systems
## Interconnection -- Procedures for the operation of OSI ## Interconnection -- Procedures for the operation of OSI
## Registration Authorities: General procedures and top ## Registration Authorities: General procedures and top
## arcs of the ASN.1 Object Identifier tree ## arcs of the ASN.1 Object Identifier tree
__object-identifier = object-identifier =
xsd:string { xsd:string {
pattern = pattern =
"(([0-1](\.[1-3]?[0-9]))|(2.(0|([1-9]\d*))))(\.(0|([1-9]\d*)))*" "(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))(\.(0|([1-9]\d*)))*"
} }
## This type represents object-identifiers restricted to 128 ## This type represents object-identifiers restricted to 128
## sub-identifiers. ## sub-identifiers.
## ##
## This type is in the value set and its semantics equivalent to ## This type is in the value set and its semantics equivalent to
## the OBJECT IDENTIFIER type of the SMIv2. ## the OBJECT IDENTIFIER type of the SMIv2.
## See: RFC 2578: Structure of Management Information Version 2 (SMIv2) ## See: RFC 2578: Structure of Management Information Version 2 (SMIv2)
__object-identifier-128 = __object-identifier object-identifier-128 = object-identifier
## The date-and-time type is a profile of the ISO 8601 ## The date-and-time type is a profile of the ISO 8601
## standard for representation of dates and times using the ## standard for representation of dates and times using the
## Gregorian calendar. The format is most easily described ## Gregorian calendar. The format is most easily described
## using the following ABFN (see RFC 3339): ## using the following ABFN (see RFC 3339):
## ##
## date-fullyear = 4DIGIT ## date-fullyear = 4DIGIT
## date-month = 2DIGIT ; 01-12 ## date-month = 2DIGIT ; 01-12
## date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 ## date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31
## time-hour = 2DIGIT ; 00-23 ## time-hour = 2DIGIT ; 00-23
skipping to change at page 51, line 52 skipping to change at page 52, line 4
## partial-time = time-hour ":" time-minute ":" time-second ## partial-time = time-hour ":" time-minute ":" time-second
## [time-secfrac] ## [time-secfrac]
## full-date = date-fullyear "-" date-month "-" date-mday ## full-date = date-fullyear "-" date-month "-" date-mday
## full-time = partial-time time-offset ## full-time = partial-time time-offset
## ##
## date-time = full-date "T" full-time ## date-time = full-date "T" full-time
## ##
## The date-and-time type is compatible with the dateTime XML ## The date-and-time type is compatible with the dateTime XML
## schema type except that dateTime allows negative years ## schema type except that dateTime allows negative years
## which are not allowed by RFC 3339. ## which are not allowed by RFC 3339.
##
##
## This type is not equivalent to the DateAndTime textual ## This type is not equivalent to the DateAndTime textual
## convention of the SMIv2 since RFC 3339 uses a different ## convention of the SMIv2 since RFC 3339 uses a different
## separator between full-date and full-time and provides ## separator between full-date and full-time and provides
## higher resolution of time-secfrac. ## higher resolution of time-secfrac.
## See: RFC 3339: Date and Time on the Internet: Timestamps ## See: RFC 3339: Date and Time on the Internet: Timestamps
## RFC 2579: Textual Conventions for SMIv2 ## RFC 2579: Textual Conventions for SMIv2
__date-and-time = date-and-time =
xsd:string { xsd:string {
pattern = pattern =
"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|(\+|-)\d{2}:\d{2})" "\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|(\+|-)\d{2}:\d{2})"
} }
## The timeticks type represents a non-negative integer which ## The timeticks type represents a non-negative integer which
## represents the time, modulo 2^32 (4294967296 decimal), in ## represents the time, modulo 2^32 (4294967296 decimal), in
## hundredths of a second between two epochs. When objects ## hundredths of a second between two epochs. When objects
## are defined which use this type, the description of the ## are defined which use this type, the description of the
## object identifies both of the reference epochs. ## object identifies both of the reference epochs.
## ##
## This type is in the value set and its semantics equivalent to ## This type is in the value set and its semantics equivalent to
## the TimeStamp textual convention of the SMIv2. ## the TimeStamp textual convention of the SMIv2.
## See: RFC 2579: Textual Conventions for SMIv2 ## See: RFC 2579: Textual Conventions for SMIv2
__timeticks = xsd:unsignedInt timeticks = xsd:unsignedInt
## The timestamp type represents the value of an associated ## The timestamp type represents the value of an associated
## timeticks object at which a specific occurrence happened. ## timeticks object at which a specific occurrence happened.
## The specific occurrence must be defined in the description ## The specific occurrence must be defined in the description
## of any object defined using this type. When the specific ## of any object defined using this type. When the specific
## occurrence occurred prior to the last time the associated ## occurrence occurred prior to the last time the associated
## timeticks attribute was zero, then the timestamp value is ## timeticks attribute was zero, then the timestamp value is
## zero. Note that this requires all timestamp values to be ## zero. Note that this requires all timestamp values to be
## reset to zero when the value of the associated timeticks ## reset to zero when the value of the associated timeticks
## attribute reaches 497+ days and wraps around to zero. ## attribute reaches 497+ days and wraps around to zero.
## ##
## The associated timeticks object must be specified ## The associated timeticks object must be specified
## in the description of any object using this type. ## in the description of any object using this type.
## ##
## This type is in the value set and its semantics equivalent to ## This type is in the value set and its semantics equivalent to
## the TimeStamp textual convention of the SMIv2. ## the TimeStamp textual convention of the SMIv2.
## See: RFC 2579: Textual Conventions for SMIv2 ## See: RFC 2579: Textual Conventions for SMIv2
__timestamp = __timeticks timestamp = timeticks
## Represents media- or physical-level addresses represented ## Represents media- or physical-level addresses represented
## as a sequence octets, each octet represented by two hexadecimal ## as a sequence octets, each octet represented by two hexadecimal
## numbers. Octets are separated by colons. ## numbers. Octets are separated by colons.
##
##
## This type is in the value set and its semantics equivalent to ## This type is in the value set and its semantics equivalent to
## the PhysAddress textual convention of the SMIv2. ## the PhysAddress textual convention of the SMIv2.
## See: RFC 2579: Textual Conventions for SMIv2 ## See: RFC 2579: Textual Conventions for SMIv2
__phys-address = phys-address =
xsd:string { pattern = "([0-9a0-fA-F]{2}(:[0-9a0-fA-F]{2})*)?" } xsd:string { pattern = "([0-9a0-fA-F]{2}(:[0-9a0-fA-F]{2})*)?" }
B.2. RelaxNG of Internet Specific Derived Types B.2. RelaxNG of Internet Specific Derived Types
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
namespace dc = "http://purl.org/dc/terms" namespace dc = "http://purl.org/dc/terms"
namespace dsrl = "http://purl.oclc.org/dsdl/dsrl" namespace dsrl = "http://purl.oclc.org/dsdl/dsrl"
namespace inet = "urn:ietf:params:xml:ns:yang:inet-types"
namespace nm = "urn:ietf:params:xml:ns:netmod:dsdl-attrib:1" namespace nm = "urn:ietf:params:xml:ns:netmod:dsdl-attrib:1"
namespace sch = "http://purl.oclc.org/dsdl/schematron" namespace sch = "http://purl.oclc.org/dsdl/schematron"
dc:creator [ dc:creator [
"IETF NETMOD (NETCONF Data Modeling Language) Working Group" "IETF NETMOD (NETCONF Data Modeling Language) Working Group"
] ]
dc:description [ dc:description [
"This module contains a collection of generally useful derived\x{a}" ~ "This module contains a collection of generally useful derived\x{a}" ~
"YANG data types for Internet addresses and related things.\x{a}" ~ "YANG data types for Internet addresses and related things.\x{a}" ~
"\x{a}" ~ "\x{a}" ~
"Copyright (C) The IETF Trust (2008). This version of this\x{a}" ~ "Copyright (C) The IETF Trust (2008). This version of this\x{a}" ~
"YANG module is part of RFC XXXX; see the RFC itself for full\x{a}" ~ "YANG module is part of RFC XXXX; see the RFC itself for full\x{a}" ~
"legal notices." "legal notices."
] ]
dc:issued [ "2008-08-26" ] dc:issued [ "2008-11-03" ]
dc:source [ "YANG module 'inet-types' (automatic translation)" ] dc:source [ "YANG module 'inet-types' (automatic translation)" ]
dc:contributor [ dc:contributor [
"WG Web: <http://tools.ietf.org/wg/netmod/>\x{a}" ~ "WG Web: <http://tools.ietf.org/wg/netmod/>\x{a}" ~
"WG List: <mailto:netmod@ietf.org>\x{a}" ~ "WG List: <mailto:netmod@ietf.org>\x{a}" ~
"\x{a}" ~ "\x{a}" ~
"WG Chair: David Partain\x{a}" ~ "WG Chair: David Partain\x{a}" ~
" <mailto:david.partain@ericsson.com>\x{a}" ~ " <mailto:david.partain@ericsson.com>\x{a}" ~
"\x{a}" ~ "\x{a}" ~
"WG Chair: David Harrington\x{a}" ~ "WG Chair: David Harrington\x{a}" ~
" <mailto:ietfdbh@comcast.net>\x{a}" ~ " <mailto:ietfdbh@comcast.net>\x{a}" ~
skipping to change at page 53, line 51 skipping to change at page 54, line 4
" <mailto:ietfdbh@comcast.net>\x{a}" ~ " <mailto:ietfdbh@comcast.net>\x{a}" ~
"\x{a}" ~ "\x{a}" ~
"Editor: Juergen Schoenwaelder\x{a}" ~ "Editor: Juergen Schoenwaelder\x{a}" ~
" <mailto:j.schoenwaelder@jacobs-university.de>" " <mailto:j.schoenwaelder@jacobs-university.de>"
] ]
## This value represents the version of the IP protocol. ## This value represents the version of the IP protocol.
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the InetVersion textual convention of the SMIv2. However, ## to the InetVersion textual convention of the SMIv2. However,
## the lexical appearance is different from the InetVersion ## the lexical appearance is different from the InetVersion
## textual convention. ## textual convention.
## See: RFC 791: Internet Protocol ## See: RFC 791: Internet Protocol
## RFC 2460: Internet Protocol, Version 6 (IPv6) Specification ## RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
## RFC 4001: Textual Conventions for Internet Network Addresses ## RFC 4001: Textual Conventions for Internet Network Addresses
__ip-version = "unknown" | "ipv4" | "ipv6" ip-version = "unknown" | "ipv4" | "ipv6"
## The dscp type represents a Differentiated Services Code-Point ## The dscp type represents a Differentiated Services Code-Point
## that may be used for marking a traffic stream. ## that may be used for marking packets in a traffic stream.
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the Dscp textual convention of the SMIv2. ## to the Dscp textual convention of the SMIv2.
## See: RFC 3289: Management Information Base for the Differentiated ## See: RFC 3289: Management Information Base for the Differentiated
## Services Architecture ## Services Architecture
## RFC 2474: Definition of the Differentiated Services Field ## RFC 2474: Definition of the Differentiated Services Field
## (DS Field) in the IPv4 and IPv6 Headers ## (DS Field) in the IPv4 and IPv6 Headers
## RFC 2780: IANA Allocation Guidelines For Values In ## RFC 2780: IANA Allocation Guidelines For Values In
## the Internet Protocol and Related Headers ## the Internet Protocol and Related Headers
__dscp = xsd:unsignedByte { minInclusive = "0" maxInclusive = "63" } dscp = xsd:unsignedByte { minInclusive = "0" maxInclusive = "63" }
## The flow-label type represents flow identifier or Flow Label ## The flow-label type represents flow identifier or Flow Label
## in an IPv6 packet header that may be used to discriminate ## in an IPv6 packet header that may be used to discriminate
## traffic flows. ## traffic flows.
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the IPv6FlowLabel textual convention of the SMIv2. ## to the IPv6FlowLabel textual convention of the SMIv2.
## See: RFC 3595: Textual Conventions for IPv6 Flow Label ## See: RFC 3595: Textual Conventions for IPv6 Flow Label
## RFC 2460: Internet Protocol, Version 6 (IPv6) Specification ## RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
__flow-label = flow-label =
xsd:unsignedInt { minInclusive = "0" maxInclusive = "1048575" } xsd:unsignedInt { minInclusive = "0" maxInclusive = "1048575" }
## The port-number type represents a 16-bit port number of an ## The port-number type represents a 16-bit port number of an
## Internet transport layer protocol such as UDP, TCP, DCCP or ## Internet transport layer protocol such as UDP, TCP, DCCP or
## SCTP. Port numbers are assigned by IANA. A current list of ## SCTP. Port numbers are assigned by IANA. A current list of
## all assignments is available from <http://www.iana.org/>. ## all assignments is available from <http://www.iana.org/>.
## ##
## Note that the value zero is not a valid port number. A union ## Note that the value zero is not a valid port number. A union
## type might be used in situations where the value zero is ## type might be used in situations where the value zero is
## meaningful. ## meaningful.
skipping to change at page 54, line 50 skipping to change at page 55, line 4
## ##
## Note that the value zero is not a valid port number. A union ## Note that the value zero is not a valid port number. A union
## type might be used in situations where the value zero is ## type might be used in situations where the value zero is
## meaningful. ## meaningful.
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the InetPortNumber textual convention of the SMIv2. ## to the InetPortNumber textual convention of the SMIv2.
## See: RFC 768: User Datagram Protocol ## See: RFC 768: User Datagram Protocol
## RFC 793: Transmission Control Protocol ## RFC 793: Transmission Control Protocol
## RFC 2960: Stream Control Transmission Protocol ## RFC 2960: Stream Control Transmission Protocol
## RFC 4340: Datagram Congestion Control Protocol (DCCP) ## RFC 4340: Datagram Congestion Control Protocol (DCCP)
## RFC 4001: Textual Conventions for Internet Network Addresses ## RFC 4001: Textual Conventions for Internet Network Addresses
port-number =
__port-number =
xsd:unsignedShort { minInclusive = "1" maxInclusive = "65535" } xsd:unsignedShort { minInclusive = "1" maxInclusive = "65535" }
## The as-number type represents autonomous system numbers ## The as-number type represents autonomous system numbers
## which identify an Autonomous System (AS). An AS is a set ## which identify an Autonomous System (AS). An AS is a set
## of routers under a single technical administration, using ## of routers under a single technical administration, using
## an interior gateway protocol and common metrics to route ## an interior gateway protocol and common metrics to route
## packets within the AS, and using an exterior gateway ## packets within the AS, and using an exterior gateway
## protocol to route packets to other ASs'. IANA maintains ## protocol to route packets to other ASs'. IANA maintains
## ; the AS number space and has delegated large parts to the ## the AS number space and has delegated large parts to the
## regional registries. ## regional registries.
## ##
## Autonomous system numbers are currently limited to 16 bits ## Autonomous system numbers are currently limited to 16 bits
## (0..65535). There is however work in progress to enlarge ## (0..65535). There is however work in progress to enlarge
## the autonomous system number space to 32 bits. This ## the autonomous system number space to 32 bits. This
## textual convention therefore uses an uint32 base type ## textual convention therefore uses an uint32 base type
## without a range restriction in order to support a larger ## without a range restriction in order to support a larger
## autonomous system number space. ## autonomous system number space.
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the InetAutonomousSystemNumber textual convention of ## to the InetAutonomousSystemNumber textual convention of
## the SMIv2. ## the SMIv2.
## See: RFC 1930: Guidelines for creation, selection, and registration ## See: RFC 1930: Guidelines for creation, selection, and registration
## of an Autonomous System (AS) ## of an Autonomous System (AS)
## RFC 4271: A Border Gateway Protocol 4 (BGP-4) ## RFC 4271: A Border Gateway Protocol 4 (BGP-4)
## RFC 4001: Textual Conventions for Internet Network Addresses ## RFC 4001: Textual Conventions for Internet Network Addresses
__autonomous-system-number = xsd:unsignedInt autonomous-system-number = xsd:unsignedInt
## The ip-address type represents an IP address and is IP ## The ip-address type represents an IP address and is IP
## version neutral. The format of the textual representations ## version neutral. The format of the textual representations
## implies the IP version. ## implies the IP version.
__ip-address = __ipv4-address | __ipv6-address ip-address = ipv4-address | ipv6-address
## The ipv4-address type represents an IPv4 address in ## The ipv4-address type represents an IPv4 address in
## dotted-quad notation. The IPv4 address may include a zone ## dotted-quad notation. The IPv4 address may include a zone
## index, separated by a % sign. ## index, separated by a % sign.
## ##
## The zone index is used to disambiguate identical address ## The zone index is used to disambiguate identical address
## values. For link-local addresses, the zone index will ## values. For link-local addresses, the zone index will
## typically be the interface index number or the name of an ## typically be the interface index number or the name of an
## interface. If the zone index is not present, the default ## interface. If the zone index is not present, the default
## zone of the device will be used. ## zone of the device will be used.
__ipv4-address = ipv4-address =
xsd:string { xsd:string {
pattern = pattern =
"((0|(1[0-9]{0,2})|(2(([0-4][0-9]?)|(5[0-5]?)|([6-9]?)" "((0|(1[0-9]{0,2})|(2(([0-4][0-9]?)|(5[0-5]?)|([6-9]?)"
~ "))|([3-9][0-9]?))\.){3}(0|(1[0-9]{0,2})|(2(([0-4][0-9]?)|(5[" ~ "))|([3-9][0-9]?))\.){3}(0|(1[0-9]{0,2})|(2(([0-4][0-9]?)|(5["
~ "0-5]?)|([6-9]?)))|([3-9][0-9]?))(%[\p{N}\p{L}]+)?" ~ "0-5]?)|([6-9]?)))|([3-9][0-9]?))(%[\p{N}\p{L}]+)?"
} }
## The ipv6-address type represents an IPv6 address in full, ## The ipv6-address type represents an IPv6 address in full,
## mixed, shortened and shortened mixed notation. The IPv6 ## mixed, shortened and shortened mixed notation. The IPv6
## address may include a zone index, separated by a % sign. ## address may include a zone index, separated by a % sign.
## ##
## The zone index is used to disambiguate identical address ## The zone index is used to disambiguate identical address
## values. For link-local addresses, the zone index will ## values. For link-local addresses, the zone index will
## typically be the interface index number or the name of an ## typically be the interface index number or the name of an
## interface. If the zone index is not present, the default ## interface. If the zone index is not present, the default
## zone of the device will be used. ## zone of the device will be used.
## See: RFC 4007: IPv6 Scoped Address Architecture ## See: RFC 4007: IPv6 Scoped Address Architecture
__ipv6-address = ipv6-address =
xsd:string { xsd:string {
pattern = pattern =
"((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})(%[\p{N}\p" "((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})(%[\p{N}\p"
~ "{L}]+)?)|((([0-9a-fA-F]{1,4}:){6})(([0-9]{1,3}\.[0-9]{1,3}\." ~ "{L}]+)?)|((([0-9a-fA-F]{1,4}:){6})(([0-9]{1,3}\.[0-9]{1,3}\."
~ "[0-9]{1,3}\.[0-9]{1,3}))(%[\p{N}\p{L}]+)?)|((([0-9a-fA-F]{1," ~ "[0-9]{1,3}\.[0-9]{1,3}))(%[\p{N}\p{L}]+)?)|((([0-9a-fA-F]{1,"
~ "4}:)*([0-9a-fA-F]{1,4}))*(::)(([0-9a-fA-F]{1,4}:)*([0-9a-fA-" ~ "4}:)*([0-9a-fA-F]{1,4}))*(::)(([0-9a-fA-F]{1,4}:)*([0-9a-fA-"
~ "F]{1,4}))*(%[\p{N}\p{L}]+)?)|((([0-9a-fA-F]{1,4}:)*([0-9a-fA" ~ "F]{1,4}))*(%[\p{N}\p{L}]+)?)|((([0-9a-fA-F]{1,4}:)*([0-9a-fA"
~ "-F]{1,4}))*(::)(([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*(([0" ~ "-F]{1,4}))*(::)(([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*(([0"
~ "-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(%[\p{N}\p{L}]" ~ "-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(%[\p{N}\p{L}]"
~ "+)?)" ~ "+)?)"
} }
## The ip-prefix type represents an IP prefix and is IP ## The ip-prefix type represents an IP prefix and is IP
## version neutral. The format of the textual representations ## version neutral. The format of the textual representations
## implies the IP version. ## implies the IP version.
__ip-prefix = __ipv4-prefix | __ipv6-prefix ip-prefix = ipv4-prefix | ipv6-prefix
## The ipv4-prefix type represents an IPv4 address prefix. ## The ipv4-prefix type represents an IPv4 address prefix.
## The prefix length is given by the number following the ## The prefix length is given by the number following the
## slash character and must be less than or equal to 32. ## slash character and must be less than or equal to 32.
## ##
## A prefix length value of n corresponds to an IP address ## A prefix length value of n corresponds to an IP address
## mask which has n contiguous 1-bits from the most ## mask which has n contiguous 1-bits from the most
## significant bit (MSB) and all other bits set to 0. ## significant bit (MSB) and all other bits set to 0.
## ##
## The IPv4 address represented in dotted quad notation ## The IPv4 address represented in dotted quad notation
## should have all bits that do not belong to the prefix ## should have all bits that do not belong to the prefix
## set to zero. ## set to zero.
__ipv4-prefix = ipv4-prefix =
xsd:string { xsd:string {
pattern = pattern =
"(([0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-1]?" "(([0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-1]?"
~ "[0-9]?[0-9]|2[0-4][0-9]|25[0-5])/\d+" ~ "[0-9]?[0-9]|2[0-4][0-9]|25[0-5])/\d+"
} }
## The ipv6-prefix type represents an IPv6 address prefix. ## The ipv6-prefix type represents an IPv6 address prefix.
## The prefix length is given by the number following the ## The prefix length is given by the number following the
## slash character and must be less than or equal 128. ## slash character and must be less than or equal 128.
## ##
## A prefix length value of n corresponds to an IP address ## A prefix length value of n corresponds to an IP address
## mask which has n contiguous 1-bits from the most ## mask which has n contiguous 1-bits from the most
## significant bit (MSB) and all other bits set to 0. ## significant bit (MSB) and all other bits set to 0.
## ##
## The IPv6 address should have all bits that do not belong ## The IPv6 address should have all bits that do not belong
## to the prefix set to zero. ## to the prefix set to zero.
__ipv6-prefix = ipv6-prefix =
xsd:string { xsd:string {
pattern = pattern =
"((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})/\d+)|((([" "((([0-9a-fA-F]{1,4}:){7})([0-9a-fA-F]{1,4})/\d+)|(((["
~ "0-9a-fA-F]{1,4}:){6})(([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[" ~ "0-9a-fA-F]{1,4}:){6})(([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.["
~ "0-9]{1,3}))/\d+)|((([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*(" ~ "0-9]{1,3}))/\d+)|((([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*("
~ "::)(([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*/\d+)|((([0-9a-f" ~ "::)(([0-9a-fA-F]{1,4}:)*([0-9a-fA-F]{1,4}))*/\d+)|((([0-9a-f"
~ "A-F]{1,4}:)*([0-9a-fA-F]{1,4}))*(::)(([0-9a-fA-F]{1,4}:)*([0" ~ "A-F]{1,4}:)*([0-9a-fA-F]{1,4}))*(::)(([0-9a-fA-F]{1,4}:)*([0"
~ "-9a-fA-F]{1,4}))*(([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]" ~ "-9a-fA-F]{1,4}))*(([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]"
~ "{1,3}))/\d+)" ~ "{1,3}))/\d+)"
} }
skipping to change at page 57, line 44 skipping to change at page 57, line 47
## ##
## Note that the resolution of a domain-name value may ## Note that the resolution of a domain-name value may
## require to query multiple DNS records (e.g., A for IPv4 ## require to query multiple DNS records (e.g., A for IPv4
## and AAAA for IPv6). The order of the resolution process ## and AAAA for IPv6). The order of the resolution process
## and which DNS record takes precedence depends on the ## and which DNS record takes precedence depends on the
## configuration of the resolver. ## configuration of the resolver.
## See: RFC 1034: Domain Names - Concepts and Facilities ## See: RFC 1034: Domain Names - Concepts and Facilities
## RFC 1123: Requirements for Internet Hosts -- Application ## RFC 1123: Requirements for Internet Hosts -- Application
## and Support ## and Support
__domain-name = domain-name =
xsd:string { xsd:string {
pattern = pattern =
"([a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]\.)*[a-zA-Z0-9][" "([a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]\.)*[a-zA-Z0-9]["
~ "a-zA-Z0-9\-]*[a-zA-Z0-9]" ~ "a-zA-Z0-9\-]*[a-zA-Z0-9]"
} }
## The host type represents either an IP address or a DNS ## The host type represents either an IP address or a DNS
## domain name. ## domain name.
__host = __ip-address | __domain-name host = ip-address | domain-name
## The uri type represents a Uniform Resource Identifier ## The uri type represents a Uniform Resource Identifier
## (URI) as defined by STD 66. ## (URI) as defined by STD 66.
## ##
## Objects using the uri type must be in US-ASCII encoding, ## Objects using the uri type must be in US-ASCII encoding,
## and MUST be normalized as described by RFC 3986 Sections ## and MUST be normalized as described by RFC 3986 Sections
## 6.2.1, 6.2.2.1, and 6.2.2.2. All unnecessary ## 6.2.1, 6.2.2.1, and 6.2.2.2. All unnecessary
## percent-encoding is removed, and all case-insensitive ## percent-encoding is removed, and all case-insensitive
## characters are set to lowercase except for hexadecimal ## characters are set to lowercase except for hexadecimal
## digits, which are normalized to uppercase as described in ## digits, which are normalized to uppercase as described in
skipping to change at page 58, line 42 skipping to change at page 58, line 44
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the Uri textual convention of the SMIv2. ## to the Uri textual convention of the SMIv2.
## See: RFC 3986: Uniform Resource Identifier (URI): Generic Syntax ## See: RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
## RFC 3305: Report from the Joint W3C/IETF URI Planning Interest ## RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
## Group: Uniform Resource Identifiers (URIs), URLs, ## Group: Uniform Resource Identifiers (URIs), URLs,
## and Uniform Resource Names (URNs): Clarifications ## and Uniform Resource Names (URNs): Clarifications
## and Recommendations ## and Recommendations
## RFC 5017: MIB Textual Conventions for Uniform Resource ## RFC 5017: MIB Textual Conventions for Uniform Resource
## Identifiers (URIs) ## Identifiers (URIs)
__uri = xsd:string uri = xsd:string
B.3. RelaxNG of IEEE Specific Derived Types B.3. RelaxNG of IEEE Specific Derived Types
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
namespace dc = "http://purl.org/dc/terms" namespace dc = "http://purl.org/dc/terms"
namespace dsrl = "http://purl.oclc.org/dsdl/dsrl" namespace dsrl = "http://purl.oclc.org/dsdl/dsrl"
namespace ieee = "urn:ietf:params:xml:ns:yang:ieee-types"
namespace nm = "urn:ietf:params:xml:ns:netmod:dsdl-attrib:1" namespace nm = "urn:ietf:params:xml:ns:netmod:dsdl-attrib:1"
namespace sch = "http://purl.oclc.org/dsdl/schematron" namespace sch = "http://purl.oclc.org/dsdl/schematron"
dc:creator [ dc:creator [
"IETF NETMOD (NETCONF Data Modeling Language) Working Group" "IETF NETMOD (NETCONF Data Modeling Language) Working Group"
] ]
dc:description [ dc:description [
"This module contains a collection of generally useful derived\x{a}" ~ "This module contains a collection of generally useful derived\x{a}" ~
"YANG data types for IEEE 802 addresses and related things.\x{a}" ~ "YANG data types for IEEE 802 addresses and related things.\x{a}" ~
"\x{a}" ~ "\x{a}" ~
"Copyright (C) The IETF Trust (2008). This version of this\x{a}" ~ "Copyright (C) The IETF Trust (2008). This version of this\x{a}" ~
"YANG module is part of RFC XXXX; see the RFC itself for full\x{a}" ~ "YANG module is part of RFC XXXX; see the RFC itself for full\x{a}" ~
"legal notices." "legal notices."
] ]
dc:issued [ "2008-08-22" ] dc:issued [ "2008-11-03" ]
dc:source [ "YANG module 'ieee-types' (automatic translation)" ] dc:source [ "YANG module 'ieee-types' (automatic translation)" ]
dc:contributor [ dc:contributor [
"WG Web: <http://tools.ietf.org/wg/netmod/>\x{a}" ~ "WG Web: <http://tools.ietf.org/wg/netmod/>\x{a}" ~
"WG List: <mailto:netmod@ietf.org>\x{a}" ~ "WG List: <mailto:netmod@ietf.org>\x{a}" ~
"\x{a}" ~ "\x{a}" ~
"WG Chair: David Partain\x{a}" ~ "WG Chair: David Partain\x{a}" ~
" <mailto:david.partain@ericsson.com>\x{a}" ~ " <mailto:david.partain@ericsson.com>\x{a}" ~
"\x{a}" ~ "\x{a}" ~
"WG Chair: David Harrington\x{a}" ~ "WG Chair: David Harrington\x{a}" ~
" <mailto:ietfdbh@comcast.net>\x{a}" ~ " <mailto:ietfdbh@comcast.net>\x{a}" ~
skipping to change at page 59, line 40 skipping to change at page 59, line 45
## The mac-address type represents an 802 MAC address represented ## The mac-address type represents an 802 MAC address represented
## in the `canonical' order defined by IEEE 802.1a, i.e., as if it ## in the `canonical' order defined by IEEE 802.1a, i.e., as if it
## were transmitted least significant bit first, even though 802.5 ## were transmitted least significant bit first, even though 802.5
## (in contrast to other 802.x protocols) requires MAC addresses ## (in contrast to other 802.x protocols) requires MAC addresses
## to be transmitted most significant bit first. ## to be transmitted most significant bit first.
## ##
## This type is in the value set and its semantics equivalent to ## This type is in the value set and its semantics equivalent to
## the MacAddress textual convention of the SMIv2. ## the MacAddress textual convention of the SMIv2.
## See: RFC 2579: Textual Conventions for SMIv2 ## See: RFC 2579: Textual Conventions for SMIv2
__mac-address = mac-address =
xsd:string { pattern = "[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}" } xsd:string { pattern = "[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}" }
## The bridgeid type represents identifiers that uniquely ## The bridgeid type represents identifiers that uniquely
## identify a bridge. Its first four hexadecimal digits ## identify a bridge. Its first four hexadecimal digits
## contain a priority value followed by a colon. The ## contain a priority value followed by a colon. The
## remaining characters contain the MAC address used to ## remaining characters contain the MAC address used to
## refer to a bridge in a unique fashion (typically, the ## refer to a bridge in a unique fashion (typically, the
## numerically smallest MAC address of all ports on the ## numerically smallest MAC address of all ports on the
## bridge). ## bridge).
## ##
## This type is in the value set and its semantics equivalent ## This type is in the value set and its semantics equivalent
## to the BridgeId textual convention of the SMIv2. However, ## to the BridgeId textual convention of the SMIv2. However,
## since the BridgeId textual convention does not prescribe ## since the BridgeId textual convention does not prescribe
## a lexical representation, the appearance might be different. ## a lexical representation, the appearance might be different.
## See: RFC 4188: Definitions of Managed Objects for Bridges ## See: RFC 4188: Definitions of Managed Objects for Bridges
__bridgeid = bridgeid = xsd:string { pattern = "[0-9a-fA-F]{4}(:[0-9a-fA-F]{2}){6}" }
xsd:string { pattern = "[0-9a-fA-F]{4}(:[0-9a-fA-F]{2}){6}" }
## The vlanid type uniquely identifies a VLAN. This is the ## The vlanid type uniquely identifies a VLAN. This is the
## 12-bit VLAN-ID used in the VLAN Tag header. The range is ## 12-bit VLAN-ID used in the VLAN Tag header. The range is
## defined by the referenced specification. ## defined by the referenced specification.
## ##
## This type is in the value set and its semantics equivalent to ## This type is in the value set and its semantics equivalent to
## the VlanId textual convention of the SMIv2. ## the VlanId textual convention of the SMIv2.
## See: IEEE Std 802.1Q 2003 Edition: Virtual Bridged Local ## See: IEEE Std 802.1Q 2003 Edition: Virtual Bridged Local
## Area Networks ## Area Networks
## RFC 4363: Definitions of Managed Objects for Bridges with ## RFC 4363: Definitions of Managed Objects for Bridges with
## Traffic Classes, Multicast Filtering, and Virtual ## Traffic Classes, Multicast Filtering, and Virtual
## LAN Extensions ## LAN Extensions
__vlanid = vlanid = xsd:unsignedShort { minInclusive = "1" maxInclusive = "4094" }
xsd:unsignedShort { minInclusive = "1" maxInclusive = "4094" }
Author's Address Author's Address
Juergen Schoenwaelder (editor) Juergen Schoenwaelder (editor)
Jacobs University Jacobs University
Email: j.schoenwaelder@jacobs-university.de Email: j.schoenwaelder@jacobs-university.de
Full Copyright Statement Full Copyright Statement
 End of changes. 95 change blocks. 
143 lines changed or deleted 141 lines changed or added

This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/