[ovs-dev] [PATCH RFC v4 1/2] netdev-dpdk: Add support for DPDK 16.11

Ciara Loftus ciara.loftus at intel.com
Fri Oct 21 09:58:19 UTC 2016


This commit announces support for DPDK 16.11. Compaitibilty with DPDK
v16.07 is not broken yet thanks to only minor code changes being needed
for the upgrade. This may change soon however with the addition of
subsequent commits that integrate 16.11-only features.

Signed-off-by: Ciara Loftus <ciara.loftus at intel.com>

---
v2:
* Disable indirect desc for vHost & update commit message
---
 .travis/linux-build.sh   |  2 +-
 INSTALL.DPDK-ADVANCED.md |  6 +++---
 INSTALL.DPDK.rst         | 18 +++++++++---------
 NEWS                     |  1 +
 lib/netdev-dpdk.c        |  3 ++-
 5 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
index 3bcec93..6fe663c 100755
--- a/.travis/linux-build.sh
+++ b/.travis/linux-build.sh
@@ -80,7 +80,7 @@ fi
 
 if [ "$DPDK" ]; then
     if [ -z "$DPDK_VER" ]; then
-        DPDK_VER="16.07"
+        DPDK_VER="16.11"
     fi
     install_dpdk $DPDK_VER
     if [ "$CC" = "clang" ]; then
diff --git a/INSTALL.DPDK-ADVANCED.md b/INSTALL.DPDK-ADVANCED.md
index 0d6bcfa..c2a8497 100644
--- a/INSTALL.DPDK-ADVANCED.md
+++ b/INSTALL.DPDK-ADVANCED.md
@@ -46,7 +46,7 @@ for DPDK and OVS.
     For IVSHMEM case, set `export DPDK_TARGET=x86_64-ivshmem-linuxapp-gcc`
 
     ```
-    export DPDK_DIR=/usr/src/dpdk-16.07
+    export DPDK_DIR=/usr/src/dpdk-16.11
     export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET
     make install T=$DPDK_TARGET DESTDIR=install
     ```
@@ -358,7 +358,7 @@ For users wanting to do packet forwarding using kernel stack below are the steps
        cd /usr/src/cmdline_generator
        wget https://raw.githubusercontent.com/netgroup-polito/un-orchestrator/master/orchestrator/compute_controller/plugins/kvm-libvirt/cmdline_generator/cmdline_generator.c
        wget https://raw.githubusercontent.com/netgroup-polito/un-orchestrator/master/orchestrator/compute_controller/plugins/kvm-libvirt/cmdline_generator/Makefile
-       export RTE_SDK=/usr/src/dpdk-16.07
+       export RTE_SDK=/usr/src/dpdk-16.11
        export RTE_TARGET=x86_64-ivshmem-linuxapp-gcc
        make
        ./build/cmdline_generator -m -p dpdkr0 XXX
@@ -382,7 +382,7 @@ For users wanting to do packet forwarding using kernel stack below are the steps
        mount -t hugetlbfs nodev /dev/hugepages (if not already mounted)
 
        # Build the DPDK ring application in the VM
-       export RTE_SDK=/root/dpdk-16.07
+       export RTE_SDK=/root/dpdk-16.11
        export RTE_TARGET=x86_64-ivshmem-linuxapp-gcc
        make
 
diff --git a/INSTALL.DPDK.rst b/INSTALL.DPDK.rst
index c4b9167..aafa829 100644
--- a/INSTALL.DPDK.rst
+++ b/INSTALL.DPDK.rst
@@ -38,7 +38,7 @@ Build requirements
 In addition to the requirements described in the `installation guide
 <INSTALL.rst>`__, building Open vSwitch with DPDK will require the following:
 
-- DPDK 16.07
+- DPDK 16.11
 
 - A `DPDK supported NIC`_
 
@@ -69,9 +69,9 @@ DPDK
 1. Download the `DPDK sources`_, extract the file and set ``DPDK_DIR``:::
 
        $ cd /usr/src/
-       $ wget http://dpdk.org/browse/dpdk/snapshot/dpdk-16.07.zip
-       $ unzip dpdk-16.07.zip
-       $ export DPDK_DIR=/usr/src/dpdk-16.07
+       $ wget http://dpdk.org/browse/dpdk/snapshot/dpdk-16.11.zip
+       $ unzip dpdk-16.11.zip
+       $ export DPDK_DIR=/usr/src/dpdk-16.11
        $ cd $DPDK_DIR
 
 2. Configure and install DPDK
@@ -363,9 +363,9 @@ To being, instantiate the guest:::
 Download the DPDK sourcs to VM and build DPDK:::
 
     $ cd /root/dpdk/
-    $ wget http://dpdk.org/browse/dpdk/snapshot/dpdk-16.07.zip
-    $ unzip dpdk-16.07.zip
-    $ export DPDK_DIR=/root/dpdk/dpdk-16.07
+    $ wget http://dpdk.org/browse/dpdk/snapshot/dpdk-16.11.zip
+    $ unzip dpdk-16.11.zip
+    $ export DPDK_DIR=/root/dpdk/dpdk-16.11
     $ export DPDK_TARGET=x86_64-native-linuxapp-gcc
     $ export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET
     $ cd $DPDK_DIR
@@ -521,7 +521,7 @@ configuration for a 'demovm' guest that can be instantiated using `virsh`:::
         </disk>
         <disk type='dir' device='disk'>
           <driver name='qemu' type='fat'/>
-          <source dir='/usr/src/dpdk-16.07'/>
+          <source dir='/usr/src/dpdk-16.11'/>
           <target dev='vdb' bus='virtio'/>
           <readonly/>
         </disk>
@@ -596,7 +596,7 @@ Limitations
   The latest list of validated firmware versions can be found in the `DPDK
   release notes`_.
 
-.. _DPDK release notes: http://dpdk.org/doc/guides/rel_notes/release_16.07.html
+.. _DPDK release notes: http://dpdk.org/doc/guides/rel_notes/release_16.11.html
 
 Bug Reporting
 -------------
diff --git a/NEWS b/NEWS
index d07ec45..037bcda 100644
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,7 @@ Post-v2.6.0
    - DPDK:
      * New option 'n_rxq_desc' and 'n_txq_desc' fields for DPDK interfaces
        which set the number of rx and tx descriptors to use for the given port.
+     * Support for DPDK v16.11.
    - Fedora packaging:
      * A package upgrade does not automatically restart OVS service.
 
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 7c1523e..e8cd22a 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -2584,7 +2584,8 @@ netdev_dpdk_vhost_class_init(void)
         rte_vhost_driver_callback_register(&virtio_net_device_ops);
         rte_vhost_feature_disable(1ULL << VIRTIO_NET_F_HOST_TSO4
                                   | 1ULL << VIRTIO_NET_F_HOST_TSO6
-                                  | 1ULL << VIRTIO_NET_F_CSUM);
+                                  | 1ULL << VIRTIO_NET_F_CSUM
+                                  | 1ULL << VIRTIO_RING_F_INDIRECT_DESC);
         ovs_thread_create("vhost_thread", start_vhost_loop, NULL);
 
         ovsthread_once_done(&once);
-- 
2.4.3




More information about the dev mailing list