Clean up and Remove DPDK from ovs with NSH

Change-Id: If3d4e8d9fa00077fe21959ad61eed9b423bc1ae8
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
This commit is contained in:
Guo Ruijing 2017-02-02 15:26:20 -05:00
parent 9b5292b244
commit 0e55761328
37 changed files with 13 additions and 2181 deletions

View File

@ -7,14 +7,14 @@ Openvswitch plugin
Overview
--------
Fuel plugin fuel-plugin-ovs is developed to deploy OVS with NSH + DPDK
Fuel plugin fuel-plugin-ovs is developed to deploy OVS with NSH or OVS with DPDK
Requirements
------------
| Requirement | Version/Comment |
|----------------------------------|-----------------|
| Mirantis OpenStack compatibility | 9.0 |
| Mirantis OpenStack compatibility | 10.0 |
Recommendations
---------------
@ -60,7 +60,7 @@ Openvswitch plugin installation
id | name | version | package_version
---|-----------------|---------|----------------
1 | fuel-plugin-ovs | 0.9.0 | 4.0.0
1 | fuel-plugin-ovs | 1.0.0 | 4.0.0
8. Plugin is ready to use and can be enabled on the Settings tab of the Fuel web UI.

17
deployment_scripts/install.sh Normal file → Executable file
View File

@ -8,13 +8,11 @@ cd $INSTALL_HOME
host=$1
nsh=$2
dpdk=$3
dpdk_socket_mem=${4:-''}
pmd_cpu_mask=${5:-'2'}
deb_arch=$(dpkg --print-architecture)
ovs="ovs-dpdk_${deb_arch}.tar.gz"
if [ $nsh = 'true' ]; then
ovs="ovs-nsh-dpdk_${deb_arch}.tar.gz"
ovs="ovs-nsh_${deb_arch}.tar.gz"
fi
apt-get install -y --allow-unauthenticated dkms
@ -31,17 +29,4 @@ then
dpkg -i openvswitch-switch-dpdk_*.deb
fi
if [[ $dpdk = 'true' && -n $dpdk_socket_mem ]]
then
#Set to 0, dpdk init script mount hugepages but don't change current allocation
sed -i "s/[# ]*\(NR_2M_PAGES=\).*/\10/" /etc/dpdk/dpdk.conf
service dpdk start
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="$dpdk_socket_mem"
ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask="$pmd_cpu_mask"
service openvswitch-switch restart
fi
rm -rf $INSTALL_HOME

View File

@ -2,18 +2,14 @@ notice('MODULAR: ovs-install.pp')
# get options
$master_ip = hiera('master_ip')
$ovs_settings = hiera('fuel-plugin-ovs')
$dpdk = hiera_hash('dpdk', {})
$install_nsh = $ovs_settings['install_nsh']
$install_dpdk = $ovs_settings['install_dpdk']
$install_on_controller = $ovs_settings['install_on_controller']
$ovs_socket_mem = join(pick($dpdk['ovs_socket_mem'], []), ',')
$ovs_pmd_core_mask = $dpdk['ovs_pmd_core_mask']
if $operatingsystem == 'Ubuntu' {
if (!roles_include(['primary-controller', 'controller'])) or $install_on_controller {
exec { 'install ovs_nsh_dpdk':
command => "curl http://${master_ip}:8080/plugins/fuel-plugin-ovs-1.0/deployment_scripts/install.sh | bash -s ${master_ip} ${install_nsh} ${install_dpdk} ${ovs_socket_mem} ${ovs_pmd_core_mask}",
command => "/etc/fuel/plugins/fuel-plugin-ovs-1.0/install.sh ${master_ip} ${install_nsh} ${install_dpdk}",
path => '/usr/bin:/usr/sbin:/bin:/sbin',
}
}

View File

@ -1,9 +1,8 @@
# get options
$master_ip = hiera('master_ip')
notice('MODULAR: ovs-update-flavors')
if $operatingsystem == 'Ubuntu' {
exec { 'update flavors':
command => "curl http://${master_ip}:8080/plugins/fuel-plugin-ovs-1.0/deployment_scripts/update_flavors.sh | bash -s",
command => "/etc/fuel/plugins/fuel-plugin-ovs-1.0/update_flavors.sh",
path => '/usr/bin:/usr/sbin:/bin:/sbin',
}
} elsif $operatingsystem == 'CentOS' {

0
deployment_scripts/update_flavors.sh Normal file → Executable file
View File

View File

@ -2,10 +2,8 @@
type: puppet
version: 2.1.0
groups: [compute, primary-controller, controller]
requires: [allocate_hugepages]
requires: [setup_repositories]
required_for: [netconfig]
condition:
yaql_exp: changedAny($.get('fuel-plugin-ovs'), $.get('dpdk'))
parameters:
puppet_manifest: puppet/manifests/ovs-install.pp
puppet_modules: puppet/modules:/etc/puppet/modules

View File

@ -1,11 +1,11 @@
# Plugin name
name: fuel-plugin-ovs
# Human-readable name for your plugin
title: Install Openvswitch with NSH/DPDK
title: Install Open vSwitch with NSH or Open vSwitch with DPDK
# Plugin version
version: '1.0.0'
# Description
description: 'This plugin provides to deploy openvswitch with NSH/DPDK'
description: 'This plugin provides to deploy Open vSwitch with NSH or Open vSwitch with DPDK'
# Required fuel version
fuel_version: ['10.0']
# Specify license of your plugin

View File

@ -6,7 +6,7 @@ OVS_COMMIT=f4b0e64cffb4777ff03d48621c3eadcf1d8c19f3
OVS_VER=${OVS_VER:-2.6.1}
BUILD_DEST=${BUILD_DEST:-/deb}
BUILD_SRC="$(dirname `readlink -f $0`)"
BUILD_HOME=${BUILD_HOME:-/tmp/ovs-dpdk}
BUILD_HOME=${BUILD_HOME:-/tmp/ovs-nsh}
DEB_ARCH="$(dpkg --print-architecture)"
export DEB_BUILD_OPTIONS='parallel=8 nocheck'
@ -17,40 +17,6 @@ sudo apt-get -y --force-yes install devscripts dpkg-dev git wget dkms
rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}/deb
cd ${BUILD_HOME}
wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz
xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar
cd dpdk-16.07
cp -r ${BUILD_SRC}/dpdk_16.07.fuel/debian .
cat << EOF > debian/changelog
dpdk (16.07-0ubuntu5~u1604+fuel10) xenial; urgency=low
* Rebuild debian package
* update librte-eal2.symbols
-- Ruijing Guo <ruijing.guo@intel.com> $(date --rfc-2822)
EOF
# copy from debian/control
sudo apt-get install -y --force-yes debhelper \
dh-python \
dh-systemd \
doxygen \
graphviz \
inkscape \
libcap-dev \
libpcap-dev \
libxen-dev \
libxenstore3.0 \
python \
python-sphinx \
texlive-fonts-recommended \
texlive-latex-extra
debian/rules build; fakeroot debian/rules binary
cd ${BUILD_HOME}
sudo apt-get install -y --force-yes hwdata
sudo dpkg -i *.deb
mv *.deb ${BUILD_DEST}
# copy from debian/control
sudo apt-get install -y --force-yes autoconf \
@ -79,21 +45,7 @@ for patch in ${PATCHES}
do
patch -p1 < ${BUILD_SRC}/ovs_nsh_patches/v2.6.1/${patch}
done
cd ${BUILD_HOME}; cp -r ovs ovs-dpdk
cd ovs-dpdk
cp -r ${BUILD_SRC}/openvswitch_2.6-dpdk_16.07/debian .
cat << EOF > debian/changelog
openvswitch-dpdk (${OVS_VER}-1.nsh) unstable; urgency=low
[ Open vSwitch team ]
* support NSH & DPDK 16.07
-- Open vSwitch team <dev@openvswitch.org> $(date --rfc-2822)
EOF
debian/rules build; fakeroot debian/rules binary
cd ${BUILD_HOME}/ovs
cat << EOF > debian/changelog
openvswitch (${OVS_VER}-1.nsh) unstable; urgency=low
[ Open vSwitch team ]
@ -105,4 +57,4 @@ debian/rules build; fakeroot debian/rules binary
cp -r ${BUILD_HOME}/*.deb ${BUILD_HOME}/deb
cd ${BUILD_HOME}/deb
tar czvf ${BUILD_DEST}/ovs-nsh-dpdk_${DEB_ARCH}.tar.gz .;
tar czvf ${BUILD_DEST}/ovs-nsh_${DEB_ARCH}.tar.gz .;

View File

@ -1,3 +0,0 @@
dpdk (16.07-1) unstable; urgency=low
* DPDK 16.07
-- DPDK team <dev@dpdk.org> Sat, 03 Sep 2016 20:00:00 +0200

View File

@ -1 +0,0 @@
9

View File

@ -1,81 +0,0 @@
Source: dpdk
Priority: optional
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Build-Depends: debhelper (>= 9),
dh-python,
dh-systemd (>= 1.5),
doxygen,
graphviz,
inkscape,
libcap-dev,
libpcap-dev,
libxen-dev,
libxenstore3.0,
python,
python-sphinx,
texlive-fonts-recommended,
texlive-latex-extra
Standards-Version: 3.9.6
Section: libs
Homepage: http://www.dpdk.org
Vcs-Original-Git: git://dpdk.org/dpdk
Vcs-Original-Browser: http://www.dpdk.org/browse/dpdk/refs/
Vcs-Git: https://git.launchpad.net/~ubuntu-server/dpdk
Vcs-Browser: https://code.launchpad.net/~ubuntu-server/dpdk/+git/dpdk
Package: dpdk
Section: devel
Architecture: amd64 i386
Depends: libdpdk0 (= ${binary:Version}),
lsb-base (>= 3.2-14),
${misc:Depends},
${python:Depends},
${shlibs:Depends}
Suggests: linux-image-generic
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 i386
Depends: libdpdk0 (= ${binary:Version}), ${misc: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
Depends: libjs-jquery, libjs-underscore, ${misc:Depends}
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: libdpdk0
Architecture: amd64 i386
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Data Plane Development Kit (runtime libraries)
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 which require at least SSE3
support in the CPU.
Package: libdpdk-dev
Section: libdevel
Architecture: amd64 i386
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: libdpdk0 (= ${binary:Version}), ${misc:Depends}
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.

View File

@ -1,48 +0,0 @@
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-2015 Intel Corporation.
2010-2013 Tilera Corporation.
2012 Mellanox.
2007 VMware, Inc.
2007 Nuova Systems, Inc.
2014 IBM Corporation.
License: BSD+GPLv2+LGPLv2
On Debian systems, the complete text of the BSD License can be
found in "/usr/share/common-licenses/BSD".
.
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
Files: debian/*
Copyright: 2015 Canonical Ltd. <stefan.bader@canonical.com>
Copyright: 2015, 2016 Canonical Ltd. <christian.ehrhardt@canonical.com>
License: GPL-3
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 warranties of
MERCHANTABILITY, SATISFACTORY QUALITY, 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/>.

View File

@ -1 +0,0 @@
usr/share/dpdk

View File

@ -1 +0,0 @@
debian/dpdk-sdk-env.sh /usr/share/dpdk/

View File

@ -1,52 +0,0 @@
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 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
-- Christian Ehrhardt <christian.ehrhardt@canonical.com> Thu, 04 Feb 2016 09:16:11 +0100

View File

@ -1 +0,0 @@
usr/share/doc/dpdk

View File

@ -1,251 +0,0 @@
#!/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_nic_bind"
DPDK_INTERF="/etc/dpdk/interfaces"
# pagesize supports [G|g]/[M|m]/[K|k]
get_kbytes() {
local unit
local num
unit=$(echo "${1}" | sed 's/[0-9]*//g')
num=$(echo "${1}" | sed 's/[^0-9]*//g')
case ${unit} in
*g | *G)
echo $((num*1024*1024))
;;
*m | *M)
echo $((num*1024))
;;
*k | *K)
echo $((num))
;;
*)
echo $((num/1024))
;;
esac
}
get_default_hpgsz() {
default_hpgsz=$(grep "Hugepagesize:" /proc/meminfo \
| sed 's/^Hugepagesize:\s*//g' | sed 's/\s*kB$//g')
echo "${default_hpgsz}"
}
get_hugetlbfs_mountpoint() {
local requested_hpgsz
local mp_hpgsz
requested_hpgsz=$(get_kbytes "${1}")
grep hugetlbfs /proc/mounts | while read \
mntfrom mntpoint mntfstype mntopt mntdump mntfsck; do
# check if the current muntpoint is of the requested huge page size
case ${mntopt} in
*pagesize=*)
mp_hpgsz=$(echo "${mntopt}" | sed 's/.*pagesize=//g' | sed 's/,.*//g')
mp_hpgsz=$(get_kbytes "${mp_hpgsz}")
;;
*)
mp_hpgsz=$(get_default_hpgsz)
;;
esac
if [ "${requested_hpgsz}" -eq "${mp_hpgsz}" ]; then
echo "${mntpoint}"
return
fi
done
}
_mount_hugetlbfs() {
local MNT="/dev/hugepages"
local MNTOPTS=""
local requested_hpgsz
local default_hpgsz
requested_hpgsz=$(get_kbytes "${1}")
default_hpgsz=$(get_default_hpgsz)
# kernel might not support the requested size
if [ ! -d "/sys/kernel/mm/hugepages/hugepages-${requested_hpgsz}kB" ]; then
echo "WARNING: requested page size of ${requested_hpgsz}kB " \
"not supported by the kernel"
return 0
fi
# special case if this is not the default huge page size
if [ "${requested_hpgsz}" -ne "${default_hpgsz}" ]; then
MNT="${MNT}-${requested_hpgsz}"
MNTOPTS="pagesize=${requested_hpgsz}K"
fi
if [ ! -e "${MNT}" ]; then
mkdir "${MNT}"
if [ $? -ne 0 ]; then
echo "Could not create directory ${MNT}!" >&2
return 1
fi
fi
mount -thugetlbfs hugetlbfs "${MNT}" -o "${MNTOPTS}"
return $?
}
#
# The DPDK library will use the first mounted instance it finds for a given
# page size. so if there is already one for a given size there is no need to
# create another for the same huge page size.
#
mount_hugetlbfs() {
if [ ! -r /etc/dpdk/dpdk.conf ]; then
return 1
fi
. /etc/dpdk/dpdk.conf
# if a page size is requested, there has to be a mountpoint for that size
if [ -n "${NR_2M_PAGES}" -a -z "$(get_hugetlbfs_mountpoint '2M')" ]; then
_mount_hugetlbfs 2M
fi
if [ -n "${NR_1G_PAGES}" -a -z "$(get_hugetlbfs_mountpoint '1G')" ]; then
_mount_hugetlbfs 1G
fi
}
_setup_hugepages() {
MMDIR="/sys/kernel/mm/hugepages/${1}"
PAGES=${2}
if [ "$PAGES" != "" ]; then
if [ "$PAGES" -gt 0 ]; then
if [ -d "$MMDIR" -a -w "$MMDIR/nr_hugepages" ]; then
# increases the chance to allocate enough huge pages
# configurable, since it comes at a perf penality
if [ "$DROPCACHE_BEFORE_HP_ALLOC" = "1" ]; then
echo 3 > /proc/sys/vm/drop_caches
fi
echo "$PAGES" > "$MMDIR/nr_hugepages"
GOTPAGES=$(cat "$MMDIR/nr_hugepages")
if [ "$GOTPAGES" -lt "$PAGES" ]; then
echo "WARNING: could not allocate $PAGES at " \
"$MMDIR/nr_hugepages (only got $GOTPAGES)."
fi
else
echo "WARNING: $MMDIR/nr_hugepages not found/writable"
fi
fi
fi
}
#
# Reserve a certain amount of hugepages (defined in /etc/dpdk.conf)
#
setup_hugepages() {
if [ ! -r /etc/dpdk/dpdk.conf ]; then
return 1
fi
. /etc/dpdk/dpdk.conf
_setup_hugepages "hugepages-2048kB" "$NR_2M_PAGES"
_setup_hugepages "hugepages-1048576kB" "$NR_1G_PAGES"
# dpdk uses 2*#hugepages mappings, increase for huge systems LP #1507921
if [ -d /sys/kernel/mm/hugepages ]; then
max_map_count=$(awk -v pad=65530 '{tot+=$1}END{print tot*2+pad}' \
/sys/kernel/mm/hugepages/hugepages-*/nr_hugepages)
sysctl -q vm.max_map_count="${max_map_count:-65530}"
fi
return 0
}
#
# Allow NICs to be automatically bound to DPDK compatible drivers on boot.
#
bind_interfaces() {
if [ ! -r "$DPDK_INTERF" ]; then
return 0
fi
grep -v '^[ \t]*#' "$DPDK_INTERF" | while read BUS ID MOD; do
if [ "$BUS" = "" -o "$ID" = "" -o "$MOD" = "" ]; then
echo "WARNING: incomplete spec in $DPDK_INTERF" \
" - BUS '$BUS' ID '$ID' MOD '$MOD'"
continue
fi
if [ "$BUS" != "pci" ]; then
echo "WARNING: incompatible bus '$BUS' in $DPDK_INTERF"
continue
fi
SYSFSPATH="/sys/bus/$BUS/devices/$ID"
if [ ! -e "$SYSFSPATH" ]; then
echo "WARNING: invalid pci ID '$ID' in $DPDK_INTERF" \
" - '$SYSFSPATH' does not exist"
continue
fi
if [ -L "$SYSFSPATH/driver" ]; then
CUR=$(readlink "$SYSFSPATH/driver")
CUR=$(basename "$CUR")
else
# device existing, but currently unregistered
CUR=""
fi
if [ "$MOD" != "$CUR" ]; then
modprobe -q "$MOD" || true
# cloud img have no linux-image-extra initially (uip_pci_generic)
# so check if the module is available (loadable/built in)
if [ -e "/sys/bus/pci/drivers/${MOD}" ]; then
echo "Reassigning pci:$ID to $MOD"
$DPDK_BIND -b "$MOD" "$ID"
else
echo "Warning: failed assigning pci:$ID," \
" module $MOD not available"
fi
else
echo "pci:$ID already assigned to $MOD"
fi
done
}
case "$1" in
start)
mount_hugetlbfs
setup_hugepages
bind_interfaces
;;
stop)
;;
reload|force-reload)
setup_hugepages
bind_interfaces
;;
status)
$DPDK_BIND --status
;;
*)
echo "Usage: $0 {start|stop|reload|force-reload|status}"
exit 1
;;
esac

View File

@ -1,3 +0,0 @@
export RTE_TARGET="$(uname -m)-default-linuxapp-gcc"
export RTE_SDK="/usr/share/dpdk/"
export RTE_INCLUDE="/usr/include/dpdk"

View File

@ -1,54 +0,0 @@
#
# The number of 2M hugepages to reserve on system boot
#
# Default is 0
# To e.g. let it reserve 64x 2M Hugepages set:
# NR_2M_PAGES=64
#
# The number of 1G hugepages to reserve on system boot
#
# Default is 0
# To e.g. let it reserve 2x 1G Hugepages set:
# NR_1G_PAGES=2
#
# Dropping slab and pagecache can help to successfully allocate hugepages,
# especially later in the lifecycle of a system.
# This comes at the cost of loosing all slab and pagecache on (re)start
# of the dpdk service - therefore the default is off.
#
# Default is 0
# Set to 1 to enable it
#DROPCACHE_BEFORE_HP_ALLOC=0
# The DPDK library will use the first mounted hugetlbfs.
# The init scripts try to ensure there is at least one default hugetlbfs
# mountpoint on start.
# If you have multiple hugetlbfs mountpoints for a complex (e.g. specific numa
# policies) setup it should be controlled by the admin instead of this init
# script. In that case specific mountpoints can be provided as parameters to
# the DPDK library.
# Hardware may support other granularities of hugepages (like 4M). But the
# larger the hugepages the earlier those should be allocated.
# Note: the dpdk init scripts will report warnings, but not fail if they could
# not allocate the requested amount of hugepages.
# The more or the larger the hugepages to be allocated are, the more it is
# recommended to do the reservation as kernel commandline arguments.
# To do so edit /etc/default/grub: GRUB_CMDLINE_LINUX_DEFAULT
# and add [hugepagesz=xx] hugepages=yy ...
#
# Kernel commandline config:
# hugepagesz sets the size for the next hugepages reservation (default 2M)
# hugepages reserves the given number of hugepages of the size set before
#
# After modifying /etc/default/grub, the command "update-grub" has to be
# run in order to re-generate the grub config files. The new values will
# be used after next reboot.
#
# example:
# GRUB_CMDLINE_LINUX_DEFAULT="... hugepages=16 hugepagesz=1G hugepages=2"
#
# If the system supports it, this will reserve 16x 2M pages and 2x 1G pages.
#

View File

@ -1,5 +0,0 @@
etc/dpdk
lib/dpdk
sbin
usr/bin
usr/lib/dpdk

View File

@ -1,57 +0,0 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: dpdk
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: S
# Default-Stop: 0 1 6
# Short-Description: start dpdk runtime environment
### END INIT INFO
set -e
PATH="/sbin:/bin:/usr/bin"
[ -d /lib/dpdk ] || exit 0
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions
error=0
case "$1" in
start)
log_action_begin_msg "Starting DPDK environment" "dpdk"
output=$(/lib/dpdk/dpdk-init start 2>&1) || error="$?"
if [ ! -z "$output" ]; then
echo "$output" | while read line; do
log_action_cont_msg "$line"
done
fi
log_action_end_msg $error
exit $error
;;
stop)
;;
restart|force-reload)
;;
status)
output=$(/lib/dpdk/dpdk-init --status 2>&1) || error="$?"
if [ ! -z "$output" ]; then
echo "$output" | while read line; do
log_action_cont_msg "$line"
done
fi
log_action_end_msg $error
exit $error
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload|status}"
exit 1
;;
esac
exit 0

View File

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

View File

@ -1,13 +0,0 @@
#
# <bus> Currently only "pci" is supported
# <id> Device ID on the specified bus
# <driver> Driver to bind against (vfio-pci or uio_pci_generic)
#
# 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.
#
# <bus> <id> <driver>
# pci 0000:04:00.0 vfio-pci
# pci 0000:04:00.1 uio_pci_generic

View File

@ -1,12 +0,0 @@
[Unit]
Description=DPDK runtime environment
DefaultDependencies=false
After=network-pre.target local-fs.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/lib/dpdk/dpdk-init start
[Install]
WantedBy=multi-user.target

View File

@ -1 +0,0 @@
usr/include

View File

@ -1 +0,0 @@
usr/lib

View File

@ -1,580 +0,0 @@
libdpdk.so.0 libdpdk0 #MINVER#
* Build-Depends-Package: libdpdk-dev
DPDK_2.0@DPDK_2.0 2.2
DPDK_2.1@DPDK_2.1 2.2
DPDK_2.2@DPDK_2.2 2.2
__rte_panic@DPDK_2.0 2.2
_rte_eth_dev_callback_process@DPDK_2.2 2.2
cirbuf_add_buf_head@DPDK_2.0 2.2
cirbuf_add_buf_tail@DPDK_2.0 2.2
cirbuf_add_head@DPDK_2.0 2.2
cirbuf_add_head_safe@DPDK_2.0 2.2
cirbuf_add_tail@DPDK_2.0 2.2
cirbuf_add_tail_safe@DPDK_2.0 2.2
cirbuf_align_left@DPDK_2.0 2.2
cirbuf_align_right@DPDK_2.0 2.2
cirbuf_del_buf_head@DPDK_2.0 2.2
cirbuf_del_buf_tail@DPDK_2.0 2.2
cirbuf_del_head@DPDK_2.0 2.2
cirbuf_del_head_safe@DPDK_2.0 2.2
cirbuf_del_tail@DPDK_2.0 2.2
cirbuf_del_tail_safe@DPDK_2.0 2.2
cirbuf_get_buf_head@DPDK_2.0 2.2
cirbuf_get_buf_tail@DPDK_2.0 2.2
cirbuf_get_head@DPDK_2.0 2.2
cirbuf_get_tail@DPDK_2.0 2.2
cirbuf_init@DPDK_2.0 2.2
cmdline_complete@DPDK_2.0 2.2
cmdline_complete_get_elt_string@DPDK_2.0 2.2
cmdline_complete_get_nb_string@DPDK_2.0 2.2
cmdline_file_new@DPDK_2.0 2.2
cmdline_free@DPDK_2.0 2.2
cmdline_get_help_etheraddr@DPDK_2.0 2.2
cmdline_get_help_ipaddr@DPDK_2.0 2.2
cmdline_get_help_num@DPDK_2.0 2.2
cmdline_get_help_portlist@DPDK_2.0 2.2
cmdline_get_help_string@DPDK_2.0 2.2
cmdline_in@DPDK_2.0 2.2
cmdline_interact@DPDK_2.0 2.2
cmdline_isendoftoken@DPDK_2.0 2.2
cmdline_new@DPDK_2.0 2.2
cmdline_parse@DPDK_2.0 2.2
cmdline_parse_etheraddr@DPDK_2.0 2.2
cmdline_parse_ipaddr@DPDK_2.0 2.2
cmdline_parse_num@DPDK_2.0 2.2
cmdline_parse_portlist@DPDK_2.0 2.2
cmdline_parse_string@DPDK_2.0 2.2
cmdline_poll@DPDK_2.1 2.2
cmdline_printf@DPDK_2.0 2.2
cmdline_quit@DPDK_2.0 2.2
cmdline_set_prompt@DPDK_2.0 2.2
cmdline_stdin_exit@DPDK_2.0 2.2
cmdline_stdin_new@DPDK_2.0 2.2
cmdline_token_etheraddr_ops@DPDK_2.0 2.2
cmdline_token_ipaddr_ops@DPDK_2.0 2.2
cmdline_token_num_ops@DPDK_2.0 2.2
cmdline_token_portlist_ops@DPDK_2.0 2.2
cmdline_token_string_ops@DPDK_2.0 2.2
cmdline_write_char@DPDK_2.0 2.2
devargs_list@DPDK_2.0 2.2
eal_parse_sysfs_value@DPDK_2.0 2.2
eal_timer_source@DPDK_2.0 2.2
eth_dev_null_create@DPDK_2.2 2.2
lcore_config@DPDK_2.0 2.2
pci_device_list@DPDK_2.0 2.2
pci_driver_list@DPDK_2.0 2.2
per_lcore__lcore_id@DPDK_2.0 2.2
per_lcore__rte_errno@DPDK_2.0 2.2
rdline_add_history@DPDK_2.0 2.2
rdline_char_in@DPDK_2.0 2.2
rdline_clear_history@DPDK_2.0 2.2
rdline_get_buffer@DPDK_2.0 2.2
rdline_get_history_item@DPDK_2.0 2.2
rdline_init@DPDK_2.0 2.2
rdline_newline@DPDK_2.0 2.2
rdline_quit@DPDK_2.0 2.2
rdline_redisplay@DPDK_2.0 2.2
rdline_reset@DPDK_2.0 2.2
rdline_restart@DPDK_2.0 2.2
rdline_stop@DPDK_2.0 2.2
rte_acl_add_rules@DPDK_2.0 2.2
rte_acl_build@DPDK_2.0 2.2
rte_acl_classify@DPDK_2.0 2.2
rte_acl_classify_alg@DPDK_2.0 2.2
rte_acl_classify_scalar@DPDK_2.0 2.2
rte_acl_create@DPDK_2.0 2.2
rte_acl_dump@DPDK_2.0 2.2
rte_acl_find_existing@DPDK_2.0 2.2
rte_acl_free@DPDK_2.0 2.2
rte_acl_list_dump@DPDK_2.0 2.2
rte_acl_reset@DPDK_2.0 2.2
rte_acl_reset_rules@DPDK_2.0 2.2
rte_acl_set_ctx_classify@DPDK_2.0 2.2
rte_approx@DPDK_2.0 2.2
rte_calloc@DPDK_2.0 2.2
rte_calloc_socket@DPDK_2.0 2.2
rte_cfgfile_close@DPDK_2.0 2.2
rte_cfgfile_get_entry@DPDK_2.0 2.2
rte_cfgfile_has_entry@DPDK_2.0 2.2
rte_cfgfile_has_section@DPDK_2.0 2.2
rte_cfgfile_load@DPDK_2.0 2.2
rte_cfgfile_num_sections@DPDK_2.0 2.2
rte_cfgfile_section_entries@DPDK_2.0 2.2
rte_cfgfile_section_num_entries@DPDK_2.0 2.2
rte_cfgfile_sections@DPDK_2.0 2.2
rte_cpu_check_supported@DPDK_2.0 2.2
rte_cryptodev_callback_register@DPDK_2.2 2.2
rte_cryptodev_callback_unregister@DPDK_2.2 2.2
rte_cryptodev_close@DPDK_2.2 2.2
rte_cryptodev_configure@DPDK_2.2 2.2
rte_cryptodev_count@DPDK_2.2 2.2
rte_cryptodev_count_devtype@DPDK_2.2 2.2
rte_cryptodev_create_vdev@DPDK_2.2 2.2
rte_cryptodev_get_dev_id@DPDK_2.2 2.2
rte_cryptodev_info_get@DPDK_2.2 2.2
rte_cryptodev_pmd_allocate@DPDK_2.2 2.2
rte_cryptodev_pmd_callback_process@DPDK_2.2 2.2
rte_cryptodev_pmd_driver_register@DPDK_2.2 2.2
rte_cryptodev_pmd_release_device@DPDK_2.2 2.2
rte_cryptodev_pmd_virtual_dev_init@DPDK_2.2 2.2
rte_cryptodev_queue_pair_count@DPDK_2.2 2.2
rte_cryptodev_queue_pair_setup@DPDK_2.2 2.2
rte_cryptodev_queue_pair_start@DPDK_2.2 2.2
rte_cryptodev_queue_pair_stop@DPDK_2.2 2.2
rte_cryptodev_session_create@DPDK_2.2 2.2
rte_cryptodev_session_free@DPDK_2.2 2.2
rte_cryptodev_socket_id@DPDK_2.2 2.2
rte_cryptodev_start@DPDK_2.2 2.2
rte_cryptodev_stats_get@DPDK_2.2 2.2
rte_cryptodev_stats_reset@DPDK_2.2 2.2
rte_cryptodev_stop@DPDK_2.2 2.2
rte_cryptodevs@DPDK_2.2 2.2
rte_ctrlmbuf_init@DPDK_2.0 2.2
rte_cycles_vmware_tsc_map@DPDK_2.0 2.2
rte_delay_us@DPDK_2.0 2.2
rte_distributor_clear_returns@DPDK_2.0 2.2
rte_distributor_create@DPDK_2.0 2.2
rte_distributor_flush@DPDK_2.0 2.2
rte_distributor_get_pkt@DPDK_2.0 2.2
rte_distributor_poll_pkt@DPDK_2.0 2.2
rte_distributor_process@DPDK_2.0 2.2
rte_distributor_request_pkt@DPDK_2.0 2.2
rte_distributor_return_pkt@DPDK_2.0 2.2
rte_distributor_returned_pkts@DPDK_2.0 2.2
rte_dom0_mempool_create@DPDK_2.0 2.2
rte_dump_physmem_layout@DPDK_2.0 2.2
rte_dump_registers@DPDK_2.0 2.2
rte_dump_stack@DPDK_2.0 2.2
rte_dump_tailq@DPDK_2.0 2.2
rte_eal_alarm_cancel@DPDK_2.0 2.2
rte_eal_alarm_set@DPDK_2.0 2.2
rte_eal_dev_init@DPDK_2.0 2.2
rte_eal_devargs_add@DPDK_2.0 2.2
rte_eal_devargs_dump@DPDK_2.0 2.2
rte_eal_devargs_type_count@DPDK_2.0 2.2
rte_eal_driver_register@DPDK_2.0 2.2
rte_eal_driver_unregister@DPDK_2.0 2.2
rte_eal_get_configuration@DPDK_2.0 2.2
rte_eal_get_lcore_state@DPDK_2.0 2.2
rte_eal_get_physmem_layout@DPDK_2.0 2.2
rte_eal_get_physmem_size@DPDK_2.0 2.2
rte_eal_has_hugepages@DPDK_2.0 2.2
rte_eal_init@DPDK_2.0 2.2
rte_eal_iopl_init@DPDK_2.0 2.2
rte_eal_lcore_role@DPDK_2.0 2.2
rte_eal_mp_remote_launch@DPDK_2.0 2.2
rte_eal_mp_wait_lcore@DPDK_2.0 2.2
rte_eal_parse_devargs_str@DPDK_2.0 2.2
rte_eal_pci_detach@DPDK_2.1 2.2
rte_eal_pci_dump@DPDK_2.0 2.2
rte_eal_pci_probe@DPDK_2.0 2.2
rte_eal_pci_probe_one@DPDK_2.0 2.2
rte_eal_pci_read_config@DPDK_2.1 2.2
rte_eal_pci_register@DPDK_2.0 2.2
rte_eal_pci_scan@DPDK_2.0 2.2
rte_eal_pci_unregister@DPDK_2.0 2.2
rte_eal_pci_write_config@DPDK_2.1 2.2
rte_eal_process_type@DPDK_2.0 2.2
rte_eal_remote_launch@DPDK_2.0 2.2
rte_eal_tailq_lookup@DPDK_2.0 2.2
rte_eal_tailq_register@DPDK_2.0 2.2
rte_eal_vdev_init@DPDK_2.0 2.2
rte_eal_vdev_uninit@DPDK_2.0 2.2
rte_eal_wait_lcore@DPDK_2.0 2.2
rte_epoll_ctl@DPDK_2.1 2.2
rte_epoll_wait@DPDK_2.1 2.2
rte_eth_add_rx_callback@DPDK_2.2 2.2
rte_eth_add_tx_callback@DPDK_2.2 2.2
rte_eth_allmulticast_disable@DPDK_2.2 2.2
rte_eth_allmulticast_enable@DPDK_2.2 2.2
rte_eth_allmulticast_get@DPDK_2.2 2.2
rte_eth_bond_8023ad_conf_get@DPDK_2.0 2.2
rte_eth_bond_8023ad_setup@DPDK_2.0 2.2
rte_eth_bond_active_slaves_get@DPDK_2.0 2.2
rte_eth_bond_create@DPDK_2.0 2.2
rte_eth_bond_free@DPDK_2.1 2.2
rte_eth_bond_link_monitoring_set@DPDK_2.0 2.2
rte_eth_bond_mac_address_reset@DPDK_2.0 2.2
rte_eth_bond_mac_address_set@DPDK_2.0 2.2
rte_eth_bond_mode_get@DPDK_2.0 2.2
rte_eth_bond_mode_set@DPDK_2.0 2.2
rte_eth_bond_primary_get@DPDK_2.0 2.2
rte_eth_bond_primary_set@DPDK_2.0 2.2
rte_eth_bond_slave_add@DPDK_2.0 2.2
rte_eth_bond_slave_remove@DPDK_2.0 2.2
rte_eth_bond_slaves_get@DPDK_2.0 2.2
rte_eth_bond_xmit_policy_get@DPDK_2.0 2.2
rte_eth_bond_xmit_policy_set@DPDK_2.0 2.2
rte_eth_copy_pci_info@DPDK_2.2 2.2
rte_eth_dev_allocate@DPDK_2.2 2.2
rte_eth_dev_allocated@DPDK_2.2 2.2
rte_eth_dev_attach@DPDK_2.2 2.2
rte_eth_dev_callback_register@DPDK_2.2 2.2
rte_eth_dev_callback_unregister@DPDK_2.2 2.2
rte_eth_dev_close@DPDK_2.2 2.2
rte_eth_dev_configure@DPDK_2.2 2.2
rte_eth_dev_count@DPDK_2.2 2.2
rte_eth_dev_default_mac_addr_set@DPDK_2.2 2.2
rte_eth_dev_detach@DPDK_2.2 2.2
rte_eth_dev_filter_ctrl@DPDK_2.2 2.2
rte_eth_dev_filter_supported@DPDK_2.2 2.2
rte_eth_dev_flow_ctrl_get@DPDK_2.2 2.2
rte_eth_dev_flow_ctrl_set@DPDK_2.2 2.2
rte_eth_dev_get_dcb_info@DPDK_2.2 2.2
rte_eth_dev_get_eeprom@DPDK_2.2 2.2
rte_eth_dev_get_eeprom_length@DPDK_2.2 2.2
rte_eth_dev_get_mtu@DPDK_2.2 2.2
rte_eth_dev_get_reg_info@DPDK_2.2 2.2
rte_eth_dev_get_reg_length@DPDK_2.2 2.2
rte_eth_dev_get_vlan_offload@DPDK_2.2 2.2
rte_eth_dev_info_get@DPDK_2.2 2.2
rte_eth_dev_is_valid_port@DPDK_2.2 2.2
rte_eth_dev_mac_addr_add@DPDK_2.2 2.2
rte_eth_dev_mac_addr_remove@DPDK_2.2 2.2
rte_eth_dev_priority_flow_ctrl_set@DPDK_2.2 2.2
rte_eth_dev_release_port@DPDK_2.2 2.2
rte_eth_dev_rss_hash_conf_get@DPDK_2.2 2.2
rte_eth_dev_rss_hash_update@DPDK_2.2 2.2
rte_eth_dev_rss_reta_query@DPDK_2.2 2.2
rte_eth_dev_rss_reta_update@DPDK_2.2 2.2
rte_eth_dev_rx_intr_ctl@DPDK_2.2 2.2
rte_eth_dev_rx_intr_ctl_q@DPDK_2.2 2.2
rte_eth_dev_rx_intr_disable@DPDK_2.2 2.2
rte_eth_dev_rx_intr_enable@DPDK_2.2 2.2
rte_eth_dev_rx_queue_start@DPDK_2.2 2.2
rte_eth_dev_rx_queue_stop@DPDK_2.2 2.2
rte_eth_dev_set_eeprom@DPDK_2.2 2.2
rte_eth_dev_set_link_down@DPDK_2.2 2.2
rte_eth_dev_set_link_up@DPDK_2.2 2.2
rte_eth_dev_set_mc_addr_list@DPDK_2.2 2.2
rte_eth_dev_set_mtu@DPDK_2.2 2.2
rte_eth_dev_set_rx_queue_stats_mapping@DPDK_2.2 2.2
rte_eth_dev_set_tx_queue_stats_mapping@DPDK_2.2 2.2
rte_eth_dev_set_vf_rx@DPDK_2.2 2.2
rte_eth_dev_set_vf_rxmode@DPDK_2.2 2.2
rte_eth_dev_set_vf_tx@DPDK_2.2 2.2
rte_eth_dev_set_vf_vlan_filter@DPDK_2.2 2.2
rte_eth_dev_set_vlan_ether_type@DPDK_2.2 2.2
rte_eth_dev_set_vlan_offload@DPDK_2.2 2.2
rte_eth_dev_set_vlan_pvid@DPDK_2.2 2.2
rte_eth_dev_set_vlan_strip_on_queue@DPDK_2.2 2.2
rte_eth_dev_socket_id@DPDK_2.2 2.2
rte_eth_dev_start@DPDK_2.2 2.2
rte_eth_dev_stop@DPDK_2.2 2.2
rte_eth_dev_tx_queue_start@DPDK_2.2 2.2
rte_eth_dev_tx_queue_stop@DPDK_2.2 2.2
rte_eth_dev_uc_all_hash_table_set@DPDK_2.2 2.2
rte_eth_dev_uc_hash_table_set@DPDK_2.2 2.2
rte_eth_dev_udp_tunnel_add@DPDK_2.2 2.2
rte_eth_dev_udp_tunnel_delete@DPDK_2.2 2.2
rte_eth_dev_vlan_filter@DPDK_2.2 2.2
rte_eth_devices@DPDK_2.2 2.2
rte_eth_dma_zone_reserve@DPDK_2.2 2.2
rte_eth_driver_register@DPDK_2.2 2.2
rte_eth_from_ring@DPDK_2.2 2.2
rte_eth_from_rings@DPDK_2.0 2.2
rte_eth_led_off@DPDK_2.2 2.2
rte_eth_led_on@DPDK_2.2 2.2
rte_eth_link_get@DPDK_2.2 2.2
rte_eth_link_get_nowait@DPDK_2.2 2.2
rte_eth_macaddr_get@DPDK_2.2 2.2
rte_eth_mirror_rule_reset@DPDK_2.2 2.2
rte_eth_mirror_rule_set@DPDK_2.2 2.2
rte_eth_promiscuous_disable@DPDK_2.2 2.2
rte_eth_promiscuous_enable@DPDK_2.2 2.2
rte_eth_promiscuous_get@DPDK_2.2 2.2
rte_eth_remove_rx_callback@DPDK_2.2 2.2
rte_eth_remove_tx_callback@DPDK_2.2 2.2
rte_eth_rx_queue_info_get@DPDK_2.2 2.2
rte_eth_rx_queue_setup@DPDK_2.2 2.2
rte_eth_set_queue_rate_limit@DPDK_2.2 2.2
rte_eth_set_vf_rate_limit@DPDK_2.2 2.2
rte_eth_stats_get@DPDK_2.2 2.2
rte_eth_stats_reset@DPDK_2.2 2.2
rte_eth_timesync_adjust_time@DPDK_2.2 2.2
rte_eth_timesync_disable@DPDK_2.2 2.2
rte_eth_timesync_enable@DPDK_2.2 2.2
rte_eth_timesync_read_rx_timestamp@DPDK_2.2 2.2
rte_eth_timesync_read_time@DPDK_2.2 2.2
rte_eth_timesync_read_tx_timestamp@DPDK_2.2 2.2
rte_eth_timesync_write_time@DPDK_2.2 2.2
rte_eth_tx_queue_info_get@DPDK_2.2 2.2
rte_eth_tx_queue_setup@DPDK_2.2 2.2
rte_eth_xstats_get@DPDK_2.2 2.2
rte_eth_xstats_reset@DPDK_2.2 2.2
rte_exit@DPDK_2.0 2.2
rte_fbk_hash_create@DPDK_2.0 2.2
rte_fbk_hash_find_existing@DPDK_2.0 2.2
rte_fbk_hash_free@DPDK_2.0 2.2
rte_free@DPDK_2.0 2.2
rte_get_rx_ol_flag_name@DPDK_2.0 2.2
rte_get_tsc_hz@DPDK_2.0 2.2
rte_get_tx_ol_flag_name@DPDK_2.0 2.2
rte_hash_add_key@DPDK_2.0 2.2
rte_hash_add_key_data@DPDK_2.1 2.2
rte_hash_add_key_with_hash@DPDK_2.0 2.2
rte_hash_add_key_with_hash_data@DPDK_2.1 2.2
rte_hash_create@DPDK_2.0 2.2
rte_hash_del_key@DPDK_2.0 2.2
rte_hash_del_key_with_hash@DPDK_2.0 2.2
rte_hash_find_existing@DPDK_2.0 2.2
rte_hash_free@DPDK_2.0 2.2
rte_hash_hash@DPDK_2.0 2.2
rte_hash_iterate@DPDK_2.1 2.2
rte_hash_lookup@DPDK_2.0 2.2
rte_hash_lookup_bulk@DPDK_2.0 2.2
rte_hash_lookup_bulk_data@DPDK_2.1 2.2
rte_hash_lookup_data@DPDK_2.1 2.2
rte_hash_lookup_with_hash@DPDK_2.0 2.2
rte_hash_lookup_with_hash_data@DPDK_2.1 2.2
rte_hash_reset@DPDK_2.1 2.2
rte_hash_set_cmp_func@DPDK_2.2 2.2
rte_hexdump@DPDK_2.0 2.2
rte_intr_allow_others@DPDK_2.1 2.2
rte_intr_callback_register@DPDK_2.0 2.2
rte_intr_callback_unregister@DPDK_2.0 2.2
rte_intr_cap_multiple@DPDK_2.2 2.2
rte_intr_disable@DPDK_2.0 2.2
rte_intr_dp_is_en@DPDK_2.1 2.2
rte_intr_efd_disable@DPDK_2.1 2.2
rte_intr_efd_enable@DPDK_2.1 2.2
rte_intr_enable@DPDK_2.0 2.2
rte_intr_rx_ctl@DPDK_2.1 2.2
rte_intr_tls_epfd@DPDK_2.1 2.2
rte_ip_frag_free_death_row@DPDK_2.0 2.2
rte_ip_frag_table_create@DPDK_2.0 2.2
rte_ip_frag_table_statistics_dump@DPDK_2.0 2.2
rte_ipv4_frag_reassemble_packet@DPDK_2.0 2.2
rte_ipv4_fragment_packet@DPDK_2.0 2.2
rte_ipv6_frag_reassemble_packet@DPDK_2.0 2.2
rte_ipv6_fragment_packet@DPDK_2.0 2.2
rte_jobstats_context_finish@DPDK_2.0 2.2
rte_jobstats_context_init@DPDK_2.0 2.2
rte_jobstats_context_reset@DPDK_2.0 2.2
rte_jobstats_context_start@DPDK_2.0 2.2
rte_jobstats_finish@DPDK_2.0 2.2
rte_jobstats_init@DPDK_2.0 2.2
rte_jobstats_reset@DPDK_2.0 2.2
rte_jobstats_set_max@DPDK_2.0 2.2
rte_jobstats_set_min@DPDK_2.0 2.2
rte_jobstats_set_period@DPDK_2.0 2.2
rte_jobstats_set_target@DPDK_2.0 2.2
rte_jobstats_set_update_period_function@DPDK_2.0 2.2
rte_jobstats_start@DPDK_2.0 2.2
rte_keepalive_create@DPDK_2.2 2.2
rte_keepalive_dispatch_pings@DPDK_2.2 2.2
rte_keepalive_register_core@DPDK_2.2 2.2
rte_kni_alloc@DPDK_2.0 2.2
rte_kni_close@DPDK_2.0 2.2
rte_kni_get@DPDK_2.0 2.2
rte_kni_get_name@DPDK_2.0 2.2
rte_kni_handle_request@DPDK_2.0 2.2
rte_kni_init@DPDK_2.0 2.2
rte_kni_register_handlers@DPDK_2.0 2.2
rte_kni_release@DPDK_2.0 2.2
rte_kni_rx_burst@DPDK_2.0 2.2
rte_kni_tx_burst@DPDK_2.0 2.2
rte_kni_unregister_handlers@DPDK_2.0 2.2
rte_kvargs_count@DPDK_2.0 2.2
rte_kvargs_free@DPDK_2.0 2.2
rte_kvargs_parse@DPDK_2.0 2.2
rte_kvargs_process@DPDK_2.0 2.2
rte_log@DPDK_2.0 2.2
rte_log_add_in_history@DPDK_2.0 2.2
rte_log_cur_msg_loglevel@DPDK_2.0 2.2
rte_log_cur_msg_logtype@DPDK_2.0 2.2
rte_log_dump_history@DPDK_2.0 2.2
rte_log_set_history@DPDK_2.0 2.2
rte_logs@DPDK_2.0 2.2
rte_lpm6_add@DPDK_2.0 2.2
rte_lpm6_create@DPDK_2.0 2.2
rte_lpm6_delete@DPDK_2.0 2.2
rte_lpm6_delete_all@DPDK_2.0 2.2
rte_lpm6_delete_bulk_func@DPDK_2.0 2.2
rte_lpm6_find_existing@DPDK_2.0 2.2
rte_lpm6_free@DPDK_2.0 2.2
rte_lpm6_is_rule_present@DPDK_2.0 2.2
rte_lpm6_lookup@DPDK_2.0 2.2
rte_lpm6_lookup_bulk_func@DPDK_2.0 2.2
rte_lpm_add@DPDK_2.0 2.2
rte_lpm_create@DPDK_2.0 2.2
rte_lpm_delete@DPDK_2.0 2.2
rte_lpm_delete_all@DPDK_2.0 2.2
rte_lpm_find_existing@DPDK_2.0 2.2
rte_lpm_free@DPDK_2.0 2.2
rte_lpm_is_rule_present@DPDK_2.0 2.2
rte_malloc@DPDK_2.0 2.2
rte_malloc_dump_stats@DPDK_2.0 2.2
rte_malloc_get_socket_stats@DPDK_2.0 2.2
rte_malloc_set_limit@DPDK_2.0 2.2
rte_malloc_socket@DPDK_2.0 2.2
rte_malloc_validate@DPDK_2.0 2.2
rte_malloc_virt2phy@DPDK_2.0 2.2
rte_mbuf_sanity_check@DPDK_2.0 2.2
rte_mem_lock_page@DPDK_2.0 2.2
rte_mem_virt2phy@DPDK_2.0 2.2
rte_memdump@DPDK_2.0 2.2
rte_memory_get_nchannel@DPDK_2.0 2.2
rte_memory_get_nrank@DPDK_2.0 2.2
rte_mempool_audit@DPDK_2.0 2.2
rte_mempool_calc_obj_size@DPDK_2.0 2.2
rte_mempool_count@DPDK_2.0 2.2
rte_mempool_create@DPDK_2.0 2.2
rte_mempool_dump@DPDK_2.0 2.2
rte_mempool_gntalloc_create@DPDK_2.0 2.2
rte_mempool_list_dump@DPDK_2.0 2.2
rte_mempool_lookup@DPDK_2.0 2.2
rte_mempool_obj_iter@DPDK_2.0 2.2
rte_mempool_walk@DPDK_2.0 2.2
rte_mempool_xmem_create@DPDK_2.0 2.2
rte_mempool_xmem_size@DPDK_2.0 2.2
rte_mempool_xmem_usage@DPDK_2.0 2.2
rte_memzone_dump@DPDK_2.0 2.2
rte_memzone_free@DPDK_2.1 2.2
rte_memzone_lookup@DPDK_2.0 2.2
rte_memzone_reserve@DPDK_2.0 2.2
rte_memzone_reserve_aligned@DPDK_2.0 2.2
rte_memzone_reserve_bounded@DPDK_2.0 2.2
rte_memzone_walk@DPDK_2.0 2.2
rte_meter_srtcm_config@DPDK_2.0 2.2
rte_meter_trtcm_config@DPDK_2.0 2.2
rte_openlog_stream@DPDK_2.0 2.2
rte_pipeline_check@DPDK_2.0 2.2
rte_pipeline_create@DPDK_2.0 2.2
rte_pipeline_flush@DPDK_2.0 2.2
rte_pipeline_free@DPDK_2.0 2.2
rte_pipeline_port_in_connect_to_table@DPDK_2.0 2.2
rte_pipeline_port_in_create@DPDK_2.0 2.2
rte_pipeline_port_in_disable@DPDK_2.0 2.2
rte_pipeline_port_in_enable@DPDK_2.0 2.2
rte_pipeline_port_in_stats_read@DPDK_2.1 2.2
rte_pipeline_port_out_create@DPDK_2.0 2.2
rte_pipeline_port_out_packet_insert@DPDK_2.0 2.2
rte_pipeline_port_out_stats_read@DPDK_2.1 2.2
rte_pipeline_run@DPDK_2.0 2.2
rte_pipeline_table_create@DPDK_2.0 2.2
rte_pipeline_table_default_entry_add@DPDK_2.0 2.2
rte_pipeline_table_default_entry_delete@DPDK_2.0 2.2
rte_pipeline_table_entry_add@DPDK_2.0 2.2
rte_pipeline_table_entry_add_bulk@DPDK_2.2 2.2
rte_pipeline_table_entry_delete@DPDK_2.0 2.2
rte_pipeline_table_entry_delete_bulk@DPDK_2.2 2.2
rte_pipeline_table_stats_read@DPDK_2.1 2.2
rte_pktmbuf_dump@DPDK_2.0 2.2
rte_pktmbuf_init@DPDK_2.0 2.2
rte_pktmbuf_offload_pool_create@DPDK_2.2 2.2
rte_pktmbuf_pool_create@DPDK_2.1 2.2
rte_pktmbuf_pool_init@DPDK_2.0 2.2
rte_pmd_af_packet_devinit@DPDK_2.0 2.2
rte_port_ethdev_reader_ops@DPDK_2.0 2.2
rte_port_ethdev_writer_nodrop_ops@DPDK_2.1 2.2
rte_port_ethdev_writer_ops@DPDK_2.0 2.2
rte_port_ring_multi_reader_ops@DPDK_2.2 2.2
rte_port_ring_multi_writer_nodrop_ops@DPDK_2.2 2.2
rte_port_ring_multi_writer_ops@DPDK_2.2 2.2
rte_port_ring_reader_ipv4_frag_ops@DPDK_2.0 2.2
rte_port_ring_reader_ipv6_frag_ops@DPDK_2.1 2.2
rte_port_ring_reader_ops@DPDK_2.0 2.2
rte_port_ring_writer_ipv4_ras_ops@DPDK_2.0 2.2
rte_port_ring_writer_ipv6_ras_ops@DPDK_2.1 2.2
rte_port_ring_writer_nodrop_ops@DPDK_2.1 2.2
rte_port_ring_writer_ops@DPDK_2.0 2.2
rte_port_sched_reader_ops@DPDK_2.0 2.2
rte_port_sched_writer_ops@DPDK_2.0 2.2
rte_port_sink_ops@DPDK_2.0 2.2
rte_port_source_ops@DPDK_2.0 2.2
rte_power_exit@DPDK_2.0 2.2
rte_power_freq_down@DPDK_2.0 2.2
rte_power_freq_max@DPDK_2.0 2.2
rte_power_freq_min@DPDK_2.0 2.2
rte_power_freq_up@DPDK_2.0 2.2
rte_power_freqs@DPDK_2.0 2.2
rte_power_get_env@DPDK_2.0 2.2
rte_power_get_freq@DPDK_2.0 2.2
rte_power_init@DPDK_2.0 2.2
rte_power_set_env@DPDK_2.0 2.2
rte_power_set_freq@DPDK_2.0 2.2
rte_power_unset_env@DPDK_2.0 2.2
rte_realloc@DPDK_2.0 2.2
rte_red_config_init@DPDK_2.0 2.2
rte_red_log2_1_minus_Wq@DPDK_2.0 2.2
rte_red_pow2_frac_inv@DPDK_2.0 2.2
rte_red_rand_seed@DPDK_2.0 2.2
rte_red_rand_val@DPDK_2.0 2.2
rte_red_rt_data_init@DPDK_2.0 2.2
rte_reorder_create@DPDK_2.0 2.2
rte_reorder_drain@DPDK_2.0 2.2
rte_reorder_find_existing@DPDK_2.0 2.2
rte_reorder_free@DPDK_2.0 2.2
rte_reorder_init@DPDK_2.0 2.2
rte_reorder_insert@DPDK_2.0 2.2
rte_reorder_reset@DPDK_2.0 2.2
rte_ring_create@DPDK_2.0 2.2
rte_ring_dump@DPDK_2.0 2.2
rte_ring_free@DPDK_2.2 2.2
rte_ring_get_memsize@DPDK_2.0 2.2
rte_ring_init@DPDK_2.0 2.2
rte_ring_list_dump@DPDK_2.0 2.2
rte_ring_lookup@DPDK_2.0 2.2
rte_ring_set_water_mark@DPDK_2.0 2.2
rte_sched_pipe_config@DPDK_2.0 2.2
rte_sched_port_config@DPDK_2.0 2.2
rte_sched_port_dequeue@DPDK_2.0 2.2
rte_sched_port_enqueue@DPDK_2.0 2.2
rte_sched_port_free@DPDK_2.0 2.2
rte_sched_port_get_memory_footprint@DPDK_2.0 2.2
rte_sched_port_pkt_read_color@DPDK_2.1 2.2
rte_sched_port_pkt_read_tree_path@DPDK_2.1 2.2
rte_sched_port_pkt_write@DPDK_2.1 2.2
rte_sched_queue_read_stats@DPDK_2.0 2.2
rte_sched_subport_config@DPDK_2.0 2.2
rte_sched_subport_read_stats@DPDK_2.0 2.2
rte_set_application_usage_hook@DPDK_2.0 2.2
rte_set_log_level@DPDK_2.0 2.2
rte_set_log_type@DPDK_2.0 2.2
rte_socket_id@DPDK_2.0 2.2
rte_strerror@DPDK_2.0 2.2
rte_strsplit@DPDK_2.0 2.2
rte_sys_gettid@DPDK_2.0 2.2
rte_table_acl_ops@DPDK_2.0 2.2
rte_table_array_ops@DPDK_2.0 2.2
rte_table_hash_ext_ops@DPDK_2.0 2.2
rte_table_hash_key16_ext_dosig_ops@DPDK_2.2 2.2
rte_table_hash_key16_ext_ops@DPDK_2.0 2.2
rte_table_hash_key16_lru_ops@DPDK_2.0 2.2
rte_table_hash_key32_ext_ops@DPDK_2.0 2.2
rte_table_hash_key32_lru_ops@DPDK_2.0 2.2
rte_table_hash_key8_ext_dosig_ops@DPDK_2.0 2.2
rte_table_hash_key8_ext_ops@DPDK_2.0 2.2
rte_table_hash_key8_lru_dosig_ops@DPDK_2.0 2.2
rte_table_hash_key8_lru_ops@DPDK_2.0 2.2
rte_table_hash_lru_ops@DPDK_2.0 2.2
rte_table_lpm_ipv6_ops@DPDK_2.0 2.2
rte_table_lpm_ops@DPDK_2.0 2.2
rte_table_stub_ops@DPDK_2.0 2.2
rte_thread_get_affinity@DPDK_2.0 2.2
rte_thread_set_affinity@DPDK_2.0 2.2
rte_timer_dump_stats@DPDK_2.0 2.2
rte_timer_init@DPDK_2.0 2.2
rte_timer_manage@DPDK_2.0 2.2
rte_timer_pending@DPDK_2.0 2.2
rte_timer_reset@DPDK_2.0 2.2
rte_timer_reset_sync@DPDK_2.0 2.2
rte_timer_stop@DPDK_2.0 2.2
rte_timer_stop_sync@DPDK_2.0 2.2
rte_timer_subsystem_init@DPDK_2.0 2.2
rte_vhost_dequeue_burst@DPDK_2.0 2.2
rte_vhost_driver_callback_register@DPDK_2.0 2.2
rte_vhost_driver_register@DPDK_2.0 2.2
rte_vhost_driver_session_start@DPDK_2.0 2.2
rte_vhost_driver_unregister@DPDK_2.1 2.2
rte_vhost_enable_guest_notification@DPDK_2.0 2.2
rte_vhost_enqueue_burst@DPDK_2.0 2.2
rte_vhost_feature_disable@DPDK_2.0 2.2
rte_vhost_feature_enable@DPDK_2.0 2.2
rte_vhost_feature_get@DPDK_2.0 2.2
rte_vlog@DPDK_2.0 2.2
rte_zmalloc@DPDK_2.0 2.2
rte_zmalloc_socket@DPDK_2.0 2.2
vt100_init@DPDK_2.0 2.2
vt100_parser@DPDK_2.0 2.2

View File

@ -1,569 +0,0 @@
libdpdk.so.0 libdpdk0 #MINVER#
* Build-Depends-Package: libdpdk-dev
DPDK_2.0@DPDK_2.0 2.2
DPDK_2.1@DPDK_2.1 2.2
DPDK_2.2@DPDK_2.2 2.2
__rte_panic@DPDK_2.0 2.2
_rte_eth_dev_callback_process@DPDK_2.2 2.2
cirbuf_add_buf_head@DPDK_2.0 2.2
cirbuf_add_buf_tail@DPDK_2.0 2.2
cirbuf_add_head@DPDK_2.0 2.2
cirbuf_add_head_safe@DPDK_2.0 2.2
cirbuf_add_tail@DPDK_2.0 2.2
cirbuf_add_tail_safe@DPDK_2.0 2.2
cirbuf_align_left@DPDK_2.0 2.2
cirbuf_align_right@DPDK_2.0 2.2
cirbuf_del_buf_head@DPDK_2.0 2.2
cirbuf_del_buf_tail@DPDK_2.0 2.2
cirbuf_del_head@DPDK_2.0 2.2
cirbuf_del_head_safe@DPDK_2.0 2.2
cirbuf_del_tail@DPDK_2.0 2.2
cirbuf_del_tail_safe@DPDK_2.0 2.2
cirbuf_get_buf_head@DPDK_2.0 2.2
cirbuf_get_buf_tail@DPDK_2.0 2.2
cirbuf_get_head@DPDK_2.0 2.2
cirbuf_get_tail@DPDK_2.0 2.2
cirbuf_init@DPDK_2.0 2.2
cmdline_complete@DPDK_2.0 2.2
cmdline_complete_get_elt_string@DPDK_2.0 2.2
cmdline_complete_get_nb_string@DPDK_2.0 2.2
cmdline_file_new@DPDK_2.0 2.2
cmdline_free@DPDK_2.0 2.2
cmdline_get_help_etheraddr@DPDK_2.0 2.2
cmdline_get_help_ipaddr@DPDK_2.0 2.2
cmdline_get_help_num@DPDK_2.0 2.2
cmdline_get_help_portlist@DPDK_2.0 2.2
cmdline_get_help_string@DPDK_2.0 2.2
cmdline_in@DPDK_2.0 2.2
cmdline_interact@DPDK_2.0 2.2
cmdline_isendoftoken@DPDK_2.0 2.2
cmdline_new@DPDK_2.0 2.2
cmdline_parse@DPDK_2.0 2.2
cmdline_parse_etheraddr@DPDK_2.0 2.2
cmdline_parse_ipaddr@DPDK_2.0 2.2
cmdline_parse_num@DPDK_2.0 2.2
cmdline_parse_portlist@DPDK_2.0 2.2
cmdline_parse_string@DPDK_2.0 2.2
cmdline_poll@DPDK_2.1 2.2
cmdline_printf@DPDK_2.0 2.2
cmdline_quit@DPDK_2.0 2.2
cmdline_set_prompt@DPDK_2.0 2.2
cmdline_stdin_exit@DPDK_2.0 2.2
cmdline_stdin_new@DPDK_2.0 2.2
cmdline_token_etheraddr_ops@DPDK_2.0 2.2
cmdline_token_ipaddr_ops@DPDK_2.0 2.2
cmdline_token_num_ops@DPDK_2.0 2.2
cmdline_token_portlist_ops@DPDK_2.0 2.2
cmdline_token_string_ops@DPDK_2.0 2.2
cmdline_write_char@DPDK_2.0 2.2
devargs_list@DPDK_2.0 2.2
eal_parse_sysfs_value@DPDK_2.0 2.2
eal_timer_source@DPDK_2.0 2.2
eth_dev_null_create@DPDK_2.2 2.2
lcore_config@DPDK_2.0 2.2
pci_device_list@DPDK_2.0 2.2
pci_driver_list@DPDK_2.0 2.2
per_lcore__lcore_id@DPDK_2.0 2.2
per_lcore__rte_errno@DPDK_2.0 2.2
rdline_add_history@DPDK_2.0 2.2
rdline_char_in@DPDK_2.0 2.2
rdline_clear_history@DPDK_2.0 2.2
rdline_get_buffer@DPDK_2.0 2.2
rdline_get_history_item@DPDK_2.0 2.2
rdline_init@DPDK_2.0 2.2
rdline_newline@DPDK_2.0 2.2
rdline_quit@DPDK_2.0 2.2
rdline_redisplay@DPDK_2.0 2.2
rdline_reset@DPDK_2.0 2.2
rdline_restart@DPDK_2.0 2.2
rdline_stop@DPDK_2.0 2.2
rte_acl_add_rules@DPDK_2.0 2.2
rte_acl_build@DPDK_2.0 2.2
rte_acl_classify@DPDK_2.0 2.2
rte_acl_classify_alg@DPDK_2.0 2.2
rte_acl_classify_scalar@DPDK_2.0 2.2
rte_acl_create@DPDK_2.0 2.2
rte_acl_dump@DPDK_2.0 2.2
rte_acl_find_existing@DPDK_2.0 2.2
rte_acl_free@DPDK_2.0 2.2
rte_acl_list_dump@DPDK_2.0 2.2
rte_acl_reset@DPDK_2.0 2.2
rte_acl_reset_rules@DPDK_2.0 2.2
rte_acl_set_ctx_classify@DPDK_2.0 2.2
rte_approx@DPDK_2.0 2.2
rte_calloc@DPDK_2.0 2.2
rte_calloc_socket@DPDK_2.0 2.2
rte_cfgfile_close@DPDK_2.0 2.2
rte_cfgfile_get_entry@DPDK_2.0 2.2
rte_cfgfile_has_entry@DPDK_2.0 2.2
rte_cfgfile_has_section@DPDK_2.0 2.2
rte_cfgfile_load@DPDK_2.0 2.2
rte_cfgfile_num_sections@DPDK_2.0 2.2
rte_cfgfile_section_entries@DPDK_2.0 2.2
rte_cfgfile_section_num_entries@DPDK_2.0 2.2
rte_cfgfile_sections@DPDK_2.0 2.2
rte_cpu_check_supported@DPDK_2.0 2.2
rte_cryptodev_callback_register@DPDK_2.2 2.2
rte_cryptodev_callback_unregister@DPDK_2.2 2.2
rte_cryptodev_close@DPDK_2.2 2.2
rte_cryptodev_configure@DPDK_2.2 2.2
rte_cryptodev_count@DPDK_2.2 2.2
rte_cryptodev_count_devtype@DPDK_2.2 2.2
rte_cryptodev_create_vdev@DPDK_2.2 2.2
rte_cryptodev_get_dev_id@DPDK_2.2 2.2
rte_cryptodev_info_get@DPDK_2.2 2.2
rte_cryptodev_pmd_allocate@DPDK_2.2 2.2
rte_cryptodev_pmd_callback_process@DPDK_2.2 2.2
rte_cryptodev_pmd_driver_register@DPDK_2.2 2.2
rte_cryptodev_pmd_release_device@DPDK_2.2 2.2
rte_cryptodev_pmd_virtual_dev_init@DPDK_2.2 2.2
rte_cryptodev_queue_pair_count@DPDK_2.2 2.2
rte_cryptodev_queue_pair_setup@DPDK_2.2 2.2
rte_cryptodev_queue_pair_start@DPDK_2.2 2.2
rte_cryptodev_queue_pair_stop@DPDK_2.2 2.2
rte_cryptodev_session_create@DPDK_2.2 2.2
rte_cryptodev_session_free@DPDK_2.2 2.2
rte_cryptodev_socket_id@DPDK_2.2 2.2
rte_cryptodev_start@DPDK_2.2 2.2
rte_cryptodev_stats_get@DPDK_2.2 2.2
rte_cryptodev_stats_reset@DPDK_2.2 2.2
rte_cryptodev_stop@DPDK_2.2 2.2
rte_cryptodevs@DPDK_2.2 2.2
rte_ctrlmbuf_init@DPDK_2.0 2.2
rte_cycles_vmware_tsc_map@DPDK_2.0 2.2
rte_delay_us@DPDK_2.0 2.2
rte_distributor_clear_returns@DPDK_2.0 2.2
rte_distributor_create@DPDK_2.0 2.2
rte_distributor_flush@DPDK_2.0 2.2
rte_distributor_get_pkt@DPDK_2.0 2.2
rte_distributor_poll_pkt@DPDK_2.0 2.2
rte_distributor_process@DPDK_2.0 2.2
rte_distributor_request_pkt@DPDK_2.0 2.2
rte_distributor_return_pkt@DPDK_2.0 2.2
rte_distributor_returned_pkts@DPDK_2.0 2.2
rte_dom0_mempool_create@DPDK_2.0 2.2
rte_dump_physmem_layout@DPDK_2.0 2.2
rte_dump_registers@DPDK_2.0 2.2
rte_dump_stack@DPDK_2.0 2.2
rte_dump_tailq@DPDK_2.0 2.2
rte_eal_alarm_cancel@DPDK_2.0 2.2
rte_eal_alarm_set@DPDK_2.0 2.2
rte_eal_dev_init@DPDK_2.0 2.2
rte_eal_devargs_add@DPDK_2.0 2.2
rte_eal_devargs_dump@DPDK_2.0 2.2
rte_eal_devargs_type_count@DPDK_2.0 2.2
rte_eal_driver_register@DPDK_2.0 2.2
rte_eal_driver_unregister@DPDK_2.0 2.2
rte_eal_get_configuration@DPDK_2.0 2.2
rte_eal_get_lcore_state@DPDK_2.0 2.2
rte_eal_get_physmem_layout@DPDK_2.0 2.2
rte_eal_get_physmem_size@DPDK_2.0 2.2
rte_eal_has_hugepages@DPDK_2.0 2.2
rte_eal_init@DPDK_2.0 2.2
rte_eal_iopl_init@DPDK_2.0 2.2
rte_eal_lcore_role@DPDK_2.0 2.2
rte_eal_mp_remote_launch@DPDK_2.0 2.2
rte_eal_mp_wait_lcore@DPDK_2.0 2.2
rte_eal_parse_devargs_str@DPDK_2.0 2.2
rte_eal_pci_detach@DPDK_2.1 2.2
rte_eal_pci_dump@DPDK_2.0 2.2
rte_eal_pci_probe@DPDK_2.0 2.2
rte_eal_pci_probe_one@DPDK_2.0 2.2
rte_eal_pci_read_config@DPDK_2.1 2.2
rte_eal_pci_register@DPDK_2.0 2.2
rte_eal_pci_scan@DPDK_2.0 2.2
rte_eal_pci_unregister@DPDK_2.0 2.2
rte_eal_pci_write_config@DPDK_2.1 2.2
rte_eal_process_type@DPDK_2.0 2.2
rte_eal_remote_launch@DPDK_2.0 2.2
rte_eal_tailq_lookup@DPDK_2.0 2.2
rte_eal_tailq_register@DPDK_2.0 2.2
rte_eal_vdev_init@DPDK_2.0 2.2
rte_eal_vdev_uninit@DPDK_2.0 2.2
rte_eal_wait_lcore@DPDK_2.0 2.2
rte_epoll_ctl@DPDK_2.1 2.2
rte_epoll_wait@DPDK_2.1 2.2
rte_eth_add_rx_callback@DPDK_2.2 2.2
rte_eth_add_tx_callback@DPDK_2.2 2.2
rte_eth_allmulticast_disable@DPDK_2.2 2.2
rte_eth_allmulticast_enable@DPDK_2.2 2.2
rte_eth_allmulticast_get@DPDK_2.2 2.2
rte_eth_bond_8023ad_conf_get@DPDK_2.0 2.2
rte_eth_bond_8023ad_setup@DPDK_2.0 2.2
rte_eth_bond_active_slaves_get@DPDK_2.0 2.2
rte_eth_bond_create@DPDK_2.0 2.2
rte_eth_bond_free@DPDK_2.1 2.2
rte_eth_bond_link_monitoring_set@DPDK_2.0 2.2
rte_eth_bond_mac_address_reset@DPDK_2.0 2.2
rte_eth_bond_mac_address_set@DPDK_2.0 2.2
rte_eth_bond_mode_get@DPDK_2.0 2.2
rte_eth_bond_mode_set@DPDK_2.0 2.2
rte_eth_bond_primary_get@DPDK_2.0 2.2
rte_eth_bond_primary_set@DPDK_2.0 2.2
rte_eth_bond_slave_add@DPDK_2.0 2.2
rte_eth_bond_slave_remove@DPDK_2.0 2.2
rte_eth_bond_slaves_get@DPDK_2.0 2.2
rte_eth_bond_xmit_policy_get@DPDK_2.0 2.2
rte_eth_bond_xmit_policy_set@DPDK_2.0 2.2
rte_eth_copy_pci_info@DPDK_2.2 2.2
rte_eth_dev_allocate@DPDK_2.2 2.2
rte_eth_dev_allocated@DPDK_2.2 2.2
rte_eth_dev_attach@DPDK_2.2 2.2
rte_eth_dev_callback_register@DPDK_2.2 2.2
rte_eth_dev_callback_unregister@DPDK_2.2 2.2
rte_eth_dev_close@DPDK_2.2 2.2
rte_eth_dev_configure@DPDK_2.2 2.2
rte_eth_dev_count@DPDK_2.2 2.2
rte_eth_dev_default_mac_addr_set@DPDK_2.2 2.2
rte_eth_dev_detach@DPDK_2.2 2.2
rte_eth_dev_filter_ctrl@DPDK_2.2 2.2
rte_eth_dev_filter_supported@DPDK_2.2 2.2
rte_eth_dev_flow_ctrl_get@DPDK_2.2 2.2
rte_eth_dev_flow_ctrl_set@DPDK_2.2 2.2
rte_eth_dev_get_dcb_info@DPDK_2.2 2.2
rte_eth_dev_get_eeprom@DPDK_2.2 2.2
rte_eth_dev_get_eeprom_length@DPDK_2.2 2.2
rte_eth_dev_get_mtu@DPDK_2.2 2.2
rte_eth_dev_get_reg_info@DPDK_2.2 2.2
rte_eth_dev_get_reg_length@DPDK_2.2 2.2
rte_eth_dev_get_vlan_offload@DPDK_2.2 2.2
rte_eth_dev_info_get@DPDK_2.2 2.2
rte_eth_dev_is_valid_port@DPDK_2.2 2.2
rte_eth_dev_mac_addr_add@DPDK_2.2 2.2
rte_eth_dev_mac_addr_remove@DPDK_2.2 2.2
rte_eth_dev_priority_flow_ctrl_set@DPDK_2.2 2.2
rte_eth_dev_release_port@DPDK_2.2 2.2
rte_eth_dev_rss_hash_conf_get@DPDK_2.2 2.2
rte_eth_dev_rss_hash_update@DPDK_2.2 2.2
rte_eth_dev_rss_reta_query@DPDK_2.2 2.2
rte_eth_dev_rss_reta_update@DPDK_2.2 2.2
rte_eth_dev_rx_intr_ctl@DPDK_2.2 2.2
rte_eth_dev_rx_intr_ctl_q@DPDK_2.2 2.2
rte_eth_dev_rx_intr_disable@DPDK_2.2 2.2
rte_eth_dev_rx_intr_enable@DPDK_2.2 2.2
rte_eth_dev_rx_queue_start@DPDK_2.2 2.2
rte_eth_dev_rx_queue_stop@DPDK_2.2 2.2
rte_eth_dev_set_eeprom@DPDK_2.2 2.2
rte_eth_dev_set_link_down@DPDK_2.2 2.2
rte_eth_dev_set_link_up@DPDK_2.2 2.2
rte_eth_dev_set_mc_addr_list@DPDK_2.2 2.2
rte_eth_dev_set_mtu@DPDK_2.2 2.2
rte_eth_dev_set_rx_queue_stats_mapping@DPDK_2.2 2.2
rte_eth_dev_set_tx_queue_stats_mapping@DPDK_2.2 2.2
rte_eth_dev_set_vf_rx@DPDK_2.2 2.2
rte_eth_dev_set_vf_rxmode@DPDK_2.2 2.2
rte_eth_dev_set_vf_tx@DPDK_2.2 2.2
rte_eth_dev_set_vf_vlan_filter@DPDK_2.2 2.2
rte_eth_dev_set_vlan_ether_type@DPDK_2.2 2.2
rte_eth_dev_set_vlan_offload@DPDK_2.2 2.2
rte_eth_dev_set_vlan_pvid@DPDK_2.2 2.2
rte_eth_dev_set_vlan_strip_on_queue@DPDK_2.2 2.2
rte_eth_dev_socket_id@DPDK_2.2 2.2
rte_eth_dev_start@DPDK_2.2 2.2
rte_eth_dev_stop@DPDK_2.2 2.2
rte_eth_dev_tx_queue_start@DPDK_2.2 2.2
rte_eth_dev_tx_queue_stop@DPDK_2.2 2.2
rte_eth_dev_uc_all_hash_table_set@DPDK_2.2 2.2
rte_eth_dev_uc_hash_table_set@DPDK_2.2 2.2
rte_eth_dev_udp_tunnel_add@DPDK_2.2 2.2
rte_eth_dev_udp_tunnel_delete@DPDK_2.2 2.2
rte_eth_dev_vlan_filter@DPDK_2.2 2.2
rte_eth_devices@DPDK_2.2 2.2
rte_eth_dma_zone_reserve@DPDK_2.2 2.2
rte_eth_driver_register@DPDK_2.2 2.2
rte_eth_from_ring@DPDK_2.2 2.2
rte_eth_from_rings@DPDK_2.0 2.2
rte_eth_led_off@DPDK_2.2 2.2
rte_eth_led_on@DPDK_2.2 2.2
rte_eth_link_get@DPDK_2.2 2.2
rte_eth_link_get_nowait@DPDK_2.2 2.2
rte_eth_macaddr_get@DPDK_2.2 2.2
rte_eth_mirror_rule_reset@DPDK_2.2 2.2
rte_eth_mirror_rule_set@DPDK_2.2 2.2
rte_eth_promiscuous_disable@DPDK_2.2 2.2
rte_eth_promiscuous_enable@DPDK_2.2 2.2
rte_eth_promiscuous_get@DPDK_2.2 2.2
rte_eth_remove_rx_callback@DPDK_2.2 2.2
rte_eth_remove_tx_callback@DPDK_2.2 2.2
rte_eth_rx_queue_info_get@DPDK_2.2 2.2
rte_eth_rx_queue_setup@DPDK_2.2 2.2
rte_eth_set_queue_rate_limit@DPDK_2.2 2.2
rte_eth_set_vf_rate_limit@DPDK_2.2 2.2
rte_eth_stats_get@DPDK_2.2 2.2
rte_eth_stats_reset@DPDK_2.2 2.2
rte_eth_timesync_adjust_time@DPDK_2.2 2.2
rte_eth_timesync_disable@DPDK_2.2 2.2
rte_eth_timesync_enable@DPDK_2.2 2.2
rte_eth_timesync_read_rx_timestamp@DPDK_2.2 2.2
rte_eth_timesync_read_time@DPDK_2.2 2.2
rte_eth_timesync_read_tx_timestamp@DPDK_2.2 2.2
rte_eth_timesync_write_time@DPDK_2.2 2.2
rte_eth_tx_queue_info_get@DPDK_2.2 2.2
rte_eth_tx_queue_setup@DPDK_2.2 2.2
rte_eth_xstats_get@DPDK_2.2 2.2
rte_eth_xstats_reset@DPDK_2.2 2.2
rte_exit@DPDK_2.0 2.2
rte_fbk_hash_create@DPDK_2.0 2.2
rte_fbk_hash_find_existing@DPDK_2.0 2.2
rte_fbk_hash_free@DPDK_2.0 2.2
rte_free@DPDK_2.0 2.2
rte_get_rx_ol_flag_name@DPDK_2.0 2.2
rte_get_tsc_hz@DPDK_2.0 2.2
rte_get_tx_ol_flag_name@DPDK_2.0 2.2
rte_hash_add_key@DPDK_2.0 2.2
rte_hash_add_key_data@DPDK_2.1 2.2
rte_hash_add_key_with_hash@DPDK_2.0 2.2
rte_hash_add_key_with_hash_data@DPDK_2.1 2.2
rte_hash_create@DPDK_2.0 2.2
rte_hash_del_key@DPDK_2.0 2.2
rte_hash_del_key_with_hash@DPDK_2.0 2.2
rte_hash_find_existing@DPDK_2.0 2.2
rte_hash_free@DPDK_2.0 2.2
rte_hash_hash@DPDK_2.0 2.2
rte_hash_iterate@DPDK_2.1 2.2
rte_hash_lookup@DPDK_2.0 2.2
rte_hash_lookup_bulk@DPDK_2.0 2.2
rte_hash_lookup_bulk_data@DPDK_2.1 2.2
rte_hash_lookup_data@DPDK_2.1 2.2
rte_hash_lookup_with_hash@DPDK_2.0 2.2
rte_hash_lookup_with_hash_data@DPDK_2.1 2.2
rte_hash_reset@DPDK_2.1 2.2
rte_hash_set_cmp_func@DPDK_2.2 2.2
rte_hexdump@DPDK_2.0 2.2
rte_intr_allow_others@DPDK_2.1 2.2
rte_intr_callback_register@DPDK_2.0 2.2
rte_intr_callback_unregister@DPDK_2.0 2.2
rte_intr_cap_multiple@DPDK_2.2 2.2
rte_intr_disable@DPDK_2.0 2.2
rte_intr_dp_is_en@DPDK_2.1 2.2
rte_intr_efd_disable@DPDK_2.1 2.2
rte_intr_efd_enable@DPDK_2.1 2.2
rte_intr_enable@DPDK_2.0 2.2
rte_intr_rx_ctl@DPDK_2.1 2.2
rte_intr_tls_epfd@DPDK_2.1 2.2
rte_ip_frag_free_death_row@DPDK_2.0 2.2
rte_ip_frag_table_create@DPDK_2.0 2.2
rte_ip_frag_table_statistics_dump@DPDK_2.0 2.2
rte_ipv4_frag_reassemble_packet@DPDK_2.0 2.2
rte_ipv4_fragment_packet@DPDK_2.0 2.2
rte_ipv6_frag_reassemble_packet@DPDK_2.0 2.2
rte_ipv6_fragment_packet@DPDK_2.0 2.2
rte_jobstats_context_finish@DPDK_2.0 2.2
rte_jobstats_context_init@DPDK_2.0 2.2
rte_jobstats_context_reset@DPDK_2.0 2.2
rte_jobstats_context_start@DPDK_2.0 2.2
rte_jobstats_finish@DPDK_2.0 2.2
rte_jobstats_init@DPDK_2.0 2.2
rte_jobstats_reset@DPDK_2.0 2.2
rte_jobstats_set_max@DPDK_2.0 2.2
rte_jobstats_set_min@DPDK_2.0 2.2
rte_jobstats_set_period@DPDK_2.0 2.2
rte_jobstats_set_target@DPDK_2.0 2.2
rte_jobstats_set_update_period_function@DPDK_2.0 2.2
rte_jobstats_start@DPDK_2.0 2.2
rte_keepalive_create@DPDK_2.2 2.2
rte_keepalive_dispatch_pings@DPDK_2.2 2.2
rte_keepalive_register_core@DPDK_2.2 2.2
rte_kvargs_count@DPDK_2.0 2.2
rte_kvargs_free@DPDK_2.0 2.2
rte_kvargs_parse@DPDK_2.0 2.2
rte_kvargs_process@DPDK_2.0 2.2
rte_log@DPDK_2.0 2.2
rte_log_add_in_history@DPDK_2.0 2.2
rte_log_cur_msg_loglevel@DPDK_2.0 2.2
rte_log_cur_msg_logtype@DPDK_2.0 2.2
rte_log_dump_history@DPDK_2.0 2.2
rte_log_set_history@DPDK_2.0 2.2
rte_logs@DPDK_2.0 2.2
rte_lpm6_add@DPDK_2.0 2.2
rte_lpm6_create@DPDK_2.0 2.2
rte_lpm6_delete@DPDK_2.0 2.2
rte_lpm6_delete_all@DPDK_2.0 2.2
rte_lpm6_delete_bulk_func@DPDK_2.0 2.2
rte_lpm6_find_existing@DPDK_2.0 2.2
rte_lpm6_free@DPDK_2.0 2.2
rte_lpm6_is_rule_present@DPDK_2.0 2.2
rte_lpm6_lookup@DPDK_2.0 2.2
rte_lpm6_lookup_bulk_func@DPDK_2.0 2.2
rte_lpm_add@DPDK_2.0 2.2
rte_lpm_create@DPDK_2.0 2.2
rte_lpm_delete@DPDK_2.0 2.2
rte_lpm_delete_all@DPDK_2.0 2.2
rte_lpm_find_existing@DPDK_2.0 2.2
rte_lpm_free@DPDK_2.0 2.2
rte_lpm_is_rule_present@DPDK_2.0 2.2
rte_malloc@DPDK_2.0 2.2
rte_malloc_dump_stats@DPDK_2.0 2.2
rte_malloc_get_socket_stats@DPDK_2.0 2.2
rte_malloc_set_limit@DPDK_2.0 2.2
rte_malloc_socket@DPDK_2.0 2.2
rte_malloc_validate@DPDK_2.0 2.2
rte_malloc_virt2phy@DPDK_2.0 2.2
rte_mbuf_sanity_check@DPDK_2.0 2.2
rte_mem_lock_page@DPDK_2.0 2.2
rte_mem_virt2phy@DPDK_2.0 2.2
rte_memdump@DPDK_2.0 2.2
rte_memory_get_nchannel@DPDK_2.0 2.2
rte_memory_get_nrank@DPDK_2.0 2.2
rte_mempool_audit@DPDK_2.0 2.2
rte_mempool_calc_obj_size@DPDK_2.0 2.2
rte_mempool_count@DPDK_2.0 2.2
rte_mempool_create@DPDK_2.0 2.2
rte_mempool_dump@DPDK_2.0 2.2
rte_mempool_gntalloc_create@DPDK_2.0 2.2
rte_mempool_list_dump@DPDK_2.0 2.2
rte_mempool_lookup@DPDK_2.0 2.2
rte_mempool_obj_iter@DPDK_2.0 2.2
rte_mempool_walk@DPDK_2.0 2.2
rte_mempool_xmem_create@DPDK_2.0 2.2
rte_mempool_xmem_size@DPDK_2.0 2.2
rte_mempool_xmem_usage@DPDK_2.0 2.2
rte_memzone_dump@DPDK_2.0 2.2
rte_memzone_free@DPDK_2.1 2.2
rte_memzone_lookup@DPDK_2.0 2.2
rte_memzone_reserve@DPDK_2.0 2.2
rte_memzone_reserve_aligned@DPDK_2.0 2.2
rte_memzone_reserve_bounded@DPDK_2.0 2.2
rte_memzone_walk@DPDK_2.0 2.2
rte_meter_srtcm_config@DPDK_2.0 2.2
rte_meter_trtcm_config@DPDK_2.0 2.2
rte_openlog_stream@DPDK_2.0 2.2
rte_pipeline_check@DPDK_2.0 2.2
rte_pipeline_create@DPDK_2.0 2.2
rte_pipeline_flush@DPDK_2.0 2.2
rte_pipeline_free@DPDK_2.0 2.2
rte_pipeline_port_in_connect_to_table@DPDK_2.0 2.2
rte_pipeline_port_in_create@DPDK_2.0 2.2
rte_pipeline_port_in_disable@DPDK_2.0 2.2
rte_pipeline_port_in_enable@DPDK_2.0 2.2
rte_pipeline_port_in_stats_read@DPDK_2.1 2.2
rte_pipeline_port_out_create@DPDK_2.0 2.2
rte_pipeline_port_out_packet_insert@DPDK_2.0 2.2
rte_pipeline_port_out_stats_read@DPDK_2.1 2.2
rte_pipeline_run@DPDK_2.0 2.2
rte_pipeline_table_create@DPDK_2.0 2.2
rte_pipeline_table_default_entry_add@DPDK_2.0 2.2
rte_pipeline_table_default_entry_delete@DPDK_2.0 2.2
rte_pipeline_table_entry_add@DPDK_2.0 2.2
rte_pipeline_table_entry_add_bulk@DPDK_2.2 2.2
rte_pipeline_table_entry_delete@DPDK_2.0 2.2
rte_pipeline_table_entry_delete_bulk@DPDK_2.2 2.2
rte_pipeline_table_stats_read@DPDK_2.1 2.2
rte_pktmbuf_dump@DPDK_2.0 2.2
rte_pktmbuf_init@DPDK_2.0 2.2
rte_pktmbuf_offload_pool_create@DPDK_2.2 2.2
rte_pktmbuf_pool_create@DPDK_2.1 2.2
rte_pktmbuf_pool_init@DPDK_2.0 2.2
rte_pmd_af_packet_devinit@DPDK_2.0 2.2
rte_port_ethdev_reader_ops@DPDK_2.0 2.2
rte_port_ethdev_writer_nodrop_ops@DPDK_2.1 2.2
rte_port_ethdev_writer_ops@DPDK_2.0 2.2
rte_port_ring_multi_reader_ops@DPDK_2.2 2.2
rte_port_ring_multi_writer_nodrop_ops@DPDK_2.2 2.2
rte_port_ring_multi_writer_ops@DPDK_2.2 2.2
rte_port_ring_reader_ipv4_frag_ops@DPDK_2.0 2.2
rte_port_ring_reader_ipv6_frag_ops@DPDK_2.1 2.2
rte_port_ring_reader_ops@DPDK_2.0 2.2
rte_port_ring_writer_ipv4_ras_ops@DPDK_2.0 2.2
rte_port_ring_writer_ipv6_ras_ops@DPDK_2.1 2.2
rte_port_ring_writer_nodrop_ops@DPDK_2.1 2.2
rte_port_ring_writer_ops@DPDK_2.0 2.2
rte_port_sched_reader_ops@DPDK_2.0 2.2
rte_port_sched_writer_ops@DPDK_2.0 2.2
rte_port_sink_ops@DPDK_2.0 2.2
rte_port_source_ops@DPDK_2.0 2.2
rte_power_exit@DPDK_2.0 2.2
rte_power_freq_down@DPDK_2.0 2.2
rte_power_freq_max@DPDK_2.0 2.2
rte_power_freq_min@DPDK_2.0 2.2
rte_power_freq_up@DPDK_2.0 2.2
rte_power_freqs@DPDK_2.0 2.2
rte_power_get_env@DPDK_2.0 2.2
rte_power_get_freq@DPDK_2.0 2.2
rte_power_init@DPDK_2.0 2.2
rte_power_set_env@DPDK_2.0 2.2
rte_power_set_freq@DPDK_2.0 2.2
rte_power_unset_env@DPDK_2.0 2.2
rte_realloc@DPDK_2.0 2.2
rte_red_config_init@DPDK_2.0 2.2
rte_red_log2_1_minus_Wq@DPDK_2.0 2.2
rte_red_pow2_frac_inv@DPDK_2.0 2.2
rte_red_rand_seed@DPDK_2.0 2.2
rte_red_rand_val@DPDK_2.0 2.2
rte_red_rt_data_init@DPDK_2.0 2.2
rte_reorder_create@DPDK_2.0 2.2
rte_reorder_drain@DPDK_2.0 2.2
rte_reorder_find_existing@DPDK_2.0 2.2
rte_reorder_free@DPDK_2.0 2.2
rte_reorder_init@DPDK_2.0 2.2
rte_reorder_insert@DPDK_2.0 2.2
rte_reorder_reset@DPDK_2.0 2.2
rte_ring_create@DPDK_2.0 2.2
rte_ring_dump@DPDK_2.0 2.2
rte_ring_free@DPDK_2.2 2.2
rte_ring_get_memsize@DPDK_2.0 2.2
rte_ring_init@DPDK_2.0 2.2
rte_ring_list_dump@DPDK_2.0 2.2
rte_ring_lookup@DPDK_2.0 2.2
rte_ring_set_water_mark@DPDK_2.0 2.2
rte_sched_pipe_config@DPDK_2.0 2.2
rte_sched_port_config@DPDK_2.0 2.2
rte_sched_port_dequeue@DPDK_2.0 2.2
rte_sched_port_enqueue@DPDK_2.0 2.2
rte_sched_port_free@DPDK_2.0 2.2
rte_sched_port_get_memory_footprint@DPDK_2.0 2.2
rte_sched_port_pkt_read_color@DPDK_2.1 2.2
rte_sched_port_pkt_read_tree_path@DPDK_2.1 2.2
rte_sched_port_pkt_write@DPDK_2.1 2.2
rte_sched_queue_read_stats@DPDK_2.0 2.2
rte_sched_subport_config@DPDK_2.0 2.2
rte_sched_subport_read_stats@DPDK_2.0 2.2
rte_set_application_usage_hook@DPDK_2.0 2.2
rte_set_log_level@DPDK_2.0 2.2
rte_set_log_type@DPDK_2.0 2.2
rte_socket_id@DPDK_2.0 2.2
rte_strerror@DPDK_2.0 2.2
rte_strsplit@DPDK_2.0 2.2
rte_sys_gettid@DPDK_2.0 2.2
rte_table_acl_ops@DPDK_2.0 2.2
rte_table_array_ops@DPDK_2.0 2.2
rte_table_hash_ext_ops@DPDK_2.0 2.2
rte_table_hash_key16_ext_dosig_ops@DPDK_2.2 2.2
rte_table_hash_key16_ext_ops@DPDK_2.0 2.2
rte_table_hash_key16_lru_ops@DPDK_2.0 2.2
rte_table_hash_key32_ext_ops@DPDK_2.0 2.2
rte_table_hash_key32_lru_ops@DPDK_2.0 2.2
rte_table_hash_key8_ext_dosig_ops@DPDK_2.0 2.2
rte_table_hash_key8_ext_ops@DPDK_2.0 2.2
rte_table_hash_key8_lru_dosig_ops@DPDK_2.0 2.2
rte_table_hash_key8_lru_ops@DPDK_2.0 2.2
rte_table_hash_lru_ops@DPDK_2.0 2.2
rte_table_lpm_ipv6_ops@DPDK_2.0 2.2
rte_table_lpm_ops@DPDK_2.0 2.2
rte_table_stub_ops@DPDK_2.0 2.2
rte_thread_get_affinity@DPDK_2.0 2.2
rte_thread_set_affinity@DPDK_2.0 2.2
rte_timer_dump_stats@DPDK_2.0 2.2
rte_timer_init@DPDK_2.0 2.2
rte_timer_manage@DPDK_2.0 2.2
rte_timer_pending@DPDK_2.0 2.2
rte_timer_reset@DPDK_2.0 2.2
rte_timer_reset_sync@DPDK_2.0 2.2
rte_timer_stop@DPDK_2.0 2.2
rte_timer_stop_sync@DPDK_2.0 2.2
rte_timer_subsystem_init@DPDK_2.0 2.2
rte_vhost_dequeue_burst@DPDK_2.0 2.2
rte_vhost_driver_callback_register@DPDK_2.0 2.2
rte_vhost_driver_register@DPDK_2.0 2.2
rte_vhost_driver_session_start@DPDK_2.0 2.2
rte_vhost_driver_unregister@DPDK_2.1 2.2
rte_vhost_enable_guest_notification@DPDK_2.0 2.2
rte_vhost_enqueue_burst@DPDK_2.0 2.2
rte_vhost_feature_disable@DPDK_2.0 2.2
rte_vhost_feature_enable@DPDK_2.0 2.2
rte_vhost_feature_get@DPDK_2.0 2.2
rte_vlog@DPDK_2.0 2.2
rte_zmalloc@DPDK_2.0 2.2
rte_zmalloc_socket@DPDK_2.0 2.2
vt100_init@DPDK_2.0 2.2
vt100_parser@DPDK_2.0 2.2

View File

@ -1,155 +0,0 @@
#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#export DH_VERBOSE = 1
# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
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
# build with debug symbols, dh_strip will create -dgbsyms packages by that
export EXTRA_CFLAGS = -g -march=corei7-avx -mno-movbe -mno-abm -mno-fma -mno-bmi -mno-bmi2 -mno-avx2 -mno-lzcnt -mtune=corei7-avx
# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
DPDK_CONFIG = "$(DEB_HOST_GNU_CPU)-native-linuxapp-gcc"
DPDK_STATIC_DIR = "debian/build/static-root"
DPDK_SHARED_DIR = "debian/build/shared-root"
clean:
dh_testdir
rm -rf debian/build debian/tmp
dh_clean
build-config:
dh_testdir
sed -i '/RTE_MACHINE_CPUFLAG_AVX2/,+13 s/^/#/' lib/librte_acl/Makefile
sed -i '/__AVX2__/,+2 s/^/#/' mk/rte.cpuflags.mk
$(MAKE) O=$(DPDK_STATIC_DIR) T=$(DPDK_CONFIG) config
sed -ri 's,(RTE_MACHINE=).*,\1default,' \
$(DPDK_STATIC_DIR)/.config
build-indep: build-config
dh_testdir
$(MAKE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html
build-arch: build-config
dh_testdir
echo "CPUFLAGS_LIST := -DRTE_COMPILE_TIME_CPUFLAGS=" > mk/rte.cpuflags.mk
$(MAKE) O=$(DPDK_STATIC_DIR) 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) O=$(DPDK_SHARED_DIR) build
build: build-arch build-indep
binary-indep: PACKAGE_NAME=dpdk-doc
binary-indep: DOCDIR=usr/share/doc/dpdk
binary-indep: export DH_OPTIONS=--indep
binary-indep:
dh_testroot
dh_prep
dh_testdir
dh_installdirs
dh_install
dh_installdocs
dh_installchangelogs
dh_lintian
# Package: dpdk-doc
# All files based on the install-doc rule (includes examples)
$(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
DESTDIR=debian/dpdk-doc install-doc
dh_link
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
binary-arch: LIBDIR=usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
binary-arch: export DH_OPTIONS=--arch
binary-arch:
dh_testroot
dh_prep
dh_testdir
dh_installdirs
dh_install
dh_installdocs
dh_installchangelogs
dh_lintian
dh_systemd_enable
dh_installinit --no-start --no-restart-on-upgrade
dh_systemd_start --no-start --no-restart-on-upgrade
# Package: dpdk (runtime)
$(MAKE) O=$(DPDK_STATIC_DIR) prefix=/usr \
DESTDIR=debian/dpdk install-runtime
$(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
DESTDIR=debian/dpdk install-runtime
cp debian/dpdk.interfaces debian/dpdk/etc/dpdk/interfaces
#rm debian/dpdk/usr/sbin/dpdk_nic_bind
ln -s /usr/share/dpdk/tools/dpdk_nic_bind.py \
debian/dpdk/sbin/dpdk_nic_bind
# Package: libdpdk0 (bare runtime libs)
mkdir -p debian/libdpdk0/$(LIBDIR)
# NOTE so far upstream dpdk has not settled on really versioning the
# combined lib. There are discussions ongoing and various alternative
# approaches.
# We have to wait until that is clarified upstream (in a follow on dpdk
# version).
# One likely solution will make us ship the non combined .so and a
# linker script which replaces the combined lib.
# To easen package management a few notes how this will change if that
# happens:
# NOTE: linker script - this becomes a nop (linker skript has no sover
# on its own)
rm debian/dpdk/usr/lib/libdpdk.so
cp -a $(DPDK_SHARED_DIR)/lib/* debian/libdpdk0/$(LIBDIR)/
# NOTE: linker script - insert basenames loop for all .so's
# NOTE: linker script - we also will need multiple symbol files then
# Package: dpdk-dev (build environment)
$(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
DESTDIR=debian/dpdk-dev install-sdk
cp $(DPDK_SHARED_DIR)/.config debian/dpdk-dev/usr/share/dpdk/config
# Package: libdpdk-dev (bare headers and static devel libs)
mkdir -p debian/libdpdk-dev/usr/lib/
# NOTE: linker script - insert basenames loop for all .a's
#ln -s /$(LIBDIR)/libdpdk.so \
# debian/libdpdk-dev/$(LIBDIR)/libdpdk.so.0
cp -a $(DPDK_STATIC_DIR)/lib/* debian/libdpdk-dev/usr/lib/
mv debian/dpdk-dev/usr/include/dpdk debian/libdpdk-dev/usr/include/
# NOTE: linker script - package instead of removing all sublibs
rm -rf debian/dpdk/usr/lib*
dh_python2
dh_perl
dh_link
dh_compress
dh_fixperms
dh_strip
dh_makeshlibs
dh_shlibdeps
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-arch binary-indep

View File

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

View File

@ -1,12 +0,0 @@
#!/bin/bash
arch=$(dpkg --print-architecture)
case $arch in
amd64|i386)
echo "Architecture ${arch} supported, go on with test"
;;
*)
echo "Architecture ${arch} not supported, SKIP test"
exit 0
;;
esac

View File

@ -1,8 +0,0 @@
Tests: test-initscripts
Restrictions: allow-stderr, isolation-machine, needs-root
Depends: dpdk [amd64 i386], gawk, mount, systemd, sysvinit-utils
Tests: test-linkage
Restrictions: allow-stderr
Depends: libdpdk0 [amd64 i386], libdpdk-dev [amd64 i386], libc6, libc6-dev, gcc,
grep, libpcap-dev, libxenstore3.0 [amd64 i386]

View File

@ -1,143 +0,0 @@
#!/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
systemctl reset-failed dpdk.service
echo "Unmounting all potential hugetlbfs mounts"
awk '/hugetlbfs/ {print $2}' /proc/mounts | while read hugetlbmount; do
umount -v "$hugetlbmount"
done
}
checkinitstyle() {
# We want to verify that
# - initially our environment has no hugetlbfs mount
# - a system without hugetlbfs mount gets it mounted
# - a restart of the service does neither drop nor duplicate the mount
PRE=${1}
POST=${2}
TYPE=${3}
printf "\n\n### Checking Type %s ###\n" "${TYPE}"
resetservice
checkstatus "${TYPE}-BEGIN" 0 "${PRE}" "${POST}" "inactive"
echo "### Starting Service ###"
${PRE} start "${POST}"
checkstatus "${TYPE}-START" 2 "${PRE}" "${POST}" "active"
echo "### Restarting Service ###"
${PRE} restart "${POST}"
checkstatus "${TYPE}-RESTART" 2 "${PRE}" "${POST}" "active"
}
echo "NR_2M_PAGES=$EXPECT2MHP" >> ${DPDK_CONF}
echo "NR_1G_PAGES=$EXPECT1GHP" >> ${DPDK_CONF}
# We can't rely on any real device for DPDK tests in adt-* environments. But
# we can expect all kind of broken configuration not to break it (would be
# detected via set -e).
# So add all kind of known-to-be-broken definitions and expect it not to fail.
cat <<EOF > ${DPDK_INTERF}
# wrong bus
pTi 0000:04:00.0 uio-pci-generic
# not enough parms
0000:04:00.0 uio-pci-generic
# empty line
# non existing device
pci 1234:56:78.9 uio-pci-generic
EOF
# some had issues in the past caused by different init systems, so we test all
# Direct Calls
checkinitstyle "/etc/init.d/dpdk" "" "Direct"
# System V style init
checkinitstyle "service dpdk" "" "SysV"
# SystemD style init
checkinitstyle "systemctl" "dpdk.service" "SystemD"

View File

@ -1,41 +0,0 @@
#!/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
# 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\nChecking for expected libraries\n"
# The binary should inherit dependencies from the .so
# check one of the libs that came in due to features
ldd testlinkage.bin | grep libpcap
# check one of the libs that came in due to basic dpdp linuxapp config
ldd testlinkage.bin | grep libm
# one that it uses implicitly
ldd testlinkage.bin | grep libpthread
echo "OK"
printf "\n\nChecking test execution\n"
# It doesn't do much, but it should work - so calling it is a minor extra test.
# It is known to fail without SSE3 in e.g. some adt environments, in that
# case check at least that we get the correct error message (this will trigger
# a test fail if it neither finds the success nor the expected error message)
(./testlinkage.bin 2>&1 || /bin/true ) | \
grep -E 'ERROR: This system does not support "SSSE3".|Hello rte_exit 0x'
echo "OK"

View File

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

View File

@ -25,7 +25,7 @@ function build_pkg {
cp -r ${DEB_DIR}/* ${DIR}/repositories/ubuntu/
rm -rf ${DEB_DIR}; mkdir -p ${DEB_DIR}; chmod 777 ${DEB_DIR};
sudo docker run -v ${DEB_DIR}:/deb -t ovs_build /ovs_build/build-ovs-nsh-dpdk.sh
sudo docker run -v ${DEB_DIR}:/deb -t ovs_build /ovs_build/build-ovs-nsh.sh
cp -r ${DEB_DIR}/* ${DIR}/repositories/ubuntu/
rm -rf ${DEB_DIR}