[ipxe-devel] Xen netfront support
Michael Brown
mcb30 at ipxe.org
Tue Jul 29 22:20:08 UTC 2014
I'm please to announce that iPXE now natively supports Xen netfront
virtual NICs. This may be of interest to anyone wanting to use iPXE
running in a Xen PV-HVM domain.
I have one issue which I'm not sure how to handle, and would appreciate
feedback from anyone who frequently uses Xen:
For each configured NIC, Xen exposes both an emulated PCI NIC (for OSes
with no native Xen drivers) and a netfront virtual NIC (for OSes with
native Xen drivers). Xen provides a mechanism for OSes to "unplug" the
emulated PCI NICs. Operating systems with native Xen drivers will
typically unplug the emulated PCI NICs to prevent confusion.
iPXE could easily unplug the emulated PCI NICs. However, this operation
is irreversible. If the loaded OS does not include native Xen drivers,
then it will not be able to see any network devices. This is undesirable.
iPXE could easily expose both the emulated PCI NICs and the netfront
virtual NICs (as e.g. net0 and net1). This works perfectly (since the
backends are entirely independent; the "hardware" really _is_ providing
two NICs which happen to have the same MAC address and be connected to
the same network), but it's somewhat confusing for a user to see:
iPXE> ifstat
net0: 56:3c:dc:73:51:7e using netfront on vif/0 (open)
[Link:up, TX:0 TXE:0 RX:0 RXE:0]
net1: 56:3c:dc:73:51:7e using rtl8139 on PCI00:04.0 (open)
[Link:up, TX:0 TXE:0 RX:0 RXE:0]
iPXE cannot easily mask out just the emulated NICs, since we have no
easy way to identify which ones they are (other than irreversibly
unplugging them). Masking by PCI vendor:device IDs known to be used by
qemu doesn't work, since there's nothing preventing someone using PCI
pass-through to expose a real physical NIC with the same vendor:device
ID. Also, this approach would be fragile since the list of emulated NIC
types is known to change occasionally.
Any suggestions?
Michael
More information about the ipxe-devel
mailing list