Network Working Group                                         G. Swallow
Request for Comments: 5284                           Cisco Systems, Inc.
Category: Standards Track                                      A. Farrel
                                                      Old Dog Consulting
                                                             August 2008
        
Network Working Group                                         G. Swallow
Request for Comments: 5284                           Cisco Systems, Inc.
Category: Standards Track                                      A. Farrel
                                                      Old Dog Consulting
                                                             August 2008
        

User-Defined Errors for RSVP

RSVP的用户定义错误

Status of This Memo

关于下段备忘

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Abstract

摘要

The Resource ReserVation Protocol (RSVP) defines an ERROR_SPEC object for communicating errors. That object has a defined format that permits the definition of 256 error codes. As RSVP has been developed and extended, the convention has been to be conservative in defining new error codes. Further, no provision for user-defined errors exists in RSVP.

资源预留协议(RSVP)定义了一个用于传递错误的错误规范对象。该对象的定义格式允许定义256个错误代码。随着RSVP的开发和扩展,在定义新的错误代码时,该约定一直是保守的。此外,RSVP中不存在用户定义错误的规定。

This document defines a USER_ERROR_SPEC to be used in addition to the ERROR_SPEC to carry additional user information related to errors.

本文档定义了一个用户错误规范,除错误规范外,还将使用该规范来携带与错误相关的其他用户信息。

1. Introduction
1. 介绍

The Resource ReserVation Protocol (RSVP) [RFC2205] defines an ERROR_SPEC object for communicating errors. That object has a defined format that permits the definition of 256 error codes. As RSVP has been developed and extended, the convention has been to be conservative in communicating errors. Further, no provision for user defined errors exists in RSVP.

资源预留协议(RSVP)[RFC2205]定义了一个用于传递错误的错误规范对象。该对象的定义格式允许定义256个错误代码。随着RSVP的开发和扩展,该约定在传递错误时变得保守。此外,RSVP中不存在用户定义错误的规定。

When developing extensions to RSVP, it is often useful for those implementing to define error messages to aid both in the initial debugging and in testing against older versions or other implementations.

在开发RSVP的扩展时,对于那些实现的人来说,定义错误消息来帮助初始调试和针对旧版本或其他实现的测试通常是有用的。

This document defines a new RSVP object to permit user-defined errors to be communicated. This will enable organizations to define errors that they can use for internal development. These error values could also be shared with the community at large to aid in promoting interoperability between diverse implementations.

本文档定义了一个新的RSVP对象,以允许传达用户定义的错误。这将使组织能够定义可用于内部开发的错误。这些错误值还可以与整个社区共享,以帮助促进不同实现之间的互操作性。

RSVP PathErr and ResvErr messages require the presence of an ERROR_SPEC object ([RFC2205]). [RFC3473] defines the Notify message that also requires the presence of an ERROR_SPEC object. In order to not change the mandatory contents of these messages, this document defines a new error code value that indicates that the new object is present and carries a user-defined error code.

RSVP PathErr和ResvErr消息要求存在错误规范对象([RFC2205])。[RFC3473]定义还需要存在错误规范对象的通知消息。为了不更改这些消息的强制内容,本文档定义了一个新的错误代码值,该值指示存在新对象,并带有用户定义的错误代码。

Note that the ResvConf message defined in [RFC2205] also carries an ERROR_SPEC object. But this usage of the object does not carry meaningful Error Codes or Error Values and so the extensions defined in this document are not applicable to that message.

请注意,[RFC2205]中定义的ResvConf消息也带有一个ERROR_SPEC对象。但该对象的这种用法并不携带有意义的错误代码或错误值,因此本文档中定义的扩展不适用于该消息。

1.1. Conventions
1.1. 习俗

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照RFC 2119[RFC2119]中所述进行解释。

2. User-Defined Error
2. 用户定义错误

A new Error Code is defined for use in an ERROR_SPEC object.

定义了一个新的错误代码,用于错误规范对象。

Error Code = 33: User Error Spec

错误代码=33:用户错误规范

This error code is used to signal the presence of a USER_ERROR_SPEC. One Error Value is defined as follows.

此错误代码用于表示存在用户错误规范。一个错误值定义如下。

Error Value 0 = Further details in User Error Spec

错误值0=用户错误规范中的详细信息

Further error values may be defined in future specifications.

进一步的错误值可在将来的规范中定义。

When sending this error code, a USER_ERROR_SPEC object MUST be included in the PathErr, ResvErr, or Notify message.

发送此错误代码时,PathErr、ResvErr或Notify消息中必须包含USER\u error\u SPEC对象。

3. USER_ERROR_SPEC Class
3. 用户\u错误\u规范类

A new RSVP object class called USER_ERROR_SPEC is defined. To support backwards compatibility, its class number is in the range 192-247. As defined in [RFC2205], implementations that do not understand such an object will forward it unmodified.

定义了一个名为USER\u ERROR\u SPEC的新RSVP对象类。为了支持向后兼容性,其类号在192-247之间。正如[RFC2205]中所定义的,不理解此类对象的实现将不经修改地转发它。

   USER_ERROR_SPEC object: Class = 194, C-Type = 1
        
   USER_ERROR_SPEC object: Class = 194, C-Type = 1
        
       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +---------------+---------------+---------------+---------------+
      |                       Enterprise Number                       |
      +---------------+---------------+---------------+---------------+
      |    Sub Org    |  Err Desc Len |        User Error Value       |
      +---------------+---------------+---------------+---------------+
      |                                                               |
      ~                       Error Description                       ~
      |                                                               |
      +---------------+---------------+---------------+---------------+
      |                                                               |
      ~                     User-Defined Subobjects                   ~
      |                                                               |
      +---------------+---------------+---------------+---------------+
        
       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +---------------+---------------+---------------+---------------+
      |                       Enterprise Number                       |
      +---------------+---------------+---------------+---------------+
      |    Sub Org    |  Err Desc Len |        User Error Value       |
      +---------------+---------------+---------------+---------------+
      |                                                               |
      ~                       Error Description                       ~
      |                                                               |
      +---------------+---------------+---------------+---------------+
      |                                                               |
      ~                     User-Defined Subobjects                   ~
      |                                                               |
      +---------------+---------------+---------------+---------------+
        

Enterprise Number

企业编号

A unique identifier of an organization encoded as a 32-bit integer. Enterprise Numbers (sometimes known as Private Enterprise Numbers) are assigned by IANA and managed on a first come first served basis through the IANA registry named "Enterprise Numbers" [RFC2578].

组织的唯一标识符,编码为32位整数。企业编号(有时称为私营企业编号)由IANA分配,并通过名为“企业编号”的IANA注册中心按照先到先得的原则进行管理[RFC2578]。

Sub Org

子组织

A unique identifier of an organization encoded as an 8-bit integer. An organization MAY use this field to create independent Error Value spaces. This is intended to facilitate teams that are doing parallel development. If independent spaces are not required, this field SHOULD be set to zero.

编码为8位整数的组织的唯一标识符。组织可以使用此字段创建独立的错误值空间。这是为了方便进行并行开发的团队。如果不需要独立空格,则此字段应设置为零。

Err Desc Len

错误描述

The length of the error description in the Error Description field in bytes excluding any padding. Zero is a valid length if no error description is supplied.

错误描述字段中错误描述的长度,以字节为单位,不包括任何填充。如果未提供错误说明,则零为有效长度。

User Error Value

用户错误值

A 16-bit integer. The meaning is specified by the (sub-)organization indicated by the Enterprise Number and Sub Org fields.

16位整数。含义由“企业编号”和“子组织”字段指示的(子)组织指定。

Error Description

错误描述

A string of characters padded with nulls (0x00) to a multiple of 4 bytes. According to the guidance in [RFC2277], this string MUST use UTF-8/Net-Unicode encoding [RFC5198]. Furthermore, it is RECOMMENDED that implementations limit the strings that they generate to single-line printable US-ASCII [ASCII] whenever feasible to improve the likelihood of easy use by the recipient.

用空字符(0x00)填充到4字节倍数的字符串。根据[RFC2277]中的指导,此字符串必须使用UTF-8/Net Unicode编码[RFC5198]。此外,建议在可行的情况下,实现将其生成的字符串限制为单行可打印的US-ASCII[ASCII],以提高收件人易于使用的可能性。

If the Err Desc Len is zero, then no bytes are supplied.

如果Err Desc Len为零,则不提供字节。

Note that the content of this field is implementation-specific. It is typically printable, but might not be shown to all users in all implementations (because of character set choice). Therefore, the content of the field SHOULD be limited to supplementary information and SHOULD NOT contain information critical to operating the network. Critical information is present in the User Error Value field.

请注意,此字段的内容是特定于实现的。它通常是可打印的,但可能不会在所有实现中向所有用户显示(因为选择了字符集)。因此,该字段的内容应限于补充信息,不应包含对网络运营至关重要的信息。关键信息出现在用户错误值字段中。

User-Defined Subobjects

用户定义的子对象

User-defined subobjects MAY be included. The generic format of subobjects is specified in Section 3.1. The semantics of a subobject is indicated by the Type field, but the semantics, format, and contents of the Value field are specified by the (sub-)organization indicated by the Enterprise Number and Sub Org fields of this object.

可以包括用户定义的子对象。第3.1节规定了子对象的通用格式。子对象的语义由类型字段指示,但值字段的语义、格式和内容由该对象的企业编号和子组织字段指示的(子)组织指定。

3.1. Subobjects
3.1. 子对象

Each subobject is encoded as a TLV in the following format:

每个子对象按以下格式编码为TLV:

       0                   1
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+
      |     Type      |     Length    | (Subobject contents)          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+
        
       0                   1
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+
      |     Type      |     Length    | (Subobject contents)          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+
        

Type

类型

An 8-bit number assigned by the (sub-)organization indicated by the Enterprise Number and Sub Org fields of the USER_ERROR_SPEC object.

由(子)组织分配的8位编号,由用户\u错误\u规范对象的企业编号和子组织字段指示。

Length

The Length contains the total length of the subobject in bytes, including the Type and Length fields. The Length MUST be at least 4, and MUST be a multiple of 4.

长度包含子对象的总长度(字节),包括类型和长度字段。长度必须至少为4,并且必须是4的倍数。

4. Procedures for Using the User Error Spec
4. 使用用户错误规范的步骤
4.1. Procedures for Sending the User Error Spec
4.1. 发送用户错误规范的过程

A USER_ERROR_SPEC object MAY be included in any PathErr, ResvErr, or Notify message for any defined error code. The Enterprise Number MUST be a valid value assigned by IANA from the "Enterprise Numbers" registry.

用户错误规范对象可能包含在任何已定义错误代码的PathErr、ResvErr或Notify消息中。企业编号必须是IANA从“企业编号”注册表分配的有效值。

As specified in [RFC2205] and [RFC3473], an ERROR_SPEC object with a valid error code MUST be included in all PathErr, ResvErr, and Notify messages. This rule is not changed by these procedures even when a USER_ERROR_SPEC object is included. If no other error code applies, the Error Code in the ERROR_SPEC object MUST be set to "User Error Spec" as defined in Section 2 of this document. When the Error Code in the ERROR_SPEC object is set to "User Error Spec", the Error Value sub-code SHOULD be set to "Further details in User Error Spec" as defined in Section 2, but further Error Value sub-codes may be defined in future specifications.

如[RFC2205]和[RFC3473]中所述,所有PathErr、ResvErr和Notify消息中必须包含带有有效错误代码的ERROR_SPEC对象。即使包含用户错误规范对象,这些过程也不会更改此规则。如果没有其他错误代码适用,则必须将error_SPEC对象中的错误代码设置为本文档第2节中定义的“用户错误规范”。当Error_SPEC对象中的错误代码设置为“用户错误规范”时,错误值子代码应设置为第2节中定义的“用户错误规范中的进一步详细信息”,但未来规范中可能会定义进一步的错误值子代码。

4.2. Procedures for Receiving the User Error Spec
4.2. 接收用户错误规范的过程

It is RECOMMENDED that implementations that receive a PathErr, ResvErr, or Notify message carrying a USER_ERROR_SPEC object log (at a minimum) the Enterprise Number, Sub-organization, User Error Value, and Error Description. Note that the character set used for the Error Description may mean that it might not be suitable for display of logging in all systems. Implementations capable of interpreting the contents of the USER_ERROR_SPEC object SHOULD take further action based on the reported error.

建议接收带有用户\u错误\u规范对象日志的PathErr、ResvErr或Notify消息的实现(至少)提供企业编号、子组织、用户错误值和错误描述。请注意,用于错误描述的字符集可能意味着它可能不适合在所有系统中显示日志记录。能够解释USER\u ERROR\u SPEC对象内容的实现应该根据报告的错误采取进一步的操作。

Implementations that are not UTF-8 capable and that receive a USER_ERROR_SPEC object SHOULD handle the Error Description according to the procedures set out in [RFC5137].

不支持UTF-8且接收用户错误规范对象的实现应根据[RFC5137]中规定的程序处理错误描述。

If a message is received containing an ERROR_SPEC object using the "User Error Spec" error code, but not containing a USER_ERROR_SPEC object, the message MUST be treated as malformed and handled according to [RFC2205].

如果收到的消息包含使用“用户错误规范”错误代码的错误规范对象,但不包含用户错误规范对象,则必须将该消息视为格式错误,并根据[RFC2205]进行处理。

Implementations SHOULD ignore repeated occurrences of USER_ERROR_SPEC objects, and SHOULD forward them unchanged on any messages that they forward. This provides for forward compatibility.

实现应该忽略重复出现的USER\u ERROR\u SPEC对象,并且应该在转发的任何消息中不加更改地转发它们。这提供了向前兼容性。

Implementations receiving a USER_ERROR_SPEC object on some message other than a PathErr, ResvErr, or Notify message MUST treat the error as a malformed message and process according to [RFC2205].

在某些消息(PathErr、ResvErr或Notify消息除外)上接收USER_ERROR_SPEC对象的实现必须将该错误视为格式错误的消息,并根据[RFC2205]进行处理。

5. IANA Considerations
5. IANA考虑
5.1. RSVP Error Codes
5.1. RSVP错误代码

This document makes the following assignments from the RSVP Error Codes and Globally-Defined Error Value Sub-Codes registry:

本文档从RSVP错误代码和全局定义的错误值子代码注册表中进行以下分配:

Error Code Meaning

错误代码含义

33 User Error Spec

33用户错误规范

One Error Value sub-code is defined for use with this Error Code as follows:

一个错误值子代码定义用于此错误代码,如下所示:

         0 = Further details in User Error Spec
        
         0 = Further details in User Error Spec
        
5.2. RSVP Objects
5.2. RSVP对象

This document makes the following assignments from the RSVP Class Names, Class Numbers, and Class Types registry:

本文档从RSVP类名、类号和类类型注册表中进行以下赋值:

Number Space Value Name

数字空间值名称

Class Numbers 194 USER_ERROR_SPEC

类别编号194用户错误规格

Class Type 1 User-Defined Error

类类型1用户定义的错误

6. Security Considerations
6. 安全考虑

This document makes no changes to the basic message exchanges of [RFC2205] and [RFC3473]. It will result in a small increase in the number of error messages sent in cases where messages were previously silently dropped due to the lack of an appropriate error code.

本文件不对[RFC2205]和[RFC3473]的基本信息交换进行任何更改。如果以前由于缺少适当的错误代码而悄悄删除了消息,则会导致发送的错误消息数量略有增加。

The mechanisms defined in this document may be used by implementations to report additional error conditions and information arising from security issues and attacks on the RSVP network.

本文档中定义的机制可供实现使用,以报告因RSVP网络上的安全问题和攻击而产生的其他错误条件和信息。

Note that the use of a character string that will be displayed or logged opens the potential for certain security attacks through the use of overruns or embedded control characters. Implementations SHOULD take precautions against overruns, and (especially where the full character set of [RFC5198] is not supported, SHOULD use the procedures set out in [RFC5137] to handle unexpected or unknown control characters.

请注意,使用将显示或记录的字符串可能会通过使用溢出或嵌入的控制字符而引发某些安全攻击。实现应采取预防措施防止溢出,并且(特别是在不支持[RFC5198]的完整字符集的情况下)应使用[RFC5137]中规定的程序来处理意外或未知的控制字符。

7. Acknowledgments
7. 致谢

The authors would like to thank Elisheva Halevy for motivating this document. Thanks to Tom Nadeau, Magnus Westerlund, Hannes Tschofenig, Bruce Davie, Jukka Manner, Francois Le Faucheur, Lars Eggert, and Tom Petch for their review and comments.

作者要感谢Elisheva Halevy对本文件的激励。感谢Tom Nadeau、Magnus Westerlund、Hannes Tschofenig、Bruce Davie、Jukka Manway、Francois Le Faucheur、Lars Eggert和Tom Petch的评论和评论。

8. References
8. 工具书类
8.1. Normative References
8.1. 规范性引用文件

[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月。

[RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification", RFC 2205, September 1997.

[RFC2205]Braden,R.,Ed.,Zhang,L.,Berson,S.,Herzog,S.,和S.Jamin,“资源预留协议(RSVP)——版本1功能规范”,RFC 22052997年9月。

[RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Resource ReserVation Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC 3473, January 2003.

[RFC3473]Berger,L.,Ed.“通用多协议标签交换(GMPLS)信令资源预留协议流量工程(RSVP-TE)扩展”,RFC 3473,2003年1月。

[RFC5137] Klensin, J., "ASCII Escaping of Unicode Characters", BCP 137, RFC 5137, February 2008.

[RFC5137]Klensin,J.,“Unicode字符的ASCII转义”,BCP 137,RFC 5137,2008年2月。

[RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network Interchange", RFC 5198, March 2008.

[RFC5198]Klensin,J.和M.Padlipsky,“网络交换的Unicode格式”,RFC 51982008年3月。

[ASCII] American National Standards Institute, "USA Code for Information Interchange", ANSI X3.4, 1968.

[ASCII]美国国家标准协会,“美国信息交换代码”,ANSI X3.42068。

8.2. Informative References
8.2. 资料性引用

[RFC2277] Alvestrand, H., "IETF Policy on Character Sets and Languages", BCP 18, RFC 2277, January 1998.

[RFC2277]Alvestrand,H.,“IETF字符集和语言政策”,BCP 18,RFC 2277,1998年1月。

[RFC2578] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.

[RFC2578]McCloghrie,K.,Perkins,D.,和J.Schoenwaeld,“管理信息的结构版本2(SMIv2)”,STD 58,RFC 2578,1999年4月。

Authors' Addresses

作者地址

George Swallow Cisco Systems, Inc. EMail: swallow@cisco.com

George Swallow Cisco Systems,Inc.电子邮件:swallow@cisco.com

Adrian Farrel Old Dog Consulting EMail: adrian@olddog.co.uk

Adrian Farrel老狗咨询电子邮件:adrian@olddog.co.uk

Full Copyright Statement

完整版权声明

Copyright (C) The IETF Trust (2008).

版权所有(C)IETF信托基金(2008年)。

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

本文件受BCP 78中包含的权利、许可和限制的约束,除其中规定外,作者保留其所有权利。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文件及其包含的信息以“原样”为基础提供,贡献者、他/她所代表或赞助的组织(如有)、互联网协会、IETF信托基金和互联网工程任务组不承担任何明示或暗示的担保,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Intellectual Property

知识产权

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

IETF对可能声称与本文件所述技术的实施或使用有关的任何知识产权或其他权利的有效性或范围,或此类权利下的任何许可可能或可能不可用的程度,不采取任何立场;它也不表示它已作出任何独立努力来确定任何此类权利。有关RFC文件中权利的程序信息,请参见BCP 78和BCP 79。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

向IETF秘书处披露的知识产权副本和任何许可证保证,或本规范实施者或用户试图获得使用此类专有权利的一般许可证或许可的结果,可从IETF在线知识产权存储库获取,网址为http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

IETF邀请任何相关方提请其注意任何版权、专利或专利申请,或其他可能涵盖实施本标准所需技术的专有权利。请将信息发送至IETF的IETF-ipr@ietf.org.