forked from quic-go/quic-go
use IETF QUIC transport error codes
This commit is contained in:
@@ -2,192 +2,22 @@ package qerr
|
||||
|
||||
// The error codes defined by QUIC
|
||||
// Remember to run `go generate ./...` whenever the error codes change.
|
||||
// This uses the Go stringer tool, which can be installed by running
|
||||
// go get -u golang.org/x/tools/cmd/stringer
|
||||
|
||||
//go:generate stringer -type=ErrorCode
|
||||
const (
|
||||
InternalError ErrorCode = 1
|
||||
// There were data frames after the a fin or reset.
|
||||
StreamDataAfterTermination ErrorCode = 2
|
||||
// Control frame is malformed.
|
||||
InvalidPacketHeader ErrorCode = 3
|
||||
// Frame data is malformed.
|
||||
InvalidFrameData ErrorCode = 4
|
||||
// The packet contained no payload.
|
||||
MissingPayload ErrorCode = 48
|
||||
// FEC data is malformed.
|
||||
InvalidFecData ErrorCode = 5
|
||||
// STREAM frame data is malformed.
|
||||
InvalidStreamData ErrorCode = 46
|
||||
// STREAM frame data overlaps with buffered data.
|
||||
OverlappingStreamData ErrorCode = 87
|
||||
// Received STREAM frame data is not encrypted.
|
||||
UnencryptedStreamData ErrorCode = 61
|
||||
// Attempt to send unencrypted STREAM frame.
|
||||
AttemptToSendUnencryptedStreamData ErrorCode = 88
|
||||
// FEC frame data is not encrypted.
|
||||
UnencryptedFecData ErrorCode = 77
|
||||
// RST_STREAM frame data is malformed.
|
||||
InvalidRstStreamData ErrorCode = 6
|
||||
// CONNECTION_CLOSE frame data is malformed.
|
||||
InvalidConnectionCloseData ErrorCode = 7
|
||||
// GOAWAY frame data is malformed.
|
||||
InvalidGoawayData ErrorCode = 8
|
||||
// WINDOW_UPDATE frame data is malformed.
|
||||
InvalidWindowUpdateData ErrorCode = 57
|
||||
// BLOCKED frame data is malformed.
|
||||
InvalidBlockedData ErrorCode = 58
|
||||
// STOP_WAITING frame data is malformed.
|
||||
InvalidStopWaitingData ErrorCode = 60
|
||||
// PATH_CLOSE frame data is malformed.
|
||||
InvalidPathCloseData ErrorCode = 78
|
||||
// ACK frame data is malformed.
|
||||
InvalidAckData ErrorCode = 9
|
||||
|
||||
// Version negotiation packet is malformed.
|
||||
InvalidVersionNegotiationPacket ErrorCode = 10
|
||||
// Public RST packet is malformed.
|
||||
InvalidPublicRstPacket ErrorCode = 11
|
||||
// There was an error decrypting.
|
||||
DecryptionFailure ErrorCode = 12
|
||||
// There was an error encrypting.
|
||||
EncryptionFailure ErrorCode = 13
|
||||
// The packet exceeded kMaxPacketSize.
|
||||
PacketTooLarge ErrorCode = 14
|
||||
// The peer is going away. May be a client or server.
|
||||
PeerGoingAway ErrorCode = 16
|
||||
// A stream ID was invalid.
|
||||
InvalidStreamID ErrorCode = 17
|
||||
// A priority was invalid.
|
||||
InvalidPriority ErrorCode = 49
|
||||
// Too many streams already open.
|
||||
TooManyOpenStreams ErrorCode = 18
|
||||
// The peer created too many available streams.
|
||||
TooManyAvailableStreams ErrorCode = 76
|
||||
// Received public reset for this connection.
|
||||
PublicReset ErrorCode = 19
|
||||
// Invalid protocol version.
|
||||
InvalidVersion ErrorCode = 20
|
||||
|
||||
// The Header ID for a stream was too far from the previous.
|
||||
InvalidHeaderID ErrorCode = 22
|
||||
// Negotiable parameter received during handshake had invalid value.
|
||||
InvalidNegotiatedValue ErrorCode = 23
|
||||
// There was an error decompressing data.
|
||||
DecompressionFailure ErrorCode = 24
|
||||
// The connection timed out due to no network activity.
|
||||
NetworkIdleTimeout ErrorCode = 25
|
||||
// The connection timed out waiting for the handshake to complete.
|
||||
HandshakeTimeout ErrorCode = 67
|
||||
// There was an error encountered migrating addresses.
|
||||
ErrorMigratingAddress ErrorCode = 26
|
||||
// There was an error encountered migrating port only.
|
||||
ErrorMigratingPort ErrorCode = 86
|
||||
// There was an error while writing to the socket.
|
||||
PacketWriteError ErrorCode = 27
|
||||
// There was an error while reading from the socket.
|
||||
PacketReadError ErrorCode = 51
|
||||
// We received a STREAM_FRAME with no data and no fin flag set.
|
||||
EmptyStreamFrameNoFin ErrorCode = 50
|
||||
// We received invalid data on the headers stream.
|
||||
InvalidHeadersStreamData ErrorCode = 56
|
||||
// Invalid data on the headers stream received because of decompression
|
||||
// failure.
|
||||
HeadersStreamDataDecompressFailure ErrorCode = 97
|
||||
// The peer received too much data, violating flow control.
|
||||
FlowControlReceivedTooMuchData ErrorCode = 59
|
||||
// The peer sent too much data, violating flow control.
|
||||
FlowControlSentTooMuchData ErrorCode = 63
|
||||
// The peer received an invalid flow control window.
|
||||
FlowControlInvalidWindow ErrorCode = 64
|
||||
// The connection has been IP pooled into an existing connection.
|
||||
ConnectionIPPooled ErrorCode = 62
|
||||
// The connection has too many outstanding sent packets.
|
||||
TooManyOutstandingSentPackets ErrorCode = 68
|
||||
// The connection has too many outstanding received packets.
|
||||
TooManyOutstandingReceivedPackets ErrorCode = 69
|
||||
// The quic connection has been cancelled.
|
||||
ConnectionCancelled ErrorCode = 70
|
||||
// Disabled QUIC because of high packet loss rate.
|
||||
BadPacketLossRate ErrorCode = 71
|
||||
// Disabled QUIC because of too many PUBLIC_RESETs post handshake.
|
||||
PublicResetsPostHandshake ErrorCode = 73
|
||||
// Disabled QUIC because of too many timeouts with streams open.
|
||||
TimeoutsWithOpenStreams ErrorCode = 74
|
||||
// Closed because we failed to serialize a packet.
|
||||
FailedToSerializePacket ErrorCode = 75
|
||||
// QUIC timed out after too many RTOs.
|
||||
TooManyRtos ErrorCode = 85
|
||||
|
||||
// Crypto errors.
|
||||
|
||||
// Hanshake failed.
|
||||
HandshakeFailed ErrorCode = 28
|
||||
// Handshake message contained out of order tags.
|
||||
CryptoTagsOutOfOrder ErrorCode = 29
|
||||
// Handshake message contained too many entries.
|
||||
CryptoTooManyEntries ErrorCode = 30
|
||||
// Handshake message contained an invalid value length.
|
||||
CryptoInvalidValueLength ErrorCode = 31
|
||||
// A crypto message was received after the handshake was complete.
|
||||
CryptoMessageAfterHandshakeComplete ErrorCode = 32
|
||||
// A crypto message was received with an illegal message tag.
|
||||
InvalidCryptoMessageType ErrorCode = 33
|
||||
// A crypto message was received with an illegal parameter.
|
||||
InvalidCryptoMessageParameter ErrorCode = 34
|
||||
// An invalid channel id signature was supplied.
|
||||
InvalidChannelIDSignature ErrorCode = 52
|
||||
// A crypto message was received with a mandatory parameter missing.
|
||||
CryptoMessageParameterNotFound ErrorCode = 35
|
||||
// A crypto message was received with a parameter that has no overlap
|
||||
// with the local parameter.
|
||||
CryptoMessageParameterNoOverlap ErrorCode = 36
|
||||
// A crypto message was received that contained a parameter with too few
|
||||
// values.
|
||||
CryptoMessageIndexNotFound ErrorCode = 37
|
||||
// An internal error occurred in crypto processing.
|
||||
CryptoInternalError ErrorCode = 38
|
||||
// A crypto handshake message specified an unsupported version.
|
||||
CryptoVersionNotSupported ErrorCode = 39
|
||||
// A crypto handshake message resulted in a stateless reject.
|
||||
CryptoHandshakeStatelessReject ErrorCode = 72
|
||||
// There was no intersection between the crypto primitives supported by the
|
||||
// peer and ourselves.
|
||||
CryptoNoSupport ErrorCode = 40
|
||||
// The server rejected our client hello messages too many times.
|
||||
CryptoTooManyRejects ErrorCode = 41
|
||||
// The client rejected the server's certificate chain or signature.
|
||||
ProofInvalid ErrorCode = 42
|
||||
// A crypto message was received with a duplicate tag.
|
||||
CryptoDuplicateTag ErrorCode = 43
|
||||
// A crypto message was received with the wrong encryption level (i.e. it
|
||||
// should have been encrypted but was not.)
|
||||
CryptoEncryptionLevelIncorrect ErrorCode = 44
|
||||
// The server config for a server has expired.
|
||||
CryptoServerConfigExpired ErrorCode = 45
|
||||
// We failed to setup the symmetric keys for a connection.
|
||||
CryptoSymmetricKeySetupFailed ErrorCode = 53
|
||||
// A handshake message arrived, but we are still validating the
|
||||
// previous handshake message.
|
||||
CryptoMessageWhileValidatingClientHello ErrorCode = 54
|
||||
// A server config update arrived before the handshake is complete.
|
||||
CryptoUpdateBeforeHandshakeComplete ErrorCode = 65
|
||||
// This connection involved a version negotiation which appears to have been
|
||||
// tampered with.
|
||||
VersionNegotiationMismatch ErrorCode = 55
|
||||
|
||||
// Multipath is not enabled, but a packet with multipath flag on is received.
|
||||
BadMultipathFlag ErrorCode = 79
|
||||
|
||||
// IP address changed causing connection close.
|
||||
IPAddressChanged ErrorCode = 80
|
||||
|
||||
// Connection migration errors.
|
||||
// Network changed, but connection had no migratable streams.
|
||||
ConnectionMigrationNoMigratableStreams ErrorCode = 81
|
||||
// Connection changed networks too many times.
|
||||
ConnectionMigrationTooManyChanges ErrorCode = 82
|
||||
// Connection migration was attempted, but there was no new network to
|
||||
// migrate to.
|
||||
ConnectionMigrationNoNewNetwork ErrorCode = 83
|
||||
// Network changed, but connection had one or more non-migratable streams.
|
||||
ConnectionMigrationNonMigratableStream ErrorCode = 84
|
||||
NoError ErrorCode = 0x0
|
||||
InternalError ErrorCode = 0x1
|
||||
ServerBusy ErrorCode = 0x2
|
||||
FlowControlError ErrorCode = 0x3
|
||||
StreamLimitError ErrorCode = 0x4
|
||||
StreamStateError ErrorCode = 0x5
|
||||
FinalSizeError ErrorCode = 0x6
|
||||
FrameEncodingError ErrorCode = 0x7
|
||||
TransportParameterError ErrorCode = 0x8
|
||||
VersionNegotiationError ErrorCode = 0x9
|
||||
ProtocolViolation ErrorCode = 0xa
|
||||
InvalidMigration ErrorCode = 0xc
|
||||
CryptoError ErrorCode = 0x100
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user