Skip to content

Detection Overview

OpenShield classifies packets at L2–L7 before the kernel processes them. The detection pipeline runs inside the XDP program — zero context switches, zero allocations. A Bloom filter accelerates whitelist lookups by skipping the HASH map when an IP is definitely not whitelisted, saving ~60–100ns per packet on the common path.

Detection categories

CategoryVectorsChecks
L2/L3/L4 validation12MAC filter, IPv4 bogon (7 ranges), IPv6 bogon (6 ranges), bogus TCP flags (5 combos), malformed headers
Rate-based scoring6PPS (850), BPS (8.5 MB/s), TCP (680), UDP (425), ICMP (85), SYN (170) — per-IP, per-second
Connection tracking2Blind SYN-ACK, blind RST
Amplification9DNS (QR-bit check) + 8-port configurable generic UDP reflection
L7 signature16Configurable port+protocol+mask rules
Statistical5SYN/FIN ratio, entropy (16 buckets), TTL, packet size, connection rate
SYNPROXY1SplitMix64 cookie-based SYN flood mitigation

All features toggleable

Each detection vector has a corresponding enabled flag in the config. Disable any that produce false positives for your traffic profile.

Next steps

Pipeline · L2/L3/L4 Detection · Rate-Based Detection