Typical static use cases are management VLANs, backup replication streams, and known infrastructure traffic.
Dynamic offload. This path hooks into Suricata’s native bypass API. When a flow worker determines that a flow meets a configured bypass policy, it places a request on a DPDK ring buffer and immediately resumes packet processing. A separate bypass manager thread drains the queue and programs rte_flow rules sequentially. The worker does not wait for NIC rule insertion. After successful rule creation, the hardware flow handle is linked to Suricata’s software flow entry.
Dynamic offload installs 5-tuple flow matches. Supported policies include post-handshake TLS/QUIC filtering, elephant-flow thresholds based on bytes or packets, and subnet allowlisting. The YAML configuration or Suricata ruleset determines what qualifies; allowlists can be reloaded through Suricata’s Unix socket without restarting the engine.
Visibility and fallback. For dynamically offloaded flows, hardware rules can use COUNT+DROP actions, preserving flow-level traffic statistics associated with Suricata’s software flow table. This is not continued packet-content inspection: after offload, the filtered packets no longer reach the CPU. Static filters likewise exclude their matching traffic before Suricata creates application-level observations. If the NIC flow table fills, new dynamic requests fall back to software bypass and Suricata exposes this through counters. Hardware capacities vary, from roughly 65,000 to millions of rules. Suricata Turbo has been validated on NICs from Intel, NVIDIA, and DYNANIC.