wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
Loading...
Searching...
No Matches
server_tp.h
1#ifndef STP_SERVER_TP_H
2#define STP_SERVER_TP_H
3
6
7/* RFC 9000 18.2. Build the server's transport parameters into out->p
8 * (out->cap bytes). original_dcid is the DCID of the client's first Initial
9 * (RFC 9000 7.3); initial_scid is the server's source connection id. On
10 * success writes the TLV sequence and sets out->len; returns 1. Returns 0 if
11 * it does not fit. */
17#ifndef STP_DEFAULT_MAX_STREAMS_BIDI
18#define STP_DEFAULT_MAX_STREAMS_BIDI 100
19#endif
25#ifndef STP_DEFAULT_MAX_DATA
26#define STP_DEFAULT_MAX_DATA 10000000
27#endif
29#ifndef STP_DEFAULT_IDLE_TIMEOUT_MS
30#define STP_DEFAULT_IDLE_TIMEOUT_MS 30000
31#endif
42#ifndef STP_DEFAULT_STREAM_DATA_LOCAL
43#define STP_DEFAULT_STREAM_DATA_LOCAL 49152
44#endif
52#ifndef STP_DEFAULT_STREAM_DATA_REMOTE
53#define STP_DEFAULT_STREAM_DATA_REMOTE 2048
54#endif
56#ifndef STP_DEFAULT_MAX_STREAMS_UNI
57#define STP_DEFAULT_MAX_STREAMS_UNI 100
58#endif
77
78int stp_build_server(
79 wired_span original_dcid, wired_span initial_scid, wired_obuf* out);
80
81/* As stp_build_server, with the tunable limits overriding defaults
82 * (lim = 0 keeps every default). */
83/* Same as stp_build_server_lim plus retry_source_connection_id
84 * (RFC 9000 7.3): emitted only when rscid is non-empty (a Retry actually
85 * preceded the handshake -- the peer treats an unexpected one as a
86 * TRANSPORT_PARAMETER_ERROR). sreset_token is the 16-byte
87 * stateless_reset_token (RFC 9000 10.3.1/18.2) for the handshake SCID;
88 * empty omits the TP (a server that never sends resets advertises none). */
89int stp_build_server_ret(
90 wired_span original_dcid,
91 wired_span initial_scid,
92 wired_span rscid,
93 wired_span sreset_token,
94 const stp_limits* lim,
95 wired_obuf* out);
96
97int stp_build_server_lim(
98 wired_span original_dcid,
99 wired_span initial_scid,
100 const stp_limits* lim,
101 wired_obuf* out);
102
103#endif
Value-type views that fold the SDK's recurring argument shapes into single parameters,...
RFC 9000 18.2: the operator-tunable integer limits this server advertises; a zero field falls back to...
Definition server_tp.h:61
u64 max_datagram_frame_size
max_datagram_frame_size (0x20, RFC 9221 3), 0 = not advertised (no built-in default: the caller opts ...
Definition server_tp.h:72
u64 max_data
initial_max_data (0x04), default STP_DEFAULT_MAX_DATA
Definition server_tp.h:62
u64 max_streams_bidi
initial_max_streams_bidi (0x08), default 100
Definition server_tp.h:64
u64 max_streams_uni
initial_max_streams_uni (0x09), default 100.
Definition server_tp.h:71
Growing output buffer view for variable-length results.
Definition span.h:54
Read-only view of a byte range.
Definition span.h:30
Linux direct syscalls.
unsigned long u64
unsigned 64-bit integer
Definition types.h:13