You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ip,ip6: add rate limiting for ICMP errors, ARP and ICMP input
Under a flood of bad packets (TTL=1, no-route, etc.), every packet
triggers expensive ICMP error construction: address lookups, header
prepend with potential memmove, and checksum computation. Similarly, ARP
and ICMP/ICMPv6 input processing can saturate the control plane thread
when flooded. None of this is rate limited today.
Add a per-node token bucket to all ICMP error nodes, ARP input, and
ICMP/ICMPv6 input nodes. The bucket refills once per second and the
check runs before any per-packet work. When the bucket is empty, the
whole vector is moved to a dedicated drop node via
rte_node_next_stream_move(), avoiding any unnecessary processing.
Three separate rates are configurable via the graph config API:
icmp-error-rate, arp-rate and icmp-rate. All default to 1000 packets/sec
per node per worker. Setting a rate to 0 disables the limit. Rate
changes take effect immediately without graph reload.
Signed-off-by: Robin Jarry <rjarry@redhat.com>
0 commit comments