FreeBSD is not a switch. Bridging is done in software, so depending on your CPU the resulting bandwidth will be lower than your interface speed. There have been improvements in FreeBSD 13, but for anything beyond 1G I would recommend using a real switch.
Benchmark results will vary wildly depending on setup and hardware. There is a reason the universal advice about performance is “benchmark your workload”.My old numbers seem to suggest ~18 million packets per second, or about 8Gbps in 64-byte packets. It should easily saturate a 10Gb link with a more realistic packet size mix.[...]Secondly, if_bridge is sufficiently fast that using iperf3 you’re no longer measuring what if_bridge can do, but what the socket layer can do. iperf is the wrong tool for high-performance network benchmarking. It spends most of its time copying data in and out of userspace. It’s simply unable to generate sufficient load to produce useful results. Use pkt-gen/netmap or DPDK or some hardware packet generator.