wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
Loading...
Searching...
No Matches
srvloop.h
Go to the documentation of this file.
1#ifndef WIRED_SRVLOOP_SRVLOOP_H
2#define WIRED_SRVLOOP_SRVLOOP_H
3
4#include "app/http3/core/h3/control.h"
5#include "app/http3/core/h3/priority.h"
10#include "transport/conn/pnspace/pnspaces/recv_spaces.h"
11#include "transport/packet/frame/frame/connctl.h"
12#include "transport/recovery/detect/recovery/ackpolicy.h"
13
21
27#define WIRED_SRVLOOP_MAX_ACK_DELAY_MS 25
28
60typedef int (*wired_srvloop_handler)(
61 void* ctx,
62 const wired_h3reqdrive_req* req,
63 u64 offset,
64 quic_obuf* body_out,
65 const char** content_type,
66 int* more,
67 u64* total_size);
68
75#define WIRED_SRVLOOP_MAX_STREAMS 40
76
82typedef struct {
83 int in_use;
88 /* RFC 9000 2.2: this stream reassembled across datagrams. curl splits one
89 * request's HEADERS and DATA into separate STREAM frames in separate 1-RTT
90 * packets; each frame's data is written at its offset here and the request
91 * is decoded only once FIN arrives.
92 * ponytail: overflow past req_buf is truncated. */
93 u8 req_buf[2048];
115
121#define WIRED_SRVLOOP_MAX_PENDING_PRIORITY 8
122
130
136#define WIRED_SRVLOOP_CTRL_BUF_CAP 512
137
150
159#define WIRED_SRVLOOP_MAX_WT_STREAMS 6
160
174#define WIRED_SRVLOOP_WT_BUF_CAP 49152
175
183#define WIRED_SRVLOOP_WT_MAX_RANGES 8
184
205
265
273#define WIRED_SRVLOOP_MAX_WT_UNI_STREAMS 6
274
312
321#define WIRED_SRVLOOP_MAX_RX_DATAGRAMS 4
322
328#define WIRED_SRVLOOP_RX_DATAGRAM_CAP 1200
329
336
344// NOLINTNEXTLINE(clang-analyzer-optin.performance.Padding)
345typedef struct {
392 void* req_ctx;
544 u8 path_response_data[QUIC_PATH_DATA];
621
627 wired_srvloop* l, wired_srvloop_handler cb, void* ctx);
628
635int wired_srvloop_init(wired_srvloop* l, const u8* cli_scid, u8 cli_scid_len);
636
646
658 wired_srvloop* l, u64 stream_id, const quic_h3_priority* p);
659
670 const wired_srvloop* l, u64 stream_id, quic_h3_priority* out);
671
682
690
698
706
714
727
737
741
758 u64 abs_off,
759 usz n,
760 usz* rel_off,
761 usz* accepted_n);
762
776 wired_srvloop_wt_window* win, u8* buf, usz cap, u64 delivered_to);
777
784
794 const wired_srvloop_conn* conn, quic_mspan dgram, quic_obuf* out);
795
807
808#endif
RFC 9114 4.1 / 4.3.1, RFC 9204 4.5: drive HTTP/3 requests end to end: QPACK-encode and frame outgoing...
RFC 9001 4 / 4.1.2, RFC 8446 4 / 4.4.4, RFC 9000 7: server-side handshake orchestrator,...
Value-type views that fold the SDK's recurring argument shapes into single parameters,...
#define WIRED_SRVLOOP_MAX_WT_STREAMS
RFC 9000 2.2: how many concurrent WebTransport bidi streams (draft-ietf- webtrans-http3-15 4....
Definition srvloop.h:159
void wired_srvloop_wt_window_accept(wired_srvloop_wt_window *win, u64 abs_off, usz n, usz *rel_off, usz *accepted_n)
draft-ietf-webtrans-http3-15 4.3: clamp [abs_off, abs_off+n) to win's currently open window (drop the...
void wired_srvloop_wt_window_slide(wired_srvloop_wt_window *win, u8 *buf, usz cap, u64 delivered_to)
draft-ietf-webtrans-http3-15 4.3 / RFC 9000 4.1: once delivered_to (an absolute offset,...
#define WIRED_SRVLOOP_WT_MAX_RANGES
How many disjoint received-but-not-yet-contiguous byte ranges one WT slot's window tracks past its fr...
Definition srvloop.h:183
void wired_srvloop_set_handler(wired_srvloop *l, wired_srvloop_handler cb, void *ctx)
Register the app response-body builder; pass 0 to clear (body-less 200).
void wired_srvloop_priority_apply(wired_srvloop *l, u64 stream_id, const quic_h3_priority *p)
RFC 9218 7.1 / 10: apply a validated PRIORITY_UPDATE (request variant) to stream_id – directly into i...
#define WIRED_SRVLOOP_CTRL_BUF_CAP
Byte capacity of the peer control stream's reassembly buffer (RFC 9114 6.2.1, RFC 9218 7....
Definition srvloop.h:136
int wired_srvloop_priority_of(const wired_srvloop *l, u64 stream_id, quic_h3_priority *out)
RFC 9218 10: read stream_id's current priority (its RFC 9218 4.1 default until any PRIORITY_UPDATE or...
#define WIRED_SRVLOOP_WT_BUF_CAP
Byte capacity of one WT bidi/uni reassembly slot's receive window (buf below).
Definition srvloop.h:174
#define WIRED_SRVLOOP_MAX_WT_UNI_STREAMS
draft-ietf-webtrans-http3-15 4.3: how many concurrent WebTransport uni streams (client-initiated,...
Definition srvloop.h:273
#define WIRED_SRVLOOP_RX_DATAGRAM_CAP
Byte capacity of one queued received QUIC DATAGRAM's payload (RFC 9221 5/3).
Definition srvloop.h:328
int wired_srvloop_step(const wired_srvloop_conn *conn, quic_mspan dgram, quic_obuf *out)
Drive one wire iteration: open dgram, dispatch it, and if the step produced a server-direction packet...
#define WIRED_SRVLOOP_MAX_STREAMS
RFC 9000 2.2: how many client bidi (request) streams one connection can reassemble concurrently.
Definition srvloop.h:75
#define WIRED_SRVLOOP_MAX_PENDING_PRIORITY
RFC 9218 7.1 / 10: how many PRIORITY_UPDATE frames naming a not-yet-open request stream one connectio...
Definition srvloop.h:121
#define WIRED_SRVLOOP_MAX_RX_DATAGRAMS
RFC 9221 5: how many received QUIC DATAGRAM frames one connection queues before a future consumer (a ...
Definition srvloop.h:321
void wired_srvloop_wt_uni_slot_release(wired_srvloop *l, u64 stream_id)
Same as wired_srvloop_wt_slot_release, for the separate wt_uni_streams table.
int wired_srvloop_wt_uni_slot_claim(wired_srvloop *l, u64 stream_id)
draft-ietf-webtrans-http3-15 4.3: claim and reset a free wt_uni_streams slot for stream_id,...
int wired_srvloop_wt_slot_claim(wired_srvloop *l, u64 stream_id)
draft-ietf-webtrans-http3-15 4.3: claim and reset a free wt_streams slot for stream_id,...
void wired_srvloop_slot_release(wired_srvloop *l, u64 stream_id)
RFC 9000 2.2: free the streams[] slot reassembling stream_id, once its response has been fully sent a...
int(* wired_srvloop_handler)(void *ctx, const wired_h3reqdrive_req *req, u64 offset, quic_obuf *body_out, const char **content_type, int *more, u64 *total_size)
Build (a round of) the response body for a decoded request.
Definition srvloop.h:60
void wired_srvloop_ecn_note(wired_srvloop *l, u8 ecn)
RFC 9000 13.4 / RFC 9002 19.3.2: add one received datagram's ECN codepoint (RFC 3168: 0 Not-ECT,...
void wired_srvloop_wt_slot_release(wired_srvloop *l, u64 stream_id)
draft-ietf-webtrans-http3-15 4.3: free the wt_streams[] slot reassembling stream_id once its FIN has ...
int wired_srvloop_wt_uni_slot_find(const wired_srvloop *l, u64 stream_id)
draft-ietf-webtrans-http3-15 4.3: find the wt_uni_streams slot already reassembling stream_id,...
int wired_srvloop_slot_for(wired_srvloop *l, u64 stream_id)
RFC 9000 2.2: the streams[] slot reassembling request stream_id, allocating a free one on first sight...
int wired_srvloop_wt_slot_find(const wired_srvloop *l, u64 stream_id)
draft-ietf-webtrans-http3-15 4.3: find the wt_streams slot already reassembling stream_id,...
int wired_srvloop_wt_slot_claim_local(wired_srvloop *l, u64 stream_id)
RFC 9000 2.1: pre-claim a wt_streams slot for a stream id THIS endpoint itself opened (a server-initi...
int wired_srvloop_init(wired_srvloop *l, const u8 *cli_scid, u8 cli_scid_len)
Record the client's source connection id (the DCID for server-sent packets) and reset the HTTP/3 stat...
RFC 9114 6.2.1 / 7.2.4 / 4.1.
Delayed-ACK timer state for one packet number space.
Definition ackpolicy.h:14
RFC 9114 6.2.1/7.2.4/5.2: this connection's control-stream state — whether it is open,...
Definition control.h:26
RFC 9218 4: a request's priority — urgency (lower is more urgent) and whether the response may be ser...
Definition priority.h:15
Mutable view of a byte range.
Definition span.h:42
Growing output buffer view for variable-length results.
Definition span.h:54
Per-space received-packet-number tracking (quic_recvpn), one per QUIC_PNS_*.
Definition recv_spaces.h:18
RFC 9114 4.1 / 4.3.1, RFC 9204 4.5: recovered request pseudo-headers.
Definition request_drive.h:53
HTTP/3 server response-layer state after the 1-RTT handshake.
Definition state.h:13
Server-side handshake orchestrator state, initialized by wired_server_init.
Definition server.h:46
The loop and its orchestrator, driven together through every wire step (mirrors wired_srvboot_conn,...
Definition srvloop.h:780
wired_srvloop * l
the server wire loop
Definition srvloop.h:781
wired_server * s
server-side handshake orchestrator
Definition srvloop.h:782
The peer's control stream, reassembled across datagrams (RFC 9000 2.2) past its leading type varint,...
Definition srvloop.h:145
u8 buf[WIRED_SRVLOOP_CTRL_BUF_CAP]
offset-indexed control bytes
Definition srvloop.h:146
usz len
highest offset+len written into buf
Definition srvloop.h:147
usz parsed
bytes already walked as complete HTTP/3 frames
Definition srvloop.h:148
One buffered PRIORITY_UPDATE naming a request stream this connection has not opened yet (RFC 9218 10 ...
Definition srvloop.h:125
int in_use
0 marks a free slot
Definition srvloop.h:126
u64 stream_id
the not-yet-open request stream id
Definition srvloop.h:127
quic_h3_priority priority
the priority to apply once it opens
Definition srvloop.h:128
One queued received QUIC DATAGRAM frame's payload (RFC 9221 5).
Definition srvloop.h:332
u8 buf[WIRED_SRVLOOP_RX_DATAGRAM_CAP]
the datagram's payload bytes
Definition srvloop.h:333
usz len
bytes valid in buf
Definition srvloop.h:334
One request stream's cross-datagram reassembly state — everything the original single-stream wired_sr...
Definition srvloop.h:82
quic_h3_priority priority
RFC 9218 4.1/7.1: this stream's current response priority, applied by a PRIORITY_UPDATE frame on the ...
Definition srvloop.h:113
wired_h3reqdrive_req req
the decoded request, valid once req_done
Definition srvloop.h:86
int req_incomplete
RFC 9114 4.1: 1 once this stream's FIN arrived without enough of the request to decode (e....
Definition srvloop.h:102
u8 req_wrap[2080]
backing store for req's path/body views once decoded (see drive_complete in dispatch....
Definition srvloop.h:106
usz req_len
highest offset+len written into req_buf
Definition srvloop.h:94
int in_use
0 = free slot
Definition srvloop.h:83
int req_done
1 once this request was decoded/answered
Definition srvloop.h:96
u8 req_fin
1 once a request-stream FIN was seen
Definition srvloop.h:95
u8 req_scratch[512]
backing store for req's path/body views
Definition srvloop.h:87
u8 req_buf[2048]
offset-indexed request stream bytes
Definition srvloop.h:93
u64 stream_id
the client bidi stream id this slot reassembles
Definition srvloop.h:84
One WebTransport bidi stream's cross-datagram reassembly state (draft- ietf-webtrans-http3-15 4....
Definition srvloop.h:214
wired_srvloop_wt_window win
receive-window bookkeeping, see its doc
Definition srvloop.h:224
int wt_session_slot
The session slot index (srvrun.c's wt/wt1, see SRVRUN_MAX_WT_SESSIONS) this stream was offered to,...
Definition srvloop.h:246
u64 delivered_len
how much of the stream (in win.base + win.frontier terms, i.e.
Definition srvloop.h:252
usz sig_len
bytes the leading 0x41 signal varint itself occupied on the wire (RFC 9000 16: 2 for 0x41's own encod...
Definition srvloop.h:223
u64 stream_id
the WT bidi stream id this slot reassembles
Definition srvloop.h:216
u8 fin
1 once this stream's FIN was seen
Definition srvloop.h:231
u64 fin_off
the absolute offset FIN was seen at; valid only when fin
Definition srvloop.h:232
int offered
1 once wired_wt_session_offer_stream has been called for this slot's stream_id (the caller driving th...
Definition srvloop.h:239
u64 credit_advertised
RFC 9000 4.1/19.10: the MAX_STREAM_DATA value last advertised to the peer for this stream (0 before a...
Definition srvloop.h:263
int in_use
0 = free slot
Definition srvloop.h:215
u8 buf[WIRED_SRVLOOP_WT_BUF_CAP]
offset-indexed bytes past the signal varint, relative to win.base (offset 0 of this buffer is win....
Definition srvloop.h:230
int fin_delivered
1 once a fin=1 delivery has been made to the app-facing stream-data callback for this slot; distingui...
Definition srvloop.h:257
One WebTransport uni stream's cross-datagram reassembly state (draft-ietf- webtrans-http3-15 4....
Definition srvloop.h:281
u8 fin
1 once this stream's FIN was seen
Definition srvloop.h:293
u8 buf[WIRED_SRVLOOP_WT_BUF_CAP]
offset-indexed bytes past the type varint, relative to win.base.
Definition srvloop.h:292
wired_srvloop_wt_window win
receive-window bookkeeping, see its doc
Definition srvloop.h:288
int offered
1 once wired_wt_session_offer_stream has been called for this slot's stream_id, mirroring wired_srvlo...
Definition srvloop.h:297
int fin_delivered
1 once a fin=1 delivery has been made, mirroring wired_srvloop_wt_stream_slot's fin_delivered field.
Definition srvloop.h:307
u64 fin_off
the absolute offset FIN was seen at; valid only when fin
Definition srvloop.h:294
u64 credit_advertised
MAX_STREAM_DATA last advertised for this stream, mirroring wired_srvloop_wt_stream_slot's credit_adve...
Definition srvloop.h:310
int in_use
0 = free slot
Definition srvloop.h:282
u64 stream_id
the WT uni stream id this slot reassembles
Definition srvloop.h:283
u64 delivered_len
how much of the stream (absolute offset) has already been delivered to an app-facing stream-data call...
Definition srvloop.h:304
usz type_len
bytes the leading type varint occupied on the wire (RFC 9000 16: 2 for 0x54's own encoding,...
Definition srvloop.h:287
int wt_session_slot
The session slot index this stream was offered to, mirroring wired_srvloop_wt_stream_slot's wt_sessio...
Definition srvloop.h:300
One WT bidi/uni slot's receive-window bookkeeping, shared shape for both tables (see wired_srvloop_wt...
Definition srvloop.h:197
u64 base
absolute post-signal stream offset of buf[0]
Definition srvloop.h:198
u64 range_hi[WIRED_SRVLOOP_WT_MAX_RANGES]
exclusive
Definition srvloop.h:200
usz range_n
number of disjoint ranges currently tracked
Definition srvloop.h:201
u64 range_lo[WIRED_SRVLOOP_WT_MAX_RANGES]
relative to base
Definition srvloop.h:199
usz frontier
contiguous bytes from base, i.e.
Definition srvloop.h:202
Per-connection state of the server wire loop, re-armed by wired_srvloop_init and driven by wired_srvl...
Definition srvloop.h:345
u64 wt_reset_stream_id
draft-ietf-webtrans-http3-15 4.4 (WTH3-040): the stream id and wire error code of a RESET_STREAM/STOP...
Definition srvloop.h:616
u64 now_ms
Monotonic ms this step is being driven at – the time source quic_ackpolicy's delayed-ACK timer measur...
Definition srvloop.h:375
quic_ackpolicy hs_ack_policy
Handshake space's delayed-ACK timer.
Definition srvloop.h:365
int ticket_sent
1 once the post-confirmation session ticket (NewSessionTicket, RFC 8446 4.6.1) has been emitted
Definition srvloop.h:378
usz incomplete_n
entries valid in incomplete_slots this step
Definition srvloop.h:436
u8 frame_unexpected_slots[WIRED_SRVLOOP_MAX_STREAMS]
RFC 9114 7.2.5/7.2.8 (9114-067/9114-073): every slot whose request stream carried a PUSH_PROMISE or H...
Definition srvloop.h:443
u64 max_data_seen
RFC 9000 19.9: highest MAX_DATA value seen across every 1-RTT payload opened this step (gather_max_da...
Definition srvloop.h:499
wired_srvloop_stream_slot streams[WIRED_SRVLOOP_MAX_STREAMS]
RFC 9000 2.2: one reassembly slot per concurrent client bidi (request) stream, looked up/allocated by...
Definition srvloop.h:398
int hs_done_sent
1 once the confirmation (HANDSHAKE_DONE) has been emitted
Definition srvloop.h:376
u64 max_stream_data_value[WIRED_SRVLOOP_MAX_STREAMS]
RFC 9000 19.10: the value carried by the same-indexed max_stream_data_stream_id slot.
Definition srvloop.h:516
int datagram_violation
1 once a received DATAGRAM frame violated RFC 9221 3 (exceeded we_advertised_max_datagram,...
Definition srvloop.h:481
u64 ecn_ce
CE running total (same lifecycle as ecn_ect0's doc above).
Definition srvloop.h:561
int app_rx_seen
1 once a 1-RTT packet has been received (app_rx_pn valid)
Definition srvloop.h:352
u8 path_response_data[QUIC_PATH_DATA]
RFC 9000 8.2.2/19.18: the 8-byte data of a PATH_RESPONSE frame seen in any 1-RTT payload opened this ...
Definition srvloop.h:544
u64 tx_pn
monotone packet number for sealed 1-RTT output
Definition srvloop.h:349
u8 incomplete_slots[WIRED_SRVLOOP_MAX_STREAMS]
RFC 9114 4.1: every slot whose request stream terminated (FIN) THIS step WITHOUT producing a request ...
Definition srvloop.h:435
int wt_reset_is_stop
1 for STOP_SENDING, 0 for RESET_STREAM
Definition srvloop.h:618
u64 hs_rx_pn
last received Handshake packet number to ACK (the client Finished's actual PN, which is not always 0)
Definition srvloop.h:354
u64 hs_tx_pn
monotone packet number for sealed Handshake output
Definition srvloop.h:350
quic_pnspaces_recv ack_recv
RFC 9000 12.3/13.2.1/13.2.2/19.3: every packet number space's received-pn window (quic_pnspaces_recv,...
Definition srvloop.h:363
u8 cli_scid_len
cli_scid length in octets
Definition srvloop.h:348
u8 done_slots[WIRED_SRVLOOP_MAX_STREAMS]
Every slot whose request completed THIS step, in completion order – the multi-request counterpart of ...
Definition srvloop.h:427
int peer_closed
1 once a peer CONNECTION_CLOSE frame was seen
Definition srvloop.h:446
u64 we_advertised_max_datagram
RFC 9221 3: this connection's own advertised max_datagram_frame_size transport parameter value,...
Definition srvloop.h:475
int wt_signal_mid_stream_violation
draft-ietf-webtrans-http3-15 4.3: 1 once a STREAM frame this step carried the WT_STREAM signal varint...
Definition srvloop.h:603
wired_h3reqdrive_req req
the mirrored most-recently-completed request; valid only when got_request is set
Definition srvloop.h:417
int streams_blocked_seen_flag
RFC 9000 19.14: 1 once a client bidi STREAMS_BLOCKED frame was seen in any 1-RTT payload opened this ...
Definition srvloop.h:537
u16 confirm_frames_len
Bytes cached in confirm_frames; 0 until the confirmation was emitted (or when it did not fit,...
Definition srvloop.h:389
wired_srvloop_pending_priority pending_priority[WIRED_SRVLOOP_MAX_PENDING_PRIORITY]
RFC 9218 10 / 9218-010: PRIORITY_UPDATE frames naming a request stream not yet open,...
Definition srvloop.h:568
int got_request
Mirrors the most recently completed request this step, across whichever slot decoded it — the pre-exi...
Definition srvloop.h:416
wired_h3srv_state h3
HTTP/3 server response-layer state.
Definition srvloop.h:346
u64 app_rx_pn
last received 1-RTT (application) packet number to ACK
Definition srvloop.h:351
u16 priupdate_violation
RFC 9218 7.1 / RFC 9114 8.1: the H3 connection error code of the most recent rejected PRIORITY_UPDATE...
Definition srvloop.h:585
u8 confirm_frames[320]
The confirmation packet's frame payload (SETTINGS + session ticket + HANDSHAKE_DONE),...
Definition srvloop.h:386
int resp_external
1: the caller answers requests, not the loop
Definition srvloop.h:447
int hs_rx_seen
1 once a Handshake packet has been received
Definition srvloop.h:356
wired_srvloop_ctrl_stream ctrl
RFC 9114 6.2.1: the peer's single control stream, reassembled so its frames (SETTINGS/GOAWAY/PRIORITY...
Definition srvloop.h:573
u64 ack_hi[32]
range highs, ack_hi[0] from the frame's largest
Definition srvloop.h:454
wired_srvloop_wt_uni_stream_slot wt_uni_streams[WIRED_SRVLOOP_MAX_WT_UNI_STREAMS]
draft-ietf-webtrans-http3-15 4.3: one reassembly slot per concurrent WT uni stream,...
Definition srvloop.h:409
u64 wt_reset_error_code
its wire error code
Definition srvloop.h:617
int max_data_seen_flag
1 once max_data_seen was set this step
Definition srvloop.h:500
int closed_stream_seen
1 once closed_stream_id was set this step
Definition srvloop.h:490
u8 cli_scid[20]
the client's source id; DCID the server writes
Definition srvloop.h:347
u64 wt_uni_released_watermark
Same as wt_released_watermark, for the separate wt_uni_streams table.
Definition srvloop.h:529
u64 req_stream_id
the client bidi stream id req was decoded from; valid only when got_request is set (mirrors req from ...
Definition srvloop.h:419
u64 wt_released_watermark
RFC 9000 2.1: the highest WT bidi stream id ever released (wired_srvloop_wt_slot_release),...
Definition srvloop.h:527
usz done_n
entries valid in done_slots this step
Definition srvloop.h:428
wired_srvloop_handler on_request
app response-body builder, 0 if unset
Definition srvloop.h:391
quic_h3_control peer_ctrl
RFC 9114 7.2.4 / draft-ietf-webtrans-http3-15 SS3.1 (WTH3-009/042): the client control stream's own S...
Definition srvloop.h:579
u64 ecn_ect1
ECT(1) running total (same lifecycle as ecn_ect0's doc above).
Definition srvloop.h:559
usz frame_unexpected_n
entries valid in frame_unexpected_slots this step
Definition srvloop.h:444
usz rx_datagram_n
count of entries valid in rx_datagrams, 0..WIRED_SRVLOOP_MAX_RX_DATAGRAMS.
Definition srvloop.h:468
quic_ackpolicy app_ack_policy
App space's delayed-ACK timer.
Definition srvloop.h:364
void * req_ctx
opaque ctx passed to on_request
Definition srvloop.h:392
wired_srvloop_rx_datagram rx_datagrams[WIRED_SRVLOOP_MAX_RX_DATAGRAMS]
RFC 9221 5: received QUIC DATAGRAM frame payloads queued for a future consumer to drain (Phase 7b Sli...
Definition srvloop.h:461
usz max_stream_data_n
Slots in max_stream_data_stream_id/_value actually used this step (0 to WIRED_SRVLOOP_MAX_STREAMS).
Definition srvloop.h:519
u16 qpack_stream_violation
RFC 9204 4.2 (9204-028): the H3 connection error code of a second QPACK encoder or decoder unidirecti...
Definition srvloop.h:592
u64 closed_stream_id
RFC 9000 19.4/19.5 (draft-ietf-webtrans-http3-15 SS4.4): the client bidi stream id a FIN,...
Definition srvloop.h:489
u64 max_stream_data_stream_id[WIRED_SRVLOOP_MAX_STREAMS]
RFC 9000 19.10: every distinct MAX_STREAM_DATA (stream id, value) seen this step, one slot per distin...
Definition srvloop.h:513
int path_response_seen_flag
1 once path_response_data was set this step; not reset across steps by this loop itself,...
Definition srvloop.h:545
u64 ack_lo[32]
ACK ranges (RFC 9000 19.3) seen in payloads opened this step, reset at the start of every wired_srvlo...
Definition srvloop.h:453
wired_srvloop_wt_stream_slot wt_streams[WIRED_SRVLOOP_MAX_WT_STREAMS]
draft-ietf-webtrans-http3-15 4.3: one reassembly slot per concurrent WT bidi stream,...
Definition srvloop.h:404
usz ack_n
ranges recorded this step
Definition srvloop.h:455
int wt_reset_seen
1 once the three fields above were set this step
Definition srvloop.h:619
u64 ecn_ect0
RFC 9000 13.4 / RFC 9002 19.3.2: this connection's cumulative count of received datagrams marked ECT(...
Definition srvloop.h:557
u64 usz
unsigned size (size_t equivalent)
Definition syscall.h:19
unsigned short u16
unsigned 16-bit integer
Definition syscall.h:16
unsigned char u8
unsigned 8-bit integer / byte
Definition syscall.h:17
unsigned long u64
unsigned 64-bit integer
Definition syscall.h:12