Skip to main content

SessionErrorCode

Enum SessionErrorCode 

Source
#[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 = 2

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

Source

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.

Source

pub fn from_u64(v: u64) -> Option<Self>

Convert a raw u64 to a SessionErrorCode, if valid.

Source

pub fn as_u64(self) -> u64

Return the raw u64 value of this error code.

Trait Implementations§

Source§

impl Clone for SessionErrorCode

Source§

fn clone(&self) -> SessionErrorCode

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for SessionErrorCode

Source§

impl Debug for SessionErrorCode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for SessionErrorCode

Source§

impl PartialEq for SessionErrorCode

Source§

fn eq(&self, other: &SessionErrorCode) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for SessionErrorCode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.