X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=docs%2Fusecases%2Fvmxnet3.rst;h=427ebbaf1151047ffddcc4a4478a40aa62c35e95;hb=d22f1906e7f1800bcef072357bd8d7d20143f64b;hp=7e7210f83fc4edf6ed52e7365c7688f95b0d8424;hpb=82b22f75b903adf6323c1aeb35f1ba2884d1ce87;p=vpp.git diff --git a/docs/usecases/vmxnet3.rst b/docs/usecases/vmxnet3.rst index 7e7210f83fc..427ebbaf115 100644 --- a/docs/usecases/vmxnet3.rst +++ b/docs/usecases/vmxnet3.rst @@ -14,15 +14,13 @@ that are not provided with the standard dpdk vmxnet3 driver. - Interrupt mode - Adaptive mode -- TSO/LRO mode +- LRO/TSO mode Does not support ---------------- This driver does yet support the following features. -- NUMA support -- RSS/multiple queues - VLAN filter Prerequisites @@ -31,14 +29,64 @@ Prerequisites - This code is tested with vfio-pci driver installed with Ubuntu 18.04 which has kernel version 4.15.0-33-generic. -- This code is tested with ESXi vSwitch version 6.0, release build - 3620759. +- This code is tested with ESXi vSwitch version 6.5 and 6.7 for LRO/TSO support, + VMware Workstation 15 Pro (no LRO/TSO), and VMware Fusion 11 Pro (no LRO/TSO). - Driver requires MSI-X interrupt support, which is not supported by uio_pci_generic driver, so vfio-pci needs to be used. On systems without IOMMU vfio driver can still be used with recent kernels which support no-iommu mode. +VMware Fusion for Mac +--------------------- + +VMware fusion does not have a menu option to change the default driver (e1000) +to the **vmxnet3** driver. VPP supports the **vmxnet3** driver. + +These instructions describe how to change the e1000 driver for VMware fusion. + +* From the VMware Fusion menu bar select **Window** then **Virtual Machine + Library**. +* From the Virtual Machine menu right click on the Virtual Machine you are using + and select **Show in Finder** +* Find the name associated with the VM you are using, right click on it and + select **Show Package Contents** +* Find the **.vmx** file and edit it. +* Find all the occurrences of **e1000** and change them to **vmxnet3** + +If you are concerned more with configuration not performance the vmxnet3 driver +can be set to **interrupt** mode in VPP. This will save a great deal on battery +usage. Do this with the following + +VMware Workstation PRO 15 for Linux +----------------------------------- + +VMware Workstation does not have a menu option to change the default driver +(e1000) to the **vmxnet3** driver. VPP supports the **vmxnet3** driver. + +These instructions describe how to change the e1000 driver for VMware +Workstation PRO 15 Linux. You may need to be a superuser for performing these +steps. + +* Shut down the VM you are about to change. +* From the vmware folder where vmware creates and stores the VM's, change the + directory to the specific VM which you want to modify, and use your favorite + text editor to open the corresponding VM's .vmx file. By default, it is + $HOME/vmware//.vmx +* Locate the line for the interface which you want to modify. For example, if it + is ethernet1, then change the line **ethernet1.virtualDev = "e1000"** to + **ethernet1.virtualDev = "vmxnet3"** +* Save the file and power on the VM. + +If you are concerned more with configuration not performance the vmxnet3 driver +can be set to **interrupt** mode in VPP. This will save a great deal on battery +usage. Do this with the following + +.. code-block:: console + + $ sudo vppctl set interface rx-mode interrupt + + System setup ~~~~~~~~~~~~ @@ -50,15 +98,22 @@ Load VFIO driver $ sudo modprobe vfio-pci +Make sure the interface is down + +.. code-block:: console + + $ sudo ifconfig down + +The next 2 steps are optional and may be accomplished by specifying the optional +"bind" keyword when creating the vmxnet3 interface. + For systems without IOMMU only, enable unsafe NOIOMMU mode .. code-block:: console $ echo Y | sudo tee /sys/module/vfio/parameters/enable_unsafe_noiommu_mode -To bind interface to vfio-pci first install the :ref:`configutil`. This will download -the dpdk_devbind.py script. It is located in */usr/vpp/vpp-config/scripts* with Centos -and */usr/local/vpp/vpp-config/scripts* with Ubuntu. +To bind interface to vfio-pci first install get the dpdk_devbind.py script. Bind the driver with the following commands: @@ -83,12 +138,13 @@ Bind the driver with the following commands: Interface Creation ~~~~~~~~~~~~~~~~~~ -Now create the interface dynamically with following: +Now create the interface dynamically with following. The bind option must be +specified if pci is not already bound manually by above steps. .. code-block:: console - $ sudo vppctl create interface vmxnet3 0000:0b:00.0 - $ sudo set int state vmxnet3-0/b/0/0 up + $ sudo vppctl create interface vmxnet3 0000:0b:00.0 bind + $ sudo vppctl set interface state vmxnet3-0/b/0/0 up Interface Deletion ~~~~~~~~~~~~~~~~~~ @@ -97,7 +153,7 @@ If the interface needs to be deleted: .. code-block:: console - $ sudo delete interface vmxnet3 + $ sudo vppctl delete interface vmxnet3 Show vmxnet3 ~~~~~~~~~~~~ @@ -109,7 +165,7 @@ For example: .. code-block:: console - $ sudo vppctl show vmxnet + $ sudo vppctl show vmxnet3 Interface: vmxnet3-0/b/0/0 (ifindex 1) Version: 1 PCI Address: 0000:0b:00.0