I had 1 GigE, 2 FastE interfaces, no full feeds, about 16k routes, pushing 100-120Mbps, and I always hit 100% cpu, causing Zebra's BGP process to die repeatedly. And, whenever I removed a route from the Zebra daemon, it didn't get removed from the kernel routing table, and a simple 'route delete x.x.x.x' did not work, so the route was effectively STUCK until the next reboot. (No, killing and restarting the Zebra processes did not work either, nor did a 'route flush'). I've tried different CPUs, motherboards, hard drives, network cards, kernels, sysctl variables, memory modules, no, some, and all (about 80) IPFW rules, and still, same results. 100% CPU while the box is sucking ass at 40-50kpps. Bottom line, from my personal experiences, FreeBSD sucks as a router, and Zebra sucks as a routing process. Yeah yeah yeah, Juniper uses FreeBSD for their code, but a) it's heavily modified, modifications you won't find on the net for yourself, b) they use ASICs to speed up certain operations, and there is no PCI card with a PacketGoFaster(tm) chipset you can buy to get better performance out of your desktop gaming Samba-serving router. I hear Olive has some good performance, but guess what, it's not public domain and your chances of finding it are very slim, so you're SOL for now. But hey, your mileage may vary.