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 <ruijing.guo@intel.com>
This commit is contained in:
Guo Ruijing 2017-01-11 16:16:40 -05:00
parent d0487867be
commit 4a404514bf
88 changed files with 6409 additions and 0 deletions

View File

@ -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.

View File

@ -0,0 +1,528 @@
dpdk (16.07-0ubuntu5~u1604+mos1) mos; urgency=low
* Rebuild debian package.
* Add fake dpdk-dkms package
-- Ivan Suzdal <mos-linux@mirantis.com> 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 <openstack-testing-bot@ubuntu.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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=<path/to/kernel/sources> to DEB_BUILD_OPTIONS) into a
dpdk-modules-<kernel version> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <rsalveti@rsalveti.net> 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 <rsalveti@rsalveti.net> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <christian.ehrhardt@canonical.com> 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 <james.page@ubuntu.com> 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 <stefan.bader@canonical.com> Tue, 17 Nov 2015 11:50:15 +0100
dpdk (2.0.0-0ubuntu1) wily; urgency=low
* Initial release (LP: #1487538)
-- Stefan Bader <stefan.bader@canonical.com> Mon, 01 Jun 2015 18:46:38 +0200

View File

@ -0,0 +1 @@
9

View File

@ -0,0 +1,747 @@
Source: dpdk
Priority: optional
Maintainer: MOS Linux Team <mos-linux@mirantis.com>
XSBC-Original-Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
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.

View File

@ -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.

View File

@ -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 <nhorman@tuxdriver.com>
2007, VMware, Inc.
License: BSD-2-clause
Files: buildtools/pmdinfogen/*
Copyright: 2016, Neil Horman <nhorman@tuxdriver.com>
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 <anbe@debian.org>
2010-2016 Russ Allbery <rra@debian.org>
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.

View File

@ -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

View File

@ -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 <christian.ehrhardt@canonical.com> Thu, 29 Sep 2016 13:04:47 +0200

View File

@ -0,0 +1 @@
dpdk-doc: embedded-javascript-library

View File

@ -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"

View File

@ -0,0 +1,251 @@
#!/bin/sh
#
# dpdk-init: startup script to initialize a dpdk runtime environment
#
# Copyright 2015-2016 Canonical Ltd.
# Autor: Stefan Bader <stefan.bader@canonical.com>
# Autor: Christian Ehrhardt <christian.ehrhardt@canonical.com>
#
# 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 <http://www.gnu.org/licenses/>.
#
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

View File

@ -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"

View File

@ -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"

View File

@ -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.
#

View File

@ -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

View File

@ -0,0 +1,2 @@
debian/dpdk-init lib/dpdk/
debian/dpdk.conf etc/dpdk/

View File

@ -0,0 +1,19 @@
#
# <bus> Currently only "pci" is supported
# <id> Device ID on the specified bus
# <driver> 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-<VERSION> 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.
#
# <bus> <id> <driver>
# 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

View File

@ -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

View File

@ -0,0 +1,61 @@
#!/usr/bin/perl
#
# Copyright (c) 2009-2016 Andreas Beckmann <anbe@debian.org>
# 2010-2016 Russ Allbery <rra@debian.org>
#
# 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 <http://www.gnu.org/licenses/>.
#
# 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 = <VERSION>)) {
if ($line =~ /"(.+)"/) {
print "$1\n";
$found = 1;
}
}
}
exit 0 if $found;
if (open (VERSION, "$ksrc/include/generated/utsrelease.h")) {
if (defined(VERSION) && ($line = <VERSION>)) {
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 = <VERSION>)) {
print "$line";
}
exit 0;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 <pablo.de.lara.guarch@intel.com>
Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15057/
Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
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
~~~~~~~~~~~~~~~~~~~~

View File

@ -0,0 +1,39 @@
From: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
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 <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15995/
Author: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
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

View File

@ -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=<port id> | device_id=<pci id or vdev name>),
- (queue=<queue_id>),
- (rx-dev=<iface or pcap file> |
- tx-dev=<iface or pcap file>),
- [ring-size=<ring size>],
- [mbuf-size=<mbuf data size>],
- [total-num-mbufs=<number of mbufs>]'
- [--server-socket-path=<server socket dir>]
- [--client-socket-path=<client socket dir>]
-
-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=<port id> | device_id=<pci id or vdev name>),
+ (queue=<queue_id>),
+ (rx-dev=<iface or pcap file> |
+ tx-dev=<iface or pcap file>),
+ [ring-size=<ring size>],
+ [mbuf-size=<mbuf data size>],
+ [total-num-mbufs=<number of mbufs>]'
+ [--server-socket-path=<server socket dir>]
+ [--client-socket-path=<client socket dir>]
+
+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.

View File

@ -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/*),)

View File

@ -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 <pci id file] <elf-file>
+
+ -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.

View File

@ -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
+ ============================================
+ <none>
+
+ 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/*),)

View File

@ -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 <ferruh.yigit@intel.com>
Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15717/
Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
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)},

File diff suppressed because it is too large Load Diff

View File

@ -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 <christian.ehrhardt@canonical.com>
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
#

View File

@ -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 <christian.ehrhardt@canonical.com>
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 <sys/io.h>
#endif
+#include <sys/types.h>
+#include <pwd.h>
+#include <grp.h>
#include <rte_common.h>
#include <rte_debug.h>
@@ -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 <rte_eal.h>
+
#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);

View File

@ -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 <christian.ehrhardt@canonical.com>
Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15100/
Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
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

View File

@ -0,0 +1,48 @@
From a4d00a8bf4684a4cf101b026c7c49a993cf9b989 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <lboccass@brocade.com>
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 <lboccass@brocade.com>
Forwarded: yes
Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15549/
Author: Luca Boccassi <lboccass@brocade.com>
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)" && \

View File

@ -0,0 +1,37 @@
From 5a75a37716f69905af29fbd81aef44625eb69a8b Mon Sep 17 00:00:00 2001
From: Luca Boccassi <lboccass@brocade.com>
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: <stable@dpdk.org>
Signed-off-by: Luca Boccassi <lboccass@brocade.com>
Forwarded: yes
Origin: Upstream, http://dpdk.org/dev/patchwork/patch/15795/
Author: Luca Boccassi <lboccass@brocade.com>
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

View File

@ -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

View File

@ -0,0 +1,118 @@
#! /bin/sh
#
# Copyright (c) 2009-2016 Andreas Beckmann <anbe@debian.org>
# 2010-2016 Russ Allbery <rra@debian.org>
#
# 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 <http://www.gnu.org/licenses/>.
#
# 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 <kernel-source-location>"
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

247
ovs_build/dpdk_16.07.fuel/rules Executable file
View File

@ -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-<NAME><VER> 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-<NAME><VER> (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-<kernel version>
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:

View File

@ -0,0 +1 @@
3.0 (quilt)

View File

@ -0,0 +1 @@
extend-diff-ignore = '(^|/)(\.gitreview|\.git)$'

View File

@ -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

View File

@ -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]

View File

@ -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"

View File

@ -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 <<EOF > ${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"

View File

@ -0,0 +1,51 @@
#!/bin/bash
set -eu
basedir=$(dirname "$0")
. "${basedir}"/check-dpdk-supported-arch.sh
cat > testlinkage.c << EOF
#include <stdio.h>
#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"

View File

@ -0,0 +1,2 @@
version=3
http://fast.dpdk.org/rel/dpdk-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))