draft-ietf-tsvwg-rsvp-user-error-spec-00.txt   draft-ietf-tsvwg-rsvp-user-error-spec-01.txt 
Network Working Group George Swallow Network Working Group George Swallow
Internet Draft Cisco Systems, Inc. Internet Draft Cisco Systems, Inc.
Category: Standards Track Category: Standards Track
Expiration Date: October 2007 Expiration Date: October 2007
Adrian Farrel Adrian Farrel
Old Dog Consulting Old Dog Consulting
User Defined Errors for RSVP User-Defined Errors for RSVP
draft-ietf-tsvwg-rsvp-user-error-spec-00.txt draft-ietf-tsvwg-rsvp-user-error-spec-01.txt
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
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
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/1id-abstracts.html 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.
Abstract Abstract
The Resource ReserVation Protocol (RSVP) defines an ERROR_SPEC object The Resource ReserVation Protocol (RSVP) defines an ERROR_SPEC object
for communicating errors. That object has a defined format that for communicating errors. That object has a defined format that
permits the definition of 256 error codes. As RSVP has been permits the definition of 256 error codes. As RSVP has been
developed and extended, the convention has been to be conservative in developed and extended, the convention has been to be conservative in
defining new error codes. Further, no provision for user defined defining new error codes. Further, no provision for user-defined
errors exists in RSVP. errors exists in RSVP.
This document defines a new RSVP object to permit user defined error
values to be communicated.
Contents Contents
1 Introduction .............................................. 4 1 Introduction .............................................. 3
1.1 Conventions ............................................... 4 1.1 Conventions ............................................... 3
2 User Defined Error ........................................ 4 2 User-Defined Error ........................................ 3
3 USER_ERROR_SPEC Class ..................................... 5 3 USER_ERROR_SPEC Class ..................................... 4
3.1 Subobjects ................................................ 6 3.1 Subobjects ................................................ 5
4 Procedures for using the User Error Spec .................. 7 4 Procedures for Using the User Error Spec .................. 6
4.1 Procedures for sending the User Error Spec ................ 7 4.1 Procedures for Sending the User Error Spec ................ 6
4.2 Procedures for receiving the User Error Spec .............. 7 4.2 Procedures for Receiving the User Error Spec .............. 6
5 IANA Considerations ....................................... 7 5 IANA Considerations ....................................... 6
6 Security Considerations ................................... 8 6 Security Considerations ................................... 7
7 Acknowledgments ........................................... 8 7 Acknowledgments ........................................... 7
8 Normative References ...................................... 8 8 Normative References ...................................... 7
9 Authors' Addresses ........................................ 9 9 Authors' Addresses ........................................ 8
1. Introduction 1. Introduction
The Resource ReserVation Protocol (RSVP) [RFC2205] defines an The Resource ReserVation Protocol (RSVP) [RFC2205] defines an
ERROR_SPEC object for communicating errors. That object has a ERROR_SPEC object for communicating errors. That object has a
defined format that permits the definition of 256 error codes. As defined format that permits the definition of 256 error codes. As
RSVP has been developed and extended, the convention has been to be RSVP has been developed and extended, the convention has been to be
conservative in communicating errors. Further no provision for user conservative in communicating errors. Further no provision for user
defined errors exists in RSVP. defined errors exists in RSVP.
When developing extensions to RSVP, it is often useful for those When developing extensions to RSVP, it is often useful for those
implementing to define error messages to aid both in the initial implementing to define error messages to aid both in the initial
debugging and in testing against older versions or other implementa- debugging and in testing against older versions or other
tions. implementations.
This document defines a new RSVP object to permit user defined errors This document defines a new RSVP object to permit user-defined errors
to be communicated. This will enable organizations to define errors to be communicated. This will enable organizations to define errors
which they can use for internal development. These error values which they can use for internal development. These error values
could also be shared with the community at large to aid in promoting could also be shared with the community at large to aid in promoting
interoperability between diverse implementations. interoperability between diverse implementations.
RSVP PathErr and ResvErr messages require the presence of an RSVP PathErr and ResvErr messages require the presence of an
ERROR_SPEC object. [RFC3473] defines the Notify message that also ERROR_SPEC object ([RFC2205]). [RFC3473] defines the Notify message
requires the presence of an ERROR_SPEC object. In order to not that also requires the presence of an ERROR_SPEC object. In order to
change the mandatory contents of these messages, this document not change the mandatory contents of these messages, this document
defines a new error code value that indicates that the new object is defines a new error code value that indicates that the new object is
present and carries a user defined error code. present and carries a user-defined error code.
1.1. Conventions 1.1. Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [KEYWORDS]. document are to be interpreted as described in RFC 2119 [RFC2119].
2. User Defined Error 2. User-Defined Error
A new Error Code is defined for use in an ERROR_SPEC object.
Error Code = <tba>: User Error Spec Error Code = <tba>: User Error Spec
This error code is used to signal the presence of a This error code is used to signal the presence of a
USER_ERROR_SPEC. No subcodes are defined. USER_ERROR_SPEC. No subcodes are defined.
When sending this error code, a USER_ERROR_SPEC object MUST be When sending this error code, a USER_ERROR_SPEC object MUST be
included in the PathErr, ResvErr or Notify message. included in the PathErr, ResvErr, or Notify message.
[Editor's note: <tba> = to be assigned by IANA] [RFC Editor's note: <tba> = to be assigned by IANA. Please replace <tba>
with the number assigned by IANA and remove this note.]
3. USER_ERROR_SPEC Class 3. USER_ERROR_SPEC Class
A new RSVP object class is defined called the the USER_ERROR_SPEC A new RSVP object class is defined called the the USER_ERROR_SPEC
Class. The class number is taken from the range 192 - 247. This is Class. The class number is taken from the range 192 - 247. This is
done for backward compatibility. Existing implementations will done for backward compatibility. Existing implementations will
ignore the object and pass it along. ignore the object and pass it along according to the rules of
[RFC2205].
USER_ERROR_SPEC object: Class = <tba>, C-Type = 1 USER_ERROR_SPEC object: Class = <tba>, C-Type = 1
[RFC Editor's note: <tba> = to be assigned by IANA. Please replace <tba>
with the number assigned by IANA and remove this note.]
0 1 2 3 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 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 | | Enterprise Number |
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
| Sub Org | Err Desc Len | User Error Value | | Sub Org | Err Desc Len | User Error Value |
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
| | | |
. Error Description . ~ Error Description ~
. .
| | | |
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
| | | |
. User Defined Subobjects . ~ User-Defined Subobjects ~
. .
| | | |
+---------------+---------------+---------------+---------------+ +---------------+---------------+---------------+---------------+
Enterprise Number Enterprise Number
A unique identifier of an organization encoded as a 32-bit A unique identifier of an organization encoded as a 32-bit
integer. Enterprise Numbers are assigned by IANA. integer. Enterprise Numbers are assigned by IANA.
Sub-organization Sub Org
A unique identifier of an organization encoded as a 8-bit A unique identifier of an organization encoded as an 8-bit
integer. An organization MAY use this field to create integer. An organization MAY use this field to create
independent Error Value spaces. This is intended to independent Error Value spaces. This is intended to
facilitate teams which are doing parallel development. If facilitate teams which are doing parallel development. If
independent spaces are not required, this field SHOULD be independent spaces are not required, this field SHOULD be
set to zero. set to zero.
Err Desc Len Err Desc Len
The length of the error description in the Error Description The length of the error description in the Error Description
field in buyes excluding any padding. field in bytes excluding any padding.
User Error Value User Error Value
A 16-bit integer The format and contents are specified by A 16-bit integer. The format and contents are specified by
the (sub-)organization indicated by the Enterprise Number the (sub-)organization indicated by the Enterprise Number
and Sub Org fields. and Sub Org fields.
Error Description Error Description
A string of characters in US-ASCII padded with nulls (0x00) A string of characters in US-ASCII padded with nulls (0x00)
to a multiple of 4 bytes. While no format is required, it to a multiple of 4 bytes. While no format is required, it
is RECOMMENDED that organizations use a published schema for is RECOMMENDED that organizations use a published schema for
this string to promote consistent decoding. this string to promote consistent decoding.
User Defined Subobjects User-Defined Subobjects
Optionally, user defined subobjects may be included. The User-defined subobjects MAY be included. The generic format of
semantics of the Type and the format and contents of the subobjects is specified in Section 3.1. The semantics of a
value are specified by the (sub-) organization indicated subobject is indicated by the Type field, but the semantics,
by the Enterprise Number and Sub Org fields. 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. Subobjects 3.1. Subobjects
Each subobject is encoded as a TLV in the following format: Each subobject is encoded as a TLV in the following format:
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+
| Type | Length | (Subobject contents) | | Type | Length | (Subobject contents) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------//----------------+
Type Type
An 8-bit number assigned by the the (sub-) organization An 8-bit number assigned by the the (sub-) organization
indicated by the Enterprise Number and Sub Org fields. indicated by the Enterprise Number and Sub Org fields of the
USER_ERROR_SPEC object.
Length Length
The Length contains the total length of the Subobject contents The Length contains the total length of the subobject in bytes,
in bytes, including the L, Type and Length fields. The Length including the L, Type and Length fields. The Length MUST be at
MUST be at least 4, and MUST be a multiple of 4. least 4, and MUST be a multiple of 4.
4. Procedures for using the User Error Spec 4. Procedures for Using the User Error Spec
4.1. Procedures for sending the User Error Spec 4.1. Procedures for Sending the User Error Spec
A USER_ERROR_SPEC object MAY be included in any PathErr, ResvErr or A USER_ERROR_SPEC object MAY be included in any PathErr, ResvErr, or
Notify message. The Enterprise Number MUST be a valid value assigned Notify message. The Enterprise Number MUST be a valid value assigned
by IANA. As specified in [RFC2205] and [RFC3473], an ERROR_SPEC by IANA.
object with a valid error code MUST be included in those messages.
If no other error code applies, the error code MUST be set to <tba>,
Unspecified Error.
4.2. Procedures for receiving the User Error Spec 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.
It is RECOMMENDED that implementations at a minimum log the Enter- 4.2. Procedures for Receiving the User Error Spec
prise Number Sub-organization, User Error Value, and Error Descrip-
tion. Implementation capable of interpreting the contents of the It is RECOMMENDED that implementations that receive a PathErr,
USER_ERROR_SPEC object SHOULD take appropriate action. ResvErr, or Notify message carrying a USER_ERROR_SPEC object at a
minimum log the Enterprise Number, Sub-organization, User Error
Value, and Error Description. Implementation capable of interpreting
the contents of the USER_ERROR_SPEC object SHOULD take appropriate
action.
If a message is received containing an ERROR_SPEC object using the If a message is received containing an ERROR_SPEC object using the
"User Error Spec" error code, but not containing a USER_ERROR_SPEC "User Error Spec" error code, but not containing a USER_ERROR_SPEC
object, the message SHOULD be treated as malformed and handled object, the message SHOULD be treated as malformed and handled
according to [RFC2205]. according to [RFC2205].
Implementations SHOULD ignore repeated occurences of USER_ERROR_SPEC Implementations SHOULD ignore repeated occurences of USER_ERROR_SPEC
objects. objects, and SHOULD forward them unchanged on any messages that they
forward.
Implementations receiving a USER_ERROR_SPEC object on some message
other than a PathErr, ResvErr, or Notify message SHOULD treat the
error as a malformed message and process according to [RFC2205].
5. IANA Considerations 5. IANA Considerations
This document makes the following assignments from the RSVP Error This document makes the following assignments from the RSVP Error
Codes and Globally-Defined Error Value Sub-Codes registry (pending Codes and Globally-Defined Error Value Sub-Codes registry (pending
IANA action): IANA action):
Value Name Value Name
<tba> User Error Spec <tba> User Error Spec
skipping to change at page 7, line 40 skipping to change at page 7, line 4
5. IANA Considerations 5. IANA Considerations
This document makes the following assignments from the RSVP Error This document makes the following assignments from the RSVP Error
Codes and Globally-Defined Error Value Sub-Codes registry (pending Codes and Globally-Defined Error Value Sub-Codes registry (pending
IANA action): IANA action):
Value Name Value Name
<tba> User Error Spec <tba> User Error Spec
This document makes the following assignments from the RSVP Class This document makes the following assignments from the RSVP Class
Names, Class Numbers, and Class Types registry (pending IANA action): Names, Class Numbers, and Class Types registry (pending IANA action):
Number Space Value Name Number Space Value Name
Class Numbers <tba>* User Error Spec Class Numbers <tba>* User Error Spec
Class Type 1 User Defined Error Class Type 1 User-Defined Error
* Assignment is requested from the range 192 through 247 * Assignment is requested from the range 192 through 247
6. Security Considerations 6. Security Considerations
This document makes no changes to the basic message exchanges of This document makes no changes to the basic message exchanges of
[RFC2205] and [RFC3473]. It will result in a small increase in the [RFC2205] and [RFC3473]. It will result in a small increase in the
number of error messages sent in cases where messages were silently number of error messages sent in cases where messages were previously
dropped due to the lack of an appropriate error code. silently dropped due to the lack of an appropriate error code.
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.
7. Acknowledgments 7. Acknowledgments
The authors would like to thank Elisheva Halevy for motivating this The authors would like to thank Elisheva Halevy for motivating this
document and Tom Nadeau for his review and comments. document and Tom Nadeau for his review and comments.
8. Normative References 8. Normative References
[RFC2205] Braden, R., Zhang, L., Berson, S., Herzog, S., and S. Jamin, [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
"Resource ReSerVation Protocol (RSVP) -- Version 1 Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2205] Braden, R., Zhang, L., Berson, S., Herzog, S., and S.
Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
Functional Specification", RFC 2205, September 1997. Functional Specification", RFC 2205, September 1997.
[RFC3473] Berger, L., "Generalized Multi-Protocol Label Switching [RFC3473] Berger, L., "Generalized Multi-Protocol Label Switching
(GMPLS) Signaling Resource ReserVation Protocol-Traffic (GMPLS) Signaling Resource ReserVation Protocol-Traffic
Engineering (RSVP-TE) Extensions", RFC 3473, January 2003. Engineering (RSVP-TE) Extensions", RFC 3473, January 2003.
[KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
9. Authors' Addresses 9. Authors' Addresses
George Swallow George Swallow
Cisco Systems, Inc. Cisco Systems, Inc.
Email: swallow@cisco.com EMail: swallow@cisco.com
Adrian Farrel Adrian Farrel
Old Dog Consulting Old Dog Consulting
EMail: adrian@olddog.co.uk EMail: adrian@olddog.co.uk
Intellectual Property Intellectual Property
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights 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 might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79. found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any assur- Copies of IPR disclosures made to the IETF Secretariat and any
ances of licenses to be made available, or the result of an attempt assurances of licenses to be made available, or the result of an
made to obtain a general license or permission for the use of such attempt made to obtain a general license or permission for the use of
proprietary rights by implementers or users of this specification can such proprietary rights by implementers or users of this
be obtained from the IETF on-line IPR repository at specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr. http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf- this standard. Please address the information to the IETF at ietf-
ipr@ietf.org. ipr@ietf.org.
Full Copyright Notice Full Copyright Notice
 End of changes. 41 change blocks. 
78 lines changed or deleted 97 lines changed or added

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