How are you testing? Remember how bridging learns about systems on the network, it works by listing to incoming packets. So if you force one way only traffic or send to random targets and the target never sends anything; then the bridge forwarding table would never get seeded. This would make every look up miss, and hurt performance. You could check by dumping the forwarding table with 'br showmacs br0'