wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
Loading...
Searching...
No Matches
srvdriver.h
Go to the documentation of this file.
1#ifndef WIRED_SRVDRIVER_SRVDRIVER_H
2#define WIRED_SRVDRIVER_SRVDRIVER_H
3
9
20
28
48
74int wired_srvdriver_parse(int argc, char** argv, wired_srvdriver_opt* opt);
75
101 const wired_srvdriver_opt* opt);
102
103#endif
RFC 9000 17.2 / RFC 9001 5 / RFC 8446 4.4: cold-start a server connection from a client Initial datag...
int wired_srvdriver_parse(int argc, char **argv, wired_srvdriver_opt *opt)
Parse --port/--workers/--ifindex/--queue/--ip/--skb-mode/ --cores/--control-core/--pin-core from argv...
int wired_srvdriver_run(wired_srvboot_id *id, wired_srvrun_handler h, wired_srvrun_obs obs, const wired_srvdriver_opt *opt)
Dispatch to the driver selected by opt->kind, binding/serving on opt->port: WIRED_SRVDRIVER_PLAIN -> ...
wired_srvdriver_kind
Which of the four run paths wired_srvdriver_run takes.
Definition srvdriver.h:22
@ WIRED_SRVDRIVER_XDP
AF_XDP, wired_server_run_opt + opt->xdp.
Definition srvdriver.h:25
@ WIRED_SRVDRIVER_WORKERS
multi-process fork, wired_srvworkers_run
Definition srvdriver.h:24
@ WIRED_SRVDRIVER_THREADS
multi-thread fan-out, wired_srvthreads_run
Definition srvdriver.h:26
@ WIRED_SRVDRIVER_PLAIN
single-process wired_server_run_opt
Definition srvdriver.h:23
The complete server event loop: the sanctioned socket-owning layer over the socket-free srvboot/srvlo...
Thread-based worker fan-out over the single-process wired_srvrun_serve_env: one control thread spawns...
Multi-process worker fan-out over the single-process wired_server_run: fork N shared-nothing child pr...
AF_XDP driver integration for the HTTP/3 server: opens one AF_XDP socket plus its BPF redirect filter...
The fixed server identity a bootstrap needs: the X25519 handshake key pair, the ECDSA P-256 signing s...
Definition srvboot.h:23
Resolved driver selection and its knobs, filled entirely by wired_srvdriver_parse from argv (or by ha...
Definition srvdriver.h:32
wired_srvrun_opt run
PLAIN/XDP: busy_poll and app callbacks.
Definition srvdriver.h:43
wired_srvxdp_cfg xdp
XDP knobs (also used by THREADS+ifindex).
Definition srvdriver.h:45
wired_srvdriver_kind kind
which of the four run paths to take
Definition srvdriver.h:33
u16 port
–port (default 4433); the single source of truth for the UDP port both wired_srvdriver_run binds/serv...
Definition srvdriver.h:34
int pin_core
WIRED_SRVDRIVER_PLAIN only: CPU to pin to, -1 = off.
Definition srvdriver.h:41
wired_srvworkers_opt workers
WORKERS knobs.
Definition srvdriver.h:44
wired_srvthreads_opt threads
THREADS knobs.
Definition srvdriver.h:46
The application's request responder: the callback and its opaque context, registered on the loop as a...
Definition srvrun.h:234
Optional debug-log file paths, each 0 to disable (the default): a qlog (RFC 9002-shaped packet_sent/p...
Definition srvrun.h:251
Opt-in polling-driver knobs, both off (0) by default so wired_server_run's behavior is unchanged.
Definition srvrun.h:306
Fan-out policy: per-worker CPU pinning, optional control-thread pinning, the srvrun knobs copied to e...
Definition srvthreads.h:28
Worker fan-out policy.
Definition srvworkers.h:40
Caller-supplied configuration for one AF_XDP-backed server socket.
Definition srvxdp.h:21
unsigned short u16
unsigned 16-bit integer
Definition types.h:17