wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
Loading...
Searching...
No Matches
Data Structures
Here are the data structures with brief descriptions:
 CackpolicyDelayed-ACK timer state for one packet number space
 CbodywinOne request stream's receive window over a caller-owned BODYWIN_CAP buffer: buf[0] is stream offset base
 Cbodywin_capqCapsule bytes carried over between DATA frames and calls: a capsule may straddle any number of them
 CcrecvCRYPTO stream reassembly state
 Ch3_controlRFC 9114 6.2.1/7.2.4/5.2: this connection's control-stream state — whether it is open, whether SETTINGS was its first frame, the latest GOAWAY id, and any latched connection error
 Ch3_priorityRFC 9218 4: a request's priority — urgency (lower is more urgent) and whether the response may be served incrementally
 Ch3settings_inThe common HTTP/3 + QPACK settings values to encode
 Chkdf_labelHkdfLabel inputs (RFC 8446 7.1): the label (without the "tls13 " prefix) and the context (may be empty: {0, 0})
 Cinitial_keysOne direction's packet protection keys (RFC 9001 5.1/5.2)
 CkeyschedKey schedule state: the current stage, the Master Secret once reached, and the four traffic key sets indexed by the KS_* constants
 CkeysetPer-protection-level key store: one AES-128-GCM key set per level plus an installed flag
 Ckuswitch_stateRFC 9001 6.3/6.5 two-generation key state: the current 1-RTT keys and, once a Key Update has happened, the immediately prior generation's keys (retained so packets still in flight under the old key keep decrypting until the retention period ends)
 Cmmsg_bufOne slot of a recvmmsg() batch: caller-owned receive buffer and source address, filled in by wired_udp_recvmmsg on return
 CmoqcacheA FETCH object cache over one caller-owned arena
 Cmoqcache_itemOne FETCH response item at a cursor: an Object (unknown 0, payload a view into the arena, valid until the next append/release) or an End of Unknown Range whose last Location is loc
 Cmoqctl_ftnFull Track Name: Track Namespace + Track Name (may be empty)
 Cmoqctl_goawayDraft-ietf-moq-transport-19 SS10.3 GOAWAY
 Cmoqctl_locDraft-ietf-moq-transport-19 SS1.4.2 Location: two consecutive varints
 Cmoqctl_locfilterDraft-ietf-moq-transport-19 SS9.3.1 Location Filter
 Cmoqctl_nsDraft-ietf-moq-transport-19 SS1.5 Track Namespace: up to MOQCTL_MAX_NS_FIELDS fields, each a byte-string view into the decode input (or caller-owned storage on encode)
 Cmoqctl_paramDraft-ietf-moq-transport-19 SS10.2 Message Parameter: Type Delta + Value
 Cmoqctl_paramsA decoded/to-encode Message Parameter list
 Cmoqctl_publishDraft-ietf-moq-transport-19 SS10.9 PUBLISH
 Cmoqctl_publish_doneDraft-ietf-moq-transport-19 SS10.10 PUBLISH_DONE
 Cmoqctl_rangeOne inclusive Range of a Range Filter (SS10.2.10): [start, end], or [start, inf) when the final End was omitted
 Cmoqctl_rangefilterA decoded Range Filter parameter value (SS10.2.10-10.2.14): SetID, the 0x28/0x29 Property Type, and the delta-resolved Ranges
 Cmoqctl_rangelocVersion-neutral LOCATION_FILTER range
 Cmoqctl_redirectDraft-ietf-moq-transport-19 SS10.8 REQUEST_ERROR redirect (SS10.8.1)
 Cmoqctl_request_errorDraft-ietf-moq-transport-19 SS10.8 REQUEST_ERROR
 Cmoqctl_request_okDraft-ietf-moq-transport-19 SS10.5 REQUEST_OK
 Cmoqctl_setupDraft-ietf-moq-transport-19 SS10.4 SETUP: Setup Options are a KVP list (unknown options ignored on decode – not surfaced here)
 Cmoqctl_ssaSWITCHING_SET_ASSIGNMENT value (moqtail SSTS): puts the subscription into switching set set_id
 Cmoqctl_subscribeDraft-ietf-moq-transport-19 SS10.6 SUBSCRIBE
 Cmoqctl_subscribe_okDraft-ietf-moq-transport-19 SS10.7 SUBSCRIBE_OK
 Cmoqctl_switchfromSWITCH_FROM value (moqtail): activate this subscription and stop the one with request_id
 Cmoqctl_tokenDraft-ietf-moq-transport-19 SS10.2.2 Token structure: Alias Type selects which of the optional fields are present (MOQCTL_TOKEN_*); absent fields are left zero / empty
 Cmoqdata_msgOne-message builder: a single SUBGROUP_HEADER (Type 0x70: PROPERTIES off, mode 0b00, no end-of-group, default priority, FIRST_OBJECT set) carrying one Object (payload form, implicit Normal status)
 Cmoqdata_objDecoded Object (11.4.2 / 4237-4466)
 Cmoqdata_objseqPer-subgroup Object decode state, threaded across successive moqdata_obj_take calls on the same SUBGROUP_HEADER
 Cmoqdata_subhdrDecoded SUBGROUP_HEADER (11.4.2)
 Cmoqdg_objDecoded OBJECT_DATAGRAM (11.3.1)
 Cmoqfetch_fetchFETCH (10.12.3 Figure 15)
 Cmoqfetch_fillDraft-22 SS9.20.15 FILL_PARAMETERS value (Number of Parameters + Parameters, the FETCH parameter scope), decoded into the fields a fill fetch stream needs: the range (LOCATION_FILTER, SS9.20.9 – type 0x00 or a zero-length value mean "no filter", ruling Q-02; an absent parameter in a non-empty value sets inherit, SS3.4), the Group Order (GROUP_ORDER 0x2 = Descending) and FILL_TIMEOUT as a varint of milliseconds
 Cmoqfetch_objOne fetch Object or End of Range marker, with every field resolved to its absolute value
 Cmoqfetch_okFETCH_OK (10.13 Figure 16)
 Cmoqfetch_reqVersion-neutral FETCH request, an upper set of draft-19's Standalone + Joining split and draft-22's single Track Namespace/Name + LOCATION_FILTER parameter form
 Cmoqfetch_seqThe "prior Object" state threaded through one fetch stream
 Cmoqraw_policyThe application's optional say over well-formed PATH/AUTHORITY values on raw QUIC
 Cmoqrawio_backendThe srvrun operations the mux forwards prefixed stream opens to, as a function-pointer table: the unity build links the real srvrun, so a test cannot stub wired_server_* by symbol and fills this with recorders instead
 CmoqsessSession state including the GOAWAY-lifecycle flags (5.1: GOAWAY may be sent/received at most once per direction; violations and shutdown decisions read these)
 Cmoqssts_bpPer-connection backpressure state; reset it with moqssts_bp_init
 Cmoqssts_memberOne encoding of a switching set
 Cmoqssts_obsOne group's congestion evidence
 Cmoqssts_setOne switching set
 CmoqsubOne subscription's lifecycle state plus the flags moqsub_step keeps
 Cmoqtrel_bufOne reliable-relay ring: the publisher's relayed bytes plus every subscriber's cursor and the publisher-side backpressure state
 Cmoqtrel_subOne subscriber's read cursor into a ring
 Cmoqtss_decThe final decision for one group of one set: the alias forwarded (MOQTSS_PICK_NONE: nothing)
 Cmoqtss_memberOne member: a subscription of the session, named by the Track Alias the hub gave it on that session (unique per track, draft-22 3.1.3)
 Cmoqtss_sessOne subscriber session's SSTS state (wired_moqtrun_peer.ssts)
 Cmoqtss_setOne switching set (moqtail switching_set.rs)
 Cmp4frag_layoutResult of mp4frag_scan: init is ftyp up to and including moov; frags[i] spans the i-th moof and the mdat that immediately follows it
 Cncid_frameOne NEW_CONNECTION_ID frame's fields
 Cnew_token_frameNEW_TOKEN (19.7): a token length and a view into the token (not copied)
 CpnspacePer-space next-packet-number counters (RFC 9000 12.3)
 Cpnspaces_ack_outWhere pnspaces_ack_ranges writes the largest acked and the ranges
 Cpnspaces_recvPer-space received-packet-number tracking (recvpn), one per PNS_*
 Cqdyn_decRFC 9204 4.4
 Cqdyn_encrxRFC 9204 4.2 / RFC 9000 2.2: the peer's encoder stream reassembled from stream offset 0, type varint included
 Cqpack_dynRFC 9204 3.2
 Cqpack_dyn_entryRFC 9204 3.2
 Cqpack_fieldA QPACK field line's (name, value) pair as borrowed views (encoder input / decoder table lookups)
 Cqpack_fieldbufThe caller-owned output buffers a QPACK decoder fills
 Cqpackenc_planRFC 9204 4.3.3 / 3.2.5
 Cqpackenc_stateOne connection's QPACK encoder-side state
 CrecvpnSliding window of received packet numbers for one packet number space
 CsdrvServer-side handshake driver state
 Csdrv_flight_outDestination for sdrv_build_server_flight: sh receives the ServerHello, hs the EncryptedExtensions || Certificate || CertificateVerify || Finished flight
 Csdrv_init_inInputs to sdrv_init
 Csdrv_pref_addrInputs to sdrv_set_preferred_address: both addresses in network byte order, the CID the migrating client will use (sequence 1), and its stateless reset token (RFC 9000 9.6/18.2)
 Csha256_ctxStreaming SHA-256 state
 Csha512_ctxIncremental SHA-512 state: running hash, total bytes absorbed, and the partial-block buffer
 CsockaddrA sockaddr_in6 laid out for the kernel (big-endian port; a 16-byte address that is either native IPv6 or an IPv4-mapped ::ffff:a.b.c.d)
 Csrvfin_stateServer handshake-completion state
 Cstp_limitsRFC 9000 18.2: the operator-tunable integer limits this server advertises; a zero field falls back to the built-in default
 CticketOne resumption ticket's plaintext contents (RFC 8446 4.6.1)
 CtimespecA kernel timespec: seconds and nanoseconds since the UNIX epoch, the struct clock_gettime(2) fills
 Ctls_cert_chain_outDestination for tls_cert_chain: entries[0..cap-1] and the count actually written
 Ctls_cert_entryA view of one CertificateEntry's cert_data within the message buffer
 Ctls_hashOne suite's hash and the HKDF/HMAC instantiated over it
 CtranscriptCumulative Transcript-Hash state
 Cu64obufA fixed-capacity u64 output buffer; the callee fills *len
 Cu64viewA read-only view of a u64 array
 CverlistA read-only view of a version-number list (offered, supported, etc)
 Cversion_infoA decoded version_information transport parameter (RFC 9368 3)
 Cwired_certreload_storeCaller-owned storage a load fills: the DER bytes of every chain certificate (concatenated), spans into that buffer (leaf first), and the decoded P-256 private scalar
 Cwired_fmt_u64_inThe value to format and its minimum zero-padded width
 Cwired_h3reqdrive_get_inThe :path and :authority values for a GET request
 Cwired_h3reqdrive_hdrOne regular request header: name and value as octet positions inside the request's hdr_base (its decode scratch), so a copy of the request only has to move the bytes and re-point hdr_base
 Cwired_h3reqdrive_reqRFC 9114 4.1 / 4.3.1, RFC 9204 4.5: recovered request pseudo-headers
 Cwired_h3reqdrive_send_inRemaining arguments of wired_h3reqdrive_send_method beyond stream_id/out: the request line (method/path/authority) and the optional body
 Cwired_h3srv_stateHTTP/3 server response-layer state after the 1-RTT handshake
 Cwired_headerParsed invariant (version-independent) packet header fields
 Cwired_http_exchangeOne request/response exchange handed to a wired_http_handler
 Cwired_moqt_hubThe hub's whole state: fixed peer table plus the io table it sends through
 Cwired_moqt_ioThe send/reset operations this layer needs, as a function-pointer table so it never links wired_server_wt_* directly (kept testable without the QUIC/TLS stack)
 Cwired_moqtrun_ctl_asmReassembly of control messages split across stream deliveries: holds the not-yet-complete tail of one stream
 Cwired_moqtrun_fetchOne FETCH response being served from the hub cache: Objects of the track incarnation cache_tag in [cursor, end) go out on one uni stream (FETCH_HEADER, then fetch Objects, 11.4.4), one item per stream round as the transport accepts them
 Cwired_moqtrun_liveThe hub's own clock-paced live track (wired_moqt_publish_live): Group g carries fragment g mod n_frags as its only Object, Groups advancing every group_ms from t0_ms
 Cwired_moqtrun_peerOne connected participant's hub-side state: its WT session, its own control-stream MOQT session machine, and the tracks (chat/audio) it has PUBLISHed
 Cwired_moqtrun_rdvOne SUBSCRIBE held for a publisher
 Cwired_moqtrun_relayOne in-flight relayed publisher stream: which publisher-side stream (pub_stream_id) this relay follows, and – per subscriber slot index in the owning track's subs[] – the subscriber-side uni stream its bytes are forwarded on
 Cwired_moqtrun_reqOne peer-opened request stream (draft-ietf-moq-transport-19 3.3): its own reassembly and reply queue (the same ARMED/PENDING pair as wired_moqtrun_peer.send_bufs, at request-stream size)
 Cwired_moqtrun_rngrowOne flattened Range Filter Range (draft-19 10.2.10-10.2.14): the (ptype, set_id[, prop_type]) triple names the parameter it came from; a parameter with k Ranges takes k rows
 Cwired_moqtrun_subOne subscriber recorded against the hub's track: which session, and the Track Alias its SUBSCRIBE_OK named – the alias every SUBGROUP_HEADER and OBJECT_DATAGRAM relayed to that session carries (draft-22 3.1.3: unique per Track within the session; moqtrun_session_alias)
 Cwired_moqtrun_trackOne track a peer PUBLISHes (chat or audio), and the subscribers recorded against it
 Cwired_moqtrun_upOne SUBSCRIBE the hub sent upstream on its own request stream
 Cwired_moqtrun_upf_legThe bulky part of a fetches[] slot's upstream FETCH, kept beside the slot (wired_moqt_hub.upf_legs, same index) so fetch_waits[] entries, which never run one, do not carry it
 Cwired_mspanMutable view of a byte range
 Cwired_obufGrowing output buffer view for variable-length results
 Cwired_serverServer-side handshake orchestrator state, initialized by wired_server_init
 Cwired_server_init_inServer_priv_x25519/server_pub_x25519 are the static ECDHE pair; cert_seed is the ECDSA P-256 signing scalar (big-endian)
 Cwired_spanRead-only view of a byte range
 Cwired_srvboot_accOne nascent connection's ClientHello reassembly across Initial datagrams: a ClientHello too big for one Initial (a post-quantum hybrid key share pushes it near 1.7KB) arrives as CRYPTO chunks spread over several packets (RFC 9000 19.6), and the server may not build its flight until the whole message is contiguous
 Cwired_srvboot_connThe server orchestrator and its HTTP/3 loop, freshly cold-started by wired_srvboot_accept and driven together thereafter (wired_srvloop_step takes the same pair)
 Cwired_srvboot_demo_keysStorage for the demo key material; wired_srvboot_id holds views into it, so it must outlive the server run (make it static)
 Cwired_srvboot_idThe fixed server identity a bootstrap needs: the X25519 handshake key pair, the ECDSA P-256 signing scalar the server builds its end-entity certificate from, the server's source connection id (written in every reply), and the ServerHello random
 Cwired_srvboot_inThe fixed server identity to boot with and the client's Initial datagram to recover the ClientHello from
 Cwired_srvboot_outThe sealed reply datagrams of a bootstrap
 Cwired_srvdriver_optResolved driver selection and its knobs, filled entirely by wired_srvdriver_parse from argv (or by hand for a caller that skips CLI parsing)
 Cwired_srvinbox_ringA single-producer/single-consumer ring of depth WIRED_SRVINBOX_DEPTH
 Cwired_srvinbox_slotOne ring slot: a datagram payload and its length
 Cwired_srvloopPer-connection state of the server wire loop, re-armed by wired_srvloop_init and driven by wired_srvloop_step
 Cwired_srvloop_closedRFC 9000 3.2: closed client stream indexes (id / 4) of one stream type – every index below floor, plus the 1024 just above it in bm (bit k = index floor + k)
 Cwired_srvloop_connThe loop and its orchestrator, driven together through every wire step (mirrors wired_srvboot_conn, srvboot's cold-start counterpart)
 Cwired_srvloop_ctrl_streamThe peer's control stream, reassembled across datagrams (RFC 9000 2.2) past its leading type varint, so its HTTP/3 frames (SETTINGS, GOAWAY, PRIORITY_UPDATE, ...) can be walked once fully buffered up to parsed
 Cwired_srvloop_pending_priorityOne buffered PRIORITY_UPDATE naming a request stream this connection has not opened yet (RFC 9218 10 / 9218-010)
 Cwired_srvloop_resetOne peer RESET_STREAM (is_stop 0) or STOP_SENDING (is_stop 1)
 Cwired_srvloop_rx_datagramOne queued received QUIC DATAGRAM frame's payload (RFC 9221 5)
 Cwired_srvloop_send_inRemaining arguments of wired_srvloop_send_initial/send_handshake/send_onertt beyond s and out: the connection id to write as the reply's DCID (the client's SCID, RFC 9000 7.2 — possibly zero-length; every send path writes it, send_initial's keys still come from the odcid recorded at boot), the packet number, the client packet to acknowledge (< 0 for none, unused by send_onertt), and the payload — a TLS flight to wrap in CRYPTO for Initial/Handshake, or the raw 1-RTT payload for send_onertt
 Cwired_srvloop_stream_slotOne request stream's cross-datagram reassembly state — everything the original single-stream wired_srvloop held, now per stream id
 Cwired_srvloop_wt_stream_slotOne WebTransport bidi stream's cross-datagram reassembly state (draft- ietf-webtrans-http3-15 4.3)
 Cwired_srvloop_wt_uni_stream_slotOne WebTransport uni stream's cross-datagram reassembly state (draft-ietf- webtrans-http3-15 4.3)
 Cwired_srvloop_wt_windowOne WT bidi/uni slot's receive-window bookkeeping, shared shape for both tables (see wired_srvloop_wt_stream_slot / _uni_stream_slot below)
 Cwired_srvrun_handlerThe application's request responder: the callback and its opaque context, registered on the loop as a pair (wired_srvloop_set_handler takes the same pair)
 Cwired_srvrun_obsOptional debug-log file paths, each 0 to disable (the default): a qlog (RFC 9002-shaped packet_sent/packet_received events, JSON-SEQ framed) and an NSS key log (SSLKEYLOGFILE format) for decrypting a capture in Wireshark
 Cwired_srvrun_optOpt-in polling-driver knobs, both off (0) by default so wired_server_run's behavior is unchanged
 Cwired_srvrun_wt_usageDraft-ietf-webtrans-http3-15 SS8: WebTransport feature-usage totals for one env, monotonic since wired_srvrun_env_init – the operational visibility the draft asks servers to keep for anomaly detection
 Cwired_srvthreads_optFan-out policy: per-worker CPU pinning, optional control-thread pinning, the srvrun knobs copied to every worker, and an optional shared AF_XDP config selecting multi-queue mode
 Cwired_srvworkers_optWorker fan-out policy
 Cwired_srvxdpOne open AF_XDP driver instance: the socket/rings, the TX frame pool, the learned peer MAC cache, and — when this instance opened its own BPF redirect filter rather than joining a shared one — those BPF objects
 Cwired_srvxdp_cfgCaller-supplied configuration for one AF_XDP-backed server socket
 Cwired_srvxdpbpfThe three kernel objects backing one interface's redirect filter
 Cwired_wt_buffered_datagramOne buffered pre-establishment datagram, copied (not viewed) since the caller's span may not outlive the call that offered it
 Cwired_wt_buffered_streamOne buffered pre-establishment stream: just its id, since the stream's own reassembly state lives in the transport layer (e.g
 Cwired_wt_occupancyCurrent WebTransport occupancy of the server loop the caller runs in, against the compile-time capacities – for an app exposing stats
 Cwired_wt_resource_decisionDraft-ietf-webtrans-http3-16 SS3.2 (WTH3-016/WTH3-018): the app's verdict for one Extended CONNECT's :authority/:path, filled in by a registered wired_wt_resource_check before the session is established
 Cwired_wt_schedA server-sent stream's send class and its place inside a flow, set by wired_server_wt_stream_schedule (the MoQT hub's draft-ietf-moq-transport -22 7.2 order on top of the RFC 9218 urgency)
 Cwired_wt_sessionA WebTransport session
 Cxdp_descAF_XDP descriptor (binary-compatible with linux/if_xdp.h struct xdp_desc)
 CxdpmacFixed-capacity ip -> mac cache
 CxskOne open AF_XDP socket: the fd, its UMEM, the four rings, and the mmap regions backing them (kept so xsksetup_close can munmap them)
 Cxsk_cfgCaller-supplied configuration for one AF_XDP socket
 CxskringOne SPSC ring side, caching the peer's last-known index so the hot path avoids re-reading the shared cell on every call
 Cxskring_viewRaw mmap'd ring pointers as handed in by the caller (or, in tests, plain local variables)
 Cxskumem_allocFixed-capacity LIFO free list of UMEM frame addresses