TSG-8261,TSG-8291: 部分QUIC RFC9000未解析出SNI/User-Agent字段

This commit is contained in:
liuxueli
2021-11-02 19:55:46 +03:00
parent a6d1dbf9d2
commit eecd661b91
26 changed files with 1757 additions and 1490 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -62,37 +62,39 @@
#define GQUIC_REGULAR_FRAME_STOP_WAITING 0x06
#define GQUIC_REGULAR_FRAME_PING 0x07
//https://datatracker.ietf.org/doc/html/draft-ietf-quic-transport-27#section-12.4
//IQIIC Frame type (GQUIC_Q046 is iQUIC 17)
#define IQUIC_FRAME_PADDING 0x00
#define IQUIC_FRAME_PING 0x10
#define IQUIC_FRAME_ACK_HEX02 0x20
#define IQUIC_FRAME_ACK_HEX03 0x30
#define IQUIC_FRAME_RESET_STREAM 0x40
#define IQUIC_FRAME_STOP_SENDING 0x50
#define IQUIC_FRAME_CRYPTO 0x60
#define IQUIC_FRAME_NEW_TOKEN 0x70
#define IQUIC_FRAME_STREAM_HEX08 0x80
#define IQUIC_FRAME_STREAM_HEX09 0x90
#define IQUIC_FRAME_STREAM_HEX0A 0xA0
#define IQUIC_FRAME_STREAM_HEX0B 0xB0
#define IQUIC_FRAME_STREAM_HEX0C 0xC0
#define IQUIC_FRAME_STREAM_HEX0D 0xD0
#define IQUIC_FRAME_STREAM_HEX0E 0xE0
#define IQUIC_FRAME_STREAM_HEX0F 0xF0
#define IQUIC_FRAME_MAX_DATA 0x01
#define IQUIC_FRAME_PING 0x01
#define IQUIC_FRAME_ACK_HEX02 0x02
#define IQUIC_FRAME_ACK_HEX03 0x03
#define IQUIC_FRAME_RESET_STREAM 0x04
#define IQUIC_FRAME_STOP_SENDING 0x05
#define IQUIC_FRAME_CRYPTO 0x06
#define IQUIC_FRAME_NEW_TOKEN 0x07
#define IQUIC_FRAME_STREAM_HEX08 0x08
#define IQUIC_FRAME_STREAM_HEX09 0x09
#define IQUIC_FRAME_STREAM_HEX0A 0x0A
#define IQUIC_FRAME_STREAM_HEX0B 0x0B
#define IQUIC_FRAME_STREAM_HEX0C 0x0C
#define IQUIC_FRAME_STREAM_HEX0D 0x0D
#define IQUIC_FRAME_STREAM_HEX0E 0x0E
#define IQUIC_FRAME_STREAM_HEX0F 0x0F
#define IQUIC_FRAME_MAX_DATA 0x10
#define IQUIC_FRAME_MAX_STREAM_DATA 0x11
#define IQUIC_FRAME_MAX_STREAMS_HEX12 0x21
#define IQUIC_FRAME_MAX_STREAMS_HEX13 0x31
#define IQUIC_FRAME_DATA_BLOCKED 0x41
#define IQUIC_FRAME_STREAM_DATA_BLOCKED 0x51
#define IQUIC_FRAME_STREAMS_BLOCKED_HEX16 0x61
#define IQUIC_FRAME_STREAMS_BLOCKED_HEX17 0x71
#define IQUIC_FRAME_NEW_CONNECTION_ID 0x81
#define IQUIC_FRAME_RETIRE_CONNECTION_ID 0x91
#define IQUIC_FRAME_PATH_CHALLENGE 0xA1
#define IQUIC_FRAME_PATH_RESPONSE 0xB1
#define IQUIC_FRAME_CONNECTION_CLOSE_HEX1C 0xC1
#define IQUIC_FRAME_CONNECTION_CLOSE_HEX1D 0xD1
#define IQUIC_FRAME_MAX_STREAMS_HEX12 0x12
#define IQUIC_FRAME_MAX_STREAMS_HEX13 0x13
#define IQUIC_FRAME_DATA_BLOCKED 0x14
#define IQUIC_FRAME_STREAM_DATA_BLOCKED 0x15
#define IQUIC_FRAME_STREAMS_BLOCKED_HEX16 0x16
#define IQUIC_FRAME_STREAMS_BLOCKED_HEX17 0x17
#define IQUIC_FRAME_NEW_CONNECTION_ID 0x18
#define IQUIC_FRAME_RETIRE_CONNECTION_ID 0x19
#define IQUIC_FRAME_PATH_CHALLENGE 0x1A
#define IQUIC_FRAME_PATH_RESPONSE 0x1B
#define IQUIC_FRAME_CONNECTION_CLOSE_HEX1C 0x1C
#define IQUIC_FRAME_CONNECTION_CLOSE_HEX1D 0x1D
/**************************************************************************/
@@ -159,10 +161,15 @@
#define EXTENSION_KEY_SHARE 0x0033
#define EXTENSION_PSK_EXCHANGE 0x002D
#define EXTENSION_SUPP_SSL_VER 0x002B
#define EXTENSION_QUIC_PARAM 0xFFA5
#define EXTENSION_QUIC_PARAM_TLS_33 0x0039 /* draft-ietf-quic-tls-33 */
#define EXTENSION_QUIC_PARAM_TLS_13 0xFFA5 /* 0xffa5 draft-ietf-quic-tls-13 */
#define EXTENSION_COMPRESS_CERT 0x001B
#define EXTENTION_UNKNOWN 0x4469
// https://www.iana.org/assignments/quic/quic.xhtml
#define EXT_QUIC_PARAM_ORIGINAL_DST_CONN_ID 0x00
#define EXT_QUIC_PARAM_MAX_IDLE_TIMEOUT 0x01
#define EXT_QUIC_PARAM_STATELESS_RST_TOKEN 0x02
#define EXT_QUIC_PARAM_MAX_UDP_PAYLOAD 0x03
#define EXT_QUIC_PARAM_MAX_INIT_DATA 0x04
#define EXT_QUIC_PARAM_MAX_STREAM_BIDI_LOCAL 0x05
@@ -170,17 +177,18 @@
#define EXT_QUIC_PARAM_MAX_STREAM_UNI 0x07
#define EXT_QUIC_PARAM_MAX_STREAMS_BIDI 0x08
#define EXT_QUIC_PARAM_MAX_STREAMS_UNI 0x09
#define EXT_QUIC_PARAM_MAX_FRAME_SIZE 0x20
#define EXT_QUIC_PARAM_ACK_DELAY_EXPONENT 0x0A
#define EXT_QUIC_PARAM_MAX_ACK_DELAY 0x0B
#define EXT_QUIC_PARAM_DISABLE_ACTIVE_MIGRATION 0x0C
#define EXT_QUIC_PARAM_PREFERRED_ADDRESS 0x0D
#define EXT_QUIC_PARAM_ACTIVE_CONN_ID_LINIT 0x0E
#define EXT_QUIC_PARAM_INIT_SRC_CONN_ID 0x0F
#define EXT_QUIC_PARAM_USER_AGENT 0x7129
#define EXT_QUIC_PARAM_NOT_YET_SUPPORTED 0x712B
#define EXT_QUIC_PARAM_QUIC_VERSION 0x80004752
#define EXT_QUIC_PARAM_GREASE_LOW4 0x91D24E9B
#define EXT_QUIC_PARAM_GREASE_HIGH4 0xEA666DE7
#define EXTENSION_QUIC_PARAM_UA 0x7129
#define EXTENSION_QUIC_PARAM_VERSION 0x4752
#define EXT_QUIC_PARAM_RETRY_SRC_CONN_ID 0x10
#define EXT_QUIC_PARAM_MAX_DATAGRAM_FRAME_SIZE 0x20
#define EXT_QUIC_PARAM_INIT_RTT 0x7127
#define EXT_QUIC_PARAM_GOOGLE_CONN_OPTIONS 0x7128
#define EXT_QUIC_PARAM_USER_AGENT 0x7129 // 2021-10-20 deprecated
#define EXT_QUIC_PARAM_QUIC_VERSION 0x4752
//https://github.com/quicwg/base-drafts/wiki/QUIC-Versions
enum _QUIC_VERSION