Linux kernel gains in-kernel QUIC transport infrastructure
A netdev series from Xin Long adds core socket, stream, path, and crypto building blocks so subsystems and apps can use QUIC without userspace protocol stacks.
Xin Long has posted a fifteen-part series to the netdev list that introduces first-class QUIC support in the Linux networking stack, covering the protocol's core transport machinery rather than a thin userspace shim.
QUIC, standardized in RFC 9000 and related documents, is a multiplexed, encrypted transport that runs over UDP. It aims for fast connection setup, stream-level flow control, and connection migration when a host changes network path. Until now, Linux has largely left that work to userspace libraries. The new code puts the transport itself in the kernel while still leaving the TLS handshake to userspace via the existing net/handshake interfaces.
The practical payoff is twofold. Kernel consumers such as SMB and NFS can move data over QUIC after the handshake with little extra glue, using ordinary in-kernel transport calls. User programs get familiar socket semantics: connect, listen, accept, sendmsg, recvmsg, and the usual option and name lookups, plus ALPN-based dispatch so different processes can share the same UDP endpoints according to negotiated application protocols. Control traffic stays in-kernel to cut syscall overhead, and the design leaves room for sendfile-style zero-copy and later crypto offload.
Architecturally the series avoids bolting QUIC onto a single UDP upper-layer protocol. A dedicated IPPROTO_QUIC socket type sits above UDP tunnels so one connection can hold multiple paths (needed for migration) and one UDP socket can serve many QUIC associations. Supporting pieces cover stream tables and limits, connection-ID sets and lookup, dual-stack address handling, New Reno congestion control and RTT sampling, packet-number spaces for loss detection and ACK generation, key installation across Initial through 1-RTT levels, AEAD payload and header protection, retry tokens, and the timers that drive loss recovery, delayed ACKs, path validation, PMTU probes, and pacing.
Paolo Abeni has acked substantial parts of the work. The series targets the fundamental RFCs for the base protocol, TLS usage, loss and congestion control, unreliable datagrams, version negotiation, and QUIC version 2, aligned with the in-progress sockets API draft for in-kernel QUIC. It is infrastructure and scaffolding first: enough for sockets to exist and for follow-on patches to flesh out full protocol behavior, not a finished drop-in replacement for every userspace stack overnight.