.. code-block:: console
- examples/kni/build/app/kni -l 0-3 -n 4 -- -p 0x1 -P --config="(0,1,3)"
+ <build_dir>/examples/dpdk-kni -l 0-3 -n 4 -- -p 0x1 -P --config="(0,1,3)"
This command generates one network device vEth0 for physical port.
If specify more physical ports, the generated network device will be vEth1, vEth2, and so on.
modprobe uio
echo 512 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
modprobe uio_pci_generic
- python usertools/dpdk-devbind.py -b uio_pci_generic 00:03.0
+ ./usertools/dpdk-devbind.py -b uio_pci_generic 00:03.0
We use testpmd as the forwarding application in this example.
.. code-block:: console
- python usertools/dpdk-devbind.py -b vfio-pci 00:03.0
+ ./usertools/dpdk-devbind.py -b vfio-pci 00:03.0
Example
~~~~~~~
.. code-block:: console
- $ l3fwd-power -l 0-1 -- -p 1 -P --config="(0,0,1)" \
+ $ dpdk-l3fwd-power -l 0-1 -- -p 1 -P --config="(0,0,1)" \
--no-numa --parse-ptype
It is used to specify link speed of virtio device. Link speed is a part of
link status structure. It could be requested by application using
rte_eth_link_get_nowait function.
- (Default: 10000 (10G))
+ (Default: 0xffffffff (Unknown))
+
+#. ``vectorized``:
+
+ It is used to specify whether virtio device prefers to use vectorized path.
+ Afterwards, dependencies of vectorized path will be checked in path
+ election.
+ (Default: 0 (disabled))
Below devargs are supported by the virtio-user vdev:
It is used to specify link speed of virtio device. Link speed is a part of
link status structure. It could be requested by application using
rte_eth_link_get_nowait function.
- (Default: 10000 (10G))
+ (Default: 0xffffffff (Unknown))
+#. ``vectorized``:
+
+ It is used to specify whether virtio device prefers to use vectorized path.
+ Afterwards, dependencies of vectorized path will be checked in path
+ election.
+ (Default: 0 (disabled))
Virtio paths Selection and Usage
--------------------------------
both negotiated, this path will be selected.
#. Packed virtqueue in-order non-mergeable path: If in-order feature is negotiated and
Rx mergeable is not negotiated, this path will be selected.
+#. Packed virtqueue vectorized Rx path: If building and running environment support
+ (AVX512 || NEON) && in-order feature is negotiated && Rx mergeable
+ is not negotiated && TCP_LRO Rx offloading is disabled && vectorized option enabled,
+ this path will be selected.
+#. Packed virtqueue vectorized Tx path: If building and running environment support
+ (AVX512 || NEON) && in-order feature is negotiated && vectorized option enabled,
+ this path will be selected.
Rx/Tx callbacks of each Virtio path
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packed virtqueue non-meregable path virtio_recv_pkts_packed virtio_xmit_pkts_packed
Packed virtqueue in-order mergeable path virtio_recv_mergeable_pkts_packed virtio_xmit_pkts_packed
Packed virtqueue in-order non-mergeable path virtio_recv_pkts_packed virtio_xmit_pkts_packed
+ Packed virtqueue vectorized Rx path virtio_recv_pkts_packed_vec virtio_xmit_pkts_packed
+ Packed virtqueue vectorized Tx path virtio_recv_pkts_packed virtio_xmit_pkts_packed_vec
============================================ ================================= ========================
Virtio paths Support Status from Release to Release
.. table:: Virtio Paths and Releases
- ============================================ ============= ============= =============
- Virtio paths 16.11 ~ 18.05 18.08 ~ 18.11 19.02 ~ 19.11
- ============================================ ============= ============= =============
- Split virtqueue mergeable path Y Y Y
- Split virtqueue non-mergeable path Y Y Y
- Split virtqueue vectorized Rx path Y Y Y
- Split virtqueue simple Tx path Y N N
- Split virtqueue in-order mergeable path Y Y
- Split virtqueue in-order non-mergeable path Y Y
- Packed virtqueue mergeable path Y
- Packed virtqueue non-mergeable path Y
- Packed virtqueue in-order mergeable path Y
- Packed virtqueue in-order non-mergeable path Y
- ============================================ ============= ============= =============
+ ============================================ ============= ============= ============= =======
+ Virtio paths 16.11 ~ 18.05 18.08 ~ 18.11 19.02 ~ 19.11 20.05 ~
+ ============================================ ============= ============= ============= =======
+ Split virtqueue mergeable path Y Y Y Y
+ Split virtqueue non-mergeable path Y Y Y Y
+ Split virtqueue vectorized Rx path Y Y Y Y
+ Split virtqueue simple Tx path Y N N N
+ Split virtqueue in-order mergeable path Y Y Y
+ Split virtqueue in-order non-mergeable path Y Y Y
+ Packed virtqueue mergeable path Y Y
+ Packed virtqueue non-mergeable path Y Y
+ Packed virtqueue in-order mergeable path Y Y
+ Packed virtqueue in-order non-mergeable path Y Y
+ Packed virtqueue vectorized Rx path Y
+ Packed virtqueue vectorized Tx path Y
+ ============================================ ============= ============= ============= =======
QEMU Support Status
~~~~~~~~~~~~~~~~~~~