
Issue 11
© Solarflare Communications 2014
310
Solarflare Server Adapter
User Guide
Solarflare Plug-in Model
The Solarflare model for SR-IOV support is a hybrid of the traditional and typical approaches. The
Solarflare "plugin" maintains the traditional (software) data path through virtio frontend to the KVM
host (and then through the Linux bridge to the PF of the network driver). However, there is also an
alternative (accelerated) data path through the VF driver directly to the network adapter from the
guest. Packets can be received on either data path transparently to the guest VM's network stack.
On transmit the loaded and enabled plugin decides whether to use the software path or accelerated
path.
Figure 50: Solarflare Plug-in Model
A VM can be created/cloned using traditional tools and networking to/from the VM initially uses the
standard software network path. If a VF on the network adapter is then passed-through into the
guest, the guest sees new hardware has been "hot-plugged" and binds the Solarflare plugin driver
to this VF. This plugin driver automatically registers with the virtio driver as an accelerated network
plugin. Once the VF driver has registered, subsequent traffic to/from the guest uses the accelerated
data path accessing the adapter directly from the guest. If the VF is hot "unplugged" (i.e. removed
from the guest), the plugin de-registers with the virtio front end and the networking traffic reverts
to the software data path.
This approach means there is no dependency on the VF or its driver for the networking data path of
the VM. Acceleration can be disabled at any time if needed without losing network connectivity.
Migration is fully supported in this model - between hosts with identical network adapters AND also
between non-identical hosts. For example, migration is still possible between hosts containing
network adapters from differing vendors (even if one of the adapters does not support SR-IOV).
When migrating a VM the typical operations are:
• Hot-unplug any network VF in the guest (to remove any hardware knowledge from the guest,
networking in the guest VM falls back to the standard software data path).
• Migrate the guest VM to a new machine