|
wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
|
One WebTransport uni stream's cross-datagram reassembly state (draft-ietf- webtrans-http3-15 4.3). More...
#include <srvloop.h>
Data Fields | |
| int | in_use |
| 0 = free slot | |
| u64 | stream_id |
| the WT uni stream id this slot reassembles | |
| usz | type_len |
| bytes the leading type varint occupied on the wire (RFC 9000 16: 2 for 0x54's own encoding, but recorded rather than assumed), same role as wired_srvloop_wt_stream_slot's sig_len. | |
| wired_srvloop_wt_window | win |
| receive-window bookkeeping, see its doc | |
| u8 | buf [WIRED_SRVLOOP_WT_BUF_CAP] |
| offset-indexed bytes past the type varint, relative to win.base. | |
| u8 | fin |
| 1 once this stream's FIN was seen | |
| u64 | fin_off |
| the absolute offset FIN was seen at; valid only when fin | |
| int | offered |
| 1 once wired_wt_session_offer_stream has been called for this slot's stream_id, mirroring wired_srvloop_wt_stream_slot's offered field. | |
| int | wt_session_slot |
| The session slot index this stream was offered to, mirroring wired_srvloop_wt_stream_slot's wt_session_slot field (see its doc). | |
| u64 | delivered_len |
| how much of the stream (absolute offset) has already been delivered to an app-facing stream-data callback, mirroring wired_srvloop_wt_stream_ slot's delivered_len field (see its doc for the ownership split). | |
| int | fin_delivered |
| 1 once a fin=1 delivery has been made, mirroring wired_srvloop_wt_stream_slot's fin_delivered field. | |
| u64 | credit_advertised |
| MAX_STREAM_DATA last advertised for this stream, mirroring wired_srvloop_wt_stream_slot's credit_advertised field. | |
One WebTransport uni stream's cross-datagram reassembly state (draft-ietf- webtrans-http3-15 4.3).
free (in_use == 0) until the stream's leading type-id varint (0x54, RFC 9000 2.1 uni stream) is first sighted. buf holds the stream's bytes AFTER the type varint — mirrors wired_srvloop_wt_stream_ slot's buf/sig_len shape (renamed type_len here since a uni stream's offset-0 varint is a stream TYPE, not a mid-stream signal).
| u8 wired_srvloop_wt_uni_stream_slot::buf[WIRED_SRVLOOP_WT_BUF_CAP] |
offset-indexed bytes past the type varint, relative to win.base.
ponytail: a write outside the granted window is dropped, same policy as wired_srvloop_wt_stream_slot's buf.