DealingWithiPXE
Problem
New hypervisors come with iPXE installed instead of gPXE. This is not a problem in itself since iPXE brings a lot of new interesting features compared to gPXE. But the virtio iPXE ROM that's provided by default doesn't behave as it should with VMs that have several NICs : it only tries to boot from the first found NIC and then it stops if the boot failed, instead of trying the other NICs. For us, it's a big problem since many VMs have two NICs : the first one is the public, and the second one is the private, and that's the one that will be used to pxe-boot.
Solution
Instead of downgrading to gPXE (the past pathetic workaround), there's a better way that consists in customizing the rom by embedding a menu in it. The generic method to embed scripts is described [here http://ipxe.org/embed].