Compile the output filter rules into per peer filter rules.
authorclaudio <claudio@openbsd.org>
Fri, 10 Mar 2023 07:57:15 +0000 (07:57 +0000)
committerclaudio <claudio@openbsd.org>
Fri, 10 Mar 2023 07:57:15 +0000 (07:57 +0000)
commitb900620c33fbabab5c84d6791e40c856f4854a10
treec1ace066c7ae1e25fda3a85076c36c4af4460466
parentc611b7a9812e8415430ef80a54849501802d267a
Compile the output filter rules into per peer filter rules.

especially on route-servers the output filters are in the hot path so
reducing the number of rules to check has a big impact. I have seen a
25% to 30% speedup in my big IXP testbench.
The output ruleset is applied and copied for each peer during config reload
and when a peer is initially added.
OK tb@
usr.sbin/bgpd/bgpd.h
usr.sbin/bgpd/rde.c
usr.sbin/bgpd/rde.h
usr.sbin/bgpd/rde_filter.c
usr.sbin/bgpd/rde_peer.c
usr.sbin/bgpd/rde_update.c