← Back
Home › Systems › Networking and edge

packet-processor

kernel-bypass packet processing

DPDK, XDP

SystemTechniques · 3Primitives · 26 packet-processor Thread per coreconcurrency · medium: Shard-per-core design: pinned threads, no shared state, message passing between coresPacket classificationnetworking · medium: Multi-field rule matching (tuple space search, decision trees) and flow cachesVector packet processingnetworking · medium: Process packets in vectors through a node graph to amortise i-cache and dispatch costSPSC ring bufferdata-structures · low: Bounded wait-free queue for exactly one producer and one consumer thread, built from an array and two indices with acquire/release ordering.›Numa aware allocationhardware-os · low: Allocate memory and pin threads on the local NUMA node; first-touch and interleave policiesBuffer pools for zero-allocation I/Ohardware-os · low: Preallocate a fixed set of aligned I/O buffers and recycle them through a free list, so the hot path never mallocs, faults or unmaps. The bounded count doubles as back pressure.›SIMD programminghardware-os · low: Process 4-16 lanes per instruction with AVX2, AVX-512 or NEON via Rust std::arch, with runtime dispatch and a portable fallback.›Kernel-bypass networkingnetworking · low: User space (DPDK, AF_XDP) or an in-driver eBPF hook (XDP) handles packets straight from NIC rings, skipping sockets, for 10-40 Mpps per core.›MPMC bounded queueconcurrency · low: Vyukov's array queue for many producers and consumers: each slot carries a sequence number, so one CAS per operation claims a slot without locks.›Cuckoo hashingdata-structures · low: Every key lives in one of two candidate buckets, so lookups read at most two cache lines; inserts evict residents to their alternate bucket.›CPU caches and the memory hierarchyhardware-os · low: Sizes, line widths and latencies of L1/L2/L3/DRAM on modern x86 and Apple M-series, and the data-layout rules that follow from them.›Virtual memory and the TLBhardware-os · low: How page tables and TLBs translate every address, what TLB reach means, and when 2 MiB or 1 GiB huge pages pay off on Linux.›Ebpf xdpnetworking · low: EBPF programs at the XDP/tc hooks for in-kernel packet processing at line rateInternet checksumnetworking · low: Ones-complement IP/TCP/UDP checksum, incremental update (RFC 1624) and offloadLongest prefix matchnetworking · low: IP prefix lookup structures (DIR-24-8, Poptrie, LC-trie) for routes, ACLs and geo-IPReceive side scalingnetworking · low: NIC hashing of flows to RX queues (RSS) and symmetric hashing for per-core processingCpu isolation and pinninghardware-os · low: Isolcpus/nohz_full, thread affinity and IRQ steering for jitter-free hot threadsio_uringnetworking · low: Linux async I/O through two shared-memory rings (submissions in, completions out), batching or eliminating syscalls for sockets and files alike.›Interval treedata-structures · low: Index of ranges that answers "which intervals overlap this point or range?" in O(log n + k); static sorted-array form is the compact, cache-friendly choice.›+ 10 more primitives

Similar systems

Share the most building blocks with this one.