doc: add ifcvf driver document and release note

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
Xiao Wang 2018-04-17 15:06:24 +08:00 committed by Ferruh Yigit
parent a3f8150eac
commit 870d4196f4
4 changed files with 114 additions and 0 deletions

View File

@ -0,0 +1,8 @@
;
; Supported features of the 'ifcvf' vDPA driver.
;
; Refer to default.ini for the full list of available PMD features.
;
[Features]
x86-32 = Y
x86-64 = Y

96
doc/guides/nics/ifcvf.rst Normal file
View File

@ -0,0 +1,96 @@
.. SPDX-License-Identifier: BSD-3-Clause
Copyright(c) 2018 Intel Corporation.
IFCVF vDPA driver
=================
The IFCVF vDPA (vhost data path acceleration) driver provides support for the
Intel FPGA 100G VF (IFCVF). IFCVF's datapath is virtio ring compatible, it
works as a HW vhost backend which can send/receive packets to/from virtio
directly by DMA. Besides, it supports dirty page logging and device state
report/restore, this driver enables its vDPA functionality.
Pre-Installation Configuration
------------------------------
Config File Options
~~~~~~~~~~~~~~~~~~~
The following option can be modified in the ``config`` file.
- ``CONFIG_RTE_LIBRTE_IFCVF_VDPA_PMD`` (default ``y`` for linux)
Toggle compilation of the ``librte_ifcvf_vdpa`` driver.
IFCVF vDPA Implementation
-------------------------
IFCVF's vendor ID and device ID are same as that of virtio net pci device,
with its specific subsystem vendor ID and device ID. To let the device be
probed by IFCVF driver, adding "vdpa=1" parameter helps to specify that this
device is to be used in vDPA mode, rather than polling mode, virtio pmd will
skip when it detects this message.
Different VF devices serve different virtio frontends which are in different
VMs, so each VF needs to have its own DMA address translation service. During
the driver probe a new container is created for this device, with this
container vDPA driver can program DMA remapping table with the VM's memory
region information.
Key IFCVF vDPA driver ops
~~~~~~~~~~~~~~~~~~~~~~~~~
- ifcvf_dev_config:
Enable VF data path with virtio information provided by vhost lib, including
IOMMU programming to enable VF DMA to VM's memory, VFIO interrupt setup to
route HW interrupt to virtio driver, create notify relay thread to translate
virtio driver's kick to a MMIO write onto HW, HW queues configuration.
This function gets called to set up HW data path backend when virtio driver
in VM gets ready.
- ifcvf_dev_close:
Revoke all the setup in ifcvf_dev_config.
This function gets called when virtio driver stops device in VM.
To create a vhost port with IFC VF
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Create a vhost socket and assign a VF's device ID to this socket via
vhost API. When QEMU vhost connection gets ready, the assigned VF will
get configured automatically.
Features
--------
Features of the IFCVF driver are:
- Compatibility with virtio 0.95 and 1.0.
Prerequisites
-------------
- Platform with IOMMU feature. IFC VF needs address translation service to
Rx/Tx directly with virtio driver in VM.
Limitations
-----------
Dependency on vfio-pci
~~~~~~~~~~~~~~~~~~~~~~
vDPA driver needs to setup VF MSIX interrupts, each queue's interrupt vector
is mapped to a callfd associated with a virtio ring. Currently only vfio-pci
allows multiple interrupts, so the IFCVF driver is dependent on vfio-pci.
Live Migration with VIRTIO_NET_F_GUEST_ANNOUNCE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IFC VF doesn't support RARP packet generation, virtio frontend supporting
VIRTIO_NET_F_GUEST_ANNOUNCE feature can help to do that.

View File

@ -24,6 +24,7 @@ Network Interface Controller Drivers
enic
fm10k
i40e
ifcvf
igb
ixgbe
intel_vf

View File

@ -92,6 +92,15 @@ New Features
The ARM CPU subsystem features eight ARMv8 Cortex-A72 CPUs at 3.0 GHz, arranged in a multi-cluster
configuration.
* **Added IFCVF vDPA driver.**
Added IFCVF vDPA driver to support Intel FPGA 100G VF device. IFCVF works
as a HW vhost data path accelerator, it supports live migration and is
compatible with virtio 0.95 and 1.0. This driver registers ifcvf vDPA driver
to vhost lib, when virtio connected, with the help of the registered vDPA
driver the assigned VF gets configured to Rx/Tx directly to VM's virtio
vrings.
* **Added support for virtio-user server mode.**
In a container environment if the vhost-user backend restarts, there's no way
for it to reconnect to virtio-user. To address this, support for server mode