diff -Nru dpdk-16.07/debian/changelog dpdk-16.07/debian/changelog --- dpdk-16.07/debian/changelog 2016-08-12 12:56:32.000000000 +0200 +++ dpdk-16.07/debian/changelog 2016-09-19 15:56:25.000000000 +0200 @@ -1,3 +1,43 @@ +dpdk (16.07-0ubuntu3) yakkety; urgency=medium + + [ Christian Ehrhardt ] + * merge of latest deb_dpdk packaging for dpdk 16.07 (LP: #1625009) + - excluding ppc enablement due to being post-FF + - mix and match of changelogs as it is not yet uploaded to Debian + * add man pages for installed binaries + - add backport of patches from upstream + - call generation of man pages in d/rules + * d/t/test-dkms retain dkms logs for debugging (LP: #1625028) + * fix rte_kni dkms build with kernel >= 4.8 (LP: #1625021) + - d/p/dpdk-dev-v2-kni-fix-build-with-kernel-4.8.patch replaced macro with + its value in kni ethtool drivers. + + [ Luca Boccassi ] + * Add optional binary kernel modules package, disabled by default (build with + DEB_BUILD_OPTIONS=kernel_modules to enable). If enabled will build kernel + modules against the local, current kernel version (override by adding + ksrc= to DEB_BUILD_OPTIONS) into a + dpdk-modules- package + * Set HOST_/EXTRA/CPP/C/LDFLAGS in d/rules so that all built objects pick up + all flags set by the dpkg environment, like hardening flags + * Add rte-compile-pre-cppflags.patch to make all DPDK objects pick up the + user specified or environment specified CPP/C/LDFLAGS. + Fixes Lintian warning: + - W: dpdk-dev: hardening-no-relro + usr/share/dpdk/x86_64-default-linuxapp-gcc/app/dpdk-pmdinfogen + * Add a brief HOWTO to debian/README.source with instructions to build the + packages, for CI systems and the like. + * Build with RTE_DEVEL_BUILD=n to avoid building test pmds with an rpath + hardcoded to the package build PATH. Fixes Lintian Error: + - E: dpdk: binary-or-shlib-defines-rpath usr/bin/dpdk-pdump + /home/lboccass/git/dpdk_deb/debian/build/shared-root/lib + + [ Santiago RR ] + * improve debian/copyright + * remove duplicate entries from d/control + + -- Christian Ehrhardt Mon, 19 Sep 2016 08:49:44 +0200 + dpdk (16.07-0ubuntu2) yakkety; urgency=medium * d/t/test-initscripts fix false positive in adt diff -Nru dpdk-16.07/debian/control dpdk-16.07/debian/control --- dpdk-16.07/debian/control 2016-08-12 12:55:35.000000000 +0200 +++ dpdk-16.07/debian/control 2016-09-19 15:56:25.000000000 +0200 @@ -1,6 +1,7 @@ Source: dpdk Priority: optional -Maintainer: deb_dpdk Packagers +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: deb_dpdk Packagers Build-Depends: debhelper (>= 9), dh-python, dh-systemd (>= 1.5), @@ -26,7 +27,6 @@ Package: dpdk Section: admin Architecture: amd64 arm64 i386 -Homepage: http://www.dpdk.org Depends: libdpdk-dev (= ${binary:Version}), lsb-base (>= 3.2-14), pciutils, @@ -42,7 +42,6 @@ Package: dpdk-dev Section: devel Architecture: amd64 arm64 i386 -Homepage: http://www.dpdk.org Depends: libdpdk-dev (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} Description: Data Plane Development Kit (development files) DPDK is a set of libraries for fast packet processing. Applications run @@ -148,7 +147,6 @@ Package: libethdev4 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__ethdev_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -161,7 +159,6 @@ Package: librte-acl2 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__ethdev_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -174,7 +171,6 @@ Package: librte-cfgfile2 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__cfgfile_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -187,7 +183,6 @@ Package: librte-cmdline2 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends} @@ -199,7 +194,6 @@ Package: librte-cryptodev1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__cryptodev_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -212,7 +206,6 @@ Package: librte-distributor1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__distributor_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -225,7 +218,6 @@ Package: librte-eal2 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__eal_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -238,7 +230,6 @@ Package: librte-hash2 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__hash_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -251,7 +242,6 @@ Package: librte-ip-frag1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__ip__frag_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -264,7 +254,6 @@ Package: librte-jobstats1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__jobstats_8h_source.html Pre-Depends: ${misc:Pre-Depends} @@ -277,7 +266,6 @@ Package: librte-kni2 Architecture: amd64 arm64 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__kni_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -290,7 +278,6 @@ Package: librte-kvargs1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__kvargs_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -303,7 +290,6 @@ Package: librte-lpm2 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__lpm_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -316,7 +302,6 @@ Package: librte-mbuf2 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__mbuf_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -329,7 +314,6 @@ Package: librte-mempool2 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__mempool_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -342,7 +326,6 @@ Package: librte-meter1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__meter_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -355,7 +338,6 @@ Package: librte-pipeline3 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__pipeline_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -368,7 +350,6 @@ Package: librte-pmd-af-packet1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/browse/dpdk/tree/drivers/net/af_packet Pre-Depends: ${misc:Pre-Depends} @@ -381,7 +362,6 @@ Package: librte-pmd-bnxt1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends} @@ -393,7 +373,6 @@ Package: librte-pmd-bond1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.html Pre-Depends: ${misc:Pre-Depends} @@ -406,7 +385,6 @@ Package: librte-pmd-cxgbe1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/cxgbe.html Pre-Depends: ${misc:Pre-Depends} @@ -419,7 +397,6 @@ Package: librte-pmd-e1000-1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/e1000em.html Pre-Depends: ${misc:Pre-Depends} @@ -432,7 +409,6 @@ Package: librte-pmd-ena1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/ena.html Pre-Depends: ${misc:Pre-Depends} @@ -445,7 +421,6 @@ Package: librte-pmd-enic1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/enic.html Pre-Depends: ${misc:Pre-Depends} @@ -458,7 +433,6 @@ Package: librte-pmd-fm10k1 Architecture: amd64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/fm10k.html Pre-Depends: ${misc:Pre-Depends} @@ -471,7 +445,6 @@ Package: librte-pmd-i40e1 Architecture: amd64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/i40e.html Pre-Depends: ${misc:Pre-Depends} @@ -484,7 +457,6 @@ Package: librte-pmd-ixgbe1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/ixgbe.html Pre-Depends: ${misc:Pre-Depends} @@ -497,7 +469,6 @@ Package: librte-pmd-null-crypto1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/cryptodevs/null.html Pre-Depends: ${misc:Pre-Depends} @@ -510,7 +481,6 @@ Package: librte-pmd-null1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/browse/dpdk/tree/drivers/net/null Pre-Depends: ${misc:Pre-Depends} @@ -523,7 +493,6 @@ Package: librte-pmd-pcap1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/pcap_ring.html#libpcap-based-pmd Pre-Depends: ${misc:Pre-Depends} @@ -536,7 +505,6 @@ Package: librte-pmd-ring2 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/pcap_ring.html#rings-based-pmd Pre-Depends: ${misc:Pre-Depends} @@ -549,7 +517,6 @@ Package: librte-pmd-vhost1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/vhost.html Pre-Depends: ${misc:Pre-Depends} @@ -562,7 +529,6 @@ Package: librte-pmd-virtio1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/virtio.html Pre-Depends: ${misc:Pre-Depends} @@ -575,7 +541,6 @@ Package: librte-pmd-vmxnet3-uio1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/nics/vmxnet3.html Pre-Depends: ${misc:Pre-Depends} @@ -588,7 +553,6 @@ Package: librte-pmd-xenvirt1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/guides/xen/pkt_switch.html#xen-pmd-frontend-prerequisites Pre-Depends: ${misc:Pre-Depends} @@ -601,7 +565,6 @@ Package: librte-port3 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__port_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -614,7 +577,6 @@ Package: librte-power1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__power_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -627,7 +589,6 @@ Package: librte-reorder1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__reorder_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -640,7 +601,6 @@ Package: librte-ring1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__ring_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -653,7 +613,6 @@ Package: librte-sched1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__sched_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -666,7 +625,6 @@ Package: librte-table2 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__table_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -679,7 +637,6 @@ Package: librte-timer1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__timer_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -692,7 +649,6 @@ Package: librte-vhost3 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Homepage: http://dpdk.org/doc/api/rte__virtio__net_8h.html Pre-Depends: ${misc:Pre-Depends} @@ -705,7 +661,6 @@ Package: librte-pdump1 Architecture: amd64 arm64 i386 -Section: libs Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends} @@ -714,3 +669,4 @@ DPDK is a set of libraries for fast packet processing. Applications run in user-space and communicate directly with dedicated network interfaces. This package contains the runtime libraries for librte_pdump + diff -Nru dpdk-16.07/debian/control.modules.in dpdk-16.07/debian/control.modules.in --- dpdk-16.07/debian/control.modules.in 1970-01-01 01:00:00.000000000 +0100 +++ dpdk-16.07/debian/control.modules.in 2016-09-19 08:55:18.000000000 +0200 @@ -0,0 +1,13 @@ +Package: dpdk-modules-#KVERS# +Section: kernel +Architecture: amd64 arm64 i386 +Provides: dpdk-modules +Recommends: linux-image-#KVERS# +Built-Using: ${built:using:kernel} +Description: Data Plane Development Kit (rte kni, igb uio modules) + DPDK is a set of libraries for fast packet processing. Applications run + in user-space and communicate directly with dedicated network interfaces. + This package contains the source code for the igb_uio kernel module. + . + This package provides the kernel drivers for userspace networking. + Includes Intel DPDK kernel modules. diff -Nru dpdk-16.07/debian/copyright dpdk-16.07/debian/copyright --- dpdk-16.07/debian/copyright 2016-07-29 13:25:47.000000000 +0200 +++ dpdk-16.07/debian/copyright 2016-09-19 09:05:24.000000000 +0200 @@ -5,42 +5,51 @@ Files: * Copyright: 2008-2014 Cisco Systems, Inc. 2012-2014 6WIND S.A. - 1999-2015 Intel Corporation. + 1999-2016 Intel Corporation. 2010-2013 Tilera Corporation. - 2012 Mellanox. + 2012-2016 Mellanox. 2007 VMware, Inc. 2007 Nuova Systems, Inc. 2014 IBM Corporation. -License: BSD+GPLv2+LGPLv2 - BSD: - Copyright (c) The Regents of the University of California. - All rights reserved. - . - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - . - GPL: + and many other contributors. +License: BSD-3-clause + +Files: lib/librte_eal/linuxapp/* +Copyright: 2007-2016, Intel Corporation + 2006-2007 Myricom, Inc. for some LRO specific code +License: GPL-2 + +Files: drivers/net/enic/* +Copyright: 2007, Nuova Systems, Inc. + 2008-2016, Cisco Systems, Inc. +License: BSD-2-clause + +Files: + lib/librte_eal/common/include/rte_pci_dev_*.h + lib/librte_eal/linuxapp/xen_dom0/* + lib/librte_vhost/eventfd_link/eventfd_link.h + drivers/crypto/qat/qat_adf/* +Copyright: 2010-2016, Intel Corporation. +License: BSD-3-clause or GPL-2 + +Files: + lib/librte_eal/bsdapp/eal/include/exec-env/rte_dom0_common.h + lib/librte_eal/linuxapp/eal/include/exec-env/rte_dom0_common.h + lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h +Copyright: 2007-2014, Intel Corporation. +License: BSD-3-clause or LGPL-2.1 + +Files: lib/librte_compat/rte_compat.h + drivers/net/vmxnet3/base/upt1_defs.h + drivers/net/vmxnet3/base/vmxnet3_defs.h + scripts/validate-abi.sh +Copyright: 2015, Neil Horman + 2007, VMware, Inc. +License: BSD-2-clause + +Files: buildtools/pmdinfogen/* +Copyright: 2016, Neil Horman +License: GPL-2 This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -57,6 +66,27 @@ On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". +Files: debian/kernel-version + debian/prepare-modules +Copyright: 2009-2016 Andreas Beckmann + 2010-2016 Russ Allbery +License: GPL-2.0+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General Public + License version 2 can be found in "/usr/share/common-licenses/GPL-2". + Files: debian/* Copyright: 2015, 2016 Canonical Ltd. License: GPL-3 @@ -74,3 +104,56 @@ . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -Nru dpdk-16.07/debian/kernel-version dpdk-16.07/debian/kernel-version --- dpdk-16.07/debian/kernel-version 1970-01-01 01:00:00.000000000 +0100 +++ dpdk-16.07/debian/kernel-version 2016-09-19 08:48:29.000000000 +0200 @@ -0,0 +1,61 @@ +#!/usr/bin/perl +# +# Copyright (c) 2009-2016 Andreas Beckmann +# 2010-2016 Russ Allbery +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this script. If not, see . +# +# This program comes from: +# https://anonscm.debian.org/viewvc/pkg-nvidia/packages/nvidia-graphics-drivers/trunk/debian/module/debian/kernel-version?view=markup +# The original copyright and license (GPL2+) can be found at: +# https://anonscm.debian.org/viewvc/pkg-nvidia/packages/nvidia-graphics-drivers/trunk/debian/copyright?view=markup +# +# Extract the kernel version from the kernel version header file. Takes the +# kernel source path as its only argument. If the version header couldn't be +# found, print nothing and exit quietly. + +use warnings; + +my $ksrc = shift; +unless ($ksrc && (-f "$ksrc/include/linux/version.h" || -f "$ksrc/include/generated/uapi/linux/version.h")) { + exit 0; +} +my $found = 0; +my $line; +if (open (VERSION, "$ksrc/include/linux/version.h")) { + if (defined(VERSION) && ($line = )) { + if ($line =~ /"(.+)"/) { + print "$1\n"; + $found = 1; + } + } +} +exit 0 if $found; +if (open (VERSION, "$ksrc/include/generated/utsrelease.h")) { + if (defined(VERSION) && ($line = )) { + if ($line =~ /UTS_RELEASE *"(.+)"/) { + print "$1\n"; + $found = 1; + } + } +} +exit 0 if $found; +# kernel.release is no longer useful since 3.1.0 +unless (open (VERSION, "$ksrc/include/config/kernel.release")) { + exit 0; +} +if (defined(VERSION) && ($line = )) { + print "$line"; +} +exit 0; diff -Nru dpdk-16.07/debian/patches/dpdk-dev-v2-1-4-doc-move-tool-guides-in-their-own-subdirectory.patch dpdk-16.07/debian/patches/dpdk-dev-v2-1-4-doc-move-tool-guides-in-their-own-subdirectory.patch --- dpdk-16.07/debian/patches/dpdk-dev-v2-1-4-doc-move-tool-guides-in-their-own-subdirectory.patch 1970-01-01 01:00:00.000000000 +0100 +++ dpdk-16.07/debian/patches/dpdk-dev-v2-1-4-doc-move-tool-guides-in-their-own-subdirectory.patch 2016-09-19 09:01:35.000000000 +0200 @@ -0,0 +1,528 @@ +diff --git a/doc/guides/index.rst b/doc/guides/index.rst +index 0441859..57570f6 100644 +--- a/doc/guides/index.rst ++++ b/doc/guides/index.rst +@@ -41,6 +41,7 @@ DPDK documentation + nics/index + cryptodevs/index + sample_app_ug/index ++ tools/index + testpmd_app_ug/index + faq/index + howto/index +diff --git a/doc/guides/sample_app_ug/index.rst b/doc/guides/sample_app_ug/index.rst +index 96bb317..6573452 100644 +--- a/doc/guides/sample_app_ug/index.rst ++++ b/doc/guides/sample_app_ug/index.rst +@@ -72,11 +72,9 @@ Sample Applications User Guide + dist_app + vm_power_management + tep_termination +- proc_info + ptpclient + performance_thread + ipsec_secgw +- pdump + + **Figures** + +diff --git a/doc/guides/sample_app_ug/pdump.rst b/doc/guides/sample_app_ug/pdump.rst +deleted file mode 100644 +index ac0e7c9..0000000 +--- a/doc/guides/sample_app_ug/pdump.rst ++++ /dev/null +@@ -1,144 +0,0 @@ +- +-.. BSD LICENSE +- Copyright(c) 2016 Intel Corporation. All rights reserved. +- All rights reserved. +- +- Redistribution and use in source and binary forms, with or without +- modification, are permitted provided that the following conditions +- are met: +- +- * Redistributions of source code must retain the above copyright +- notice, this list of conditions and the following disclaimer. +- * Redistributions in binary form must reproduce the above copyright +- notice, this list of conditions and the following disclaimer in +- the documentation and/or other materials provided with the +- distribution. +- * Neither the name of Intel Corporation nor the names of its +- contributors may be used to endorse or promote products derived +- from this software without specific prior written permission. +- +- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- +- +-dpdk-pdump Application +-====================== +- +-The ``dpdk-pdump`` tool is a Data Plane Development Kit (DPDK) tool that runs as +-a DPDK secondary process and is capable of enabling packet capture on dpdk ports. +- +- .. Note:: +- +- * The ``dpdk-pdump`` tool depends on libpcap based PMD which is disabled +- by default in the build configuration files, +- owing to an external dependency on the libpcap development files +- which must be installed on the board. +- Once the libpcap development files are installed, the libpcap based PMD +- can be enabled by setting CONFIG_RTE_LIBRTE_PMD_PCAP=y and recompiling the DPDK. +- +- +-Running the Application +------------------------ +- +-The tool has a number of command line options: +- +-.. code-block:: console +- +- ./build/app/dpdk-pdump -- +- --pdump '(port= | device_id=), +- (queue=), +- (rx-dev= | +- tx-dev=), +- [ring-size=], +- [mbuf-size=], +- [total-num-mbufs=]' +- [--server-socket-path=] +- [--client-socket-path=] +- +-The ``--pdump`` command line option is mandatory and it takes various sub arguments which are described in +-below section. +- +- .. Note:: +- +- * Parameters inside the parentheses represents mandatory parameters. +- +- * Parameters inside the square brackets represents optional parameters. +- +- * Multiple instances of ``--pdump`` can be passed to capture packets on different port and queue combinations. +- +-The ``--server-socket-path`` command line option is optional. This represents the server socket directory. +-If no value is passed default values are used i.e. ``/var/run/.dpdk/`` for root users and ``~/.dpdk/`` +-for non root users. +- +-The ``--client-socket-path`` command line option is optional. This represents the client socket directory. +-If no value is passed default values are used i.e. ``/var/run/.dpdk/`` for root users and ``~/.dpdk/`` +-for non root users. +- +- +-The ``--pdump`` parameters +-~~~~~~~~~~~~~~~~~~~~~~~~~~ +- +-``port``: +-Port id of the eth device on which packets should be captured. +- +-``device_id``: +-PCI address (or) name of the eth device on which packets should be captured. +- +- .. Note:: +- +- * As of now the ``dpdk-pdump`` tool cannot capture the packets of virtual devices +- in the primary process due to a bug in the ethdev library. Due to this bug, in a multi process context, +- when the primary and secondary have different ports set, then the secondary process +- (here the ``dpdk-pdump`` tool) overwrites the ``rte_eth_devices[]`` entries of the primary process. +- +-``queue``: +-Queue id of the eth device on which packets should be captured. The user can pass a queue value of ``*`` to enable +-packet capture on all queues of the eth device. +- +-``rx-dev``: +-Can be either a pcap file name or any Linux iface. +- +-``tx-dev``: +-Can be either a pcap file name or any Linux iface. +- +- .. Note:: +- +- * To receive ingress packets only, ``rx-dev`` should be passed. +- +- * To receive egress packets only, ``tx-dev`` should be passed. +- +- * To receive ingress and egress packets separately ``rx-dev`` and ``tx-dev`` +- should both be passed with the different file names or the Linux iface names. +- +- * To receive ingress and egress packets separately ``rx-dev`` and ``tx-dev`` +- should both be passed with the same file names or the the Linux iface names. +- +-``ring-size``: +-Size of the ring. This value is used internally for ring creation. The ring will be used to enqueue the packets from +-the primary application to the secondary. This is an optional parameter with default size 16384. +- +-``mbuf-size``: +-Size of the mbuf data. This is used internally for mempool creation. Ideally this value must be same as +-the primary application's mempool's mbuf data size which is used for packet RX. This is an optional parameter with +-default size 2176. +- +-``total-num-mbufs``: +-Total number mbufs in mempool. This is used internally for mempool creation. This is an optional parameter with default +-value 65535. +- +- +-Example +-------- +- +-.. code-block:: console +- +- $ sudo ./build/app/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap' +diff --git a/doc/guides/sample_app_ug/proc_info.rst b/doc/guides/sample_app_ug/proc_info.rst +deleted file mode 100644 +index 73f2195..0000000 +--- a/doc/guides/sample_app_ug/proc_info.rst ++++ /dev/null +@@ -1,71 +0,0 @@ +- +-.. BSD LICENSE +- Copyright(c) 2015 Intel Corporation. All rights reserved. +- All rights reserved. +- +- Redistribution and use in source and binary forms, with or without +- modification, are permitted provided that the following conditions +- are met: +- +- * Redistributions of source code must retain the above copyright +- notice, this list of conditions and the following disclaimer. +- * Redistributions in binary form must reproduce the above copyright +- notice, this list of conditions and the following disclaimer in +- the documentation and/or other materials provided with the +- distribution. +- * Neither the name of Intel Corporation nor the names of its +- contributors may be used to endorse or promote products derived +- from this software without specific prior written permission. +- +- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- +- +-dpdk-procinfo Application +-========================= +- +-The dpdk-procinfo application is a Data Plane Development Kit (DPDK) application +-that runs as a DPDK secondary process and is capable of retrieving port +-statistics, resetting port statistics and printing DPDK memory information. +-This application extends the original functionality that was supported by +-dump_cfg. +- +-Running the Application +------------------------ +-The application has a number of command line options: +- +-.. code-block:: console +- +- ./$(RTE_TARGET)/app/dpdk-procinfo -- -m | [-p PORTMASK] [--stats | --xstats | +- --stats-reset | --xstats-reset] +- +-Parameters +-~~~~~~~~~~ +-**-p PORTMASK**: Hexadecimal bitmask of ports to configure. +- +-**--stats** +-The stats parameter controls the printing of generic port statistics. If no +-port mask is specified stats are printed for all DPDK ports. +- +-**--xstats** +-The stats parameter controls the printing of extended port statistics. If no +-port mask is specified xstats are printed for all DPDK ports. +- +-**--stats-reset** +-The stats-reset parameter controls the resetting of generic port statistics. If +-no port mask is specified, the generic stats are reset for all DPDK ports. +- +-**--xstats-reset** +-The xstats-reset parameter controls the resetting of extended port statistics. +-If no port mask is specified xstats are reset for all DPDK ports. +- +-**-m**: Print DPDK memory information. +diff --git a/doc/guides/tools/index.rst b/doc/guides/tools/index.rst +new file mode 100644 +index 0000000..d7654a2 +--- /dev/null ++++ b/doc/guides/tools/index.rst +@@ -0,0 +1,40 @@ ++.. BSD LICENSE ++ Copyright(c) 2016 Canonical Limited. All rights reserved. ++ All rights reserved. ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in ++ the documentation and/or other materials provided with the ++ distribution. ++ * Neither the name of Intel Corporation nor the names of its ++ contributors may be used to endorse or promote products derived ++ from this software without specific prior written permission. ++ ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++Tool User Guides ++================ ++ ++.. toctree:: ++ :maxdepth: 2 ++ :numbered: ++ ++ proc_info ++ pdump ++ +diff --git a/doc/guides/tools/pdump.rst b/doc/guides/tools/pdump.rst +new file mode 100644 +index 0000000..ac0e7c9 +--- /dev/null ++++ b/doc/guides/tools/pdump.rst +@@ -0,0 +1,144 @@ ++ ++.. BSD LICENSE ++ Copyright(c) 2016 Intel Corporation. All rights reserved. ++ All rights reserved. ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in ++ the documentation and/or other materials provided with the ++ distribution. ++ * Neither the name of Intel Corporation nor the names of its ++ contributors may be used to endorse or promote products derived ++ from this software without specific prior written permission. ++ ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++ ++dpdk-pdump Application ++====================== ++ ++The ``dpdk-pdump`` tool is a Data Plane Development Kit (DPDK) tool that runs as ++a DPDK secondary process and is capable of enabling packet capture on dpdk ports. ++ ++ .. Note:: ++ ++ * The ``dpdk-pdump`` tool depends on libpcap based PMD which is disabled ++ by default in the build configuration files, ++ owing to an external dependency on the libpcap development files ++ which must be installed on the board. ++ Once the libpcap development files are installed, the libpcap based PMD ++ can be enabled by setting CONFIG_RTE_LIBRTE_PMD_PCAP=y and recompiling the DPDK. ++ ++ ++Running the Application ++----------------------- ++ ++The tool has a number of command line options: ++ ++.. code-block:: console ++ ++ ./build/app/dpdk-pdump -- ++ --pdump '(port= | device_id=), ++ (queue=), ++ (rx-dev= | ++ tx-dev=), ++ [ring-size=], ++ [mbuf-size=], ++ [total-num-mbufs=]' ++ [--server-socket-path=] ++ [--client-socket-path=] ++ ++The ``--pdump`` command line option is mandatory and it takes various sub arguments which are described in ++below section. ++ ++ .. Note:: ++ ++ * Parameters inside the parentheses represents mandatory parameters. ++ ++ * Parameters inside the square brackets represents optional parameters. ++ ++ * Multiple instances of ``--pdump`` can be passed to capture packets on different port and queue combinations. ++ ++The ``--server-socket-path`` command line option is optional. This represents the server socket directory. ++If no value is passed default values are used i.e. ``/var/run/.dpdk/`` for root users and ``~/.dpdk/`` ++for non root users. ++ ++The ``--client-socket-path`` command line option is optional. This represents the client socket directory. ++If no value is passed default values are used i.e. ``/var/run/.dpdk/`` for root users and ``~/.dpdk/`` ++for non root users. ++ ++ ++The ``--pdump`` parameters ++~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ ++``port``: ++Port id of the eth device on which packets should be captured. ++ ++``device_id``: ++PCI address (or) name of the eth device on which packets should be captured. ++ ++ .. Note:: ++ ++ * As of now the ``dpdk-pdump`` tool cannot capture the packets of virtual devices ++ in the primary process due to a bug in the ethdev library. Due to this bug, in a multi process context, ++ when the primary and secondary have different ports set, then the secondary process ++ (here the ``dpdk-pdump`` tool) overwrites the ``rte_eth_devices[]`` entries of the primary process. ++ ++``queue``: ++Queue id of the eth device on which packets should be captured. The user can pass a queue value of ``*`` to enable ++packet capture on all queues of the eth device. ++ ++``rx-dev``: ++Can be either a pcap file name or any Linux iface. ++ ++``tx-dev``: ++Can be either a pcap file name or any Linux iface. ++ ++ .. Note:: ++ ++ * To receive ingress packets only, ``rx-dev`` should be passed. ++ ++ * To receive egress packets only, ``tx-dev`` should be passed. ++ ++ * To receive ingress and egress packets separately ``rx-dev`` and ``tx-dev`` ++ should both be passed with the different file names or the Linux iface names. ++ ++ * To receive ingress and egress packets separately ``rx-dev`` and ``tx-dev`` ++ should both be passed with the same file names or the the Linux iface names. ++ ++``ring-size``: ++Size of the ring. This value is used internally for ring creation. The ring will be used to enqueue the packets from ++the primary application to the secondary. This is an optional parameter with default size 16384. ++ ++``mbuf-size``: ++Size of the mbuf data. This is used internally for mempool creation. Ideally this value must be same as ++the primary application's mempool's mbuf data size which is used for packet RX. This is an optional parameter with ++default size 2176. ++ ++``total-num-mbufs``: ++Total number mbufs in mempool. This is used internally for mempool creation. This is an optional parameter with default ++value 65535. ++ ++ ++Example ++------- ++ ++.. code-block:: console ++ ++ $ sudo ./build/app/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap' +diff --git a/doc/guides/tools/proc_info.rst b/doc/guides/tools/proc_info.rst +new file mode 100644 +index 0000000..73f2195 +--- /dev/null ++++ b/doc/guides/tools/proc_info.rst +@@ -0,0 +1,71 @@ ++ ++.. BSD LICENSE ++ Copyright(c) 2015 Intel Corporation. All rights reserved. ++ All rights reserved. ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in ++ the documentation and/or other materials provided with the ++ distribution. ++ * Neither the name of Intel Corporation nor the names of its ++ contributors may be used to endorse or promote products derived ++ from this software without specific prior written permission. ++ ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++ ++dpdk-procinfo Application ++========================= ++ ++The dpdk-procinfo application is a Data Plane Development Kit (DPDK) application ++that runs as a DPDK secondary process and is capable of retrieving port ++statistics, resetting port statistics and printing DPDK memory information. ++This application extends the original functionality that was supported by ++dump_cfg. ++ ++Running the Application ++----------------------- ++The application has a number of command line options: ++ ++.. code-block:: console ++ ++ ./$(RTE_TARGET)/app/dpdk-procinfo -- -m | [-p PORTMASK] [--stats | --xstats | ++ --stats-reset | --xstats-reset] ++ ++Parameters ++~~~~~~~~~~ ++**-p PORTMASK**: Hexadecimal bitmask of ports to configure. ++ ++**--stats** ++The stats parameter controls the printing of generic port statistics. If no ++port mask is specified stats are printed for all DPDK ports. ++ ++**--xstats** ++The stats parameter controls the printing of extended port statistics. If no ++port mask is specified xstats are printed for all DPDK ports. ++ ++**--stats-reset** ++The stats-reset parameter controls the resetting of generic port statistics. If ++no port mask is specified, the generic stats are reset for all DPDK ports. ++ ++**--xstats-reset** ++The xstats-reset parameter controls the resetting of extended port statistics. ++If no port mask is specified xstats are reset for all DPDK ports. ++ ++**-m**: Print DPDK memory information. diff -Nru dpdk-16.07/debian/patches/dpdk-dev-v2-2-4-doc-rendering-and-installation-of-man-pages.patch dpdk-16.07/debian/patches/dpdk-dev-v2-2-4-doc-rendering-and-installation-of-man-pages.patch --- dpdk-16.07/debian/patches/dpdk-dev-v2-2-4-doc-rendering-and-installation-of-man-pages.patch 1970-01-01 01:00:00.000000000 +0100 +++ dpdk-16.07/debian/patches/dpdk-dev-v2-2-4-doc-rendering-and-installation-of-man-pages.patch 2016-09-19 09:01:35.000000000 +0200 @@ -0,0 +1,56 @@ +diff --git a/doc/guides/conf.py b/doc/guides/conf.py +index cd6a4f7..55b6b2f 100644 +--- a/doc/guides/conf.py ++++ b/doc/guides/conf.py +@@ -105,6 +105,14 @@ class CustomLatexFormatter(LatexFormatter): + # Replace the default latex formatter. + PygmentsBridge.latex_formatter = CustomLatexFormatter + ++# Configuration for man pages ++man_pages = [("testpmd_app_ug/run_app", "testpmd", ++ "tests for dpdk pmds", "", 1), ++ ("tools/pdump", "dpdk-pdump", ++ "enable packet capture on dpdk ports", "", 1), ++ ("tools/proc_info", "dpdk-procinfo", ++ "access dpdk port stats and memory info", "", 1)] ++ + ######## :numref: fallback ######## + # The following hook functions add some simple handling for the :numref: + # directive for Sphinx versions prior to 1.3.1. The functions replace the +diff --git a/mk/rte.sdkdoc.mk b/mk/rte.sdkdoc.mk +index 9952f25..21d9bdf 100644 +--- a/mk/rte.sdkdoc.mk ++++ b/mk/rte.sdkdoc.mk +@@ -63,7 +63,7 @@ help: + all: api-html guides-html guides-pdf + + .PHONY: clean +-clean: api-html-clean guides-html-clean guides-pdf-clean ++clean: api-html-clean guides-html-clean guides-pdf-clean guides-man-clean + + .PHONY: api-html + api-html: api-html-clean +diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk +index 5217063..533d369 100644 +--- a/mk/rte.sdkinstall.mk ++++ b/mk/rte.sdkinstall.mk +@@ -66,6 +66,7 @@ includedir ?= $(prefix)/include/dpdk + datarootdir ?= $(prefix)/share + docdir ?= $(datarootdir)/doc/dpdk + datadir ?= $(datarootdir)/dpdk ++mandir ?= $(datarootdir)/man + sdkdir ?= $(datadir) + targetdir ?= $(datadir)/$(RTE_TARGET) + +@@ -133,6 +134,11 @@ install-runtime: + $(DESTDIR)$(sbindir)/dpdk-devbind) + $(Q)$(call rte_symlink, $(DESTDIR)$(datadir)/tools/dpdk-pmdinfo.py, \ + $(DESTDIR)$(bindir)/dpdk-pmdinfo) ++ifneq ($(wildcard $O/doc/man/*/*.1),) ++ $(Q)$(call rte_mkdir, $(DESTDIR)$(mandir)) ++ $(Q)$(call rte_mkdir, $(DESTDIR)$(mandir)/man1) ++ $(Q)cp -a $O/doc/man/*/*.1 $(DESTDIR)$(mandir)/man1 ++endif + + install-kmod: + ifneq ($(wildcard $O/kmod/*),) diff -Nru dpdk-16.07/debian/patches/dpdk-dev-v2-3-4-doc-add-basic-invocation-info-for-dpdk-pmdinfo.patch dpdk-16.07/debian/patches/dpdk-dev-v2-3-4-doc-add-basic-invocation-info-for-dpdk-pmdinfo.patch --- dpdk-16.07/debian/patches/dpdk-dev-v2-3-4-doc-add-basic-invocation-info-for-dpdk-pmdinfo.patch 1970-01-01 01:00:00.000000000 +0100 +++ dpdk-16.07/debian/patches/dpdk-dev-v2-3-4-doc-add-basic-invocation-info-for-dpdk-pmdinfo.patch 2016-09-19 09:01:35.000000000 +0200 @@ -0,0 +1,88 @@ +diff --git a/doc/guides/conf.py b/doc/guides/conf.py +index 55b6b2f..c45c4be 100644 +--- a/doc/guides/conf.py ++++ b/doc/guides/conf.py +@@ -111,7 +111,9 @@ man_pages = [("testpmd_app_ug/run_app", "testpmd", + ("tools/pdump", "dpdk-pdump", + "enable packet capture on dpdk ports", "", 1), + ("tools/proc_info", "dpdk-procinfo", +- "access dpdk port stats and memory info", "", 1)] ++ "access dpdk port stats and memory info", "", 1), ++ ("tools/pmdinfo", "dpdk-pmdinfo", ++ "dump a PMDs hardware support info", "", 1)] + + ######## :numref: fallback ######## + # The following hook functions add some simple handling for the :numref: +diff --git a/doc/guides/tools/index.rst b/doc/guides/tools/index.rst +index d7654a2..80f2115 100644 +--- a/doc/guides/tools/index.rst ++++ b/doc/guides/tools/index.rst +@@ -37,4 +37,5 @@ Tool User Guides + + proc_info + pdump ++ pmdinfo + +diff --git a/doc/guides/tools/pmdinfo.rst b/doc/guides/tools/pmdinfo.rst +new file mode 100644 +index 0000000..a90c59f +--- /dev/null ++++ b/doc/guides/tools/pmdinfo.rst +@@ -0,0 +1,57 @@ ++ ++.. BSD LICENSE ++ Copyright(c) 2016 Canonical Limited. All rights reserved. ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in ++ the documentation and/or other materials provided with the ++ distribution. ++ * Neither the name of Intel Corporation nor the names of its ++ contributors may be used to endorse or promote products derived ++ from this software without specific prior written permission. ++ ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++ ++dpdk-pmdinfo Application ++======================== ++ ++The ``dpdk-pmdinfo`` tool is a Data Plane Development Kit (DPDK) utility that ++can dump a PMDs hardware support info. ++ ++ ++Running the Application ++----------------------- ++ ++The tool has a number of command line options: ++ ++.. code-block:: console ++ ++ ++ dpdk-pmdinfo [-hrtp] [-d ++ ++ -h, --help Show a short help message and exit ++ -r, --raw Dump as raw json strings ++ -d FILE, --pcidb=FILE Specify a pci database to get vendor names from ++ -t, --table Output information on hw support as a hex table ++ -p, --plugindir Scan dpdk for autoload plugins ++ ++.. Note:: ++ ++ * Parameters inside the square brackets represents optional parameters. diff -Nru dpdk-16.07/debian/patches/dpdk-dev-v2-4-4-doc-add-basic-invocation-info-for-dpdk-devbind.patch dpdk-16.07/debian/patches/dpdk-dev-v2-4-4-doc-add-basic-invocation-info-for-dpdk-devbind.patch --- dpdk-16.07/debian/patches/dpdk-dev-v2-4-4-doc-add-basic-invocation-info-for-dpdk-devbind.patch 1970-01-01 01:00:00.000000000 +0100 +++ dpdk-16.07/debian/patches/dpdk-dev-v2-4-4-doc-add-basic-invocation-info-for-dpdk-devbind.patch 2016-09-19 09:01:35.000000000 +0200 @@ -0,0 +1,190 @@ +diff --git a/doc/guides/conf.py b/doc/guides/conf.py +index c45c4be..149bcdb 100644 +--- a/doc/guides/conf.py ++++ b/doc/guides/conf.py +@@ -113,7 +113,9 @@ man_pages = [("testpmd_app_ug/run_app", "testpmd", + ("tools/proc_info", "dpdk-procinfo", + "access dpdk port stats and memory info", "", 1), + ("tools/pmdinfo", "dpdk-pmdinfo", +- "dump a PMDs hardware support info", "", 1)] ++ "dump a PMDs hardware support info", "", 1), ++ ("tools/devbind", "dpdk-devbind", ++ "check device status and bind/unbind them from drivers", "", 8)] + + ######## :numref: fallback ######## + # The following hook functions add some simple handling for the :numref: +diff --git a/doc/guides/tools/devbind.rst b/doc/guides/tools/devbind.rst +new file mode 100644 +index 0000000..18a8059 +--- /dev/null ++++ b/doc/guides/tools/devbind.rst +@@ -0,0 +1,143 @@ ++ ++.. BSD LICENSE ++ Copyright(c) 2016 Canonical Limited. All rights reserved. ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in ++ the documentation and/or other materials provided with the ++ distribution. ++ * Neither the name of Intel Corporation nor the names of its ++ contributors may be used to endorse or promote products derived ++ from this software without specific prior written permission. ++ ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++ ++dpdk-devbind Application ++======================== ++ ++The ``dpdk-devbind`` tool is a Data Plane Development Kit (DPDK) tool that helps binding and unbinding devices from specific drivers. ++As well as checking their status in that regard. ++ ++ ++Running the Application ++----------------------- ++ ++The tool has a number of command line options: ++ ++.. code-block:: console ++ ++ dpdk-devbind [options] DEVICE1 DEVICE2 .... ++ ++OPTIONS ++------- ++ ++* ``--help, --usage`` ++ ++ Display usage information and quit ++ ++* ``-s, --status`` ++ ++ Print the current status of all known network interfaces. ++ For each device, it displays the PCI domain, bus, slot and function, ++ along with a text description of the device. Depending upon whether the ++ device is being used by a kernel driver, the ``igb_uio`` driver, or no ++ driver, other relevant information will be displayed: ++ - the Linux interface name e.g. ``if=eth0`` ++ - the driver being used e.g. ``drv=igb_uio`` ++ - any suitable drivers not currently using that device e.g. ``unused=igb_uio`` ++ NOTE: if this flag is passed along with a bind/unbind option, the ++ status display will always occur after the other operations have taken ++ place. ++ ++* ``-b driver, --bind=driver`` ++ ++ Select the driver to use or "none" to unbind the device ++ ++* ``-u, --unbind`` ++ ++ Unbind a device (Equivalent to ``-b none``) ++ ++* ``--force`` ++ ++ By default, devices which are used by Linux - as indicated by having ++ routes in the routing table - cannot be modified. Using the ``--force`` ++ flag overrides this behavior, allowing active links to be forcibly ++ unbound. ++ WARNING: This can lead to loss of network connection and should be used ++ with caution. ++ ++ ++.. warning:: ++ ++ Due to the way VFIO works, there are certain limitations to which devices can be used with VFIO. ++ Mainly it comes down to how IOMMU groups work. ++ Any Virtual Function device can be used with VFIO on its own, but physical devices will require either all ports bound to VFIO, ++ or some of them bound to VFIO while others not being bound to anything at all. ++ ++ If your device is behind a PCI-to-PCI bridge, the bridge will then be part of the IOMMU group in which your device is in. ++ Therefore, the bridge driver should also be unbound from the bridge PCI device for VFIO to work with devices behind the bridge. ++ ++.. warning:: ++ ++ While any user can run the ``dpdk-devbind.py`` script to view the status of the network ports, ++ binding or unbinding network ports requires root privileges. ++ ++ ++Examples ++-------- ++ ++To display current device status:: ++ ++ dpdk-devbind --status ++ ++To bind eth1 from the current driver and move to use igb_uio:: ++ ++ dpdk-devbind --bind=igb_uio eth1 ++ ++To unbind 0000:01:00.0 from using any driver:: ++ ++ dpdk-devbind -u 0000:01:00.0 ++ ++To bind 0000:02:00.0 and 0000:02:00.1 to the ixgbe kernel driver:: ++ ++ dpdk-devbind -b ixgbe 02:00.0 02:00.1 ++ ++To check status of all network ports, assign one to the igb_uio driver and check status again:: ++ ++ # Check the status of the available devices. ++ dpdk-devbind --status ++ Network devices using DPDK-compatible driver ++ ============================================ ++ ++ ++ Network devices using kernel driver ++ =================================== ++ 0000:0a:00.0 '82599ES 10-Gigabit' if=eth2 drv=ixgbe unused= ++ ++ ++ # Bind the device to igb_uio. ++ sudo dpdk-devbind -b igb_uio 0000:0a:00.0 ++ ++ ++ # Recheck the status of the devices. ++ dpdk-devbind --status ++ Network devices using DPDK-compatible driver ++ ============================================ ++ 0000:0a:00.0 '82599ES 10-Gigabit' drv=igb_uio unused= +diff --git a/doc/guides/tools/index.rst b/doc/guides/tools/index.rst +index 80f2115..cbe98b2 100644 +--- a/doc/guides/tools/index.rst ++++ b/doc/guides/tools/index.rst +@@ -38,4 +38,5 @@ Tool User Guides + proc_info + pdump + pmdinfo ++ devbind + +diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk +index 533d369..b1faf28 100644 +--- a/mk/rte.sdkinstall.mk ++++ b/mk/rte.sdkinstall.mk +@@ -139,6 +139,11 @@ ifneq ($(wildcard $O/doc/man/*/*.1),) + $(Q)$(call rte_mkdir, $(DESTDIR)$(mandir)/man1) + $(Q)cp -a $O/doc/man/*/*.1 $(DESTDIR)$(mandir)/man1 + endif ++ifneq ($(wildcard $O/doc/man/*/*.8),) ++ $(Q)$(call rte_mkdir, $(DESTDIR)$(mandir)) ++ $(Q)$(call rte_mkdir, $(DESTDIR)$(mandir)/man8) ++ $(Q)cp -a $O/doc/man/*/*.8 $(DESTDIR)$(mandir)/man8 ++endif + + install-kmod: + ifneq ($(wildcard $O/kmod/*),) diff -Nru dpdk-16.07/debian/patches/dpdk-dev-v2-kni-fix-build-with-kernel-4.8.patch dpdk-16.07/debian/patches/dpdk-dev-v2-kni-fix-build-with-kernel-4.8.patch --- dpdk-16.07/debian/patches/dpdk-dev-v2-kni-fix-build-with-kernel-4.8.patch 1970-01-01 01:00:00.000000000 +0100 +++ dpdk-16.07/debian/patches/dpdk-dev-v2-kni-fix-build-with-kernel-4.8.patch 2016-09-19 15:56:11.000000000 +0200 @@ -0,0 +1,35 @@ +Description: Linux kernel v4.8 removes macro DEFINE_PCI_DEVICE_TABLE + +Linux: 7e9321599011 ("treewide: remove references to the now unnecessary +DEFINE_PCI_DEVICE_TABLE") + +Replaced macro with its value in kni ethtool drivers. + +Signed-off-by: Ferruh Yigit + +Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15717/ +Author: Christian Ehrhardt +Last-Update: 2016-09-19 + +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c +@@ -76,7 +76,7 @@ + static const char igb_copyright[] = + "Copyright (c) 2007-2013 Intel Corporation."; + +-static DEFINE_PCI_DEVICE_TABLE(igb_pci_tbl) = { ++const struct pci_device_id igb_pci_tbl[] = { + { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_1GBPS) }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_SGMII) }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS) }, +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c +@@ -86,7 +86,7 @@ + * { Vendor ID, Device ID, SubVendor ID, SubDevice ID, + * Class, Class Mask, private data (not used) } + */ +-DEFINE_PCI_DEVICE_TABLE(ixgbe_pci_tbl) = { ++const struct pci_device_id ixgbe_pci_tbl[] = { + {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598)}, + {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598AF_DUAL_PORT)}, + {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598AF_SINGLE_PORT)}, diff -Nru dpdk-16.07/debian/patches/rte-compile-pre-cppflags.patch dpdk-16.07/debian/patches/rte-compile-pre-cppflags.patch --- dpdk-16.07/debian/patches/rte-compile-pre-cppflags.patch 1970-01-01 01:00:00.000000000 +0100 +++ dpdk-16.07/debian/patches/rte-compile-pre-cppflags.patch 2016-09-19 08:54:15.000000000 +0200 @@ -0,0 +1,48 @@ +From a4d00a8bf4684a4cf101b026c7c49a993cf9b989 Mon Sep 17 00:00:00 2001 +From: Luca Boccassi +Date: Tue, 30 Aug 2016 17:01:49 +0100 +Subject: [PATCH] mk: add missing *CPPFLAGS to rte.compile-pre.mk + +Some targets in mk/internal/rte.compile-pre.mk are calling CC or +HOSTCC without passing CPPFLAGS, EXTRA_CPPFLAGS or HOST_CPPFLAGS, +HOST_EXTRA_CPPFLAGS. +On Debian/Ubuntu builds this means that preprocessor flags set by the +dpkg-buildpackage environment, like hardening flags, are not +correctly passed to all objects builds. + +Signed-off-by: Luca Boccassi + +Forwarded: yes +Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15549/ +Author: Luca Boccassi +Last-Update: 2016-08-30 +--- + mk/internal/rte.compile-pre.mk | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/mk/internal/rte.compile-pre.mk ++++ b/mk/internal/rte.compile-pre.mk +@@ -74,18 +74,18 @@ CMDS-all := $(CMDS-y) $(CMDS-n) $(CMDS-) + + # command to compile a .c file to generate an object + ifeq ($(USE_HOST),1) +-C_TO_O = $(HOSTCC) -Wp,-MD,$(call obj2dep,$(@)).tmp $(HOST_CFLAGS) \ +- $(CFLAGS_$(@)) $(HOST_EXTRA_CFLAGS) -o $@ -c $< ++C_TO_O = $(HOSTCC) -Wp,-MD,$(call obj2dep,$(@)).tmp $(HOST_CPPFLAGS) $(HOST_CFLAGS) \ ++ $(CFLAGS_$(@)) $(HOST_EXTRA_CPPFLAGS) $(HOST_EXTRA_CFLAGS) -o $@ -c $< + C_TO_O_STR = $(subst ','\'',$(C_TO_O)) #'# fix syntax highlight + C_TO_O_DISP = $(if $(V),"$(C_TO_O_STR)"," HOSTCC $(@)") + else +-C_TO_O = $(CC) -Wp,-MD,$(call obj2dep,$(@)).tmp $(CFLAGS) \ +- $(CFLAGS_$(@)) $(EXTRA_CFLAGS) -o $@ -c $< ++C_TO_O = $(CC) -Wp,-MD,$(call obj2dep,$(@)).tmp $(CPPFLAGS) $(CFLAGS) \ ++ $(CFLAGS_$(@)) $(EXTRA_CPPFLAGS) $(EXTRA_CFLAGS) -o $@ -c $< + C_TO_O_STR = $(subst ','\'',$(C_TO_O)) #'# fix syntax highlight + C_TO_O_DISP = $(if $(V),"$(C_TO_O_STR)"," CC $(@)") + endif + PMDINFO_GEN = $(RTE_SDK_BIN)/app/dpdk-pmdinfogen $@ $@.pmd.c +-PMDINFO_CC = $(CC) $(CFLAGS) -c -o $@.pmd.o $@.pmd.c ++PMDINFO_CC = $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@.pmd.o $@.pmd.c + PMDINFO_LD = $(CROSS)ld $(LDFLAGS) -r -o $@.o $@.pmd.o $@ + PMDINFO_TO_O = if grep -q 'PMD_REGISTER_DRIVER(.*)' $<; then \ + echo "$(if $V,$(PMDINFO_GEN), PMDINFO $@.pmd.c)" && \ diff -Nru dpdk-16.07/debian/patches/rte-devel-build-env.patch dpdk-16.07/debian/patches/rte-devel-build-env.patch --- dpdk-16.07/debian/patches/rte-devel-build-env.patch 1970-01-01 01:00:00.000000000 +0100 +++ dpdk-16.07/debian/patches/rte-devel-build-env.patch 2016-09-19 08:56:39.000000000 +0200 @@ -0,0 +1,37 @@ +From 5a75a37716f69905af29fbd81aef44625eb69a8b Mon Sep 17 00:00:00 2001 +From: Luca Boccassi +Date: Wed, 14 Sep 2016 11:47:06 +0100 +Subject: [PATCH] mk: use ?= instead of := for RTE_DEVEL_BUILD + +RTE_DEVEL_BUILD is set to := y in mk/rte.vars.mk, which makes it +impossible to override via an environment variable, and forces users +to pass it inline in the make call. +Use ?= instead to have it pick up the environment variable as well. + +Cc: +Signed-off-by: Luca Boccassi + +Forwarded: yes +Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15795/ +Author: Luca Boccassi +Last-Update: 2016-09-14 +--- + mk/rte.vars.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mk/rte.vars.mk b/mk/rte.vars.mk +index 28982a5..21ee0ca 100644 +--- a/mk/rte.vars.mk ++++ b/mk/rte.vars.mk +@@ -104,7 +104,7 @@ export RTE_TOOLCHAIN + + # developer build automatically enabled in a git tree + ifneq ($(wildcard $(RTE_SDK)/.git),) +-RTE_DEVEL_BUILD := y ++RTE_DEVEL_BUILD ?= y + endif + + # SRCDIR is the current source directory +-- +2.1.4 + diff -Nru dpdk-16.07/debian/patches/series dpdk-16.07/debian/patches/series --- dpdk-16.07/debian/patches/series 2016-08-12 12:55:35.000000000 +0200 +++ dpdk-16.07/debian/patches/series 2016-09-19 15:56:25.000000000 +0200 @@ -3,3 +3,10 @@ fix-unusual-interpreter.patch dpdk-dev-doc-fix-old-dpdk-nic-bind.py-references.patch make-load-devel-config-not-to-appear-as-executable.patch +rte-compile-pre-cppflags.patch +rte-devel-build-env.patch +dpdk-dev-v2-1-4-doc-move-tool-guides-in-their-own-subdirectory.patch +dpdk-dev-v2-2-4-doc-rendering-and-installation-of-man-pages.patch +dpdk-dev-v2-3-4-doc-add-basic-invocation-info-for-dpdk-pmdinfo.patch +dpdk-dev-v2-4-4-doc-add-basic-invocation-info-for-dpdk-devbind.patch +dpdk-dev-v2-kni-fix-build-with-kernel-4.8.patch diff -Nru dpdk-16.07/debian/prep-modules dpdk-16.07/debian/prep-modules --- dpdk-16.07/debian/prep-modules 1970-01-01 01:00:00.000000000 +0100 +++ dpdk-16.07/debian/prep-modules 2016-09-19 08:48:29.000000000 +0200 @@ -0,0 +1,118 @@ +#! /bin/sh +# +# Copyright (c) 2009-2016 Andreas Beckmann +# 2010-2016 Russ Allbery +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this script. If not, see . +# +# This script originally comes from: +# https://anonscm.debian.org/viewvc/pkg-nvidia/packages/nvidia-graphics-drivers/trunk/debian/module/debian/prep-modules?view=markup +# The original copyright and license (GPL2+) can be found at: +# https://anonscm.debian.org/viewvc/pkg-nvidia/packages/nvidia-graphics-drivers/trunk/debian/copyright?view=markup +# +# Prepares to build kernel modules. This script figures out and munges +# version strings. The goal is: +# +# * Set the package name to dpdk-modules-$(KVERS) where $(KVERS) is the +# major kernel revision plus the debian subrevision and whatever +# architecture string is appropriate if building against the stock Debian +# kernels. $(KVERS) should be identical to the version component contained +# in the Debian kernel package names (in other words, the ABI version, not +# the package version). +# +# * Make the package recommend linux-image-$(KVERS) as appropriate for the +# kernel version that we're building against. Use recommend rather than +# depends since the user may have built their own kernel outside of the +# Debian package infrastructure. +# +# * Save the version number of the binary package in debian/VERSION for later +# use by dh_gencontrol. This will be the version number of the source +# package followed by a + and the version number of the kernel package that +# we're building against. If the kernel package version contains an epoch, +# try to hack our way into doing the right thing by using that epoch number +# as our own. This isn't quite the right thing, but seems reasonably good. +# +# This script generates debian/control from debian/control.template using sed. +# Unfortunately, substvars cannot be used since the name of the package is +# modified and substvars happens too late. It also outputs debian/VERSION, +# containing the version of the binary package. + +set -e + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +# We can get the kernel version from one of three places. If KVERS and KDREV +# are both already set in the environment (which will be the case when invoked +# by make-kpkg or module-assistant), use them. Otherwise, if we have a kernel +# source directory that contains debian/changelog (generated by make-kpkg), +# parse that file to find the version information. Finally, if neither works, +# extract the kernel version from the kernel headers, append INT_SUBARCH to +# that version if it's available, and assume a kernel package revision of -1 +# if none is provided. +# +# Set the variables $dpdk_kvers, which will hold the revision of the kernel, +# and $dpdk_kdrev, which will hold the version of the kernel package that +# we're building against. + +changelog="$1/debian/changelog" +if [ -n "$KVERS" ] && [ -n "$KDREV" ]; then + dpdk_kvers="${KVERS}${INT_SUBARCH}" + dpdk_kdrev="${KDREV}" +elif [ ! -f "$changelog" ] ; then + if [ -n "$KVERS" ] ; then + dpdk_kvers="$KVERS" + else + dpdk_kvers=`perl debian/kernel-version "$1"` + fi + if [ -z "$KDREV" ] ; then + dpdk_kdrev="${dpdk_kvers}-1" + else + dpdk_kvers="${dpdk_kvers}${INT_SUBARCH}" + dpdk_kdrev="${KDREV}" + fi +else + if [ -n "$KVERS" ] ; then + dpdk_kvers="$KVERS" + else + dpdk_kvers=`head -1 "$changelog" \ + | sed -e 's/.*source-\([^ ]*\) (\([^)]*\)).*/\1/'` + fi + dpdk_kdrev=`head -1 "$changelog" \ + | sed -e 's/.*source-\([^ ]*\) (\([^)]*\)).*/\2/'` +fi + +# Sanitize. +dpdk_kvers="$(echo "$dpdk_kvers" | tr _ -)" +dpdk_kdrev="$(echo "$dpdk_kdrev" | tr _ -)" + +# Generate the control file from the template. + +sed "s/#KVERS#/${dpdk_kvers}/g" debian/control.modules.in > debian/control.modules + +# Now, calcuate the binary package version. Extract the epoch from the kernel +# package revision and add it to the beginning of the binary package version +# if present. Then, concatenate the source version, '+', and the kernel +# package revision without the epoch. + +dpdk_version=`head -1 debian/changelog | sed -e 's/.*(\([^)]*\)).*/\1/'` +dpdk_epoch=`echo ${dpdk_kdrev} | sed -n -e 's/^\([0-9]*\):.*/\1/p'` +dpdk_version="${dpdk_version}+`echo ${dpdk_kdrev} | sed 's/^[0-9]*://'`" +if [ -n "$dpdk_epoch" ] ; then + dpdk_version="${dpdk_epoch}:${dpdk_version}" +fi + +echo "$dpdk_version" > debian/VERSION diff -Nru dpdk-16.07/debian/README.source dpdk-16.07/debian/README.source --- dpdk-16.07/debian/README.source 2016-08-12 12:55:34.000000000 +0200 +++ dpdk-16.07/debian/README.source 2016-09-19 08:52:16.000000000 +0200 @@ -1,3 +1,17 @@ +How to build the package - for CI systems, etc + +1 - install all the build-dependencies as listed in the debian/control file. + From the repo top-level directory: + +apt-get install `dpkg-checkbuilddeps |& sed "s/dpkg-checkbuilddeps: Unmet build dependencies://g"` + +2 - run debuild (the flags will avoid signing the built packages): + From the repo top-level directory: + +debuild -uc -us + +*************** + quilt patches format Note that we use the dquilt format for patches as outlined on Debian's wiki: diff -Nru dpdk-16.07/debian/rules dpdk-16.07/debian/rules --- dpdk-16.07/debian/rules 2016-08-12 12:55:35.000000000 +0200 +++ dpdk-16.07/debian/rules 2016-09-19 15:56:25.000000000 +0200 @@ -22,8 +22,15 @@ include /usr/share/dpkg/buildflags.mk export EXTRA_CFLAGS=$(CFLAGS) +export EXTRA_CPPFLAGS=$(CPPFLAGS) +export HOST_EXTRA_CFLAGS=$(CFLAGS) +export HOST_EXTRA_CPPFLAGS=$(CPPFLAGS) # need to be stripped as DPDK build system adds them and it would be -Wl,-Wl,opt export EXTRA_LDFLAGS=$(shell echo $(LDFLAGS) | sed 's/-Wl,//g') +# HOST_CC build system does not add -Wl ... +export EXTRA_HOST_LDFLAGS=$(LDFLAGS) + +export RTE_DEVEL_BUILD=n # People rebuilding this package can overwrite DPDK_CONFIG, RTE_MACHINE and # RTE_TARGET via environment variables if they like @@ -39,11 +46,54 @@ DPDK_STATIC_DIR = "debian/build/static-root" DPDK_SHARED_DIR = "debian/build/shared-root" +# kernel_modules can be passed via DEB_BUILD_OPTIONS to enable building the +# optional binary kernel modules package. By default it will be built against +# the current kernel, or ksrc can be passed with a path to the target kernel +# sources instead. +ifeq (,$(findstring kernel_modules,$(DEB_BUILD_OPTIONS))) +DPDK_CONFIG_BUILD_KMOD=n +KSRC="" +else +ifneq (,$(filter ksrc=%,$(DEB_BUILD_OPTIONS))) + KSRC := $(patsubst ksrc=%,%,$(filter ksrc=%,$(DEB_BUILD_OPTIONS))) +else + KSRC := /lib/modules/$(shell uname -r)/build +endif + +KVERS := $(shell perl debian/kernel-version $(KSRC)) +export KVERS + +DPDK_CONFIG_BUILD_KMOD=y + +# Since the binary module package is generated at build time depending on the +# local kernel version, we have to append the new package in d/control. +# We cannot use a separate control file since that wouldn't work with +# dpkg-genchanges, and also would require a lot of overrides for debhelpers. +get_built_using ?= $(filter-out (=),$(shell dpkg-query -f='$${source:Package} (=$${source:Version})' -W $1)) + +override_dh_gencontrol: + dh_gencontrol + dh_gencontrol -p dpdk-modules-$(KVERS) -- \ + -v`cat debian/VERSION` \ + -V'built:using:kernel=$(call get_built_using,linux-headers-$(KVERS))' + +build: + @if [ x"$(KVERS)" = x ] ; then \ + echo 'No version in $(KSRC)/include/linux/version.h' >&2; \ + exit 1; \ + fi + sh debian/prep-modules $(KSRC) + cat debian/control.modules >> debian/control + dh $@ --with python2,dkms +endif + %: dh $@ --with python2,dkms override_dh_auto_clean: - rm -rf debian/build debian/tmp + rm -rf debian/build debian/tmp debian/dpdk-modules-* \ + debian/control.modules debian/VERSION + sed -i '/Package: dpdk-modules-/,/`tail -n1 debian/control.modules.in`/d' debian/control override_dh_auto_configure: # report dpkg-buildflags status to build log @@ -53,15 +103,16 @@ $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) T=$(DPDK_CONFIG) config sed -ri -e 's,(RTE_MACHINE=).*,\1$(RTE_MACHINE),' \ -e 's,(RTE_NEXT_ABI=).*,\1n,' \ - -e 's,(CONFIG_RTE_EAL_IGB_UIO=).*,\1n,' \ - -e 's,(CONFIG_RTE_KNI_KMOD=).*,\1n,' \ + -e 's,(CONFIG_RTE_EAL_IGB_UIO=).*,\1$(DPDK_CONFIG_BUILD_KMOD),' \ + -e 's,(CONFIG_RTE_KNI_KMOD=).*,\1$(DPDK_CONFIG_BUILD_KMOD),' \ -e 's,(LIBRTE_PMD_PCAP=).*,\1y,' \ -e 's,(LIBRTE_PMD_XENVIRT=).*,\1y,' \ $(DPDK_STATIC_DIR)/.config dh_auto_configure override_dh_auto_build-indep: - $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html \ + doc-guides-man override_dh_auto_install-indep: # Package: dpdk-doc @@ -70,7 +121,7 @@ DESTDIR=debian/dpdk-doc install-doc override_dh_auto_build-arch: - $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) build + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) RTE_KERNELDIR=$(KSRC) build # Unfortunately the decision about having static or shared libraries is # made for the whole build, which then produces only .a or .so files # (but not both). @@ -83,7 +134,7 @@ cp -a $(DPDK_STATIC_DIR) $(DPDK_SHARED_DIR) sed -ri 's,(RTE_BUILD_SHARED_LIB=).*,\1y,' \ $(DPDK_SHARED_DIR)/.config - $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) build + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) RTE_KERNELDIR=$(KSRC) build override_dh_auto_install-arch: LIBDIR=usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH) override_dh_auto_install-arch: @@ -146,6 +197,12 @@ mkdir -p debian/dpdk-rte-kni-dkms/usr/src/dpdk-rte-kni-$(VERSION) cp -a lib/librte_eal/linuxapp/kni/* \ debian/dpdk-rte-kni-dkms/usr/src/dpdk-rte-kni-$(VERSION) +ifneq (,$(KVERS)) + # Package: dpdk-modules- + mkdir -p debian/dpdk-modules-$(KVERS)/lib/modules/$(KVERS)/kernel/drivers/net + cp -a debian/build/shared-root/kmod/* \ + debian/dpdk-modules-$(KVERS)/lib/modules/$(KVERS)/kernel/drivers/net +endif override_dh_dkms: dh_dkms -V $(VERSION) diff -Nru dpdk-16.07/debian/tests/test-dkms dpdk-16.07/debian/tests/test-dkms --- dpdk-16.07/debian/tests/test-dkms 2016-07-29 13:25:47.000000000 +0200 +++ dpdk-16.07/debian/tests/test-dkms 2016-09-19 15:56:11.000000000 +0200 @@ -4,6 +4,10 @@ basedir=$(dirname "$0") . "${basedir}"/check-dpdk-supported-arch.sh +if [ -d /var/lib/dkms ]; then + (cd /var/lib/dkms; find -name "make.log" -print0 | xargs -0 tar c) > "$ADT_ARTIFACTS/dkms-make-logs.tar" +fi + # check that the dkms build fine (on dep install), load and unload printf "\n\nChecking igb_uio\n" modinfo igb_uio