22#ifndef DETERMINISTICESPASYNCWEBSERVER_QUIC_TP_H
23#define DETERMINISTICESPASYNCWEBSERVER_QUIC_TP_H
36 static constexpr uint8_t QUIC_TP_ORIGINAL_DCID = 0x00;
37 static constexpr uint8_t QUIC_TP_MAX_IDLE_TIMEOUT = 0x01;
38 static constexpr uint8_t QUIC_TP_STATELESS_RESET_TOKEN = 0x02;
39 static constexpr uint8_t QUIC_TP_MAX_UDP_PAYLOAD_SIZE = 0x03;
40 static constexpr uint8_t QUIC_TP_INITIAL_MAX_DATA = 0x04;
41 static constexpr uint8_t QUIC_TP_INITIAL_MAX_SD_BIDI_LOCAL = 0x05;
42 static constexpr uint8_t QUIC_TP_INITIAL_MAX_SD_BIDI_REMOTE = 0x06;
43 static constexpr uint8_t QUIC_TP_INITIAL_MAX_SD_UNI = 0x07;
44 static constexpr uint8_t QUIC_TP_INITIAL_MAX_STREAMS_BIDI = 0x08;
45 static constexpr uint8_t QUIC_TP_INITIAL_MAX_STREAMS_UNI = 0x09;
46 static constexpr uint8_t QUIC_TP_ACK_DELAY_EXPONENT = 0x0a;
47 static constexpr uint8_t QUIC_TP_MAX_ACK_DELAY = 0x0b;
48 static constexpr uint8_t QUIC_TP_DISABLE_ACTIVE_MIGRATION = 0x0c;
49 static constexpr uint8_t QUIC_TP_ACTIVE_CID_LIMIT = 0x0e;
50 static constexpr uint8_t QUIC_TP_INITIAL_SCID = 0x0f;
51 static constexpr uint8_t QUIC_TP_RETRY_SCID = 0x10;
55struct QuicTransportParams
57 bool has_original_dcid;
58 uint8_t original_dcid[QUIC_MAX_CID_LEN];
59 uint8_t original_dcid_len;
60 bool has_initial_scid;
61 uint8_t initial_scid[QUIC_MAX_CID_LEN];
62 uint8_t initial_scid_len;
64 uint8_t retry_scid[QUIC_MAX_CID_LEN];
65 uint8_t retry_scid_len;
67 uint64_t max_idle_timeout;
68 uint64_t max_udp_payload_size;
69 uint64_t initial_max_data;
70 uint64_t initial_max_sd_bidi_local;
71 uint64_t initial_max_sd_bidi_remote;
72 uint64_t initial_max_sd_uni;
73 uint64_t initial_max_streams_bidi;
74 uint64_t initial_max_streams_uni;
75 uint64_t ack_delay_exponent;
76 uint64_t max_ack_delay;
77 uint64_t active_connection_id_limit;
78 bool disable_active_migration;
82void quic_tp_defaults(QuicTransportParams *tp);
92size_t quic_tp_encode(
const QuicTransportParams *tp, uint8_t *out,
size_t cap);
103bool quic_tp_parse(
const uint8_t *buf,
size_t len, QuicTransportParams *tp);
User-facing configuration for DeterministicESPAsyncWebServer.
QUIC packet headers and packet-number coding (RFC 9000 sec 17).