Building and Installing:
------------------------
-Required: DPDK 2.1
+Required: DPDK 2.2
Optional (if building with vhost-cuse): `fuse`, `fuse-devel` (`libfuse-dev`
on Debian/Ubuntu)
1. Set `$DPDK_DIR`
```
- export DPDK_DIR=/usr/src/dpdk-2.1
+ export DPDK_DIR=/usr/src/dpdk-2.2
cd $DPDK_DIR
```
`export DPDK_BUILD=$DPDK_DIR/x86_64-ivshmem-linuxapp-gcc/`
```
- cd $(OVS_DIR)/openvswitch
+ cd $(OVS_DIR)/
./boot.sh
./configure --with-dpdk=$DPDK_BUILD [CFLAGS="-g -O2 -Wno-cast-align"]
make
3. DPDK port Rx Queues
- `ovs-vsctl set Open_vSwitch . other_config:n-dpdk-rxqs=<integer>`
+ `ovs-vsctl set Interface <DPDK interface> options:n_rxq=<integer>`
- The command above sets the number of rx queues for each DPDK interface.
+ The command above sets the number of rx queues for DPDK interface.
The rx queues are assigned to pmd threads on the same NUMA node in a
round-robin fashion. For more information, please refer to the
Open_vSwitch TABLE section in
DPDK vhost:
-----------
-DPDK 2.1 supports two types of vhost:
+DPDK 2.2 supports two types of vhost:
1. vhost-user
2. vhost-cuse
DPDK vhost-user Prerequisites:
-------------------------
-1. DPDK 2.1 with vhost support enabled as documented in the "Building and
+1. DPDK 2.2 with vhost support enabled as documented in the "Building and
Installing section"
2. QEMU version v2.1.0+
-numa node,memdev=mem -mem-prealloc
```
+3. Optional: Enable multiqueue support
+ The vhost-user interface must be configured in Open vSwitch with the
+ desired amount of queues with:
+
+ ```
+ ovs-vsctl set Interface vhost-user-2 options:n_rxq=<requested queues>
+ ```
+
+ QEMU needs to be configured as well.
+ The $q below should match the queues requested in OVS (if $q is more,
+ packets will not be received).
+ The $v is the number of vectors, which is '$q x 2 + 2'.
+
+ ```
+ -chardev socket,id=char2,path=/usr/local/var/run/openvswitch/vhost-user-2
+ -netdev type=vhost-user,id=mynet2,chardev=char2,vhostforce,queues=$q
+ -device virtio-net-pci,mac=00:00:00:00:00:02,netdev=mynet2,mq=on,vectors=$v
+ ```
+
DPDK vhost-cuse:
----------------
DPDK vhost-cuse Prerequisites:
-------------------------
-1. DPDK 2.1 with vhost support enabled as documented in the "Building and
+1. DPDK 2.2 with vhost support enabled as documented in the "Building and
Installing section"
As an additional step, you must enable vhost-cuse in DPDK by setting the
following additional flag in `config/common_linuxapp`:
core count of the system to be less than or equal to 64 when using an XL710
interface with DPDK.
+ vHost and QEMU v2.4.0+:
+ - For versions of QEMU v2.4.0 and later, it is currently not possible to
+ unbind more than one dpdkvhostuser port from the guest kernel driver
+ without causing the ovs-vswitchd process to crash. If this is a requirement
+ for your use case, it is recommended either to use a version of QEMU
+ between v2.2.0 and v2.3.1 (inclusive), or alternatively, to apply the
+ following patch to DPDK and rebuild:
+ http://dpdk.org/dev/patchwork/patch/7736/
+ This problem will likely be resolved in Open vSwitch at a later date, when
+ the next release of DPDK (which includes the above patch) is available and
+ integrated into OVS.
+
Bug Reporting:
--------------