It’s also important to realise that XORP can’t never be as fast in this test as Quagga and OpenBGPD can (in theory). In XORP routing info has to flow from protocol process through two processes to the fib (kernel routing table):
bgp -> rib -> fea -> fib
In Quagga routing info has to flow from protocol daemon through one process to the fib:
bgpd -> zebra -> fib
In OpenBGPD routing info is put directly into fib:
bgpd -> fib