#[repr(u64)]pub enum SessionErrorCode {
Show 21 variants
NoError = 0,
InternalError = 1,
Unauthorized = 2,
ProtocolViolation = 3,
InvalidRequestId = 4,
DuplicateTrackAlias = 5,
KeyValueFormattingError = 6,
TooManyRequests = 7,
InvalidPath = 8,
MalformedPath = 9,
GoawayTimeout = 16,
ControlMessageTimeout = 17,
DataStreamTimeout = 18,
AuthTokenCacheOverflow = 19,
DuplicateAuthTokenAlias = 20,
VersionNegotiationFailed = 21,
MalformedAuthToken = 22,
UnknownAuthTokenAlias = 23,
ExpiredAuthToken = 24,
InvalidAuthority = 25,
MalformedAuthority = 26,
}Expand description
Session termination error codes, from the “Session Termination Error Codes” registry in draft-ietf-moq-transport-14 Section 13.1.1. Every row cites Section 3.4 (Termination), the source of the descriptions below.
Carried in the QUIC CONNECTION_CLOSE frame or the WebTransport CLOSE_WEBTRANSPORT_SESSION capsule. The draft assigns 0x0 through 0x9 and 0x10 through 0x1A; 0xA through 0xF are unassigned.
Variants§
NoError = 0
NO_ERROR — The session is being terminated without an error.
InternalError = 1
INTERNAL_ERROR — An implementation specific error occurred.
UNAUTHORIZED — The client is not authorized to establish a session.
ProtocolViolation = 3
PROTOCOL_VIOLATION — The remote endpoint performed an action that was
disallowed by the specification.
InvalidRequestId = 4
INVALID_REQUEST_ID — The session was closed because the endpoint used a
Request ID that was smaller than or equal to a previously received
request ID, or the least-significant bit of the request ID was incorrect
for the endpoint.
This is a monotonicity and parity rule, not a lookup failure: the code does not mean the Request ID was unknown.
DuplicateTrackAlias = 5
DUPLICATE_TRACK_ALIAS — The endpoint attempted to use a Track Alias
that was already in use.
KeyValueFormattingError = 6
KEY_VALUE_FORMATTING_ERROR — The key-value pair has a formatting error.
TooManyRequests = 7
TOO_MANY_REQUESTS — The session was closed because the endpoint used a
Request ID equal to or larger than the current Maximum Request ID.
This is a ceiling on the Request ID value, not a limit on how many requests are outstanding at once.
InvalidPath = 8
INVALID_PATH — The PATH parameter was used by a server, on a
WebTransport session, or the server does not support the path.
Two of those three conditions are about where PATH appeared rather than about the path value itself.
MalformedPath = 9
MALFORMED_PATH — The PATH parameter does not conform to the rules in
Section 9.3.2.2.
GoawayTimeout = 16
GOAWAY_TIMEOUT — The session was closed because the peer took too long
to close the session in response to a GOAWAY (Section 9.4) message. See
session migration (Section 3.5).
ControlMessageTimeout = 17
CONTROL_MESSAGE_TIMEOUT — The session was closed because the peer took
too long to respond to a control message.
DataStreamTimeout = 18
DATA_STREAM_TIMEOUT — The session was closed because the peer took too
long to send data expected on an open Data Stream (see Section 10). This
includes fields of a stream header or an object header within a data
stream. If an endpoint times out waiting for a new object header on an
open subgroup stream, it MAY send a STOP_SENDING on that stream or
terminate the subscription.
AuthTokenCacheOverflow = 19
AUTH_TOKEN_CACHE_OVERFLOW — The Session limit Section 9.3.2.4 of the
size of all registered Authorization tokens has been exceeded.
The limit is on total serialized size, not on the number of tokens. The missing parentheses around the cross-reference are as printed in the draft.
DuplicateAuthTokenAlias = 20
DUPLICATE_AUTH_TOKEN_ALIAS — Authorization Token attempted to register
an Alias that was in use (see Section 9.2.1.1).
VersionNegotiationFailed = 21
VERSION_NEGOTIATION_FAILED — The client didn’t offer a version
supported by the server.
MalformedAuthToken = 22
MALFORMED_AUTH_TOKEN — Invalid Auth Token serialization during
registration (see Section 9.2.1.1).
UnknownAuthTokenAlias = 23
UNKNOWN_AUTH_TOKEN_ALIAS — No registered token found for the provided
Alias (see Section 9.2.1.1).
ExpiredAuthToken = 24
EXPIRED_AUTH_TOKEN — Authorization token has expired
(Section 9.2.1.1).
InvalidAuthority = 25
INVALID_AUTHORITY — The specified AUTHORITY does not correspond to this
server or cannot be used in this context.
MalformedAuthority = 26
MALFORMED_AUTHORITY — The AUTHORITY value is syntactically invalid.
Implementations§
Source§impl SessionErrorCode
impl SessionErrorCode
Sourcepub const ALL: &[SessionErrorCode]
pub const ALL: &[SessionErrorCode]
Every session termination code draft-14 assigns, in ascending wire order.
This is the set Self::from_u64 accepts, written out so that it can
be enumerated: nothing can iterate an enum’s variants, so a caller that
wants the registry has to be handed it. Writing it down is also what
lets a test state its claims about the registry itself rather than about
the range some sweep happens to reach.
Trait Implementations§
Source§impl Clone for SessionErrorCode
impl Clone for SessionErrorCode
Source§fn clone(&self) -> SessionErrorCode
fn clone(&self) -> SessionErrorCode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more