Expand description
Vectorized recvmmsg and sendmmsg socket engine.
Provides BatchUdpSocket to send and receive datagram bursts of up to
BATCH_SIZE (32 datagrams) in a single syscall, reducing syscall overhead
and maximizing throughput in multi-core packet pipelines.
Structs§
- Batch
UdpSocket - A non-owning wrapper around a UDP socket file descriptor providing vectorized
batch send and receive operations via
libc::sendmmsgandlibc::recvmmsg. - Received
Datagram - Metadata for a single datagram received via
BatchUdpSocket::recvmmsg_batch.
Constants§
- BATCH_
SIZE - Maximum number of datagrams transferred in a single default batched syscall.
- BATCH_
SIZE_ 64 - Expanded 64-datagram burst size for high-packet-rate 10G/25G interfaces.
- BATCH_
SIZE_ 128 - Ultra-high 128-datagram burst size for maximum syscall amortization at 40G+ line rate.
Functions§
- send_
gso_ superpacket - Send a GSO superpacket using a
UDP_SEGMENTcmsg header. ReturnsOk(bytes_sent)on success. - set_
udp_ gso_ segment - Probe and optionally set socket-level
UDP_SEGMENTsize if supported by kernel. ReturnsOk(true)if supported and configured,Ok(false)if unsupported by kernel/NIC.