Hello,
FreeBSD does not support MPLS and VRF, but it support ECMP by recompile kernel with ¡°options RADIX_MPATH¡±, and quagga/frr have supported it for few years . Not much of  people use MPLS on freeware. BSDer always use multi routing tables which FB called FIB to replace VRF. It¡¯s limited, but it¡¯s usable to most people.
For the past years, FB has refactored the routing subsystem aimed to reduce contentions on SMP systems, [1][2]. Linux is  winner, but now FB can archive up to 10MPPS forward rate on one 8-core x86 server.  It¡¯s enough to many people, right ?
And FB has an awesome feature called vimage/vnet, it¡¯s similar to LXC on Linux with different implementation. We run serval bird/frr instance in different vnet jail on one host, and run serval on another host for hot backup or load sharing,  each instance is independent with ~5% performance loss.


Simon Ke
20191031



[1] https://wiki.freebsd.org/ProjectsRoutingProposal
[2] https://wiki.freebsd.org/ProjectsRoutingProposal/API