User-Defined Errors for RSVP
Extracted elements (25)
Enterprise Numbers are used as the organizational identifier to leverage an existing IANA-managed namespace, allowing organizations to define private error spaces without central RSVP error code allocation.
The document requires a valid ERROR_SPEC object to always accompany USER_ERROR_SPEC in order to not change the mandatory contents of PathErr, ResvErr, and Notify messages, maintaining compliance with RFC 2205 and RFC 3473.
The USER_ERROR_SPEC class number is in the range 192-247 so that implementations not understanding the object will forward it unmodified per RFC 2205, preserving backward compatibility without altering existing RSVP message processing.
The ResvConf message also carries an ERROR_SPEC object but does not carry meaningful Error Codes or Error Values; the USER_ERROR_SPEC extensions are explicitly not applicable to that message.
An ERROR_SPEC object with a valid error code MUST be included in all PathErr, ResvErr, and Notify messages even when a USER_ERROR_SPEC object is present; if no other error code applies, Error Code MUST be set to 'User Error Spec'.
If a message is received containing an ERROR_SPEC with 'User Error Spec' error code but no USER_ERROR_SPEC object, the message MUST be treated as malformed and handled per RFC 2205.
Implementations capable of interpreting USER_ERROR_SPEC SHOULD take further action based on the reported error; at minimum, implementations SHOULD log the Enterprise Number, Sub-organization, User Error Value, and Error Description.
Implementations receiving a USER_ERROR_SPEC object on a message other than PathErr, ResvErr, or Notify MUST treat it as a malformed message and process per RFC 2205.
Implementations SHOULD ignore repeated occurrences of USER_ERROR_SPEC objects and SHOULD forward them unchanged on any messages they forward, providing forward compatibility.
Implementations that are not UTF-8 capable and receive a USER_ERROR_SPEC object SHOULD handle the Error Description according to RFC 5137 procedures for unexpected or unknown characters.
The Enterprise Number in USER_ERROR_SPEC MUST be a valid value assigned by IANA from the 'Enterprise Numbers' registry.
The Error Description content SHOULD be limited to supplementary information and SHOULD NOT contain information critical to operating the network; critical information belongs in the User Error Value field.
The Error Description string MUST use UTF-8/Net-Unicode encoding (RFC 5198); it is RECOMMENDED that implementations limit generated strings to single-line printable US-ASCII whenever feasible.
The Sub Org field SHOULD be set to zero if independent error value spaces are not required.
The subobject Length MUST be at least 4 and MUST be a multiple of 4.
When sending Error Code 33 (User Error Spec), a USER_ERROR_SPEC object MUST be included in the PathErr, ResvErr, or Notify message.
Error Code 33 ('User Error Spec') is defined for use in the ERROR_SPEC object to signal the presence of a USER_ERROR_SPEC object, with Error Value 0 meaning 'Further details in User Error Spec'.
The Sub Org field (8-bit) enables an organization to create independent error value spaces, intended to facilitate parallel development teams within a single enterprise.
The USER_ERROR_SPEC object (Class 194) carries organization-specific error information including an Enterprise Number for vendor identification, an optional Sub Org field for team-level namespacing, a 16-bit User Error Value, a UTF-8 Error Description, and optional subobjects.
Class Number 194 (USER_ERROR_SPEC) and Class Type 1 ('User-Defined Error') are assigned in the RSVP Class Names, Class Numbers, and Class Types registry.
Error Code 33 ('User Error Spec') and Error Value sub-code 0 ('Further details in User Error Spec') are assigned in the RSVP Error Codes and Globally-Defined Error Value Sub-Codes registry.
The mechanisms defined in this document may be used to report additional error conditions and information arising from security issues and attacks on the RSVP network, providing a vehicle for communicating security-related diagnostics.
Using a character string displayed or logged opens the potential for security attacks via overruns or embedded control characters; implementations SHOULD take precautions against overruns and SHOULD use RFC 5137 procedures to handle unexpected control characters.
Subobjects within USER_ERROR_SPEC use a TLV format with an 8-bit Type, an 8-bit Length (total including Type and Length, minimum 4, multiple of 4), and variable contents defined by the originating organization.
USER_ERROR_SPEC object (Class 194, C-Type 1) encodes: a 32-bit Enterprise Number, an 8-bit Sub Org, an 8-bit Err Desc Len, a 16-bit User Error Value, a variable-length null-padded Error Description (multiple of 4 bytes), and optional user-defined subobjects.