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/ |