Browse Source

Add dpdk 16.04 debian spec

1. download dpdk 2.2.0 debian spec
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0.orig.tar.gz
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.debian.tar.xz
dpkg-source -x dpdk_2.2.0-0ubuntu8.dsc

2. remove patch and update debian spec
wget -c http://fast.dpdk.org/rel/dpdk-16.04.tar.xz
cd dpdk-2.2.0; rm -rf debian/patches/; uupdate -v 16.04 ../dpdk-16.04.tar.xz

3. update changelog
cat << EOF > debian/changelog
dpdk (16.04-1) unstable; urgency=low
  * DPDK 16.04
 -- DPDK team <dev@dpdk.org>
EOF

Change-Id: Ie4b4ef441d77b1dfb60897b972a08a1c86c0f0e2
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
Guo Ruijing 2 years ago
parent
commit
ab30dcb7fb

+ 3
- 0
ovs_build/dpdk-16.04/debian/changelog View File

@@ -0,0 +1,3 @@
1
+dpdk (16.04-1) unstable; urgency=low
2
+  * DPDK 16.04
3
+ -- DPDK team <dev@dpdk.org>

+ 1
- 0
ovs_build/dpdk-16.04/debian/compat View File

@@ -0,0 +1 @@
1
+9

+ 81
- 0
ovs_build/dpdk-16.04/debian/control View File

@@ -0,0 +1,81 @@
1
+Source: dpdk
2
+Priority: optional
3
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
4
+Build-Depends: debhelper (>= 9),
5
+               dh-python,
6
+               dh-systemd (>= 1.5),
7
+               doxygen,
8
+               graphviz,
9
+               inkscape,
10
+               libcap-dev,
11
+               libpcap-dev,
12
+               libxen-dev,
13
+               libxenstore3.0,
14
+               python,
15
+               python-sphinx,
16
+               texlive-fonts-recommended,
17
+               texlive-latex-extra
18
+Standards-Version: 3.9.6
19
+Section: libs
20
+Homepage: http://www.dpdk.org
21
+Vcs-Original-Git: git://dpdk.org/dpdk
22
+Vcs-Original-Browser: http://www.dpdk.org/browse/dpdk/refs/
23
+Vcs-Git: https://git.launchpad.net/~ubuntu-server/dpdk
24
+Vcs-Browser: https://code.launchpad.net/~ubuntu-server/dpdk/+git/dpdk
25
+
26
+Package: dpdk
27
+Section: devel
28
+Architecture: amd64 i386
29
+Depends: libdpdk0 (= ${binary:Version}),
30
+         lsb-base (>= 3.2-14),
31
+         ${misc:Depends},
32
+         ${python:Depends},
33
+         ${shlibs:Depends}
34
+Suggests: linux-image-generic
35
+Description: Data Plane Development Kit (runtime)
36
+ DPDK is a set of libraries for fast packet processing. Applications run
37
+ in user-space and communicate directly with dedicated network interfaces.
38
+ This package contains the runtime environment to run DPDK applications.
39
+
40
+Package: dpdk-dev
41
+Section: devel
42
+Architecture: amd64 i386
43
+Depends: libdpdk0 (= ${binary:Version}), ${misc:Depends}
44
+Description: Data Plane Development Kit (development files)
45
+ DPDK is a set of libraries for fast packet processing. Applications run
46
+ in user-space and communicate directly with dedicated network interfaces.
47
+ This package contains examples and the upstream build environment. It is
48
+ not strictly required in order to build external applications.
49
+
50
+Package: dpdk-doc
51
+Section: doc
52
+Architecture: all
53
+Depends: libjs-jquery, libjs-underscore, ${misc:Depends}
54
+Description: Data Plane Development Kit (documentation)
55
+ DPDK is a set of libraries for fast packet processing. Applications run
56
+ in user-space and communicate directly with dedicated network interfaces.
57
+ This package contains the complete set of documentation and guides.
58
+
59
+Package: libdpdk0
60
+Architecture: amd64 i386
61
+Multi-Arch: same
62
+Pre-Depends: ${misc:Pre-Depends}
63
+Depends: ${misc:Depends}, ${shlibs:Depends}
64
+Description: Data Plane Development Kit (runtime libraries)
65
+ DPDK is a set of libraries for fast packet processing. Applications run
66
+ in user-space and communicate directly with dedicated network interfaces.
67
+ This package contains the runtime libraries which require at least SSE3
68
+ support in the CPU.
69
+
70
+Package: libdpdk-dev
71
+Section: libdevel
72
+Architecture: amd64 i386
73
+Multi-Arch: same
74
+Pre-Depends: ${misc:Pre-Depends}
75
+Depends: libdpdk0 (= ${binary:Version}), ${misc:Depends}
76
+Description: Data Plane Development Kit (basic development files)
77
+ DPDK is a set of libraries for fast packet processing. Applications run
78
+ in user-space and communicate directly with dedicated network interfaces.
79
+ This package contains the basic headers and library files required to
80
+ build external applications which will also require at least SSE3 support
81
+ when running.

+ 48
- 0
ovs_build/dpdk-16.04/debian/copyright View File

@@ -0,0 +1,48 @@
1
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2
+Upstream-Name: dpdk
3
+Source: http://dpdk.org
4
+
5
+Files: *
6
+Copyright: 2008-2014 Cisco Systems, Inc.
7
+           2012-2014 6WIND S.A.
8
+           1999-2015 Intel Corporation.
9
+           2010-2013 Tilera Corporation.
10
+           2012      Mellanox.
11
+           2007      VMware, Inc.
12
+           2007      Nuova Systems, Inc.
13
+           2014      IBM Corporation.
14
+License: BSD+GPLv2+LGPLv2
15
+ On Debian systems, the complete text of the BSD License can be
16
+ found in "/usr/share/common-licenses/BSD".
17
+ .
18
+ This package is free software; you can redistribute it and/or modify
19
+ it under the terms of the GNU General Public License as published by
20
+ the Free Software Foundation; either version 2 of the License, or
21
+ (at your option) any later version.
22
+ .
23
+ This package is distributed in the hope that it will be useful,
24
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
25
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26
+ GNU General Public License for more details.
27
+ .
28
+ You should have received a copy of the GNU General Public License
29
+ along with this program. If not, see <http://www.gnu.org/licenses/>
30
+ .
31
+ On Debian systems, the complete text of the GNU General
32
+ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
33
+
34
+Files: debian/*
35
+Copyright: 2015 Canonical Ltd. <stefan.bader@canonical.com>
36
+Copyright: 2015, 2016 Canonical Ltd. <christian.ehrhardt@canonical.com>
37
+License: GPL-3
38
+ This program is free software: you can redistribute it and/or modify it
39
+ under the terms of the GNU General Public License version 3, as published
40
+ by the Free Software Foundation.
41
+ .
42
+ This program is distributed in the hope that it will be useful, but
43
+ WITHOUT ANY WARRANTY; without even the implied warranties of
44
+ MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
45
+ PURPOSE.  See the GNU General Public License for more details.
46
+ .
47
+ You should have received a copy of the GNU General Public License along
48
+ with this program.  If not, see <http://www.gnu.org/licenses/>.

+ 1
- 0
ovs_build/dpdk-16.04/debian/dpdk-dev.dirs View File

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

+ 1
- 0
ovs_build/dpdk-16.04/debian/dpdk-dev.install View File

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

+ 52
- 0
ovs_build/dpdk-16.04/debian/dpdk-doc.README.Debian View File

@@ -0,0 +1,52 @@
1
+dpdk for Debian
2
+---------------
3
+
4
+This package is currently compiled for the lowest possible CPU requirements.
5
+Which still requires at least SSE3 to be supported by the CPU.
6
+
7
+dpdk (runtime) / libdpdk0:
8
+
9
+For runtime /etc/dpdk/interfaces holds a list of PCI devices to be assigned
10
+to DPDK compatible drivers and /etc/dpdk/dpdk.conf allows one to define the
11
+number of hugepages to be reserved at boot.
12
+The runtime environment is not required to build applications that use
13
+DPDK but if those applications get packaged they should depend on the
14
+runtime.
15
+
16
+Since DPDK technically would be able to use all of your compatible card/driver
17
+combination it is required that you take care of blacklisting / whitelisting
18
+network cards to tell dpdk which it has to to initialize (especially true for
19
+virtio-pci as the normal kernel driver is considered compatible).
20
+
21
+If you are working with virtio-pci network cards it isn't a hard requirement to
22
+assign them to a dpdk compatible userspace driver like uio_pci_generic. But you
23
+have to at least unbind them from the default kernel driver (virtio-pci) to
24
+avoid bugs by dpdk and the kernel working on them simultaneously. It is
25
+recommended to reassign them to dpdk compatible drivers using
26
+/etc/dpdk/interfaces (just as you would with any physical card).
27
+
28
+libdpdk0 contains the shared object needed to run a program in terms of symbol
29
+resolution, but none of the other runtime environment pieces.
30
+
31
+dpdk-dev / libdpdk-dev:
32
+
33
+The minimum requirement for developing external applications is libdpdk-dev,
34
+which brings the headers and library files.
35
+
36
+In dpdk-dev is the upstream makefile environment. Sample applications, which
37
+are shipped in dpdk-doc, are providing makefiles.
38
+Those makefiles need to find the dpdk build system. To do so they need some
39
+environment variables defined:
40
+ export RTE_TARGET="$(uname -m)-default-linuxapp-gcc"
41
+ export RTE_SDK="/usr/share/dpdk/"
42
+ export RTE_INCLUDE="/usr/include/dpdk"
43
+Those can be set by the user to overwrite with a custom path/config. If no
44
+custom environment is used it is recommended to source the file
45
+/usr/share/dpdk/dpdk-sdk-env.sh which comes with dpdk-dev.
46
+If the paths ever change or there will be more/less variables needed to build
47
+against dpdk-dev that file will be adjusted for you.
48
+
49
+Alternatively /usr/include/dpdk/rte_config.h has to be pre-included:
50
+CFLAGS  += -I/usr/include/dpdk -irte_config.h
51
+
52
+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com>  Thu, 04 Feb 2016 09:16:11 +0100

+ 1
- 0
ovs_build/dpdk-16.04/debian/dpdk-doc.dirs View File

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

+ 251
- 0
ovs_build/dpdk-16.04/debian/dpdk-init View File

@@ -0,0 +1,251 @@
1
+#!/bin/sh
2
+#
3
+# dpdk-init: startup script to initialize a dpdk runtime environment
4
+#
5
+# Copyright 2015-2016 Canonical Ltd.
6
+# Autor: Stefan Bader <stefan.bader@canonical.com>
7
+# Autor: Christian Ehrhardt <christian.ehrhardt@canonical.com>
8
+#
9
+#    This program is free software: you can redistribute it and/or modify
10
+#    it under the terms of the GNU General Public License version 3,
11
+#    as published by the Free Software Foundation.
12
+#
13
+#    This program is distributed in the hope that it will be useful,
14
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+#    GNU General Public License for more details.
17
+#
18
+#    You should have received a copy of the GNU General Public License
19
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
+#
21
+set -e
22
+
23
+DPDK_BIND="/sbin/dpdk_nic_bind"
24
+DPDK_INTERF="/etc/dpdk/interfaces"
25
+
26
+
27
+# pagesize supports [G|g]/[M|m]/[K|k]
28
+get_kbytes() {
29
+    local unit
30
+    local num
31
+    unit=$(echo "${1}" | sed 's/[0-9]*//g')
32
+    num=$(echo "${1}" | sed 's/[^0-9]*//g')
33
+    case ${unit} in
34
+    *g | *G)
35
+        echo $((num*1024*1024))
36
+        ;;
37
+    *m | *M)
38
+        echo $((num*1024))
39
+        ;;
40
+    *k | *K)
41
+        echo $((num))
42
+        ;;
43
+    *)
44
+        echo $((num/1024))
45
+        ;;
46
+    esac
47
+}
48
+
49
+get_default_hpgsz() {
50
+    default_hpgsz=$(grep "Hugepagesize:" /proc/meminfo \
51
+        | sed 's/^Hugepagesize:\s*//g' | sed 's/\s*kB$//g')
52
+    echo "${default_hpgsz}"
53
+}
54
+
55
+get_hugetlbfs_mountpoint() {
56
+    local requested_hpgsz
57
+    local mp_hpgsz
58
+    requested_hpgsz=$(get_kbytes "${1}")
59
+
60
+    grep hugetlbfs /proc/mounts | while read \
61
+        mntfrom mntpoint mntfstype mntopt mntdump mntfsck; do
62
+
63
+        # check if the current muntpoint is of the requested huge page size
64
+        case ${mntopt} in
65
+        *pagesize=*)
66
+            mp_hpgsz=$(echo "${mntopt}" | sed 's/.*pagesize=//g' | sed 's/,.*//g')
67
+            mp_hpgsz=$(get_kbytes "${mp_hpgsz}")
68
+            ;;
69
+        *)
70
+            mp_hpgsz=$(get_default_hpgsz)
71
+            ;;
72
+        esac
73
+        if [ "${requested_hpgsz}" -eq "${mp_hpgsz}" ]; then
74
+            echo "${mntpoint}"
75
+            return
76
+        fi
77
+    done
78
+}
79
+
80
+_mount_hugetlbfs() {
81
+    local MNT="/dev/hugepages"
82
+    local MNTOPTS=""
83
+    local requested_hpgsz
84
+    local default_hpgsz
85
+    requested_hpgsz=$(get_kbytes "${1}")
86
+    default_hpgsz=$(get_default_hpgsz)
87
+
88
+    # kernel might not support the requested size
89
+    if [ ! -d "/sys/kernel/mm/hugepages/hugepages-${requested_hpgsz}kB" ]; then
90
+        echo "WARNING: requested page size of ${requested_hpgsz}kB " \
91
+             "not supported by the kernel"
92
+        return 0
93
+    fi
94
+
95
+    # special case if this is not the default huge page size
96
+    if [ "${requested_hpgsz}" -ne "${default_hpgsz}" ]; then
97
+        MNT="${MNT}-${requested_hpgsz}"
98
+        MNTOPTS="pagesize=${requested_hpgsz}K"
99
+    fi
100
+
101
+    if [ ! -e "${MNT}" ]; then
102
+        mkdir "${MNT}"
103
+        if [ $? -ne 0 ]; then
104
+            echo "Could not create directory ${MNT}!" >&2
105
+            return 1
106
+        fi
107
+    fi
108
+    mount -thugetlbfs hugetlbfs "${MNT}" -o "${MNTOPTS}"
109
+    return $?
110
+}
111
+
112
+#
113
+# The DPDK library will use the first mounted instance it finds for a given
114
+# page size. so if there is already one for a given size there is no need to
115
+# create another for the same huge page size.
116
+#
117
+mount_hugetlbfs() {
118
+    if [ ! -r /etc/dpdk/dpdk.conf ]; then
119
+        return 1
120
+    fi
121
+    . /etc/dpdk/dpdk.conf
122
+
123
+    # if a page size is requested, there has to be a mountpoint for that size
124
+    if [ -n "${NR_2M_PAGES}" -a -z "$(get_hugetlbfs_mountpoint '2M')" ]; then
125
+        _mount_hugetlbfs 2M
126
+    fi
127
+    if [ -n "${NR_1G_PAGES}" -a -z "$(get_hugetlbfs_mountpoint '1G')" ]; then
128
+        _mount_hugetlbfs 1G
129
+    fi
130
+}
131
+
132
+_setup_hugepages() {
133
+    MMDIR="/sys/kernel/mm/hugepages/${1}"
134
+    PAGES=${2}
135
+
136
+    if [ "$PAGES" != "" ]; then
137
+        if [ "$PAGES" -gt 0 ]; then
138
+            if [ -d "$MMDIR" -a -w "$MMDIR/nr_hugepages" ]; then
139
+                # increases the chance to allocate enough huge pages
140
+                # configurable, since it comes at a perf penality
141
+                if [ "$DROPCACHE_BEFORE_HP_ALLOC" = "1" ]; then
142
+                    echo 3 > /proc/sys/vm/drop_caches
143
+                fi
144
+
145
+                echo "$PAGES" > "$MMDIR/nr_hugepages"
146
+
147
+                GOTPAGES=$(cat "$MMDIR/nr_hugepages")
148
+                if [ "$GOTPAGES" -lt "$PAGES" ]; then
149
+                    echo "WARNING: could not allocate $PAGES at " \
150
+                         "$MMDIR/nr_hugepages (only got $GOTPAGES)."
151
+                fi
152
+            else
153
+                echo "WARNING: $MMDIR/nr_hugepages not found/writable"
154
+            fi
155
+        fi
156
+    fi
157
+}
158
+
159
+#
160
+# Reserve a certain amount of hugepages (defined in /etc/dpdk.conf)
161
+#
162
+setup_hugepages() {
163
+    if [ ! -r /etc/dpdk/dpdk.conf ]; then
164
+        return 1
165
+    fi
166
+    . /etc/dpdk/dpdk.conf
167
+
168
+    _setup_hugepages "hugepages-2048kB" "$NR_2M_PAGES"
169
+    _setup_hugepages "hugepages-1048576kB" "$NR_1G_PAGES"
170
+
171
+    # dpdk uses 2*#hugepages mappings, increase for huge systems LP #1507921
172
+    if [ -d /sys/kernel/mm/hugepages ]; then
173
+        max_map_count=$(awk -v pad=65530 '{tot+=$1}END{print tot*2+pad}' \
174
+            /sys/kernel/mm/hugepages/hugepages-*/nr_hugepages)
175
+        sysctl -q vm.max_map_count="${max_map_count:-65530}"
176
+    fi
177
+
178
+    return 0
179
+}
180
+
181
+#
182
+# Allow NICs to be automatically bound to DPDK compatible drivers on boot.
183
+#
184
+bind_interfaces() {
185
+    if [ ! -r "$DPDK_INTERF" ]; then
186
+        return 0
187
+    fi
188
+    grep -v '^[ \t]*#' "$DPDK_INTERF" | while read BUS ID MOD; do
189
+        if [ "$BUS" = "" -o "$ID" = "" -o "$MOD" = "" ]; then
190
+            echo "WARNING: incomplete spec in $DPDK_INTERF" \
191
+                " - BUS '$BUS' ID '$ID' MOD '$MOD'"
192
+            continue
193
+        fi
194
+        if [ "$BUS" != "pci" ]; then
195
+            echo "WARNING: incompatible bus '$BUS' in $DPDK_INTERF"
196
+            continue
197
+        fi
198
+
199
+        SYSFSPATH="/sys/bus/$BUS/devices/$ID"
200
+        if [ ! -e "$SYSFSPATH" ]; then
201
+            echo "WARNING: invalid pci ID '$ID' in $DPDK_INTERF" \
202
+                " - '$SYSFSPATH' does not exist"
203
+            continue
204
+        fi
205
+        if [ -L "$SYSFSPATH/driver" ]; then
206
+            CUR=$(readlink "$SYSFSPATH/driver")
207
+            CUR=$(basename "$CUR")
208
+        else
209
+            # device existing, but currently unregistered
210
+            CUR=""
211
+        fi
212
+        if [ "$MOD" != "$CUR" ]; then
213
+            modprobe -q "$MOD" || true
214
+            # cloud img have no linux-image-extra initially (uip_pci_generic)
215
+            # so check if the module is available (loadable/built in)
216
+            if [ -e "/sys/bus/pci/drivers/${MOD}" ]; then
217
+                echo "Reassigning pci:$ID to $MOD"
218
+                $DPDK_BIND -b "$MOD" "$ID"
219
+            else
220
+                echo "Warning: failed assigning pci:$ID," \
221
+                     " module $MOD not available"
222
+            fi
223
+        else
224
+            echo "pci:$ID already assigned to $MOD"
225
+        fi
226
+    done
227
+}
228
+
229
+
230
+
231
+case "$1" in
232
+start)
233
+    mount_hugetlbfs
234
+    setup_hugepages
235
+    bind_interfaces
236
+    ;;
237
+stop)
238
+    ;;
239
+reload|force-reload)
240
+    setup_hugepages
241
+    bind_interfaces
242
+    ;;
243
+status)
244
+    $DPDK_BIND --status
245
+    ;;
246
+*)
247
+    echo "Usage: $0 {start|stop|reload|force-reload|status}"
248
+    exit 1
249
+    ;;
250
+esac
251
+

+ 3
- 0
ovs_build/dpdk-16.04/debian/dpdk-sdk-env.sh View File

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

+ 54
- 0
ovs_build/dpdk-16.04/debian/dpdk.conf View File

@@ -0,0 +1,54 @@
1
+#
2
+# The number of 2M hugepages to reserve on system boot
3
+#
4
+# Default is 0
5
+# To e.g. let it reserve 64x 2M Hugepages set:
6
+# NR_2M_PAGES=64
7
+
8
+#
9
+# The number of 1G hugepages to reserve on system boot
10
+#
11
+# Default is 0
12
+# To e.g. let it reserve 2x 1G Hugepages set:
13
+# NR_1G_PAGES=2
14
+
15
+#
16
+# Dropping slab and pagecache can help to successfully allocate hugepages,
17
+# especially later in the lifecycle of a system.
18
+# This comes at the cost of loosing all slab and pagecache on (re)start
19
+# of the dpdk service - therefore the default is off.
20
+#
21
+# Default is 0
22
+# Set to 1 to enable it
23
+#DROPCACHE_BEFORE_HP_ALLOC=0
24
+
25
+# The DPDK library will use the first mounted hugetlbfs.
26
+# The init scripts try to ensure there is at least one default hugetlbfs
27
+# mountpoint on start.
28
+# If you have multiple hugetlbfs mountpoints for a complex (e.g. specific numa
29
+# policies) setup it should be controlled by the admin instead of this init
30
+# script. In that case specific mountpoints can be provided as parameters to
31
+# the DPDK library.
32
+
33
+# Hardware may support other granularities of hugepages (like 4M). But the
34
+# larger the hugepages the earlier those should be allocated.
35
+# Note: the dpdk init scripts will report warnings, but not fail if they could
36
+# not allocate the requested amount of hugepages.
37
+# The more or the larger the hugepages to be allocated are, the more it is
38
+# recommended to do the reservation as kernel commandline arguments.
39
+# To do so edit /etc/default/grub: GRUB_CMDLINE_LINUX_DEFAULT
40
+# and add [hugepagesz=xx] hugepages=yy ...
41
+#
42
+# Kernel commandline config:
43
+# hugepagesz sets the size for the next hugepages reservation (default 2M)
44
+# hugepages  reserves the given number of hugepages of the size set before
45
+#
46
+# After modifying /etc/default/grub, the command "update-grub" has to be
47
+# run in order to re-generate the grub config files. The new values will
48
+# be used after next reboot.
49
+#
50
+# example:
51
+# GRUB_CMDLINE_LINUX_DEFAULT="... hugepages=16 hugepagesz=1G hugepages=2"
52
+#
53
+# If the system supports it, this will reserve 16x 2M pages and 2x 1G pages.
54
+#

+ 5
- 0
ovs_build/dpdk-16.04/debian/dpdk.dirs View File

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

+ 57
- 0
ovs_build/dpdk-16.04/debian/dpdk.init View File

@@ -0,0 +1,57 @@
1
+#!/bin/sh
2
+
3
+### BEGIN INIT INFO
4
+# Provides:          dpdk
5
+# Required-Start:    $local_fs
6
+# Required-Stop:     $local_fs
7
+# Default-Start:     S
8
+# Default-Stop:      0 1 6
9
+# Short-Description: start dpdk runtime environment
10
+### END INIT INFO
11
+
12
+set -e
13
+
14
+PATH="/sbin:/bin:/usr/bin"
15
+
16
+[ -d /lib/dpdk ] || exit 0
17
+
18
+# Define LSB log_* functions.
19
+# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
20
+# and status_of_proc is working.
21
+. /lib/lsb/init-functions
22
+
23
+error=0
24
+case "$1" in
25
+start)
26
+    log_action_begin_msg "Starting DPDK environment" "dpdk"
27
+    output=$(/lib/dpdk/dpdk-init start 2>&1) || error="$?"
28
+    if [ ! -z "$output" ]; then
29
+        echo "$output" | while read line; do
30
+            log_action_cont_msg "$line"
31
+        done
32
+    fi
33
+    log_action_end_msg $error
34
+    exit $error
35
+    ;;
36
+stop)
37
+    ;;
38
+restart|force-reload)
39
+    ;;
40
+status)
41
+    output=$(/lib/dpdk/dpdk-init --status 2>&1) || error="$?"
42
+    if [ ! -z "$output" ]; then
43
+        echo "$output" | while read line; do
44
+            log_action_cont_msg "$line"
45
+        done
46
+    fi
47
+    log_action_end_msg $error
48
+    exit $error
49
+    ;;
50
+*)
51
+    echo "Usage: $0 {start|stop|restart|force-reload|status}"
52
+    exit 1
53
+    ;;
54
+esac
55
+
56
+exit 0
57
+

+ 2
- 0
ovs_build/dpdk-16.04/debian/dpdk.install View File

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

+ 13
- 0
ovs_build/dpdk-16.04/debian/dpdk.interfaces View File

@@ -0,0 +1,13 @@
1
+#
2
+# <bus>		Currently only "pci" is supported
3
+# <id>		Device ID on the specified bus
4
+# <driver>	Driver to bind against (vfio-pci or uio_pci_generic)
5
+#
6
+# Be aware that the two dpdk compatible drivers uio_pci_generic and vfio-pci are
7
+# part of linux-image-extra-<VERSION> package.
8
+# This package is not always installed by default - for example in cloud-images.
9
+# So please install it in case you run into missing module issues.
10
+#
11
+# <bus>	<id>		<driver>
12
+# pci	0000:04:00.0	vfio-pci
13
+# pci	0000:04:00.1	uio_pci_generic

+ 12
- 0
ovs_build/dpdk-16.04/debian/dpdk.service View File

@@ -0,0 +1,12 @@
1
+[Unit]
2
+Description=DPDK runtime environment
3
+DefaultDependencies=false
4
+After=network-pre.target local-fs.target
5
+
6
+[Service]
7
+Type=oneshot
8
+RemainAfterExit=yes
9
+ExecStart=/lib/dpdk/dpdk-init start
10
+
11
+[Install]
12
+WantedBy=multi-user.target

+ 1
- 0
ovs_build/dpdk-16.04/debian/libdpdk-dev.dirs View File

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

+ 1
- 0
ovs_build/dpdk-16.04/debian/libdpdk0.dirs View File

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

+ 580
- 0
ovs_build/dpdk-16.04/debian/libdpdk0.symbols.amd64 View File

@@ -0,0 +1,580 @@
1
+libdpdk.so.0 libdpdk0 #MINVER#
2
+* Build-Depends-Package: libdpdk-dev
3
+ DPDK_2.0@DPDK_2.0 2.2
4
+ DPDK_2.1@DPDK_2.1 2.2
5
+ DPDK_2.2@DPDK_2.2 2.2
6
+ __rte_panic@DPDK_2.0 2.2
7
+ _rte_eth_dev_callback_process@DPDK_2.2 2.2
8
+ cirbuf_add_buf_head@DPDK_2.0 2.2
9
+ cirbuf_add_buf_tail@DPDK_2.0 2.2
10
+ cirbuf_add_head@DPDK_2.0 2.2
11
+ cirbuf_add_head_safe@DPDK_2.0 2.2
12
+ cirbuf_add_tail@DPDK_2.0 2.2
13
+ cirbuf_add_tail_safe@DPDK_2.0 2.2
14
+ cirbuf_align_left@DPDK_2.0 2.2
15
+ cirbuf_align_right@DPDK_2.0 2.2
16
+ cirbuf_del_buf_head@DPDK_2.0 2.2
17
+ cirbuf_del_buf_tail@DPDK_2.0 2.2
18
+ cirbuf_del_head@DPDK_2.0 2.2
19
+ cirbuf_del_head_safe@DPDK_2.0 2.2
20
+ cirbuf_del_tail@DPDK_2.0 2.2
21
+ cirbuf_del_tail_safe@DPDK_2.0 2.2
22
+ cirbuf_get_buf_head@DPDK_2.0 2.2
23
+ cirbuf_get_buf_tail@DPDK_2.0 2.2
24
+ cirbuf_get_head@DPDK_2.0 2.2
25
+ cirbuf_get_tail@DPDK_2.0 2.2
26
+ cirbuf_init@DPDK_2.0 2.2
27
+ cmdline_complete@DPDK_2.0 2.2
28
+ cmdline_complete_get_elt_string@DPDK_2.0 2.2
29
+ cmdline_complete_get_nb_string@DPDK_2.0 2.2
30
+ cmdline_file_new@DPDK_2.0 2.2
31
+ cmdline_free@DPDK_2.0 2.2
32
+ cmdline_get_help_etheraddr@DPDK_2.0 2.2
33
+ cmdline_get_help_ipaddr@DPDK_2.0 2.2
34
+ cmdline_get_help_num@DPDK_2.0 2.2
35
+ cmdline_get_help_portlist@DPDK_2.0 2.2
36
+ cmdline_get_help_string@DPDK_2.0 2.2
37
+ cmdline_in@DPDK_2.0 2.2
38
+ cmdline_interact@DPDK_2.0 2.2
39
+ cmdline_isendoftoken@DPDK_2.0 2.2
40
+ cmdline_new@DPDK_2.0 2.2
41
+ cmdline_parse@DPDK_2.0 2.2
42
+ cmdline_parse_etheraddr@DPDK_2.0 2.2
43
+ cmdline_parse_ipaddr@DPDK_2.0 2.2
44
+ cmdline_parse_num@DPDK_2.0 2.2
45
+ cmdline_parse_portlist@DPDK_2.0 2.2
46
+ cmdline_parse_string@DPDK_2.0 2.2
47
+ cmdline_poll@DPDK_2.1 2.2
48
+ cmdline_printf@DPDK_2.0 2.2
49
+ cmdline_quit@DPDK_2.0 2.2
50
+ cmdline_set_prompt@DPDK_2.0 2.2
51
+ cmdline_stdin_exit@DPDK_2.0 2.2
52
+ cmdline_stdin_new@DPDK_2.0 2.2
53
+ cmdline_token_etheraddr_ops@DPDK_2.0 2.2
54
+ cmdline_token_ipaddr_ops@DPDK_2.0 2.2
55
+ cmdline_token_num_ops@DPDK_2.0 2.2
56
+ cmdline_token_portlist_ops@DPDK_2.0 2.2
57
+ cmdline_token_string_ops@DPDK_2.0 2.2
58
+ cmdline_write_char@DPDK_2.0 2.2
59
+ devargs_list@DPDK_2.0 2.2
60
+ eal_parse_sysfs_value@DPDK_2.0 2.2
61
+ eal_timer_source@DPDK_2.0 2.2
62
+ eth_dev_null_create@DPDK_2.2 2.2
63
+ lcore_config@DPDK_2.0 2.2
64
+ pci_device_list@DPDK_2.0 2.2
65
+ pci_driver_list@DPDK_2.0 2.2
66
+ per_lcore__lcore_id@DPDK_2.0 2.2
67
+ per_lcore__rte_errno@DPDK_2.0 2.2
68
+ rdline_add_history@DPDK_2.0 2.2
69
+ rdline_char_in@DPDK_2.0 2.2
70
+ rdline_clear_history@DPDK_2.0 2.2
71
+ rdline_get_buffer@DPDK_2.0 2.2
72
+ rdline_get_history_item@DPDK_2.0 2.2
73
+ rdline_init@DPDK_2.0 2.2
74
+ rdline_newline@DPDK_2.0 2.2
75
+ rdline_quit@DPDK_2.0 2.2
76
+ rdline_redisplay@DPDK_2.0 2.2
77
+ rdline_reset@DPDK_2.0 2.2
78
+ rdline_restart@DPDK_2.0 2.2
79
+ rdline_stop@DPDK_2.0 2.2
80
+ rte_acl_add_rules@DPDK_2.0 2.2
81
+ rte_acl_build@DPDK_2.0 2.2
82
+ rte_acl_classify@DPDK_2.0 2.2
83
+ rte_acl_classify_alg@DPDK_2.0 2.2
84
+ rte_acl_classify_scalar@DPDK_2.0 2.2
85
+ rte_acl_create@DPDK_2.0 2.2
86
+ rte_acl_dump@DPDK_2.0 2.2
87
+ rte_acl_find_existing@DPDK_2.0 2.2
88
+ rte_acl_free@DPDK_2.0 2.2
89
+ rte_acl_list_dump@DPDK_2.0 2.2
90
+ rte_acl_reset@DPDK_2.0 2.2
91
+ rte_acl_reset_rules@DPDK_2.0 2.2
92
+ rte_acl_set_ctx_classify@DPDK_2.0 2.2
93
+ rte_approx@DPDK_2.0 2.2
94
+ rte_calloc@DPDK_2.0 2.2
95
+ rte_calloc_socket@DPDK_2.0 2.2
96
+ rte_cfgfile_close@DPDK_2.0 2.2
97
+ rte_cfgfile_get_entry@DPDK_2.0 2.2
98
+ rte_cfgfile_has_entry@DPDK_2.0 2.2
99
+ rte_cfgfile_has_section@DPDK_2.0 2.2
100
+ rte_cfgfile_load@DPDK_2.0 2.2
101
+ rte_cfgfile_num_sections@DPDK_2.0 2.2
102
+ rte_cfgfile_section_entries@DPDK_2.0 2.2
103
+ rte_cfgfile_section_num_entries@DPDK_2.0 2.2
104
+ rte_cfgfile_sections@DPDK_2.0 2.2
105
+ rte_cpu_check_supported@DPDK_2.0 2.2
106
+ rte_cryptodev_callback_register@DPDK_2.2 2.2
107
+ rte_cryptodev_callback_unregister@DPDK_2.2 2.2
108
+ rte_cryptodev_close@DPDK_2.2 2.2
109
+ rte_cryptodev_configure@DPDK_2.2 2.2
110
+ rte_cryptodev_count@DPDK_2.2 2.2
111
+ rte_cryptodev_count_devtype@DPDK_2.2 2.2
112
+ rte_cryptodev_create_vdev@DPDK_2.2 2.2
113
+ rte_cryptodev_get_dev_id@DPDK_2.2 2.2
114
+ rte_cryptodev_info_get@DPDK_2.2 2.2
115
+ rte_cryptodev_pmd_allocate@DPDK_2.2 2.2
116
+ rte_cryptodev_pmd_callback_process@DPDK_2.2 2.2
117
+ rte_cryptodev_pmd_driver_register@DPDK_2.2 2.2
118
+ rte_cryptodev_pmd_release_device@DPDK_2.2 2.2
119
+ rte_cryptodev_pmd_virtual_dev_init@DPDK_2.2 2.2
120
+ rte_cryptodev_queue_pair_count@DPDK_2.2 2.2
121
+ rte_cryptodev_queue_pair_setup@DPDK_2.2 2.2
122
+ rte_cryptodev_queue_pair_start@DPDK_2.2 2.2
123
+ rte_cryptodev_queue_pair_stop@DPDK_2.2 2.2
124
+ rte_cryptodev_session_create@DPDK_2.2 2.2
125
+ rte_cryptodev_session_free@DPDK_2.2 2.2
126
+ rte_cryptodev_socket_id@DPDK_2.2 2.2
127
+ rte_cryptodev_start@DPDK_2.2 2.2
128
+ rte_cryptodev_stats_get@DPDK_2.2 2.2
129
+ rte_cryptodev_stats_reset@DPDK_2.2 2.2
130
+ rte_cryptodev_stop@DPDK_2.2 2.2
131
+ rte_cryptodevs@DPDK_2.2 2.2
132
+ rte_ctrlmbuf_init@DPDK_2.0 2.2
133
+ rte_cycles_vmware_tsc_map@DPDK_2.0 2.2
134
+ rte_delay_us@DPDK_2.0 2.2
135
+ rte_distributor_clear_returns@DPDK_2.0 2.2
136
+ rte_distributor_create@DPDK_2.0 2.2
137
+ rte_distributor_flush@DPDK_2.0 2.2
138
+ rte_distributor_get_pkt@DPDK_2.0 2.2
139
+ rte_distributor_poll_pkt@DPDK_2.0 2.2
140
+ rte_distributor_process@DPDK_2.0 2.2
141
+ rte_distributor_request_pkt@DPDK_2.0 2.2
142
+ rte_distributor_return_pkt@DPDK_2.0 2.2
143
+ rte_distributor_returned_pkts@DPDK_2.0 2.2
144
+ rte_dom0_mempool_create@DPDK_2.0 2.2
145
+ rte_dump_physmem_layout@DPDK_2.0 2.2
146
+ rte_dump_registers@DPDK_2.0 2.2
147
+ rte_dump_stack@DPDK_2.0 2.2
148
+ rte_dump_tailq@DPDK_2.0 2.2
149
+ rte_eal_alarm_cancel@DPDK_2.0 2.2
150
+ rte_eal_alarm_set@DPDK_2.0 2.2
151
+ rte_eal_dev_init@DPDK_2.0 2.2
152
+ rte_eal_devargs_add@DPDK_2.0 2.2
153
+ rte_eal_devargs_dump@DPDK_2.0 2.2
154
+ rte_eal_devargs_type_count@DPDK_2.0 2.2
155
+ rte_eal_driver_register@DPDK_2.0 2.2
156
+ rte_eal_driver_unregister@DPDK_2.0 2.2
157
+ rte_eal_get_configuration@DPDK_2.0 2.2
158
+ rte_eal_get_lcore_state@DPDK_2.0 2.2
159
+ rte_eal_get_physmem_layout@DPDK_2.0 2.2
160
+ rte_eal_get_physmem_size@DPDK_2.0 2.2
161
+ rte_eal_has_hugepages@DPDK_2.0 2.2
162
+ rte_eal_init@DPDK_2.0 2.2
163
+ rte_eal_iopl_init@DPDK_2.0 2.2
164
+ rte_eal_lcore_role@DPDK_2.0 2.2
165
+ rte_eal_mp_remote_launch@DPDK_2.0 2.2
166
+ rte_eal_mp_wait_lcore@DPDK_2.0 2.2
167
+ rte_eal_parse_devargs_str@DPDK_2.0 2.2
168
+ rte_eal_pci_detach@DPDK_2.1 2.2
169
+ rte_eal_pci_dump@DPDK_2.0 2.2
170
+ rte_eal_pci_probe@DPDK_2.0 2.2
171
+ rte_eal_pci_probe_one@DPDK_2.0 2.2
172
+ rte_eal_pci_read_config@DPDK_2.1 2.2
173
+ rte_eal_pci_register@DPDK_2.0 2.2
174
+ rte_eal_pci_scan@DPDK_2.0 2.2
175
+ rte_eal_pci_unregister@DPDK_2.0 2.2
176
+ rte_eal_pci_write_config@DPDK_2.1 2.2
177
+ rte_eal_process_type@DPDK_2.0 2.2
178
+ rte_eal_remote_launch@DPDK_2.0 2.2
179
+ rte_eal_tailq_lookup@DPDK_2.0 2.2
180
+ rte_eal_tailq_register@DPDK_2.0 2.2
181
+ rte_eal_vdev_init@DPDK_2.0 2.2
182
+ rte_eal_vdev_uninit@DPDK_2.0 2.2
183
+ rte_eal_wait_lcore@DPDK_2.0 2.2
184
+ rte_epoll_ctl@DPDK_2.1 2.2
185
+ rte_epoll_wait@DPDK_2.1 2.2
186
+ rte_eth_add_rx_callback@DPDK_2.2 2.2
187
+ rte_eth_add_tx_callback@DPDK_2.2 2.2
188
+ rte_eth_allmulticast_disable@DPDK_2.2 2.2
189
+ rte_eth_allmulticast_enable@DPDK_2.2 2.2
190
+ rte_eth_allmulticast_get@DPDK_2.2 2.2
191
+ rte_eth_bond_8023ad_conf_get@DPDK_2.0 2.2
192
+ rte_eth_bond_8023ad_setup@DPDK_2.0 2.2
193
+ rte_eth_bond_active_slaves_get@DPDK_2.0 2.2
194
+ rte_eth_bond_create@DPDK_2.0 2.2
195
+ rte_eth_bond_free@DPDK_2.1 2.2
196
+ rte_eth_bond_link_monitoring_set@DPDK_2.0 2.2
197
+ rte_eth_bond_mac_address_reset@DPDK_2.0 2.2
198
+ rte_eth_bond_mac_address_set@DPDK_2.0 2.2
199
+ rte_eth_bond_mode_get@DPDK_2.0 2.2
200
+ rte_eth_bond_mode_set@DPDK_2.0 2.2
201
+ rte_eth_bond_primary_get@DPDK_2.0 2.2
202
+ rte_eth_bond_primary_set@DPDK_2.0 2.2
203
+ rte_eth_bond_slave_add@DPDK_2.0 2.2
204
+ rte_eth_bond_slave_remove@DPDK_2.0 2.2
205
+ rte_eth_bond_slaves_get@DPDK_2.0 2.2
206
+ rte_eth_bond_xmit_policy_get@DPDK_2.0 2.2
207
+ rte_eth_bond_xmit_policy_set@DPDK_2.0 2.2
208
+ rte_eth_copy_pci_info@DPDK_2.2 2.2
209
+ rte_eth_dev_allocate@DPDK_2.2 2.2
210
+ rte_eth_dev_allocated@DPDK_2.2 2.2
211
+ rte_eth_dev_attach@DPDK_2.2 2.2
212
+ rte_eth_dev_callback_register@DPDK_2.2 2.2
213
+ rte_eth_dev_callback_unregister@DPDK_2.2 2.2
214
+ rte_eth_dev_close@DPDK_2.2 2.2
215
+ rte_eth_dev_configure@DPDK_2.2 2.2
216
+ rte_eth_dev_count@DPDK_2.2 2.2
217
+ rte_eth_dev_default_mac_addr_set@DPDK_2.2 2.2
218
+ rte_eth_dev_detach@DPDK_2.2 2.2
219
+ rte_eth_dev_filter_ctrl@DPDK_2.2 2.2
220
+ rte_eth_dev_filter_supported@DPDK_2.2 2.2
221
+ rte_eth_dev_flow_ctrl_get@DPDK_2.2 2.2
222
+ rte_eth_dev_flow_ctrl_set@DPDK_2.2 2.2
223
+ rte_eth_dev_get_dcb_info@DPDK_2.2 2.2
224
+ rte_eth_dev_get_eeprom@DPDK_2.2 2.2
225
+ rte_eth_dev_get_eeprom_length@DPDK_2.2 2.2
226
+ rte_eth_dev_get_mtu@DPDK_2.2 2.2
227
+ rte_eth_dev_get_reg_info@DPDK_2.2 2.2
228
+ rte_eth_dev_get_reg_length@DPDK_2.2 2.2
229
+ rte_eth_dev_get_vlan_offload@DPDK_2.2 2.2
230
+ rte_eth_dev_info_get@DPDK_2.2 2.2
231
+ rte_eth_dev_is_valid_port@DPDK_2.2 2.2
232
+ rte_eth_dev_mac_addr_add@DPDK_2.2 2.2
233
+ rte_eth_dev_mac_addr_remove@DPDK_2.2 2.2
234
+ rte_eth_dev_priority_flow_ctrl_set@DPDK_2.2 2.2
235
+ rte_eth_dev_release_port@DPDK_2.2 2.2
236
+ rte_eth_dev_rss_hash_conf_get@DPDK_2.2 2.2
237
+ rte_eth_dev_rss_hash_update@DPDK_2.2 2.2
238
+ rte_eth_dev_rss_reta_query@DPDK_2.2 2.2
239
+ rte_eth_dev_rss_reta_update@DPDK_2.2 2.2
240
+ rte_eth_dev_rx_intr_ctl@DPDK_2.2 2.2
241
+ rte_eth_dev_rx_intr_ctl_q@DPDK_2.2 2.2
242
+ rte_eth_dev_rx_intr_disable@DPDK_2.2 2.2
243
+ rte_eth_dev_rx_intr_enable@DPDK_2.2 2.2
244
+ rte_eth_dev_rx_queue_start@DPDK_2.2 2.2
245
+ rte_eth_dev_rx_queue_stop@DPDK_2.2 2.2
246
+ rte_eth_dev_set_eeprom@DPDK_2.2 2.2
247
+ rte_eth_dev_set_link_down@DPDK_2.2 2.2
248
+ rte_eth_dev_set_link_up@DPDK_2.2 2.2
249
+ rte_eth_dev_set_mc_addr_list@DPDK_2.2 2.2
250
+ rte_eth_dev_set_mtu@DPDK_2.2 2.2
251
+ rte_eth_dev_set_rx_queue_stats_mapping@DPDK_2.2 2.2
252
+ rte_eth_dev_set_tx_queue_stats_mapping@DPDK_2.2 2.2
253
+ rte_eth_dev_set_vf_rx@DPDK_2.2 2.2
254
+ rte_eth_dev_set_vf_rxmode@DPDK_2.2 2.2
255
+ rte_eth_dev_set_vf_tx@DPDK_2.2 2.2
256
+ rte_eth_dev_set_vf_vlan_filter@DPDK_2.2 2.2
257
+ rte_eth_dev_set_vlan_ether_type@DPDK_2.2 2.2
258
+ rte_eth_dev_set_vlan_offload@DPDK_2.2 2.2
259
+ rte_eth_dev_set_vlan_pvid@DPDK_2.2 2.2
260
+ rte_eth_dev_set_vlan_strip_on_queue@DPDK_2.2 2.2
261
+ rte_eth_dev_socket_id@DPDK_2.2 2.2
262
+ rte_eth_dev_start@DPDK_2.2 2.2
263
+ rte_eth_dev_stop@DPDK_2.2 2.2
264
+ rte_eth_dev_tx_queue_start@DPDK_2.2 2.2
265
+ rte_eth_dev_tx_queue_stop@DPDK_2.2 2.2
266
+ rte_eth_dev_uc_all_hash_table_set@DPDK_2.2 2.2
267
+ rte_eth_dev_uc_hash_table_set@DPDK_2.2 2.2
268
+ rte_eth_dev_udp_tunnel_add@DPDK_2.2 2.2
269
+ rte_eth_dev_udp_tunnel_delete@DPDK_2.2 2.2
270
+ rte_eth_dev_vlan_filter@DPDK_2.2 2.2
271
+ rte_eth_devices@DPDK_2.2 2.2
272
+ rte_eth_dma_zone_reserve@DPDK_2.2 2.2
273
+ rte_eth_driver_register@DPDK_2.2 2.2
274
+ rte_eth_from_ring@DPDK_2.2 2.2
275
+ rte_eth_from_rings@DPDK_2.0 2.2
276
+ rte_eth_led_off@DPDK_2.2 2.2
277
+ rte_eth_led_on@DPDK_2.2 2.2
278
+ rte_eth_link_get@DPDK_2.2 2.2
279
+ rte_eth_link_get_nowait@DPDK_2.2 2.2
280
+ rte_eth_macaddr_get@DPDK_2.2 2.2
281
+ rte_eth_mirror_rule_reset@DPDK_2.2 2.2
282
+ rte_eth_mirror_rule_set@DPDK_2.2 2.2
283
+ rte_eth_promiscuous_disable@DPDK_2.2 2.2
284
+ rte_eth_promiscuous_enable@DPDK_2.2 2.2
285
+ rte_eth_promiscuous_get@DPDK_2.2 2.2
286
+ rte_eth_remove_rx_callback@DPDK_2.2 2.2
287
+ rte_eth_remove_tx_callback@DPDK_2.2 2.2
288
+ rte_eth_rx_queue_info_get@DPDK_2.2 2.2
289
+ rte_eth_rx_queue_setup@DPDK_2.2 2.2
290
+ rte_eth_set_queue_rate_limit@DPDK_2.2 2.2
291
+ rte_eth_set_vf_rate_limit@DPDK_2.2 2.2
292
+ rte_eth_stats_get@DPDK_2.2 2.2
293
+ rte_eth_stats_reset@DPDK_2.2 2.2
294
+ rte_eth_timesync_adjust_time@DPDK_2.2 2.2
295
+ rte_eth_timesync_disable@DPDK_2.2 2.2
296
+ rte_eth_timesync_enable@DPDK_2.2 2.2
297
+ rte_eth_timesync_read_rx_timestamp@DPDK_2.2 2.2
298
+ rte_eth_timesync_read_time@DPDK_2.2 2.2
299
+ rte_eth_timesync_read_tx_timestamp@DPDK_2.2 2.2
300
+ rte_eth_timesync_write_time@DPDK_2.2 2.2
301
+ rte_eth_tx_queue_info_get@DPDK_2.2 2.2
302
+ rte_eth_tx_queue_setup@DPDK_2.2 2.2
303
+ rte_eth_xstats_get@DPDK_2.2 2.2
304
+ rte_eth_xstats_reset@DPDK_2.2 2.2
305
+ rte_exit@DPDK_2.0 2.2
306
+ rte_fbk_hash_create@DPDK_2.0 2.2
307
+ rte_fbk_hash_find_existing@DPDK_2.0 2.2
308
+ rte_fbk_hash_free@DPDK_2.0 2.2
309
+ rte_free@DPDK_2.0 2.2
310
+ rte_get_rx_ol_flag_name@DPDK_2.0 2.2
311
+ rte_get_tsc_hz@DPDK_2.0 2.2
312
+ rte_get_tx_ol_flag_name@DPDK_2.0 2.2
313
+ rte_hash_add_key@DPDK_2.0 2.2
314
+ rte_hash_add_key_data@DPDK_2.1 2.2
315
+ rte_hash_add_key_with_hash@DPDK_2.0 2.2
316
+ rte_hash_add_key_with_hash_data@DPDK_2.1 2.2
317
+ rte_hash_create@DPDK_2.0 2.2
318
+ rte_hash_del_key@DPDK_2.0 2.2
319
+ rte_hash_del_key_with_hash@DPDK_2.0 2.2
320
+ rte_hash_find_existing@DPDK_2.0 2.2
321
+ rte_hash_free@DPDK_2.0 2.2
322
+ rte_hash_hash@DPDK_2.0 2.2
323
+ rte_hash_iterate@DPDK_2.1 2.2
324
+ rte_hash_lookup@DPDK_2.0 2.2
325
+ rte_hash_lookup_bulk@DPDK_2.0 2.2
326
+ rte_hash_lookup_bulk_data@DPDK_2.1 2.2
327
+ rte_hash_lookup_data@DPDK_2.1 2.2
328
+ rte_hash_lookup_with_hash@DPDK_2.0 2.2
329
+ rte_hash_lookup_with_hash_data@DPDK_2.1 2.2
330
+ rte_hash_reset@DPDK_2.1 2.2
331
+ rte_hash_set_cmp_func@DPDK_2.2 2.2
332
+ rte_hexdump@DPDK_2.0 2.2
333
+ rte_intr_allow_others@DPDK_2.1 2.2
334
+ rte_intr_callback_register@DPDK_2.0 2.2
335
+ rte_intr_callback_unregister@DPDK_2.0 2.2
336
+ rte_intr_cap_multiple@DPDK_2.2 2.2
337
+ rte_intr_disable@DPDK_2.0 2.2
338
+ rte_intr_dp_is_en@DPDK_2.1 2.2
339
+ rte_intr_efd_disable@DPDK_2.1 2.2
340
+ rte_intr_efd_enable@DPDK_2.1 2.2
341
+ rte_intr_enable@DPDK_2.0 2.2
342
+ rte_intr_rx_ctl@DPDK_2.1 2.2
343
+ rte_intr_tls_epfd@DPDK_2.1 2.2
344
+ rte_ip_frag_free_death_row@DPDK_2.0 2.2
345
+ rte_ip_frag_table_create@DPDK_2.0 2.2
346
+ rte_ip_frag_table_statistics_dump@DPDK_2.0 2.2
347
+ rte_ipv4_frag_reassemble_packet@DPDK_2.0 2.2
348
+ rte_ipv4_fragment_packet@DPDK_2.0 2.2
349
+ rte_ipv6_frag_reassemble_packet@DPDK_2.0 2.2
350
+ rte_ipv6_fragment_packet@DPDK_2.0 2.2
351
+ rte_jobstats_context_finish@DPDK_2.0 2.2
352
+ rte_jobstats_context_init@DPDK_2.0 2.2
353
+ rte_jobstats_context_reset@DPDK_2.0 2.2
354
+ rte_jobstats_context_start@DPDK_2.0 2.2
355
+ rte_jobstats_finish@DPDK_2.0 2.2
356
+ rte_jobstats_init@DPDK_2.0 2.2
357
+ rte_jobstats_reset@DPDK_2.0 2.2
358
+ rte_jobstats_set_max@DPDK_2.0 2.2
359
+ rte_jobstats_set_min@DPDK_2.0 2.2
360
+ rte_jobstats_set_period@DPDK_2.0 2.2
361
+ rte_jobstats_set_target@DPDK_2.0 2.2
362
+ rte_jobstats_set_update_period_function@DPDK_2.0 2.2
363
+ rte_jobstats_start@DPDK_2.0 2.2
364
+ rte_keepalive_create@DPDK_2.2 2.2
365
+ rte_keepalive_dispatch_pings@DPDK_2.2 2.2
366
+ rte_keepalive_register_core@DPDK_2.2 2.2
367
+ rte_kni_alloc@DPDK_2.0 2.2
368
+ rte_kni_close@DPDK_2.0 2.2
369
+ rte_kni_get@DPDK_2.0 2.2
370
+ rte_kni_get_name@DPDK_2.0 2.2
371
+ rte_kni_handle_request@DPDK_2.0 2.2
372
+ rte_kni_init@DPDK_2.0 2.2
373
+ rte_kni_register_handlers@DPDK_2.0 2.2
374
+ rte_kni_release@DPDK_2.0 2.2
375
+ rte_kni_rx_burst@DPDK_2.0 2.2
376
+ rte_kni_tx_burst@DPDK_2.0 2.2
377
+ rte_kni_unregister_handlers@DPDK_2.0 2.2
378
+ rte_kvargs_count@DPDK_2.0 2.2
379
+ rte_kvargs_free@DPDK_2.0 2.2
380
+ rte_kvargs_parse@DPDK_2.0 2.2
381
+ rte_kvargs_process@DPDK_2.0 2.2
382
+ rte_log@DPDK_2.0 2.2
383
+ rte_log_add_in_history@DPDK_2.0 2.2
384
+ rte_log_cur_msg_loglevel@DPDK_2.0 2.2
385
+ rte_log_cur_msg_logtype@DPDK_2.0 2.2
386
+ rte_log_dump_history@DPDK_2.0 2.2
387
+ rte_log_set_history@DPDK_2.0 2.2
388
+ rte_logs@DPDK_2.0 2.2
389
+ rte_lpm6_add@DPDK_2.0 2.2
390
+ rte_lpm6_create@DPDK_2.0 2.2
391
+ rte_lpm6_delete@DPDK_2.0 2.2
392
+ rte_lpm6_delete_all@DPDK_2.0 2.2
393
+ rte_lpm6_delete_bulk_func@DPDK_2.0 2.2
394
+ rte_lpm6_find_existing@DPDK_2.0 2.2
395
+ rte_lpm6_free@DPDK_2.0 2.2
396
+ rte_lpm6_is_rule_present@DPDK_2.0 2.2
397
+ rte_lpm6_lookup@DPDK_2.0 2.2
398
+ rte_lpm6_lookup_bulk_func@DPDK_2.0 2.2
399
+ rte_lpm_add@DPDK_2.0 2.2
400
+ rte_lpm_create@DPDK_2.0 2.2
401
+ rte_lpm_delete@DPDK_2.0 2.2
402
+ rte_lpm_delete_all@DPDK_2.0 2.2
403
+ rte_lpm_find_existing@DPDK_2.0 2.2
404
+ rte_lpm_free@DPDK_2.0 2.2
405
+ rte_lpm_is_rule_present@DPDK_2.0 2.2
406
+ rte_malloc@DPDK_2.0 2.2
407
+ rte_malloc_dump_stats@DPDK_2.0 2.2
408
+ rte_malloc_get_socket_stats@DPDK_2.0 2.2
409
+ rte_malloc_set_limit@DPDK_2.0 2.2
410
+ rte_malloc_socket@DPDK_2.0 2.2
411
+ rte_malloc_validate@DPDK_2.0 2.2
412
+ rte_malloc_virt2phy@DPDK_2.0 2.2
413
+ rte_mbuf_sanity_check@DPDK_2.0 2.2
414
+ rte_mem_lock_page@DPDK_2.0 2.2
415
+ rte_mem_virt2phy@DPDK_2.0 2.2
416
+ rte_memdump@DPDK_2.0 2.2
417
+ rte_memory_get_nchannel@DPDK_2.0 2.2
418
+ rte_memory_get_nrank@DPDK_2.0 2.2
419
+ rte_mempool_audit@DPDK_2.0 2.2
420
+ rte_mempool_calc_obj_size@DPDK_2.0 2.2
421
+ rte_mempool_count@DPDK_2.0 2.2
422
+ rte_mempool_create@DPDK_2.0 2.2
423
+ rte_mempool_dump@DPDK_2.0 2.2
424
+ rte_mempool_gntalloc_create@DPDK_2.0 2.2
425
+ rte_mempool_list_dump@DPDK_2.0 2.2
426
+ rte_mempool_lookup@DPDK_2.0 2.2
427
+ rte_mempool_obj_iter@DPDK_2.0 2.2
428
+ rte_mempool_walk@DPDK_2.0 2.2
429
+ rte_mempool_xmem_create@DPDK_2.0 2.2
430
+ rte_mempool_xmem_size@DPDK_2.0 2.2
431
+ rte_mempool_xmem_usage@DPDK_2.0 2.2
432
+ rte_memzone_dump@DPDK_2.0 2.2
433
+ rte_memzone_free@DPDK_2.1 2.2
434
+ rte_memzone_lookup@DPDK_2.0 2.2
435
+ rte_memzone_reserve@DPDK_2.0 2.2
436
+ rte_memzone_reserve_aligned@DPDK_2.0 2.2
437
+ rte_memzone_reserve_bounded@DPDK_2.0 2.2
438
+ rte_memzone_walk@DPDK_2.0 2.2
439
+ rte_meter_srtcm_config@DPDK_2.0 2.2
440
+ rte_meter_trtcm_config@DPDK_2.0 2.2
441
+ rte_openlog_stream@DPDK_2.0 2.2
442
+ rte_pipeline_check@DPDK_2.0 2.2
443
+ rte_pipeline_create@DPDK_2.0 2.2
444
+ rte_pipeline_flush@DPDK_2.0 2.2
445
+ rte_pipeline_free@DPDK_2.0 2.2
446
+ rte_pipeline_port_in_connect_to_table@DPDK_2.0 2.2
447
+ rte_pipeline_port_in_create@DPDK_2.0 2.2
448
+ rte_pipeline_port_in_disable@DPDK_2.0 2.2
449
+ rte_pipeline_port_in_enable@DPDK_2.0 2.2
450
+ rte_pipeline_port_in_stats_read@DPDK_2.1 2.2
451
+ rte_pipeline_port_out_create@DPDK_2.0 2.2
452
+ rte_pipeline_port_out_packet_insert@DPDK_2.0 2.2
453
+ rte_pipeline_port_out_stats_read@DPDK_2.1 2.2
454
+ rte_pipeline_run@DPDK_2.0 2.2
455
+ rte_pipeline_table_create@DPDK_2.0 2.2
456
+ rte_pipeline_table_default_entry_add@DPDK_2.0 2.2
457
+ rte_pipeline_table_default_entry_delete@DPDK_2.0 2.2
458
+ rte_pipeline_table_entry_add@DPDK_2.0 2.2
459
+ rte_pipeline_table_entry_add_bulk@DPDK_2.2 2.2
460
+ rte_pipeline_table_entry_delete@DPDK_2.0 2.2
461
+ rte_pipeline_table_entry_delete_bulk@DPDK_2.2 2.2
462
+ rte_pipeline_table_stats_read@DPDK_2.1 2.2
463
+ rte_pktmbuf_dump@DPDK_2.0 2.2
464
+ rte_pktmbuf_init@DPDK_2.0 2.2
465
+ rte_pktmbuf_offload_pool_create@DPDK_2.2 2.2
466
+ rte_pktmbuf_pool_create@DPDK_2.1 2.2
467
+ rte_pktmbuf_pool_init@DPDK_2.0 2.2
468
+ rte_pmd_af_packet_devinit@DPDK_2.0 2.2
469
+ rte_port_ethdev_reader_ops@DPDK_2.0 2.2
470
+ rte_port_ethdev_writer_nodrop_ops@DPDK_2.1 2.2
471
+ rte_port_ethdev_writer_ops@DPDK_2.0 2.2
472
+ rte_port_ring_multi_reader_ops@DPDK_2.2 2.2
473
+ rte_port_ring_multi_writer_nodrop_ops@DPDK_2.2 2.2
474
+ rte_port_ring_multi_writer_ops@DPDK_2.2 2.2
475
+ rte_port_ring_reader_ipv4_frag_ops@DPDK_2.0 2.2
476
+ rte_port_ring_reader_ipv6_frag_ops@DPDK_2.1 2.2
477
+ rte_port_ring_reader_ops@DPDK_2.0 2.2
478
+ rte_port_ring_writer_ipv4_ras_ops@DPDK_2.0 2.2
479
+ rte_port_ring_writer_ipv6_ras_ops@DPDK_2.1 2.2
480
+ rte_port_ring_writer_nodrop_ops@DPDK_2.1 2.2
481
+ rte_port_ring_writer_ops@DPDK_2.0 2.2
482
+ rte_port_sched_reader_ops@DPDK_2.0 2.2
483
+ rte_port_sched_writer_ops@DPDK_2.0 2.2
484
+ rte_port_sink_ops@DPDK_2.0 2.2
485
+ rte_port_source_ops@DPDK_2.0 2.2
486
+ rte_power_exit@DPDK_2.0 2.2
487
+ rte_power_freq_down@DPDK_2.0 2.2
488
+ rte_power_freq_max@DPDK_2.0 2.2
489
+ rte_power_freq_min@DPDK_2.0 2.2
490
+ rte_power_freq_up@DPDK_2.0 2.2
491
+ rte_power_freqs@DPDK_2.0 2.2
492
+ rte_power_get_env@DPDK_2.0 2.2
493
+ rte_power_get_freq@DPDK_2.0 2.2
494
+ rte_power_init@DPDK_2.0 2.2
495
+ rte_power_set_env@DPDK_2.0 2.2
496
+ rte_power_set_freq@DPDK_2.0 2.2
497
+ rte_power_unset_env@DPDK_2.0 2.2
498
+ rte_realloc@DPDK_2.0 2.2
499
+ rte_red_config_init@DPDK_2.0 2.2
500
+ rte_red_log2_1_minus_Wq@DPDK_2.0 2.2
501
+ rte_red_pow2_frac_inv@DPDK_2.0 2.2
502
+ rte_red_rand_seed@DPDK_2.0 2.2
503
+ rte_red_rand_val@DPDK_2.0 2.2
504
+ rte_red_rt_data_init@DPDK_2.0 2.2
505
+ rte_reorder_create@DPDK_2.0 2.2
506
+ rte_reorder_drain@DPDK_2.0 2.2
507
+ rte_reorder_find_existing@DPDK_2.0 2.2
508
+ rte_reorder_free@DPDK_2.0 2.2
509
+ rte_reorder_init@DPDK_2.0 2.2
510
+ rte_reorder_insert@DPDK_2.0 2.2
511
+ rte_reorder_reset@DPDK_2.0 2.2
512
+ rte_ring_create@DPDK_2.0 2.2
513
+ rte_ring_dump@DPDK_2.0 2.2
514
+ rte_ring_free@DPDK_2.2 2.2
515
+ rte_ring_get_memsize@DPDK_2.0 2.2
516
+ rte_ring_init@DPDK_2.0 2.2
517
+ rte_ring_list_dump@DPDK_2.0 2.2
518
+ rte_ring_lookup@DPDK_2.0 2.2
519
+ rte_ring_set_water_mark@DPDK_2.0 2.2
520
+ rte_sched_pipe_config@DPDK_2.0 2.2
521
+ rte_sched_port_config@DPDK_2.0 2.2
522
+ rte_sched_port_dequeue@DPDK_2.0 2.2
523
+ rte_sched_port_enqueue@DPDK_2.0 2.2
524
+ rte_sched_port_free@DPDK_2.0 2.2
525
+ rte_sched_port_get_memory_footprint@DPDK_2.0 2.2
526
+ rte_sched_port_pkt_read_color@DPDK_2.1 2.2
527
+ rte_sched_port_pkt_read_tree_path@DPDK_2.1 2.2
528
+ rte_sched_port_pkt_write@DPDK_2.1 2.2
529
+ rte_sched_queue_read_stats@DPDK_2.0 2.2
530
+ rte_sched_subport_config@DPDK_2.0 2.2
531
+ rte_sched_subport_read_stats@DPDK_2.0 2.2
532
+ rte_set_application_usage_hook@DPDK_2.0 2.2
533
+ rte_set_log_level@DPDK_2.0 2.2
534
+ rte_set_log_type@DPDK_2.0 2.2
535
+ rte_socket_id@DPDK_2.0 2.2
536
+ rte_strerror@DPDK_2.0 2.2
537
+ rte_strsplit@DPDK_2.0 2.2
538
+ rte_sys_gettid@DPDK_2.0 2.2
539
+ rte_table_acl_ops@DPDK_2.0 2.2
540
+ rte_table_array_ops@DPDK_2.0 2.2
541
+ rte_table_hash_ext_ops@DPDK_2.0 2.2
542
+ rte_table_hash_key16_ext_dosig_ops@DPDK_2.2 2.2
543
+ rte_table_hash_key16_ext_ops@DPDK_2.0 2.2
544
+ rte_table_hash_key16_lru_ops@DPDK_2.0 2.2
545
+ rte_table_hash_key32_ext_ops@DPDK_2.0 2.2
546
+ rte_table_hash_key32_lru_ops@DPDK_2.0 2.2
547
+ rte_table_hash_key8_ext_dosig_ops@DPDK_2.0 2.2
548
+ rte_table_hash_key8_ext_ops@DPDK_2.0 2.2
549
+ rte_table_hash_key8_lru_dosig_ops@DPDK_2.0 2.2
550
+ rte_table_hash_key8_lru_ops@DPDK_2.0 2.2
551
+ rte_table_hash_lru_ops@DPDK_2.0 2.2
552
+ rte_table_lpm_ipv6_ops@DPDK_2.0 2.2
553
+ rte_table_lpm_ops@DPDK_2.0 2.2
554
+ rte_table_stub_ops@DPDK_2.0 2.2
555
+ rte_thread_get_affinity@DPDK_2.0 2.2
556
+ rte_thread_set_affinity@DPDK_2.0 2.2
557
+ rte_timer_dump_stats@DPDK_2.0 2.2
558
+ rte_timer_init@DPDK_2.0 2.2
559
+ rte_timer_manage@DPDK_2.0 2.2
560
+ rte_timer_pending@DPDK_2.0 2.2
561
+ rte_timer_reset@DPDK_2.0 2.2
562
+ rte_timer_reset_sync@DPDK_2.0 2.2
563
+ rte_timer_stop@DPDK_2.0 2.2
564
+ rte_timer_stop_sync@DPDK_2.0 2.2
565
+ rte_timer_subsystem_init@DPDK_2.0 2.2
566
+ rte_vhost_dequeue_burst@DPDK_2.0 2.2
567
+ rte_vhost_driver_callback_register@DPDK_2.0 2.2
568
+ rte_vhost_driver_register@DPDK_2.0 2.2
569
+ rte_vhost_driver_session_start@DPDK_2.0 2.2
570
+ rte_vhost_driver_unregister@DPDK_2.1 2.2
571
+ rte_vhost_enable_guest_notification@DPDK_2.0 2.2
572
+ rte_vhost_enqueue_burst@DPDK_2.0 2.2
573
+ rte_vhost_feature_disable@DPDK_2.0 2.2
574
+ rte_vhost_feature_enable@DPDK_2.0 2.2
575
+ rte_vhost_feature_get@DPDK_2.0 2.2
576
+ rte_vlog@DPDK_2.0 2.2
577
+ rte_zmalloc@DPDK_2.0 2.2
578
+ rte_zmalloc_socket@DPDK_2.0 2.2
579
+ vt100_init@DPDK_2.0 2.2
580
+ vt100_parser@DPDK_2.0 2.2

+ 569
- 0
ovs_build/dpdk-16.04/debian/libdpdk0.symbols.i386 View File

@@ -0,0 +1,569 @@
1
+libdpdk.so.0 libdpdk0 #MINVER#
2
+* Build-Depends-Package: libdpdk-dev
3
+ DPDK_2.0@DPDK_2.0 2.2
4
+ DPDK_2.1@DPDK_2.1 2.2
5
+ DPDK_2.2@DPDK_2.2 2.2
6
+ __rte_panic@DPDK_2.0 2.2
7
+ _rte_eth_dev_callback_process@DPDK_2.2 2.2
8
+ cirbuf_add_buf_head@DPDK_2.0 2.2
9
+ cirbuf_add_buf_tail@DPDK_2.0 2.2
10
+ cirbuf_add_head@DPDK_2.0 2.2
11
+ cirbuf_add_head_safe@DPDK_2.0 2.2
12
+ cirbuf_add_tail@DPDK_2.0 2.2
13
+ cirbuf_add_tail_safe@DPDK_2.0 2.2
14
+ cirbuf_align_left@DPDK_2.0 2.2
15
+ cirbuf_align_right@DPDK_2.0 2.2
16
+ cirbuf_del_buf_head@DPDK_2.0 2.2
17
+ cirbuf_del_buf_tail@DPDK_2.0 2.2
18
+ cirbuf_del_head@DPDK_2.0 2.2
19
+ cirbuf_del_head_safe@DPDK_2.0 2.2
20
+ cirbuf_del_tail@DPDK_2.0 2.2
21
+ cirbuf_del_tail_safe@DPDK_2.0 2.2
22
+ cirbuf_get_buf_head@DPDK_2.0 2.2
23
+ cirbuf_get_buf_tail@DPDK_2.0 2.2
24
+ cirbuf_get_head@DPDK_2.0 2.2
25
+ cirbuf_get_tail@DPDK_2.0 2.2
26
+ cirbuf_init@DPDK_2.0 2.2
27
+ cmdline_complete@DPDK_2.0 2.2
28
+ cmdline_complete_get_elt_string@DPDK_2.0 2.2
29
+ cmdline_complete_get_nb_string@DPDK_2.0 2.2
30
+ cmdline_file_new@DPDK_2.0 2.2
31
+ cmdline_free@DPDK_2.0 2.2
32
+ cmdline_get_help_etheraddr@DPDK_2.0 2.2
33
+ cmdline_get_help_ipaddr@DPDK_2.0 2.2
34
+ cmdline_get_help_num@DPDK_2.0 2.2
35
+ cmdline_get_help_portlist@DPDK_2.0 2.2
36
+ cmdline_get_help_string@DPDK_2.0 2.2
37
+ cmdline_in@DPDK_2.0 2.2
38
+ cmdline_interact@DPDK_2.0 2.2
39
+ cmdline_isendoftoken@DPDK_2.0 2.2
40
+ cmdline_new@DPDK_2.0 2.2
41
+ cmdline_parse@DPDK_2.0 2.2
42
+ cmdline_parse_etheraddr@DPDK_2.0 2.2
43
+ cmdline_parse_ipaddr@DPDK_2.0 2.2
44
+ cmdline_parse_num@DPDK_2.0 2.2
45
+ cmdline_parse_portlist@DPDK_2.0 2.2
46
+ cmdline_parse_string@DPDK_2.0 2.2
47
+ cmdline_poll@DPDK_2.1 2.2
48
+ cmdline_printf@DPDK_2.0 2.2
49
+ cmdline_quit@DPDK_2.0 2.2
50
+ cmdline_set_prompt@DPDK_2.0 2.2
51
+ cmdline_stdin_exit@DPDK_2.0 2.2
52
+ cmdline_stdin_new@DPDK_2.0 2.2
53
+ cmdline_token_etheraddr_ops@DPDK_2.0 2.2
54
+ cmdline_token_ipaddr_ops@DPDK_2.0 2.2
55
+ cmdline_token_num_ops@DPDK_2.0 2.2
56
+ cmdline_token_portlist_ops@DPDK_2.0 2.2
57
+ cmdline_token_string_ops@DPDK_2.0 2.2
58
+ cmdline_write_char@DPDK_2.0 2.2
59
+ devargs_list@DPDK_2.0 2.2
60
+ eal_parse_sysfs_value@DPDK_2.0 2.2
61
+ eal_timer_source@DPDK_2.0 2.2
62
+ eth_dev_null_create@DPDK_2.2 2.2
63
+ lcore_config@DPDK_2.0 2.2
64
+ pci_device_list@DPDK_2.0 2.2
65
+ pci_driver_list@DPDK_2.0 2.2
66
+ per_lcore__lcore_id@DPDK_2.0 2.2
67
+ per_lcore__rte_errno@DPDK_2.0 2.2
68
+ rdline_add_history@DPDK_2.0 2.2
69
+ rdline_char_in@DPDK_2.0 2.2
70
+ rdline_clear_history@DPDK_2.0 2.2
71
+ rdline_get_buffer@DPDK_2.0 2.2
72
+ rdline_get_history_item@DPDK_2.0 2.2
73
+ rdline_init@DPDK_2.0 2.2
74
+ rdline_newline@DPDK_2.0 2.2
75
+ rdline_quit@DPDK_2.0 2.2
76
+ rdline_redisplay@DPDK_2.0 2.2
77
+ rdline_reset@DPDK_2.0 2.2
78
+ rdline_restart@DPDK_2.0 2.2
79
+ rdline_stop@DPDK_2.0 2.2
80
+ rte_acl_add_rules@DPDK_2.0 2.2
81
+ rte_acl_build@DPDK_2.0 2.2
82
+ rte_acl_classify@DPDK_2.0 2.2
83
+ rte_acl_classify_alg@DPDK_2.0 2.2
84
+ rte_acl_classify_scalar@DPDK_2.0 2.2
85
+ rte_acl_create@DPDK_2.0 2.2
86
+ rte_acl_dump@DPDK_2.0 2.2
87
+ rte_acl_find_existing@DPDK_2.0 2.2
88
+ rte_acl_free@DPDK_2.0 2.2
89
+ rte_acl_list_dump@DPDK_2.0 2.2
90
+ rte_acl_reset@DPDK_2.0 2.2
91
+ rte_acl_reset_rules@DPDK_2.0 2.2
92
+ rte_acl_set_ctx_classify@DPDK_2.0 2.2
93
+ rte_approx@DPDK_2.0 2.2
94
+ rte_calloc@DPDK_2.0 2.2
95
+ rte_calloc_socket@DPDK_2.0 2.2
96
+ rte_cfgfile_close@DPDK_2.0 2.2
97
+ rte_cfgfile_get_entry@DPDK_2.0 2.2
98
+ rte_cfgfile_has_entry@DPDK_2.0 2.2
99
+ rte_cfgfile_has_section@DPDK_2.0 2.2
100
+ rte_cfgfile_load@DPDK_2.0 2.2
101
+ rte_cfgfile_num_sections@DPDK_2.0 2.2
102
+ rte_cfgfile_section_entries@DPDK_2.0 2.2
103
+ rte_cfgfile_section_num_entries@DPDK_2.0 2.2
104
+ rte_cfgfile_sections@DPDK_2.0 2.2
105
+ rte_cpu_check_supported@DPDK_2.0 2.2
106
+ rte_cryptodev_callback_register@DPDK_2.2 2.2
107
+ rte_cryptodev_callback_unregister@DPDK_2.2 2.2
108
+ rte_cryptodev_close@DPDK_2.2 2.2
109
+ rte_cryptodev_configure@DPDK_2.2 2.2
110
+ rte_cryptodev_count@DPDK_2.2 2.2
111
+ rte_cryptodev_count_devtype@DPDK_2.2 2.2
112
+ rte_cryptodev_create_vdev@DPDK_2.2 2.2
113
+ rte_cryptodev_get_dev_id@DPDK_2.2 2.2
114
+ rte_cryptodev_info_get@DPDK_2.2 2.2
115
+ rte_cryptodev_pmd_allocate@DPDK_2.2 2.2
116
+ rte_cryptodev_pmd_callback_process@DPDK_2.2 2.2
117
+ rte_cryptodev_pmd_driver_register@DPDK_2.2 2.2
118
+ rte_cryptodev_pmd_release_device@DPDK_2.2 2.2
119
+ rte_cryptodev_pmd_virtual_dev_init@DPDK_2.2 2.2
120
+ rte_cryptodev_queue_pair_count@DPDK_2.2 2.2
121
+ rte_cryptodev_queue_pair_setup@DPDK_2.2 2.2
122
+ rte_cryptodev_queue_pair_start@DPDK_2.2 2.2
123
+ rte_cryptodev_queue_pair_stop@DPDK_2.2 2.2
124
+ rte_cryptodev_session_create@DPDK_2.2 2.2
125
+ rte_cryptodev_session_free@DPDK_2.2 2.2
126
+ rte_cryptodev_socket_id@DPDK_2.2 2.2
127
+ rte_cryptodev_start@DPDK_2.2 2.2
128
+ rte_cryptodev_stats_get@DPDK_2.2 2.2
129
+ rte_cryptodev_stats_reset@DPDK_2.2 2.2
130
+ rte_cryptodev_stop@DPDK_2.2 2.2
131
+ rte_cryptodevs@DPDK_2.2 2.2
132
+ rte_ctrlmbuf_init@DPDK_2.0 2.2
133
+ rte_cycles_vmware_tsc_map@DPDK_2.0 2.2
134
+ rte_delay_us@DPDK_2.0 2.2
135
+ rte_distributor_clear_returns@DPDK_2.0 2.2
136
+ rte_distributor_create@DPDK_2.0 2.2
137
+ rte_distributor_flush@DPDK_2.0 2.2
138
+ rte_distributor_get_pkt@DPDK_2.0 2.2
139
+ rte_distributor_poll_pkt@DPDK_2.0 2.2
140
+ rte_distributor_process@DPDK_2.0 2.2
141
+ rte_distributor_request_pkt@DPDK_2.0 2.2
142
+ rte_distributor_return_pkt@DPDK_2.0 2.2
143
+ rte_distributor_returned_pkts@DPDK_2.0 2.2
144
+ rte_dom0_mempool_create@DPDK_2.0 2.2
145
+ rte_dump_physmem_layout@DPDK_2.0 2.2
146
+ rte_dump_registers@DPDK_2.0 2.2
147
+ rte_dump_stack@DPDK_2.0 2.2
148
+ rte_dump_tailq@DPDK_2.0 2.2
149
+ rte_eal_alarm_cancel@DPDK_2.0 2.2
150
+ rte_eal_alarm_set@DPDK_2.0 2.2
151
+ rte_eal_dev_init@DPDK_2.0 2.2
152
+ rte_eal_devargs_add@DPDK_2.0 2.2
153
+ rte_eal_devargs_dump@DPDK_2.0 2.2
154
+ rte_eal_devargs_type_count@DPDK_2.0 2.2
155
+ rte_eal_driver_register@DPDK_2.0 2.2
156
+ rte_eal_driver_unregister@DPDK_2.0 2.2
157
+ rte_eal_get_configuration@DPDK_2.0 2.2
158
+ rte_eal_get_lcore_state@DPDK_2.0 2.2
159
+ rte_eal_get_physmem_layout@DPDK_2.0 2.2
160
+ rte_eal_get_physmem_size@DPDK_2.0 2.2
161
+ rte_eal_has_hugepages@DPDK_2.0 2.2
162
+ rte_eal_init@DPDK_2.0 2.2
163
+ rte_eal_iopl_init@DPDK_2.0 2.2
164
+ rte_eal_lcore_role@DPDK_2.0 2.2
165
+ rte_eal_mp_remote_launch@DPDK_2.0 2.2
166
+ rte_eal_mp_wait_lcore@DPDK_2.0 2.2
167
+ rte_eal_parse_devargs_str@DPDK_2.0 2.2
168
+ rte_eal_pci_detach@DPDK_2.1 2.2
169
+ rte_eal_pci_dump@DPDK_2.0 2.2
170
+ rte_eal_pci_probe@DPDK_2.0 2.2
171
+ rte_eal_pci_probe_one@DPDK_2.0 2.2
172
+ rte_eal_pci_read_config@DPDK_2.1 2.2
173
+ rte_eal_pci_register@DPDK_2.0 2.2
174
+ rte_eal_pci_scan@DPDK_2.0 2.2
175
+ rte_eal_pci_unregister@DPDK_2.0 2.2
176
+ rte_eal_pci_write_config@DPDK_2.1 2.2
177
+ rte_eal_process_type@DPDK_2.0 2.2
178
+ rte_eal_remote_launch@DPDK_2.0 2.2
179
+ rte_eal_tailq_lookup@DPDK_2.0 2.2
180
+ rte_eal_tailq_register@DPDK_2.0 2.2
181
+ rte_eal_vdev_init@DPDK_2.0 2.2
182
+ rte_eal_vdev_uninit@DPDK_2.0 2.2
183
+ rte_eal_wait_lcore@DPDK_2.0 2.2
184
+ rte_epoll_ctl@DPDK_2.1 2.2
185
+ rte_epoll_wait@DPDK_2.1 2.2
186
+ rte_eth_add_rx_callback@DPDK_2.2 2.2
187
+ rte_eth_add_tx_callback@DPDK_2.2 2.2
188
+ rte_eth_allmulticast_disable@DPDK_2.2 2.2
189
+ rte_eth_allmulticast_enable@DPDK_2.2 2.2
190
+ rte_eth_allmulticast_get@DPDK_2.2 2.2
191
+ rte_eth_bond_8023ad_conf_get@DPDK_2.0 2.2
192
+ rte_eth_bond_8023ad_setup@DPDK_2.0 2.2
193
+ rte_eth_bond_active_slaves_get@DPDK_2.0 2.2
194
+ rte_eth_bond_create@DPDK_2.0 2.2
195
+ rte_eth_bond_free@DPDK_2.1 2.2
196
+ rte_eth_bond_link_monitoring_set@DPDK_2.0 2.2
197
+ rte_eth_bond_mac_address_reset@DPDK_2.0 2.2
198
+ rte_eth_bond_mac_address_set@DPDK_2.0 2.2
199
+ rte_eth_bond_mode_get@DPDK_2.0 2.2
200
+ rte_eth_bond_mode_set@DPDK_2.0 2.2
201
+ rte_eth_bond_primary_get@DPDK_2.0 2.2
202
+ rte_eth_bond_primary_set@DPDK_2.0 2.2
203
+ rte_eth_bond_slave_add@DPDK_2.0 2.2
204
+ rte_eth_bond_slave_remove@DPDK_2.0 2.2
205
+ rte_eth_bond_slaves_get@DPDK_2.0 2.2
206
+ rte_eth_bond_xmit_policy_get@DPDK_2.0 2.2
207
+ rte_eth_bond_xmit_policy_set@DPDK_2.0 2.2
208
+ rte_eth_copy_pci_info@DPDK_2.2 2.2
209
+ rte_eth_dev_allocate@DPDK_2.2 2.2
210
+ rte_eth_dev_allocated@DPDK_2.2 2.2
211
+ rte_eth_dev_attach@DPDK_2.2 2.2
212
+ rte_eth_dev_callback_register@DPDK_2.2 2.2
213
+ rte_eth_dev_callback_unregister@DPDK_2.2 2.2
214
+ rte_eth_dev_close@DPDK_2.2 2.2
215
+ rte_eth_dev_configure@DPDK_2.2 2.2
216
+ rte_eth_dev_count@DPDK_2.2 2.2
217
+ rte_eth_dev_default_mac_addr_set@DPDK_2.2 2.2
218
+ rte_eth_dev_detach@DPDK_2.2 2.2
219
+ rte_eth_dev_filter_ctrl@DPDK_2.2 2.2
220
+ rte_eth_dev_filter_supported@DPDK_2.2 2.2
221
+ rte_eth_dev_flow_ctrl_get@DPDK_2.2 2.2
222
+ rte_eth_dev_flow_ctrl_set@DPDK_2.2 2.2
223
+ rte_eth_dev_get_dcb_info@DPDK_2.2 2.2
224
+ rte_eth_dev_get_eeprom@DPDK_2.2 2.2
225
+ rte_eth_dev_get_eeprom_length@DPDK_2.2 2.2
226
+ rte_eth_dev_get_mtu@DPDK_2.2 2.2
227
+ rte_eth_dev_get_reg_info@DPDK_2.2 2.2
228
+ rte_eth_dev_get_reg_length@DPDK_2.2 2.2
229
+ rte_eth_dev_get_vlan_offload@DPDK_2.2 2.2
230
+ rte_eth_dev_info_get@DPDK_2.2 2.2
231
+ rte_eth_dev_is_valid_port@DPDK_2.2 2.2
232
+ rte_eth_dev_mac_addr_add@DPDK_2.2 2.2
233
+ rte_eth_dev_mac_addr_remove@DPDK_2.2 2.2
234
+ rte_eth_dev_priority_flow_ctrl_set@DPDK_2.2 2.2
235
+ rte_eth_dev_release_port@DPDK_2.2 2.2
236
+ rte_eth_dev_rss_hash_conf_get@DPDK_2.2 2.2
237
+ rte_eth_dev_rss_hash_update@DPDK_2.2 2.2
238
+ rte_eth_dev_rss_reta_query@DPDK_2.2 2.2
239
+ rte_eth_dev_rss_reta_update@DPDK_2.2 2.2
240
+ rte_eth_dev_rx_intr_ctl@DPDK_2.2 2.2
241
+ rte_eth_dev_rx_intr_ctl_q@DPDK_2.2 2.2
242
+ rte_eth_dev_rx_intr_disable@DPDK_2.2 2.2
243
+ rte_eth_dev_rx_intr_enable@DPDK_2.2 2.2
244
+ rte_eth_dev_rx_queue_start@DPDK_2.2 2.2
245
+ rte_eth_dev_rx_queue_stop@DPDK_2.2 2.2
246
+ rte_eth_dev_set_eeprom@DPDK_2.2 2.2
247
+ rte_eth_dev_set_link_down@DPDK_2.2 2.2
248
+ rte_eth_dev_set_link_up@DPDK_2.2 2.2
249
+ rte_eth_dev_set_mc_addr_list@DPDK_2.2 2.2
250
+ rte_eth_dev_set_mtu@DPDK_2.2 2.2
251
+ rte_eth_dev_set_rx_queue_stats_mapping@DPDK_2.2 2.2
252
+ rte_eth_dev_set_tx_queue_stats_mapping@DPDK_2.2 2.2
253
+ rte_eth_dev_set_vf_rx@DPDK_2.2 2.2
254
+ rte_eth_dev_set_vf_rxmode@DPDK_2.2 2.2
255
+ rte_eth_dev_set_vf_tx@DPDK_2.2 2.2
256
+ rte_eth_dev_set_vf_vlan_filter@DPDK_2.2 2.2
257
+ rte_eth_dev_set_vlan_ether_type@DPDK_2.2 2.2
258
+ rte_eth_dev_set_vlan_offload@DPDK_2.2 2.2
259
+ rte_eth_dev_set_vlan_pvid@DPDK_2.2 2.2
260
+ rte_eth_dev_set_vlan_strip_on_queue@DPDK_2.2 2.2
261
+ rte_eth_dev_socket_id@DPDK_2.2 2.2
262
+ rte_eth_dev_start@DPDK_2.2 2.2
263
+ rte_eth_dev_stop@DPDK_2.2 2.2
264
+ rte_eth_dev_tx_queue_start@DPDK_2.2 2.2
265
+ rte_eth_dev_tx_queue_stop@DPDK_2.2 2.2
266
+ rte_eth_dev_uc_all_hash_table_set@DPDK_2.2 2.2
267
+ rte_eth_dev_uc_hash_table_set@DPDK_2.2 2.2
268
+ rte_eth_dev_udp_tunnel_add@DPDK_2.2 2.2
269
+ rte_eth_dev_udp_tunnel_delete@DPDK_2.2 2.2
270
+ rte_eth_dev_vlan_filter@DPDK_2.2 2.2
271
+ rte_eth_devices@DPDK_2.2 2.2
272
+ rte_eth_dma_zone_reserve@DPDK_2.2 2.2
273
+ rte_eth_driver_register@DPDK_2.2 2.2
274
+ rte_eth_from_ring@DPDK_2.2 2.2
275
+ rte_eth_from_rings@DPDK_2.0 2.2
276
+ rte_eth_led_off@DPDK_2.2 2.2
277
+ rte_eth_led_on@DPDK_2.2 2.2
278
+ rte_eth_link_get@DPDK_2.2 2.2
279
+ rte_eth_link_get_nowait@DPDK_2.2 2.2
280
+ rte_eth_macaddr_get@DPDK_2.2 2.2
281
+ rte_eth_mirror_rule_reset@DPDK_2.2 2.2
282
+ rte_eth_mirror_rule_set@DPDK_2.2 2.2
283
+ rte_eth_promiscuous_disable@DPDK_2.2 2.2
284
+ rte_eth_promiscuous_enable@DPDK_2.2 2.2
285
+ rte_eth_promiscuous_get@DPDK_2.2 2.2
286
+ rte_eth_remove_rx_callback@DPDK_2.2 2.2
287
+ rte_eth_remove_tx_callback@DPDK_2.2 2.2
288
+ rte_eth_rx_queue_info_get@DPDK_2.2 2.2
289
+ rte_eth_rx_queue_setup@DPDK_2.2 2.2
290
+ rte_eth_set_queue_rate_limit@DPDK_2.2 2.2
291
+ rte_eth_set_vf_rate_limit@DPDK_2.2 2.2
292
+ rte_eth_stats_get@DPDK_2.2 2.2
293
+ rte_eth_stats_reset@DPDK_2.2 2.2
294
+ rte_eth_timesync_adjust_time@DPDK_2.2 2.2
295
+ rte_eth_timesync_disable@DPDK_2.2 2.2
296
+ rte_eth_timesync_enable@DPDK_2.2 2.2
297
+ rte_eth_timesync_read_rx_timestamp@DPDK_2.2 2.2
298
+ rte_eth_timesync_read_time@DPDK_2.2 2.2
299
+ rte_eth_timesync_read_tx_timestamp@DPDK_2.2 2.2
300
+ rte_eth_timesync_write_time@DPDK_2.2 2.2
301
+ rte_eth_tx_queue_info_get@DPDK_2.2 2.2
302
+ rte_eth_tx_queue_setup@DPDK_2.2 2.2
303
+ rte_eth_xstats_get@DPDK_2.2 2.2
304
+ rte_eth_xstats_reset@DPDK_2.2 2.2
305
+ rte_exit@DPDK_2.0 2.2
306
+ rte_fbk_hash_create@DPDK_2.0 2.2
307
+ rte_fbk_hash_find_existing@DPDK_2.0 2.2
308
+ rte_fbk_hash_free@DPDK_2.0 2.2
309
+ rte_free@DPDK_2.0 2.2
310
+ rte_get_rx_ol_flag_name@DPDK_2.0 2.2
311
+ rte_get_tsc_hz@DPDK_2.0 2.2
312
+ rte_get_tx_ol_flag_name@DPDK_2.0 2.2
313
+ rte_hash_add_key@DPDK_2.0 2.2
314
+ rte_hash_add_key_data@DPDK_2.1 2.2
315
+ rte_hash_add_key_with_hash@DPDK_2.0 2.2
316
+ rte_hash_add_key_with_hash_data@DPDK_2.1 2.2
317
+ rte_hash_create@DPDK_2.0 2.2
318
+ rte_hash_del_key@DPDK_2.0 2.2
319
+ rte_hash_del_key_with_hash@DPDK_2.0 2.2
320
+ rte_hash_find_existing@DPDK_2.0 2.2
321
+ rte_hash_free@DPDK_2.0 2.2
322
+ rte_hash_hash@DPDK_2.0 2.2
323
+ rte_hash_iterate@DPDK_2.1 2.2
324
+ rte_hash_lookup@DPDK_2.0 2.2
325
+ rte_hash_lookup_bulk@DPDK_2.0 2.2
326
+ rte_hash_lookup_bulk_data@DPDK_2.1 2.2
327
+ rte_hash_lookup_data@DPDK_2.1 2.2
328
+ rte_hash_lookup_with_hash@DPDK_2.0 2.2
329
+ rte_hash_lookup_with_hash_data@DPDK_2.1 2.2
330
+ rte_hash_reset@DPDK_2.1 2.2
331
+ rte_hash_set_cmp_func@DPDK_2.2 2.2
332
+ rte_hexdump@DPDK_2.0 2.2
333
+ rte_intr_allow_others@DPDK_2.1 2.2
334
+ rte_intr_callback_register@DPDK_2.0 2.2
335
+ rte_intr_callback_unregister@DPDK_2.0 2.2
336
+ rte_intr_cap_multiple@DPDK_2.2 2.2
337
+ rte_intr_disable@DPDK_2.0 2.2
338
+ rte_intr_dp_is_en@DPDK_2.1 2.2
339
+ rte_intr_efd_disable@DPDK_2.1 2.2
340
+ rte_intr_efd_enable@DPDK_2.1 2.2
341
+ rte_intr_enable@DPDK_2.0 2.2
342
+ rte_intr_rx_ctl@DPDK_2.1 2.2
343
+ rte_intr_tls_epfd@DPDK_2.1 2.2
344
+ rte_ip_frag_free_death_row@DPDK_2.0 2.2
345
+ rte_ip_frag_table_create@DPDK_2.0 2.2
346
+ rte_ip_frag_table_statistics_dump@DPDK_2.0 2.2
347
+ rte_ipv4_frag_reassemble_packet@DPDK_2.0 2.2
348
+ rte_ipv4_fragment_packet@DPDK_2.0 2.2
349
+ rte_ipv6_frag_reassemble_packet@DPDK_2.0 2.2
350
+ rte_ipv6_fragment_packet@DPDK_2.0 2.2
351
+ rte_jobstats_context_finish@DPDK_2.0 2.2
352
+ rte_jobstats_context_init@DPDK_2.0 2.2
353
+ rte_jobstats_context_reset@DPDK_2.0 2.2
354
+ rte_jobstats_context_start@DPDK_2.0 2.2
355
+ rte_jobstats_finish@DPDK_2.0 2.2
356
+ rte_jobstats_init@DPDK_2.0 2.2
357
+ rte_jobstats_reset@DPDK_2.0 2.2
358
+ rte_jobstats_set_max@DPDK_2.0 2.2
359
+ rte_jobstats_set_min@DPDK_2.0 2.2
360
+ rte_jobstats_set_period@DPDK_2.0 2.2
361
+ rte_jobstats_set_target@DPDK_2.0 2.2
362
+ rte_jobstats_set_update_period_function@DPDK_2.0 2.2
363
+ rte_jobstats_start@DPDK_2.0 2.2
364
+ rte_keepalive_create@DPDK_2.2 2.2
365
+ rte_keepalive_dispatch_pings@DPDK_2.2 2.2
366
+ rte_keepalive_register_core@DPDK_2.2 2.2
367
+ rte_kvargs_count@DPDK_2.0 2.2
368
+ rte_kvargs_free@DPDK_2.0 2.2
369
+ rte_kvargs_parse@DPDK_2.0 2.2
370
+ rte_kvargs_process@DPDK_2.0 2.2
371
+ rte_log@DPDK_2.0 2.2
372
+ rte_log_add_in_history@DPDK_2.0 2.2
373
+ rte_log_cur_msg_loglevel@DPDK_2.0 2.2
374
+ rte_log_cur_msg_logtype@DPDK_2.0 2.2
375
+ rte_log_dump_history@DPDK_2.0 2.2
376
+ rte_log_set_history@DPDK_2.0 2.2
377
+ rte_logs@DPDK_2.0 2.2
378
+ rte_lpm6_add@DPDK_2.0 2.2
379
+ rte_lpm6_create@DPDK_2.0 2.2
380
+ rte_lpm6_delete@DPDK_2.0 2.2
381
+ rte_lpm6_delete_all@DPDK_2.0 2.2
382
+ rte_lpm6_delete_bulk_func@DPDK_2.0 2.2
383
+ rte_lpm6_find_existing@DPDK_2.0 2.2
384
+ rte_lpm6_free@DPDK_2.0 2.2
385
+ rte_lpm6_is_rule_present@DPDK_2.0 2.2
386
+ rte_lpm6_lookup@DPDK_2.0 2.2
387
+ rte_lpm6_lookup_bulk_func@DPDK_2.0 2.2
388
+ rte_lpm_add@DPDK_2.0 2.2
389
+ rte_lpm_create@DPDK_2.0 2.2
390
+ rte_lpm_delete@DPDK_2.0 2.2
391
+ rte_lpm_delete_all@DPDK_2.0 2.2
392
+ rte_lpm_find_existing@DPDK_2.0 2.2
393
+ rte_lpm_free@DPDK_2.0 2.2
394
+ rte_lpm_is_rule_present@DPDK_2.0 2.2
395
+ rte_malloc@DPDK_2.0 2.2
396
+ rte_malloc_dump_stats@DPDK_2.0 2.2
397
+ rte_malloc_get_socket_stats@DPDK_2.0 2.2
398
+ rte_malloc_set_limit@DPDK_2.0 2.2
399
+ rte_malloc_socket@DPDK_2.0 2.2
400
+ rte_malloc_validate@DPDK_2.0 2.2
401
+ rte_malloc_virt2phy@DPDK_2.0 2.2
402
+ rte_mbuf_sanity_check@DPDK_2.0 2.2
403
+ rte_mem_lock_page@DPDK_2.0 2.2
404
+ rte_mem_virt2phy@DPDK_2.0 2.2
405
+ rte_memdump@DPDK_2.0 2.2
406
+ rte_memory_get_nchannel@DPDK_2.0 2.2
407
+ rte_memory_get_nrank@DPDK_2.0 2.2
408
+ rte_mempool_audit@DPDK_2.0 2.2
409
+ rte_mempool_calc_obj_size@DPDK_2.0 2.2
410
+ rte_mempool_count@DPDK_2.0 2.2
411
+ rte_mempool_create@DPDK_2.0 2.2
412
+ rte_mempool_dump@DPDK_2.0 2.2
413
+ rte_mempool_gntalloc_create@DPDK_2.0 2.2
414
+ rte_mempool_list_dump@DPDK_2.0 2.2
415
+ rte_mempool_lookup@DPDK_2.0 2.2
416
+ rte_mempool_obj_iter@DPDK_2.0 2.2
417
+ rte_mempool_walk@DPDK_2.0 2.2
418
+ rte_mempool_xmem_create@DPDK_2.0 2.2
419
+ rte_mempool_xmem_size@DPDK_2.0 2.2
420
+ rte_mempool_xmem_usage@DPDK_2.0 2.2
421
+ rte_memzone_dump@DPDK_2.0 2.2
422
+ rte_memzone_free@DPDK_2.1 2.2
423
+ rte_memzone_lookup@DPDK_2.0 2.2
424
+ rte_memzone_reserve@DPDK_2.0 2.2
425
+ rte_memzone_reserve_aligned@DPDK_2.0 2.2
426
+ rte_memzone_reserve_bounded@DPDK_2.0 2.2
427
+ rte_memzone_walk@DPDK_2.0 2.2
428
+ rte_meter_srtcm_config@DPDK_2.0 2.2
429
+ rte_meter_trtcm_config@DPDK_2.0 2.2
430
+ rte_openlog_stream@DPDK_2.0 2.2
431
+ rte_pipeline_check@DPDK_2.0 2.2
432
+ rte_pipeline_create@DPDK_2.0 2.2
433
+ rte_pipeline_flush@DPDK_2.0 2.2
434
+ rte_pipeline_free@DPDK_2.0 2.2
435
+ rte_pipeline_port_in_connect_to_table@DPDK_2.0 2.2
436
+ rte_pipeline_port_in_create@DPDK_2.0 2.2
437
+ rte_pipeline_port_in_disable@DPDK_2.0 2.2
438
+ rte_pipeline_port_in_enable@DPDK_2.0 2.2
439
+ rte_pipeline_port_in_stats_read@DPDK_2.1 2.2
440
+ rte_pipeline_port_out_create@DPDK_2.0 2.2
441
+ rte_pipeline_port_out_packet_insert@DPDK_2.0 2.2
442
+ rte_pipeline_port_out_stats_read@DPDK_2.1 2.2
443
+ rte_pipeline_run@DPDK_2.0 2.2
444
+ rte_pipeline_table_create@DPDK_2.0 2.2
445
+ rte_pipeline_table_default_entry_add@DPDK_2.0 2.2
446
+ rte_pipeline_table_default_entry_delete@DPDK_2.0 2.2
447
+ rte_pipeline_table_entry_add@DPDK_2.0 2.2
448
+ rte_pipeline_table_entry_add_bulk@DPDK_2.2 2.2
449
+ rte_pipeline_table_entry_delete@DPDK_2.0 2.2
450
+ rte_pipeline_table_entry_delete_bulk@DPDK_2.2 2.2
451
+ rte_pipeline_table_stats_read@DPDK_2.1 2.2
452
+ rte_pktmbuf_dump@DPDK_2.0 2.2
453
+ rte_pktmbuf_init@DPDK_2.0 2.2
454
+ rte_pktmbuf_offload_pool_create@DPDK_2.2 2.2
455
+ rte_pktmbuf_pool_create@DPDK_2.1 2.2
456
+ rte_pktmbuf_pool_init@DPDK_2.0 2.2
457
+ rte_pmd_af_packet_devinit@DPDK_2.0 2.2
458
+ rte_port_ethdev_reader_ops@DPDK_2.0 2.2
459
+ rte_port_ethdev_writer_nodrop_ops@DPDK_2.1 2.2
460
+ rte_port_ethdev_writer_ops@DPDK_2.0 2.2
461
+ rte_port_ring_multi_reader_ops@DPDK_2.2 2.2
462
+ rte_port_ring_multi_writer_nodrop_ops@DPDK_2.2 2.2
463
+ rte_port_ring_multi_writer_ops@DPDK_2.2 2.2
464
+ rte_port_ring_reader_ipv4_frag_ops@DPDK_2.0 2.2
465
+ rte_port_ring_reader_ipv6_frag_ops@DPDK_2.1 2.2
466
+ rte_port_ring_reader_ops@DPDK_2.0 2.2
467
+ rte_port_ring_writer_ipv4_ras_ops@DPDK_2.0 2.2
468
+ rte_port_ring_writer_ipv6_ras_ops@DPDK_2.1 2.2
469
+ rte_port_ring_writer_nodrop_ops@DPDK_2.1 2.2
470
+ rte_port_ring_writer_ops@DPDK_2.0 2.2
471
+ rte_port_sched_reader_ops@DPDK_2.0 2.2
472
+ rte_port_sched_writer_ops@DPDK_2.0 2.2
473
+ rte_port_sink_ops@DPDK_2.0 2.2
474
+ rte_port_source_ops@DPDK_2.0 2.2
475
+ rte_power_exit@DPDK_2.0 2.2
476
+ rte_power_freq_down@DPDK_2.0 2.2
477
+ rte_power_freq_max@DPDK_2.0 2.2
478
+ rte_power_freq_min@DPDK_2.0 2.2
479
+ rte_power_freq_up@DPDK_2.0 2.2
480
+ rte_power_freqs@DPDK_2.0 2.2
481
+ rte_power_get_env@DPDK_2.0 2.2
482
+ rte_power_get_freq@DPDK_2.0 2.2
483
+ rte_power_init@DPDK_2.0 2.2
484
+ rte_power_set_env@DPDK_2.0 2.2
485
+ rte_power_set_freq@DPDK_2.0 2.2
486
+ rte_power_unset_env@DPDK_2.0 2.2
487
+ rte_realloc@DPDK_2.0 2.2
488
+ rte_red_config_init@DPDK_2.0 2.2
489
+ rte_red_log2_1_minus_Wq@DPDK_2.0 2.2
490
+ rte_red_pow2_frac_inv@DPDK_2.0 2.2
491
+ rte_red_rand_seed@DPDK_2.0 2.2
492
+ rte_red_rand_val@DPDK_2.0 2.2
493
+ rte_red_rt_data_init@DPDK_2.0 2.2
494
+ rte_reorder_create@DPDK_2.0 2.2
495
+ rte_reorder_drain@DPDK_2.0 2.2
496
+ rte_reorder_find_existing@DPDK_2.0 2.2
497
+ rte_reorder_free@DPDK_2.0 2.2
498
+ rte_reorder_init@DPDK_2.0 2.2
499
+ rte_reorder_insert@DPDK_2.0 2.2
500
+ rte_reorder_reset@DPDK_2.0 2.2
501
+ rte_ring_create@DPDK_2.0 2.2
502
+ rte_ring_dump@DPDK_2.0 2.2
503
+ rte_ring_free@DPDK_2.2 2.2
504
+ rte_ring_get_memsize@DPDK_2.0 2.2
505
+ rte_ring_init@DPDK_2.0 2.2
506
+ rte_ring_list_dump@DPDK_2.0 2.2
507
+ rte_ring_lookup@DPDK_2.0 2.2
508
+ rte_ring_set_water_mark@DPDK_2.0 2.2
509
+ rte_sched_pipe_config@DPDK_2.0 2.2
510
+ rte_sched_port_config@DPDK_2.0 2.2
511
+ rte_sched_port_dequeue@DPDK_2.0 2.2
512
+ rte_sched_port_enqueue@DPDK_2.0 2.2
513
+ rte_sched_port_free@DPDK_2.0 2.2
514
+ rte_sched_port_get_memory_footprint@DPDK_2.0 2.2
515
+ rte_sched_port_pkt_read_color@DPDK_2.1 2.2
516
+ rte_sched_port_pkt_read_tree_path@DPDK_2.1 2.2
517
+ rte_sched_port_pkt_write@DPDK_2.1 2.2
518
+ rte_sched_queue_read_stats@DPDK_2.0 2.2
519
+ rte_sched_subport_config@DPDK_2.0 2.2
520
+ rte_sched_subport_read_stats@DPDK_2.0 2.2
521
+ rte_set_application_usage_hook@DPDK_2.0 2.2
522
+ rte_set_log_level@DPDK_2.0 2.2
523
+ rte_set_log_type@DPDK_2.0 2.2
524
+ rte_socket_id@DPDK_2.0 2.2
525
+ rte_strerror@DPDK_2.0 2.2
526
+ rte_strsplit@DPDK_2.0 2.2
527
+ rte_sys_gettid@DPDK_2.0 2.2
528
+ rte_table_acl_ops@DPDK_2.0 2.2
529
+ rte_table_array_ops@DPDK_2.0 2.2
530
+ rte_table_hash_ext_ops@DPDK_2.0 2.2
531
+ rte_table_hash_key16_ext_dosig_ops@DPDK_2.2 2.2
532
+ rte_table_hash_key16_ext_ops@DPDK_2.0 2.2
533
+ rte_table_hash_key16_lru_ops@DPDK_2.0 2.2
534
+ rte_table_hash_key32_ext_ops@DPDK_2.0 2.2
535
+ rte_table_hash_key32_lru_ops@DPDK_2.0 2.2
536
+ rte_table_hash_key8_ext_dosig_ops@DPDK_2.0 2.2
537
+ rte_table_hash_key8_ext_ops@DPDK_2.0 2.2
538
+ rte_table_hash_key8_lru_dosig_ops@DPDK_2.0 2.2
539
+ rte_table_hash_key8_lru_ops@DPDK_2.0 2.2
540
+ rte_table_hash_lru_ops@DPDK_2.0 2.2
541
+ rte_table_lpm_ipv6_ops@DPDK_2.0 2.2
542
+ rte_table_lpm_ops@DPDK_2.0 2.2
543
+ rte_table_stub_ops@DPDK_2.0 2.2
544
+ rte_thread_get_affinity@DPDK_2.0 2.2
545
+ rte_thread_set_affinity@DPDK_2.0 2.2
546
+ rte_timer_dump_stats@DPDK_2.0 2.2
547
+ rte_timer_init@DPDK_2.0 2.2
548
+ rte_timer_manage@DPDK_2.0 2.2
549
+ rte_timer_pending@DPDK_2.0 2.2
550
+ rte_timer_reset@DPDK_2.0 2.2
551
+ rte_timer_reset_sync@DPDK_2.0 2.2
552
+ rte_timer_stop@DPDK_2.0 2.2
553
+ rte_timer_stop_sync@DPDK_2.0 2.2
554
+ rte_timer_subsystem_init@DPDK_2.0 2.2
555
+ rte_vhost_dequeue_burst@DPDK_2.0 2.2
556
+ rte_vhost_driver_callback_register@DPDK_2.0 2.2
557
+ rte_vhost_driver_register@DPDK_2.0 2.2
558
+ rte_vhost_driver_session_start@DPDK_2.0 2.2
559
+ rte_vhost_driver_unregister@DPDK_2.1 2.2
560
+ rte_vhost_enable_guest_notification@DPDK_2.0 2.2
561
+ rte_vhost_enqueue_burst@DPDK_2.0 2.2
562
+ rte_vhost_feature_disable@DPDK_2.0 2.2
563
+ rte_vhost_feature_enable@DPDK_2.0 2.2
564
+ rte_vhost_feature_get@DPDK_2.0 2.2
565
+ rte_vlog@DPDK_2.0 2.2
566
+ rte_zmalloc@DPDK_2.0 2.2
567
+ rte_zmalloc_socket@DPDK_2.0 2.2
568
+ vt100_init@DPDK_2.0 2.2
569
+ vt100_parser@DPDK_2.0 2.2

+ 0
- 0
ovs_build/dpdk-16.04/debian/patches/series View File


+ 159
- 0
ovs_build/dpdk-16.04/debian/rules View File

@@ -0,0 +1,159 @@
1
+#!/usr/bin/make -f
2
+# See debhelper(7) (uncomment to enable)
3
+# output every command that modifies files on the build system.
4
+#export DH_VERBOSE = 1
5
+
6
+# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
7
+DPKG_EXPORT_BUILDFLAGS = 1
8
+include /usr/share/dpkg/default.mk
9
+
10
+DEB_HOST_GNU_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
11
+
12
+# see FEATURE AREAS in dpkg-buildflags(1)
13
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
14
+
15
+# build with debug symbols, dh_strip will create -dgbsyms packages by that
16
+export EXTRA_CFLAGS = -g
17
+
18
+# see ENVIRONMENT in dpkg-buildflags(1)
19
+# package maintainers to append CFLAGS
20
+#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
21
+# package maintainers to append LDFLAGS
22
+#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
23
+
24
+DPDK_CONFIG  = "$(DEB_HOST_GNU_CPU)-native-linuxapp-gcc"
25
+DPDK_STATIC_DIR = "debian/build/static-root"
26
+DPDK_SHARED_DIR = "debian/build/shared-root"
27
+
28
+clean:
29
+	dh_testdir
30
+	rm -rf debian/build debian/tmp
31
+	dh_clean
32
+
33
+build-config:
34
+	dh_testdir
35
+	$(MAKE) O=$(DPDK_STATIC_DIR) T=$(DPDK_CONFIG) config
36
+	sed -ri -e 's,(RTE_MACHINE=).*,\1"default",' \
37
+	        -e 's,(RTE_NEXT_ABI=).*,\1n,' \
38
+	        -e 's,(RTE_APP_TEST=).*,\1n,' \
39
+	        -e 's,(CONFIG_RTE_EAL_IGB_UIO=).*,\1n,' \
40
+	        -e 's,(CONFIG_RTE_KNI_KMOD=).*,\1n,' \
41
+	        -e 's,(CONFIG_RTE_BUILD_COMBINE_LIBS=).*,\1y,' \
42
+	        -e 's,(LIBRTE_PMD_PCAP=).*,\1y,' \
43
+	        -e 's,(LIBRTE_PMD_XENVIRT=).*,\1y,' \
44
+	        $(DPDK_STATIC_DIR)/.config
45
+
46
+build-indep: build-config
47
+	dh_testdir
48
+	$(MAKE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html
49
+
50
+build-arch: build-config
51
+	dh_testdir
52
+	$(MAKE) O=$(DPDK_STATIC_DIR) build
53
+	# Unfortunately the decision about having static or shared libraries is
54
+	# made for the whole build, which then produces only .a or .so files
55
+	# (but not both).
56
+	# And the target layout for target selection has no field for the
57
+	# type of library.
58
+	# Right now I hack this by doing a second build which only differs in
59
+	# the selection of shared libs.
60
+	# Shared libs should be default, so the previous static build is only
61
+	# used to get static libraries.
62
+	cp -a $(DPDK_STATIC_DIR) $(DPDK_SHARED_DIR)
63
+	sed -ri 's,(RTE_BUILD_SHARED_LIB=).*,\1y,' \
64
+	        $(DPDK_SHARED_DIR)/.config
65
+	$(MAKE) O=$(DPDK_SHARED_DIR) build
66
+
67
+build: build-arch build-indep
68
+
69
+binary-indep: PACKAGE_NAME=dpdk-doc
70
+binary-indep: DOCDIR=usr/share/doc/dpdk
71
+binary-indep: export DH_OPTIONS=--indep
72
+binary-indep:
73
+	dh_testroot
74
+	dh_prep
75
+	dh_testdir
76
+	dh_installdirs
77
+	dh_install
78
+	dh_installdocs
79
+	dh_installchangelogs
80
+	dh_lintian
81
+	# Package: dpdk-doc
82
+	# All files based on the install-doc rule (includes examples)
83
+	$(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
84
+		DESTDIR=debian/dpdk-doc install-doc
85
+	dh_link
86
+	dh_compress
87
+	dh_fixperms
88
+	dh_installdeb
89
+	dh_gencontrol
90
+	dh_md5sums
91
+	dh_builddeb
92
+
93
+binary-arch: LIBDIR=usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
94
+binary-arch: export DH_OPTIONS=--arch
95
+binary-arch:
96
+	dh_testroot
97
+	dh_prep
98
+	dh_testdir
99
+	dh_installdirs
100
+	dh_install
101
+	dh_installdocs
102
+	dh_installchangelogs
103
+	dh_lintian
104
+	dh_systemd_enable
105
+	dh_installinit --no-start --no-restart-on-upgrade
106
+	dh_systemd_start --no-start --no-restart-on-upgrade
107
+	# Package: dpdk (runtime)
108
+	$(MAKE) O=$(DPDK_STATIC_DIR) prefix=/usr \
109
+		DESTDIR=debian/dpdk install-runtime
110
+	$(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
111
+		DESTDIR=debian/dpdk install-runtime
112
+	cp debian/dpdk.interfaces debian/dpdk/etc/dpdk/interfaces
113
+	rm debian/dpdk/usr/sbin/dpdk_nic_bind
114
+	ln -s /usr/share/dpdk/tools/dpdk_nic_bind.py \
115
+		debian/dpdk/sbin/dpdk_nic_bind
116
+	# Package: libdpdk0 (bare runtime libs)
117
+	mkdir -p debian/libdpdk0/$(LIBDIR)
118
+	# NOTE so far upstream dpdk has not settled on really versioning the
119
+	# combined lib. There are discussions ongoing and various alternative
120
+	# approaches.
121
+	# We have to wait until that is clarified upstream (in a follow on dpdk
122
+	# version).
123
+	# One likely solution will make us ship the non combined .so and a
124
+	# linker script which replaces the combined lib.
125
+	# To easen package management a few notes how this will change if that
126
+	# happens:
127
+	# NOTE: linker script - this becomes a nop (linker skript has no sover
128
+	# on its own)
129
+	rm debian/dpdk/usr/lib/libdpdk.so
130
+	cp $(DPDK_SHARED_DIR)/lib/libdpdk.so.0 debian/libdpdk0/$(LIBDIR)/
131
+	# NOTE: linker script - insert basenames loop for all .so's
132
+	# NOTE: linker script - we also will need multiple symbol files then
133
+	# Package: dpdk-dev (build environment)
134
+	$(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
135
+		DESTDIR=debian/dpdk-dev install-sdk
136
+	cp $(DPDK_SHARED_DIR)/.config debian/dpdk-dev/usr/share/dpdk/config
137
+	# Package: libdpdk-dev (bare headers and static devel libs)
138
+	mkdir -p debian/libdpdk-dev/$(LIBDIR)
139
+	# NOTE: linker script - insert basenames loop for all .a's
140
+	ln -s /$(LIBDIR)/libdpdk.so.0 \
141
+		debian/libdpdk-dev/$(LIBDIR)/libdpdk.so
142
+	mv debian/dpdk/usr/lib/libdpdk.a debian/libdpdk-dev/$(LIBDIR)/
143
+	mv debian/dpdk-dev/usr/include/dpdk debian/libdpdk-dev/usr/include/
144
+	# NOTE: linker script - package instead of removing all sublibs
145
+	rm -rf debian/dpdk/usr/lib*
146
+	dh_python2
147
+	dh_perl
148
+	dh_link
149
+	dh_compress
150
+	dh_fixperms
151
+	dh_strip
152
+	dh_makeshlibs
153
+	dh_shlibdeps
154
+	dh_installdeb
155
+	dh_gencontrol
156
+	dh_md5sums
157
+	dh_builddeb
158
+
159
+binary: binary-arch binary-indep

+ 1
- 0
ovs_build/dpdk-16.04/debian/source/format View File

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

+ 12
- 0
ovs_build/dpdk-16.04/debian/tests/check-dpdk-supported-arch.sh View File

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

+ 8
- 0
ovs_build/dpdk-16.04/debian/tests/control View File

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

+ 143
- 0
ovs_build/dpdk-16.04/debian/tests/test-initscripts View File

@@ -0,0 +1,143 @@
1
+#!/bin/sh
2
+set -e
3
+
4
+basedir=$(dirname "$0")
5
+. "${basedir}"/check-dpdk-supported-arch.sh
6
+
7
+# Overall that could require up to 1.2G for hugepages in the test environment
8
+EXPECT2MHP=10
9
+# Some page sizes like e.g. 1G might not be available in all test environments
10
+# The test still configures 1 page of 1G size.
11
+# One of two things will happen, depending on the test environment:
12
+# - has 1G huge page size => they will tried to be allocated (usually env is
13
+#   too small, but we want to see it fail gracefully for that)
14
+#   We will not check for the 1G alloc, as we know it often fails in small adt's
15
+# - has no 1G huge page size (HW feature) => we check if it fails gracefully
16
+EXPECT1GHP=1
17
+
18
+DPDK_CONF="/etc/dpdk/dpdk.conf"
19
+DPDK_INTERF="/etc/dpdk/interfaces"
20
+
21
+checkhp() {
22
+    MMDIR="/sys/kernel/mm/hugepages/${1}"
23
+    EXPECTHP="${2}"
24
+    if [ -d "$MMDIR" -a -r "$MMDIR/nr_hugepages" ]; then
25
+        hpcount=$(cat "$MMDIR/nr_hugepages")
26
+        if [ "${hpcount}" -ne "${EXPECTHP}" ]; then
27
+            echo "Hugepages (${hpcount}) not as expected (${EXPECTHP})"
28
+            exit 1
29
+        else
30
+            echo "Hugepages ok (${hpcount})"
31
+        fi
32
+    fi
33
+}
34
+
35
+checkstatus() {
36
+    MARK=${1}
37
+    EXPMPCOUNT=${2}
38
+    PRE=${3}
39
+    POST=${4}
40
+    EXPECTEDSTATUS=${5}
41
+    echo "Status after ${MARK}"
42
+    echo "Status of the Service"
43
+    ${PRE} status "${POST}" || true
44
+
45
+    GOTSTATUS=$(${PRE} status "${POST}" | awk '/^ *Active: / { print $2 }')
46
+    if [ "${GOTSTATUS}" != "${EXPECTEDSTATUS}" ]; then
47
+        echo "Service status (${GOTSTATUS}) not as expected (${EXPECTEDSTATUS})"
48
+        exit 1
49
+    else
50
+        echo "Service status (${GOTSTATUS}) as expected"
51
+    fi
52
+
53
+    echo "Status of hugetlbfs mount points"
54
+    # this section is ok to create bad RCs when no mounts are available
55
+    set +e
56
+    grep hugetlbfs < /proc/mounts
57
+    htlbfscount=$(grep -c hugetlbfs < /proc/mounts)
58
+    set -e
59
+
60
+    # we have to reduce the expected mountpoint count in case some sizes are
61
+    # not supported by the current kernel/environment
62
+    if [ ${EXPMPCOUNT} -gt 0 ]; then
63
+        if [ ! -d /sys/kernel/mm/hugepages/hugepages-2048kB ]; then
64
+            EXPMPCOUNT=$((EXPMPCOUNT-1))
65
+        fi
66
+        if [ ! -d /sys/kernel/mm/hugepages/hugepages-1048576kB ]; then
67
+            EXPMPCOUNT=$((EXPMPCOUNT-1))
68
+        fi
69
+    fi
70
+
71
+    if [ "${htlbfscount}" -eq "${EXPMPCOUNT}" ]; then
72
+        echo "MP Count (${htlbfscount}) as expected (${EXPMPCOUNT})"
73
+    else
74
+        echo "MP Count (${htlbfscount}) not as expected (${EXPMPCOUNT})"
75
+        exit 1
76
+    fi
77
+
78
+    # check if setting HP worked
79
+    if [ "${EXPMPCOUNT}" -ne "0" ]; then
80
+        checkhp "hugepages-2048kB" "${EXPECT2MHP}"
81
+        # We do not check 1G alloc, as it is known to be often not available
82
+    fi
83
+}
84
+
85
+resetservice() {
86
+    # help a bit with memory fragmentation regarding huge page allocation
87
+    sync
88
+    echo 3 > /proc/sys/vm/drop_caches
89
+
90
+    # stopping and resetting Service
91
+    systemctl stop dpdk.service
92
+    systemctl reset-failed dpdk.service
93
+
94
+    echo "Unmounting all potential hugetlbfs mounts"
95
+    awk '/hugetlbfs/ {print $2}' /proc/mounts | while read hugetlbmount; do
96
+        umount -v "$hugetlbmount"
97
+    done
98
+}
99
+
100
+checkinitstyle() {
101
+    # We want to verify that
102
+    # - initially our environment has no hugetlbfs mount
103
+    # - a system without hugetlbfs mount gets it mounted
104
+    # - a restart of the service does neither drop nor duplicate the mount
105
+    PRE=${1}
106
+    POST=${2}
107
+    TYPE=${3}
108
+    printf "\n\n### Checking Type %s ###\n" "${TYPE}"
109
+    resetservice
110
+    checkstatus "${TYPE}-BEGIN" 0 "${PRE}" "${POST}" "inactive"
111
+    echo "### Starting Service ###"
112
+    ${PRE} start "${POST}"
113
+    checkstatus "${TYPE}-START" 2 "${PRE}" "${POST}" "active"
114
+    echo "### Restarting Service ###"
115
+    ${PRE} restart "${POST}"
116
+    checkstatus "${TYPE}-RESTART" 2 "${PRE}" "${POST}" "active"
117
+}
118
+
119
+echo "NR_2M_PAGES=$EXPECT2MHP" >> ${DPDK_CONF}
120
+echo "NR_1G_PAGES=$EXPECT1GHP" >> ${DPDK_CONF}
121
+
122
+# We can't rely on any real device for DPDK tests in adt-* environments. But
123
+# we can expect all kind of broken configuration not to break it (would be
124
+# detected via set -e).
125
+# So add all kind of known-to-be-broken definitions and expect it not to fail.
126
+cat <<EOF > ${DPDK_INTERF}
127
+# wrong bus
128
+pTi 0000:04:00.0 uio-pci-generic
129
+# not enough parms
130
+0000:04:00.0 uio-pci-generic
131
+# empty line
132
+
133
+# non existing device
134
+pci 1234:56:78.9 uio-pci-generic
135
+EOF
136
+
137
+# some had issues in the past caused by different init systems, so we test all
138
+# Direct Calls
139
+checkinitstyle "/etc/init.d/dpdk" "" "Direct"
140
+# System V style init
141
+checkinitstyle "service dpdk" "" "SysV"
142
+# SystemD style init
143
+checkinitstyle "systemctl" "dpdk.service" "SystemD"

+ 41
- 0
ovs_build/dpdk-16.04/debian/tests/test-linkage View File

@@ -0,0 +1,41 @@
1
+#!/bin/bash
2
+set -eu
3
+
4
+basedir=$(dirname "$0")
5
+. "${basedir}"/check-dpdk-supported-arch.sh
6
+
7
+cat > testlinkage.c << EOF
8
+#include <stdio.h>
9
+#include "dpdk/rte_common.h"
10
+
11
+int main()
12
+{
13
+        printf("Hello rte_exit %p\n", rte_exit);
14
+        return 0;
15
+}
16
+EOF
17
+
18
+# with broken linkage this will fail with undefined symbols
19
+printf "\n\nChecking compile with link against DPDK\n"
20
+gcc -v testlinkage.c -o testlinkage.bin -Wall -Werror -ldpdk
21
+echo "OK"
22
+
23
+printf "\n\nChecking for expected libraries\n"
24
+# The binary should inherit dependencies from the .so
25
+# check one of the libs that came in due to features
26
+ldd testlinkage.bin | grep libpcap
27
+# check one of the libs that came in due to basic dpdp linuxapp config
28
+ldd testlinkage.bin | grep libm
29
+# one that it uses implicitly
30
+ldd testlinkage.bin | grep libpthread
31
+echo "OK"
32
+
33
+printf "\n\nChecking test execution\n"
34
+# It doesn't do much, but it should work - so calling it is a minor extra test.
35
+# It is known to fail without SSE3 in e.g. some adt environments, in that
36
+# case check at least that we get the correct error message (this will trigger
37
+# a test fail if it neither finds the success nor the expected error message)
38
+(./testlinkage.bin 2>&1 || /bin/true ) | \
39
+grep -E 'ERROR: This system does not support "SSSE3".|Hello rte_exit 0x'
40
+
41
+echo "OK"

+ 2
- 0
ovs_build/dpdk-16.04/debian/watch View File

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

Loading…
Cancel
Save