Internet Engineering Task Force (IETF) J. Schoenwaelder, Ed. Request for Comments: 6021 Jacobs University Category: Standards Track October 2010 ISSN: 2070-1721
Internet Engineering Task Force (IETF) J. Schoenwaelder, Ed. Request for Comments: 6021 Jacobs University Category: Standards Track October 2010 ISSN: 2070-1721
Common YANG Data Types
常见数据类型
Abstract
摘要
This document introduces a collection of common data types to be used with the YANG data modeling language.
本文档介绍了一组用于YANG数据建模语言的常见数据类型。
Status of This Memo
关于下段备忘
This is an Internet Standards Track document.
这是一份互联网标准跟踪文件。
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.
本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关互联网标准的更多信息,请参见RFC 5741第2节。
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6021.
有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc6021.
Copyright Notice
版权公告
Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved.
版权所有(c)2010 IETF信托基金和确定为文件作者的人员。版权所有。
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。
This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.
本文件可能包含2008年11月10日之前发布或公开的IETF文件或IETF贡献中的材料。控制某些材料版权的人员可能未授予IETF信托允许在IETF标准流程之外修改此类材料的权利。在未从控制此类材料版权的人员处获得充分许可的情况下,不得在IETF标准流程之外修改本文件,也不得在IETF标准流程之外创建其衍生作品,除了将其格式化以RFC形式发布或将其翻译成英语以外的其他语言。
Table of Contents
目录
1. Introduction ....................................................2 2. Overview ........................................................3 3. Core YANG Derived Types .........................................4 4. Internet-Specific Derived Types ................................13 5. IANA Considerations ............................................22 6. Security Considerations ........................................23 7. Contributors ...................................................23 8. Acknowledgments ................................................23 9. References .....................................................23 9.1. Normative References ......................................23 9.2. Informative References ....................................24
1. Introduction ....................................................2 2. Overview ........................................................3 3. Core YANG Derived Types .........................................4 4. Internet-Specific Derived Types ................................13 5. IANA Considerations ............................................22 6. Security Considerations ........................................23 7. Contributors ...................................................23 8. Acknowledgments ................................................23 9. References .....................................................23 9.1. Normative References ......................................23 9.2. Informative References ....................................24
YANG [RFC6020] is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF) [RFC4741]. The YANG language supports a small set of built-in data types and provides mechanisms to derive other types from the built-in types.
YANG[RFC6020]是一种数据建模语言,用于对网络配置协议(NETCONF)[RFC4741]操作的配置和状态数据进行建模。YANG语言支持一小部分内置数据类型,并提供从内置类型派生其他类型的机制。
This document introduces a collection of common data types derived from the built-in YANG data types. The definitions are organized in several YANG modules. The "ietf-yang-types" module contains generally useful data types. The "ietf-inet-types" module contains definitions that are relevant for the Internet protocol suite.
本文档介绍从内置数据类型派生的常见数据类型的集合。这些定义被组织在几个模块中。“ietf类型”模块包含一般有用的数据类型。“ietf inet类型”模块包含与Internet协议套件相关的定义。
The derived types are generally designed to be applicable for modeling all areas of management information.
派生类型通常设计为适用于管理信息的所有领域建模。
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119].
本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“建议”、“不建议”、“可”和“可选”应按照BCP 14[RFC2119]中的说明进行解释。
This section provides a short overview of the types defined in subsequent sections and their equivalent Structure of Management Information Version 2 (SMIv2) [RFC2578][RFC2579] data types. A YANG data type is equivalent to an SMIv2 data type if the data types have the same set of values and the semantics of the values are equivalent.
本节简要概述了后续章节中定义的类型及其管理信息版本2(SMIv2)[RFC2578][RFC2579]数据类型的等效结构。如果数据类型具有相同的值集且值的语义是等效的,则YANG数据类型等效于SMIv2数据类型。
Table 1 lists the types defined in the ietf-yang-types YANG module and the corresponding SMIv2 types (- indicates there is no corresponding SMIv2 type).
表1列出了ietf yang types yang模块中定义的类型和相应的SMIv2类型(-表示没有相应的SMIv2类型)。
ietf-yang-types
杨型
+-----------------------+--------------------------------+ | YANG type | Equivalent SMIv2 type (module) | +-----------------------+--------------------------------+ | counter32 | Counter32 (SNMPv2-SMI) | | zero-based-counter32 | ZeroBasedCounter32 (RMON2-MIB) | | counter64 | Counter64 (SNMPv2-SMI) | | zero-based-counter64 | ZeroBasedCounter64 (HCNUM-TC) | | gauge32 | Gauge32 (SNMPv2-SMI) | | gauge64 | CounterBasedGauge64 (HCNUM-TC) | | object-identifier | - | | object-identifier-128 | OBJECT IDENTIFIER | | date-and-time | - | | timeticks | TimeTicks (SNMPv2-SMI) | | timestamp | TimeStamp (SNMPv2-TC) | | phys-address | PhysAddress (SNMPv2-TC) | | mac-address | MacAddress (SNMPv2-TC) | | xpath1.0 | - | +-----------------------+--------------------------------+
+-----------------------+--------------------------------+ | YANG type | Equivalent SMIv2 type (module) | +-----------------------+--------------------------------+ | counter32 | Counter32 (SNMPv2-SMI) | | zero-based-counter32 | ZeroBasedCounter32 (RMON2-MIB) | | counter64 | Counter64 (SNMPv2-SMI) | | zero-based-counter64 | ZeroBasedCounter64 (HCNUM-TC) | | gauge32 | Gauge32 (SNMPv2-SMI) | | gauge64 | CounterBasedGauge64 (HCNUM-TC) | | object-identifier | - | | object-identifier-128 | OBJECT IDENTIFIER | | date-and-time | - | | timeticks | TimeTicks (SNMPv2-SMI) | | timestamp | TimeStamp (SNMPv2-TC) | | phys-address | PhysAddress (SNMPv2-TC) | | mac-address | MacAddress (SNMPv2-TC) | | xpath1.0 | - | +-----------------------+--------------------------------+
Table 1
表1
Table 2 lists the types defined in the ietf-inet-types YANG module and the corresponding SMIv2 types (if any).
表2列出了ietf inet类型模块中定义的类型以及相应的SMIv2类型(如果有)。
ietf-inet-types
ietf inet类型
+-----------------+-----------------------------------------------+ | YANG type | Equivalent SMIv2 type (module) | +-----------------+-----------------------------------------------+ | ip-version | InetVersion (INET-ADDRESS-MIB) | | dscp | Dscp (DIFFSERV-DSCP-TC) | | ipv6-flow-label | IPv6FlowLabel (IPV6-FLOW-LABEL-MIB) | | port-number | InetPortNumber (INET-ADDRESS-MIB) | | as-number | InetAutonomousSystemNumber (INET-ADDRESS-MIB) | | ip-address | - | | ipv4-address | - | | ipv6-address | - | | ip-prefix | - | | ipv4-prefix | - | | ipv6-prefix | - | | domain-name | - | | host | - | | uri | Uri (URI-TC-MIB) | +-----------------+-----------------------------------------------+
+-----------------+-----------------------------------------------+ | YANG type | Equivalent SMIv2 type (module) | +-----------------+-----------------------------------------------+ | ip-version | InetVersion (INET-ADDRESS-MIB) | | dscp | Dscp (DIFFSERV-DSCP-TC) | | ipv6-flow-label | IPv6FlowLabel (IPV6-FLOW-LABEL-MIB) | | port-number | InetPortNumber (INET-ADDRESS-MIB) | | as-number | InetAutonomousSystemNumber (INET-ADDRESS-MIB) | | ip-address | - | | ipv4-address | - | | ipv6-address | - | | ip-prefix | - | | ipv4-prefix | - | | ipv6-prefix | - | | domain-name | - | | host | - | | uri | Uri (URI-TC-MIB) | +-----------------+-----------------------------------------------+
Table 2
表2
The ietf-yang-types YANG module references [IEEE802], [ISO9834-1], [RFC2578], [RFC2579], [RFC2856], [RFC3339], [RFC4502], [XPATH], and [XSD-TYPES].
ietf模块参考[IEEE802]、[ISO9834-1]、[RFC2578]、[RFC2579]、[RFC2856]、[RFC3339]、[RFC4502]、[XPATH]和[XSD-types]。
<CODE BEGINS> file "ietf-yang-types@2010-09-24.yang"
<CODE BEGINS> file "ietf-yang-types@2010-09-24.yang"
module ietf-yang-types {
ietf模块类型{
namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang";
namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; prefix "yang";
organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
组织“IETF NETMOD(NETCONF数据建模语言)工作组”;
contact "WG Web: <http://tools.ietf.org/wg/netmod/> WG List: <mailto:netmod@ietf.org>
contact "WG Web: <http://tools.ietf.org/wg/netmod/> WG List: <mailto:netmod@ietf.org>
WG Chair: David Partain <mailto:david.partain@ericsson.com>
WG Chair: David Partain <mailto:david.partain@ericsson.com>
WG Chair: David Kessens <mailto:david.kessens@nsn.com>
WG Chair: David Kessens <mailto:david.kessens@nsn.com>
Editor: Juergen Schoenwaelder <mailto:j.schoenwaelder@jacobs-university.de>";
Editor: Juergen Schoenwaelder <mailto:j.schoenwaelder@jacobs-university.de>";
description "This module contains a collection of generally useful derived YANG data types.
description“此模块包含一组常用的派生数据类型。
Copyright (c) 2010 IETF Trust and the persons identified as authors of the code. All rights reserved.
版权所有(c)2010 IETF信托基金和被确定为代码作者的人员。版权所有。
Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info).
根据IETF信托有关IETF文件的法律规定第4.c节规定的简化BSD许可证中包含的许可条款,允许以源代码和二进制格式重新分发和使用,无论是否修改(http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 6021; see the RFC itself for full legal notices.";
该模块的此版本是RFC 6021的一部分;有关完整的法律通知,请参见RFC本身。“;
revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; }
revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; }
/*** collection of counter and gauge types ***/
/*** collection of counter and gauge types ***/
typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero.
typedef counter32 { type uint32; description "The counter32 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero.
Counters have no defined 'initial' value, and thus, a single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter32 at times other than re-initialization, then a corresponding schema node
计数器没有定义的“初始”值,因此,计数器的单个值(通常)没有信息内容。单调递增值中的不连续性通常发生在管理系统的重新初始化时,以及在使用此类型的模式节点的描述中指定的其他时间。例如,如果可以在重新初始化以外的时间创建counter32类型的模式节点,则会创建相应的模式节点
should be defined, with an appropriate type, to indicate the last discontinuity.
应使用适当的类型定义,以指示最后的不连续性。
The counter32 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter32.
counter32类型不应用于配置架构节点。默认语句不应与类型counter32结合使用。
In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; }
In the value set and its semantics, this type is equivalent to the Counter32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; }
typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero.
typedef zero-based-counter32 { type yang:counter32; default "0"; description "The zero-based-counter32 type represents a counter32 that has the defined 'initial' value zero.
A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero.
此类型的架构节点在创建时将设置为零(0),然后将单调增加,直到其达到最大值2^32-1(4294967295十进制),然后再从零开始增加。
Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time.
如果应用程序在最短的包装时间内发现这种类型的新模式节点,它可以使用“初始”值作为增量。对于管理站来说,了解此最短时间和轮询之间的实际时间非常重要,如果实际时间过长或没有定义最短时间,则丢弃数据。
In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; }
In the value set and its semantics, this type is equivalent to the ZeroBasedCounter32 textual convention of the SMIv2."; reference "RFC 4502: Remote Network Monitoring Management Information Base Version 2"; }
typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero.
typedef counter64 { type uint64; description "The counter64 type represents a non-negative integer that monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero.
Counters have no defined 'initial' value, and thus, a
计数器没有定义的“初始”值,因此
single value of a counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of a schema node using this type. If such other times can occur, for example, the creation of a schema node of type counter64 at times other than re-initialization, then a corresponding schema node should be defined, with an appropriate type, to indicate the last discontinuity.
计数器的单个值(通常)没有信息内容。单调递增值中的不连续性通常发生在管理系统的重新初始化时,以及在使用此类型的模式节点的描述中指定的其他时间。如果可能发生此类其他时间,例如,在重新初始化以外的时间创建计数器64类型的模式节点,则应使用适当的类型定义相应的模式节点,以指示最后的不连续性。
The counter64 type should not be used for configuration schema nodes. A default statement SHOULD NOT be used in combination with the type counter64.
counter64类型不应用于配置架构节点。默认语句不应与类型计数器64结合使用。
In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; }
In the value set and its semantics, this type is equivalent to the Counter64 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; }
typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero.
typedef zero-based-counter64 { type yang:counter64; default "0"; description "The zero-based-counter64 type represents a counter64 that has the defined 'initial' value zero.
A schema node of this type will be set to zero (0) on creation and will thereafter increase monotonically until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero.
此类型的架构节点在创建时将设置为零(0),然后将单调增加,直到达到最大值2^64-1(18446744073709551615十进制),然后再从零开始增加。
Provided that an application discovers a new schema node of this type within the minimum time to wrap, it can use the 'initial' value as a delta. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time.
如果应用程序在最短的包装时间内发现这种类型的新模式节点,它可以使用“初始”值作为增量。对于管理站来说,了解此最短时间和轮询之间的实际时间非常重要,如果实际时间过长或没有定义最短时间,则丢弃数据。
In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; }
In the value set and its semantics, this type is equivalent to the ZeroBasedCounter64 textual convention of the SMIv2."; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; }
typedef gauge32 {
类型定义量表32{
type uint32; description "The gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^32-1 (4294967295 decimal), and the minimum value cannot be smaller than 0. The value of a gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge32 also decreases (increases).
uint32型;描述“gauge32类型表示非负整数,可以增加或减少,但不得超过最大值,也不得低于最小值。最大值不得大于2^32-1(4294967295十进制),且最小值不能小于0。当建模的信息大于或等于其最大值时,量表32的值有其最大值,当建模的信息小于或等于其最小值时,量表32的值有其最小值。如果随后建模的信息减少低于(高于)最大(最小)值时,仪表32也会减小(增加)。
In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; }
In the value set and its semantics, this type is equivalent to the Gauge32 type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; }
typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases).
typedef gauge64 { type uint64; description "The gauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value cannot be greater than 2^64-1 (18446744073709551615), and the minimum value cannot be smaller than 0. The value of a gauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the gauge64 also decreases (increases).
In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; }
In the value set and its semantics, this type is equivalent to the CounterBasedGauge64 SMIv2 textual convention defined in RFC 2856"; reference "RFC 2856: Textual Conventions for Additional High Capacity Data Types"; }
/*** collection of identifier related types ***/
/*** collection of identifier related types ***/
typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree.
typedef object-identifier { type string { pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + '(\.(0|([1-9]\d*)))*'; } description "The object-identifier type represents administratively assigned names in a registration-hierarchical-name tree.
Values of this type are denoted as a sequence of numerical non-negative sub-identifier values. Each sub-identifier value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers are separated by single dots and without any intermediate whitespace.
这种类型的值表示为数字非负子标识符值序列。每个子标识符值不得超过2^32-1(4294967295)。子标识符由单点分隔,没有任何中间空格。
The ASN.1 standard restricts the value space of the first sub-identifier to 0, 1, or 2. Furthermore, the value space of the second sub-identifier is restricted to the range 0 to 39 if the first sub-identifier is 0 or 1. Finally, the ASN.1 standard requires that an object identifier has always at least two sub-identifier. The pattern captures these restrictions.
ASN.1标准将第一个子标识符的值空间限制为0、1或2。此外,如果第一子标识符是0或1,则第二子标识符的值空间被限制在范围0到39。最后,ASN.1标准要求对象标识符始终至少有两个子标识符。模式捕获了这些限制。
Although the number of sub-identifiers is not limited, module designers should realize that there may be implementations that stick with the SMIv2 limit of 128 sub-identifiers.
尽管子标识符的数量不受限制,但模块设计者应该意识到,可能存在符合SMIv2 128个子标识符限制的实现。
This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type, the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; }
This type is a superset of the SMIv2 OBJECT IDENTIFIER type since it is not restricted to 128 sub-identifiers. Hence, this type SHOULD NOT be used to represent the SMIv2 OBJECT IDENTIFIER type, the object-identifier-128 type SHOULD be used instead."; reference "ISO9834-1: Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree"; }
typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers.
typedef object-identifier-128 { type object-identifier { pattern '\d*(\.\d*){1,127}'; } description "This type represents object-identifiers restricted to 128 sub-identifiers.
In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; }
In the value set and its semantics, this type is equivalent to the OBJECT IDENTIFIER type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; }
/*** collection of date and time related types ***/
/*** collection of date and time related types ***/
typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339.
typedef date-and-time { type string { pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + '(Z|[\+\-]\d{2}:\d{2})'; } description "The date-and-time type is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. The profile is defined by the date-time production in Section 5.6 of RFC 3339.
The date-and-time type is compatible with the dateTime XML schema type with the following notable exceptions:
日期和时间类型与dateTime XML架构类型兼容,但有以下显著的例外:
(a) The date-and-time type does not allow negative years.
(a) 日期和时间类型不允许负年份。
(b) The date-and-time time-offset -00:00 indicates an unknown time zone (see RFC 3339) while -00:00 and +00:00 and Z all represent the same time zone in dateTime.
(b) 日期和时间偏移量-00:00表示未知时区(请参见RFC 3339),而-00:00和+00:00以及Z都表示dateTime中的同一时区。
(c) The canonical format (see below) of data-and-time values differs from the canonical format used by the dateTime XML schema type, which requires all times to be in UTC using the time-offset 'Z'.
(c) 数据和时间值的规范格式(见下文)与dateTime XML架构类型使用的规范格式不同,后者要求所有时间都使用时间偏移量“Z”以UTC为单位。
This type is not equivalent to the DateAndTime textual convention of the SMIv2 since RFC 3339 uses a different separator between full-date and full-time and provides higher resolution of time-secfrac.
此类型不等同于SMIv2的DateAndTime文本约定,因为RFC 3339在完整日期和完整时间之间使用了不同的分隔符,并提供了更高的时间分辨率。
The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; }
The canonical format for date-and-time values with a known time zone uses a numeric time zone offset that is calculated using the device's configured known offset to UTC time. A change of the device's offset to UTC time will cause date-and-time values to change accordingly. Such changes might happen periodically in case a server follows automatically daylight saving time (DST) time zone offset changes. The canonical format for date-and-time values with an unknown time zone (usually referring to the notion of local time) uses the time-offset -00:00."; reference "RFC 3339: Date and Time on the Internet: Timestamps RFC 2579: Textual Conventions for SMIv2 XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; }
typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs.
typedef timeticks { type uint32; description "The timeticks type represents a non-negative integer that represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When a schema node is defined that uses this type, the description of the schema node identifies both of the reference epochs.
In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; }
In the value set and its semantics, this type is equivalent to the TimeTicks type of the SMIv2."; reference "RFC 2578: Structure of Management Information Version 2 (SMIv2)"; }
typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero.
typedef timestamp { type yang:timeticks; description "The timestamp type represents the value of an associated timeticks schema node at which a specific occurrence happened. The specific occurrence must be defined in the description of any schema node defined using this type. When the specific occurrence occurred prior to the last time the associated timeticks attribute was zero, then the timestamp value is zero. Note that this requires all timestamp values to be reset to zero when the value of the associated timeticks attribute reaches 497+ days and wraps around to zero.
The associated timeticks schema node must be specified in the description of any schema node using this type.
必须在使用此类型的任何架构节点的描述中指定关联的timeticks架构节点。
In the value set and its semantics, this type is equivalent to the TimeStamp textual convention of the SMIv2.";
在值集及其语义中,此类型相当于SMIv2的时间戳文本约定。“;
reference "RFC 2579: Textual Conventions for SMIv2"; }
reference "RFC 2579: Textual Conventions for SMIv2"; }
/*** collection of generic address types ***/
/*** collection of generic address types ***/
typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters.
typedef phys-address { type string { pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; } description "Represents media- or physical-level addresses represented as a sequence octets, each octet represented by two hexadecimal numbers. Octets are separated by colons. The canonical representation uses lowercase characters.
In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; }
In the value set and its semantics, this type is equivalent to the PhysAddress textual convention of the SMIv2."; reference "RFC 2579: Textual Conventions for SMIv2"; }
typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters.
typedef mac-address { type string { pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; } description "The mac-address type represents an IEEE 802 MAC address. The canonical representation uses lowercase characters.
In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; }
In the value set and its semantics, this type is equivalent to the MacAddress textual convention of the SMIv2."; reference "IEEE 802: IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture RFC 2579: Textual Conventions for SMIv2"; }
/*** collection of XML specific types ***/
/*** collection of XML specific types ***/
typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression.
typedef xpath1.0 { type string; description "This type represents an XPATH 1.0 expression.
When a schema node is defined that uses this type, the description of the schema node MUST specify the XPath context in which the XPath expression is evaluated.";
定义使用此类型的架构节点时,架构节点的描述必须指定计算XPath表达式的XPath上下文。“;
reference "XPATH: XML Path Language (XPath) Version 1.0"; }
reference "XPATH: XML Path Language (XPath) Version 1.0"; }
}
}
<CODE ENDS>
<代码结束>
The ietf-inet-types YANG module references [RFC0768], [RFC0791], [RFC0793], [RFC0952], [RFC1034], [RFC1123], [RFC1930], [RFC2460], [RFC2474], [RFC2780], [RFC2782], [RFC3289], [RFC3305], [RFC3492], [RFC3595], [RFC3986], [RFC4001], [RFC4007], [RFC4271], [RFC4291], [RFC4340], [RFC4893], [RFC4960], [RFC5017], [RFC5891], and [RFC5952].
The ietf-inet-types YANG module references [RFC0768], [RFC0791], [RFC0793], [RFC0952], [RFC1034], [RFC1123], [RFC1930], [RFC2460], [RFC2474], [RFC2780], [RFC2782], [RFC3289], [RFC3305], [RFC3492], [RFC3595], [RFC3986], [RFC4001], [RFC4007], [RFC4271], [RFC4291], [RFC4340], [RFC4893], [RFC4960], [RFC5017], [RFC5891], and [RFC5952].
<CODE BEGINS> file "ietf-inet-types@2010-09-24.yang"
<CODE BEGINS> file "ietf-inet-types@2010-09-24.yang"
module ietf-inet-types {
模块ietf inet类型{
namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types"; prefix "inet";
namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types"; prefix "inet";
organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
组织“IETF NETMOD(NETCONF数据建模语言)工作组”;
contact "WG Web: <http://tools.ietf.org/wg/netmod/> WG List: <mailto:netmod@ietf.org>
contact "WG Web: <http://tools.ietf.org/wg/netmod/> WG List: <mailto:netmod@ietf.org>
WG Chair: David Partain <mailto:david.partain@ericsson.com>
WG Chair: David Partain <mailto:david.partain@ericsson.com>
WG Chair: David Kessens <mailto:david.kessens@nsn.com>
WG Chair: David Kessens <mailto:david.kessens@nsn.com>
Editor: Juergen Schoenwaelder <mailto:j.schoenwaelder@jacobs-university.de>";
Editor: Juergen Schoenwaelder <mailto:j.schoenwaelder@jacobs-university.de>";
description "This module contains a collection of generally useful derived YANG data types for Internet addresses and related things.
description“此模块包含Internet地址和相关内容的常用派生数据类型集合。
Copyright (c) 2010 IETF Trust and the persons identified as authors of the code. All rights reserved.
版权所有(c)2010 IETF信托基金和被确定为代码作者的人员。版权所有。
Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info).
根据IETF信托有关IETF文件的法律规定第4.c节规定的简化BSD许可证中包含的许可条款,允许以源代码和二进制格式重新分发和使用,无论是否修改(http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 6021; see the RFC itself for full legal notices.";
该模块的此版本是RFC 6021的一部分;有关完整的法律通知,请参见RFC本身。“;
revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; }
revision 2010-09-24 { description "Initial revision."; reference "RFC 6021: Common YANG Data Types"; }
/*** collection of protocol field related types ***/
/*** collection of protocol field related types ***/
typedef ip-version { type enumeration { enum unknown { value "0"; description "An unknown or unspecified version of the Internet protocol."; } enum ipv4 { value "1"; description "The IPv4 protocol as defined in RFC 791."; } enum ipv6 { value "2"; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol.
typedef ip-version { type enumeration { enum unknown { value "0"; description "An unknown or unspecified version of the Internet protocol."; } enum ipv4 { value "1"; description "The IPv4 protocol as defined in RFC 791."; } enum ipv6 { value "2"; description "The IPv6 protocol as defined in RFC 2460."; } } description "This value represents the version of the IP protocol.
In the value set and its semantics, this type is equivalent to the InetVersion textual convention of the SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; }
In the value set and its semantics, this type is equivalent to the InetVersion textual convention of the SMIv2."; reference "RFC 791: Internet Protocol RFC 2460: Internet Protocol, Version 6 (IPv6) Specification RFC 4001: Textual Conventions for Internet Network Addresses"; }
typedef dscp {
类型定义dscp{
type uint8 { range "0..63"; } description "The dscp type represents a Differentiated Services Code-Point that may be used for marking packets in a traffic stream.
type uint8 { range "0..63"; } description "The dscp type represents a Differentiated Services Code-Point that may be used for marking packets in a traffic stream.
In the value set and its semantics, this type is equivalent to the Dscp textual convention of the SMIv2."; reference "RFC 3289: Management Information Base for the Differentiated Services Architecture RFC 2474: Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers RFC 2780: IANA Allocation Guidelines For Values In the Internet Protocol and Related Headers"; }
In the value set and its semantics, this type is equivalent to the Dscp textual convention of the SMIv2."; reference "RFC 3289: Management Information Base for the Differentiated Services Architecture RFC 2474: Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers RFC 2780: IANA Allocation Guidelines For Values In the Internet Protocol and Related Headers"; }
typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The flow-label type represents flow identifier or Flow Label in an IPv6 packet header that may be used to discriminate traffic flows.
typedef ipv6-flow-label { type uint32 { range "0..1048575"; } description "The flow-label type represents flow identifier or Flow Label in an IPv6 packet header that may be used to discriminate traffic flows.
In the value set and its semantics, this type is equivalent to the IPv6FlowLabel textual convention of the SMIv2."; reference "RFC 3595: Textual Conventions for IPv6 Flow Label RFC 2460: Internet Protocol, Version 6 (IPv6) Specification"; }
In the value set and its semantics, this type is equivalent to the IPv6FlowLabel textual convention of the SMIv2."; reference "RFC 3595: Textual Conventions for IPv6 Flow Label RFC 2460: Internet Protocol, Version 6 (IPv6) Specification"; }
typedef port-number { type uint16 { range "0..65535"; } description "The port-number type represents a 16-bit port number of an Internet transport layer protocol such as UDP, TCP, DCCP, or SCTP. Port numbers are assigned by IANA. A current list of all assignments is available from <http://www.iana.org/>.
typedef port-number { type uint16 { range "0..65535"; } description "The port-number type represents a 16-bit port number of an Internet transport layer protocol such as UDP, TCP, DCCP, or SCTP. Port numbers are assigned by IANA. A current list of all assignments is available from <http://www.iana.org/>.
Note that the port number value zero is reserved by IANA. In situations where the value zero does not make sense, it can be excluded by subtyping the port-number type.
请注意,端口号值0由IANA保留。在值0没有意义的情况下,可以通过子类型化端口号类型将其排除。
In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2."; reference "RFC 768: User Datagram Protocol RFC 793: Transmission Control Protocol RFC 4960: Stream Control Transmission Protocol RFC 4340: Datagram Congestion Control Protocol (DCCP) RFC 4001: Textual Conventions for Internet Network Addresses"; }
In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2."; reference "RFC 768: User Datagram Protocol RFC 793: Transmission Control Protocol RFC 4960: Stream Control Transmission Protocol RFC 4340: Datagram Congestion Control Protocol (DCCP) RFC 4001: Textual Conventions for Internet Network Addresses"; }
/*** collection of autonomous system related types ***/
/*** collection of autonomous system related types ***/
typedef as-number { type uint32; description "The as-number type represents autonomous system numbers which identify an Autonomous System (AS). An AS is a set of routers under a single technical administration, using an interior gateway protocol and common metrics to route packets within the AS, and using an exterior gateway protocol to route packets to other ASs'. IANA maintains the AS number space and has delegated large parts to the regional registries.
typedef as-number { type uint32; description "The as-number type represents autonomous system numbers which identify an Autonomous System (AS). An AS is a set of routers under a single technical administration, using an interior gateway protocol and common metrics to route packets within the AS, and using an exterior gateway protocol to route packets to other ASs'. IANA maintains the AS number space and has delegated large parts to the regional registries.
Autonomous system numbers were originally limited to 16 bits. BGP extensions have enlarged the autonomous system number space to 32 bits. This type therefore uses an uint32 base type without a range restriction in order to support a larger autonomous system number space.
自治系统编号最初限制为16位。BGP扩展将自治系统的数字空间扩大到32位。因此,该类型使用不带范围限制的uint32基类型,以支持更大的自治系统编号空间。
In the value set and its semantics, this type is equivalent to the InetAutonomousSystemNumber textual convention of the SMIv2."; reference "RFC 1930: Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271: A Border Gateway Protocol 4 (BGP-4) RFC 4893: BGP Support for Four-octet AS Number Space RFC 4001: Textual Conventions for Internet Network Addresses"; }
In the value set and its semantics, this type is equivalent to the InetAutonomousSystemNumber textual convention of the SMIv2."; reference "RFC 1930: Guidelines for creation, selection, and registration of an Autonomous System (AS) RFC 4271: A Border Gateway Protocol 4 (BGP-4) RFC 4893: BGP Support for Four-octet AS Number Space RFC 4001: Textual Conventions for Internet Network Addresses"; }
/*** collection of IP address and hostname related types ***/
/*** collection of IP address and hostname related types ***/
typedef ip-address { type union { type inet:ipv4-address; type inet:ipv6-address; }
typedef ip-address { type union { type inet:ipv4-address; type inet:ipv6-address; }
description "The ip-address type represents an IP address and is IP version neutral. The format of the textual representations implies the IP version."; }
description "The ip-address type represents an IP address and is IP version neutral. The format of the textual representations implies the IP version."; }
typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + '(%[\p{N}\p{L}]+)?'; } description "The ipv4-address type represents an IPv4 address in dotted-quad notation. The IPv4 address may include a zone index, separated by a % sign.
typedef ipv4-address { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + '(%[\p{N}\p{L}]+)?'; } description "The ipv4-address type represents an IPv4 address in dotted-quad notation. The IPv4 address may include a zone index, separated by a % sign.
The zone index is used to disambiguate identical address values. For link-local addresses, the zone index will typically be the interface index number or the name of an interface. If the zone index is not present, the default zone of the device will be used.
区域索引用于消除相同地址值的歧义。对于链路本地地址,区域索引通常是接口索引号或接口名称。如果区域索引不存在,将使用设备的默认区域。
The canonical format for the zone index is the numerical format"; }
The canonical format for the zone index is the numerical format"; }
typedef ipv6-address { type string { pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + '(%[\p{N}\p{L}]+)?'; pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + '(%.+)?'; } description "The ipv6-address type represents an IPv6 address in full, mixed, shortened, and shortened-mixed notation. The IPv6 address may include a zone index, separated by a % sign.
typedef ipv6-address { type string { pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + '(%[\p{N}\p{L}]+)?'; pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + '(%.+)?'; } description "The ipv6-address type represents an IPv6 address in full, mixed, shortened, and shortened-mixed notation. The IPv6 address may include a zone index, separated by a % sign.
The zone index is used to disambiguate identical address values. For link-local addresses, the zone index will typically be the interface index number or the name of an interface. If the zone index is not present, the default zone of the device will be used.
区域索引用于消除相同地址值的歧义。对于链路本地地址,区域索引通常是接口索引号或接口名称。如果区域索引不存在,将使用设备的默认区域。
The canonical format of IPv6 addresses uses the compressed format described in RFC 4291, Section 2.2, item 2 with the following additional rules: the :: substitution must be applied to the longest sequence of all-zero 16-bit chunks in an IPv6 address. If there is a tie, the first sequence of all-zero 16-bit chunks is replaced by ::. Single all-zero 16-bit chunks are not compressed. The canonical format uses lowercase characters and leading zeros are not allowed. The canonical format for the zone index is the numerical format as described in RFC 4007, Section 11.2."; reference "RFC 4291: IP Version 6 Addressing Architecture RFC 4007: IPv6 Scoped Address Architecture RFC 5952: A Recommendation for IPv6 Address Text Representation"; }
The canonical format of IPv6 addresses uses the compressed format described in RFC 4291, Section 2.2, item 2 with the following additional rules: the :: substitution must be applied to the longest sequence of all-zero 16-bit chunks in an IPv6 address. If there is a tie, the first sequence of all-zero 16-bit chunks is replaced by ::. Single all-zero 16-bit chunks are not compressed. The canonical format uses lowercase characters and leading zeros are not allowed. The canonical format for the zone index is the numerical format as described in RFC 4007, Section 11.2."; reference "RFC 4291: IP Version 6 Addressing Architecture RFC 4007: IPv6 Scoped Address Architecture RFC 5952: A Recommendation for IPv6 Address Text Representation"; }
typedef ip-prefix { type union { type inet:ipv4-prefix; type inet:ipv6-prefix; } description "The ip-prefix type represents an IP prefix and is IP version neutral. The format of the textual representations implies the IP version."; }
typedef ip-prefix { type union { type inet:ipv4-prefix; type inet:ipv6-prefix; } description "The ip-prefix type represents an IP prefix and is IP version neutral. The format of the textual representations implies the IP version."; }
typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; } description "The ipv4-prefix type represents an IPv4 address prefix. The prefix length is given by the number following the slash character and must be less than or equal to 32.
typedef ipv4-prefix { type string { pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; } description "The ipv4-prefix type represents an IPv4 address prefix. The prefix length is given by the number following the slash character and must be less than or equal to 32.
A prefix length value of n corresponds to an IP address mask that has n contiguous 1-bits from the most significant bit (MSB) and all other bits set to 0.
前缀长度值n对应于IP地址掩码,该掩码从最高有效位(MSB)开始有n个连续的1位,所有其他位设置为0。
The canonical format of an IPv4 prefix has all bits of the IPv4 address set to zero that are not part of the IPv4 prefix."; }
The canonical format of an IPv4 prefix has all bits of the IPv4 address set to zero that are not part of the IPv4 prefix."; }
typedef ipv6-prefix { type string { pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'; pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + '(/.+)'; } description "The ipv6-prefix type represents an IPv6 address prefix. The prefix length is given by the number following the slash character and must be less than or equal 128.
typedef ipv6-prefix { type string { pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'; pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + '(/.+)'; } description "The ipv6-prefix type represents an IPv6 address prefix. The prefix length is given by the number following the slash character and must be less than or equal 128.
A prefix length value of n corresponds to an IP address mask that has n contiguous 1-bits from the most significant bit (MSB) and all other bits set to 0.
前缀长度值n对应于IP地址掩码,该掩码从最高有效位(MSB)开始有n个连续的1位,所有其他位设置为0。
The IPv6 address should have all bits that do not belong to the prefix set to zero.
IPv6地址应将不属于前缀的所有位设置为零。
The canonical format of an IPv6 prefix has all bits of the IPv6 address set to zero that are not part of the IPv6 prefix. Furthermore, IPv6 address is represented in the compressed format described in RFC 4291, Section 2.2, item 2 with the following additional rules: the :: substitution must be applied to the longest sequence of all-zero 16-bit chunks in an IPv6 address. If there is a tie, the first sequence of all-zero 16-bit chunks is replaced by ::. Single all-zero 16-bit chunks are not compressed. The canonical format uses lowercase characters and leading zeros are not allowed."; reference "RFC 4291: IP Version 6 Addressing Architecture"; }
The canonical format of an IPv6 prefix has all bits of the IPv6 address set to zero that are not part of the IPv6 prefix. Furthermore, IPv6 address is represented in the compressed format described in RFC 4291, Section 2.2, item 2 with the following additional rules: the :: substitution must be applied to the longest sequence of all-zero 16-bit chunks in an IPv6 address. If there is a tie, the first sequence of all-zero 16-bit chunks is replaced by ::. Single all-zero 16-bit chunks are not compressed. The canonical format uses lowercase characters and leading zeros are not allowed."; reference "RFC 4291: IP Version 6 Addressing Architecture"; }
/*** collection of domain name and URI types ***/
/*** collection of domain name and URI types ***/
typedef domain-name { type string { pattern '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.'; length "1..253"; } description "The domain-name type represents a DNS domain name. The name SHOULD be fully qualified whenever possible.
typedef domain-name { type string { pattern '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + '|\.'; length "1..253"; } description "The domain-name type represents a DNS domain name. The name SHOULD be fully qualified whenever possible.
Internet domain names are only loosely specified. Section 3.5 of RFC 1034 recommends a syntax (modified in Section 2.1 of RFC 1123). The pattern above is intended to allow for current practice in domain name use, and some possible future expansion. It is designed to hold various types of domain names, including names used for A or AAAA records (host names) and other records, such as SRV records. Note that Internet host names have a stricter syntax (described in RFC 952) than the DNS recommendations in RFCs 1034 and 1123, and that systems that want to store host names in schema nodes using the domain-name type are recommended to adhere to this stricter standard to ensure interoperability.
Internet域名的指定很松散。RFC 1034的第3.5节推荐了一种语法(在RFC 1123的第2.1节中进行了修改)。上述模式旨在考虑当前域名使用的实践,以及未来可能的扩展。它设计用于保存各种类型的域名,包括用于A或AAAA记录(主机名)和其他记录(如SRV记录)的名称。请注意,与RFCs 1034和1123中的DNS建议相比,Internet主机名具有更严格的语法(如RFC 952所述),并且建议希望使用域名类型在架构节点中存储主机名的系统遵守此更严格的标准,以确保互操作性。
The encoding of DNS names in the DNS protocol is limited to 255 characters. Since the encoding consists of labels prefixed by a length bytes and there is a trailing NULL byte, only 253 characters can appear in the textual dotted notation.
DNS协议中DNS名称的编码限制为255个字符。由于编码由前缀为长度字节的标签组成,并且后面有一个空字节,因此文本虚线表示法中只能出现253个字符。
The description clause of schema nodes using the domain-name type MUST describe when and how these names are resolved to IP addresses. Note that the resolution of a domain-name value may require to query multiple DNS records (e.g., A for IPv4 and AAAA for IPv6). The order of the resolution process and which DNS record takes precedence can either be defined explicitely or it may depend on the configuration of the resolver.
使用域名类型的架构节点的description子句必须描述何时以及如何将这些名称解析为IP地址。请注意,域名值的解析可能需要查询多个DNS记录(例如,IPv4为a,IPv6为AAAA)。解析过程的顺序以及哪个DNS记录优先可以明确定义,也可以取决于解析程序的配置。
Domain-name values use the US-ASCII encoding. Their canonical format uses lowercase US-ASCII characters. Internationalized domain names MUST be encoded in punycode as described in RFC 3492"; reference "RFC 952: DoD Internet Host Table Specification RFC 1034: Domain Names - Concepts and Facilities
域名值使用US-ASCII编码。其规范格式使用小写US-ASCII字符。国际化域名必须按照RFC 3492;参考“RFC 952:DoD互联网主机表规范RFC 1034:域名-概念和设施”中的描述,以punycode编码
RFC 1123: Requirements for Internet Hosts -- Application and Support RFC 2782: A DNS RR for specifying the location of services (DNS SRV) RFC 3492: Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA) RFC 5891: Internationalizing Domain Names in Applications (IDNA): Protocol"; }
RFC 1123: Requirements for Internet Hosts -- Application and Support RFC 2782: A DNS RR for specifying the location of services (DNS SRV) RFC 3492: Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA) RFC 5891: Internationalizing Domain Names in Applications (IDNA): Protocol"; }
typedef host { type union { type inet:ip-address; type inet:domain-name; } description "The host type represents either an IP address or a DNS domain name."; }
typedef host { type union { type inet:ip-address; type inet:domain-name; } description "The host type represents either an IP address or a DNS domain name."; }
typedef uri { type string; description "The uri type represents a Uniform Resource Identifier (URI) as defined by STD 66.
typedef uri { type string; description "The uri type represents a Uniform Resource Identifier (URI) as defined by STD 66.
Objects using the uri type MUST be in US-ASCII encoding, and MUST be normalized as described by RFC 3986 Sections 6.2.1, 6.2.2.1, and 6.2.2.2. All unnecessary percent-encoding is removed, and all case-insensitive characters are set to lowercase except for hexadecimal digits, which are normalized to uppercase as described in Section 6.2.2.1.
使用uri类型的对象必须采用US-ASCII编码,并且必须按照RFC 3986第6.2.1、6.2.2.1和6.2.2.2节的描述进行规范化。删除所有不必要的百分比编码,并将所有不区分大小写的字符设置为小写,但十六进制数字除外,十六进制数字标准化为大写,如第6.2.2.1节所述。
The purpose of this normalization is to help provide unique URIs. Note that this normalization is not sufficient to provide uniqueness. Two URIs that are textually distinct after this normalization may still be equivalent.
此规范化的目的是帮助提供唯一的URI。请注意,这种规范化不足以提供唯一性。在此规范化之后,文本上不同的两个URI可能仍然是等效的。
Objects using the uri type may restrict the schemes that they permit. For example, 'data:' and 'urn:' schemes might not be appropriate.
使用uri类型的对象可能会限制其允许的方案。例如,“data:”和“urn:”方案可能不合适。
A zero-length URI is not a valid URI. This can be used to express 'URI absent' where required.
长度为零的URI不是有效的URI。在需要时,这可以用来表示“URI缺席”。
In the value set and its semantics, this type is equivalent to the Uri SMIv2 textual convention defined in RFC 5017."; reference "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax RFC 3305: Report from the Joint W3C/IETF URI Planning Interest Group: Uniform Resource Identifiers (URIs), URLs, and Uniform Resource Names (URNs): Clarifications and Recommendations RFC 5017: MIB Textual Conventions for Uniform Resource Identifiers (URIs)"; }
In the value set and its semantics, this type is equivalent to the Uri SMIv2 textual convention defined in RFC 5017."; reference "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax RFC 3305: Report from the Joint W3C/IETF URI Planning Interest Group: Uniform Resource Identifiers (URIs), URLs, and Uniform Resource Names (URNs): Clarifications and Recommendations RFC 5017: MIB Textual Conventions for Uniform Resource Identifiers (URIs)"; }
}
}
<CODE ENDS>
<代码结束>
This document registers two URIs in the IETF XML registry [RFC3688]. Following the format in RFC 3688, the following registrations have been made.
本文档在IETF XML注册表[RFC3688]中注册了两个URI。按照RFC 3688中的格式,进行了以下注册。
URI: urn:ietf:params:xml:ns:yang:ietf-yang-types
URI: urn:ietf:params:xml:ns:yang:ietf-yang-types
Registrant Contact: The NETMOD WG of the IETF.
注册人联系人:IETF的NETMOD工作组。
XML: N/A, the requested URI is an XML namespace.
XML:N/A,请求的URI是一个XML名称空间。
URI: urn:ietf:params:xml:ns:yang:ietf-inet-types
URI: urn:ietf:params:xml:ns:yang:ietf-inet-types
Registrant Contact: The NETMOD WG of the IETF.
注册人联系人:IETF的NETMOD工作组。
XML: N/A, the requested URI is an XML namespace.
XML:N/A,请求的URI是一个XML名称空间。
This document registers two YANG modules in the YANG Module Names registry [RFC6020].
本文件在YANG模块名称注册表[RFC6020]中注册了两个YANG模块。
name: ietf-yang-types namespace: urn:ietf:params:xml:ns:yang:ietf-yang-types prefix: yang reference: RFC 6021
name: ietf-yang-types namespace: urn:ietf:params:xml:ns:yang:ietf-yang-types prefix: yang reference: RFC 6021
name: ietf-inet-types namespace: urn:ietf:params:xml:ns:yang:ietf-inet-types prefix: inet reference: RFC 6021
name: ietf-inet-types namespace: urn:ietf:params:xml:ns:yang:ietf-inet-types prefix: inet reference: RFC 6021
This document defines common data types using the YANG data modeling language. The definitions themselves have no security impact on the Internet but the usage of these definitions in concrete YANG modules might have. The security considerations spelled out in the YANG specification [RFC6020] apply for this document as well.
本文档使用YANG数据建模语言定义通用数据类型。这些定义本身对Internet没有安全影响,但在具体模块中使用这些定义可能会产生影响。YANG规范[RFC6020]中规定的安全注意事项也适用于本文件。
The following people contributed significantly to the initial version of this document:
以下人员对本文件的初始版本做出了重大贡献:
- Andy Bierman (Brocade) - Martin Bjorklund (Tail-f Systems) - Balazs Lengyel (Ericsson) - David Partain (Ericsson) - Phil Shafer (Juniper Networks)
- 安迪·比尔曼(Brocade)-马丁·比约克隆德(Tail-f系统)-巴拉兹·伦杰尔(爱立信)-大卫·帕坦(爱立信)-菲尔·沙弗(Juniper Networks)
The editor wishes to thank the following individuals for providing helpful comments on various versions of this document: Ladislav Lhotka, Lars-Johan Liman, and Dan Romascanu.
编辑谨感谢以下人士对本文件的不同版本提供了有益的意见:Ladislav Lhotka、Lars Johan Liman和Dan Romascanu。
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。
[RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, July 2002.
[RFC3339]Klyne,G.,Ed.和C.Newman,“互联网上的日期和时间:时间戳”,RFC33392002年7月。
[RFC3492] Costello, A., "Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)", RFC 3492, March 2003.
[RFC3492]Costello,A.,“Punycode:应用程序中国际化域名的Unicode引导字符串编码(IDNA)”,RFC 3492,2003年3月。
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004.
[RFC3688]Mealling,M.“IETF XML注册表”,BCP 81,RFC 3688,2004年1月。
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005.
[RFC3986]Berners Lee,T.,Fielding,R.,和L.Masinter,“统一资源标识符(URI):通用语法”,STD 66,RFC 3986,2005年1月。
[RFC4007] Deering, S., Haberman, B., Jinmei, T., Nordmark, E., and B. Zill, "IPv6 Scoped Address Architecture", RFC 4007, March 2005.
[RFC4007]Deering,S.,Haberman,B.,Jinmei,T.,Nordmark,E.,和B.Zill,“IPv6作用域地址体系结构”,RFC 4007,2005年3月。
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, February 2006.
[RFC4291]Hinden,R.和S.Deering,“IP版本6寻址体系结构”,RFC 42912006年2月。
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for Network Configuration Protocol (NETCONF)", RFC 6020, October 2010.
[RFC6020]Bjorklund,M.,Ed.“YANG-网络配置协议的数据建模语言(NETCONF)”,RFC 602020,2010年10月。
[XPATH] Clark, J. and S. DeRose, "XML Path Language (XPath) Version 1.0", World Wide Web Consortium Recommendation REC-xpath-19991116, November 1999, <http://www.w3.org/TR/1999/REC-xpath-19991116>.
[XPATH]Clark,J.和S.DeRose,“XML路径语言(XPATH)1.0版”,万维网联盟建议REC-XPATH-19991116,1999年11月<http://www.w3.org/TR/1999/REC-xpath-19991116>.
[IEEE802] IEEE, "IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture", IEEE Std. 802- 2001.
[IEEE802]IEEE,“局域网和城域网的IEEE标准:概述和体系结构”,IEEE标准802-2001。
[ISO9834-1] ISO/IEC, "Information technology -- Open Systems Interconnection -- Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree", ISO/ IEC 9834-1:2008, 2008.
[ISO9834-1]ISO/IEC,“信息技术——开放系统互连——OSI注册机构的操作程序:ASN.1对象标识符树的一般程序和顶弧”,ISO/IEC 9834-1:2008。
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, August 1980.
[RFC0768]Postel,J.,“用户数据报协议”,STD 6,RFC 768,1980年8月。
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981.
[RFC0791]Postel,J.,“互联网协议”,STD 5,RFC 7911981年9月。
[RFC0793] Postel, J., "Transmission Control Protocol", STD 7, RFC 793, September 1981.
[RFC0793]Postel,J.,“传输控制协议”,标准7,RFC 793,1981年9月。
[RFC0952] Harrenstien, K., Stahl, M., and E. Feinler, "DoD Internet host table specification", RFC 952, October 1985.
[RFC0952]Harrenstien,K.,Stahl,M.和E.Feinler,“国防部互联网主机表规范”,RFC 952,1985年10月。
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, November 1987.
[RFC1034]Mockapetris,P.,“域名-概念和设施”,STD 13,RFC 1034,1987年11月。
[RFC1123] Braden, R., "Requirements for Internet Hosts - Application and Support", STD 3, RFC 1123, October 1989.
[RFC1123]Braden,R.,“互联网主机的要求-应用和支持”,STD 3,RFC 1123,1989年10月。
[RFC1930] Hawkinson, J. and T. Bates, "Guidelines for creation, selection, and registration of an Autonomous System (AS)", BCP 6, RFC 1930, March 1996.
[RFC1930]霍金森,J.和T.贝茨,“自主系统(AS)的创建、选择和注册指南”,BCP 6,RFC 1930,1996年3月。
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998.
[RFC2460]Deering,S.和R.Hinden,“互联网协议,第6版(IPv6)规范”,RFC 2460,1998年12月。
[RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, "Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers", RFC 2474, December 1998.
[RFC2474]Nichols,K.,Blake,S.,Baker,F.,和D.Black,“IPv4和IPv6头中区分服务字段(DS字段)的定义”,RFC 2474,1998年12月。
[RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
[RFC2578]McCloghrie,K.,Ed.,Perkins,D.,Ed.,和J.Schoenwaeld,Ed.“管理信息的结构版本2(SMIv2)”,STD 58,RFC 2578,1999年4月。
[RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
[RFC2579]McCloghrie,K.,Ed.,Perkins,D.,Ed.,和J.Schoenwaeld,Ed.“SMIv2的文本约定”,STD 58,RFC 2579,1999年4月。
[RFC2780] Bradner, S. and V. Paxson, "IANA Allocation Guidelines For Values In the Internet Protocol and Related Headers", BCP 37, RFC 2780, March 2000.
[RFC2780]Bradner,S.和V.Paxson,“互联网协议和相关报头中值的IANA分配指南”,BCP 37,RFC 2780,2000年3月。
[RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for specifying the location of services (DNS SRV)", RFC 2782, February 2000.
[RFC2782]Gulbrandsen,A.,Vixie,P.和L.Esibov,“用于指定服务位置(DNS SRV)的DNS RR”,RFC 2782,2000年2月。
[RFC2856] Bierman, A., McCloghrie, K., and R. Presuhn, "Textual Conventions for Additional High Capacity Data Types", RFC 2856, June 2000.
[RFC2856]Bierman,A.,McCloghrie,K.,和R.Presohn,“附加高容量数据类型的文本约定”,RFC 28562000年6月。
[RFC3289] Baker, F., Chan, K., and A. Smith, "Management Information Base for the Differentiated Services Architecture", RFC 3289, May 2002.
[RFC3289]Baker,F.,Chan,K.和A.Smith,“差异化服务体系结构的管理信息库”,RFC 3289,2002年5月。
[RFC3305] Mealling, M. and R. Denenberg, "Report from the Joint W3C/IETF URI Planning Interest Group: Uniform Resource Identifiers (URIs), URLs, and Uniform Resource Names (URNs): Clarifications and Recommendations", RFC 3305, August 2002.
[RFC3305]Mealling,M.和R.Denenberg,“W3C/IETF URI规划联合兴趣小组的报告:统一资源标识符(URI)、URL和统一资源名称(URN):澄清和建议”,RFC 33052002年8月。
[RFC3595] Wijnen, B., "Textual Conventions for IPv6 Flow Label", RFC 3595, September 2003.
[RFC3595]Wijnen,B.,“IPv6流标签的文本约定”,RFC 35952003年9月。
[RFC4001] Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, "Textual Conventions for Internet Network Addresses", RFC 4001, February 2005.
[RFC4001]Daniele,M.,Haberman,B.,Routhier,S.,和J.Schoenwaeld,“互联网网络地址的文本约定”,RFC 4001,2005年2月。
[RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006.
[RFC4271]Rekhter,Y.,Li,T.,和S.Hares,“边境网关协议4(BGP-4)”,RFC 42712006年1月。
[RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram Congestion Control Protocol (DCCP)", RFC 4340, March 2006.
[RFC4340]Kohler,E.,Handley,M.和S.Floyd,“数据报拥塞控制协议(DCCP)”,RFC 43402006年3月。
[RFC4502] Waldbusser, S., "Remote Network Monitoring Management Information Base Version 2", RFC 4502, May 2006.
[RFC4502]Waldbusser,S.,“远程网络监控管理信息库版本2”,RFC4502,2006年5月。
[RFC4741] Enns, R., "NETCONF Configuration Protocol", RFC 4741, December 2006.
[RFC4741]Enns,R.,“网络配置协议”,RFC 47412006年12月。
[RFC4893] Vohra, Q. and E. Chen, "BGP Support for Four-octet AS Number Space", RFC 4893, May 2007.
[RFC4893]Vohra,Q.和E.Chen,“BGP支持四个八位组作为数字空间”,RFC 4893,2007年5月。
[RFC4960] Stewart, R., "Stream Control Transmission Protocol", RFC 4960, September 2007.
[RFC4960]Stewart,R.,“流控制传输协议”,RFC 49602007年9月。
[RFC5017] McWalter, D., "MIB Textual Conventions for Uniform Resource Identifiers (URIs)", RFC 5017, September 2007.
[RFC5017]McWalter,D.“统一资源标识符(URI)的MIB文本约定”,RFC 5017,2007年9月。
[RFC5891] Klensin, J., "Internationalizing Domain Names in Applications (IDNA): Protocol", RFC 5891, August 2010.
[RFC5891]Klensin,J.,“应用程序中的域名国际化(IDNA):协议”,RFC 58912010年8月。
[RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6 Address Text Representation", RFC 5952, August 2010.
[RFC5952]Kawamura,S.和M.Kawashima,“IPv6地址文本表示的建议”,RFC 59522010年8月。
[XSD-TYPES] Malhotra, A. and P. Biron, "XML Schema Part 2: Datatypes Second Edition", World Wide Web Consortium Recommendation REC-xmlschema-2-20041028, October 2004, <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>.
[XSD-TYPES]Malhotra,A.和P.Biron,“XML模式第2部分:数据类型第二版”,万维网联盟建议REC-xmlschema-2-20041028,2004年10月<http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>.
Author's Address
作者地址
Juergen Schoenwaelder (editor) Jacobs University
雅各布斯大学Juergen Schoenwaeld(编辑)
EMail: j.schoenwaelder@jacobs-university.de
EMail: j.schoenwaelder@jacobs-university.de