diff options
| author | 李佳 <[email protected]> | 2024-07-10 06:58:33 +0000 |
|---|---|---|
| committer | lijia <[email protected]> | 2024-07-11 11:23:10 +0800 |
| commit | 4782225f29b6f80ee023297d0a0726c6c798e3d7 (patch) | |
| tree | 35e385984c8312daf1de3f479af5523928626f54 /src/quic_header.h | |
Initial commitv1.0.1
Diffstat (limited to 'src/quic_header.h')
| -rw-r--r-- | src/quic_header.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/quic_header.h b/src/quic_header.h new file mode 100644 index 0000000..34a7cd1 --- /dev/null +++ b/src/quic_header.h @@ -0,0 +1,35 @@ +#pragma once + +#define QUIC_IS_LONG_HEADER(c) (c & 0x80) +#define QUIC_IS_FIXED_BIT(c) (c & 0x40) + +#define QUIC_PKT_TYPE_INITIAL 0x00 +#define QUIC_PKT_TYPE_0RTT 0x01 +#define QUIC_PKT_TYPE_HANDSHAKE 0x02 +#define QUIC_PKT_TYPE_RETRY 0x03 + +// https://www.rfc-editor.org/rfc/rfc9000.html#name-long-header-packets +struct quic_long_header{ + unsigned char type_specific_bit:4; + unsigned char packet_type:2; + unsigned char fixed_bit:1; + unsigned char header_form:1; + unsigned int version; +}__attribute__((packed)); + +// https://www.rfc-editor.org/rfc/rfc9000.html#name-initial-packet +struct quic_initial_pkt_header{ + unsigned char packet_number_length:2; + unsigned char reserved_bits:2; + unsigned char packet_type:2; + unsigned char fixed_bit:1; + unsigned char header_form:1; + unsigned int version; +}__attribute__((packed)); + +struct quic_short_header{ + unsigned char toto:5; + unsigned char spin_bit:1; + unsigned char fixed_bit:1; + unsigned char header_form:1; +}__attribute__((packed));
\ No newline at end of file |
