Hi Mark,
today, qemu's ethernet devices are a fixed combination of
MAC (Media Access Controller) and PHY (Physical Layer).
Real hardware is different: the controllers provide a MAC,
and many provide a PHY, too, but all controllers allow
one or even several external PHY(s).
Most (or all?) controllers use the same standard interface
to address their PHY (internal or external), something
which is completely missing today in qemu.
A better solution would use separate code for MAC and
PHY, so the controllers could share common code for the
PHY.
Configuration of a different PHY should be possible,
so users can run a system emulation of different
MAC-PHY combinations.
In addition to the PHY type, a PHY needs attributes
(link speed and link status).