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:
parent
d0487867be
commit
4a404514bf
|
@ -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.
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
9
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
dpdk-doc: embedded-javascript-library
|
|
@ -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"
|
|
@ -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
|
||||
|
|
@ -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"
|
|
@ -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"
|
|
@ -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.
|
||||
#
|
|
@ -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
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
debian/dpdk-init lib/dpdk/
|
||||
debian/dpdk.conf etc/dpdk/
|
|
@ -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
|
|
@ -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
|
|
@ -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;
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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.
|
|
@ -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.
|
|
@ -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
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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
|
|
@ -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.
|
|
@ -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
|
|
@ -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
|
|
@ -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.
|
|
@ -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.
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
~~~~~~~~~~~~~~~~~~~~
|
|
@ -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
|
||||
|
|
@ -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.
|
|
@ -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/*),)
|
|
@ -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.
|
|
@ -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/*),)
|
|
@ -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
|
@ -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
|
||||
#
|
|
@ -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);
|
|
@ -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
|
|
@ -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)" && \
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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
|
|
@ -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:
|
||||
|
|
@ -0,0 +1 @@
|
|||
3.0 (quilt)
|
|
@ -0,0 +1 @@
|
|||
extend-diff-ignore = '(^|/)(\.gitreview|\.git)$'
|
|
@ -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
|
|
@ -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]
|
|
@ -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"
|
|
@ -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"
|
|
@ -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"
|
|
@ -0,0 +1,2 @@
|
|||
version=3
|
||||
http://fast.dpdk.org/rel/dpdk-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
|
Loading…
Reference in New Issue