Skip to content
Tech News
← Back to articles

OpenBSD: PF queues break the 4 Gbps barrier

read original get OpenBSD PF Queue Card → more articles
Why This Matters

OpenBSD's PF packet filter now supports bandwidth configurations exceeding 4 Gbps by upgrading its internal data structures from 32-bit to 64-bit integers. This enhancement enables accurate traffic shaping for modern high-speed networks, ensuring reliable performance and scheduling at 10 Gbps and beyond. The update aligns OpenBSD with current and future network interface speeds, maintaining its relevance in high-performance environments.

Key Takeaways

Contributed by Peter N. M. Hansteen on 2026-03-19 from the queueing for Terabitia dept.

HFSC

HFSC

struct hfsc_sc

Gbps

u_int

OpenBSD 's PF packet filter has long supportedtraffic shaping with therules in pf.conf(5) . However, an internal 32-bit limitation in theservice curve structure () meant that bandwidth values were silently capped at approximately 4.29

With 10 G , 25 G , and 100 G network interfaces now commonplace, OpenBSD devs making huge progress unlocking the kernel for SMP , and adding drivers for cards supporting some of these speeds, this limitation started to get in the way. Configuring bandwidth 10G on a queue would silently wrap around, producing incorrect and unpredictable scheduling behaviour.

A new patch widens the bandwidth fields in the kernel's HFSC scheduler from 32-bit to 64-bit integers, removing this bottleneck entirely. The diff also fixes a pre-existing display bug in pftop(1) where bandwidth values above 4 Gbps would be shown incorrectly.

For end users, the practical impact is: PF queue bandwidth configuration now works correctly for modern high-speed interfaces. The familiar syntax just does what you'd expect:

... continue reading