Performance Data

Real Numbers, Not
Marketing Round Trips.

We benchmarked Neurowall's fast packet filter using a kernel-native testing tool at 256-byte packets — the size most FPS titles actually send — across every filtering mode and traffic scenario, so game studios and hosting providers can pick a configuration with real numbers instead of guesswork.

0.9046μs
Lowest measured latency — prefilter-only profile, 256B packets
1.1M+
Packets/sec, single core, prefilter-only profile
10K
Packets per benchmark run, 5 profiles × 4 traffic scenarios
Methodology

Measured in-kernel,
not extrapolated from a lab network.

Results come from Neurowall's throughput_benchmark tool, which drives the compiled filter engine directly via a kernel-native testing facility — the same code path that runs in production, exercised with no network hardware, NIC drivers, or virtualization overhead in the measurement loop itself.

5 Filtering Modes

prefilter_only, prefilter_rules, prefilter_ddos, prefilter_ddos_rules, and prefilter_rules_ddos — each a different combination of enabled filtering steps.

4 Traffic Scenarios per Mode

rules_miss (no match, worst case for rule evaluation), rule_hit, blocklist_hit, and complex_config (large ruleset) — 20 measured configurations in total.

256-Byte Packets

Chosen because it's the dominant packet size for FPS titles like CS2, Valorant, and Call of Duty — the largest and most latency-sensitive segment of the competitive gaming market.

10,000 Packets per Run

Each configuration processes 10,000 packets through the real compiled program; wall-clock time is measured directly by the kernel test harness, not sampled or estimated.

128-byte (mobile) and 512-byte (MMO/MOBA) figures on this page are directional estimates based on observed packet-size latency scaling (roughly ±10% per 256-byte step), not separately measured runs. We show them for planning purposes and label them clearly as estimates below.

Results — 256-Byte Packets

Every profile,
worst-case scenario (rules_miss).

"rules_miss" is the traffic scenario where a packet doesn't match any rule — the most CPU-expensive path since the full ruleset must be evaluated before a default verdict. This is the scenario to plan capacity around.

prefilter_only
0.9046 μs · 1.11M pps
prefilter_ddos
0.9400 μs · 1.06M pps
prefilter_ddos_rules
0.9366 μs · 1.07M pps
prefilter_rules
1.0242 μs · 0.98M pps
prefilter_rules_ddos
1.0378 μs · 0.96M pps
Profilerules_missrule_hitblocklist_hitcomplex_config
prefilter_only0.9046 μs0.9149 μs0.9047 μs0.9173 μs
prefilter_ddos0.9400 μs0.9367 μs0.9478 μs0.9388 μs
prefilter_ddos_rules0.9366 μs0.9312 μs0.9338 μs0.9363 μs
prefilter_rules1.0242 μs1.0113 μs1.0000 μs0.9898 μs
prefilter_rules_ddos1.0378 μs1.0332 μs1.0334 μs1.0410 μs
By Game Traffic Profile

Estimated latency
at other packet sizes.

Directional estimates based on ±10% latency scaling per 256-byte step, applied to the measured 256-byte figures above. Treat these as planning guidance, not guaranteed numbers — always validate on your own traffic mix before committing to a profile.

Game TypePacket SizeEst. LatencyRecommended Profile
Mobile games128 bytes~0.81–0.85 μsprefilter_only — lightweight, matches low CPU budget on mobile backends
FPS (CS2, Valorant, CoD)256 bytes0.90–1.04 μs (measured)prefilter_ddos_rules — balanced protection, ~0.94 μs
MMO / MOBA (WoW, FFXIV, LoL)512 bytes~1.00–1.14 μsprefilter_rules_ddos — full ruleset for larger, richer traffic
Minecraft (Java/Bedrock)256–512 bytes~0.90–1.14 μsprefilter_ddos_rules — balanced protection; UDP/TCP on ports 25565–25575, <100ms RTT target tolerates the full profile range

Minecraft is not separately benchmarked yet — the range above is interpolated from the measured 256-byte and estimated 512-byte figures, since Minecraft's packet sizes vary by activity (chunk/world data is larger, player-action packets are smaller) and it tolerates a higher RTT target (<100ms) than competitive FPS titles. We'll publish a dedicated measured run here once available.

Recommendations

Which profile to run,
by deployment goal.

Mobile Backends

prefilter_only — the lightest profile at ~0.90 μs, ideal where server-side CPU is shared across many concurrent low-bandwidth connections.

Competitive FPS / MMO / MOBA

prefilter_ddos_rules — balanced protection at ~0.94 μs, combining DDoS mitigation with rule enforcement without the full-rules latency cost.

DDoS-Only Deployments

prefilter_ddos or prefilter_ddos_rules — fastest DDoS-focused profiles (~0.94 μs) for infrastructure that needs flood protection without a large custom ruleset.

Full Policy Enforcement

prefilter_rules_ddos — the complete profile at ~1.04 μs, for gateways that need both a full custom ruleset and DDoS protection, where the ~0.1 μs premium is negligible against network RTT.

Multi-Tenant Game Hosting

Run different profiles per tenant based on their game type — Neurowall's per-node licensing means switching profiles doesn't change your cost structure.

Reproduce These Numbers

The benchmark script and methodology are available for hosting providers and studios who want to validate results against their own kernel version and hardware.

Why These Numbers, Not Vendor Claims

Most published firewall
benchmarks measure the wrong thing.

If you've compared firewall vendors before, you've likely run into one of these measurement gaps — each one makes a number look better than what you'll actually experience.

Common measurement practiceWhy it misleads for game servers
Round-trip / network benchmark (client → server → client)Bundles physical network latency, NIC hardware, and OS scheduling jitter together with firewall processing time — you can't isolate what the security layer itself costs
64-byte "line rate" packet benchmarksStandard network-equipment test size, but far smaller than the 128–512 byte packets game servers actually send — a firewall's per-byte parsing cost doesn't show up at 64 bytes the way it does at real sizes
Best-case scenario only (rule_hit or no ruleset loaded)Skips the worst-case path (an unmatched packet evaluated against a full ruleset) — exactly the scenario a real deployment with an active policy runs constantly
Marketing "up to X Gbps" headline numbersThroughput at large packet sizes doesn't translate directly to per-packet latency at small, gaming-typical packet sizes — the numbers answer a different question than "how much delay does this add to a player's shot"

Our numbers isolate the filter engine's own processing cost using a kernel-native testing tool, at the packet size that matters (256B for FPS), across the worst-case scenario (rules_miss) as well as best-case — so you're comparing the actual cost of the thing you're evaluating, not a number shaped to look good.

What Happens If You Skip Benchmarking

Picking a profile blind
costs you in production.

You deploy the heaviest profile "to be safe"
prefilter_rules_ddos adds roughly 0.14 μs over prefilter_only per packet — negligible in isolation, but at sustained millions of packets per second on shared infrastructure, that's real CPU headroom you didn't need to spend, capacity you can't use for more concurrent players or tenants.
You deploy the lightest profile "for speed"
prefilter_only skips rule evaluation and full DDoS mitigation — fine for a low-risk mobile backend, but a public FPS matchmaking server on that profile is under-protected against the exact booter traffic most likely to target it.
You trust a vendor's headline throughput number
A "10 Gbps" claim measured at 1500-byte packets tells you nothing about latency at the 256-byte packets your FPS title actually sends — you find out the real number in production, under load, during your launch weekend.
You run one profile across every tenant or game type
Multi-tenant hosting providers serving both mobile titles and competitive FPS games waste CPU over-protecting the mobile workload, or under-protect the FPS workload — profile-per-workload sizing only works if you know the actual cost difference.
Get started

Run these benchmarks against your traffic.