1. Overview of vDPA Drivers Features
This section explains the supported features that are listed in the table below.
- csum
- Device can handle packets with partial checksum.
- guest csum
- Guest can handle packets with partial checksum.
- mac
- Device has given MAC address.
- gso
- Device can handle packets with any GSO type.
- guest tso4
- Guest can receive TSOv4.
- guest tso6
- Guest can receive TSOv6.
- ecn
- Device can receive TSO with ECN.
- ufo
- Device can receive UFO.
- host tso4
- Device can receive TSOv4.
- host tso6
- Device can receive TSOv6.
- mrg rxbuf
- Guest can merge receive buffers.
- ctrl vq
- Control channel is available.
- ctrl rx
- Control channel RX mode support.
- any layout
- Device can handle any descriptor layout.
- guest announce
- Guest can send gratuitous packets.
- mq
- Device supports Receive Flow Steering.
- version 1
- v1.0 compliant.
- log all
- Device can log all write descriptors (live migration).
- indirect desc
- Indirect buffer descriptors support.
- event idx
- Support for avail_idx and used_idx fields.
- mtu
- Host can advise the guest with its maximum supported MTU.
- in_order
- Device can use descriptors in ring order.
- IOMMU platform
- Device support IOMMU addresses.
- packed
- Device support packed virtio queues.
- proto mq
- Support the number of queues query.
- proto log shmfd
- Guest support setting log base.
- proto rarp
- Host can broadcast a fake RARP after live migration.
- proto reply ack
- Host support requested operation status ack.
- proto host notifier
- Host can register memory region based host notifiers.
- proto pagefault
- Slave expose page-fault FD for migration process.
- queue statistics
- Support virtio queue statistics query.
- BSD nic_uio
- BSD nic_uio module supported.
- Linux VFIO
- Works with vfio-pci kernel module.
- Other kdrv
- Kernel module other than above ones supported.
- ARMv7
- Support armv7 architecture.
- ARMv8
- Support armv8a (64bit) architecture.
- Power8
- Support PowerPC architecture.
- x86-32
- Support 32bits x86 architecture.
- x86-64
- Support 64bits x86 architecture.
- Usage doc
- Documentation describes usage, In doc/guides/vdpadevs/.
- Design doc
- Documentation describes design. In doc/guides/vdpadevs/.
- Perf doc
- Documentation describes performance values, In doc/perf/.
Note
Most of the features capabilities should be provided by the drivers via the
next vDPA operations: get_features and get_protocol_features.
3. Features Table
Features availability in vDPA drivers
| Feature |
i
f
c
v
f |
m
l
x
5 |
| csum |
|
Y |
| guest csum |
|
Y |
| mac |
|
|
| gso |
|
|
| guest tso4 |
|
|
| guest tso6 |
|
|
| ecn |
|
|
| ufo |
|
|
| host tso4 |
|
Y |
| host tso6 |
|
Y |
| mrg rxbuf |
|
|
| ctrl vq |
|
|
| ctrl rx |
|
|
| any layout |
|
Y |
| guest announce |
|
Y |
| mq |
|
Y |
| version 1 |
|
Y |
| log all |
|
Y |
| indirect desc |
|
|
| event idx |
|
|
| mtu |
|
Y |
| in_order |
|
|
| IOMMU platform |
|
|
| packed |
|
Y |
| proto mq |
|
Y |
| proto log shmfd |
|
Y |
| proto rarp |
|
|
| proto reply ack |
|
|
| proto host notifier |
|
Y |
| proto pagefault |
|
|
| queue statistics |
|
Y |
| BSD nic_uio |
|
|
| Linux VFIO |
|
|
| Other kdrv |
|
Y |
| ARMv7 |
|
|
| ARMv8 |
|
Y |
| Power8 |
|
Y |
| x86-32 |
Y |
Y |
| x86-64 |
Y |
Y |
| Usage doc |
|
Y |
| Design doc |
|
Y |
| Perf doc |
|
|
Note
Features marked with “P” are partially supported. Refer to the appropriate
driver guide in the following sections for details.