The BGP-based SDN Solutions webinar triggered another interesting question from one the attendees:
It seems like the BGP route reflector functionality can be implemented as a Virtual Machine. Will a VM have enough resources to meet the requirements of a RR?
Short answer: Yes.
The only resources a BGP route reflector needs are CPU and memory. The networking requirements aren't that critical - the BGP sessions are more likely to be CPU-bound than bandwidth-bound.
Considering this, it makes little sense to run a BGP route reflector on a router or switch - you're wasting valuable forwarding hardware to provide functionality that could be implemented on any x86 server. IXP operators realized that a long time ago; many IXPs use Bird or Quagga as route server.
The service providers offering more than just IP connectivity couldn't use the same trick. Most open-source BGP implementations don't support the additional address families needed to implement L2VPNs or L3VPNs. However, it seems the large customers managed to push the traditional networking vendors hard enough - Cisco, Juniper and Alcatel Lucent are offering BGP router reflector functionality in a VM format - from Cisco's Cloud Services Router (CSR 1000v) and IOS XRv to Juniper's Virtual Route Reflector and ALU's VSR-RR.
Summary: if you want to implement BGP route reflector functionality outside of the regular forwarding path (as a dedicated control-plane function), don't waste money buying a router to do it. Use either an open-source solution or network operating system in VM format.
BGP-Based SDN Solutions webinar describes numerous BGP-based SDN solutions and open-source tools you could use to build another one.