From 4a404514bf8bbd6156c970b285c9cd86e24d7c48 Mon Sep 17 00:00:00 2001 From: Guo Ruijing Date: Wed, 11 Jan 2017 16:16:40 -0500 Subject: [PATCH] Import dpdk 16.07 debian from mos Import dpdk 16.07 debian from commit id 3eb3a17cb71f2f61210f678cf0aec2ad11cab92c in http://review.fuel-infra.org/packages/xenial/dpdk Change-Id: I7d5ae8f5796b5c286d9f5816c3dc81a4639827ba Signed-off-by: Guo Ruijing --- ovs_build/dpdk_16.07.fuel/README.source | 42 + ovs_build/dpdk_16.07.fuel/changelog | 528 +++++++ ovs_build/dpdk_16.07.fuel/compat | 1 + ovs_build/dpdk_16.07.fuel/control | 747 ++++++++++ ovs_build/dpdk_16.07.fuel/control.modules.in | 14 + ovs_build/dpdk_16.07.fuel/copyright | 136 ++ .../dpdk-dev.lintian-overrides | 3 + .../dpdk_16.07.fuel/dpdk-doc.README.Debian | 64 + .../dpdk-doc.lintian-overrides | 1 + .../dpdk_16.07.fuel/dpdk-igb-uio-dkms.dkms | 7 + ovs_build/dpdk_16.07.fuel/dpdk-init | 251 ++++ .../dpdk_16.07.fuel/dpdk-rte-kni-dkms.dkms | 7 + ovs_build/dpdk_16.07.fuel/dpdk-sdk-env.sh.in | 4 + ovs_build/dpdk_16.07.fuel/dpdk.conf | 54 + ovs_build/dpdk_16.07.fuel/dpdk.init | 57 + ovs_build/dpdk_16.07.fuel/dpdk.install | 2 + ovs_build/dpdk_16.07.fuel/dpdk.interfaces | 19 + ovs_build/dpdk_16.07.fuel/dpdk.service | 12 + ovs_build/dpdk_16.07.fuel/kernel-version | 61 + ovs_build/dpdk_16.07.fuel/libdpdk.pc.in | 10 + ovs_build/dpdk_16.07.fuel/libethdev4.symbols | 116 ++ ovs_build/dpdk_16.07.fuel/librte-acl2.symbols | 15 + .../dpdk_16.07.fuel/librte-cfgfile2.symbols | 13 + .../dpdk_16.07.fuel/librte-cmdline2.symbols | 68 + .../dpdk_16.07.fuel/librte-cryptodev1.symbols | 32 + .../librte-distributor1.symbols | 11 + ovs_build/dpdk_16.07.fuel/librte-eal2.symbols | 137 ++ .../dpdk_16.07.fuel/librte-hash2.symbols | 28 + .../dpdk_16.07.fuel/librte-ip-frag1.symbols | 9 + .../dpdk_16.07.fuel/librte-jobstats1.symbols | 17 + ovs_build/dpdk_16.07.fuel/librte-kni2.symbols | 13 + .../dpdk_16.07.fuel/librte-kvargs1.symbols | 6 + ovs_build/dpdk_16.07.fuel/librte-lpm2.symbols | 27 + .../dpdk_16.07.fuel/librte-mbuf2.symbols | 11 + .../dpdk_16.07.fuel/librte-mempool2.symbols | 31 + .../dpdk_16.07.fuel/librte-meter1.symbols | 4 + .../dpdk_16.07.fuel/librte-pdump1.symbols | 9 + .../dpdk_16.07.fuel/librte-pipeline3.symbols | 28 + .../librte-pmd-af-packet1.symbols | 4 + .../dpdk_16.07.fuel/librte-pmd-bnxt1.symbols | 4 + .../dpdk_16.07.fuel/librte-pmd-bond1.symbols | 29 + .../dpdk_16.07.fuel/librte-pmd-cxgbe1.symbols | 4 + .../librte-pmd-e1000-1.symbols | 4 + .../dpdk_16.07.fuel/librte-pmd-ena1.symbols | 4 + .../dpdk_16.07.fuel/librte-pmd-enic1.symbols | 4 + .../dpdk_16.07.fuel/librte-pmd-fm10k1.symbols | 4 + .../dpdk_16.07.fuel/librte-pmd-i40e1.symbols | 4 + .../dpdk_16.07.fuel/librte-pmd-ixgbe1.symbols | 4 + .../librte-pmd-null-crypto1.symbols | 4 + .../dpdk_16.07.fuel/librte-pmd-null1.symbols | 4 + .../dpdk_16.07.fuel/librte-pmd-pcap1.symbols | 4 + .../dpdk_16.07.fuel/librte-pmd-ring2.symbols | 5 + .../dpdk_16.07.fuel/librte-pmd-vhost1.symbols | 6 + .../librte-pmd-virtio1.symbols | 4 + .../librte-pmd-vmxnet3-uio1.symbols | 4 + .../librte-pmd-xenvirt1.symbols | 3 + .../dpdk_16.07.fuel/librte-port3.symbols | 25 + .../dpdk_16.07.fuel/librte-power1.symbols | 14 + .../dpdk_16.07.fuel/librte-reorder1.symbols | 9 + .../dpdk_16.07.fuel/librte-ring1.symbols | 11 + .../dpdk_16.07.fuel/librte-sched1.symbols | 22 + .../dpdk_16.07.fuel/librte-table2.symbols | 19 + .../dpdk_16.07.fuel/librte-timer1.symbols | 11 + .../dpdk_16.07.fuel/librte-vhost3.symbols | 18 + ...-fix-old-dpdk-nic-bind.py-references.patch | 126 ++ ...ip_pipeline-fix-pmd-driver-parameter.patch | 39 + ...ool-guides-in-their-own-subdirectory.patch | 528 +++++++ ...dering-and-installation-of-man-pages.patch | 56 + ...sic-invocation-info-for-dpdk-pmdinfo.patch | 88 ++ ...sic-invocation-info-for-dpdk-devbind.patch | 190 +++ ...dev-v2-kni-fix-build-with-kernel-4.8.patch | 35 + .../patches/fix-double-license-info.patch | 1324 +++++++++++++++++ .../patches/fix-unusual-interpreter.patch | 35 + .../fix-vhost-user-socket-permission.patch | 371 +++++ ...l-config-not-to-appear-as-executable.patch | 86 ++ .../patches/rte-compile-pre-cppflags.patch | 48 + .../patches/rte-devel-build-env.patch | 37 + ovs_build/dpdk_16.07.fuel/patches/series | 13 + ovs_build/dpdk_16.07.fuel/prep-modules | 118 ++ ovs_build/dpdk_16.07.fuel/rules | 247 +++ ovs_build/dpdk_16.07.fuel/source/format | 1 + ovs_build/dpdk_16.07.fuel/source/options | 1 + .../tests/check-dpdk-supported-arch.sh | 12 + ovs_build/dpdk_16.07.fuel/tests/control | 13 + ovs_build/dpdk_16.07.fuel/tests/test-dkms | 22 + .../dpdk_16.07.fuel/tests/test-initscripts | 143 ++ ovs_build/dpdk_16.07.fuel/tests/test-linkage | 51 + ovs_build/dpdk_16.07.fuel/watch | 2 + 88 files changed, 6409 insertions(+) create mode 100644 ovs_build/dpdk_16.07.fuel/README.source create mode 100644 ovs_build/dpdk_16.07.fuel/changelog create mode 100644 ovs_build/dpdk_16.07.fuel/compat create mode 100644 ovs_build/dpdk_16.07.fuel/control create mode 100644 ovs_build/dpdk_16.07.fuel/control.modules.in create mode 100644 ovs_build/dpdk_16.07.fuel/copyright create mode 100644 ovs_build/dpdk_16.07.fuel/dpdk-dev.lintian-overrides create mode 100644 ovs_build/dpdk_16.07.fuel/dpdk-doc.README.Debian create mode 100644 ovs_build/dpdk_16.07.fuel/dpdk-doc.lintian-overrides create mode 100644 ovs_build/dpdk_16.07.fuel/dpdk-igb-uio-dkms.dkms create mode 100755 ovs_build/dpdk_16.07.fuel/dpdk-init create mode 100644 ovs_build/dpdk_16.07.fuel/dpdk-rte-kni-dkms.dkms create mode 100755 ovs_build/dpdk_16.07.fuel/dpdk-sdk-env.sh.in create mode 100644 ovs_build/dpdk_16.07.fuel/dpdk.conf create mode 100644 ovs_build/dpdk_16.07.fuel/dpdk.init create mode 100644 ovs_build/dpdk_16.07.fuel/dpdk.install create mode 100644 ovs_build/dpdk_16.07.fuel/dpdk.interfaces create mode 100644 ovs_build/dpdk_16.07.fuel/dpdk.service create mode 100755 ovs_build/dpdk_16.07.fuel/kernel-version create mode 100644 ovs_build/dpdk_16.07.fuel/libdpdk.pc.in create mode 100644 ovs_build/dpdk_16.07.fuel/libethdev4.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-acl2.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-cfgfile2.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-cmdline2.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-cryptodev1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-distributor1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-eal2.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-hash2.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-ip-frag1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-jobstats1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-kni2.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-kvargs1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-lpm2.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-mbuf2.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-mempool2.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-meter1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pdump1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pipeline3.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-af-packet1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-bnxt1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-bond1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-cxgbe1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-e1000-1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-ena1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-enic1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-fm10k1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-i40e1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-ixgbe1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-null-crypto1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-null1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-pcap1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-ring2.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-vhost1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-virtio1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-vmxnet3-uio1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-pmd-xenvirt1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-port3.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-power1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-reorder1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-ring1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-sched1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-table2.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-timer1.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/librte-vhost3.symbols create mode 100644 ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-doc-fix-old-dpdk-nic-bind.py-references.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-examples-ip_pipeline-fix-pmd-driver-parameter.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-1-4-doc-move-tool-guides-in-their-own-subdirectory.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-2-4-doc-rendering-and-installation-of-man-pages.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-3-4-doc-add-basic-invocation-info-for-dpdk-pmdinfo.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-4-4-doc-add-basic-invocation-info-for-dpdk-devbind.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-kni-fix-build-with-kernel-4.8.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/fix-double-license-info.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/fix-unusual-interpreter.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/fix-vhost-user-socket-permission.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/make-load-devel-config-not-to-appear-as-executable.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/rte-compile-pre-cppflags.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/rte-devel-build-env.patch create mode 100644 ovs_build/dpdk_16.07.fuel/patches/series create mode 100755 ovs_build/dpdk_16.07.fuel/prep-modules create mode 100755 ovs_build/dpdk_16.07.fuel/rules create mode 100644 ovs_build/dpdk_16.07.fuel/source/format create mode 100644 ovs_build/dpdk_16.07.fuel/source/options create mode 100644 ovs_build/dpdk_16.07.fuel/tests/check-dpdk-supported-arch.sh create mode 100644 ovs_build/dpdk_16.07.fuel/tests/control create mode 100644 ovs_build/dpdk_16.07.fuel/tests/test-dkms create mode 100644 ovs_build/dpdk_16.07.fuel/tests/test-initscripts create mode 100644 ovs_build/dpdk_16.07.fuel/tests/test-linkage create mode 100644 ovs_build/dpdk_16.07.fuel/watch diff --git a/ovs_build/dpdk_16.07.fuel/README.source b/ovs_build/dpdk_16.07.fuel/README.source new file mode 100644 index 0000000..a21f5ee --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/README.source @@ -0,0 +1,42 @@ +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/.*://g" |& sed "s/(...[0-9]*)//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: +https://www.debian.org/doc/manuals/maint-guide/modify.en.html#quiltrc + +Please consider using the same format to avoid excessive churn when adding or +refreshing patches. + +Add the following to your ~/.bashrc (or equivalent): + +alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg" +complete -F _quilt_completion $_quilt_complete_opt dquilt + +And then create a new ~/.quiltrc-dpkg file with content: + +d=. ; while [ ! -d $d/debian -a `readlink -e $d` != / ]; do d=$d/..; done +if [ -d $d/debian ] && [ -z $QUILT_PATCHES ]; then + # if in Debian packaging tree with unset $QUILT_PATCHES + QUILT_PATCHES="debian/patches" + QUILT_PATCH_OPTS="--reject-format=unified" + QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto" + QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index" + QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33" + if ! [ -d $d/debian/patches ]; then mkdir $d/debian/patches; fi +fi + +Open a new terminal or souce ~/.bashrc, and then you will be able to use +dquilt. diff --git a/ovs_build/dpdk_16.07.fuel/changelog b/ovs_build/dpdk_16.07.fuel/changelog new file mode 100644 index 0000000..faa1026 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/changelog @@ -0,0 +1,528 @@ +dpdk (16.07-0ubuntu5~u1604+mos1) mos; urgency=low + + * Rebuild debian package. + * Add fake dpdk-dkms package + + -- Ivan Suzdal Thu, 08 Dec 2016 15:06:10 +0000 + +dpdk (16.07-0ubuntu5~cloud0) xenial-newton; urgency=medium + + * New update for the Ubuntu Cloud Archive. + + -- Openstack Ubuntu Testing Bot Tue, 04 Oct 2016 12:12:07 +0000 + +dpdk (16.07-0ubuntu5) yakkety; urgency=medium + + [ Christian Ehrhardt ] + * Fix component mismatch by dropping the optional dpdk-pmdinfo tool + (LP: #1630073). + + [ Gowrishankar Muthukrishnan ] + * update d/p/dpdk-dev-examples-ip_pipeline-fix-pmd-driver-parameter.patch to + fix dlopen issue (LP: #1630119) + + -- Christian Ehrhardt Tue, 04 Oct 2016 09:27:54 +0200 + +dpdk (16.07-0ubuntu4) yakkety; urgency=medium + + [ Christian Ehrhardt ] + * merge of latest deb_dpdk packaging + * Fix d/p/fix-vhost-user-socket-permission.patch for dpdk 16.07 + server/client sockets (LP: #1625542). + * d/rules utilize RTE_EAL_PMD_PATH to autoload pmd drivers (LP: #1628419) + - d/dpdk-doc.README.Debian document usage of RTE_EAL_PMD_PATH + - d/control let the runtime of dpdk recommend the pmd drivers to make + them available for auto-probing devices + * d/control add python-elftools and hwdata dependencies to dpdk for the tool + dpdk-pmdinfo (LP: #1628410). + + [ Luca Boccassi ] + * Fix d/watch file to point to fast.dpdk.org/rel + * Allow DPDK_CONFIG, RTE_MACHINE, RTE_TARGET overrides via DEB_BUILD_OPTIONS + * Use ?= to allow env var overrides in d/rules + + [ Santiago RR ] + * debian/control: + - dpdk: recommends dkms packages (dpdk-igb-uio-dkms, dpdk-rte-kni-dkms) on + arm64 and suggest for other architectures. + + [ Gowrishankar Muthukrishnan ] + * d/p/dpdk-dev-examples-ip_pipeline-fix-pmd-driver-parameter.patch to make + ip_pipeline work properly with -d eal parameter (LP: #1629186) + + -- Christian Ehrhardt Thu, 29 Sep 2016 17:19:05 +0200 + +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 + + -- Christian Ehrhardt Fri, 12 Aug 2016 12:56:07 +0200 + +dpdk (16.07-0ubuntu1) yakkety; urgency=medium + + * release current state of deb_dpdk packaging into yakkety + + -- Christian Ehrhardt Thu, 11 Aug 2016 10:09:10 +0200 + +dpdk (16.07-0) UNRELEASED; urgency=medium + + [ Christian Ehrhardt ] + * Merge with upstream DPDK 16.07 release + * Cleanup Lintian Warnings + - d/p/fix-unusual-interpreter.patch fixes "W: dpdk-doc: + unusual-interpreter" + - d/p/fix-double-license-info.patch fixes "W: dpdk-rte-kni-dkms: + extra-license-file" + * Renamed d/p/ubuntu-fix-vhost-user-socket-permission.patch to + d/p/fix-vhost-user-socket-permission.patch + * Add lintian-overrides for: E: dpdk-dev: arch-dependent-file-in-usr-share + These binaries are part of the sdk and meant to be shipped with the sdk. + * d/p/dpdk-dev-doc-fix-old-dpdk-nic-bind.py-references.patch to fix the + docs in regard to 16.07 changes renaming dpdk_nic_bind + * d/p/make-load-devel-config-not-to-appear-as-executable.patch to avoid + accidentially executing as script and to fix unusual-interpreter lintian + warning. + + [ Anders Roxell ] + * debian/control: add pciutils to the dpdk depends list, since lspci is used + by the devbind script + + [ Luca Boccassi ] + * Add ${shlib:Depends} to dpdk-dev dependencies + * Install api and guides in dpdk-doc + * Convert debian/rules to new style DH targets + * Add Recommends: python to dpdk-doc since it ships python scripts among the + examples, fixes Lintian warning about missing python dependencies + * Fix typo in dpdk-doc.README.Debian, fixes "W: dpdk-doc: + spelling-error-in-readme-debian to to (duplicate word) to" + * Fix upstream rc versions by using "~" instead of "-". 16.07-rc1 evaluates + as newer than 16.07 which causes issues with Debian tools and Lintian + errors and warnings: + - W: libethdev4: latest-debian-changelog-entry-without-new-version + - E: libethdev4: symbols-file-contains-current-version-with-debian-revision + on symbol DPDK_16.04@DPDK_16.04 and 114 others + * Add lintian-overrides for: "W: dpdk-doc: embedded-javascript-library" + + -- Christian Ehrhardt Fri, 29 Jul 2016 08:18:50 +0200 + +dpdk (16.07~rc5-1) UNRELEASED; urgency=medium + + [ Ricardo Salveti de Araujo ] + * Merge with upstream DPDK 16.07-rc5 release + + [ Luca Boccassi ] + * Generate pkgconfig and ship it in libdpdk-dev + * Document use of dquilt for patches in debian/README.source + + -- Ricardo Salveti de Araujo Tue, 26 Jul 2016 14:13:38 -0300 + +dpdk (16.07~rc4-1) UNRELEASED; urgency=medium + + * Merge with upstream DPDK 16.07-rc4 release + - Tools renamed, dpdk_nic_bind is now dpdk-devbind + * Adapt d/p/ubuntu-fix-vhost-user-socket-permission.patch for dpdk 16.07-rc4 + + -- Ricardo Salveti de Araujo Mon, 25 Jul 2016 13:38:13 -0300 + +dpdk (16.07~rc3-1) UNRELEASED; urgency=medium + + [ Christian Ehrhardt ] + * Merge with upstream DPDK 16.07-rc3 release + * droping patches/backports that are already upstream in DPDK 16.07-rc3 + - d/p/ubuntu-fix-bond-symbol-export.patch + - d/p/ubuntu-backport-33-vhost-user-add-error-handling-for-fd-1023.patch + * adapt d/p/ubuntu-fix-vhost-user-socket-permission.patch for dpdk 16.07-rc3 + * update symbols + + [ Ricardo Salveti de Araujo ] + * debian/rules: + - Allow all make commands to be verbose + - Fix libdpdk-dev headers path + * Renaming package librte-pmd-e10001 to librte-pmd-e1000-1, to avoid mixing + package name with soversion (lintian package-name-doesnt-match-sonames) + * Adding package librte-pmd-bnxt1 + * Merging symbols files, handling the arch differences inline instead + + [ Anders Roxell ] + * debian/control: add libpcap-dev to libdpdk-dev's Depends list + + -- Christian Ehrhardt Tue, 19 Jul 2016 08:32:06 +0200 + +dpdk (16.07~rc1-1) UNRELEASED; urgency=medium + + [ Christian Ehrhardt ] + * Merge with upstream DPDK 16.07-rc1 release + * droping patches/backports that are already upstream in DPDK 16.07 + - d/p/ubuntu-backport-39-lpm-fix-freeing-in-compatibility-mode.patch + This was formerly part of a combined patch that we dropped because the + majority is upstream (d/p/ubuntu-fix-lpm-use-after-free-and-leak.patch). + - d/p/ubuntu-backport-40-linking-fixes-stage-[1-4]-4.patch + d/p/ubuntu-backport-44-linking-cleanup.patch + Fixing underlinking and overlinking issues in apps and libraries. + - d/p/ubuntu-backport-41-fix-install-tar-1.29.patch + Fix issues with tar >=1.29 (Yakkety) + - d/p/ubuntu-backport-42-increase-default-logging-level.patch + avoid default debug messages causing a perf degradation + - d/p/ubuntu-backport-43-fix-level-type-retrieving.patch + Fix type retrieving which was broken in standard threads + - d/p/ubuntu-fix-xenvirt-support-dynamic-page-size.patch: fix build + failure on arm64 + * droping patches/backports that are no more applicable + - d/p/ubuntu-backport-38-* was never accepted despite looking good. + Upstream discussion around proper successor started. + * keeping patches: + - d/p/ubuntu-backport-33-vhost-user-add-error-handling-for-fd-1023.patch + Was never accepted, Upstream discussion around proper successor started. + * adapt debian/* to upstream changes + - update symbols and ABI versions + - add librte-pdump1 + * adding changes + - fix exported symbols of librte_pmd_bond (sent upstream, can be dropped + later) + + -- Christian Ehrhardt Wed, 06 Jul 2016 09:40:49 +0200 + +dpdk (16.04-1) UNRELEASED; urgency=medium + + [ Christian Ehrhardt ] + * Merge with upstream DPDK 16.04 release + * droping patches/backports that are already upstream in DPDK 16.04 + - d/p/ubuntu-fix-doc-installpath.patch + - d/p/ubuntu-fix-testpmd-without-xen.patch + - d/p/ubuntu-fix-lpm-use-after-free-and-leak.patch + - d/p/ubuntu-backport-[01-32,34-35] backports for stability + - d/p/ubuntu-backport-[36-37] but keep doc and example changes in d/* + * droping patches for soname / linking fixups. + - Upstream now goes with proper soname/abi/api handling per sublib plus a + linker script. + - dropped d/p/ubuntu-combined-shared-lib-abiversion.patch + - dropped d/p/ubuntu-fix-library-linkage.patch + * keeping patches: + - d/p/ubuntu-backport-38-* fix for memory leak + this now applies as is, so changed from a modified backport to match the + post 16.04 upstream commit now. + - d/p/ubuntu-backport-33-vhost-user-add-error-handling-for-fd-1023.patch + - doc and example changes that were related to d/p/ubuntu-backport-[36-37] + - d/p/ubuntu-fix-vhost-user-socket-permission.patch adapted for dpdk-16.04: + In the new build system with sublibs the exposed function needs to be + listed in lib/librte_eal/linuxapp/eal/rte_eal_version.map + * adding upstream backports - can be dropped when merging DPDK 16.07. + - d/p/ubuntu-backport-39-lpm-fix-freeing-in-compatibility-mode.patch + This was formerly part of a combined patch that we dropped because the + majority is upstream (d/p/ubuntu-fix-lpm-use-after-free-and-leak.patch). + - d/p/ubuntu-backport-40-linking-fixes-stage-[1-4]-4.patch + d/p/ubuntu-backport-44-linking-cleanup.patch + Fixing underlinking and overlinking issues in apps and libraries. + - d/p/ubuntu-backport-41-fix-install-tar-1.29.patch + Fix issues with tar >=1.29 (Yakkety) + - d/p/ubuntu-backport-42-increase-default-logging-level.patch + avoid default debug messages causing a perf degradation + - d/p/ubuntu-backport-43-fix-level-type-retrieving.patch + Fix type retrieving which was broken in standard threads + * adapt to new build system + - drop enabling the following build config symbols as they no more exist + CONFIG_RTE_BUILD_COMBINE_LIBS + - Sub-Libraries are now packaged in a versioned package per library. That + allows consumers of dpdk to just depend on what they need. As well as + installation of multiple .so versions concurrently. + - added the hidden dependency of librte_eal to librte_mempool + - use dpkg-buildflags and properly enable hardening + * Adding DKMS package for rte_kni (LP: #1592786) + + [ Ricardo Salveti ] + * Adding support for ARM64: + - debian/control: adding arm64 to the supported architecture list + - debian/rules: supporting dpdk config and machine for arm64 + - d/p/ubuntu-fix-xenvirt-support-dynamic-page-size.patch: fix build + failure on arm64 + - debian/dpdk-sdk-env.sh: generating the right RTE_TARGET during build + time, so we can also make it compatible with ARM64 + - debian/tests: also making tests compatible with ARM64 + * Adding DKMS package for igb_uio + * Build static dpdk with -fPIC so it can be used by shared libraries + * debian/copyright: fixing Canonical's copyright entry + * Renaming symbol files so they can match the right package + * Drop the arch specific symbol files, as they are identical + + [ Anders Roxell ] + * debian/dpdk.init: add remote_fs (lintian) + * debian/control: fixing week-library-dev-dependency (lintian) + + -- Christian Ehrhardt Tue, 17 May 2016 14:23:21 +0200 + +dpdk (2.2.0-0ubuntu9) yakkety; urgency=medium + + * d/p/ubuntu-backport-[36-37] fix virtio issues (LP: #1570195): + - don't let DPDK initialize virtio devices still in use by the kernel + - this avoids conflicts between kernel and dpdk usage of those devices + - an admin now has to unbind/bind devices as on physical hardware + - this is in the dpdk 16.04 release and delta can then be dropped + - d/dpdk-doc.README.Debian update for changes in virtio-pci handling + - d/dpdk.interfaces update for changes in virtio-pci handling + * d/p/ubuntu-backport-38... fix for memory leak (LP: #1570466): + - call vhost_destroy_device on removing vhost user ports to fix memory leak + - this likely is in the dpdk 16.07 release and delta can then be dropped + * d/p/ubuntu-fix-vhost-user-socket-permission.patch fox (LP: #1546565): + - when vhost_user sockets are created they are owner:group of the process + - the DPDK api to create those has no way to specify owner:group + - to fix that without breaking the API and potential workaround code in + consumers of the library like openvswitch 2.6 for example. This patch + adds an EAL commandline option to specify user:group created vhost_user + sockets should have. + + -- Christian Ehrhardt Wed, 27 Apr 2016 07:52:48 -0500 + +dpdk (2.2.0-0ubuntu7) xenial; urgency=medium + + * Increase max_map_count after setting huge pages (LP: #1507921): + - The default config of 65530 would cause issues as soon as about 64GB or + more are used as 2M huge pages for dpdk. + - Increase this value to base+2*#hugepages to avoid issues on huge systems. + * d/p/ubuntu-backport-[28-32,34-35] backports for stability (LP: #1568838): + - these will be in the 16.04 dpdk release, delta can then be dropped. + - 5 fixes that do not change api/behaviour but fix serious issues. + - 01 f82f705b lpm: fix allocation of an existing object + - 02 f9bd3342 hash: fix multi-process support + - 03 1aadacb5 hash: fix allocation of an existing object + - 04 5d7bfb73 hash: fix race condition at creation + - 05 fe671356 vfio: fix resource leak + - 06 356445f9 port: fix ring writer buffer overflow + - 07 52f7a5ae port: fix burst size mask type + * d/p/ubuntu-backport-33-vhost-user-add-error-handling-for-fd-1023.patch + - this will likely be in dpdk release 16.07 and delta can then be dropped. + - fixes a crash on using fd's >1023 (LP: #1566874) + * d/p/ubuntu-fix-lpm-use-after-free-and-leak.patch fix lpm_free (LP: #1569375) + - the old patches had an error freeing a pointer which had no meta data + - that lead to a crash on any lpm_free call + - folded into the fix that generally covers the lpm allocation and free + weaknesses already (also there this particular mistake was added) + + -- Christian Ehrhardt Tue, 12 Apr 2016 16:13:47 +0200 + +dpdk (2.2.0-0ubuntu6) xenial; urgency=medium + + * d/dpdk-init fix handling of multiple huge page sizes (LP: #1557532): + - dpdk-init now ensures non-default-hugepage-size mountpoints are + available as well. + - extra mountpoints are only created if requested in dpdk.conf and not yet + available (e.g. by the admin). + * d/dpdk-init fix issues with unassigned devices (LP: #1558485): + - dpdk-init no more checks /sys/.../driver of the device unconditionally + - removed the superfluous tr call in that path + * d/p/ubuntu-fix-lpm-use-after-free-and-leak.patch lpm/lpm6 (LP: #1554009): + - lpm/lpm6 fix use after free on lpm[6]_create + - lpm/lpm6 fix missing frees of rules_tbl substructure + - lpm/lpm6 fix missing free of lpm due to early exit + - make RTE_LOG messages of the failed allocation unique + * d/p/ubuntu-backport-[01-26] backport for stability (LP: #1559981): + - these will be in the following dpdk release and delta can then be dropped + - 26 fixes that do not change api/behaviour but fix serious issues + - 01 d3a274ce app/testpmd: handle SIGINT and SIGTERM + - 02 308df2bf Handle SIGINT and SIGTERM in l3fwd. + - 03 da82ee17 tools: fix unbinding failure handling + - 04 16c1814c tools: support Python 3 in bind script + - 05 bb9f4085 tools: support binding to built-in kernel modules + - 06 6e7caa1a eal/linux: support built-in kernel modules + - 07 86f36ff9 mempool: fix leak when creation fails + - 08 ca67ed28 vhost: fix leak of fds and mmaps + - 09 fa11a8a7 port: fix crash for ring writer nodrop + - 10 04f36690 port: fix crash for ethdev writer nodrop + - 11 c7a4ff80 i40e: fix overflow + - 12 097e920c i40e: fix inverted check for no refcount + - 13 330aa319 i40e: fix VLAN filtering + - 14 9f44dd3d i40e/base: fix missing check for stopped admin queue + - 15 8a880736 i40e/base: fix driver load failure + - 16 7656a546 fm10k: fix VLAN flag in scattered Rx + - 17 c6fb0e55 pcap: fix captured frame length + - 18 6e027237 bonding: fix detach of bonded device + - 19 df3e8ad7 bonding: fix detach of slave devices + - 20 786c990a bonding: copy entire config structure in mode 4 + - 21 6698820b bonding: do not ignore multicast in mode 4 + - 22 8997a10b bonding: fix active slaves with no primary + - 23 7a7122ed bonding: do not activate slave twice + - 24 2186fff3 bonding: fix crash when no slave device + - 25 c680a4a8 virtio: fix crash in statistics functions + - 26 3b1e3e4e virtio: fix descriptors pointing to the same buffer + * d/p/ubuntu-backport-27-virtio-fix-restart.patch for (LP: #1559981): + - fixing re-initializing the ethdev as openvswitch-dpdk does in the + virtio pmd driver by moving the detection of already being initialized + from virtio_dev_close to virtio_dev_start/stop + - this will be in the following dpdk release and delta can then be dropped + * d/rules build with debuginfo (LP: #1560839): + - exporting CFLAGS for all dpdk build processes + - dh_strip will automatically and create -dbgsym packages accordingly + + -- Christian Ehrhardt Wed, 23 Mar 2016 10:34:50 +0100 + +dpdk (2.2.0-0ubuntu5) xenial; urgency=medium + + * d/t/test-initscripts fix issues regarding 1G hugepages + - the dep8 was already taking care of 1G hugepages being not supported in + some environments. But it was failing when supported, but not enough + memory available. + + -- Christian Ehrhardt Wed, 09 Mar 2016 17:19:24 +0000 + +dpdk (2.2.0-0ubuntu4) xenial; urgency=medium + + * harden d/dpdk-init for configuration issues (LP: #1551601): + - detect and warn about bad bus specifications. + - detect and warn about incomplete device specifications. + - detect and warn about non existing pci IDs. + - avoid failing when working with unassigned devices. + - d/t/test-initscripts now testing various misconfigs. + - d/t/test-initscripts now also verifying service status. + * d/dpdk-init d/dpdk.conf now also support 1G hugepages (LP: #1551767): + - detect and warn if 1G pages are not available but configured. + - d/t/test-initscripts now also testing hugepage allocations. + - d/dpdk.conf has an option to drop caches to incease the likeliness of + successful 1G hugepage allocations (default off). + * d/rules replaced uname -m with DEB_HOST_GNU_CPU (LP: #1551796): + * fix testpmd to run without Xen environment (LP: #1551752): + - upstream discussion is slow, but we need a fix now. We can drop this + and change to the upstream solution when it is available. + * avoid errors due to missing modules (LP: #1554397): + - d/dpdk-init gracefully warns about missing modules. + - d/control now suggests linux-image-generic. + - d/dpdk.interfaces has a comment that makes the user aware. + * d/dpdk-init fix failure loading vfio-pci (LP: #1554214): + - d/dpdk-init no more converts "-" to "_" to make vfio-pci work + - d/dpdk.interfaces enhanced comments and updated examples + - d/dpdk-doc.README.debian got extra notes about using some modules + * unify whitespace/tabs in packaging and scripts + - tabs/spaces to just spaces in d/dpdk-init and d/dpdk.init. + - few remaining spaces to tabs in d/rules + * d/t/test-* now satisfy shellcheck + * d/* fix various comments and guides to be more readable + * d/dpdk-init and d/copyright updated copyright information + + -- Christian Ehrhardt Wed, 09 Mar 2016 08:48:58 +0000 + +dpdk (2.2.0-0ubuntu3) xenial; urgency=medium + + * Guard dep8 tests against non supported platforms (LP: #1551158): + - d/t/control now avoids failing due to "dependencies are unsatisfiable" + when fetching packages. The packages architecture restrictions got added + to avoid that. + - d/t/check-dpdk-supported-arch.sh is called by all DPDK tests to ensure + the platform is supported. If not it skips the test. + + -- Christian Ehrhardt Mon, 29 Feb 2016 11:03:39 +0000 + +dpdk (2.2.0-0ubuntu2) xenial; urgency=medium + + [ Christian Ehrhardt ] + * fix libdpdk.so library linking (LP: #1547517) + - libdpdk.so now has proper linkage information (was underlinked) + Note: this can be dropped when moving to DPDK 2.3 with linker script + instead of combined shared lib. + - remove reference to extra linkage needed when building against -ldpdk + in dpdk-doc README. + - add dep8 d/t/test-linkage to verify linking dpdk works as expected. + * d/control remove ${shlibs:Depends} on package with no linked binary + avoiding dpkg-gencontrol build warning about unknown ${shlibs:Depends}. + * d/dpdk-doc.README.debian fix path to DPDK build environment variable + helper script in README file. + * Update VCS Info in d/control to include our repositories. + + [ James Page ] + * d/*: wrap-and-sort. + * d/control: Trim trailing whitespace. + + -- Christian Ehrhardt Thu, 25 Feb 2016 16:07:21 +0000 + +dpdk (2.2.0-0ubuntu1) xenial; urgency=low + + * Merge from Upstream to DPDK 2.2 + Remaining changes: + - Set soabi for the combined shared library + * Drop changes: + - configuring RTE_LIBNAME to dpdk as it is the upstream default now + - enabled formerly non building components as they build properly in 2.2 + - d/p/ubunut-avoid-texlive-fonts-extra, d/control: + Replace use of DejaVuSansMono is no more needed as upstream changed the + font. Thereby we can drop our delta. + - d/p/ubuntu-fix-gcc5-ftbs.patch no more needed with DPDK 2.2 + * Added changes + - Disable CONFIG_RTE_NEXT_ABI as required for packaging (git 506f51cc) + - Enable LIBRTE_PMD_PCAP which is useful for some DPDK testcase examples + this adds a build dependency to libpcap-dev + - Fully support DH_VERBOSE for build debugging convenience + - adapt to new make infrastructure of dpdk 2.2 + - d/README.debian: convert into d/dpdk-doc.README.debian + - d/dpdk-doc.README.debian: update recommendations about sdk env variables + - d/dpdk-sdk-env.sh: now deployed in /usr/share/dpdk to be opt in + - enable XEN support for dpdk (LP: #1521289). + + -- Christian Ehrhardt Wed, 17 Feb 2016 09:29:28 +0100 + +dpdk (2.0.0-0ubuntu3) xenial; urgency=medium + + * Only generate HTML documentation, easing backports to 14.04 and + reducing the time to build and size of the -doc package (LP: #1524700). + + -- James Page Thu, 10 Dec 2015 10:23:51 +0000 + +dpdk (2.0.0-0ubuntu2) xenial; urgency=low + + * d/p/ubunut-avoid-texlive-fonts-extra, d/control: + Replace use of DejaVuSansMono by courier and drop dependency on the + texlive-fonts-extra package (which is in universe). + * d/watch added to allow use of uscan to check for upstream releases. + * d/dpdk-init: fix error if bash variables could not be resolved that + appeared as "[: -gt: unexpected operator" (had no functional impact) + * d/dpdk-init: + Replace use of head and cut (in /usr/bin) commands with sed (in /bin) + while also adding /usr/bin to the PATH used on direct /etc/init.d/dpdk + invocation. The PATH is only updated to be on the safe side, there + should be no other commands from /usr/bin used (LP: #1516543). + * d/t/test-mountpoint: add dep8 test to cover the issue of LP #1517075. + * d/dpdk-dev.install: Copy the SDK makefiles into place (LP: #1517075). + + -- Stefan Bader Tue, 17 Nov 2015 11:50:15 +0100 + +dpdk (2.0.0-0ubuntu1) wily; urgency=low + + * Initial release (LP: #1487538) + + -- Stefan Bader Mon, 01 Jun 2015 18:46:38 +0200 diff --git a/ovs_build/dpdk_16.07.fuel/compat b/ovs_build/dpdk_16.07.fuel/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/compat @@ -0,0 +1 @@ +9 diff --git a/ovs_build/dpdk_16.07.fuel/control b/ovs_build/dpdk_16.07.fuel/control new file mode 100644 index 0000000..a42a4fa --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/control @@ -0,0 +1,747 @@ +Source: dpdk +Priority: optional +Maintainer: MOS Linux Team +XSBC-Original-Maintainer: Ubuntu Developers +Build-Depends: debhelper (>= 9), + dh-python, + dh-systemd (>= 1.5), + dkms, + doxygen, + graphviz, + inkscape, + libcap-dev, + libpcap-dev, + libxen-dev, + libxenstore3.0, + python, + python-sphinx, + texlive-fonts-recommended, + texlive-latex-extra +Standards-Version: 3.9.8 +Section: libs +Homepage: http://www.dpdk.org +Vcs-Git: https://gerrit.fd.io/r/deb_dpdk +Vcs-Browser: https://gerrit.fd.io/r/gitweb?p=deb_dpdk.git + +Package: dpdk +Section: admin +Architecture: amd64 arm64 i386 +Depends: lsb-base (>= 3.2-14), + pciutils, + hwdata, + ${misc:Depends}, + ${python:Depends}, + ${shlibs:Depends} +Recommends: dpdk-igb-uio-dkms (= ${binary:Version}) [arm64], dpdk-rte-kni-dkms (= ${binary:Version}) [arm64], + librte-pmd-af-packet1 (= ${binary:Version}), + librte-pmd-bnxt1 (= ${binary:Version}), + librte-pmd-bond1 (= ${binary:Version}), + librte-pmd-cxgbe1 (= ${binary:Version}), + librte-pmd-e1000-1 (= ${binary:Version}), + librte-pmd-ena1 (= ${binary:Version}), + librte-pmd-enic1 (= ${binary:Version}) [amd64 arm64 i386], + librte-pmd-fm10k1 (= ${binary:Version}) [amd64 i386], + librte-pmd-i40e1 (= ${binary:Version}) [amd64 i386], + librte-pmd-ixgbe1 (= ${binary:Version}) [amd64 arm64 i386], + librte-pmd-null-crypto1 (= ${binary:Version}), + librte-pmd-null1 (= ${binary:Version}), + librte-pmd-pcap1 (= ${binary:Version}), + librte-pmd-ring2 (= ${binary:Version}), + librte-pmd-vhost1 (= ${binary:Version}), + librte-pmd-virtio1 (= ${binary:Version}), + librte-pmd-vmxnet3-uio1 (= ${binary:Version}) [amd64 arm64 i386], + librte-pmd-xenvirt1 (= ${binary:Version}) [amd64 arm64 i386], +Suggests: linux-image-generic, dpdk-igb-uio-dkms (= ${binary:Version}), dpdk-rte-kni-dkms (= ${binary:Version}) +Description: Data Plane Development Kit (runtime) + 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 environment to run DPDK applications. + +Package: dpdk-dev +Section: devel +Architecture: amd64 arm64 i386 +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 + in user-space and communicate directly with dedicated network interfaces. + . + This package contains examples and the upstream build environment. It is + not strictly required in order to build external applications. + +Package: dpdk-doc +Section: doc +Architecture: all +Homepage: http://dpdk.org/doc/guides/index.html +Depends: libjs-jquery, libjs-underscore, ${misc:Depends}, ${python:Depends} +Recommends: python, ${python:Recommends} +Description: Data Plane Development Kit (documentation) + 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 complete set of documentation and guides. + +Package: dpdk-igb-uio-dkms +Section: kernel +Architecture: amd64 arm64 i386 +Depends: dkms, + dpdk-dev (= ${binary:Version}), + libdpdk-dev (= ${binary:Version}), + make, + ${misc:Depends} +Description: Data Plane Development Kit (igb uio dkms) + 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. + +Package: dpdk-rte-kni-dkms +Section: kernel +Architecture: amd64 arm64 i386 +Depends: dkms, + dpdk-dev (= ${binary:Version}), + libdpdk-dev (= ${binary:Version}), + make, + ${misc:Depends} +Description: Data Plane Development Kit (rte kni dkms) + 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 rte_kni kernel module. + +Package: libdpdk-dev +Section: libdevel +Architecture: amd64 arm64 i386 +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, + libpcap-dev, + libethdev4 (= ${binary:Version}), + librte-acl2 (= ${binary:Version}), + librte-cfgfile2 (= ${binary:Version}), + librte-cmdline2 (= ${binary:Version}), + librte-cryptodev1 (= ${binary:Version}), + librte-distributor1 (= ${binary:Version}), + librte-eal2 (= ${binary:Version}), + librte-hash2 (= ${binary:Version}), + librte-ip-frag1 (= ${binary:Version}), + librte-jobstats1 (= ${binary:Version}), + librte-kni2 (= ${binary:Version}) [amd64 arm64], + librte-kvargs1 (= ${binary:Version}), + librte-lpm2 (= ${binary:Version}), + librte-mbuf2 (= ${binary:Version}), + librte-mempool2 (= ${binary:Version}), + librte-meter1 (= ${binary:Version}), + librte-pdump1 (= ${binary:Version}), + librte-pipeline3 (= ${binary:Version}), + librte-pmd-af-packet1 (= ${binary:Version}), + librte-pmd-bnxt1 (= ${binary:Version}), + librte-pmd-bond1 (= ${binary:Version}), + librte-pmd-cxgbe1 (= ${binary:Version}), + librte-pmd-e1000-1 (= ${binary:Version}), + librte-pmd-ena1 (= ${binary:Version}), + librte-pmd-enic1 (= ${binary:Version}), + librte-pmd-fm10k1 (= ${binary:Version}) [amd64 i386], + librte-pmd-i40e1 (= ${binary:Version}) [amd64 i386], + librte-pmd-ixgbe1 (= ${binary:Version}), + librte-pmd-null-crypto1 (= ${binary:Version}), + librte-pmd-null1 (= ${binary:Version}), + librte-pmd-pcap1 (= ${binary:Version}), + librte-pmd-ring2 (= ${binary:Version}), + librte-pmd-vhost1 (= ${binary:Version}), + librte-pmd-virtio1 (= ${binary:Version}), + librte-pmd-vmxnet3-uio1 (= ${binary:Version}), + librte-pmd-xenvirt1 (= ${binary:Version}), + librte-port3 (= ${binary:Version}), + librte-power1 (= ${binary:Version}), + librte-reorder1 (= ${binary:Version}), + librte-ring1 (= ${binary:Version}), + librte-sched1 (= ${binary:Version}), + librte-table2 (= ${binary:Version}), + librte-timer1 (= ${binary:Version}), + librte-vhost3 (= ${binary:Version}) +Description: Data Plane Development Kit (basic development files) + 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 basic headers and library files required to + build external applications which will also require at least SSE3 support + when running. + +Package: libethdev4 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__ethdev_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (libethdev runtime library) + 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 libethdev. + +Package: librte-acl2 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__ethdev_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-acl runtime library) + 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_acl. + +Package: librte-cfgfile2 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__cfgfile_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-cfgfile runtime library) + 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_cfgfile. + +Package: librte-cmdline2 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-cmdline runtime library) + 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_cmdline. + +Package: librte-cryptodev1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__cryptodev_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-cryptodev runtime library) + 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_cryptodev. + +Package: librte-distributor1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__distributor_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-distributor runtime library) + 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_distributor. + +Package: librte-eal2 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__eal_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-eal runtime library) + 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_eal. + +Package: librte-hash2 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__hash_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-hash runtime library) + 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_hash. + +Package: librte-ip-frag1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__ip__frag_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-ip-frag runtime library) + 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_ip_frag. + +Package: librte-jobstats1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__jobstats_8h_source.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-jobstats runtime library) + 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_jobstats. + +Package: librte-kni2 +Architecture: amd64 arm64 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__kni_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-kni runtime library) + 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_kni. + +Package: librte-kvargs1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__kvargs_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-kvargs runtime library) + 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_kvargs. + +Package: librte-lpm2 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__lpm_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-lpm runtime library) + 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_lpm. + +Package: librte-mbuf2 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__mbuf_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-mbuf2 runtime library) + 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_mbuf. + +Package: librte-mempool2 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__mempool_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-mempool runtime library) + 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_mempool. + +Package: librte-meter1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__meter_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-meter runtime library) + 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_meter. + +Package: librte-pipeline3 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__pipeline_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pipeline runtime library) + 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_pipeline. + +Package: librte-pmd-af-packet1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/browse/dpdk/tree/drivers/net/af_packet +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-af-packet runtime library) + 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_pmd_af_packet. + +Package: librte-pmd-bnxt1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-bnxt runtime library) + 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_pmd_bnxt. + +Package: librte-pmd-bond1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-bond runtime library) + 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_pmd_bond. + +Package: librte-pmd-cxgbe1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/cxgbe.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-cxgbe runtime library) + 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_pmd_cxgbe. + +Package: librte-pmd-e1000-1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/e1000em.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-e1000 runtime library) + 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_pmd_e1000. + +Package: librte-pmd-ena1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/ena.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-ena runtime library) + 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_pmd_ena. + +Package: librte-pmd-enic1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/enic.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-enic runtime library) + 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_pmd_enic. + +Package: librte-pmd-fm10k1 +Architecture: amd64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/fm10k.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-fm10k runtime library) + 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_pmd_fm10k. + +Package: librte-pmd-i40e1 +Architecture: amd64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/i40e.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-i40e runtime library) + 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_pmd_i40e. + +Package: librte-pmd-ixgbe1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/ixgbe.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-ixgbe runtime library) + 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_pmd_ixgbe. + +Package: librte-pmd-null-crypto1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/cryptodevs/null.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-null-crypto runtime library) + 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_pmd_null_crypto. + +Package: librte-pmd-null1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/browse/dpdk/tree/drivers/net/null +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-null runtime library) + 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_pmd_null. + +Package: librte-pmd-pcap1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/pcap_ring.html#libpcap-based-pmd +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-pcap runtime library) + 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_pmd_pcap. + +Package: librte-pmd-ring2 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/pcap_ring.html#rings-based-pmd +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-ring runtime library) + 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_pmd_ring. + +Package: librte-pmd-vhost1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/vhost.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-vhost runtime library) + 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_pmd_vhost. + +Package: librte-pmd-virtio1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/virtio.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-virtio runtime library) + 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_pmd_virtio. + +Package: librte-pmd-vmxnet3-uio1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/nics/vmxnet3.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-vmxnet3-uio runtime library) + 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_pmd_vmxnet3_uio. + +Package: librte-pmd-xenvirt1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/guides/xen/pkt_switch.html#xen-pmd-frontend-prerequisites +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-pmd-xenvirt runtime library) + 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_pmd_xenvirt. + +Package: librte-port3 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__port_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-port runtime library) + 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_port. + +Package: librte-power1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__power_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-power runtime library) + 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_power. + +Package: librte-reorder1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__reorder_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte-reorder runtime library) + 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_reorder. + +Package: librte-ring1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__ring_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte_ring runtime library) + 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_ring. + +Package: librte-sched1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__sched_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte_sched runtime library) + 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_sched. + +Package: librte-table2 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__table_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte_table runtime library) + 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_table. + +Package: librte-timer1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__timer_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte_timer runtime library) + 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_timer. + +Package: librte-vhost3 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Homepage: http://dpdk.org/doc/api/rte__virtio__net_8h.html +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte_vhost runtime library) + 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_vhost. + +Package: librte-pdump1 +Architecture: amd64 arm64 i386 +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} +Conflicts: libdpdk0 +Description: Data Plane Development Kit (librte_pdump runtime library) + 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. + +Package: dpdk-dkms +Architecture: amd64 arm64 i386 ppc64el +Depends: dpdk-igb-uio-dkms (= ${binary:Version}), dpdk-rte-kni-dkms (= ${binary:Version}) +Multi-Arch: same +Conflicts: libdpdk0 +Breaks: dpdk-dkms (< ${binary:Version}) +Description: Metapackage provides backward compatibility for + installing dpdk-dkms modules. diff --git a/ovs_build/dpdk_16.07.fuel/control.modules.in b/ovs_build/dpdk_16.07.fuel/control.modules.in new file mode 100644 index 0000000..dd1d9f8 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/control.modules.in @@ -0,0 +1,14 @@ +Package: dpdk-modules-#KVERS# +Section: kernel +Architecture: amd64 arm64 i386 +Provides: dpdk-modules +Recommends: linux-image-#KVERS# +Conflicts: dpdk-igb-uio-dkms, dpdk-rte-kni-dkms +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 --git a/ovs_build/dpdk_16.07.fuel/copyright b/ovs_build/dpdk_16.07.fuel/copyright new file mode 100644 index 0000000..2408879 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/copyright @@ -0,0 +1,136 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: dpdk +Source: http://dpdk.org + +Files: * +Copyright: 2008-2014 Cisco Systems, Inc. + 2012-2014 6WIND S.A. + 1999-2016 Intel Corporation. + 2010-2013 Tilera Corporation. + 2012-2016 Mellanox. + 2007 VMware, Inc. + 2007 Nuova Systems, Inc. + 2014 IBM Corporation. + 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 + +Files: debian/* +Copyright: 2015, 2016 Canonical Ltd. +License: GPL-3 + +Files: debian/kernel-version + debian/prep-modules +Copyright: 2009-2016 Andreas Beckmann + 2010-2016 Russ Allbery +License: GPL-2.0+ + +License: GPL-2 + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". + +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. + . + On Debian systems, the complete text of the GNU General Public + License version 2 can be found in "/usr/share/common-licenses/GPL-2". + +License: GPL-3 + 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: LGPL-2.1 + On Debian systems, the complete text of the GNU Library General Public + License can be found in the file `/usr/share/common-licenses/LGPL-2.1'. + +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 --git a/ovs_build/dpdk_16.07.fuel/dpdk-dev.lintian-overrides b/ovs_build/dpdk_16.07.fuel/dpdk-dev.lintian-overrides new file mode 100644 index 0000000..2d24d92 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk-dev.lintian-overrides @@ -0,0 +1,3 @@ +# Upstream distributes it like this, these are binaries which are +# part of the sdk which is shipped in dpdk-dev. +dpdk-dev: arch-dependent-file-in-usr-share diff --git a/ovs_build/dpdk_16.07.fuel/dpdk-doc.README.Debian b/ovs_build/dpdk_16.07.fuel/dpdk-doc.README.Debian new file mode 100644 index 0000000..0e3866a --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk-doc.README.Debian @@ -0,0 +1,64 @@ +dpdk for Debian +--------------- + +This package is currently compiled for the lowest possible CPU requirements. +Which still requires at least SSE3 to be supported by the CPU. + +dpdk (runtime) / libdpdk0: + +For runtime /etc/dpdk/interfaces holds a list of PCI devices to be assigned +to DPDK compatible drivers and /etc/dpdk/dpdk.conf allows one to define the +number of hugepages to be reserved at boot. +The runtime environment is not required to build applications that use +DPDK but if those applications get packaged they should depend on the +runtime. + +Since DPDK technically would be able to use all of your compatible card/driver +combination it is required that you take care of blacklisting / whitelisting +network cards to tell dpdk which it has to initialize (especially true for +virtio-pci as the normal kernel driver is considered compatible). + +If you are working with virtio-pci network cards it isn't a hard requirement to +assign them to a dpdk compatible userspace driver like uio_pci_generic. But you +have to at least unbind them from the default kernel driver (virtio-pci) to +avoid bugs by dpdk and the kernel working on them simultaneously. It is +recommended to reassign them to dpdk compatible drivers using +/etc/dpdk/interfaces (just as you would with any physical card). + +libdpdk0 contains the shared object needed to run a program in terms of symbol +resolution, but none of the other runtime environment pieces. + +dpdk-dev / libdpdk-dev: + +The minimum requirement for developing external applications is libdpdk-dev, +which brings the headers and library files. + +In dpdk-dev is the upstream makefile environment. Sample applications, which +are shipped in dpdk-doc, are providing makefiles. +Those makefiles need to find the dpdk build system. To do so they need some +environment variables defined: + export RTE_TARGET="$(uname -m)-default-linuxapp-gcc" + export RTE_SDK="/usr/share/dpdk/" + export RTE_INCLUDE="/usr/include/dpdk" +Those can be set by the user to overwrite with a custom path/config. If no +custom environment is used it is recommended to source the file +/usr/share/dpdk/dpdk-sdk-env.sh which comes with dpdk-dev. +If the paths ever change or there will be more/less variables needed to build +against dpdk-dev that file will be adjusted for you. + +Alternatively /usr/include/dpdk/rte_config.h has to be pre-included: +CFLAGS += -I/usr/include/dpdk -irte_config.h + +librte-pmd-* and DPDK PMD autoloading: + +PMD driver autoloading. DPDK since its split into several libraries does not +have all PMD drivers available by default. One always can use EAL argument -d +to provide a path to an extra .so file. +TO ease daily usage RTE_EAL_PMD_PATH is set to +/usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)/dpdk-pmds/. +Each librte-pmd-* package will place a symlink in there which makes DPDK load +and register it as PMD on startup. +This can also be used to globally enable extra PMD drivers as you can link +self-provided .so files in there to be considered. + + -- Christian Ehrhardt Thu, 29 Sep 2016 13:04:47 +0200 diff --git a/ovs_build/dpdk_16.07.fuel/dpdk-doc.lintian-overrides b/ovs_build/dpdk_16.07.fuel/dpdk-doc.lintian-overrides new file mode 100644 index 0000000..7da34da --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk-doc.lintian-overrides @@ -0,0 +1 @@ +dpdk-doc: embedded-javascript-library diff --git a/ovs_build/dpdk_16.07.fuel/dpdk-igb-uio-dkms.dkms b/ovs_build/dpdk_16.07.fuel/dpdk-igb-uio-dkms.dkms new file mode 100644 index 0000000..10dfecc --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk-igb-uio-dkms.dkms @@ -0,0 +1,7 @@ +PACKAGE_NAME="dpdk-igb-uio" +PACKAGE_VERSION="#MODULE_VERSION#" +BUILT_MODULE_NAME[0]="igb_uio" +MAKE="source /usr/share/dpdk/dpdk-sdk-env.sh; make MODULE_CFLAGS='-I/usr/include/dpdk -include /usr/include/dpdk/rte_config.h'" +CLEAN="source /usr/share/dpdk/dpdk-sdk-env.sh; make clean" +DEST_MODULE_LOCATION[0]="/updates/dkms" +AUTOINSTALL="YES" diff --git a/ovs_build/dpdk_16.07.fuel/dpdk-init b/ovs_build/dpdk_16.07.fuel/dpdk-init new file mode 100755 index 0000000..2872e49 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk-init @@ -0,0 +1,251 @@ +#!/bin/sh +# +# dpdk-init: startup script to initialize a dpdk runtime environment +# +# Copyright 2015-2016 Canonical Ltd. +# Autor: Stefan Bader +# Autor: Christian Ehrhardt +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 3, +# as published by the Free Software Foundation. +# +# 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 program. If not, see . +# +set -e + +DPDK_BIND="/sbin/dpdk-devbind" +DPDK_INTERF="/etc/dpdk/interfaces" + + +# pagesize supports [G|g]/[M|m]/[K|k] +get_kbytes() { + local unit + local num + unit=$(echo "${1}" | sed 's/[0-9]*//g') + num=$(echo "${1}" | sed 's/[^0-9]*//g') + case ${unit} in + *g | *G) + echo $((num*1024*1024)) + ;; + *m | *M) + echo $((num*1024)) + ;; + *k | *K) + echo $((num)) + ;; + *) + echo $((num/1024)) + ;; + esac +} + +get_default_hpgsz() { + default_hpgsz=$(grep "Hugepagesize:" /proc/meminfo \ + | sed 's/^Hugepagesize:\s*//g' | sed 's/\s*kB$//g') + echo "${default_hpgsz}" +} + +get_hugetlbfs_mountpoint() { + local requested_hpgsz + local mp_hpgsz + requested_hpgsz=$(get_kbytes "${1}") + + grep hugetlbfs /proc/mounts | while read \ + mntfrom mntpoint mntfstype mntopt mntdump mntfsck; do + + # check if the current muntpoint is of the requested huge page size + case ${mntopt} in + *pagesize=*) + mp_hpgsz=$(echo "${mntopt}" | sed 's/.*pagesize=//g' | sed 's/,.*//g') + mp_hpgsz=$(get_kbytes "${mp_hpgsz}") + ;; + *) + mp_hpgsz=$(get_default_hpgsz) + ;; + esac + if [ "${requested_hpgsz}" -eq "${mp_hpgsz}" ]; then + echo "${mntpoint}" + return + fi + done +} + +_mount_hugetlbfs() { + local MNT="/dev/hugepages" + local MNTOPTS="" + local requested_hpgsz + local default_hpgsz + requested_hpgsz=$(get_kbytes "${1}") + default_hpgsz=$(get_default_hpgsz) + + # kernel might not support the requested size + if [ ! -d "/sys/kernel/mm/hugepages/hugepages-${requested_hpgsz}kB" ]; then + echo "WARNING: requested page size of ${requested_hpgsz}kB " \ + "not supported by the kernel" + return 0 + fi + + # special case if this is not the default huge page size + if [ "${requested_hpgsz}" -ne "${default_hpgsz}" ]; then + MNT="${MNT}-${requested_hpgsz}" + MNTOPTS="pagesize=${requested_hpgsz}K" + fi + + if [ ! -e "${MNT}" ]; then + mkdir "${MNT}" + if [ $? -ne 0 ]; then + echo "Could not create directory ${MNT}!" >&2 + return 1 + fi + fi + mount -thugetlbfs hugetlbfs "${MNT}" -o "${MNTOPTS}" + return $? +} + +# +# The DPDK library will use the first mounted instance it finds for a given +# page size. so if there is already one for a given size there is no need to +# create another for the same huge page size. +# +mount_hugetlbfs() { + if [ ! -r /etc/dpdk/dpdk.conf ]; then + return 1 + fi + . /etc/dpdk/dpdk.conf + + # if a page size is requested, there has to be a mountpoint for that size + if [ -n "${NR_2M_PAGES}" -a -z "$(get_hugetlbfs_mountpoint '2M')" ]; then + _mount_hugetlbfs 2M + fi + if [ -n "${NR_1G_PAGES}" -a -z "$(get_hugetlbfs_mountpoint '1G')" ]; then + _mount_hugetlbfs 1G + fi +} + +_setup_hugepages() { + MMDIR="/sys/kernel/mm/hugepages/${1}" + PAGES=${2} + + if [ "$PAGES" != "" ]; then + if [ "$PAGES" -gt 0 ]; then + if [ -d "$MMDIR" -a -w "$MMDIR/nr_hugepages" ]; then + # increases the chance to allocate enough huge pages + # configurable, since it comes at a perf penality + if [ "$DROPCACHE_BEFORE_HP_ALLOC" = "1" ]; then + echo 3 > /proc/sys/vm/drop_caches + fi + + echo "$PAGES" > "$MMDIR/nr_hugepages" + + GOTPAGES=$(cat "$MMDIR/nr_hugepages") + if [ "$GOTPAGES" -lt "$PAGES" ]; then + echo "WARNING: could not allocate $PAGES at " \ + "$MMDIR/nr_hugepages (only got $GOTPAGES)." + fi + else + echo "WARNING: $MMDIR/nr_hugepages not found/writable" + fi + fi + fi +} + +# +# Reserve a certain amount of hugepages (defined in /etc/dpdk.conf) +# +setup_hugepages() { + if [ ! -r /etc/dpdk/dpdk.conf ]; then + return 1 + fi + . /etc/dpdk/dpdk.conf + + _setup_hugepages "hugepages-2048kB" "$NR_2M_PAGES" + _setup_hugepages "hugepages-1048576kB" "$NR_1G_PAGES" + + # dpdk uses 2*#hugepages mappings, increase for huge systems LP #1507921 + if [ -d /sys/kernel/mm/hugepages ]; then + max_map_count=$(awk -v pad=65530 '{tot+=$1}END{print tot*2+pad}' \ + /sys/kernel/mm/hugepages/hugepages-*/nr_hugepages) + sysctl -q vm.max_map_count="${max_map_count:-65530}" + fi + + return 0 +} + +# +# Allow NICs to be automatically bound to DPDK compatible drivers on boot. +# +bind_interfaces() { + if [ ! -r "$DPDK_INTERF" ]; then + return 0 + fi + grep -v '^[ \t]*#' "$DPDK_INTERF" | while read BUS ID MOD; do + if [ "$BUS" = "" -o "$ID" = "" -o "$MOD" = "" ]; then + echo "WARNING: incomplete spec in $DPDK_INTERF" \ + " - BUS '$BUS' ID '$ID' MOD '$MOD'" + continue + fi + if [ "$BUS" != "pci" ]; then + echo "WARNING: incompatible bus '$BUS' in $DPDK_INTERF" + continue + fi + + SYSFSPATH="/sys/bus/$BUS/devices/$ID" + if [ ! -e "$SYSFSPATH" ]; then + echo "WARNING: invalid pci ID '$ID' in $DPDK_INTERF" \ + " - '$SYSFSPATH' does not exist" + continue + fi + if [ -L "$SYSFSPATH/driver" ]; then + CUR=$(readlink "$SYSFSPATH/driver") + CUR=$(basename "$CUR") + else + # device existing, but currently unregistered + CUR="" + fi + if [ "$MOD" != "$CUR" ]; then + modprobe -q "$MOD" || true + # cloud img have no linux-image-extra initially (uip_pci_generic) + # so check if the module is available (loadable/built in) + if [ -e "/sys/bus/pci/drivers/${MOD}" ]; then + echo "Reassigning pci:$ID to $MOD" + $DPDK_BIND -b "$MOD" "$ID" + else + echo "Warning: failed assigning pci:$ID," \ + " module $MOD not available" + fi + else + echo "pci:$ID already assigned to $MOD" + fi + done +} + + + +case "$1" in +start) + mount_hugetlbfs + setup_hugepages + bind_interfaces + ;; +stop) + ;; +reload|force-reload) + setup_hugepages + bind_interfaces + ;; +status) + $DPDK_BIND --status + ;; +*) + echo "Usage: $0 {start|stop|reload|force-reload|status}" + exit 1 + ;; +esac + diff --git a/ovs_build/dpdk_16.07.fuel/dpdk-rte-kni-dkms.dkms b/ovs_build/dpdk_16.07.fuel/dpdk-rte-kni-dkms.dkms new file mode 100644 index 0000000..efccf1f --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk-rte-kni-dkms.dkms @@ -0,0 +1,7 @@ +PACKAGE_NAME="dpdk-rte-kni" +PACKAGE_VERSION="#MODULE_VERSION#" +BUILT_MODULE_NAME[0]="rte_kni" +MAKE="source /usr/share/dpdk/dpdk-sdk-env.sh; make MODULE_CFLAGS='-I/usr/include/dpdk -include /usr/include/dpdk/rte_config.h -I$source_tree/dpdk-rte-kni-#MODULE_VERSION#/ethtool/ixgbe -I$source_tree/dpdk-rte-kni-#MODULE_VERSION#/ethtool/igb'" +CLEAN="source /usr/share/dpdk/dpdk-sdk-env.sh; make clean" +DEST_MODULE_LOCATION[0]="/updates/dkms" +AUTOINSTALL="YES" diff --git a/ovs_build/dpdk_16.07.fuel/dpdk-sdk-env.sh.in b/ovs_build/dpdk_16.07.fuel/dpdk-sdk-env.sh.in new file mode 100755 index 0000000..aa8550f --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk-sdk-env.sh.in @@ -0,0 +1,4 @@ +export RTE_TARGET=SDK_TARGET +export RTE_SDK="/usr/share/dpdk/" +export RTE_INCLUDE="/usr/include/dpdk" +export RTE_KERNELDIR="/lib/modules/${kernelver}/build" diff --git a/ovs_build/dpdk_16.07.fuel/dpdk.conf b/ovs_build/dpdk_16.07.fuel/dpdk.conf new file mode 100644 index 0000000..fb4572d --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk.conf @@ -0,0 +1,54 @@ +# +# The number of 2M hugepages to reserve on system boot +# +# Default is 0 +# To e.g. let it reserve 64x 2M Hugepages set: +# NR_2M_PAGES=64 + +# +# The number of 1G hugepages to reserve on system boot +# +# Default is 0 +# To e.g. let it reserve 2x 1G Hugepages set: +# NR_1G_PAGES=2 + +# +# Dropping slab and pagecache can help to successfully allocate hugepages, +# especially later in the lifecycle of a system. +# This comes at the cost of loosing all slab and pagecache on (re)start +# of the dpdk service - therefore the default is off. +# +# Default is 0 +# Set to 1 to enable it +#DROPCACHE_BEFORE_HP_ALLOC=0 + +# The DPDK library will use the first mounted hugetlbfs. +# The init scripts try to ensure there is at least one default hugetlbfs +# mountpoint on start. +# If you have multiple hugetlbfs mountpoints for a complex (e.g. specific numa +# policies) setup it should be controlled by the admin instead of this init +# script. In that case specific mountpoints can be provided as parameters to +# the DPDK library. + +# Hardware may support other granularities of hugepages (like 4M). But the +# larger the hugepages the earlier those should be allocated. +# Note: the dpdk init scripts will report warnings, but not fail if they could +# not allocate the requested amount of hugepages. +# The more or the larger the hugepages to be allocated are, the more it is +# recommended to do the reservation as kernel commandline arguments. +# To do so edit /etc/default/grub: GRUB_CMDLINE_LINUX_DEFAULT +# and add [hugepagesz=xx] hugepages=yy ... +# +# Kernel commandline config: +# hugepagesz sets the size for the next hugepages reservation (default 2M) +# hugepages reserves the given number of hugepages of the size set before +# +# After modifying /etc/default/grub, the command "update-grub" has to be +# run in order to re-generate the grub config files. The new values will +# be used after next reboot. +# +# example: +# GRUB_CMDLINE_LINUX_DEFAULT="... hugepages=16 hugepagesz=1G hugepages=2" +# +# If the system supports it, this will reserve 16x 2M pages and 2x 1G pages. +# diff --git a/ovs_build/dpdk_16.07.fuel/dpdk.init b/ovs_build/dpdk_16.07.fuel/dpdk.init new file mode 100644 index 0000000..01b4784 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk.init @@ -0,0 +1,57 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: dpdk +# Required-Start: $remote_fs $local_fs +# Required-Stop: $remote_fs $local_fs +# Default-Start: S +# Default-Stop: 0 1 6 +# Short-Description: start dpdk runtime environment +### END INIT INFO + +set -e + +PATH="/sbin:/bin:/usr/bin" + +[ -d /lib/dpdk ] || exit 0 + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.2-14) to ensure that this file is present +# and status_of_proc is working. +. /lib/lsb/init-functions + +error=0 +case "$1" in +start) + log_action_begin_msg "Starting DPDK environment" "dpdk" + output=$(/lib/dpdk/dpdk-init start 2>&1) || error="$?" + if [ ! -z "$output" ]; then + echo "$output" | while read line; do + log_action_cont_msg "$line" + done + fi + log_action_end_msg $error + exit $error + ;; +stop) + ;; +restart|force-reload) + ;; +status) + output=$(/lib/dpdk/dpdk-init --status 2>&1) || error="$?" + if [ ! -z "$output" ]; then + echo "$output" | while read line; do + log_action_cont_msg "$line" + done + fi + log_action_end_msg $error + exit $error + ;; +*) + echo "Usage: $0 {start|stop|restart|force-reload|status}" + exit 1 + ;; +esac + +exit 0 + diff --git a/ovs_build/dpdk_16.07.fuel/dpdk.install b/ovs_build/dpdk_16.07.fuel/dpdk.install new file mode 100644 index 0000000..24c8d45 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk.install @@ -0,0 +1,2 @@ +debian/dpdk-init lib/dpdk/ +debian/dpdk.conf etc/dpdk/ diff --git a/ovs_build/dpdk_16.07.fuel/dpdk.interfaces b/ovs_build/dpdk_16.07.fuel/dpdk.interfaces new file mode 100644 index 0000000..3442343 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk.interfaces @@ -0,0 +1,19 @@ +# +# Currently only "pci" is supported +# Device ID on the specified bus +# Driver to bind against (vfio-pci, uio_pci_generic, igb_uio or +# rte_kni) +# +# Be aware that the two dpdk compatible drivers uio_pci_generic and vfio-pci are +# part of linux-image-extra- package. +# This package is not always installed by default - for example in cloud-images. +# So please install it in case you run into missing module issues. +# +# For the module igb_uio, please install the dpdk-igb-uio-dkms package. +# For the module rte_kni, please install the dpdk-rte-kni-dkms package. +# +# +# pci 0000:04:00.0 vfio-pci +# pci 0000:04:00.1 uio_pci_generic +# pci 0000:05:00.0 igb_uio +# pci 0000:06:00.0 rte_kni diff --git a/ovs_build/dpdk_16.07.fuel/dpdk.service b/ovs_build/dpdk_16.07.fuel/dpdk.service new file mode 100644 index 0000000..09ef8be --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/dpdk.service @@ -0,0 +1,12 @@ +[Unit] +Description=DPDK runtime environment +DefaultDependencies=false +After=network-pre.target local-fs.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/lib/dpdk/dpdk-init start + +[Install] +WantedBy=multi-user.target diff --git a/ovs_build/dpdk_16.07.fuel/kernel-version b/ovs_build/dpdk_16.07.fuel/kernel-version new file mode 100755 index 0000000..16ab01b --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/kernel-version @@ -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 --git a/ovs_build/dpdk_16.07.fuel/libdpdk.pc.in b/ovs_build/dpdk_16.07.fuel/libdpdk.pc.in new file mode 100644 index 0000000..eff4f18 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/libdpdk.pc.in @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: dpdk +Description: Data Plane Development Kit library +Version: @VERSION@ +Libs: -L${libdir} @DPDK_LIBS@ -ldl -lm -lpthread -lz +Cflags: -I${includedir}/dpdk -include ${includedir}/dpdk/rte_config.h diff --git a/ovs_build/dpdk_16.07.fuel/libethdev4.symbols b/ovs_build/dpdk_16.07.fuel/libethdev4.symbols new file mode 100644 index 0000000..426fc15 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/libethdev4.symbols @@ -0,0 +1,116 @@ +libethdev.so.4 libethdev4 #MINVER# + DPDK_16.04@DPDK_16.04 16.07~rc1 + DPDK_16.07@DPDK_16.07 16.07~rc1 + DPDK_2.2@DPDK_2.2 16.07~rc1 + _rte_eth_dev_callback_process@DPDK_2.2 16.07~rc1 + rte_eth_add_first_rx_callback@DPDK_16.07 16.07~rc1 + rte_eth_add_rx_callback@DPDK_2.2 16.07~rc1 + rte_eth_add_tx_callback@DPDK_2.2 16.07~rc1 + rte_eth_allmulticast_disable@DPDK_2.2 16.07~rc1 + rte_eth_allmulticast_enable@DPDK_2.2 16.07~rc1 + rte_eth_allmulticast_get@DPDK_2.2 16.07~rc1 + rte_eth_copy_pci_info@DPDK_2.2 16.07~rc1 + rte_eth_dev_allocate@DPDK_2.2 16.07~rc1 + rte_eth_dev_allocated@DPDK_2.2 16.07~rc1 + rte_eth_dev_attach@DPDK_2.2 16.07~rc1 + rte_eth_dev_callback_register@DPDK_2.2 16.07~rc1 + rte_eth_dev_callback_unregister@DPDK_2.2 16.07~rc1 + rte_eth_dev_close@DPDK_2.2 16.07~rc1 + rte_eth_dev_configure@DPDK_2.2 16.07~rc1 + rte_eth_dev_count@DPDK_2.2 16.07~rc1 + rte_eth_dev_default_mac_addr_set@DPDK_2.2 16.07~rc1 + rte_eth_dev_detach@DPDK_2.2 16.07~rc1 + rte_eth_dev_filter_ctrl@DPDK_2.2 16.07~rc1 + rte_eth_dev_filter_supported@DPDK_2.2 16.07~rc1 + rte_eth_dev_flow_ctrl_get@DPDK_2.2 16.07~rc1 + rte_eth_dev_flow_ctrl_set@DPDK_2.2 16.07~rc1 + rte_eth_dev_get_dcb_info@DPDK_2.2 16.07~rc1 + rte_eth_dev_get_eeprom@DPDK_2.2 16.07~rc1 + rte_eth_dev_get_eeprom_length@DPDK_2.2 16.07~rc1 + rte_eth_dev_get_mtu@DPDK_2.2 16.07~rc1 + rte_eth_dev_get_name_by_port@DPDK_16.07 16.07~rc1 + rte_eth_dev_get_port_by_name@DPDK_16.07 16.07~rc1 + rte_eth_dev_get_reg_info@DPDK_2.2 16.07~rc1 + rte_eth_dev_get_supported_ptypes@DPDK_16.04 16.07~rc1 + rte_eth_dev_get_vlan_offload@DPDK_2.2 16.07~rc1 + rte_eth_dev_info_get@DPDK_2.2 16.07~rc1 + rte_eth_dev_is_valid_port@DPDK_2.2 16.07~rc1 + rte_eth_dev_l2_tunnel_eth_type_conf@DPDK_16.04 16.07~rc1 + rte_eth_dev_l2_tunnel_offload_set@DPDK_16.04 16.07~rc1 + rte_eth_dev_mac_addr_add@DPDK_2.2 16.07~rc1 + rte_eth_dev_mac_addr_remove@DPDK_2.2 16.07~rc1 + rte_eth_dev_priority_flow_ctrl_set@DPDK_2.2 16.07~rc1 + rte_eth_dev_release_port@DPDK_2.2 16.07~rc1 + rte_eth_dev_rss_hash_conf_get@DPDK_2.2 16.07~rc1 + rte_eth_dev_rss_hash_update@DPDK_2.2 16.07~rc1 + rte_eth_dev_rss_reta_query@DPDK_2.2 16.07~rc1 + rte_eth_dev_rss_reta_update@DPDK_2.2 16.07~rc1 + rte_eth_dev_rx_intr_ctl@DPDK_2.2 16.07~rc1 + rte_eth_dev_rx_intr_ctl_q@DPDK_2.2 16.07~rc1 + rte_eth_dev_rx_intr_disable@DPDK_2.2 16.07~rc1 + rte_eth_dev_rx_intr_enable@DPDK_2.2 16.07~rc1 + rte_eth_dev_rx_queue_start@DPDK_2.2 16.07~rc1 + rte_eth_dev_rx_queue_stop@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_eeprom@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_link_down@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_link_up@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_mc_addr_list@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_mtu@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_rx_queue_stats_mapping@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_tx_queue_stats_mapping@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_vf_rx@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_vf_rxmode@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_vf_tx@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_vf_vlan_filter@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_vlan_ether_type@DPDK_16.04 16.07~rc1 + rte_eth_dev_set_vlan_offload@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_vlan_pvid@DPDK_2.2 16.07~rc1 + rte_eth_dev_set_vlan_strip_on_queue@DPDK_2.2 16.07~rc1 + rte_eth_dev_socket_id@DPDK_2.2 16.07~rc1 + rte_eth_dev_start@DPDK_2.2 16.07~rc1 + rte_eth_dev_stop@DPDK_2.2 16.07~rc1 + rte_eth_dev_tx_queue_start@DPDK_2.2 16.07~rc1 + rte_eth_dev_tx_queue_stop@DPDK_2.2 16.07~rc1 + rte_eth_dev_uc_all_hash_table_set@DPDK_2.2 16.07~rc1 + rte_eth_dev_uc_hash_table_set@DPDK_2.2 16.07~rc1 + rte_eth_dev_udp_tunnel_port_add@DPDK_16.04 16.07~rc1 + rte_eth_dev_udp_tunnel_port_delete@DPDK_16.04 16.07~rc1 + rte_eth_dev_vlan_filter@DPDK_2.2 16.07~rc1 + rte_eth_devices@DPDK_2.2 16.07~rc1 + rte_eth_dma_zone_reserve@DPDK_2.2 16.07~rc1 + rte_eth_driver_register@DPDK_2.2 16.07~rc1 + rte_eth_led_off@DPDK_2.2 16.07~rc1 + rte_eth_led_on@DPDK_2.2 16.07~rc1 + rte_eth_link_get@DPDK_2.2 16.07~rc1 + rte_eth_link_get_nowait@DPDK_2.2 16.07~rc1 + rte_eth_macaddr_get@DPDK_2.2 16.07~rc1 + rte_eth_mirror_rule_reset@DPDK_2.2 16.07~rc1 + rte_eth_mirror_rule_set@DPDK_2.2 16.07~rc1 + rte_eth_promiscuous_disable@DPDK_2.2 16.07~rc1 + rte_eth_promiscuous_enable@DPDK_2.2 16.07~rc1 + rte_eth_promiscuous_get@DPDK_2.2 16.07~rc1 + rte_eth_remove_rx_callback@DPDK_2.2 16.07~rc1 + rte_eth_remove_tx_callback@DPDK_2.2 16.07~rc1 + rte_eth_rx_queue_info_get@DPDK_2.2 16.07~rc1 + rte_eth_rx_queue_setup@DPDK_2.2 16.07~rc1 + rte_eth_set_queue_rate_limit@DPDK_2.2 16.07~rc1 + rte_eth_set_vf_rate_limit@DPDK_2.2 16.07~rc1 + rte_eth_speed_bitflag@DPDK_16.04 16.07~rc1 + rte_eth_stats_get@DPDK_2.2 16.07~rc1 + rte_eth_stats_reset@DPDK_2.2 16.07~rc1 + rte_eth_timesync_adjust_time@DPDK_2.2 16.07~rc1 + rte_eth_timesync_disable@DPDK_2.2 16.07~rc1 + rte_eth_timesync_enable@DPDK_2.2 16.07~rc1 + rte_eth_timesync_read_rx_timestamp@DPDK_2.2 16.07~rc1 + rte_eth_timesync_read_time@DPDK_2.2 16.07~rc1 + rte_eth_timesync_read_tx_timestamp@DPDK_2.2 16.07~rc1 + rte_eth_timesync_write_time@DPDK_2.2 16.07~rc1 + rte_eth_tx_buffer_count_callback@DPDK_16.04 16.07~rc1 + rte_eth_tx_buffer_drop_callback@DPDK_16.04 16.07~rc1 + rte_eth_tx_buffer_init@DPDK_16.04 16.07~rc1 + rte_eth_tx_buffer_set_err_callback@DPDK_16.04 16.07~rc1 + rte_eth_tx_queue_info_get@DPDK_2.2 16.07~rc1 + rte_eth_tx_queue_setup@DPDK_2.2 16.07~rc1 + rte_eth_xstats_get@DPDK_2.2 16.07~rc1 + rte_eth_xstats_get_names@DPDK_16.07 16.07~rc1 + rte_eth_xstats_reset@DPDK_2.2 16.07~rc1 diff --git a/ovs_build/dpdk_16.07.fuel/librte-acl2.symbols b/ovs_build/dpdk_16.07.fuel/librte-acl2.symbols new file mode 100644 index 0000000..8ebfb8f --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-acl2.symbols @@ -0,0 +1,15 @@ +librte_acl.so.2 librte-acl2 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + rte_acl_add_rules@DPDK_2.0 16.04 + rte_acl_build@DPDK_2.0 16.04 + rte_acl_classify@DPDK_2.0 16.04 + rte_acl_classify_alg@DPDK_2.0 16.04 + rte_acl_classify_scalar@DPDK_2.0 16.04 + rte_acl_create@DPDK_2.0 16.04 + rte_acl_dump@DPDK_2.0 16.04 + rte_acl_find_existing@DPDK_2.0 16.04 + rte_acl_free@DPDK_2.0 16.04 + rte_acl_list_dump@DPDK_2.0 16.04 + rte_acl_reset@DPDK_2.0 16.04 + rte_acl_reset_rules@DPDK_2.0 16.04 + rte_acl_set_ctx_classify@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-cfgfile2.symbols b/ovs_build/dpdk_16.07.fuel/librte-cfgfile2.symbols new file mode 100644 index 0000000..1d347dc --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-cfgfile2.symbols @@ -0,0 +1,13 @@ +librte_cfgfile.so.2 librte-cfgfile2 #MINVER# + DPDK_16.04@DPDK_16.04 16.04 + DPDK_2.0@DPDK_2.0 16.04 + rte_cfgfile_close@DPDK_2.0 16.04 + rte_cfgfile_get_entry@DPDK_2.0 16.04 + rte_cfgfile_has_entry@DPDK_2.0 16.04 + rte_cfgfile_has_section@DPDK_2.0 16.04 + rte_cfgfile_load@DPDK_2.0 16.04 + rte_cfgfile_num_sections@DPDK_2.0 16.04 + rte_cfgfile_section_entries@DPDK_2.0 16.04 + rte_cfgfile_section_entries_by_index@DPDK_16.04 16.04 + rte_cfgfile_section_num_entries@DPDK_2.0 16.04 + rte_cfgfile_sections@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-cmdline2.symbols b/ovs_build/dpdk_16.07.fuel/librte-cmdline2.symbols new file mode 100644 index 0000000..b83f5fd --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-cmdline2.symbols @@ -0,0 +1,68 @@ +librte_cmdline.so.2 librte-cmdline2 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + DPDK_2.1@DPDK_2.1 16.04 + cirbuf_add_buf_head@DPDK_2.0 16.04 + cirbuf_add_buf_tail@DPDK_2.0 16.04 + cirbuf_add_head@DPDK_2.0 16.04 + cirbuf_add_head_safe@DPDK_2.0 16.04 + cirbuf_add_tail@DPDK_2.0 16.04 + cirbuf_add_tail_safe@DPDK_2.0 16.04 + cirbuf_align_left@DPDK_2.0 16.04 + cirbuf_align_right@DPDK_2.0 16.04 + cirbuf_del_buf_head@DPDK_2.0 16.04 + cirbuf_del_buf_tail@DPDK_2.0 16.04 + cirbuf_del_head@DPDK_2.0 16.04 + cirbuf_del_head_safe@DPDK_2.0 16.04 + cirbuf_del_tail@DPDK_2.0 16.04 + cirbuf_del_tail_safe@DPDK_2.0 16.04 + cirbuf_get_buf_head@DPDK_2.0 16.04 + cirbuf_get_buf_tail@DPDK_2.0 16.04 + cirbuf_get_head@DPDK_2.0 16.04 + cirbuf_get_tail@DPDK_2.0 16.04 + cirbuf_init@DPDK_2.0 16.04 + cmdline_complete@DPDK_2.0 16.04 + cmdline_complete_get_elt_string@DPDK_2.0 16.04 + cmdline_complete_get_nb_string@DPDK_2.0 16.04 + cmdline_file_new@DPDK_2.0 16.04 + cmdline_free@DPDK_2.0 16.04 + cmdline_get_help_etheraddr@DPDK_2.0 16.04 + cmdline_get_help_ipaddr@DPDK_2.0 16.04 + cmdline_get_help_num@DPDK_2.0 16.04 + cmdline_get_help_portlist@DPDK_2.0 16.04 + cmdline_get_help_string@DPDK_2.0 16.04 + cmdline_in@DPDK_2.0 16.04 + cmdline_interact@DPDK_2.0 16.04 + cmdline_isendoftoken@DPDK_2.0 16.04 + cmdline_new@DPDK_2.0 16.04 + cmdline_parse@DPDK_2.0 16.04 + cmdline_parse_etheraddr@DPDK_2.0 16.04 + cmdline_parse_ipaddr@DPDK_2.0 16.04 + cmdline_parse_num@DPDK_2.0 16.04 + cmdline_parse_portlist@DPDK_2.0 16.04 + cmdline_parse_string@DPDK_2.0 16.04 + cmdline_poll@DPDK_2.1 16.04 + cmdline_printf@DPDK_2.0 16.04 + cmdline_quit@DPDK_2.0 16.04 + cmdline_set_prompt@DPDK_2.0 16.04 + cmdline_stdin_exit@DPDK_2.0 16.04 + cmdline_stdin_new@DPDK_2.0 16.04 + cmdline_token_etheraddr_ops@DPDK_2.0 16.04 + cmdline_token_ipaddr_ops@DPDK_2.0 16.04 + cmdline_token_num_ops@DPDK_2.0 16.04 + cmdline_token_portlist_ops@DPDK_2.0 16.04 + cmdline_token_string_ops@DPDK_2.0 16.04 + cmdline_write_char@DPDK_2.0 16.04 + rdline_add_history@DPDK_2.0 16.04 + rdline_char_in@DPDK_2.0 16.04 + rdline_clear_history@DPDK_2.0 16.04 + rdline_get_buffer@DPDK_2.0 16.04 + rdline_get_history_item@DPDK_2.0 16.04 + rdline_init@DPDK_2.0 16.04 + rdline_newline@DPDK_2.0 16.04 + rdline_quit@DPDK_2.0 16.04 + rdline_redisplay@DPDK_2.0 16.04 + rdline_reset@DPDK_2.0 16.04 + rdline_restart@DPDK_2.0 16.04 + rdline_stop@DPDK_2.0 16.04 + vt100_init@DPDK_2.0 16.04 + vt100_parser@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-cryptodev1.symbols b/ovs_build/dpdk_16.07.fuel/librte-cryptodev1.symbols new file mode 100644 index 0000000..f5fa955 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-cryptodev1.symbols @@ -0,0 +1,32 @@ +librte_cryptodev.so.1 librte-cryptodev1 #MINVER# + DPDK_16.04@DPDK_16.04 16.04 + DPDK_16.07@DPDK_16.07 16.07~rc1 + rte_crypto_op_pool_create@DPDK_16.04 16.04 + rte_cryptodev_callback_register@DPDK_16.04 16.04 + rte_cryptodev_callback_unregister@DPDK_16.04 16.04 + rte_cryptodev_close@DPDK_16.04 16.04 + rte_cryptodev_configure@DPDK_16.04 16.04 + rte_cryptodev_count@DPDK_16.04 16.04 + rte_cryptodev_count_devtype@DPDK_16.04 16.04 + rte_cryptodev_create_vdev@DPDK_16.04 16.04 + rte_cryptodev_get_dev_id@DPDK_16.04 16.04 + rte_cryptodev_get_feature_name@DPDK_16.04 16.04 + rte_cryptodev_info_get@DPDK_16.04 16.04 + rte_cryptodev_parse_vdev_init_params@DPDK_16.07 16.07~rc1 + rte_cryptodev_pmd_allocate@DPDK_16.04 16.04 + rte_cryptodev_pmd_callback_process@DPDK_16.04 16.04 + rte_cryptodev_pmd_driver_register@DPDK_16.04 16.04 + rte_cryptodev_pmd_release_device@DPDK_16.04 16.04 + rte_cryptodev_pmd_virtual_dev_init@DPDK_16.04 16.04 + rte_cryptodev_queue_pair_count@DPDK_16.04 16.04 + rte_cryptodev_queue_pair_setup@DPDK_16.04 16.04 + rte_cryptodev_queue_pair_start@DPDK_16.04 16.04 + rte_cryptodev_queue_pair_stop@DPDK_16.04 16.04 + rte_cryptodev_socket_id@DPDK_16.04 16.04 + rte_cryptodev_start@DPDK_16.04 16.04 + rte_cryptodev_stats_get@DPDK_16.04 16.04 + rte_cryptodev_stats_reset@DPDK_16.04 16.04 + rte_cryptodev_stop@DPDK_16.04 16.04 + rte_cryptodev_sym_session_create@DPDK_16.04 16.04 + rte_cryptodev_sym_session_free@DPDK_16.04 16.04 + rte_cryptodevs@DPDK_16.04 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-distributor1.symbols b/ovs_build/dpdk_16.07.fuel/librte-distributor1.symbols new file mode 100644 index 0000000..3218e6a --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-distributor1.symbols @@ -0,0 +1,11 @@ +librte_distributor.so.1 librte-distributor1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + rte_distributor_clear_returns@DPDK_2.0 16.04 + rte_distributor_create@DPDK_2.0 16.04 + rte_distributor_flush@DPDK_2.0 16.04 + rte_distributor_get_pkt@DPDK_2.0 16.04 + rte_distributor_poll_pkt@DPDK_2.0 16.04 + rte_distributor_process@DPDK_2.0 16.04 + rte_distributor_request_pkt@DPDK_2.0 16.04 + rte_distributor_return_pkt@DPDK_2.0 16.04 + rte_distributor_returned_pkts@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-eal2.symbols b/ovs_build/dpdk_16.07.fuel/librte-eal2.symbols new file mode 100644 index 0000000..cafe244 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-eal2.symbols @@ -0,0 +1,137 @@ +librte_eal.so.2 librte-eal2 #MINVER# + DPDK_16.04@DPDK_16.04 16.04 + DPDK_16.07@DPDK_16.07 16.07~rc1 + DPDK_2.0@DPDK_2.0 16.04 + DPDK_2.1@DPDK_2.1 16.04 + DPDK_2.2@DPDK_2.2 16.04 + __rte_panic@DPDK_2.0 16.04 + devargs_list@DPDK_2.0 16.04 + eal_parse_sysfs_value@DPDK_2.0 16.04 + eal_timer_source@DPDK_2.0 16.04 + lcore_config@DPDK_2.0 16.04 + pci_device_list@DPDK_2.0 16.04 + pci_driver_list@DPDK_2.0 16.04 + pci_get_sysfs_path@DPDK_16.07 16.07~rc1 + per_lcore__lcore_id@DPDK_2.0 16.04 + per_lcore__rte_errno@DPDK_2.0 16.04 + rte_calloc@DPDK_2.0 16.04 + rte_calloc_socket@DPDK_2.0 16.04 + rte_cpu_check_supported@DPDK_2.0 16.04 + rte_cpu_get_flag_enabled@DPDK_2.0 16.04 + rte_cpu_get_flag_name@DPDK_16.04 16.04 + rte_cycles_vmware_tsc_map@DPDK_2.0 16.04 + rte_delay_us@DPDK_2.0 16.04 + rte_dump_physmem_layout@DPDK_2.0 16.04 + rte_dump_registers@DPDK_2.0 16.04 + rte_dump_stack@DPDK_2.0 16.04 + rte_dump_tailq@DPDK_2.0 16.04 + rte_eal_alarm_cancel@DPDK_2.0 16.04 + rte_eal_alarm_set@DPDK_2.0 16.04 + rte_eal_dev_init@DPDK_2.0 16.04 + rte_eal_devargs_add@DPDK_2.0 16.04 + rte_eal_devargs_dump@DPDK_2.0 16.04 + rte_eal_devargs_type_count@DPDK_2.0 16.04 + rte_eal_driver_register@DPDK_2.0 16.04 + rte_eal_driver_unregister@DPDK_2.0 16.04 + rte_eal_get_configuration@DPDK_2.0 16.04 + rte_eal_get_lcore_state@DPDK_2.0 16.04 + rte_eal_get_physmem_layout@DPDK_2.0 16.04 + rte_eal_get_physmem_size@DPDK_2.0 16.04 + rte_eal_has_hugepages@DPDK_2.0 16.04 + rte_eal_init@DPDK_2.0 16.04 + rte_eal_iopl_init@DPDK_2.0 16.04 + rte_eal_lcore_role@DPDK_2.0 16.04 + rte_eal_mp_remote_launch@DPDK_2.0 16.04 + rte_eal_mp_wait_lcore@DPDK_2.0 16.04 + rte_eal_parse_devargs_str@DPDK_2.0 16.04 + rte_eal_pci_detach@DPDK_2.1 16.04 + rte_eal_pci_dump@DPDK_2.0 16.04 + rte_eal_pci_ioport_map@DPDK_16.04 16.04 + rte_eal_pci_ioport_read@DPDK_16.04 16.04 + rte_eal_pci_ioport_unmap@DPDK_16.04 16.04 + rte_eal_pci_ioport_write@DPDK_16.04 16.04 + rte_eal_pci_map_device@DPDK_16.04 16.04 + rte_eal_pci_probe@DPDK_2.0 16.04 + rte_eal_pci_probe_one@DPDK_2.0 16.04 + rte_eal_pci_read_config@DPDK_2.1 16.04 + rte_eal_pci_register@DPDK_2.0 16.04 + rte_eal_pci_scan@DPDK_2.0 16.04 + rte_eal_pci_unmap_device@DPDK_16.04 16.04 + rte_eal_pci_unregister@DPDK_2.0 16.04 + rte_eal_pci_write_config@DPDK_2.1 16.04 + rte_eal_primary_proc_alive@DPDK_16.04 16.04 + rte_eal_process_type@DPDK_2.0 16.04 + rte_eal_remote_launch@DPDK_2.0 16.04 + rte_eal_set_socket_permissions@DPDK_2.2 16.04 + rte_eal_tailq_lookup@DPDK_2.0 16.04 + rte_eal_tailq_register@DPDK_2.0 16.04 + rte_eal_vdev_init@DPDK_2.0 16.04 + rte_eal_vdev_uninit@DPDK_2.0 16.04 + rte_eal_wait_lcore@DPDK_2.0 16.04 + rte_epoll_ctl@DPDK_2.1 16.04 + rte_epoll_wait@DPDK_2.1 16.04 + rte_exit@DPDK_2.0 16.04 + rte_free@DPDK_2.0 16.04 + rte_get_log_level@DPDK_2.0 16.04 + rte_get_log_type@DPDK_2.0 16.04 + rte_get_tsc_hz@DPDK_2.0 16.04 + rte_hexdump@DPDK_2.0 16.04 + rte_intr_allow_others@DPDK_2.1 16.04 + rte_intr_callback_register@DPDK_2.0 16.04 + rte_intr_callback_unregister@DPDK_2.0 16.04 + rte_intr_cap_multiple@DPDK_2.2 16.04 + rte_intr_disable@DPDK_2.0 16.04 + rte_intr_dp_is_en@DPDK_2.1 16.04 + rte_intr_efd_disable@DPDK_2.1 16.04 + rte_intr_efd_enable@DPDK_2.1 16.04 + rte_intr_enable@DPDK_2.0 16.04 + rte_intr_rx_ctl@DPDK_2.1 16.04 + rte_intr_tls_epfd@DPDK_2.1 16.04 + rte_keepalive_create@DPDK_2.2 16.04 + rte_keepalive_dispatch_pings@DPDK_2.2 16.04 + rte_keepalive_mark_alive@DPDK_2.2 16.04 + rte_keepalive_mark_sleep@DPDK_16.07 16.07~rc1 + rte_keepalive_register_core@DPDK_2.2 16.04 + rte_keepalive_register_relay_callback@DPDK_16.07 16.07~rc1 + rte_log@DPDK_2.0 16.04 + rte_log_add_in_history@DPDK_2.0 16.04 + rte_log_cur_msg_loglevel@DPDK_2.0 16.04 + rte_log_cur_msg_logtype@DPDK_2.0 16.04 + rte_log_dump_history@DPDK_2.0 16.04 + rte_log_set_history@DPDK_2.0 16.04 + rte_logs@DPDK_2.0 16.04 + rte_malloc@DPDK_2.0 16.04 + rte_malloc_dump_stats@DPDK_2.0 16.04 + rte_malloc_get_socket_stats@DPDK_2.0 16.04 + rte_malloc_set_limit@DPDK_2.0 16.04 + rte_malloc_socket@DPDK_2.0 16.04 + rte_malloc_validate@DPDK_2.0 16.04 + rte_malloc_virt2phy@DPDK_2.0 16.04 + rte_mem_lock_page@DPDK_2.0 16.04 + rte_mem_virt2phy@DPDK_2.0 16.04 + rte_memdump@DPDK_2.0 16.04 + rte_memory_get_nchannel@DPDK_2.0 16.04 + rte_memory_get_nrank@DPDK_2.0 16.04 + rte_memzone_dump@DPDK_2.0 16.04 + rte_memzone_free@DPDK_2.1 16.04 + rte_memzone_lookup@DPDK_2.0 16.04 + rte_memzone_reserve@DPDK_2.0 16.04 + rte_memzone_reserve_aligned@DPDK_2.0 16.04 + rte_memzone_reserve_bounded@DPDK_2.0 16.04 + rte_memzone_walk@DPDK_2.0 16.04 + rte_openlog_stream@DPDK_2.0 16.04 + rte_realloc@DPDK_2.0 16.04 + (arch=!arm64)rte_rtm_supported@DPDK_16.07 16.07~rc3 + rte_set_application_usage_hook@DPDK_2.0 16.04 + rte_set_log_level@DPDK_2.0 16.04 + rte_set_log_type@DPDK_2.0 16.04 + rte_socket_id@DPDK_2.0 16.04 + rte_strerror@DPDK_2.0 16.04 + rte_strsplit@DPDK_2.0 16.04 + rte_sys_gettid@DPDK_2.0 16.04 + rte_thread_get_affinity@DPDK_2.0 16.04 + rte_thread_set_affinity@DPDK_2.0 16.04 + rte_thread_setname@DPDK_16.07 16.07~rc1 + rte_vlog@DPDK_2.0 16.04 + rte_zmalloc@DPDK_2.0 16.04 + rte_zmalloc_socket@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-hash2.symbols b/ovs_build/dpdk_16.07.fuel/librte-hash2.symbols new file mode 100644 index 0000000..d01da79 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-hash2.symbols @@ -0,0 +1,28 @@ +librte_hash.so.2 librte-hash2 #MINVER# + DPDK_16.07@DPDK_16.07 16.07~rc3 + DPDK_2.0@DPDK_2.0 16.04 + DPDK_2.1@DPDK_2.1 16.04 + DPDK_2.2@DPDK_2.2 16.04 + rte_fbk_hash_create@DPDK_2.0 16.04 + rte_fbk_hash_find_existing@DPDK_2.0 16.04 + rte_fbk_hash_free@DPDK_2.0 16.04 + rte_hash_add_key@DPDK_2.0 16.04 + rte_hash_add_key_data@DPDK_2.1 16.04 + rte_hash_add_key_with_hash@DPDK_2.0 16.04 + rte_hash_add_key_with_hash_data@DPDK_2.1 16.04 + rte_hash_create@DPDK_2.0 16.04 + rte_hash_del_key@DPDK_2.0 16.04 + rte_hash_del_key_with_hash@DPDK_2.0 16.04 + rte_hash_find_existing@DPDK_2.0 16.04 + rte_hash_free@DPDK_2.0 16.04 + rte_hash_get_key_with_position@DPDK_16.07 16.07~rc3 + rte_hash_hash@DPDK_2.0 16.04 + rte_hash_iterate@DPDK_2.1 16.04 + rte_hash_lookup@DPDK_2.0 16.04 + rte_hash_lookup_bulk@DPDK_2.0 16.04 + rte_hash_lookup_bulk_data@DPDK_2.1 16.04 + rte_hash_lookup_data@DPDK_2.1 16.04 + rte_hash_lookup_with_hash@DPDK_2.0 16.04 + rte_hash_lookup_with_hash_data@DPDK_2.1 16.04 + rte_hash_reset@DPDK_2.1 16.04 + rte_hash_set_cmp_func@DPDK_2.2 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-ip-frag1.symbols b/ovs_build/dpdk_16.07.fuel/librte-ip-frag1.symbols new file mode 100644 index 0000000..b210026 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-ip-frag1.symbols @@ -0,0 +1,9 @@ +librte_ip_frag.so.1 librte-ip-frag1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + rte_ip_frag_free_death_row@DPDK_2.0 16.04 + rte_ip_frag_table_create@DPDK_2.0 16.04 + rte_ip_frag_table_statistics_dump@DPDK_2.0 16.04 + rte_ipv4_frag_reassemble_packet@DPDK_2.0 16.04 + rte_ipv4_fragment_packet@DPDK_2.0 16.04 + rte_ipv6_frag_reassemble_packet@DPDK_2.0 16.04 + rte_ipv6_fragment_packet@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-jobstats1.symbols b/ovs_build/dpdk_16.07.fuel/librte-jobstats1.symbols new file mode 100644 index 0000000..6eecd0b --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-jobstats1.symbols @@ -0,0 +1,17 @@ +librte_jobstats.so.1 librte-jobstats1 #MINVER# + DPDK_16.04@DPDK_16.04 16.04 + DPDK_2.0@DPDK_2.0 16.04 + rte_jobstats_abort@DPDK_16.04 16.04 + rte_jobstats_context_finish@DPDK_2.0 16.04 + rte_jobstats_context_init@DPDK_2.0 16.04 + rte_jobstats_context_reset@DPDK_2.0 16.04 + rte_jobstats_context_start@DPDK_2.0 16.04 + rte_jobstats_finish@DPDK_2.0 16.04 + rte_jobstats_init@DPDK_2.0 16.04 + rte_jobstats_reset@DPDK_2.0 16.04 + rte_jobstats_set_max@DPDK_2.0 16.04 + rte_jobstats_set_min@DPDK_2.0 16.04 + rte_jobstats_set_period@DPDK_2.0 16.04 + rte_jobstats_set_target@DPDK_2.0 16.04 + rte_jobstats_set_update_period_function@DPDK_2.0 16.04 + rte_jobstats_start@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-kni2.symbols b/ovs_build/dpdk_16.07.fuel/librte-kni2.symbols new file mode 100644 index 0000000..c76cd8e --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-kni2.symbols @@ -0,0 +1,13 @@ +librte_kni.so.2 librte-kni2 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + rte_kni_alloc@DPDK_2.0 16.04 + rte_kni_close@DPDK_2.0 16.04 + rte_kni_get@DPDK_2.0 16.04 + rte_kni_get_name@DPDK_2.0 16.04 + rte_kni_handle_request@DPDK_2.0 16.04 + rte_kni_init@DPDK_2.0 16.04 + rte_kni_register_handlers@DPDK_2.0 16.04 + rte_kni_release@DPDK_2.0 16.04 + rte_kni_rx_burst@DPDK_2.0 16.04 + rte_kni_tx_burst@DPDK_2.0 16.04 + rte_kni_unregister_handlers@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-kvargs1.symbols b/ovs_build/dpdk_16.07.fuel/librte-kvargs1.symbols new file mode 100644 index 0000000..18175a7 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-kvargs1.symbols @@ -0,0 +1,6 @@ +librte_kvargs.so.1 librte-kvargs1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + rte_kvargs_count@DPDK_2.0 16.04 + rte_kvargs_free@DPDK_2.0 16.04 + rte_kvargs_parse@DPDK_2.0 16.04 + rte_kvargs_process@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-lpm2.symbols b/ovs_build/dpdk_16.07.fuel/librte-lpm2.symbols new file mode 100644 index 0000000..30a2e18 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-lpm2.symbols @@ -0,0 +1,27 @@ +librte_lpm.so.2 librte-lpm2 #MINVER# + DPDK_16.04@DPDK_16.04 16.04 + DPDK_2.0@DPDK_2.0 16.04 + rte_lpm6_add@DPDK_2.0 16.04 + rte_lpm6_create@DPDK_2.0 16.04 + rte_lpm6_delete@DPDK_2.0 16.04 + rte_lpm6_delete_all@DPDK_2.0 16.04 + rte_lpm6_delete_bulk_func@DPDK_2.0 16.04 + rte_lpm6_find_existing@DPDK_2.0 16.04 + rte_lpm6_free@DPDK_2.0 16.04 + rte_lpm6_is_rule_present@DPDK_2.0 16.04 + rte_lpm6_lookup@DPDK_2.0 16.04 + rte_lpm6_lookup_bulk_func@DPDK_2.0 16.04 + rte_lpm_add@DPDK_16.04 16.04 + rte_lpm_add@DPDK_2.0 16.04 + rte_lpm_create@DPDK_16.04 16.04 + rte_lpm_create@DPDK_2.0 16.04 + rte_lpm_delete@DPDK_16.04 16.04 + rte_lpm_delete@DPDK_2.0 16.04 + rte_lpm_delete_all@DPDK_16.04 16.04 + rte_lpm_delete_all@DPDK_2.0 16.04 + rte_lpm_find_existing@DPDK_16.04 16.04 + rte_lpm_find_existing@DPDK_2.0 16.04 + rte_lpm_free@DPDK_16.04 16.04 + rte_lpm_free@DPDK_2.0 16.04 + rte_lpm_is_rule_present@DPDK_16.04 16.04 + rte_lpm_is_rule_present@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-mbuf2.symbols b/ovs_build/dpdk_16.07.fuel/librte-mbuf2.symbols new file mode 100644 index 0000000..3a380ff --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-mbuf2.symbols @@ -0,0 +1,11 @@ +librte_mbuf.so.2 librte-mbuf2 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + DPDK_2.1@DPDK_2.1 16.04 + rte_ctrlmbuf_init@DPDK_2.0 16.04 + rte_get_rx_ol_flag_name@DPDK_2.0 16.04 + rte_get_tx_ol_flag_name@DPDK_2.0 16.04 + rte_mbuf_sanity_check@DPDK_2.0 16.04 + rte_pktmbuf_dump@DPDK_2.0 16.04 + rte_pktmbuf_init@DPDK_2.0 16.04 + rte_pktmbuf_pool_create@DPDK_2.1 16.04 + rte_pktmbuf_pool_init@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-mempool2.symbols b/ovs_build/dpdk_16.07.fuel/librte-mempool2.symbols new file mode 100644 index 0000000..a70fcc3 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-mempool2.symbols @@ -0,0 +1,31 @@ +librte_mempool.so.2 librte-mempool2 #MINVER# + DPDK_16.07@DPDK_16.07 16.07~rc1 + DPDK_2.0@DPDK_2.0 16.07~rc1 + rte_mempool_audit@DPDK_2.0 16.07~rc1 + rte_mempool_avail_count@DPDK_16.07 16.07~rc1 + rte_mempool_cache_create@DPDK_16.07 16.07~rc1 + rte_mempool_cache_free@DPDK_16.07 16.07~rc1 + rte_mempool_calc_obj_size@DPDK_2.0 16.07~rc1 + rte_mempool_check_cookies@DPDK_16.07 16.07~rc1 + rte_mempool_count@DPDK_2.0 16.07~rc1 + rte_mempool_create@DPDK_2.0 16.07~rc1 + rte_mempool_create_empty@DPDK_16.07 16.07~rc1 + rte_mempool_dump@DPDK_2.0 16.07~rc1 + rte_mempool_free@DPDK_16.07 16.07~rc1 + rte_mempool_in_use_count@DPDK_16.07 16.07~rc1 + rte_mempool_list_dump@DPDK_2.0 16.07~rc1 + rte_mempool_lookup@DPDK_2.0 16.07~rc1 + rte_mempool_mem_iter@DPDK_16.07 16.07~rc1 + rte_mempool_obj_iter@DPDK_16.07 16.07~rc1 + rte_mempool_ops_table@DPDK_16.07 16.07~rc1 + rte_mempool_populate_anon@DPDK_16.07 16.07~rc1 + rte_mempool_populate_default@DPDK_16.07 16.07~rc1 + rte_mempool_populate_phys@DPDK_16.07 16.07~rc1 + rte_mempool_populate_phys_tab@DPDK_16.07 16.07~rc1 + rte_mempool_populate_virt@DPDK_16.07 16.07~rc1 + rte_mempool_register_ops@DPDK_16.07 16.07~rc1 + rte_mempool_set_ops_byname@DPDK_16.07 16.07~rc1 + rte_mempool_walk@DPDK_2.0 16.07~rc1 + rte_mempool_xmem_create@DPDK_2.0 16.07~rc1 + rte_mempool_xmem_size@DPDK_2.0 16.07~rc1 + rte_mempool_xmem_usage@DPDK_2.0 16.07~rc1 diff --git a/ovs_build/dpdk_16.07.fuel/librte-meter1.symbols b/ovs_build/dpdk_16.07.fuel/librte-meter1.symbols new file mode 100644 index 0000000..c598c8d --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-meter1.symbols @@ -0,0 +1,4 @@ +librte_meter.so.1 librte-meter1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + rte_meter_srtcm_config@DPDK_2.0 16.04 + rte_meter_trtcm_config@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-pdump1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pdump1.symbols new file mode 100644 index 0000000..9132910 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pdump1.symbols @@ -0,0 +1,9 @@ +librte_pdump.so.1 librte-pdump1 #MINVER# + DPDK_16.07@DPDK_16.07 16.07~rc1 + rte_pdump_disable@DPDK_16.07 16.07~rc1 + rte_pdump_disable_by_deviceid@DPDK_16.07 16.07~rc1 + rte_pdump_enable@DPDK_16.07 16.07~rc1 + rte_pdump_enable_by_deviceid@DPDK_16.07 16.07~rc1 + rte_pdump_init@DPDK_16.07 16.07~rc1 + rte_pdump_set_socket_dir@DPDK_16.07 16.07~rc1 + rte_pdump_uninit@DPDK_16.07 16.07~rc1 diff --git a/ovs_build/dpdk_16.07.fuel/librte-pipeline3.symbols b/ovs_build/dpdk_16.07.fuel/librte-pipeline3.symbols new file mode 100644 index 0000000..5801c09 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pipeline3.symbols @@ -0,0 +1,28 @@ +librte_pipeline.so.3 librte-pipeline3 #MINVER# + DPDK_16.04@DPDK_16.04 16.04 + DPDK_2.0@DPDK_2.0 16.04 + DPDK_2.1@DPDK_2.1 16.04 + DPDK_2.2@DPDK_2.2 16.04 + rte_pipeline_ah_packet_drop@DPDK_16.04 16.04 + rte_pipeline_ah_packet_hijack@DPDK_16.04 16.04 + rte_pipeline_check@DPDK_2.0 16.04 + rte_pipeline_create@DPDK_2.0 16.04 + rte_pipeline_flush@DPDK_2.0 16.04 + rte_pipeline_free@DPDK_2.0 16.04 + rte_pipeline_port_in_connect_to_table@DPDK_2.0 16.04 + rte_pipeline_port_in_create@DPDK_2.0 16.04 + rte_pipeline_port_in_disable@DPDK_2.0 16.04 + rte_pipeline_port_in_enable@DPDK_2.0 16.04 + rte_pipeline_port_in_stats_read@DPDK_2.1 16.04 + rte_pipeline_port_out_create@DPDK_2.0 16.04 + rte_pipeline_port_out_packet_insert@DPDK_2.0 16.04 + rte_pipeline_port_out_stats_read@DPDK_2.1 16.04 + rte_pipeline_run@DPDK_2.0 16.04 + rte_pipeline_table_create@DPDK_2.0 16.04 + rte_pipeline_table_default_entry_add@DPDK_2.0 16.04 + rte_pipeline_table_default_entry_delete@DPDK_2.0 16.04 + rte_pipeline_table_entry_add@DPDK_2.0 16.04 + rte_pipeline_table_entry_add_bulk@DPDK_2.2 16.04 + rte_pipeline_table_entry_delete@DPDK_2.0 16.04 + rte_pipeline_table_entry_delete_bulk@DPDK_2.2 16.04 + rte_pipeline_table_stats_read@DPDK_2.1 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-af-packet1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-af-packet1.symbols new file mode 100644 index 0000000..699357b --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-af-packet1.symbols @@ -0,0 +1,4 @@ +librte_pmd_af_packet.so.1 librte-pmd-af-packet1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-bnxt1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-bnxt1.symbols new file mode 100644 index 0000000..acb47d6 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-bnxt1.symbols @@ -0,0 +1,4 @@ +librte_pmd_bnxt.so.1 librte-pmd-bnxt1 #MINVER# + DPDK_16.04@DPDK_16.04 16.07~rc3 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-bond1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-bond1.symbols new file mode 100644 index 0000000..cd8cf13 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-bond1.symbols @@ -0,0 +1,29 @@ +librte_pmd_bond.so.1 librte-pmd-bond1 #MINVER# + DPDK_16.04@DPDK_16.04 16.07~rc1 + DPDK_16.07@DPDK_16.07 16.07~rc1 + DPDK_2.0@DPDK_2.0 16.04 + DPDK_2.1@DPDK_2.1 16.04 + rte_eth_bond_8023ad_conf_get@DPDK_2.0 16.04 + rte_eth_bond_8023ad_setup@DPDK_2.0 16.04 + rte_eth_bond_8023ad_conf_get@DPDK_16.07 16.07~rc1 + rte_eth_bond_8023ad_ext_collect@DPDK_16.07 16.07~rc1 + rte_eth_bond_8023ad_ext_collect_get@DPDK_16.07 16.07~rc1 + rte_eth_bond_8023ad_ext_distrib@DPDK_16.07 16.07~rc1 + rte_eth_bond_8023ad_ext_distrib_get@DPDK_16.07 16.07~rc1 + rte_eth_bond_8023ad_ext_slowtx@DPDK_16.07 16.07~rc1 + rte_eth_bond_8023ad_setup@DPDK_16.07 16.07~rc1 + rte_eth_bond_active_slaves_get@DPDK_2.0 16.04 + rte_eth_bond_create@DPDK_2.0 16.04 + rte_eth_bond_free@DPDK_2.1 16.04 + rte_eth_bond_link_monitoring_set@DPDK_2.0 16.04 + rte_eth_bond_mac_address_reset@DPDK_2.0 16.04 + rte_eth_bond_mac_address_set@DPDK_2.0 16.04 + rte_eth_bond_mode_get@DPDK_2.0 16.04 + rte_eth_bond_mode_set@DPDK_2.0 16.04 + rte_eth_bond_primary_get@DPDK_2.0 16.04 + rte_eth_bond_primary_set@DPDK_2.0 16.04 + rte_eth_bond_slave_add@DPDK_2.0 16.04 + rte_eth_bond_slave_remove@DPDK_2.0 16.04 + rte_eth_bond_slaves_get@DPDK_2.0 16.04 + rte_eth_bond_xmit_policy_get@DPDK_2.0 16.04 + rte_eth_bond_xmit_policy_set@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-cxgbe1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-cxgbe1.symbols new file mode 100644 index 0000000..9c9c059 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-cxgbe1.symbols @@ -0,0 +1,4 @@ +librte_pmd_cxgbe.so.1 librte-pmd-cxgbe1 #MINVER# + DPDK_2.1@DPDK_2.1 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-e1000-1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-e1000-1.symbols new file mode 100644 index 0000000..9ee7d4f --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-e1000-1.symbols @@ -0,0 +1,4 @@ +librte_pmd_e1000.so.1 librte-pmd-e1000-1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-ena1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-ena1.symbols new file mode 100644 index 0000000..03ea178 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-ena1.symbols @@ -0,0 +1,4 @@ +librte_pmd_ena.so.1 librte-pmd-ena1 #MINVER# + DPDK_16.04@DPDK_16.04 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-enic1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-enic1.symbols new file mode 100644 index 0000000..e5150e9 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-enic1.symbols @@ -0,0 +1,4 @@ +librte_pmd_enic.so.1 librte-pmd-enic1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-fm10k1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-fm10k1.symbols new file mode 100644 index 0000000..f9b8fa7 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-fm10k1.symbols @@ -0,0 +1,4 @@ +librte_pmd_fm10k.so.1 librte-pmd-fm10k1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-i40e1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-i40e1.symbols new file mode 100644 index 0000000..cd4239a --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-i40e1.symbols @@ -0,0 +1,4 @@ +librte_pmd_i40e.so.1 librte-pmd-i40e1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-ixgbe1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-ixgbe1.symbols new file mode 100644 index 0000000..13b0f1e --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-ixgbe1.symbols @@ -0,0 +1,4 @@ +librte_pmd_ixgbe.so.1 librte-pmd-ixgbe1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-null-crypto1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-null-crypto1.symbols new file mode 100644 index 0000000..b480eba --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-null-crypto1.symbols @@ -0,0 +1,4 @@ +librte_pmd_null_crypto.so.1 librte-pmd-null-crypto1 #MINVER# + DPDK_16.04@DPDK_16.04 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-null1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-null1.symbols new file mode 100644 index 0000000..c55b0f7 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-null1.symbols @@ -0,0 +1,4 @@ +librte_pmd_null.so.1 librte-pmd-null1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + DPDK_2.2@DPDK_2.2 16.04 + eth_dev_null_create@DPDK_2.2 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-pcap1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-pcap1.symbols new file mode 100644 index 0000000..326b7c0 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-pcap1.symbols @@ -0,0 +1,4 @@ +librte_pmd_pcap.so.1 librte-pmd-pcap1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-ring2.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-ring2.symbols new file mode 100644 index 0000000..f0235fa --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-ring2.symbols @@ -0,0 +1,5 @@ +librte_pmd_ring.so.2 librte-pmd-ring2 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + DPDK_2.2@DPDK_2.2 16.04 + rte_eth_from_ring@DPDK_2.2 16.04 + rte_eth_from_rings@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-vhost1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-vhost1.symbols new file mode 100644 index 0000000..6b26396 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-vhost1.symbols @@ -0,0 +1,6 @@ +librte_pmd_vhost.so.1 librte-pmd-vhost1 #MINVER# + DPDK_16.04@DPDK_16.04 16.04 + rte_eth_vhost_feature_disable@DPDK_16.04 16.04 + rte_eth_vhost_feature_enable@DPDK_16.04 16.04 + rte_eth_vhost_feature_get@DPDK_16.04 16.04 + rte_eth_vhost_get_queue_event@DPDK_16.04 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-virtio1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-virtio1.symbols new file mode 100644 index 0000000..a3ddb8b --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-virtio1.symbols @@ -0,0 +1,4 @@ +librte_pmd_virtio.so.1 librte-pmd-virtio1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-vmxnet3-uio1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-vmxnet3-uio1.symbols new file mode 100644 index 0000000..d12a79f --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-vmxnet3-uio1.symbols @@ -0,0 +1,4 @@ +librte_pmd_vmxnet3_uio.so.1 librte-pmd-vmxnet3-uio1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 +# INFO: this library exports no symbols, essentially it is a driver that +# registers itself on load and is then only driven by callbacks. diff --git a/ovs_build/dpdk_16.07.fuel/librte-pmd-xenvirt1.symbols b/ovs_build/dpdk_16.07.fuel/librte-pmd-xenvirt1.symbols new file mode 100644 index 0000000..6bdf42a --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-pmd-xenvirt1.symbols @@ -0,0 +1,3 @@ +librte_pmd_xenvirt.so.1 librte-pmd-xenvirt1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + rte_mempool_gntalloc_create@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-port3.symbols b/ovs_build/dpdk_16.07.fuel/librte-port3.symbols new file mode 100644 index 0000000..e41b301 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-port3.symbols @@ -0,0 +1,25 @@ +librte_port.so.3 librte-port3 #MINVER# + DPDK_16.07@DPDK_16.07 16.07~rc1 + DPDK_2.0@DPDK_2.0 16.07~rc1 + DPDK_2.1@DPDK_2.1 16.07~rc1 + DPDK_2.2@DPDK_2.2 16.07~rc1 + rte_port_ethdev_reader_ops@DPDK_2.0 16.07~rc1 + rte_port_ethdev_writer_nodrop_ops@DPDK_2.1 16.07~rc1 + rte_port_ethdev_writer_ops@DPDK_2.0 16.07~rc1 + (arch=!i386)rte_port_kni_reader_ops@DPDK_16.07 16.07~rc1 + (arch=!i386)rte_port_kni_writer_nodrop_ops@DPDK_16.07 16.07~rc1 + (arch=!i386)rte_port_kni_writer_ops@DPDK_16.07 16.07~rc1 + rte_port_ring_multi_reader_ops@DPDK_2.2 16.07~rc1 + rte_port_ring_multi_writer_nodrop_ops@DPDK_2.2 16.07~rc1 + rte_port_ring_multi_writer_ops@DPDK_2.2 16.07~rc1 + rte_port_ring_reader_ipv4_frag_ops@DPDK_2.0 16.07~rc1 + rte_port_ring_reader_ipv6_frag_ops@DPDK_2.1 16.07~rc1 + rte_port_ring_reader_ops@DPDK_2.0 16.07~rc1 + rte_port_ring_writer_ipv4_ras_ops@DPDK_2.0 16.07~rc1 + rte_port_ring_writer_ipv6_ras_ops@DPDK_2.1 16.07~rc1 + rte_port_ring_writer_nodrop_ops@DPDK_2.1 16.07~rc1 + rte_port_ring_writer_ops@DPDK_2.0 16.07~rc1 + rte_port_sched_reader_ops@DPDK_2.0 16.07~rc1 + rte_port_sched_writer_ops@DPDK_2.0 16.07~rc1 + rte_port_sink_ops@DPDK_2.0 16.07~rc1 + rte_port_source_ops@DPDK_2.0 16.07~rc1 diff --git a/ovs_build/dpdk_16.07.fuel/librte-power1.symbols b/ovs_build/dpdk_16.07.fuel/librte-power1.symbols new file mode 100644 index 0000000..ca6e862 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-power1.symbols @@ -0,0 +1,14 @@ +librte_power.so.1 librte-power1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + rte_power_exit@DPDK_2.0 16.04 + rte_power_freq_down@DPDK_2.0 16.04 + rte_power_freq_max@DPDK_2.0 16.04 + rte_power_freq_min@DPDK_2.0 16.04 + rte_power_freq_up@DPDK_2.0 16.04 + rte_power_freqs@DPDK_2.0 16.04 + rte_power_get_env@DPDK_2.0 16.04 + rte_power_get_freq@DPDK_2.0 16.04 + rte_power_init@DPDK_2.0 16.04 + rte_power_set_env@DPDK_2.0 16.04 + rte_power_set_freq@DPDK_2.0 16.04 + rte_power_unset_env@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-reorder1.symbols b/ovs_build/dpdk_16.07.fuel/librte-reorder1.symbols new file mode 100644 index 0000000..d70169b --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-reorder1.symbols @@ -0,0 +1,9 @@ +librte_reorder.so.1 librte-reorder1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + rte_reorder_create@DPDK_2.0 16.04 + rte_reorder_drain@DPDK_2.0 16.04 + rte_reorder_find_existing@DPDK_2.0 16.04 + rte_reorder_free@DPDK_2.0 16.04 + rte_reorder_init@DPDK_2.0 16.04 + rte_reorder_insert@DPDK_2.0 16.04 + rte_reorder_reset@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-ring1.symbols b/ovs_build/dpdk_16.07.fuel/librte-ring1.symbols new file mode 100644 index 0000000..8f4c574 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-ring1.symbols @@ -0,0 +1,11 @@ +librte_ring.so.1 librte-ring1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + DPDK_2.2@DPDK_2.2 16.04 + rte_ring_create@DPDK_2.0 16.04 + rte_ring_dump@DPDK_2.0 16.04 + rte_ring_free@DPDK_2.2 16.04 + rte_ring_get_memsize@DPDK_2.0 16.04 + rte_ring_init@DPDK_2.0 16.04 + rte_ring_list_dump@DPDK_2.0 16.04 + rte_ring_lookup@DPDK_2.0 16.04 + rte_ring_set_water_mark@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-sched1.symbols b/ovs_build/dpdk_16.07.fuel/librte-sched1.symbols new file mode 100644 index 0000000..e74aa3d --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-sched1.symbols @@ -0,0 +1,22 @@ +librte_sched.so.1 librte-sched1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + DPDK_2.1@DPDK_2.1 16.04 + rte_approx@DPDK_2.0 16.04 + rte_red_config_init@DPDK_2.0 16.04 + rte_red_log2_1_minus_Wq@DPDK_2.0 16.04 + rte_red_pow2_frac_inv@DPDK_2.0 16.04 + rte_red_rand_seed@DPDK_2.0 16.04 + rte_red_rand_val@DPDK_2.0 16.04 + rte_red_rt_data_init@DPDK_2.0 16.04 + rte_sched_pipe_config@DPDK_2.0 16.04 + rte_sched_port_config@DPDK_2.0 16.04 + rte_sched_port_dequeue@DPDK_2.0 16.04 + rte_sched_port_enqueue@DPDK_2.0 16.04 + rte_sched_port_free@DPDK_2.0 16.04 + rte_sched_port_get_memory_footprint@DPDK_2.0 16.04 + rte_sched_port_pkt_read_color@DPDK_2.1 16.04 + rte_sched_port_pkt_read_tree_path@DPDK_2.1 16.04 + rte_sched_port_pkt_write@DPDK_2.1 16.04 + rte_sched_queue_read_stats@DPDK_2.0 16.04 + rte_sched_subport_config@DPDK_2.0 16.04 + rte_sched_subport_read_stats@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-table2.symbols b/ovs_build/dpdk_16.07.fuel/librte-table2.symbols new file mode 100644 index 0000000..d3e10b7 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-table2.symbols @@ -0,0 +1,19 @@ +librte_table.so.2 librte-table2 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + DPDK_2.2@DPDK_2.2 16.04 + rte_table_acl_ops@DPDK_2.0 16.04 + rte_table_array_ops@DPDK_2.0 16.04 + rte_table_hash_ext_ops@DPDK_2.0 16.04 + rte_table_hash_key16_ext_dosig_ops@DPDK_2.2 16.04 + rte_table_hash_key16_ext_ops@DPDK_2.0 16.04 + rte_table_hash_key16_lru_ops@DPDK_2.0 16.04 + rte_table_hash_key32_ext_ops@DPDK_2.0 16.04 + rte_table_hash_key32_lru_ops@DPDK_2.0 16.04 + rte_table_hash_key8_ext_dosig_ops@DPDK_2.0 16.04 + rte_table_hash_key8_ext_ops@DPDK_2.0 16.04 + rte_table_hash_key8_lru_dosig_ops@DPDK_2.0 16.04 + rte_table_hash_key8_lru_ops@DPDK_2.0 16.04 + rte_table_hash_lru_ops@DPDK_2.0 16.04 + rte_table_lpm_ipv6_ops@DPDK_2.0 16.04 + rte_table_lpm_ops@DPDK_2.0 16.04 + rte_table_stub_ops@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-timer1.symbols b/ovs_build/dpdk_16.07.fuel/librte-timer1.symbols new file mode 100644 index 0000000..0ac8261 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-timer1.symbols @@ -0,0 +1,11 @@ +librte_timer.so.1 librte-timer1 #MINVER# + DPDK_2.0@DPDK_2.0 16.04 + rte_timer_dump_stats@DPDK_2.0 16.04 + rte_timer_init@DPDK_2.0 16.04 + rte_timer_manage@DPDK_2.0 16.04 + rte_timer_pending@DPDK_2.0 16.04 + rte_timer_reset@DPDK_2.0 16.04 + rte_timer_reset_sync@DPDK_2.0 16.04 + rte_timer_stop@DPDK_2.0 16.04 + rte_timer_stop_sync@DPDK_2.0 16.04 + rte_timer_subsystem_init@DPDK_2.0 16.04 diff --git a/ovs_build/dpdk_16.07.fuel/librte-vhost3.symbols b/ovs_build/dpdk_16.07.fuel/librte-vhost3.symbols new file mode 100644 index 0000000..7835cf4 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/librte-vhost3.symbols @@ -0,0 +1,18 @@ +librte_vhost.so.3 librte-vhost3 #MINVER# + DPDK_16.07@DPDK_16.07 16.07~rc1 + DPDK_2.0@DPDK_2.0 16.07~rc1 + DPDK_2.1@DPDK_2.1 16.07~rc1 + rte_vhost_avail_entries@DPDK_16.07 16.07~rc1 + rte_vhost_dequeue_burst@DPDK_2.0 16.07~rc1 + rte_vhost_driver_callback_register@DPDK_2.0 16.07~rc1 + rte_vhost_driver_register@DPDK_2.0 16.07~rc1 + rte_vhost_driver_session_start@DPDK_2.0 16.07~rc1 + rte_vhost_driver_unregister@DPDK_2.1 16.07~rc1 + rte_vhost_enable_guest_notification@DPDK_2.0 16.07~rc1 + rte_vhost_enqueue_burst@DPDK_2.0 16.07~rc1 + rte_vhost_feature_disable@DPDK_2.0 16.07~rc1 + rte_vhost_feature_enable@DPDK_2.0 16.07~rc1 + rte_vhost_feature_get@DPDK_2.0 16.07~rc1 + rte_vhost_get_ifname@DPDK_16.07 16.07~rc1 + rte_vhost_get_numa_node@DPDK_16.07 16.07~rc1 + rte_vhost_get_queue_num@DPDK_16.07 16.07~rc1 diff --git a/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-doc-fix-old-dpdk-nic-bind.py-references.patch b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-doc-fix-old-dpdk-nic-bind.py-references.patch new file mode 100644 index 0000000..7dfd9dd --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-doc-fix-old-dpdk-nic-bind.py-references.patch @@ -0,0 +1,126 @@ +Description: doc: fix old dpdk-nic-bind.py references + +dpdk-nic-bind.py script has been renamed to dpdk-devbind.py, +but some references to the old script have remained. +This commit completes the renaming. + +Fixes: a5d7a3f77ddc ("unify tools naming") + +Signed-off-by: Pablo de Lara + +Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15057/ +Author: Christian Ehrhardt +Last-Update: 2016-08-03 + +diff --git a/doc/guides/howto/flow_bifurcation.rst b/doc/guides/howto/flow_bifurcation.rst +index a1c6262..0d7226a 100644 +--- a/doc/guides/howto/flow_bifurcation.rst ++++ b/doc/guides/howto/flow_bifurcation.rst +@@ -119,8 +119,8 @@ The typical procedure to achieve this is as follows: + .. code-block:: console + + modprobe vfio-pci +- dpdk_nic_bind.py -b vfio-pci 01:10.0 +- dpdk_nic_bind.py -b vfio-pci 01:10.1 ++ dpdk-devbind.py -b vfio-pci 01:10.0 ++ dpdk-devbind.py -b vfio-pci 01:10.1 + + #. Run a DPDK application on the VFs: + +@@ -279,8 +279,8 @@ The typical procedure to achieve this is as follows: + .. code-block:: console + + modprobe vfio-pci +- dpdk_nic_bind.py -b vfio-pci 01:10.0 +- dpdk_nic_bind.py -b vfio-pci 01:10.1 ++ dpdk-devbind.py -b vfio-pci 01:10.0 ++ dpdk-devbind.py -b vfio-pci 01:10.1 + + #. run DPDK application on VFs: + +diff --git a/doc/guides/howto/lm_bond_virtio_sriov.rst b/doc/guides/howto/lm_bond_virtio_sriov.rst +index 49666f1..9bc3450 100644 +--- a/doc/guides/howto/lm_bond_virtio_sriov.rst ++++ b/doc/guides/howto/lm_bond_virtio_sriov.rst +@@ -613,17 +613,17 @@ Set up DPDK in the Virtual Machine + cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages + + ifconfig -a +- /root/dpdk/tools/dpdk_nic_bind.py --status ++ /root/dpdk/tools/dpdk-devbind.py --status + + rmmod virtio-pci ixgbevf + + modprobe uio + insmod /root/dpdk/x86_64-default-linuxapp-gcc/kmod/igb_uio.ko + +- /root/dpdk/tools/dpdk_nic_bind.py -b igb_uio 0000:00:03.0 +- /root/dpdk/tools/dpdk_nic_bind.py -b igb_uio 0000:00:04.0 ++ /root/dpdk/tools/dpdk-devbind.py -b igb_uio 0000:00:03.0 ++ /root/dpdk/tools/dpdk-devbind.py -b igb_uio 0000:00:04.0 + +- /root/dpdk/tools/dpdk_nic_bind.py --status ++ /root/dpdk/tools/dpdk-devbind.py --status + + run_testpmd_bonding_in_vm.sh + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +diff --git a/doc/guides/howto/lm_virtio_vhost_user.rst b/doc/guides/howto/lm_virtio_vhost_user.rst +index fad1f2a..4937781 100644 +--- a/doc/guides/howto/lm_virtio_vhost_user.rst ++++ b/doc/guides/howto/lm_virtio_vhost_user.rst +@@ -91,14 +91,14 @@ For Fortville NIC. + .. code-block:: console + + cd /root/dpdk/tools +- ./dpdk_nic_bind.py -b igb_uio 0000:02:00.0 ++ ./dpdk-devbind.py -b igb_uio 0000:02:00.0 + + For Niantic NIC. + + .. code-block:: console + + cd /root/dpdk/tools +- ./dpdk_nic_bind.py -b igb_uio 0000:09:00.0 ++ ./dpdk-devbind.py -b igb_uio 0000:09:00.0 + + On host_server_1: Terminal 3 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +@@ -172,14 +172,14 @@ For Fortville NIC. + .. code-block:: console + + cd /root/dpdk/tools +- ./dpdk_nic_bind.py -b igb_uio 0000:03:00.0 ++ ./dpdk-devbind.py -b igb_uio 0000:03:00.0 + + For Niantic NIC. + + .. code-block:: console + + cd /root/dpdk/tools +- ./dpdk_nic_bind.py -b igb_uio 0000:06:00.0 ++ ./dpdk-devbind.py -b igb_uio 0000:06:00.0 + + On host_server_2: Terminal 3 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +@@ -444,17 +444,17 @@ setup_dpdk_virtio_in_vm.sh + cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages + + ifconfig -a +- /root/dpdk/tools/dpdk_nic_bind.py --status ++ /root/dpdk/tools/dpdk-devbind.py --status + + rmmod virtio-pci + + modprobe uio + insmod /root/dpdk/x86_64-default-linuxapp-gcc/kmod/igb_uio.ko + +- /root/dpdk/tools/dpdk_nic_bind.py -b igb_uio 0000:00:03.0 +- /root/dpdk/tools/dpdk_nic_bind.py -b igb_uio 0000:00:04.0 ++ /root/dpdk/tools/dpdk-devbind.py -b igb_uio 0000:00:03.0 ++ /root/dpdk/tools/dpdk-devbind.py -b igb_uio 0000:00:04.0 + +- /root/dpdk/tools/dpdk_nic_bind.py --status ++ /root/dpdk/tools/dpdk-devbind.py --status + + run_testpmd_in_vm.sh + ~~~~~~~~~~~~~~~~~~~~ diff --git a/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-examples-ip_pipeline-fix-pmd-driver-parameter.patch b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-examples-ip_pipeline-fix-pmd-driver-parameter.patch new file mode 100644 index 0000000..af26be8 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-examples-ip_pipeline-fix-pmd-driver-parameter.patch @@ -0,0 +1,39 @@ +From: Gowrishankar Muthukrishnan +Date: Wed, 21 Sep 2016 13:56:31 +0530 +Subject: [PATCH] examples: fix ip_pipeline to load PMD driver correctly + +There is typo in init.c of ip_pipeline example due to which, +invalid file path is added to -d option of EAL i.e path starting +with =. + +*Update* +There was a follow on issue identified that is now folded into this patch to +keep maintenance simple with just one patch. + +Signed-off-by: Gowrishankar Muthukrishnan +Acked-by: Cristian Dumitrescu + +Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15995/ +Author: Gowrishankar Muthukrishnan +Last-update: 2016-10-04 + +--- + examples/ip_pipeline/init.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/examples/ip_pipeline/init.c b/examples/ip_pipeline/init.c +index cd167f6..27b0aa7 100644 +--- a/examples/ip_pipeline/init.c ++++ b/examples/ip_pipeline/init.c +@@ -236,7 +236,7 @@ app_init_eal(struct app_params *app) + } + + if (p->add_driver) { +- snprintf(buffer, sizeof(buffer), "-d=%s", p->add_driver); ++ snprintf(buffer, sizeof(buffer), "-d%s", p->add_driver); + app->eal_argv[n_args++] = strdup(buffer); + } + +-- +1.9.1 + diff --git a/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-1-4-doc-move-tool-guides-in-their-own-subdirectory.patch b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-1-4-doc-move-tool-guides-in-their-own-subdirectory.patch new file mode 100644 index 0000000..a1cc65c --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-1-4-doc-move-tool-guides-in-their-own-subdirectory.patch @@ -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 --git a/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-2-4-doc-rendering-and-installation-of-man-pages.patch b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-2-4-doc-rendering-and-installation-of-man-pages.patch new file mode 100644 index 0000000..f2e307f --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-2-4-doc-rendering-and-installation-of-man-pages.patch @@ -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 --git a/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-3-4-doc-add-basic-invocation-info-for-dpdk-pmdinfo.patch b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-3-4-doc-add-basic-invocation-info-for-dpdk-pmdinfo.patch new file mode 100644 index 0000000..ab0f9b4 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-3-4-doc-add-basic-invocation-info-for-dpdk-pmdinfo.patch @@ -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 --git a/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-4-4-doc-add-basic-invocation-info-for-dpdk-devbind.patch b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-4-4-doc-add-basic-invocation-info-for-dpdk-devbind.patch new file mode 100644 index 0000000..4b6c18d --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-4-4-doc-add-basic-invocation-info-for-dpdk-devbind.patch @@ -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 --git a/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-kni-fix-build-with-kernel-4.8.patch b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-kni-fix-build-with-kernel-4.8.patch new file mode 100644 index 0000000..9275147 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/dpdk-dev-v2-kni-fix-build-with-kernel-4.8.patch @@ -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 --git a/ovs_build/dpdk_16.07.fuel/patches/fix-double-license-info.patch b/ovs_build/dpdk_16.07.fuel/patches/fix-double-license-info.patch new file mode 100644 index 0000000..5565e7a --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/fix-double-license-info.patch @@ -0,0 +1,1324 @@ +Description: remove duplicate license information + +This is getting rid of: +W: dpdk-rte-kni-dkms: extra-license-file usr/src/dpdk-rte-kni-16.07-rc4/ethtool/igb/COPYING +W: dpdk-rte-kni-dkms: extra-license-file usr/src/dpdk-rte-kni-16.07-rc4/ethtool/ixgbe/COPYING + +The License (GPLv2 and all others needed) is already provided via +debian/copyright as it should be. + +Forwarded: yes +Author: Christian Ehrhardt +Last-Update: 2016-08-01 + +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/COPYING ++++ /dev/null +@@ -1,339 +0,0 @@ +- +-"This software program is licensed subject to the GNU General Public License +-(GPL). Version 2, June 1991, available at +-" +- +-GNU General Public License +- +-Version 2, June 1991 +- +-Copyright (C) 1989, 1991 Free Software Foundation, Inc. +-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +- +-Everyone is permitted to copy and distribute verbatim copies of this license +-document, but changing it is not allowed. +- +-Preamble +- +-The licenses for most software are designed to take away your freedom to +-share and change it. By contrast, the GNU General Public License is intended +-to guarantee your freedom to share and change free software--to make sure +-the software is free for all its users. This General Public License applies +-to most of the Free Software Foundation's software and to any other program +-whose authors commit to using it. (Some other Free Software Foundation +-software is covered by the GNU Library General Public License instead.) You +-can apply it to your programs, too. +- +-When we speak of free software, we are referring to freedom, not price. Our +-General Public Licenses are designed to make sure that you have the freedom +-to distribute copies of free software (and charge for this service if you +-wish), that you receive source code or can get it if you want it, that you +-can change the software or use pieces of it in new free programs; and that +-you know you can do these things. +- +-To protect your rights, we need to make restrictions that forbid anyone to +-deny you these rights or to ask you to surrender the rights. These +-restrictions translate to certain responsibilities for you if you distribute +-copies of the software, or if you modify it. +- +-For example, if you distribute copies of such a program, whether gratis or +-for a fee, you must give the recipients all the rights that you have. You +-must make sure that they, too, receive or can get the source code. And you +-must show them these terms so they know their rights. +- +-We protect your rights with two steps: (1) copyright the software, and (2) +-offer you this license which gives you legal permission to copy, distribute +-and/or modify the software. +- +-Also, for each author's protection and ours, we want to make certain that +-everyone understands that there is no warranty for this free software. If +-the software is modified by someone else and passed on, we want its +-recipients to know that what they have is not the original, so that any +-problems introduced by others will not reflect on the original authors' +-reputations. +- +-Finally, any free program is threatened constantly by software patents. We +-wish to avoid the danger that redistributors of a free program will +-individually obtain patent licenses, in effect making the program +-proprietary. To prevent this, we have made it clear that any patent must be +-licensed for everyone's free use or not licensed at all. +- +-The precise terms and conditions for copying, distribution and modification +-follow. +- +-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +- +-0. This License applies to any program or other work which contains a notice +- placed by the copyright holder saying it may be distributed under the +- terms of this General Public License. The "Program", below, refers to any +- such program or work, and a "work based on the Program" means either the +- Program or any derivative work under copyright law: that is to say, a +- work containing the Program or a portion of it, either verbatim or with +- modifications and/or translated into another language. (Hereinafter, +- translation is included without limitation in the term "modification".) +- Each licensee is addressed as "you". +- +- Activities other than copying, distribution and modification are not +- covered by this License; they are outside its scope. The act of running +- the Program is not restricted, and the output from the Program is covered +- only if its contents constitute a work based on the Program (independent +- of having been made by running the Program). Whether that is true depends +- on what the Program does. +- +-1. You may copy and distribute verbatim copies of the Program's source code +- as you receive it, in any medium, provided that you conspicuously and +- appropriately publish on each copy an appropriate copyright notice and +- disclaimer of warranty; keep intact all the notices that refer to this +- License and to the absence of any warranty; and give any other recipients +- of the Program a copy of this License along with the Program. +- +- You may charge a fee for the physical act of transferring a copy, and you +- may at your option offer warranty protection in exchange for a fee. +- +-2. You may modify your copy or copies of the Program or any portion of it, +- thus forming a work based on the Program, and copy and distribute such +- modifications or work under the terms of Section 1 above, provided that +- you also meet all of these conditions: +- +- * a) You must cause the modified files to carry prominent notices stating +- that you changed the files and the date of any change. +- +- * b) You must cause any work that you distribute or publish, that in +- whole or in part contains or is derived from the Program or any part +- thereof, to be licensed as a whole at no charge to all third parties +- under the terms of this License. +- +- * c) If the modified program normally reads commands interactively when +- run, you must cause it, when started running for such interactive +- use in the most ordinary way, to print or display an announcement +- including an appropriate copyright notice and a notice that there is +- no warranty (or else, saying that you provide a warranty) and that +- users may redistribute the program under these conditions, and +- telling the user how to view a copy of this License. (Exception: if +- the Program itself is interactive but does not normally print such +- an announcement, your work based on the Program is not required to +- print an announcement.) +- +- These requirements apply to the modified work as a whole. If identifiable +- sections of that work are not derived from the Program, and can be +- reasonably considered independent and separate works in themselves, then +- this License, and its terms, do not apply to those sections when you +- distribute them as separate works. But when you distribute the same +- sections as part of a whole which is a work based on the Program, the +- distribution of the whole must be on the terms of this License, whose +- permissions for other licensees extend to the entire whole, and thus to +- each and every part regardless of who wrote it. +- +- Thus, it is not the intent of this section to claim rights or contest +- your rights to work written entirely by you; rather, the intent is to +- exercise the right to control the distribution of derivative or +- collective works based on the Program. +- +- In addition, mere aggregation of another work not based on the Program +- with the Program (or with a work based on the Program) on a volume of a +- storage or distribution medium does not bring the other work under the +- scope of this License. +- +-3. You may copy and distribute the Program (or a work based on it, under +- Section 2) in object code or executable form under the terms of Sections +- 1 and 2 above provided that you also do one of the following: +- +- * a) Accompany it with the complete corresponding machine-readable source +- code, which must be distributed under the terms of Sections 1 and 2 +- above on a medium customarily used for software interchange; or, +- +- * b) Accompany it with a written offer, valid for at least three years, +- to give any third party, for a charge no more than your cost of +- physically performing source distribution, a complete machine- +- readable copy of the corresponding source code, to be distributed +- under the terms of Sections 1 and 2 above on a medium customarily +- used for software interchange; or, +- +- * c) Accompany it with the information you received as to the offer to +- distribute corresponding source code. (This alternative is allowed +- only for noncommercial distribution and only if you received the +- program in object code or executable form with such an offer, in +- accord with Subsection b above.) +- +- The source code for a work means the preferred form of the work for +- making modifications to it. For an executable work, complete source code +- means all the source code for all modules it contains, plus any +- associated interface definition files, plus the scripts used to control +- compilation and installation of the executable. However, as a special +- exception, the source code distributed need not include anything that is +- normally distributed (in either source or binary form) with the major +- components (compiler, kernel, and so on) of the operating system on which +- the executable runs, unless that component itself accompanies the +- executable. +- +- If distribution of executable or object code is made by offering access +- to copy from a designated place, then offering equivalent access to copy +- the source code from the same place counts as distribution of the source +- code, even though third parties are not compelled to copy the source +- along with the object code. +- +-4. You may not copy, modify, sublicense, or distribute the Program except as +- expressly provided under this License. Any attempt otherwise to copy, +- modify, sublicense or distribute the Program is void, and will +- automatically terminate your rights under this License. However, parties +- who have received copies, or rights, from you under this License will not +- have their licenses terminated so long as such parties remain in full +- compliance. +- +-5. You are not required to accept this License, since you have not signed +- it. However, nothing else grants you permission to modify or distribute +- the Program or its derivative works. These actions are prohibited by law +- if you do not accept this License. Therefore, by modifying or +- distributing the Program (or any work based on the Program), you +- indicate your acceptance of this License to do so, and all its terms and +- conditions for copying, distributing or modifying the Program or works +- based on it. +- +-6. Each time you redistribute the Program (or any work based on the +- Program), the recipient automatically receives a license from the +- original licensor to copy, distribute or modify the Program subject to +- these terms and conditions. You may not impose any further restrictions +- on the recipients' exercise of the rights granted herein. You are not +- responsible for enforcing compliance by third parties to this License. +- +-7. If, as a consequence of a court judgment or allegation of patent +- infringement or for any other reason (not limited to patent issues), +- conditions are imposed on you (whether by court order, agreement or +- otherwise) that contradict the conditions of this License, they do not +- excuse you from the conditions of this License. If you cannot distribute +- so as to satisfy simultaneously your obligations under this License and +- any other pertinent obligations, then as a consequence you may not +- distribute the Program at all. For example, if a patent license would +- not permit royalty-free redistribution of the Program by all those who +- receive copies directly or indirectly through you, then the only way you +- could satisfy both it and this License would be to refrain entirely from +- distribution of the Program. +- +- If any portion of this section is held invalid or unenforceable under any +- particular circumstance, the balance of the section is intended to apply +- and the section as a whole is intended to apply in other circumstances. +- +- It is not the purpose of this section to induce you to infringe any +- patents or other property right claims or to contest validity of any +- such claims; this section has the sole purpose of protecting the +- integrity of the free software distribution system, which is implemented +- by public license practices. Many people have made generous contributions +- to the wide range of software distributed through that system in +- reliance on consistent application of that system; it is up to the +- author/donor to decide if he or she is willing to distribute software +- through any other system and a licensee cannot impose that choice. +- +- This section is intended to make thoroughly clear what is believed to be +- a consequence of the rest of this License. +- +-8. If the distribution and/or use of the Program is restricted in certain +- countries either by patents or by copyrighted interfaces, the original +- copyright holder who places the Program under this License may add an +- explicit geographical distribution limitation excluding those countries, +- so that distribution is permitted only in or among countries not thus +- excluded. In such case, this License incorporates the limitation as if +- written in the body of this License. +- +-9. The Free Software Foundation may publish revised and/or new versions of +- the General Public License from time to time. Such new versions will be +- similar in spirit to the present version, but may differ in detail to +- address new problems or concerns. +- +- Each version is given a distinguishing version number. If the Program +- specifies a version number of this License which applies to it and "any +- later version", you have the option of following the terms and +- conditions either of that version or of any later version published by +- the Free Software Foundation. If the Program does not specify a version +- number of this License, you may choose any version ever published by the +- Free Software Foundation. +- +-10. If you wish to incorporate parts of the Program into other free programs +- whose distribution conditions are different, write to the author to ask +- for permission. For software which is copyrighted by the Free Software +- Foundation, write to the Free Software Foundation; we sometimes make +- exceptions for this. Our decision will be guided by the two goals of +- preserving the free status of all derivatives of our free software and +- of promoting the sharing and reuse of software generally. +- +- NO WARRANTY +- +-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +- FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +- OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +- PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +- EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +- ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH +- YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +- NECESSARY SERVICING, REPAIR OR CORRECTION. +- +-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +- REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR +- DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL +- DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM +- (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED +- INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF +- THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR +- OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +- +-END OF TERMS AND CONDITIONS +- +-How to Apply These Terms to Your New Programs +- +-If you develop a new program, and you want it to be of the greatest +-possible use to the public, the best way to achieve this is to make it free +-software which everyone can redistribute and change under these terms. +- +-To do so, attach the following notices to the program. It is safest to +-attach them to the start of each source file to most effectively convey the +-exclusion of warranty; and each file should have at least the "copyright" +-line and a pointer to where the full notice is found. +- +-one line to give the program's name and an idea of what it does. +-Copyright (C) yyyy name of author +- +-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 program; if not, write to the Free Software Foundation, Inc., 59 +-Temple Place - Suite 330, Boston, MA 02111-1307, USA. +- +-Also add information on how to contact you by electronic and paper mail. +- +-If the program is interactive, make it output a short notice like this when +-it starts in an interactive mode: +- +-Gnomovision version 69, Copyright (C) year name of author Gnomovision comes +-with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free +-software, and you are welcome to redistribute it under certain conditions; +-type 'show c' for details. +- +-The hypothetical commands 'show w' and 'show c' should show the appropriate +-parts of the General Public License. Of course, the commands you use may be +-called something other than 'show w' and 'show c'; they could even be +-mouse-clicks or menu items--whatever suits your program. +- +-You should also get your employer (if you work as a programmer) or your +-school, if any, to sign a "copyright disclaimer" for the program, if +-necessary. Here is a sample; alter the names: +- +-Yoyodyne, Inc., hereby disclaims all copyright interest in the program +-'Gnomovision' (which makes passes at compilers) written by James Hacker. +- +-signature of Ty Coon, 1 April 1989 +-Ty Coon, President of Vice +- +-This General Public License does not permit incorporating your program into +-proprietary programs. If your program is a subroutine library, you may +-consider it more useful to permit linking proprietary applications with the +-library. If this is what you want to do, use the GNU Library General Public +-License instead of this License. +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/COPYING ++++ /dev/null +@@ -1,339 +0,0 @@ +- +-"This software program is licensed subject to the GNU General Public License +-(GPL). Version 2, June 1991, available at +-" +- +-GNU General Public License +- +-Version 2, June 1991 +- +-Copyright (C) 1989, 1991 Free Software Foundation, Inc. +-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +- +-Everyone is permitted to copy and distribute verbatim copies of this license +-document, but changing it is not allowed. +- +-Preamble +- +-The licenses for most software are designed to take away your freedom to +-share and change it. By contrast, the GNU General Public License is intended +-to guarantee your freedom to share and change free software--to make sure +-the software is free for all its users. This General Public License applies +-to most of the Free Software Foundation's software and to any other program +-whose authors commit to using it. (Some other Free Software Foundation +-software is covered by the GNU Library General Public License instead.) You +-can apply it to your programs, too. +- +-When we speak of free software, we are referring to freedom, not price. Our +-General Public Licenses are designed to make sure that you have the freedom +-to distribute copies of free software (and charge for this service if you +-wish), that you receive source code or can get it if you want it, that you +-can change the software or use pieces of it in new free programs; and that +-you know you can do these things. +- +-To protect your rights, we need to make restrictions that forbid anyone to +-deny you these rights or to ask you to surrender the rights. These +-restrictions translate to certain responsibilities for you if you distribute +-copies of the software, or if you modify it. +- +-For example, if you distribute copies of such a program, whether gratis or +-for a fee, you must give the recipients all the rights that you have. You +-must make sure that they, too, receive or can get the source code. And you +-must show them these terms so they know their rights. +- +-We protect your rights with two steps: (1) copyright the software, and (2) +-offer you this license which gives you legal permission to copy, distribute +-and/or modify the software. +- +-Also, for each author's protection and ours, we want to make certain that +-everyone understands that there is no warranty for this free software. If +-the software is modified by someone else and passed on, we want its +-recipients to know that what they have is not the original, so that any +-problems introduced by others will not reflect on the original authors' +-reputations. +- +-Finally, any free program is threatened constantly by software patents. We +-wish to avoid the danger that redistributors of a free program will +-individually obtain patent licenses, in effect making the program +-proprietary. To prevent this, we have made it clear that any patent must be +-licensed for everyone's free use or not licensed at all. +- +-The precise terms and conditions for copying, distribution and modification +-follow. +- +-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +- +-0. This License applies to any program or other work which contains a notice +- placed by the copyright holder saying it may be distributed under the +- terms of this General Public License. The "Program", below, refers to any +- such program or work, and a "work based on the Program" means either the +- Program or any derivative work under copyright law: that is to say, a +- work containing the Program or a portion of it, either verbatim or with +- modifications and/or translated into another language. (Hereinafter, +- translation is included without limitation in the term "modification".) +- Each licensee is addressed as "you". +- +- Activities other than copying, distribution and modification are not +- covered by this License; they are outside its scope. The act of running +- the Program is not restricted, and the output from the Program is covered +- only if its contents constitute a work based on the Program (independent +- of having been made by running the Program). Whether that is true depends +- on what the Program does. +- +-1. You may copy and distribute verbatim copies of the Program's source code +- as you receive it, in any medium, provided that you conspicuously and +- appropriately publish on each copy an appropriate copyright notice and +- disclaimer of warranty; keep intact all the notices that refer to this +- License and to the absence of any warranty; and give any other recipients +- of the Program a copy of this License along with the Program. +- +- You may charge a fee for the physical act of transferring a copy, and you +- may at your option offer warranty protection in exchange for a fee. +- +-2. You may modify your copy or copies of the Program or any portion of it, +- thus forming a work based on the Program, and copy and distribute such +- modifications or work under the terms of Section 1 above, provided that +- you also meet all of these conditions: +- +- * a) You must cause the modified files to carry prominent notices stating +- that you changed the files and the date of any change. +- +- * b) You must cause any work that you distribute or publish, that in +- whole or in part contains or is derived from the Program or any part +- thereof, to be licensed as a whole at no charge to all third parties +- under the terms of this License. +- +- * c) If the modified program normally reads commands interactively when +- run, you must cause it, when started running for such interactive +- use in the most ordinary way, to print or display an announcement +- including an appropriate copyright notice and a notice that there is +- no warranty (or else, saying that you provide a warranty) and that +- users may redistribute the program under these conditions, and +- telling the user how to view a copy of this License. (Exception: if +- the Program itself is interactive but does not normally print such +- an announcement, your work based on the Program is not required to +- print an announcement.) +- +- These requirements apply to the modified work as a whole. If identifiable +- sections of that work are not derived from the Program, and can be +- reasonably considered independent and separate works in themselves, then +- this License, and its terms, do not apply to those sections when you +- distribute them as separate works. But when you distribute the same +- sections as part of a whole which is a work based on the Program, the +- distribution of the whole must be on the terms of this License, whose +- permissions for other licensees extend to the entire whole, and thus to +- each and every part regardless of who wrote it. +- +- Thus, it is not the intent of this section to claim rights or contest +- your rights to work written entirely by you; rather, the intent is to +- exercise the right to control the distribution of derivative or +- collective works based on the Program. +- +- In addition, mere aggregation of another work not based on the Program +- with the Program (or with a work based on the Program) on a volume of a +- storage or distribution medium does not bring the other work under the +- scope of this License. +- +-3. You may copy and distribute the Program (or a work based on it, under +- Section 2) in object code or executable form under the terms of Sections +- 1 and 2 above provided that you also do one of the following: +- +- * a) Accompany it with the complete corresponding machine-readable source +- code, which must be distributed under the terms of Sections 1 and 2 +- above on a medium customarily used for software interchange; or, +- +- * b) Accompany it with a written offer, valid for at least three years, +- to give any third party, for a charge no more than your cost of +- physically performing source distribution, a complete machine- +- readable copy of the corresponding source code, to be distributed +- under the terms of Sections 1 and 2 above on a medium customarily +- used for software interchange; or, +- +- * c) Accompany it with the information you received as to the offer to +- distribute corresponding source code. (This alternative is allowed +- only for noncommercial distribution and only if you received the +- program in object code or executable form with such an offer, in +- accord with Subsection b above.) +- +- The source code for a work means the preferred form of the work for +- making modifications to it. For an executable work, complete source code +- means all the source code for all modules it contains, plus any +- associated interface definition files, plus the scripts used to control +- compilation and installation of the executable. However, as a special +- exception, the source code distributed need not include anything that is +- normally distributed (in either source or binary form) with the major +- components (compiler, kernel, and so on) of the operating system on which +- the executable runs, unless that component itself accompanies the +- executable. +- +- If distribution of executable or object code is made by offering access +- to copy from a designated place, then offering equivalent access to copy +- the source code from the same place counts as distribution of the source +- code, even though third parties are not compelled to copy the source +- along with the object code. +- +-4. You may not copy, modify, sublicense, or distribute the Program except as +- expressly provided under this License. Any attempt otherwise to copy, +- modify, sublicense or distribute the Program is void, and will +- automatically terminate your rights under this License. However, parties +- who have received copies, or rights, from you under this License will not +- have their licenses terminated so long as such parties remain in full +- compliance. +- +-5. You are not required to accept this License, since you have not signed +- it. However, nothing else grants you permission to modify or distribute +- the Program or its derivative works. These actions are prohibited by law +- if you do not accept this License. Therefore, by modifying or +- distributing the Program (or any work based on the Program), you +- indicate your acceptance of this License to do so, and all its terms and +- conditions for copying, distributing or modifying the Program or works +- based on it. +- +-6. Each time you redistribute the Program (or any work based on the +- Program), the recipient automatically receives a license from the +- original licensor to copy, distribute or modify the Program subject to +- these terms and conditions. You may not impose any further restrictions +- on the recipients' exercise of the rights granted herein. You are not +- responsible for enforcing compliance by third parties to this License. +- +-7. If, as a consequence of a court judgment or allegation of patent +- infringement or for any other reason (not limited to patent issues), +- conditions are imposed on you (whether by court order, agreement or +- otherwise) that contradict the conditions of this License, they do not +- excuse you from the conditions of this License. If you cannot distribute +- so as to satisfy simultaneously your obligations under this License and +- any other pertinent obligations, then as a consequence you may not +- distribute the Program at all. For example, if a patent license would +- not permit royalty-free redistribution of the Program by all those who +- receive copies directly or indirectly through you, then the only way you +- could satisfy both it and this License would be to refrain entirely from +- distribution of the Program. +- +- If any portion of this section is held invalid or unenforceable under any +- particular circumstance, the balance of the section is intended to apply +- and the section as a whole is intended to apply in other circumstances. +- +- It is not the purpose of this section to induce you to infringe any +- patents or other property right claims or to contest validity of any +- such claims; this section has the sole purpose of protecting the +- integrity of the free software distribution system, which is implemented +- by public license practices. Many people have made generous contributions +- to the wide range of software distributed through that system in +- reliance on consistent application of that system; it is up to the +- author/donor to decide if he or she is willing to distribute software +- through any other system and a licensee cannot impose that choice. +- +- This section is intended to make thoroughly clear what is believed to be +- a consequence of the rest of this License. +- +-8. If the distribution and/or use of the Program is restricted in certain +- countries either by patents or by copyrighted interfaces, the original +- copyright holder who places the Program under this License may add an +- explicit geographical distribution limitation excluding those countries, +- so that distribution is permitted only in or among countries not thus +- excluded. In such case, this License incorporates the limitation as if +- written in the body of this License. +- +-9. The Free Software Foundation may publish revised and/or new versions of +- the General Public License from time to time. Such new versions will be +- similar in spirit to the present version, but may differ in detail to +- address new problems or concerns. +- +- Each version is given a distinguishing version number. If the Program +- specifies a version number of this License which applies to it and "any +- later version", you have the option of following the terms and +- conditions either of that version or of any later version published by +- the Free Software Foundation. If the Program does not specify a version +- number of this License, you may choose any version ever published by the +- Free Software Foundation. +- +-10. If you wish to incorporate parts of the Program into other free programs +- whose distribution conditions are different, write to the author to ask +- for permission. For software which is copyrighted by the Free Software +- Foundation, write to the Free Software Foundation; we sometimes make +- exceptions for this. Our decision will be guided by the two goals of +- preserving the free status of all derivatives of our free software and +- of promoting the sharing and reuse of software generally. +- +- NO WARRANTY +- +-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +- FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +- OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +- PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +- EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +- ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH +- YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +- NECESSARY SERVICING, REPAIR OR CORRECTION. +- +-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +- REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR +- DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL +- DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM +- (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED +- INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF +- THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR +- OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +- +-END OF TERMS AND CONDITIONS +- +-How to Apply These Terms to Your New Programs +- +-If you develop a new program, and you want it to be of the greatest +-possible use to the public, the best way to achieve this is to make it free +-software which everyone can redistribute and change under these terms. +- +-To do so, attach the following notices to the program. It is safest to +-attach them to the start of each source file to most effectively convey the +-exclusion of warranty; and each file should have at least the "copyright" +-line and a pointer to where the full notice is found. +- +-one line to give the program's name and an idea of what it does. +-Copyright (C) yyyy name of author +- +-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 program; if not, write to the Free Software Foundation, Inc., 59 +-Temple Place - Suite 330, Boston, MA 02111-1307, USA. +- +-Also add information on how to contact you by electronic and paper mail. +- +-If the program is interactive, make it output a short notice like this when +-it starts in an interactive mode: +- +-Gnomovision version 69, Copyright (C) year name of author Gnomovision comes +-with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free +-software, and you are welcome to redistribute it under certain conditions; +-type 'show c' for details. +- +-The hypothetical commands 'show w' and 'show c' should show the appropriate +-parts of the General Public License. Of course, the commands you use may be +-called something other than 'show w' and 'show c'; they could even be +-mouse-clicks or menu items--whatever suits your program. +- +-You should also get your employer (if you work as a programmer) or your +-school, if any, to sign a "copyright disclaimer" for the program, if +-necessary. Here is a sample; alter the names: +- +-Yoyodyne, Inc., hereby disclaims all copyright interest in the program +-'Gnomovision' (which makes passes at compilers) written by James Hacker. +- +-signature of Ty Coon, 1 April 1989 +-Ty Coon, President of Vice +- +-This General Public License does not permit incorporating your program into +-proprietary programs. If your program is a subroutine library, you may +-consider it more useful to permit linking proprietary applications with the +-library. If this is what you want to do, use the GNU Library General Public +-License instead of this License. +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_82575.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_defines.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_defines.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_hw.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_hw.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_i210.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mac.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_manage.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_mbx.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_nvm.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_osdep.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_osdep.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_regs.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_regs.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_debugfs.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_debugfs.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_hwmon.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_hwmon.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_param.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_param.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_procfs.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_procfs.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ptp.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ptp.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_regtest.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_regtest.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_vmdq.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat_ethtool.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat_ethtool.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82598.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_api.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_common.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_dcb.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_dcb.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_fcoe.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_fcoe.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_main.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_mbx.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_mbx.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_osdep.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_osdep.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_phy.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_sriov.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_sriov.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_type.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_type.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_x540.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.c ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.c +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h +@@ -17,7 +17,7 @@ + 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + + The full GNU General Public License is included in this distribution in +- the file called "COPYING". ++ the file called "LICENSE.GPL". + + Contact Information: + e1000-devel Mailing List diff --git a/ovs_build/dpdk_16.07.fuel/patches/fix-unusual-interpreter.patch b/ovs_build/dpdk_16.07.fuel/patches/fix-unusual-interpreter.patch new file mode 100644 index 0000000..754a413 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/fix-unusual-interpreter.patch @@ -0,0 +1,35 @@ +Description: examples: fix unusual-interpreter v2 + +*Update in v2* +- use #!/usr/bin/env python as usually recommended and suggested in the + discussion + +Due to regular lintian checks in Debian packaging it surfaced that these +two scripts had a space in their #! statement which renders it to be +human, but not shell readable. + +Fixes: 8673a3e8 ("examples/ip_pipeline: add config diagram generator") +Fixes: fa667b46 ("examples/ip_pipeline: add core mappings script") + +This gets rid of lintian warning "W: dpdk-doc: unusual-interpreter" + +Forwarded: yes +Author: Christian Ehrhardt +Last-Update: 2016-08-02 + +--- a/examples/ip_pipeline/config/diagram-generator.py ++++ b/examples/ip_pipeline/config/diagram-generator.py +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2 ++#!/usr/bin/env python + + # BSD LICENSE + # +--- a/examples/ip_pipeline/config/pipeline-to-core-mapping.py ++++ b/examples/ip_pipeline/config/pipeline-to-core-mapping.py +@@ -1,4 +1,4 @@ +-#! /usr/bin/python2 ++#!/usr/bin/env python + + # BSD LICENSE + # diff --git a/ovs_build/dpdk_16.07.fuel/patches/fix-vhost-user-socket-permission.patch b/ovs_build/dpdk_16.07.fuel/patches/fix-vhost-user-socket-permission.patch new file mode 100644 index 0000000..e75cbc2 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/fix-vhost-user-socket-permission.patch @@ -0,0 +1,371 @@ +Description: eal: provide option to set vhost_user socket owner/permissions + +The API doesn't hold a way to specify a owner/permission set for vhost_user +created sockets. + +Projects consuming DPDK started to do 'their own workarounds' like openvswitch +https://patchwork.ozlabs.org/patch/559043/ +https://patchwork.ozlabs.org/patch/559045/ +But for this specific example they are blocked/stalled behind a bigger +rework (https://patchwork.ozlabs.org/patch/604898/). + +We need something now for existing code linking against DPDK. That implies to +avoid changing API/ABI. So I created a DPDK EAL commandline option based ideas +in the former patches. + +Fixes LP: #1546565 + +*Update* + - with the split libs it now nees to be listed in + lib/librte_eal/linuxapp/eal/rte_eal_version.map to work on link steps + - please note that upstream gravitates towards not extending but creating a + new the API in DPDK as long term solution (will take a while) + - also as listed before most affected projects seem to create their own + workaround. + So over time we have to check when we can drop it at the price of a config + transition - likely OVS 2.6 won't need it anymore. + +Forwarded: yes +Author: Christian Ehrhardt +Last-Update: 2016-09-28 + +diff --git a/doc/guides/testpmd_app_ug/run_app.rst b/doc/guides/testpmd_app_ug/run_app.rst +index 7712bd2..28776b9 100644 +--- a/doc/guides/testpmd_app_ug/run_app.rst ++++ b/doc/guides/testpmd_app_ug/run_app.rst +@@ -156,6 +156,25 @@ See the DPDK Getting Started Guides for more information on these options. + + Use malloc instead of hugetlbfs. + ++* ``--vhost-owner`` ++ ++ When creating vhost_user sockets change owner and group to the specified value. ++ This can be given as ``user:group``, but also only ``user`` or ``:group`` are supported. ++ ++ Examples:: ++ ++ --vhost-owner 'libvirt-qemu:kvm' ++ --vhost-owner 'libvirt-qemu' ++ --vhost-owner ':kvm' ++ ++* ``--vhost-perm`` ++ ++ When creating vhost_user sockets set them up with these permissions. ++ ++ For example:: ++ ++ --vhost-perm '0664' ++ + + Testpmd Command-line Options + ---------------------------- +diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c +index 481c732..2126140 100644 +--- a/lib/librte_eal/common/eal_common_options.c ++++ b/lib/librte_eal/common/eal_common_options.c +@@ -95,6 +95,8 @@ eal_long_options[] = { + {OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM }, + {OPT_VMWARE_TSC_MAP, 0, NULL, OPT_VMWARE_TSC_MAP_NUM }, + {OPT_XEN_DOM0, 0, NULL, OPT_XEN_DOM0_NUM }, ++ {OPT_VHOST_OWNER, 1, NULL, OPT_VHOST_OWNER_NUM }, ++ {OPT_VHOST_PERM, 1, NULL, OPT_VHOST_PERM_NUM }, + {0, 0, NULL, 0 } + }; + +@@ -166,6 +168,8 @@ eal_reset_internal_config(struct internal_config *internal_cfg) + #endif + internal_cfg->vmware_tsc_map = 0; + internal_cfg->create_uio_dev = 0; ++ internal_cfg->vhost_sock_owner = NULL; ++ internal_cfg->vhost_sock_perm = NULL; + } + + static int +diff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h +index 5f1367e..bdf34e3 100644 +--- a/lib/librte_eal/common/eal_internal_cfg.h ++++ b/lib/librte_eal/common/eal_internal_cfg.h +@@ -83,6 +83,8 @@ struct internal_config { + volatile enum rte_intr_mode vfio_intr_mode; + const char *hugefile_prefix; /**< the base filename of hugetlbfs files */ + const char *hugepage_dir; /**< specific hugetlbfs directory to use */ ++ const char *vhost_sock_owner; /**< owner:group of vhost_user sockets */ ++ const char *vhost_sock_perm; /**< permissions of vhost_user sockets */ + + unsigned num_hugepage_sizes; /**< how many sizes on this system */ + struct hugepage_info hugepage_info[MAX_HUGEPAGE_SIZES]; +diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h +index a881c62..1161083 100644 +--- a/lib/librte_eal/common/eal_options.h ++++ b/lib/librte_eal/common/eal_options.h +@@ -83,6 +83,10 @@ enum { + OPT_VMWARE_TSC_MAP_NUM, + #define OPT_XEN_DOM0 "xen-dom0" + OPT_XEN_DOM0_NUM, ++#define OPT_VHOST_OWNER "vhost-owner" ++ OPT_VHOST_OWNER_NUM, ++#define OPT_VHOST_PERM "vhost-perm" ++ OPT_VHOST_PERM_NUM, + OPT_LONG_MAX_NUM + }; + +diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h +index a71d6f5..506cf24 100644 +--- a/lib/librte_eal/common/include/rte_eal.h ++++ b/lib/librte_eal/common/include/rte_eal.h +@@ -252,6 +252,11 @@ static inline int rte_gettid(void) + return RTE_PER_LCORE(_thread_id); + } + ++/** ++ * Set owner/permissions on sockets if requested on EAL commandline ++ */ ++void rte_eal_set_socket_permissions(const char *); ++ + #ifdef __cplusplus + } + #endif +diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c +index 3fb2188..dc84c5b 100644 +--- a/lib/librte_eal/linuxapp/eal/eal.c ++++ b/lib/librte_eal/linuxapp/eal/eal.c +@@ -53,6 +53,9 @@ + #if defined(RTE_ARCH_X86) + #include + #endif ++#include ++#include ++#include + + #include + #include +@@ -344,6 +347,8 @@ eal_usage(const char *prgname) + " --"OPT_CREATE_UIO_DEV" Create /dev/uioX (usually done by hotplug)\n" + " --"OPT_VFIO_INTR" Interrupt mode for VFIO (legacy|msi|msix)\n" + " --"OPT_XEN_DOM0" Support running on Xen dom0 without hugetlbfs\n" ++ " --"OPT_VHOST_OWNER" Create vhost-user sockets with this owner:group\n" ++ " --"OPT_VHOST_PERM" Create vhost-user sockets with these permissions\n" + "\n"); + /* Allow the application to print its usage message too if hook is set */ + if ( rte_application_usage_hook ) { +@@ -601,6 +606,14 @@ eal_parse_args(int argc, char **argv) + internal_config.create_uio_dev = 1; + break; + ++ case OPT_VHOST_OWNER_NUM: ++ internal_config.vhost_sock_owner = optarg; ++ break; ++ ++ case OPT_VHOST_PERM_NUM: ++ internal_config.vhost_sock_perm = optarg; ++ break; ++ + default: + if (opt < OPT_LONG_MIN_NUM && isprint(opt)) { + RTE_LOG(ERR, EAL, "Option %c is not supported " +@@ -943,3 +956,172 @@ rte_eal_check_module(const char *module_name) + /* Module has been found */ + return 1; + } ++ ++/* Try to double the size of '*buf', return true ++ * if successful, and '*sizep' will be updated with ++ * the new size. Otherwise, return false. */ ++static int ++enlarge_buffer(char **buf, size_t *sizep) ++{ ++ size_t newsize = *sizep * 2; ++ ++ if (newsize > *sizep) { ++ *buf = realloc(*buf, newsize); ++ *sizep = newsize; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static int ++get_owners_from_str(const char *user_spec, uid_t *uid, gid_t *gid) ++{ ++ size_t bufsize = 4096; ++ ++ char *pos = strchr(user_spec, ':'); ++ user_spec += strspn(user_spec, " \t\r\n"); ++ size_t len = pos ? (size_t)(pos - user_spec) : strlen(user_spec); ++ ++ char *buf = NULL; ++ struct passwd pwd, *res; ++ int e; ++ ++ buf = malloc(bufsize); ++ char *user_search = NULL; ++ if (len) { ++ user_search = malloc(len + 1); ++ memcpy(user_search, user_spec, len); ++ user_search[len] = '\0'; ++ while ((e = getpwnam_r(user_search, &pwd, buf, bufsize, &res)) == ERANGE) { ++ if (!enlarge_buffer(&buf, &bufsize)) { ++ break; ++ } ++ } ++ ++ if (e != 0) { ++ RTE_LOG(ERR, EAL,"Failed to retrive user %s's uid (%s), aborting.", ++ user_search, strerror(e)); ++ goto release; ++ } ++ if (res == NULL) { ++ RTE_LOG(ERR, EAL,"user %s not found, aborting.", ++ user_search); ++ e = -1; ++ goto release; ++ } ++ } else { ++ /* User name is not specified, use current user. */ ++ while ((e = getpwuid_r(getuid(), &pwd, buf, bufsize, &res)) == ERANGE) { ++ if (!enlarge_buffer(&buf, &bufsize)) { ++ break; ++ } ++ } ++ ++ if (e != 0) { ++ RTE_LOG(ERR, EAL,"Failed to retrive current user's uid " ++ "(%s), aborting.", strerror(e)); ++ goto release; ++ } ++ user_search = strdup(pwd.pw_name); ++ } ++ ++ if (uid) ++ *uid = pwd.pw_uid; ++ ++ free(buf); ++ buf = NULL; ++ ++ if (pos) { ++ char *grpstr = pos + 1; ++ grpstr += strspn(grpstr, " \t\r\n"); ++ ++ if (*grpstr) { ++ struct group grp, *res; ++ ++ bufsize = 4096; ++ buf = malloc(bufsize); ++ while ((e = getgrnam_r(grpstr, &grp, buf, bufsize, &res)) ++ == ERANGE) { ++ if (!enlarge_buffer(&buf, &bufsize)) { ++ break; ++ } ++ } ++ ++ if (e) { ++ RTE_LOG(ERR, EAL,"Failed to get group entry for %s, " ++ "(%s), aborting.", grpstr, ++ strerror(e)); ++ goto release; ++ } ++ if (res == NULL) { ++ RTE_LOG(ERR, EAL,"Group %s not found, aborting.", ++ grpstr); ++ e = -1; ++ goto release; ++ } ++ ++ if (gid) ++ *gid = grp.gr_gid; ++ } ++ } ++ ++ release: ++ free(buf); ++ free(user_search); ++ return e; ++} ++ ++static void ++vhost_set_permissions(const char *vhost_sock_location) ++{ ++ unsigned long int mode = strtoul(internal_config.vhost_sock_perm, NULL, 0); ++ int err = chmod(vhost_sock_location, (mode_t)mode); ++ if (err) { ++ RTE_LOG(ERR, EAL,"vhost-user socket cannot set" ++ " permissions to %s (%s).\n", ++ internal_config.vhost_sock_perm, strerror(err)); ++ return; ++ } ++ RTE_LOG(INFO, EAL,"Socket %s changed permissions" ++ " to %s\n", vhost_sock_location, ++ internal_config.vhost_sock_perm); ++} ++ ++static void ++vhost_set_ownership(const char *vhost_sock_location) ++{ ++ uid_t vhuid=0; ++ gid_t vhgid=0; ++ ++ if (get_owners_from_str(internal_config.vhost_sock_owner, &vhuid, &vhgid)) { ++ RTE_LOG(ERR, EAL,"vhost-user socket unable to get" ++ " specified user/group: %s\n", ++ internal_config.vhost_sock_owner); ++ return; ++ } ++ ++ int err = chown(vhost_sock_location, vhuid, vhgid); ++ if (err) { ++ RTE_LOG(ERR, EAL,"vhost-user socket unable to set" ++ " ownership to %s (%s).\n", ++ internal_config.vhost_sock_owner, strerror(err)); ++ return; ++ } ++ ++ RTE_LOG(INFO, EAL,"Socket %s changed ownership" ++ " to %s.\n", vhost_sock_location, ++ internal_config.vhost_sock_owner); ++} ++ ++void ++rte_eal_set_socket_permissions(const char *path) ++{ ++ if (internal_config.vhost_sock_perm) { ++ vhost_set_permissions(path); ++ } ++ ++ if (internal_config.vhost_sock_owner) { ++ vhost_set_ownership(path); ++ } ++} +diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map +index db8c984..bb92e57 100644 +--- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map ++++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map +@@ -139,6 +139,7 @@ DPDK_2.2 { + rte_keepalive_register_core; + rte_xen_dom0_supported; + rte_xen_mem_phy2mch; ++ rte_eal_set_socket_permissions; + + } DPDK_2.1; + +diff --git a/lib/librte_vhost/vhost_user/vhost-net-user.c b/lib/librte_vhost/vhost_user/vhost-net-user.c +index b35594d..dbdb8ad 100644 +--- a/lib/librte_vhost/vhost_user/vhost-net-user.c ++++ b/lib/librte_vhost/vhost_user/vhost-net-user.c +@@ -79,6 +79,8 @@ struct vhost_user { + pthread_mutex_t mutex; + }; + ++#include ++ + #define MAX_VIRTIO_BACKLOG 128 + + static void vhost_user_server_new_connection(int fd, void *data, int *remove); +@@ -699,6 +701,7 @@ + vsocket->is_server = true; + ret = vhost_user_create_server(vsocket); + } ++ rte_eal_set_socket_permissions(path); + if (ret < 0) { + free(vsocket->path); + free(vsocket); diff --git a/ovs_build/dpdk_16.07.fuel/patches/make-load-devel-config-not-to-appear-as-executable.patch b/ovs_build/dpdk_16.07.fuel/patches/make-load-devel-config-not-to-appear-as-executable.patch new file mode 100644 index 0000000..0493053 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/make-load-devel-config-not-to-appear-as-executable.patch @@ -0,0 +1,86 @@ +Description: scripts: make load-devel-config not to appear as executable + +Quoting the first line of the script: "#! /bin/echo must be loaded with ." +Given that we should drop the .sh file ending as well as the executable +flag - both are not needed to source the file. + +Signed-off-by: Christian Ehrhardt + +Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15100/ +Author: Christian Ehrhardt +Last-Update: 2016-08-03 + +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -27,7 +27,7 @@ + F: scripts/check-maintainers.sh + F: scripts/check-git-log.sh + F: scripts/checkpatches.sh +-F: scripts/load-devel-config.sh ++F: scripts/load-devel-config + F: scripts/test-build.sh + + Stable Branches +--- a/scripts/checkpatches.sh ++++ b/scripts/checkpatches.sh +@@ -33,7 +33,7 @@ + # Load config options: + # - DPDK_CHECKPATCH_PATH + # - DPDK_CHECKPATCH_LINE_LENGTH +-. $(dirname $(readlink -e $0))/load-devel-config.sh ++. $(dirname $(readlink -e $0))/load-devel-config + + length=${DPDK_CHECKPATCH_LINE_LENGTH:-80} + +--- /dev/null ++++ b/scripts/load-devel-config +@@ -0,0 +1,12 @@ ++# Load DPDK devel config and allow override ++# from system file ++test ! -r /etc/dpdk/devel.config || ++ . /etc/dpdk/devel.config ++# from user file ++test ! -r ~/.config/dpdk/devel.config || ++ . ~/.config/dpdk/devel.config ++# from local file ++test ! -r $(dirname $(readlink -m $0))/../.develconfig || ++ . $(dirname $(readlink -m $0))/../.develconfig ++ ++# The config files must export variables in the shell style +--- a/scripts/load-devel-config.sh ++++ /dev/null +@@ -1,14 +0,0 @@ +-#! /bin/echo must be loaded with . +- +-# Load DPDK devel config and allow override +-# from system file +-test ! -r /etc/dpdk/devel.config || +- . /etc/dpdk/devel.config +-# from user file +-test ! -r ~/.config/dpdk/devel.config || +- . ~/.config/dpdk/devel.config +-# from local file +-test ! -r $(dirname $(readlink -m $0))/../.develconfig || +- . $(dirname $(readlink -m $0))/../.develconfig +- +-# The config files must export variables in the shell style +--- a/scripts/test-build.sh ++++ b/scripts/test-build.sh +@@ -48,7 +48,7 @@ + # - DPDK_NOTIFY (notify-send) + # - LIBSSO_SNOW3G_PATH + # - LIBSSO_KASUMI_PATH +-. $(dirname $(readlink -e $0))/load-devel-config.sh ++. $(dirname $(readlink -e $0))/load-devel-config + + print_usage () { + echo "usage: $(basename $0) [-h] [-jX] [-s] [config1 [config2] ...]]" +@@ -211,7 +211,7 @@ + # reload config with DPDK_TARGET set + DPDK_TARGET=$target + reset_env +- . $(dirname $(readlink -e $0))/load-devel-config.sh ++ . $(dirname $(readlink -e $0))/load-devel-config + + options=$(echo $conf | sed 's,[^~+]*,,') + dir=$conf diff --git a/ovs_build/dpdk_16.07.fuel/patches/rte-compile-pre-cppflags.patch b/ovs_build/dpdk_16.07.fuel/patches/rte-compile-pre-cppflags.patch new file mode 100644 index 0000000..877c62b --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/rte-compile-pre-cppflags.patch @@ -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 --git a/ovs_build/dpdk_16.07.fuel/patches/rte-devel-build-env.patch b/ovs_build/dpdk_16.07.fuel/patches/rte-devel-build-env.patch new file mode 100644 index 0000000..a44885b --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/rte-devel-build-env.patch @@ -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 --git a/ovs_build/dpdk_16.07.fuel/patches/series b/ovs_build/dpdk_16.07.fuel/patches/series new file mode 100644 index 0000000..c68b612 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/patches/series @@ -0,0 +1,13 @@ +fix-vhost-user-socket-permission.patch +fix-double-license-info.patch +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 +dpdk-dev-examples-ip_pipeline-fix-pmd-driver-parameter.patch diff --git a/ovs_build/dpdk_16.07.fuel/prep-modules b/ovs_build/dpdk_16.07.fuel/prep-modules new file mode 100755 index 0000000..3e1f9f8 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/prep-modules @@ -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 --git a/ovs_build/dpdk_16.07.fuel/rules b/ovs_build/dpdk_16.07.fuel/rules new file mode 100755 index 0000000..281dfae --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/rules @@ -0,0 +1,247 @@ +#!/usr/bin/make -f +# See debhelper(7) (uncomment to enable) +# output every command that modifies files on the build system. +export DH_VERBOSE=1 +export DH_OPTIONS=-v + +VERSION := $(shell dpkg-parsechangelog | sed -nr '/^Version:/s/Version: (.*:)?(.*)-(.*)/\2/p') + +# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/* +include /usr/share/dpkg/default.mk + +DEB_HOST_GNU_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU) + +# see FEATURE AREAS in dpkg-buildflags(1) +export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-pie + +# see ENVIRONMENT in dpkg-buildflags(1) +# package maintainers to append CFLAGS +export DEB_CFLAGS_MAINT_APPEND = -fPIC +# package maintainers to append LDFLAGS +#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed + +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 DEB_BUILD_OPTIONS if they like +ifneq (,$(filter dpdk_config=%,$(DEB_BUILD_OPTIONS))) + DPDK_CONFIG ?= $(patsubst dpdk_config=%,%,$(filter dpdk_config=%,$(DEB_BUILD_OPTIONS))) +endif +ifneq (,$(filter rte_machine=%,$(DEB_BUILD_OPTIONS))) + RTE_MACHINE ?= $(patsubst rte_machine=%,%,$(filter rte_machine=%,$(DEB_BUILD_OPTIONS))) +endif +ifneq (,$(filter rte_target=%,$(DEB_BUILD_OPTIONS))) + RTE_TARGET ?= $(patsubst rte_target=%,%,$(filter rte_target=%,$(DEB_BUILD_OPTIONS))) +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), arm64)) +DPDK_CONFIG ?= "arm64-armv8a-linuxapp-gcc" +RTE_MACHINE ?= "armv8a" +RTE_TARGET ?= "arm64-armv8a-linuxapp-gcc" +else +DPDK_CONFIG ?= "$(DEB_HOST_GNU_CPU)-native-linuxapp-gcc" +RTE_MACHINE ?= "default" +RTE_TARGET ?= "$(DEB_HOST_GNU_CPU)-default-linuxapp-gcc" +endif +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 debian/dpdk-modules-* \ + debian/control.modules debian/VERSION + sed -i '/Package: dpdk-modules-/,/`tail -n1 debian/control.modules.in`/d' debian/control + test -L config/defconfig_$(DPDK_CONFIG) && rm -f config/defconfig_$(DPDK_CONFIG) || true + +override_dh_auto_configure: + # Add support for a custom defconfig file in the debian directory. +ifneq (,$(filter dpdk_config=%,$(DEB_BUILD_OPTIONS))) + test -e config/defconfig_$(DPDK_CONFIG) || ln -fs ../debian/defconfig_$(DPDK_CONFIG) config/defconfig_$(DPDK_CONFIG) +endif + # report dpkg-buildflags status to build log + dpkg-buildflags --status + echo EXTRA_CFLAGS $$EXTRA_CFLAGS + echo EXTRA_LDFLAGS: $$EXTRA_LDFLAGS + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) T=$(DPDK_CONFIG) config +ifeq (,$(filter dpdk_config=%,$(DEB_BUILD_OPTIONS))) + sed -ri -e 's,(RTE_MACHINE=).*,\1$(RTE_MACHINE),' \ + -e 's,(RTE_NEXT_ABI=).*,\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,' \ + -e 's,(CONFIG_RTE_EAL_PMD_PATH=).*,\1"/usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)/dpdk-pmds/",' \ + $(DPDK_STATIC_DIR)/.config +endif + dh_auto_configure + +override_dh_auto_build-indep: + $(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 + # All files based on the install-doc rule (includes examples) + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) prefix=/usr \ + DESTDIR=debian/dpdk-doc install-doc + +override_dh_auto_build-arch: + $(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). + # And the target layout for target selection has no field for the + # type of library. + # Right now I hack this by doing a second build which only differs in + # the selection of shared libs. + # Shared libs should be default, so the previous static build is only + # used to get static libraries. + 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) RTE_KERNELDIR=$(KSRC) build + +override_dh_auto_install-arch: LIBDIR=usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +override_dh_auto_install-arch: + # Package: dpdk (runtime) + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) prefix=/usr \ + DESTDIR=debian/dpdk install-runtime + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) prefix=/usr \ + DESTDIR=debian/dpdk install-runtime + mkdir -p debian/dpdk/etc/dpdk + cp debian/dpdk.interfaces debian/dpdk/etc/dpdk/interfaces + rm debian/dpdk/usr/sbin/dpdk-devbind + mkdir -p debian/dpdk/sbin + ln -s /usr/share/dpdk/tools/dpdk-devbind.py \ + debian/dpdk/sbin/dpdk-devbind + # do not provide dpdk-pmdinfo in path for now (LP: #1630073) + rm debian/dpdk/usr/bin/dpdk-pmdinfo + # Package: dpdk-dev (build environment) + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) prefix=/usr \ + DESTDIR=debian/dpdk-dev install-sdk + cp $(DPDK_SHARED_DIR)/.config debian/dpdk-dev/usr/share/dpdk/config + sed -e 's/SDK_TARGET/$(RTE_TARGET)/' debian/dpdk-sdk-env.sh.in > \ + debian/dpdk-dev/usr/share/dpdk/dpdk-sdk-env.sh + # Package: libdpdk-dev (bare headers, static devel libs and linker + # script) + mkdir -p debian/libdpdk-dev/$(LIBDIR) + # linker script + mv debian/dpdk/usr/lib/libdpdk.so debian/libdpdk-dev/$(LIBDIR)/ + # includes + mkdir -p debian/libdpdk-dev/usr/include + mv debian/dpdk-dev/usr/include/dpdk debian/libdpdk-dev/usr/include/ + # all static libs are in the dev package + mv debian/dpdk/usr/lib/lib*.a debian/libdpdk-dev/$(LIBDIR)/ + # symlinks to last .so's are in the non versioned libdpdk-dev as well + # this allows multiple libdpdk- at different VER concurrently + # libdpdk-dev depends on all sublibs so symlinks are never broken + mv debian/dpdk/usr/lib/*.so debian/libdpdk-dev/$(LIBDIR)/ + # Package(s): libdpdk- (bare runtime libs) + for lib in $$(ls -1 debian/dpdk/usr/lib/*.so.*); do \ + BN=$$(basename $${lib}); \ + VER=$$(echo $${BN} | sed -e 's/^.*\.so\.//'); \ + LN=$$(echo $${BN} | sed -e 's/\.so\.[0-9]*$$//' | tr '_' '-'); \ + if echo $${LN} | grep -q ".*[0-9]$$"; then \ + PKG=$${LN}-$${VER}; \ + else \ + PKG=$${LN}$${VER}; \ + fi; \ + LIBF="$$(basename $${lib})"; \ + LIBD="debian/$${PKG}/$(LIBDIR)"; \ + echo "moving $${lib} for library $${PKG}"; \ + mkdir -p $${LIBD}; \ + mv $${lib} $${LIBD}; \ + if [ "$${LIBF#librte_pmd_}x" != "$${LIBF}x" ]; then \ + mkdir -p $${LIBD}/dpdk-pmds; \ + echo "PMD: linking $${LIBF} into RTE_EAL_PMD_PATH at $${LIBD}/dpdk-pmds/"; \ + ln -s --relative --target-directory=$${LIBD}/dpdk-pmds/ $${LIBD}/$${LIBF}; \ + fi; \ + if [ "$${LIBF#librte_eal}x" != "$${LIBF}x" ]; then \ + mkdir -p $${LIBD}/dpdk-pmds; \ + fi; \ + done + # pkg-config + mkdir -p debian/libdpdk-dev/$(LIBDIR)/pkgconfig + LIBS=$$(sed -e 's/GROUP ( \(.*\) )/\1/' -e 's/lib/-l/g' -e 's/\.so//g' \ + $(CURDIR)/debian/libdpdk-dev/$(LIBDIR)/libdpdk.so); \ + sed -e "s/@DPDK_LIBS@/$${LIBS}/" -e "s/@VERSION@/$(VERSION)/" \ + debian/libdpdk.pc.in > debian/libdpdk-dev/$(LIBDIR)/pkgconfig/libdpdk.pc + # Package: dpdk-igb-uio-dkms + mkdir -p debian/dpdk-igb-uio-dkms/usr/src/dpdk-igb-uio-$(VERSION) + cp lib/librte_eal/linuxapp/igb_uio/* \ + debian/dpdk-igb-uio-dkms/usr/src/dpdk-igb-uio-$(VERSION) + # Package: dpdk-rte-kni-dkms + 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) + +override_dh_installinit: + dh_installinit --no-start --no-restart-on-upgrade + +override_dh_systemd_start: + dh_systemd_start --no-start --no-restart-on-upgrade + +override_dh_auto_test: + diff --git a/ovs_build/dpdk_16.07.fuel/source/format b/ovs_build/dpdk_16.07.fuel/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/ovs_build/dpdk_16.07.fuel/source/options b/ovs_build/dpdk_16.07.fuel/source/options new file mode 100644 index 0000000..5fd30a1 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/source/options @@ -0,0 +1 @@ +extend-diff-ignore = '(^|/)(\.gitreview|\.git)$' diff --git a/ovs_build/dpdk_16.07.fuel/tests/check-dpdk-supported-arch.sh b/ovs_build/dpdk_16.07.fuel/tests/check-dpdk-supported-arch.sh new file mode 100644 index 0000000..3de6e46 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/tests/check-dpdk-supported-arch.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +arch=$(dpkg --print-architecture) +case $arch in + amd64|arm64|i386) + echo "Architecture ${arch} supported, go on with test" + ;; + *) + echo "Architecture ${arch} not supported, SKIP test" + exit 0 + ;; +esac diff --git a/ovs_build/dpdk_16.07.fuel/tests/control b/ovs_build/dpdk_16.07.fuel/tests/control new file mode 100644 index 0000000..5afed74 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/tests/control @@ -0,0 +1,13 @@ +Tests: test-initscripts +Restrictions: allow-stderr, isolation-machine, needs-root +Depends: dpdk [amd64 arm64 i386], gawk, mount, systemd, sysvinit-utils + +Tests: test-linkage +Restrictions: allow-stderr +Depends: libdpdk-dev [amd64 arm64 i386], libc6, libc6-dev, gcc, + grep, libpcap-dev, libxenstore3.0 [amd64 arm64 i386], pax-utils + +Tests: test-dkms +Restrictions: allow-stderr, isolation-machine, needs-root +Depends: kmod, dpdk-igb-uio-dkms [amd64 arm64 i386], + dpdk-rte-kni-dkms [amd64 arm64 i386] diff --git a/ovs_build/dpdk_16.07.fuel/tests/test-dkms b/ovs_build/dpdk_16.07.fuel/tests/test-dkms new file mode 100644 index 0000000..5db36af --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/tests/test-dkms @@ -0,0 +1,22 @@ +#!/bin/bash +set -eu + +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 +modprobe igb_uio +rmmod igb_uio +echo "OK" + +printf "\n\nChecking igb_uio\n" +modinfo rte_kni +modprobe rte_kni +rmmod rte_kni +echo "OK" diff --git a/ovs_build/dpdk_16.07.fuel/tests/test-initscripts b/ovs_build/dpdk_16.07.fuel/tests/test-initscripts new file mode 100644 index 0000000..069c57b --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/tests/test-initscripts @@ -0,0 +1,143 @@ +#!/bin/sh +set -e + +basedir=$(dirname "$0") +. "${basedir}"/check-dpdk-supported-arch.sh + +# Overall that could require up to 1.2G for hugepages in the test environment +EXPECT2MHP=10 +# Some page sizes like e.g. 1G might not be available in all test environments +# The test still configures 1 page of 1G size. +# One of two things will happen, depending on the test environment: +# - has 1G huge page size => they will tried to be allocated (usually env is +# too small, but we want to see it fail gracefully for that) +# We will not check for the 1G alloc, as we know it often fails in small adt's +# - has no 1G huge page size (HW feature) => we check if it fails gracefully +EXPECT1GHP=1 + +DPDK_CONF="/etc/dpdk/dpdk.conf" +DPDK_INTERF="/etc/dpdk/interfaces" + +checkhp() { + MMDIR="/sys/kernel/mm/hugepages/${1}" + EXPECTHP="${2}" + if [ -d "$MMDIR" -a -r "$MMDIR/nr_hugepages" ]; then + hpcount=$(cat "$MMDIR/nr_hugepages") + if [ "${hpcount}" -ne "${EXPECTHP}" ]; then + echo "Hugepages (${hpcount}) not as expected (${EXPECTHP})" + exit 1 + else + echo "Hugepages ok (${hpcount})" + fi + fi +} + +checkstatus() { + MARK=${1} + EXPMPCOUNT=${2} + PRE=${3} + POST=${4} + EXPECTEDSTATUS=${5} + echo "Status after ${MARK}" + echo "Status of the Service" + ${PRE} status "${POST}" || true + + GOTSTATUS=$(${PRE} status "${POST}" | awk '/^ *Active: / { print $2 }') + if [ "${GOTSTATUS}" != "${EXPECTEDSTATUS}" ]; then + echo "Service status (${GOTSTATUS}) not as expected (${EXPECTEDSTATUS})" + exit 1 + else + echo "Service status (${GOTSTATUS}) as expected" + fi + + echo "Status of hugetlbfs mount points" + # this section is ok to create bad RCs when no mounts are available + set +e + grep hugetlbfs < /proc/mounts + htlbfscount=$(grep -c hugetlbfs < /proc/mounts) + set -e + + # we have to reduce the expected mountpoint count in case some sizes are + # not supported by the current kernel/environment + if [ ${EXPMPCOUNT} -gt 0 ]; then + if [ ! -d /sys/kernel/mm/hugepages/hugepages-2048kB ]; then + EXPMPCOUNT=$((EXPMPCOUNT-1)) + fi + if [ ! -d /sys/kernel/mm/hugepages/hugepages-1048576kB ]; then + EXPMPCOUNT=$((EXPMPCOUNT-1)) + fi + fi + + if [ "${htlbfscount}" -eq "${EXPMPCOUNT}" ]; then + echo "MP Count (${htlbfscount}) as expected (${EXPMPCOUNT})" + else + echo "MP Count (${htlbfscount}) not as expected (${EXPMPCOUNT})" + exit 1 + fi + + # check if setting HP worked + if [ "${EXPMPCOUNT}" -ne "0" ]; then + checkhp "hugepages-2048kB" "${EXPECT2MHP}" + # We do not check 1G alloc, as it is known to be often not available + fi +} + +resetservice() { + # help a bit with memory fragmentation regarding huge page allocation + sync + echo 3 > /proc/sys/vm/drop_caches + + # stopping and resetting Service + systemctl stop dpdk.service || /bin/true + systemctl reset-failed dpdk.service || /bin/true + + echo "Unmounting all potential hugetlbfs mounts" + awk '/hugetlbfs/ {print $2}' /proc/mounts | while read hugetlbmount; do + umount -v "$hugetlbmount" + done +} + +checkinitstyle() { + # We want to verify that + # - initially our environment has no hugetlbfs mount + # - a system without hugetlbfs mount gets it mounted + # - a restart of the service does neither drop nor duplicate the mount + PRE=${1} + POST=${2} + TYPE=${3} + printf "\n\n### Checking Type %s ###\n" "${TYPE}" + resetservice + checkstatus "${TYPE}-BEGIN" 0 "${PRE}" "${POST}" "inactive" + echo "### Starting Service ###" + ${PRE} start "${POST}" + checkstatus "${TYPE}-START" 2 "${PRE}" "${POST}" "active" + echo "### Restarting Service ###" + ${PRE} restart "${POST}" + checkstatus "${TYPE}-RESTART" 2 "${PRE}" "${POST}" "active" +} + +echo "NR_2M_PAGES=$EXPECT2MHP" >> ${DPDK_CONF} +echo "NR_1G_PAGES=$EXPECT1GHP" >> ${DPDK_CONF} + +# We can't rely on any real device for DPDK tests in adt-* environments. But +# we can expect all kind of broken configuration not to break it (would be +# detected via set -e). +# So add all kind of known-to-be-broken definitions and expect it not to fail. +cat < ${DPDK_INTERF} +# wrong bus +pTi 0000:04:00.0 uio-pci-generic +# not enough parms +0000:04:00.0 uio-pci-generic +# empty line + +# non existing device +pci 1234:56:78.9 uio-pci-generic +EOF + +# some had issues in the past caused by different init systems, so we test all +# Direct Calls +checkinitstyle "/etc/init.d/dpdk" "" "Direct" +# System V style init +checkinitstyle "service dpdk" "" "SysV" +# SystemD style init +checkinitstyle "systemctl" "dpdk.service" "SystemD" diff --git a/ovs_build/dpdk_16.07.fuel/tests/test-linkage b/ovs_build/dpdk_16.07.fuel/tests/test-linkage new file mode 100644 index 0000000..fabe1c8 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/tests/test-linkage @@ -0,0 +1,51 @@ +#!/bin/bash +set -eu + +basedir=$(dirname "$0") +. "${basedir}"/check-dpdk-supported-arch.sh + +cat > testlinkage.c << EOF +#include +#include "dpdk/rte_common.h" + +int main() +{ + printf("Hello rte_exit %p\n", rte_exit); + return 0; +} +EOF + +# -ldpdk actually refers to a linker script now, not a real .so +# with broken linkage this will fail with undefined symbols +printf "\n\nChecking compile with link against DPDK\n" +gcc -v testlinkage.c -o testlinkage.bin -Wall -Werror -ldpdk +echo "OK" + +printf "\n\nLinkage info\n" +lddtree testlinkage.bin + +printf "\n\nChecking for expected internal libraries\n" +# a few of the sublibs that it should use +lddtree testlinkage.bin | grep '^ librte_eal.so' +echo "OK" + +printf "\n\nChecking for expected secondary library dependencies\n" +lddtree testlinkage.bin | grep '^ libpthread.so' +lddtree testlinkage.bin | grep '^ librt.so' +echo "OK" + +printf "\n\nChecking for expected feature dependent library dependencies\n" +# features only used by the lib that we enabled +ldd /usr/lib/*/librte_pmd_pcap.so | grep libpcap +ldd /usr/lib/*/librte_pmd_xenvirt.so | grep libxenstore +echo "OK" + +printf "\n\nChecking test execution\n" +# It doesn't do much, but it should work - so calling it is a minor extra test. +# It is known to fail without SSE3 in e.g. some adt environments, in that +# case check at least that we get the correct error message (this will trigger +# a test fail if it neither finds the success nor the expected error message) +(./testlinkage.bin 2>&1 || /bin/true ) | \ +grep -E 'ERROR: This system does not support "SSSE3".|Hello rte_exit 0x' + +echo "OK" diff --git a/ovs_build/dpdk_16.07.fuel/watch b/ovs_build/dpdk_16.07.fuel/watch new file mode 100644 index 0000000..5de4f73 --- /dev/null +++ b/ovs_build/dpdk_16.07.fuel/watch @@ -0,0 +1,2 @@ +version=3 +http://fast.dpdk.org/rel/dpdk-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))